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.
- Ophelia: a file-based web framework
- Phebe: access mobile phones
- tl.eggdeps: analyse dependencies between Python packages
- Buildout recipes
- tl.rename: convenient file renaming
- tl.geodrawing: pyGTK widget drawing onto geo maps
- tl.gcrop: crop images
- tl.cli: tools for command-line programs
- tl.testing: tools for testing software
- tl.pkg: template for a Python package with Sphinx documentation
- PDF4Python: read and write PDF files
- genmpage: generalised LaTeX minipages
- tl.googlepagerank: query google page ranks
Participation in larger Open Source projects
Zope
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
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
tl.rename
- Python package index entry
- Online documentation
- Bitbucket project page: source code (Mercurial repository), issue tracker
- License: Zope Public License (ZPL) 2.1
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.
tl.geodrawing
- Python package index entry
- Online documentation
- Bitbucket project page: source code (Mercurial repository), issue tracker
- License: Zope Public License (ZPL) 2.1
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.
tl.gcrop
- Python package index entry, documentation
- A screenshot
- Bitbucket project page: source code (Mercurial repository), issue tracker
- License: Zope Public License (ZPL) 2.1
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.
tl.cli
- Subversion (Repository)
- Subversion (Web view)
- Python package index entry
- License: Zope Public License (ZPL) 2.1
- README.txt
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.
tl.testing
- Python package index entry
- Online documentation: for the latest released version (PyPI), for the development version (Read the Docs)
- Bitbucket project page: source code (Mercurial repository), issue tracker
- License: Zope Public License (ZPL) 2.1
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.
tl.pkg
- Python package index entry
- Bitbucket project page: source code (Mercurial repository), issue tracker
- License: Zope Public License (ZPL) 2.1
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.
PDF4Python
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.
genmpage
- Subversion (Repository)
- Subversion (Web view)
- CTAN
- License: LaTeX Project Public License (LPPL) 1.3c
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.
tl.googlepagerank
- Subversion (Repository)
- Subversion (Web view)
- Python package index entry
- License: Zope Public License (ZPL) 2.1
- README.txt
A Python package and a command line tool that queries Google page ranks for individual web page, similar to what the Google toolbar does.