Code
Background
Most of what I write is written in Python, which is an interpreted, interactive, object-oriented programming language. It combines remarkable power with very clear syntax. It has modules, classes, exceptions, very high level dynamic data types, and dynamic typing. I don't enjoy programming in anything more than I do in Python.
When I post about Python on my web log , I use the tag python . Whenever I have code examples on my web log, I use the tag code .
But then, we don't always get to work in what we prefer, and it's always good to learn new languages, so there's stuff in PHP here too.
TurboGears
No, I didn't write TurboGears . I wish I was clever enough to - it's a great web application environment for Python. I have written the occasional bit of software for it.
When I post about TurboGears on my web log , I use the tag turbogears .
Engal
Engal is a simple photo gallery for TurboGears .
Gibe
Gibe is a simple blog engine. I use it to run my web log .
TGOpenIDLogin
TGOpenIDLogin allows TurboGears applications to accept OpenID logins.
TGSociable
TGSociable is a simple port of the sociable Wordpress plugin to TurboGears as a widget, to display links to post the current page to various social bookmarking sites. It provides a Gibe plugin to automatically display the widget above Gibe posts.
GibeAmatomu
GibeAmatomu is a simple widget to embed a Amatomu.com tracking code into a page. It provides a Gibe plugin to automatically do this in Gibe posts.
Other Python stuff
sisynala
sisynala is a simple web log analyser creating HTML output including numerous useful graphs. It probably only answers the questions I want answered - I don't know of anyone else who uses it.
KnowledgeTree
KnowledgeTree isn't written in Python, but it is still quite cool - I have to say that since I was the Lead Developer/Architect/Community Manager/Vice President of Engineering/Business Analyst/Coffee Boy/&c. on the project from its relative infancy.
KnowledgeTree is an open source document management system, written as well as I could do in PHP, with an approaching clean core, and a plugin architecture to make it easy to extend (within the document management realm). I no longer work at Jam Warehouse, the owners of KnowledgeTree, but I still occasionally write some code for it.
Recently, as a learning exercise, I wrote an Amazon S3 Storage Manager for KnowledgeTree.
I've written a number of posts about KnowledgeTree (including from when I was the Lead Developer) on my web log , using the tag knowledgetree .
Older stuff
Most of the stuff below was written a long time ago, so it probably isn't compatible with recent versions of the software they are built for or with. But maybe they'll be useful to someone...
Twisted
Twisted is a framework, written in Python , for writing networked applications. Twisted comes under a relatively non-restrictive open-source license, making it suitable for both commercial and open-source development. Twisted has a knowledgeable, energetic, and growing developer community.
Applications
- tnntprss - An RSS to NNTP bridge written in Twisted , providing a news server with newsgroups containing posts as RSS feeds are updated.
- stikiwiki - A simple Wiki-like web application using the Twisted framework, that allows anyone to create and maintain web pages defined in reStructuredText.
- bannergrab - A Twisted TCP banner grabber for SMTP/ssh/&c., supporting multiple IPs and networks using netmasks and prefix notation.
Protocols and libraries
- Jabber protocol - client protocol for Jabber
- pcap protocol - network packet capture protocol (requires pylibpcap )
- SNMP protocol - SNMP client protocol (requires pysnmp )
- SCGI Channel - SCGI support for web requests to Twisted
- SMPP protocol - Short Message Peer-to-Peer protocol (used by Short Message Service (SMS) gateways over the Internet)
- Exim Queue Manager