Inspired by <http://saizai.livejournal.com/666120.
html>, I've decided to write a sort of navel-gazey post about myself. Unfortunately, I am not as eloquent as the author of that post, but I'll try :).
- I speak English fluently, I'm conversant in French, and I'm learning Mandarin.
- I prefer IRC over email over other IM protocols over SMS over video over in-person over voice. Voice puts me in an awkward position where I don't have any of the cues I try to use to read other people's moods but have to devote a great deal of my mental bandwidth to signal processing - I can't really carry on a phone conversation and do anything else, while I can carry multiple IRC conversations at all times, even while working intensely.
- I have a direct, blunt style of speaking that many people consider abrasive or outright rude. I'm working on moderating this but it's effort that I'd rather spend on other things. I have a very low tolerance for people who take a while to get to the point; I have been known to cut people off and ask them to get to the point even in casual conversation.
- I have a low tolerance for sarcasm most of the time. I enjoy wordplay and wit in general, but I generally find sarcasm demeaning for both source and target. This might be related to occasional failures on my part to notice or correctly interpret sarcasm; I also think that a general disdain for sarcasm is part-and-parcel of communicating primarily over text (see "I prefer IRC", above).
- I don't enjoy talking about myself much. I think that I lack breadth; there are a few things that I enjoy immensely (see 'Interests', below), and many things that I am just indifferent to. I cannot carry a useful conversation about wide ranges of subject areas, and would rather hear what you think about them than hold forth.
- I have little respect for 'indirect communication' or anything similar; I say what I mean and prefer that people respond in kind (ala <http://www.jwz.org/gruntle/semantics.
html>). I've gotten reprimanded for this at work and as a TA before but don't have any intention of changing it. *shrug*
- URLs: "<" full-url ">". I use this format for IRC too (<irc://host/channel>) and email addresses (<firstname.lastname@example.org>). This helps make identifiers stand out in plain text. I put some amount of weight on how pretty URLs are.
- Times: YYYYMMDD-hhmmssZ?. Right now it's 20110802-231801. This format sorts lexicographically and is unambiguous. If there is a 'Z' at the end, the time is UTC; otherwise the time is 'local', which is deliberately ambiguous :). I also have my own date format, which is written as year "." day-of-year "." second-of-day, under which it is 2011.213.84312. I like this system because it makes adding and subtracting times easy and I find the kilosecond a reasonably natural unit (rule of thumb: 3ks = 50min). I sometimes use this internally but I try not to let it leak externally. I have a tool that emits the current time in this format. These times are always 'local', with no timezone appended, although in principle they ought to be UTC.
- Structured data: Unless presented with a very good reason not to, I use S-expressions for data. This pervades my mind to the extent that I used to take notes in S-expressions at university.
- Crypto: 256-bit AES, 4096-bit RSA for long-lived or valuable things, 2048-bit RSA for other things. SHA-256 or SHA-512 for hashing.
- Version control: git.
- Names: Case is significant. My name (in this context) is 'elly', not 'Elly'; the former is a username and the latter is not. It pains me to see names written in incorrect case to such an extent that I will restructure sentences to avoid doing so.
- Quotes: logical. I can't understand the American style at all.
- Languages: Scheme is the only language I've ever seen that is beautiful. C is one of the few other languages I can stand to write much code in because it has the decency to get out of my way. The vast majority of my code is written in C. In general, I disdain languages that believe they know better than I do or try to prevent me from doing clever things, which leads me to reject most statically-strongly-typed languages.
- Tools: I use vim in general, although I am fluent enough with ed to write code in it. I use emacs for Scheme. I use git for version control and make for builds. I don't believe in the premises of configure and autotools; I ship code that requires the end-user to edit config.mk (this should tell you a bit about what kind of end-user I envision :).)
- Libraries: very rarely. I have a terrible case of not-invented-here syndrome.
- Correctness: assertions everywhere. No defensive programming; incorrect arguments to a function should result in an immediate program exit. This motivates the author to fix their broken code.
- Subject matter: The lower-level the better.
- Transgender. Male-to-female. Not as feminine as many women; not as masculine as many men. Somewhere in-between on the gender spectrum, but closer to the female side. I enjoy many stereotypically-masculine pursuits (software, mathematics, gaming) and some stereotypically-feminine ones (cleaning, cooking).
- Asymmetric: I have an extra rib on one side of my body. This is genetic, I think (at any rate, my dad has it too). It is quite noticeable if you're touching my bare chest.
- Poly: Multiple partners. I'm happy this way; a single partner (even one so wonderful as my fiancee) doesn't meet all my desires.
- Kinky: The psychological aspects of D/s play are very appealing to me, and a constant source of enjoyment.
- Sensual: Touch - specifically light touch on the arms, legs, neck, and so on - are incredibly pleasant for me.
Yikes. There's more to write but it's getting late; I will come back to this later :).