A place for some of my random projects:
- Nixie tube calculator clock: Also read about it in the Hackaday writeup. I reverse engineered the display interface on a 45 year old nixie tube calculator to turn it into a programmable clock controlled by an Android app. Includes open source code, rough schematics and oscilloscope traces in presentation slides. Build your own!
- Guardrails Memory Debugger: Guardrails was written years ago to debug a highly parallel distributed OLAP database. The database had a custom runtime that managed many user-mode fibers with makecontext, swapcontext and getcontext. Most of the test/verification/automation infrastructure assumed clusters consisting of many-core machines. This resulted in very poor valgrind performance due to thread serialization. Older ASAN implementations had difficulty dealing with the swapcontext calls. Thus guardrails was born.
- JSON Split, Merge and Edit: JSONSAM captures some of the techniques I've used over the years to slice and dice large chunks (> 1MB) of highly nested JSON. vim is still my preferred editor and I like to use line-based shell primitives like sed and grep when possible. However, since conventional JSON is not line-framed and JSON-streaming has multipath semantics, it is generally not amenable to direct modification using conventional Unix utilities. JSONSAM addresses this by converting JSON into an intermediate denormalized format (not to be confused with JSON-streaming or new-line delimited JSON). JSONSAM can also perform set arithmetic (union, intersect and difference) on pairs of JSON files.