I gave Python a go after reading Eric Raymond's Why Python?, and it rapidly became my favorite language. It's simple, it's elegant, it's clean... and most importantly, it's very powerful. Apart from simply using Python, I've gotten involved with the Python user and developer community - from spending time at my local Python interest group to attending PyCon USA - and found it an incredibly friendly and helpful community. I'd heartily encourage anyone to learn and get involved with Python.

Here are a few little programs I've thrown together...

SpamCubed, a University mass mailer

SpamCubed (for Spam3) is one of the first programs I wrote in Python, fascinated by the ability to easily build a command-line read-evaluate-print interface. Using the University mail server, it sends out e-mails without making it obvious that a large list of people has been targeted. Just as usefully, it is capable of running addresses through the University's online contact search (to verify that they exist) before sending. I wrote it to help me send out lots of birthday party invitations, making sure I hadn't misspelled any names - however, an unfortunate side effect of the trusting nature of mail transfer protocols is that mail can be 'spoofed' and appear to come from virtually any address.

It has a fully-fledged command-line interface and can load and save data from files. It is, however, very specifically designed for Oxford University and University-style email addresses, so may not be suitable for other applications.

Licensed under a BSD-style license.

Download/ View Source - it's labeled with an additional .txt extension to allow it to render in a browser.

CGI Obfuscator

Use the CGI obfuscation methods! The obfuscator was something I initially wrote in Safeperl, to try out on University webspace, because I was playing around with simple encryption at the time. A little obfuscation can be helpful sometimes, so I've ported it to Python and put it up here.


The back-end for was written by me. Entirely in Python. Being the open-source fanboy that I am, I looked around the web for solutions that would fit my bill, and then modules that would fit my bill, and found just one: the SpamBayes project's PyMeldLite templating engine. All the other parts were written from scratch.

As the Python web ecosystem's evolved and as I've learned not to reinvent the wheel, I've gradually incorporated bits of third-party code into FerretBrain, so that templating is now provided by a modified meld3, OpenID support is provided by JanRain's libraries, and so on.


Having failed to find an appropriate solution for FerretBrain, and wanting to learn more about web servers in Python, I wrote my own WSGI framework. It has a mini-site here, and runs the apps section of this site!