Dieser Teil meiner Site ist Freier Software gewidmet, die ich in meiner Freizeit entwickle. Informationen zu meiner Arbeit als Software-Entwickler finden sich dagegen entweder auf der Website der Firma gocept, wo ich bis 2016 arbeitete, oder per E-Mail. Weiterhin gibt es hier Material zu einigen Vorträgen und Präsentationen, die ich gehalten habe.
Eigene Projekte
Alle meine hier vorgestellte Software (außer genmpage) ist in Python implementiert und im Python package index zu finden.
Wer eines dieser Projekte nützlich findet und seine Entwicklung unterstützen möchte, kann das auf unterschiedliche Weise tun.
- Ophelia: dateiorientiertes Web-Framework
- Phebe: Mobiltelefone ansteuern
- tl.eggdeps: Abhängigkeiten zwischen Python-Paketen analysieren
- Buildout-Rezepte
- tl.rename: Dateien komfortabel umbenennen
- tl.geodrawing: pyGTK-Widget, auf Landkarten malen
- tl.gcrop: Bilder zuschneiden
- tl.cli: Werkzeuge für Kommandozeilenprogramme
- tl.testing: Werkzeuge für Software-Tests
- tl.pkg: Grundgerüst für ein Python-Paket mit Sphinx-Dokumentation
- PDF4Python: PDF-Dateien lesen und schreiben
- genmpage: flexible Minipages in LaTeX
- tl.googlepagerank: Webseiten-Bewertungen von Google abfragen
Mitarbeit in größeren Open-Source-Projekten
Zope
Zope ist ein Application-Server, der in Python geschrieben wurde. Ich habe Python und Zope durch meine Arbeit bei gocept kennengelernt. Seit 2004 verwende ich Python und Teile von Zope in meiner eigenen Software, und seit 2005 entwickle ich selbst an Zope mit.
LaTeX
LaTeX ist ein Dokumentenerstellungssystem, das auf D.E. Knuths Textsatz-Programm TeX aufbaut. Ich habe LaTeX seit den frühen 1990er Jahren verwendet und bin auf der EuroTeX-Konferenz 2003 mit dem Team in Kontakt gekommen. Zunächst übernahm ich die Pflege der Website des Projekts, mittlerweile bin ich Mitglied im Entwicklerteam.
Projektbeschreibungen
tl.rename
- Eintrag im Python-Package-Index
- Online-Dokumentation (englisch)
- Projektseite bei Bitbucket: Quellcode (Mercurial-Repository), Fehlerverfolgung
- Lizenz: Zope Public License (ZPL) 2.1
Eine Python-Implementierung des auf
Unix- und Linux-Systemen üblichen Programms rename
, die mehr
Transformationen als die Ersetzung von Teilstrings oder anhand regulärer
Ausdrücke beherrscht - beispielsweise interaktives Umbenennen.
tl.geodrawing
- Eintrag im Python-Package-Index
- Online-Dokumentation (englisch)
- Projektseite bei Bitbucket: Quellcode (Mercurial-Repository), Fehlerverfolgung
- Lizenz: Zope Public License (ZPL) 2.1
Ein Python-Paket, das eine pycairo-Zeichenfläche mit Geokoordinaten und einer Weltkarte als Hintergrund zur Verfügung stellt. Weiterhin enthält es ein PyGTK-Widget, das diese Zeichenfläche benutzt, und ein kleines Demo-Programm. Die Karte wird als Kacheln von OpenStreetMap heruntergeladen.
tl.gcrop
- Eintrag im Python-Package-Index, Dokumentation (englisch)
- Ein Screenshot
- Projektseite bei Bitbucket: Quellcode (Mercurial-Repository), Fehlerverfolgung
- Lizenz: Zope Public License (ZPL) 2.1
Ein Programm, um Bilder zu beschneiden. Dabei kann man einerseits die Beschnittparameter als Pixelwerte oder mit Hilfe der Maus bestimmen und sieht in der grafischen Oberfläche sofort, was man tut, andererseits soll es in zukünftigen Versionen zugleich möglich sein, mathematische Bedingungen anzugeben, um etwa Mindestwerte für die Ränder oder ein bestimmtes Seitenverhältnis für den Ausschnitt einzuhalten.
tl.cli
- Subversion (Repository)
- Subversion (Web-Ansicht)
- Eintrag im Python-Package-Index
- Lizenz: Zope Public License (ZPL) 2.1
- README.txt
Ein Python-Paket von Werkzeugen für
Kommandozeilen-Programme: mehrere readline
-Historien,
Hilfsfunktionen für Tabulator-Vervollständigung, eine Befehlsschleife, die
Pythons cmd.Cmd
vor allem für Entwickler bequemer macht, und
Funktionen, die den Benutzer mit Hilfe externer Programme Textstrings
bearbeiten und durchblättern lassen.
tl.testing
- Eintrag im Python-Package-Index
- Online-Dokumentation (englisch): für die letzte veröffentlichte Version (PyPI), für die Entwicklungsversion (Read the Docs)
- Projektseite bei Bitbucket: Quellcode (Mercurial-Repository), Fehlerverfolgung
- Lizenz: Zope Public License (ZPL) 2.1
Ein Python-Paket von Werkzeugen zum Testen von Python-Code: Funktionen, die temporäre Verzeichnisstrukturen mit Unterverzeichnissen, Dateien und Verknüpfungen erzeugen und anzeigen; eine Funktion, die Mock-Skripte ins Dateisystem installiert; eine Testsuite, die innerhalb von Doc-Tests den grafischen Inhalt von cairo-Zeichenflächen anhand von Vergleichsbildern testen kann; einen Testcase, der Testfehler in Threads aufsammelt und sonstige Hilfestellung beim Umgang mit Threads in Tests gibt.
tl.pkg
- Eintrag im Python-Package-Index
- Projektseite bei Bitbucket: Quellcode (Mercurial-Repository), Fehlerverfolgung
- Lizenz: Zope Public License (ZPL) 2.1
Dieses Paket enthält eine Vorlage für paste.script, die ein Grundgerüst an Dateien und Verzeichnissen für ein neues Python-Paket erzeugt, welches sich an aktuellen Standards für Python-Code, Paketierung und Entwicklungsumgebung orientiert. Das Paket bringt eine zc.buildout-Konfiguration mit, die eine Testumgebung und einen Helfer zum Bauen der Sphinx-Dokumentation installiert. Für die Dokumentation kommen ein Grundgerüst und ein eigenes Sphinx-Thema mit.
PDF4Python
Eine Python-Schnittstelle zum Daten- und Dokumentenmodell von PDF. Das Paket pdfspec implementiert die in der Spezifikation beschriebenen Datenstrukturen und liest und schreibt PDF-Dateien. Ein weiteres Paket soll Funktionen enthalten, um PDF-Dokumente zu manipulieren. Es ist jedoch nicht der Anspruch des Projekts, den Inhalt eines Dokuments zu erstellen oder zu verarbeiten, also etwa Text zu formatieren, Berichte aus abstrakten Inhalten zu erstellen oder Dokumente am Bildschirm darzustellen.
genmpage
- Subversion (Repository)
- Subversion (Web-Ansicht)
- CTAN
- Lizenz: LaTeX Project Public License (LPPL) 1.3c
Ein LaTeX-Paket für Minipages, die flexibler gestaltet und positioniert werden können. Insbesondere ist eine Ausrichtung an der geometrischen Ober- und Unterkante anstelle der Grundlinie der ersten oder letzten Textzeile möglich.
tl.googlepagerank
- Subversion (Repository)
- Subversion (Web-Ansicht)
- Eintrag im Python-Package-Index
- Lizenz: Zope Public License (ZPL) 2.1
- README.txt
Ein Python-Paket und ein Kommandozeilenwerkzeug, das ähnlich der Google-Toolbar die Bewertungen (Page ranks) einzelner Webseiten von Google erfragen kann.