It was 4am this morning, and I did something stupid. I was trying to write something which would automatically delete all empty documents. Within a few seconds of running it, all my precious data was gone. Oops.

There’s probably some grander lesson to be learned about keeping routine backups and not being an idiot. But the strength of that parable is somewhat weakened because I did manage to get the data back.

Ajax Animator was probably my first large project— I started it after I had exhausted
all the free trials of Macromedia Flash for making silly cartoons in 5th grade.

As my primary focus from the latter half of 6th grade until my early sophomore year of high
school, it evolved through many different iterations and spun off several smaller projects.

I started by downloading Mark Finkle's RichDraw SVG/VML drawing component and pasted code
snippets from various DHTML widget sites until I had something that looked vaguely like
the Flash I knew. Over the years, as I've learned more about programming, I've rewritten the
app several times— going from raw HTML and docment.write to DHTMLSuite to YUI/Ext to Ext 2.0.

Ajax Animator has been featured on MakeUseOf, InfoQ, and has its own Wikipedia article.

You can make any flat, semi-reflective surface into a multitouch tablet with nothing more than an ordinary webcam pointed at an angle. Critically, it's possible to extract 3D information from a scene captured by a 2D camera by measuring the distance between an object and its reflection about a known surface.

ShinyTouch won 1st place at the Fairfax County Regional Science and Engineering Fair, and competed
at the Virginia State Science Fair. It was recognized by the Optical Society of America (where I recieved a book punnily titled Optics Made Clear), the US Patent
Office and the IEEE.

Protobowl is a real time website for competing with friends and strangers on trivia knowledge.
It runs both online and offline, and includes a database of over 90,000 questions comprised of
Quizbowl, Jeopardy, Science Bowl and Certamen questions.

With over a thousand daily players each staying for half hour on average, it eats a month of
humanity every day. Skynet would be proud.

In middle school, I had an iPhone— but it didn't actually have cell service, which led to more than a few expeditions for the fabled WiFi.
My favorite app was Patrick Collison's Encyclopedia,
which contained the full compressed contents of the English Wikipedia. It left a powerful impression on me—
I felt the true power of a real-life Hitchhiker's Guide.

For a long time, Google Music could only upload songs with a proprietary
uploader that only ran on Mac OS and Windows. With a bit (literally) of
IDA Pro twiddling, it's possible to dump and reverse-engineer the
protobufs that get sent to the server to negotiate file uploading.

MusicAlpha is a prototype of a cross-platform implementation of the uploader
as a Chrome app.

I spent the first year of high school mildly obsessed with Google Wave.
To be fair, I still think it's pretty cool— but apparently that opinion
was a minority one.

One problem was that they had tried to replace everything— email,
instant messaging, google docs, mailing lists and web pages—
severing their ties with the outside world. Everything was contained
within a bloated operating-system of a web app.

Microwave was the first real third party Google Wave client. Wave Reader
uses Microwave's core (magnetron?) to to publish waves as plain web pages.

Everyone has a bit of a daily rhythm, which often for better or worse includes scattered visitations of Facebook. I wrote a simple script which polled the Graph API every minute for a list of online friends. Each ring in the chart represents a single friend's 24 hour Facebook routine with centrality indicating total time spent. To the extent that you are your group of friends, this could be thought of as a sort of sociotemporal fingerprint.