Personal Programming: A 4D videogame which displays 3D renderings of arbitrary hyperplanes and allows for arbitrary rotations (so you're not limited just to axis-aligned views). Leading up to that, a 3D videogame which is experienced via arbitrary 2D planes, displayed in raycaster-style 2.5D. Turns out to be incredibly difficult to navigate a 3D maze with only a 2D viewpoint....
Personal Not-Programming: Building a pair of 5-foot single staffs with woodburning decorations, metal end caps, and quarter pound lead weights embedded in the end for more angular inertia. Also trying to estimate the electric field in orbit around a pulsar for a science fiction story.
Professional: Building a web-based annotated media player for foreign language instruction that supports video, audio, and plain text, and provides a uniform interaction model for interactive text in plain text documents, transcripts, and subtitles with both automated annotations derived from electronic dictionaries and manually edited annotations.
Personal Not-Programming: Building a pair of 5-foot single staffs with woodburning decorations, metal end caps, and quarter pound lead weights embedded in the end for more angular inertia. Also trying to estimate the electric field in orbit around a pulsar for a science fiction story.
Professional: Building a web-based annotated media player for foreign language instruction that supports video, audio, and plain text, and provides a uniform interaction model for interactive text in plain text documents, transcripts, and subtitles with both automated annotations derived from electronic dictionaries and manually edited annotations.