Thursday, March 29, 2007

Nightmares


When I was a little kid, I had some great nightmares. Before language had really worked its way into all the corners of my mind, nightmares were strange and awful things. Full of textures that were scary because they were so intense, because they weighed so much. Sounds and colors that tapped into primal fears. I remember gasping back to reality in a cold sweat because something was too deep, like a bass note, and I saw it.

My next era of nightmares was very different. Once you have language, everything becomes verbal, like stories. I had bad dreams about girls rejecting me, driving cars that were going out of control, loneliness, madness, etc. You know, normal adult things.

Many of them centered around things not working properly. It's common in dreams. Your car won't start, your watch tells you the time is "00:00", lights won't turn on. In real life you simply expect the buttons on machines to make them work. But when your dream car is out of control it's because you don't understand its insides; you've got to make it work. We've all slammed on breaks and gotten no pressure, or turned a wheel that wasn't connected to anything.

These days though, I've been driving for long enough that my car usually works when I'm asleep. I know how it all works, how the engine runs, the rules of the road. I don't think about the pedals anymore, I think about going and stopping. And when, if, things start to go wrong with my car, I can visualize enough of the insides to get everything working again. In fact, most machines work better in my dreams, because I understand them.

So, that was the second era of nightmares. The third phase, which started about 9 months ago, is the strangest and most unpleasant of all. It all began because of Cal, and because of computer science.

The UC Berkeley if-this-is-love-then-why-does-it-hurt-so-much method may have its down-sides, but it sure gets you up to speed *quick*. The 61 series magnified my understanding of CS enormously. And as a result I've spent (and spend) a whole lot of time thinking about CS, writing code, and just generally figuring things out. It's like a new hobby. Go to school, write code, think about code, talk about code, write some code, etc.

Of course, it's natural that I would start dreaming about some of this. The problem is that my real life magical power, Computer Science, doesn't work in slumber land. In a dream, I can slog away at a problem for hours and make no progress, simply because my confused dream logic isn't getting me anywhere; I scream at compilers that won't compile anything (where's my fucking binary!); and my data structures, trusted allies in real life, do nothing but taunt me. My trees have cycles and my ints won't keep a value.

Sometimes I dream up crazy syntax, and spend hours trying to figure out the semantics. What does "#define foo(a,b):(a + baz(b))" mean? Unfortunately the C pre-processor I have installed doesn't recognize the special meaning of the colon, available only in the dream version of the GCC, so it's possible that we'll never know.

After I wake up from dreams like this, I'm always irritated and unsatisfied. I've squandered my sleep on a nonsensical and impossibly complex version of my waking life.

But there's hope, just as after a few years of driving my dream cars now zip along effortlessly... Slumberland can be sieged with knowledge from the world of men. If I keep honing my CS magic in life, eventually I'll be able to carry it with me to the planes of dreams.

Even then, it won't be an easy task. Many quests and challenges will await me. I'll peer into the depths of systems so complex that no abstraction is possible, black boxes which one is forced to understand all at once. I will abase myself before the great van Emde Boas tree of Vlists, which, as is sometimes muttered in the taverns and inns of the dream world, contains all the functions that ever were, even halts(). I'll seek out the allegiance of beings of strange power and beauty. Monsters the likes of J and Vim and Plan 9 and APL; and also ::shudder:: the dark, pure lambda calculus that lives on cold plains of pure reason, and of which, it is said, even god was wrought. Hopefully they will reason with me, and aid me in my struggle. After all, they have aided others...

And someday, once I've amassed enough allies and my medicine is strong and my spellbook is full, my hoard and I will lay siege to the land of dreams, whooping and running along in a crazy black mass, singing all the strange songs that no one of us can sing alone. And eventually, after a great and terrible battle, all the computers will work. Even the ones in my dreams.

1 comment:

V said...

Call me when you want my help. I'll bring my penguin! :)