Freie Software


English version

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.

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

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

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

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

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

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

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

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

Ein Python-Paket und ein Kommandozeilenwerkzeug, das ähnlich der Google-Toolbar die Bewertungen (Page ranks) einzelner Webseiten von Google erfragen kann.


07.11.2017