Tombstone
ZTimeAlloc
Oct 2001 · age 19
What it was
A four-day timeline editor in C++ and MFC, built on top of Jeff's own separately written timeline library. It drew a 60-second ruler and a labelled bar for each of twenty-four spans of hard-coded test data. You could drag a slice by either handle or by its body, snap it to the grid, stretch the whole timeline to the window, double-click to create a slice, and right-click to edit a slice's weight in a box placed right over it. The best part was what happened when a drag ran into a neighbour: instead of refusing to move, the slice slid flush against the obstacle from whichever side the mouse was on. It stopped the afternoon it first worked, with nothing to load and nothing to save.
Wins, for the age
- At nineteen, in the first editor on record, Jeff made a collision feel like bumping into something rather than hitting a wall. Premiere's timeline had those manners in 1991; this primate found them alone, by asking the model what it would hit.
- Put every geometric question in one set of rectangle functions used by both drawing and hit-testing, so what you saw was exactly what you could click.
- Ran the whole interaction on a one-character state machine, and previewed a drag by substituting in-flight values only for the slice being moved, with no copy of the model.
- Committed an in-place edit when the pointer wandered away, a discoverable edit with no dialog.
What it taught
- Geometry lives in one place, and the model is consulted for constraints instead of the view guessing. Both habits make editors good, and both were here in the first one.
- Build the consumer of a library right after the library. That is how an API gets exercised.
- An editor is finished when it can save, not when it can drag. The data evaporated on close, which made this a demo.
- Beta code leaks through its edges: a slice pushed left past zero flipped to a positive position, and double-click could create an overlapping slice without asking.
Genealogy
Ancestors: none on record. The first editor, built to exercise a new library. Descendants: Z Timeline: the timeline library underneath, later given away with a license. World Bootstrap: direct-manipulation editing and snapping, grown into a CAD tool.
Epitaph
Here lies ZTimeAlloc, a timeline editor that could snap, slide and edit in place by Saturday afternoon, and never learned to save.