So, I’ve been reflecting lately on some of the things that make me a bit… unusual. I’m not really talking about quirks or eccentricities here, so much as interests, or unusual approaches to learning things, or things I’ve taken the trouble to learn that have little value to most people.
I think I’m beginning to realize that I love arcana: knowledge that has become uncommon and unusual. It’s not because I get some sort of snobby delusions of superiority from them, or because now I know something no one else does; it’s because whenever I encounter some fascinating system I’ve never seen before, I want to know what makes it tick.
§ For instance, I’m probably virtually the only person under, say, 60 years old, that actually understands and uses shorthand (specifically, the Gregg shorthand system, at the top of that image). It’s a method for writing quickly and compactly (and, against those who don’t know that system of shorthand, secretly) that used to be required knowledge for secretaries, journalists and court recorders. It fell out of style with the advent of personal audio recorders.
Why do I know shorthand? Because I ran across it at some point when I was ten, and thought it was cool. A journalist was doing a local interest piece on my family. I told my Mom I thought he was really just a spy. “I saw him when he was interviewing the family: he wasn’t really writing anything, he was just scribbling!” It comes in handy every now and then, though possibly more often for writing private notes than quicker dictation, as I don’t have enough opportunity to exercise it to be drastically more efficient with it than I am with longhand.
§ Typography is another interest of mine; when I tell people this, it’s frequently mis-heard as “topography”, and they assume I mean that I like maps or something. Typesetting systems such as Τεχ (and the older, less powerful nroff) are in relatively wide use in the Unix world (though I think they may be diminishing somewhat in use), and are useful to know something about (though, like many, my knowledge of nroff doesn’t extend much beyond the use of a particular set of macros to create Unix “man pages”). But the real source of my fascination with and love for typography, is Robert Bringhurst’s The Elements of Typographical Style, which is an extremely artful and enlightening, if a tad eccentric and old-fashioned, work on the subject. One word of warning: reading this book will cause you to become accutely aware of minor typographical glitches whenever you are reading, where formerly they were no more than a very subconscious annoyance. And, as good typesetting is swiftly becoming a lost art, there will be no end of opportunities for such irritations.
Now, lest you be confused, when I say I have an interest in typography, I don’t mean, as some do, the use of flashy and avant-garde fonts for titling a magazine article, or the creative twisting of text into a catchy logo or icon. My interest is actually in ordinary running text, as found in a book.
Most people probably could not imagine a more boring occupation than the careful, minute adjustment of spacing between words, lines, and paragraphs; the pairing of just the right font appropriate to the text, and the general use of a subtle touch throughout. The thanklessness of ordinary book typesetting is that the sign of a good job is precisely that no one really notices what you’ve done at all (unless of course they true have some typographical training). A perfect example of this (though far from perfection itself, I’m sure) is my setting of Mark Twain’s Cannibalism in the Cars. It is set very plainly, without flair, and you would not guess the numerous hours spent in getting the text to look just so, avoiding various minor irritations that can crop up in typestting, and coming up with ideas to make this somewhat complicated narrative as smoothly legible as possible.
§ Music has been a very large part of my life, from very early on. My family is very musical, pretty much every one of my two parents and seven siblings has a great singing voice, and several can play at least one musical instrument. I started piano lessons when I was five, and once I could play basic chords and such, my talents were sequestered for playing music as a family, for my Dad’s worship music services at church, and for, well, pretty showing off at family gatherings and such. The scene from Step Brothers where the “perfect” brother’s family were all singing in perfect harmony was hilarious to me, because our family used to do just that sort of thing.
The combination of formal piano lessons (which I continued into the music degree program at CSU Sacramento, which BTW has an excellent music department) and regular opportunities to play off chord-sheets with my family, means that I can now read sheet music proficiently, and can also improvise based on just a few scrathed-down chords. I’ve met a lot of people who can do one or the other of those, but not both (though being able to do both is not exactly rare).
On the other hand, some of my abilities in music really are somewhat unusual. As mentioned, I can improvise off of chord sheets. I can also frequently play along by ear to songs I’ve never even heard before. I’ve actually done this on stage, in fact, when accompanying a musical group at our church. It went very smoothly.
I can also transcribe music by ear. Back when I used to head up church music ministries, I would frequently make up the chord sheets for the other players, without any instruments nearby to check it on, even if I’d never seen a chord sheet for the song before. I can do this with melody lines, too; I used to sketch melodies out that popped into my heads so I wouldn’t forget them later.
Given these things, it’s kind of a shame that I don’t do a thing with music these days. I guess I should form a band or something, but my free time for something like that is pretty much nonexistent, and there’d most likely be transportation issues. Still, the one thing I miss most from church by far is playing with musical groups; I really enjoyed that.
I’m sometimes asked if I have perfect pitch, and the answer is… well, sort of. Mainly, I only have relative pitch (that is, if I hear a note and you tell me the name, then I could give you the name of any note you play thereafter). But when I’ve gotten used to playing and singing the same song over and over, I tend to develop a memory for where that key is, and so I can frequently work out what a note is without hearing a reference pitch first. But I wouldn’t be able to do it without some silence first to find my own reference pitch from memory; most people with “real” perfect pitch actually know the note instantly, from the note itself, and don’t work it out based on some other pitch.
§ Probably from my apparent love for esoteric arcana, I tend to learn a lot of obscure programming languages and technologies. PostScript, for instance, which is a programming language that outputs printer pages. Hardly anyone actually learns how to write code in PostScript, because no one really uses it as a programming language beyond writing some boilerplate code that’s capable of reading the “real” graphical data they’re interested in. Yet it is a full-fledged programming language, capable of accomplishing some exotic feats. I wrote a PostScript file for example, which results in a different randomly-generated maze every time you print it (note though that the primary links there are to static PDFs which are randomly generated when you download them, but will print the same static maze every time; not all systems can print PostScript files directly).
As another example, I actually know the Unix sed programming/stream-editing language. This is a transformation language that changes a given input into a desired output. Most people know how to do pattern-matching and substitutions in it, which honestly is what it is most useful for. However, it has support for labels and conditional branching, and is actually Turing-complete, so could be used to theoretically transform any input into any output (ignoring the fact that implementations typically have severely limited buffer space), and I’m one of the few folks who actually bothered to learn it well enough to use some of its more advanced features. Not that that’s particularly useful, as doing anything that isn’t trivial tends to be way, way too complicated with sed; but I tend not to like knowing things only “half-way”, so… I know sed. That would seem to place me in the same category as crufty old Unix sysadmins who are decades older than me.
§ I’ve memorized the ASCII table of character codes. Yeah, really. I can actually read that . No, it’s not just for general geek snobbery; I actually found it to be quite useful while I was studying terminal control sequences and the ISO-2022 character encoding standard (two more bits of esoteric arcana, though these actually happen to be very useful to me now as a co-maintainer of GNU Screen). It has also proved to be useful for doing percent-encoding for URLs in my head.
§ Alright, so like thousands of other programmer geeks, I know C, C++, etc. However, one difference between myself and the vast majority of other programmers I’ve met is that many of the programming languages and other technologies I know, I learned directly from the relevant published standards. I have copies of the C and C++ language specs as published by ISO/IEC, I go to ECMA to read about “JavaScript” and ISO-2022 (Ecma-35), the Open Group for Unix specifications, and the W3C for DOM, XML, XSL, and HTML.
That’s not necessarily the best way to learn something; it certainly isn’t the quickest. But it does tend to make me… “unique”. I do frequently find it to be helpful, to know a lot about nitpicky details, so I don’t have to wonder about the corner cases that might trip up other folks. Knowing what the standards say about something helps me to write very portable code that runs on as many existing implementations as possible, and hopefully any future ones that may be written. It also gives me an idea of what features of a language are likely to change, and which are likely to remain stable.
The thing about standards, though, is that they frequently represent an ideal that differs, mildly or very substantially, from that technology as found in the real world. The current C standard has loads of things that virtually no one implements, or plans to; and all the major C++ implementations lack the “export” feature for templates. As to trying to write useful websites that conform to all the applicable standards… it’s simply an exercise in frustration. Thus, it’s not enough to know what a document says about the technology on paper; you need real experience with actual existing implementations to know what is portable. And that is probably why most people don’t bother learning the “official standards” to begin with, and what makes my familiarity with them so unusual.