-> Technical

Automated tracing for javascript

I made blunt-instrument primarily to help visualize the execution of algorithms. You can paste code directly into the web app and see the value of every expression. It's a bit like a time-traveling debugger, but values at all points in time are shown in a table, rather than requiring you to step through the code line by line.

To build this, I needed a way to faithfully serialize a javascript object graph. Serializing to JSON isn't good enough, because that wouldn't handle cyclic references, doesn't record information about object prototypes, doesn't support all data types, etc. I wrote the object-graph-as-json library to fulfill this purpose.

Backup tooling

Note management

I take a lot of notes. I don't want to be tied to a particular service for storing them, or to a particular editor, or to a single uniform file format. I made notesdir so that I could store notes as ordinary and heterogenous files, but still do some of the stuff I would ordinarily have needed note-taking software for. It enables organizing and querying notes by tags, and updating links between notes when you reorganize your directory structure.

VS Code plugins

Programming challenge walkthroughs

Conference notes


Site implementation notes