I've been working on a bunch of interesting projects many of which delve into new areas for me. The latest one is deep into the guts of an embedded system we are designing. The land of bits. A place where you control the CPU directly, instantly turning on/off whole swaths of functionality, regardless if that was your intention or not. You eat, drink and think in bits and when there are too many bits you gang them together using hexidecimal notation. Instead of thinking that 8 times 2 is 16 you recall that 0x08 left shifted once is 0x10.
At other jobs I've operated at a much different level than this. Hidden above all of these bits by layers of drivers, APIs, and abstraction. Lots of abstraction. Sure, you may end up toggling the same bit but most likely it will take a few hundred lines of machine generated bit twiddling preparation before it happens. The difference between ordering grilled veal medallions from the comfort of a restaurant chair and being the one to face soft brown calf eyes with sledge hammer and butcher knife in hand.
It is interesting but it is also frustrating as hell. I'm even dabbling at assembly, which has got to be one of the signs of the apocalypse. At this level a small error or misinterpretation of documentation means that things don't run at all. I bang bits all day, pour over documentation and examples each evening, and at night I have stress dreams.
There are two phases of programming stress dreams.
The first phase is an extension of the day: trapped inside the algorithm, iterating, comparing, twiddling, trying to code your way out. Sometimes I may even wake up with an AHA!, case solved. I figure this phase of dream is a form of muscle memory training. Enough of these dreams and day to day coding and I have a complete model of the code in my head. I can try new features and debug without a computer.
The second phase starts with a programming dream, flails around a bit, ends up going nowhere, and finally gives in and transitions into the default stress dream.
Does everyone have a stress dream that sticks with them forever? I have a standard work stress dream and a non-work stress dream. The non-work stress dream involves a tunnel we dug as kids that winds up leading into hell. The work stress dream is about radio. Yeah, I know, same thing.
Over twenty five years ago I started working part time as a radio announcer. It was a dinky small-town radio station in Nebraska. KCSR, or Keep Chadron's Sewers Running as we liked to call it. We built a new station a couple of years later but my stress dreams always takes place in the original control room. A cramp formica countered nook with cheap acoustic tiles imbued with the smell of hot wires and stale smoke.
In the dream I'm on the air, or rather, I suddenly realize that I am on the air. Standing at the board, the record is ending, there aren't any carts in the deck, and the other turntable doesn't have a fresh record. There are no PSAs, no news or weather copy, and the record comes to an abrupt end. Dead air. I flip on the mic, ad-lib badly, mumble, all the while trying to reach for the record or cart rack, both of which (in real life too) were just a bit too far for a sixteen year old to reach while talking on the mic. I think the engineer had a strange sense of humor. Strike that. I KNOW the engineer had a warped sense of humor.
I only worked five years in radio. The last time I operated a board was almost twenty years ago. Heck, we still used 45s, cart machines, and we thought that cutting and splicing tape was the coolest way to make special effects for commercials. Why this has become the ultimate work stress dream for me I can only guess.
Maybe because it works?
We now dream in digital....