Revisionist History

The current Time Machine Bucket List

(If a working time machine falls into my lap, these are a few things I’d address…)

Gary Kildall must understand to use linefeed as the line terminator in text files, and not carriage-return plus linefeed. Also, no control-Z nonsense; exact file lengths in CP/M, please.

Intel must choose a 256 byte paragraph size (8 bits) rather than the puny and useless 16 byte paragraph size. Result: An architectural 16 MB memory space, rather than the miserable 1 MB. VisiCorp doesn’t kill itself trying to cram its software into overlays and so forth, and its battles with Microsoft become epic.

Bjarne Stroustrup realizes he has to have a standard string class for the first public release of C++, rather than that iostreams nonsense.

Steve Jobs includes a second mouse button (good luck with that. Maybe if we get him really high this time…)

There must be threads in V6 Unix. They don’t need to be fancy, they just need to get people thinking. (This probably means coroutines in C).

Brendon Eich runs into Walter Smith in a bookstore in Palo Alto. Hey, isn’t that Guy Steele over there, talking to Doug Crockford? They all go for coffee and chat. Steele and Crockford browbeat wimpy Netscape management into giving Brenden and Walter a year to do a great job on JavaScript. ’nuff said.

A mushroom handling accident in the executive dining room wipes out nearly all of the Warner Atari’s upper management. 2600 Pac-Man given nine months of development time, all movie-based games are canceled.

A young Larry Ellison realizes that building boats is really, really cool. He is never heard of in the tech industry. Decades later he runs into Paul Allen and asks for his autograph.

(Note: Stay away from Richard Stallman in all versions of the timeline).



I just finished AntiChamber. I liked it.

It will mess with your head, a lot. A few of the puzzles require careful timing (ugh), and one puzzle towards the end was not obvious at all, but on the whole I liked the way it played merry hell with your sense of space.

I did feel slightly nauseous early on, but got over it. Nowhere near as bad as Descent.

Do NOT play this while reading House of Leaves. Just don’t.


A classic bug

We were at lunch, and I was bitching to my cow-orkers about the USB device I was trying to get running. “It’s flaky as hell,” I said.  “One moment it’s working, the next it’s in the weeds and not transferring data at all.”

It was true; the system would transfer data for a while, then things would stop flowing, transfers would start timing out, and eventually the device would stop enumerating and nothing would work. Then, with no changes, it would start working again.

“It was working great when I got in this morning,” I continued, “But now…”

I’d been twiddling code and writing tests for a week, but hadn’t found the root cause of the problem. One difficulty was that both the hardware and the software were new.  Another was that there were a bunch of barely documented “analog” registers that controlled things like driving current and various transistor-level things; mucking with the settings of these seemed to help, but not always, and what they really controlled was a mystery.

I thought some more. It had worked yesterday morning, too. Then again, after lunch. Then there had been a meeting, and —

“I know what it is,” I said.


Back at my desk, I started up my tests. They were working. I left the unit running, went to the kitchen and drank a can of apple juice. I kept the can.

Returning to my cube, the unit had gone into flake mode again. I used my pocket knife to cut the top off the can and pushed out a dent in the bottom of it with a pencil eraser. I added some insulating tape around the bottom’s rim, and then perched the can on top of the chip I was working with.

I filled the can with ice. Ten seconds later the device enumerated and my tests started working again.

I took the can off: about thirty seconds later the device failed. Can on: working. Can off: busted.

I’m a software guy, but I know a temperature problem when I see one.


“The manufacturer says they know what the problem is, and that they’ll fix it in the next chip revision.”

“That only cost me a week.”

Oh well. 🙂

This is a classic problem in bring-up. I’m embarrassed that I hadn’t thought of it sooner.

vetus plumbum

I was just doing some soldering in the garage. I use a fine gauge solder for ICs and similar small connections (not the lead-free stuff, by the way), but I had to solder a number of larger components with much thicker leads. So I dug out a spool of solder I probably bought at Radio Shack in the mid 70s. I’m sure this stuff is illegal somewhere.

Let me tell you, the moment that old solder hit the iron the smell of its rosin brought back a lot of memories. Modern solder is weak and pale and seems to lack some essential quality; maybe it’s the reason we can’t put people on the moon anymore. I took a deep and slightly toxic breath.

Suddenly I was back in my basement bedroom in Colorado. It was 1978. I was putting together another board of RAM while watching a weekday afternoon rerun of Star Trek on the old black-and-white tube set I’d repaired. My high school homework was in the corner, in my backpack, and I wasn’t planning on doing it because I was going to have a computer working in a couple of days. After soldering another 2,000 connections or so. After which . . .

I’m just returned now. I changed history, a little. I hope you don’t mind.