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.
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,
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:
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.
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.
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)
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)
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
Mac/Win
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.