ACM Queue on error reporting


I once spent a week “twisting knobs” trying to get an COM server to do anything other than put up a dialog box saying “Error -1”. Probably one of the most frustrating development experiences in my life (right up there with trying to get PowerBuilder and PeopleSoft to do anything useful).

Henceforth, anyone using the error -1 will be summarily shot, drawn, quartered and gibbetted as a warning to other developers. Unless, of course, they were in a justifiable hurry or something.

Key Resolve

“Your cat did what?”

“Yup, ripped them off. X and B. She was purring the whole time, too.”

“Ummm… okay. Don’t tell that to anyone else. We’ll have a replacement keyboard out to you by tomorrow.”

“I’d be happy just buying a replacement, but thank you.”

And they did. I’m impressed. I think the support rep was a cat person.

Under attack again

Spyware maker MarketScore is attempting to install links to their software in blog comments here. That, or one of their proxy servers has been compromised (which would be pretty bloody ironic).

I’m going to ship them (and their ISP) a C&D. Not that it will do any good, but who knows if others have also complained?

Catlap 2

“Once again, I see your lap is occupied.”

“Quiet, I’m reading email.”

“I shall occupy your lap anyway.”


“To show the gravity of this situation, I shall rip off your X and B keys with my claws. Do not let this happen again.”


The letter X is ASCII 120 (lowercase). It is possible to type this on most keyboards without an actual X key.


cats are like viruses, only more polite

“i want to be in your lap” (meow)

“but i have my laptop there”

the four-pawed invasion takes about twenty seconds. like a camel, first the nose. paws and claws follow, then i have to move the computer to avoid tail-typing and mouse-butt-clicking.

“see, you can type with one hand.” (purrrrr).

i am holding the laptop in the air with one hand, and hitting keys with the other. “but i can’t type my work password without two hands.”

“why would you ever want to do that?” (meow. purr)

Smalltalk again

I like Smalltalk. I’ll never ship a product in it, but it’s a fun language to play with. You can do seriously nifty things in no time at all once you “get it.” The problem is, of course, that on Monday morning you have to come back to work and push semicolons and curly-braces around for a living again. Is the letdown worth it?

It’s a little like this: Remember the first time you wanted to “grep” a piece of paper or a book? The information was there in your hands, and you were inches away from an answer, but you couldn’t do a search. Dead paper sucks.

Dead-bits languages suck, too. “All I want to do is make a closure here.” “Man, if only I could change the way this method in the compiler works, then…” Once you get it, nothing else is quite the same.

Anyway, I have a cartoon on my door at work. It’s a simple black background, with a “talk” balloon and the words

“Oh no, I typed ‘Processor := nil’!”

You probably have to be a Smalltalk geek to appreciate this. The point is that there aren’t many other systems on the planet where you can delete the CPU object that powers your development environment. The result of this is, of course, utter catastrophe, and thus the point of the cartoon. It’s really beautiful; a system with near ultimate flexibility, and the God-given right to shoot yourself in the foot in very interesting ways. The real joke is on the rest of us, the schmucks who get to herd #define symbols all day long.

People stop by my office occasionally and comment on the Smalltalk cartoon. These people form a smallish clan, and a tragic one; I think we all know what we want, and it doesn’t include wrangling double-colons and -> symbols into loose formation. Doing memory management is better these days, and reflection is pretty decent to have, but near-unparseable, dead-when-compiled languages are still the mainstream.

* * *

One of my objections to the Smalltalk mode of development was that it is environment based. You get into a little shell and start interactively wiring stuff up; the concept “what is a program?” is fuzzy. Getting your stuff working in another Smalltalk environment is a process akin to infection; you file-in stuff to the other environment and get similar stuff wired up the way you did it originally. The potential non-repeatability of this process gives hard-core conservative engineers the heebie-jeebies. It’s a little too much like sharing dope.

But these days, the dividing line between environment and program is getting fuzzier even for “dead bits” languages. Want to program in Java or C#? You have to install a ton of other stuff, configure registry settings, get config files lined up, set up environment variables, install databases, tweak security settings and invoke the just-in-time debuggers when things choke and spray bits. It’s really the same thing as interactively hacking in Smalltalk, just less integrated, arguably more ad-hoc, and unarguably a lot less fun.

* * *

Anyway, visit for a breath of fresh air. Read the papers, download Squeak and have fun for an hour. It’ll do you some good.

Buck Rogers

I have three memories of Buck Rogers:

First, the book: Armageddon 2419 A.D., by Philip Nowlan. Surprisingly decent.

Next, a coffee-table book: The collected works of Buck Rogers in the 25th Century: I “wasted” hours and hours pouring over this, wishing that the editors had included just one or two more strips from the various plot excerpts, which always seemed to be cut off at cliff-hangers. Ack!

Finally, the TV serial from the late 70s and early 80s. Oh, the horror. I made the mistake of recording this on our TiVo, thinking it was some other adaptation of BR. Nope. My wife found it, then forced me to watch five minutes of it before she couldn’t take any more and bailed. Ugh.

But I recommend the book, if you’ve got a lazy couple of hours to rip through it.