Free Software
Most of the open source software I currently work on is in the Twisted server framework.
- Fusion v0.2.1, a C++ integration layer for Twisted using Boost.Python, allowing implementation of protocols in C++. Note this only works on Linux, for fairly trivial reasons that I haven't gotten around to fixing; send me an email if you want to use this on other OSes.
- Coil v0.2.2, a configuration library for Python programs (updated Dec 10, 2007). One of my coworkers at ITA is now maintaining a newer version.
- Slides, an HTML presentation slides generator, where you write a Python program to generate the slides.
- TwistedJava, an implementation of the Perspective Broker remote object protocol, implemented in Java.
Unmaintained
- Bannerfish, a banner ad server for small sites.
- Cog, a simplistic object database for Python (I'll fix bugs if reported).
- EIO, a high-level Java networking framework wrapping
java.niois not really maintained anymore. - Teud, a Python documentation generator.
Small Hacks
All files are under the MIT license unless otherwise noted.
finddialog-1.0.tar.gz - open a Find dialog in an embedded ActiveX WebBrowser object. Useful as an example of interacting with PyIDispach objects from C++ Python extensions.
Chopshop - split up shoutcast stream into single MP3s.
striphtml.py - strip all HTML tags from a string.
win32taskbar.py - shows how to add an icon to the Windows taskbar using win32all.
adsiAuth.py - authenticate and get roles for users in a Windows 2000 Active directory. Useful for Zope sites.
win32inet-0_1.zip - Python module for Windows, lets you check if the computer is connected to the Internet.
pystartup.py - add auto-complete and a command history that is stored between sessions to your python interpreter.
advogato.py - fetch an Advogato member's diary entries and parse them into a dictionary in the form { date : entry }.
mediator.py - All around the web are sites that let you browse via filters - Anonymizer, John Malkowitch Inc., Babelfish - what Ka-Ping calls mediators. The problem is that if you type in an URL in your browser, it won't work with them automatically, and some, e.g. Akamai (which can be used for anonymizing browsing) don't rewrite URLs for you. So I took an HTTP proxy, and had it send all requests via a mediator of your choice, which means even if it doesn't rewrite URLs all your request will still use it. This code is released under the GPL, and is based off Neil Schemenauer's HTTP proxy munchy.