In the course of my work, I see (and use) a lot of software. I design software. I enjoy good software. This page contains brief notes on new programs I happen to see, especially notes on interesting and unexpected questions the programs raise.


15 April 01



A gorgeous, abstract game. Computer games are mired in literal realism -- in rendering images that look like everday experience. Tranquility is an abstract experience straight out of 2001 -- abstract shapes float in space, following their own geometrical paths, and you float among them. Nicely executed, easy to learn, and oddly addictive.

An interesting twist is that the game is licensed ($25/yr) instead of being purchased outright. When you start a new level, you fetch a custom-made scenario from the central server. This architecture could be abusive, but also allows seamless updates, personal adaptation, and a host of community-building schemes that might help keep games alive beyond the initial marketing burst,

Palm IIIxe

4 February 01



Information Appliance. The term "information appliance" has come to suggest dumbed-down computing devices, computers for people who don't want to know they're using a computer. But that isn't the whole story, or the right story. I don't care about an icebox that surfs the net.

A few years ago, I lost my DayTimer somewhere in a South Carolina auditorium where I was speaking. I lost a lot of useful paper: a list of books I planned to read, a list of movies I wanted to see, a list of wines I wanted to avoid buying again. It was easy enough to replace the leather, but the lists were gone for good.

For the past six weeks, I've been working on a project at Eastgate called Life with Palm, where we're trying to integrate Palm devices into our work. It's part of planning for Ceres, a new hypertext tool for making and analyzing notes. A common concern about handheld devices is their size and fragility. If I depend on the PDA, what happens if it break? If I lose it?

Losing a PDA is far less traumatic than losing its paper equivalent. My old Palm III had been dropped once too often; from time to time it wouldn't notice that you were writing until you squeezed it just so. This made Life with Palm more vexing than it ought to have been, and might lead to false conclusions. As new models are about to appear, it was easy to find a brand-new device (with more memory) for about $200 -- about twice the cost of that diary I lost in South Carolina.

I synced my old Palm one last time. I unwrapped the new Palm, popped it into the cradle, and pushed a button: a few minutes later, my new Palm was a mirror image of the old -- but bigger and less beat up. This little narrative teaches several lessons:

  1. Palmtops are appliances. Every Palm is equivalent; it didn't matter that my new Palm was a new model, nor that it ran a new version of the operating system.
  2. The Hot Sync conduit architecture is brilliant. It wasn't designed for backup -- it was designed to let road warriors coordinate with their secretaries -- but it works beautifully for backup as well. Note, for example, that there was no danger of replacing the new Palm's fresh operating system with the OS patches from my old Palm. Simple, elegant, deep: the marks of fine software craftsmanship.
  3. PDAs are cheap compared to the value of the data they hold -- even if the data don't include secret plans and formulae, and even if you don't use the Palm for scheduling. (Obviously, if you rely on your PDA for managing appointments, the data are far more valuable. A sales call costs at least $200, so a single fouled-up appointment costs as much as a new PDA)
  4. Keeping a spare palmtop in your desk drawer can be good safety net. (Of course, in the US you can easily have a fresh PDA delivered overnight)
  5. It's a mistake to think of a PDA a tiny computer. It's a peripheral, like a printer. Moving from one computer to another is work; I have three systems on my desk at Eastgate, and when I replace one of them it always takes a week or two before the new system is broken in, everything is installed, and the new machine feels comfortable. Ten minutes after I opened the box, the new Palm was my old Palm.

Flash 5

1 Feb 01



Prototypes in Flash 5. In its latest incarnation, Flash's scripting language has changed in subtle but profound ways. First, some of the worst cruft has been fixed; people no longer need to enter trig tables by hand. But, more significantly, the language has been recast as to use prototype inheritance and user-defined objects. This is especially interesting becauseHampshire, the back-end to Storyspace 2 and Ceres, is also prototype-based; I've always liked prototype languages, but they've never been popular and, in recent years, it seems they've been largely forgotten.

The language has some undocumented power, too. Arrays seem to be documented to perform like STL vectors, but it turns out they're actually associative maps;

blackboard["foo"]=new Bar();

appears to work exactly as you'd like. Is this an example of hidden expressiveness, or merely a parser bug?

Whether the Flash audience — many of whom have no programming background at all — will understand and use prototypes is going to be an interesting question.





home | notes | software | magazines | email me!

Books: 2001 Summer | Spring | Winter | 2000 Fall | Summer | Spring