Free software

Deutsche Fassung

This part of my site is dedicated to Free Software I write in my spare time. If you're looking for anything to do with my work as a software developer, either visit the web site of gocept where I used to work until 2016, or contact me by e-mail. You will also find in this place some talks and presentations I have given in the past.

Own projects

All of my software described below (with the exception of genmpage) is implemented in Python and can be found at the Python package index.

If you find one of these projects useful and wish to contribute to or support its development, you can do so in a number of ways.

Participation in larger Open Source projects


Zope is an application server written in Python. I came to know Python and Zope through my work at gocept. Since 2004, I've been using Python and parts of Zope in my own software and since 2005, I've been a developer of Zope myself.


LaTeX is a document preparation system based on D.E. Knuth's TeX typesetting engine. I've been using LaTeX since the early 1990s and have become involved with the project at the 2003 EuroTeX conference. Having started by maintaining the project web site, I've by now become a team member.

Project details


A Python implementation of the rename program found on most Unix and Linux systems that allows for more transformation than the usual substring or regular expression replacement, including interactive renaming.


A Python package providing a pycairo drawing surface that has geo-coordinates and a map background. It also contains a PyGTK widget making use of the drawing surface, as well as a small demo application. Map tiles are downloaded from OpenStreetMap.


A program for cropping images. On the one hand, it allows determining crop parameters as pixel values or using the pointer while getting visual feedback through the GUI, on the other hand it shall be possible in future versions to apply mathematical constraints to ensure, for example, minimal margin widths or a given aspect ratio of the crop area.


A Python package of tools for command line programs: multiple readline histories, helper functions for using tab completion, a command loop with some added conveniences based on Python's cmd.Cmd, and functions that control external programs to let the user edit and page through a piece of text.


A Python package of tools for testing Python code: functions to create and list sandboxes of directories, files and symbolic links; a function to install mock scripts in the file system; a test suite that allows testing the graphical content of cairo image surfaces against given image files from within doc tests; a test case that collects test errors and failures from threads and some more helpers for handling threads when testing.


This package contains a paste.script template that creates a skeleton of files and directories for a new Python package which applies some current best practices for Python-code layout, packaging and a development environment. The package comes with a zc.buildout configuration that installs a test runner and a documentation builder wrapping Sphinx. Some documentation boilerplate and a custom Sphinx theme are provided as well.


A Python interface to the PDF data and document model. The pdfspec package implements the data structures described in the specification, and reads and writes PDF files. A second packages is planned to provide functions for manipulating PDF documents. However, the project has no ambition to create or process a document's content, such as formatting text, producing PDF reports from abstract content or rendering documents to the screen.


A LaTeX package to provide minipages with a more flexible design and positioning, notably the possibility to align minipages with respect to their geometric top and bottom instead of the base lines of the first or last line of text.


A Python package and a command line tool that queries Google page ranks for individual web page, similar to what the Google toolbar does.