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