Here's a guide to the programs I've written and put on GitHub. I've excluded repositories that I don't think will be generally useful, such as task code for my research and forks with trivial changes.
My favorite programming language is Hy, a Lisp-like syntax for Python, but I also use a lot of Python, Perl, and R. I only release software under free licenses, usually the GPL.
Here are some other projects that I'm not a main author or maintainer of, but I've contributed code to:
- Daylight: Software for doing open-notebook science in Org mode. I use it for all sorts of documents, including much of this website.
- Citematic: Scrapes and formats citations to journal articles and books. The formatting code is leveraged by Daylight.
- mturk: A command-line interface to Mechanical Turk (distributed as part of boto; see
- Tversky: A Perl module for running psychology experiments on the Web, especially on Mechanical Turk.
- SchizoidPy: A Python module that wraps PsychoPy. The design is somewhat similar to Tversky, but SchizoidPy is for running experiments on a laboratory computer whereas Tversky runs on a web server.
- Clock-Calc: A calculator for working with times of day.
- Oatmeal: A window manager–agnostic workspace switcher with textual previews.
- Rogue TV: A game show-themed roguelike game.
- mt_repl: A Lua REPL for Minetest.
- Polaris: A game about navigation.
- Heidegger: A Hy (Python) map generator for roguelike games.
- Stardust-Solver: An aborted attempt at a solver for the puzzle game Stardust.
- pandas: A Python library for data analysis that provides R-like data structures.
- Org mode: Software for personal information management and document authoring in Emacs.
- inspect.lua: A Lua library for pretty-printing tables.
- Cataclysm: Dark Days Ahead: A zombie-apocalypse roguelike game.
- Rakudo: A Perl 6 compiler.
- perl6/roast: The Perl 6 test suite.