Projects


Newest stuff first. The older section is incomplete.
  • sys-arch - An experimental tool for drawing complicated system architecture diagrams.
  • Ajax debug toolbar - A chrome extension to enable a debug toolbar that makes sense for sites with lots of ajax calls.
  • Bathroom occupancy server
  • Name Practice - A rough little tool to practice remembering people's names when I meet them.
  • Shopping Brain - A mobile (web) app to make frugal grocery shopping easy, based on Mr Money Mustache's strategies for shopping. Recently started and very rough. Source.
    Javascript/angular. Since I had a pretty good handle on angular  before starting this one, the code is very nice and was a breeze to write :-)
  • Mint Condition - A simple, and specific-to-my-workflow tool for recategorizing spending records from mint.com.
    One of my first Elixir programs.
  • 0install Homepage Redesign Proof of Concept - I did a very rough POC of how I think the homepage should look like. My rationale is in this thread.
  • Stripe Capture the Flag 3 - I got the first 4 problems but didn't finish the last one. I learned a lot though: git internals, calling c from ruby, a bit about sha1, node.js, trie indices, inverted indices, trigram indices, go, and the paxos and raft algorithms for distributed systems!
  • Bill of Material Generator - A documentation tool for Open Source Ecology to generate BOMs from properly formatter assembly guides.
    Written in js with angular (but it's tiny).
  • backup.js - A library to make html local storage backups super easy.
  • CNC Torch Table - A computer controlled metal cutting machine. I helped build one for Open Source Ecology. Docs.
  • Ironworker - A metalworking machine that can cut/shear big pieces of metal. I helped design, build, and document one for Open Source Ecology. Docs. Video.
  • Backhoe - I helped design and build a backhoe for Open Source Ecology. Docs.
  • Do MeA to do list program which will work exactly the way I want.
    A key design decision is to have a really dumb server only used for storage, so it can eventually support Unhosted. It can work offline and does pretty smart merging of changes. There are desktop & mobile interfaces.
    It uses angular.js, mobile angular ui, and the server is hosted on google app engine in python.
  • Valium - An automatic file validator to ensure downloaded files haven't been tampered with. Phase 2 would make it into a crowdsourced antivirus tool, but there's hasn't been enough outside interest and I'm happy with it the way it is.
    Uses PyQt.
  • Automatic Turtle Feeder - An Arduino based gadget to feed my turtle while I'm away.
  • Drink - I was playing with a super simple cross platform audio player using PyQt.
  • PR2 Sushi - Making the PR2 robot set the table and clean up.
  • Config files - Not actually a project, but this is a handy place to put the link.
  • PR2 Poop Scoop - Another PR2 hackathon, this time to get it to find and clean up poop. It's hosted in the same repo as pr2 band. The code here may be a little out of date since we did the actual development using a different svn server.
  • Video Delayer - I needed a tool to stream video from my webcam with delay so I can do something and then watch myself doing it. I couldn't find one easily so I wrote one.
  • Simple DM Forums - I started writing an alternate interface to the old crufty Dragonmount forums and then learned the site's about to be overhauled so killed it. There's a web crawler written in Python using Scrapy and a simple Django frontend build around django-forum. I finally started using Fabric. Hurrah!
  • devcron - A cron runner for use in development.
  • Dashboard for The Takeaway - I developed a web app for WNYC for the producers and radio stations that broadcast The Takeaway. The backend is Django and the client uses jQuery and some other libraries to be all ajaxy.
  • PR2 Band - A weekend hackathon to get the PR2 robot to play music for the ROS quickstart competition.
  • WhensGood - An event scheduling site I started, but is still pretty rough.
    Written in Java using GWT.
  • Jackbot - Robotic road following car.
    Main control software written in Python. Microcontroller software written in PBASIC for a Stamp and C for an Atmel AVR.
  • Customized Keyboard - I split a Kinesis Advantage and put each have on pivoting mounts to improve the ergonomics.
  • Voice Coder Wiki Converter - Some rough tools for converting the Voice Coder wiki from an ancient format to mediawiki.
  • rcs.py - A basic python library for parsing rcs history.
  • Dollop - A very simple unix-like kernel for x86 written in the D language.
  • Hardware Ray Tracer on an FPGA. This was a project to develop a hardware ray tracer in VHDL on an Altera board which output through a VGA chip to a monitor. We connected our hardware to the system bus on the supplied FPGA computer which had a CPU, memory, PS/2 hardware, and other peripherals that could be added as needed. Then we wrote software in C which ran on the CPU and drove our hardware to display cool things.
  • Add Gevent - A really hacky greasemonkey script I whipped up to give me a working link to add events from facebook emails to my google calendar. I think it's broken now. Google, fix your event email parsing!
  • C Flat (Cb) - A compiler for a small C-like language.
    Written in OCaml using Ocamllex.
  • Remote Hardware Virtualization - A patch and addon to QEMU to allow connecting to USB devices on other hosts.
    Written in C.
  • Sprite - A small compiler for a small Javascript-like langauge.
    Written in Java with Antlr.
  • Blobs Video Game
  • Coding Contest Manger - Someone else has taken over the development of the project. They now host it here.