Tombstone
HUROX Fork: the Jovian Katana designer, working copy
Nov 2006 โ Jun 2007 ยท age 24โ25
What it was
The Windows Forms designer and compiler that built hurox.com's interface. You laid out widgets on layers, attached SQL data objects and HTML encoders, pressed F5, and got one minified JavaScript manager, a PHP dispatcher, sliced and rasterised PNGs, and a timestamped XML copy of the whole design. Its own data model was generated from a 577-line schema by Jeff's earlier schema compiler, so the property grid documented itself. The compiler built a dependency graph from every command and query, refused cycles, and ordered widgets so updates cascaded correctly. Two copies could edit the same design at once over TCP with per-layer locks. The live design held 100 layers and about 460 controls. The last two compiles aborted and left empty outputs, and the final edit, at 01:54 on June 9, 2007, was never built.
Wins, for the age
- At twenty-five, wrote a dependency graph with cycle detection and topological ordering for a reactive UI, three years before Knockout (2010) brought that to the web mainstream.
- One
{id.param}template compiled to four targets: JavaScript, escaped PHP, sample SQL and row encoders. Google Closure Templates (2009) did the multi-target trick two years later. - A home-made minification stack of letter-coded ids, hoisted literals and replace passes, two years ahead of Closure Compiler's advanced mode (2009).
- Buttons rasterised with four rollover states and backgrounds nine-sliced at build time, by a primate who apparently could not stop compiling things.
What it taught
- Generate the model from a schema and the tooling follows: property grid, serialisation and defaults came for free.
- Dependency order is the hard part of a reactive UI. This graph is the ancestor of the reactive trees Jeff built later.
- Deploy by copying your workspace and the whole workspace ships, the designer itself included.
- An unauthenticated socket accepting serialised objects on all interfaces is a door, not a feature.
Genealogy
Ancestors: Jovian Katana V1: the earlier version of this same designer and its site compiler. Descendants: none on record. Its ideas travelled on through the whole workshop instead. Part of: HUROX.
Epitaph
Here lies Fork, a designer that sorted its widgets by dependency, drew its own buttons and let two people edit at once. It saved its last change at 01:54 and never built again.