Chewiew’s Back

Chewbacca’s Baaaaaaccckkkk!!!

George Lucas is going to bring back Chewie in Episode 3. Star Wars fans are apparently going wild . . . I’m trying to think of something constructive to say.

Ain’t gonna happen.

If there’s an artistic point on the planet, George is on the point farthest from it. The original Star Wars was great. The Empire Strikes Back was the best film of the whole bunch. But the moment I saw an Ewok for sale I knew that the whole franchise was in the toilet, the story was over, and that George would never say another thing that wasn’t run past a marketing team.

TurboTax Copy Protection Update

Just an update on the copy protection in TurboTax.

Since we’ve filed our taxes for this year, and I have archived copies of the returns and PDFs and other backups, I figured it was time to flip my boot drive over to the new drive I bought in November. I ghosted my 8G C: drive to its new 18G home, stuck the old drive in a safe place, and launched Turbo Tax.

The results were anticlimactic: TT asked to register on the net, which I let it do, whereupon it worked fine.

It’s probably too late to experiment with things like: Would it have behaved this way prior to April 15th? What if I’d used a less geeky tool (like DriveCopy) to clone the drive, instead of Ghost? It’s clear that the DRM software detected a disk clone.

I’m off to disable the stupid thing. Good luck next year, Intuit. [I think my friends there will understand…]

* * *

Uninstall … C-Dilla is still running. Reboot. Still there. Morons. Go to, find C-Dilla uninstaller, run it … seems to be dead.

Never again.

Arms Race

I was in Borders the other day, looking for Schneier’s new book on Practical Cryptography. [I found it. Fifty bucks. No thanks, I don’t need it that badly]. Anyway, I found myself watching a Borders employee shuffling books from one shelf to another like a busy ant, and took a quick taxonomy of the tonnage that was being moved around.

It seems that chain bookstores group computer books by the following categories: Certification, books about Java, books about Visual Basic, books about Windows, books on Random Crap, and Advanced Crap. The Advanced Crap never changes — it’s usually Knuth and Rivest and maybe some stuff on graphics or C++. The Random Crap includes versions of Linux that are two releases out of date, books on CORBA, and pithy works on Enterprise Wireless Database Synergy.

You can tell which language is on the rise in the industry by dividing the number of linear feet of books like “Learn Java in 30 days” by the minimum time they claim you can learn it in. By the time a language is moribund, you have books like “Learn Visual Java Beans in 13 Seconds.” The asymptotic result is obvious — you can pick up a book and learn something in less time than it takes to go to the cash register, which means that the chains have to tread on something else to make money. I think this is the real reason why we have a five or six year cycle in the language-of-the-week. (I don’t know what’s going to follow C#, but there will be a bunch of badly written Sams books on it: 30 days, two weeks, 7 days, 24 hours, 13 seconds, BOOM, time for something else cool).

The Certification books are the scariest ones. For various reasons, I have a number of friends who decided to get into the certification treadmill a couple of years ago. With few exceptions, they are not now working in the field. It was particularly difficult to hold my tounge while I watched months of effort and probably thousands of dollars going into Novell Netware certification courses (“Look, it’s dead. Well, not quite dead, but darn near. Look how fast Sams claims you can learn that stuff.”) One evening I got a call from a friend who was standing outside his school; he was in tears, they had chained the doors that morning and cancelled classes forever.

You can sometimes make a quick buck in the software industry, but it’s much harder to make a long-lasting buck. I suggest to folks who are reading stuff from the Certification aisles that they also visit the shallow end of the Advanced Crap section, starting off with some Sedgewick or SICP (if they are bold). It’s the difference between knowing how to use a calculator and knowing how multiplication works. I’ve tried to explain (for instance) how the design of TCP/IP wasn’t handed down on a tablet, but that it was hard-won engineering, guided by experience and popularized by careful politicking and accident. But I have friends who probably think that class C addresses are somehow connected to the physics of the Big Bang. That, or a greybeard’s stone scribblings.

Wups, my build is done. I should have learned SQL by now, but I guess I’m just lame that way.

Idle hands…

A cow-orker of mine has a solution for long build times [a full build of my current project takes about an hour]. He set up a large table next to his desk at home, upon which he’s piecing together a very large jigsaw puzzle.

That’s a pretty cool puzzle, but it’s apalling from a build time standpoint, and that’s a small project in the real world. Every project I’ve ever worked on has gone from five minute builds to … well, playing darts and killing baddies in Quake on a spare machine. Computers get faster, but disks haven’t gotten much faster, and every project seems to bloat builds to insufferable durations before anything is done about the situation.

Even incremental builds are horrible; five or ten minutes is not quite enough time to really get into some other task, but it’s plenty of time to lose concentration on what you were working on.

The best development environments I’ve worked in have had sub-ten-second turnaround times (sometimes virtually instantaneous turnarounds). These are great for getting work done, though without discipline you can wind up hacking things up, rather than designing.

I bought a classic Macintosh in the fall of 1984, and sold it six months later because the development environment I had (the MDS assembler) required 12 clicks to get from an edit to a running program. No fewer. A few weeks of this and I was ready to give up Mac development forever.

So if you have a tools team, and they are working to improve your build environment, pat them on the head or take them out to lunch from time to time. Things could be worse.

[…and the next quote build system unquote I see that is built from .BAT files, I’m going to format the disk of the person who wrote it and make them program in 68000 assembly language for six months. Click. ClickClick. ClickClickOkayClick….]

Rules of Systems Programming

Hard won wisdom #3 in a series:

1. Never check for an error that you don’t know how to handle.

2. If you DO have to check for such an error, pin the blame on someone else (“This code choked because the IFrobozz packet was malformed, it’s not my fault.”)

3. If you’re completely screwed, crash spectacularly. Everyone hates a subtle failure. Smoking rubble is a pretty good hint that something needs to be fixed.