I've written quite a bit of open-source code over the years – sometimes because I use it for work, and sometimes just for fun.

A few of my favourite projects are listed below, or you can find pretty much all my code on my github profile page.

The more serious stuff:

  • PyPyJS is an experimental python environment for the web platform, built by compiling the PyPy interpreter into javascript via emscripten, and re-targetting its JIT compiler to emit specialized asmjs code at runtime.
  • Esky is an auto-update framework for frozen python applications. It provides a simple API through which apps can find, fetch and install updates, and a bootstrapping mechanism that keeps the app safe in the face of failed or partial updates.
  • playitagainsam is a python program for recording and re-playing live terminal sessions, which I have used for several technical presetnations. It comes with a web-based player for easily embedding the sessions into HTML slide decks.
  • PyEnchant is a spellchecking module for Python. It wraps the excellent Enchant spellchecking library and provides a nice "Pythonic" object-oriented interface.
  • FS is a filesystem abstraction for Python, providing uniform access to ordinary filesystems, zipfiles, Amazon S3 and more; spearheaded by Will McGugan.
  • dexml is a simple Object-XML mapper for Python, loosely inspired by the Django Object-Relational mapper.
  • django-supervisor aims to combine the process-management awesomeness of supervisord with the convenience of Django's mangement scripts.
  • signedimp is a python import hook for secure loading of cryptographically-signed code.

The fun hacks:

  • withrestart is Pythonisation of the restart-based condition system from Common Lisp. It's designed to make error recovery simpler and easier by removing the assumption that unhandled errors must be fatal.
  • withhacks is a suite of building blocks for hacking Python's "with" statement.
  • promise is a set of bytecode hacks to optimize Python code based on staticness assertions.
  • magicsuper backports Python3's zero-argument super() function to Python2, using a little frame-walking trickery.
  • autoself is a Python module that uses bytecode hackery to automagically insert the "self" argument in method definitions. It's just a technology exercise and should never be used by anyone...