software things

chrome-gcode-sender (chrome application)

I wanted to control a CNC milling machine from a chromebook, but there was no software to allow one to send gcode commands to a USB-serial connected machine.

opencut (js library)

Writing gcode for a milling machine is tedious, and the CAD/CAM software flow is complex, involves many programs, and usually overkill.
A javascript library for concisely expressing (in YAML or JSON) the operations a mill should perform

cut list maker

Layout of cuts on lumber is tedious
A javascript toy to take a list of cuts and do the layout work

recipedb (recipes.buckclay.com)

My recipes hosted by Google Sites are too small to read on my ipod/android/whatever in the kitchen
AppEngine/GWT app to serve my recipes in an easy to read format. This also gave me an excuse to play with objectify [quite pleased].

appt2addr (appt2addr.appspot.com)

The car's satnav system doesn't know where my calendar appointments are.
A small service which syncs my upcoming appointment locations to a special contact in my address book, which gets synced to the car via my phone. The service should be usable by anyone.

todo-cal (todo-cal.appspot.com)

Google Calendar won't print task calendars (bills, pet chores, ...) as year-long checklists
A toy AppEngine program to print you calendars as a checklist. It uses OAuth and the Google Calendar API.

latitude notifications (chrome extension)

I'd lose track of time and be late getting home
A Chrome extension which watches locations of your Latitude friends and puts a small notification on the screen when they move about. Sadly Latitude's API is quite limited so this instead reverse engineered their private API.
This extension no longer works due to the shutdown of Google Latitude.

physical things


hard to close garage with a heavy bike in hand
ask Google Home to close the garage


needed a plain alarm clock that I liked
built an alarm clock from scratch