There's something about Mondays.
Monday evening. Not much going on, dropped a friend off at the airport, had dinner, things are generally quiet. I've been "catching up" on a lot of my electronic lists and todos; went through a few hundred items from the first year of the current job, most of which were either fixed or no longer relevant, but got a good pile of questions to hunt down out of it. Caught up on a bunch of my reading (Robin Williams' "design for non-designers" is excellent, even if I'm embarassed to admit that one of the business card designs on the "don't do this, haven't you learned anything yet?" pages is almost exactly like the ones I designed for myself 7 or 8 years back), got 2/3 of the way through Dive Into Python (great book if you're already a programmer and want to read and/or fix someone else's code in a hurry. Beginners or the otherwise less brave may go splat, though: none of this "hello world" crap, the first example is a database client!) and decided to watch some videos of Chuck Moore's talks.
Chuck Moore is a fascinating character. He invented the Forth language, 3 decades ago, as part of a telescope control project, but has advanced (far beyond the "forth community") to using it to generate extraordinarly tight code - applications like OKAD, a VLSI design system where the design for a Forth-specific CPU and the entire CAD system fit on a small fraction of a floppy disk - a complete bootable (and surprisingly easy to port) system. He's overall gone "sideways" from conventional computer science; his systems look (from a distance) to be more ninja/jedi/"bespoke" applications, but he can produce them with remarkable efficiency. If I were doing a "secure hardware" chip or system, I'd look at his techniques very carefully, just in terms of being able to abstract all the way down to the metal and still have control and efficiency.
There are some videos of his talks on the web. He's a reasonably good speaker, and I listened to about an hour of his talk on OKAD... then went to quit RealOne Player, and it wouldn't quit. Then I noticed other things locking up, and strange noises (that sounded like the software-controlled fan, the one thing that really makes noise on the powerbook...) Power cycling it got it to boot up again, about a third of the way through my normal startup. Never got me to a shell, though. Today, I just get the "blinking folder" indicator of disk not answering.
Ironically, that morning I'd gotten mail from Apple saying the external hard drive I'd ordered (not out of concern for backups so much as taking advantage of a sale) was ready to ship.
Of course, I have some amount of backup. My pictures go through the laptop into AFS before they're wiped from the card; most of my personal (as well as work) development is in CVS. However, there are a couple of things that hadn't yet made it: the todo-list of questions mentioned above, and a bunch of my mac-specific configuration, and my web clippings.
The todo-list isn't a huge issue - there are no shortage of current fires to fight, handling the old ones was out of more of a sense of completion than anything critical to the product. Likewise the web clippings are almost entirely things that are, in fact, still out there; the one subtle bit is TrackForward, and the constructed output file has all of the relevant information (or enough to reconstruct the source material.)
What isn't backed up, and is somewhat harder to grasp, is my interaction with the machine. Something about the Mac interface had become very natural and smooth and ingrained into my habits - to the point where there are actions that "my fingers know", that don't work on the linux boxes I've fallen back to, and which are surprisngly hard to get back out. (For example, I amused my coworkers by standing up to leave my desk and not knowing what to do next - there was a chord that I'd hit to lock my screen, which (even though it was a customization I added, not a native mac thing) had folded cleanly into my get-up-and-go habit, that I was suddenly lost in having this impulse with no connection to anything that would resolve it. It took me a bit to even figure out how to lock the screen again, and it wasn't until the next day that I rediscovered that I already had a forgotten X keybinding for it...)
It isn't even that the mac-side interfaces were particularly good; using native X on a 1 ghz p4 (with less memory than the laptop had) shows me how horribly slow X under Mac OS X really is, for the high-reaction things that matter, and I have a lot more control this way (especially if I finish the scripted windowmanager I'd finally gotten started on.) Not to say that they're bad - Safari's rendering (pixel level and font level) is easy on the eyes, and there are a lot of interface choices that it gets right that firefox et al. should be embarassed about not doing. And applescript was just enough more useful than anything the free browsers have, that it will be a while before I can resurrect my web clipping tools...
It turns out that the lack of these little things has turned into a surprising amount of stress, and it took me until this morning to realize it. I'm not sure what I'll do about it (except use it to help justify getting professional disk recovery done - drivesavers.com is *expensive*.) I'd already decided there was only 1 chance in 3 that my next laptop would be a Mac - namely, which could I get first, a Mac Tablet (unknown), an IBM X-series tablet (rumours have slipped to 2005q1), or a dialogue.com.tw "flybook" (need to mug a reviewer, no end-user sales yet, even in Asia.) I realized that a large part of that was feeling betrayed by the hardware - which is investing a disturbing amount of emotion in something so mechanical. I do take my computer-interaction more seriously than is really healthy, and to some extent that's gotten me where I am today - but this is rather deeper than I'm used.
What drove it home was the thought, on the drive in, that maybe I should just get a camera, a pda, and a motorcycle, and drive off into the sunset. I'm so much more the nesting type, and really shouldn't have a motorcycle -- "no, I don't want a car, I want an exoskeleton with wheels. Ok, I want an exoskeleton that can fly, but..." -- which is why the idea made me step back and really think about this. Not very deeply, mind you - I'm not trying to upgrade from "be useful" to "change the world" or anything - but enough that it's time to synthesize what I've learned about interaction in the last decade, and get out of the rut that the Mac enticed me into.
The first small step - post this from emacs, not from a froofy decorative client. Next step - come up with a good ratio of reading to writing to coding, and at least be aware of it, if not actually enforcing it. Put more effort into *manipulating* my environment. Build or modify at least one robot this year; write at least one new computer interaction tool this month.
... and post about it so that I can see if it sticks, or was just a passing shock ...