Hauptinhalt

IT-Projekte

  • Web-Anwendungen
  • Datenzentrierte Anwendungen
  • Workflow-Automatisierung (besonders in der Druckvorstufe)
  • Automatisierte Drucksachenerzeugung
  • Datenkonvertierung (z.B. XML, CSV, DOC)
  • Database Publishing
  • Server-Administration

2018–2022 unterstützte ich als freier Mitarbeiter die Abteilung Technische Dokumentation einer Maschinenbaufirma, seit 2023 bin ich dort angestellt. Eine Vielzahl von Maschinen-Handbüchern in diversen Sprachen (inkl. Russisch und Japanisch) wurde von InDesign auf LaTeX umgestellt. Ziele waren die Modularisierung, Versionierung und rationelle Übersetzbarkeit. (Ich habe daran nur wenig programmiert, sondern arbeite an den Anleitungen mit, leiste Support und bilde die Schnittstelle zwischen den technischen Redakteurinnen und der Entwicklerin.)

Im Winter 2017/18 habe ich mich für zwei Kunden in das Open-Source-Geschäftssystem Odoo (früher OpenERP) eingearbeitet. Beide Projekte wurden wieder gestoppt.

2015/16 habe ich für das eBilim-Projekt der University of Central Asia eine digitale Bibliothek mit Invenio eingerichtet, die für den Besuch abgelegener Regionen zusätzlich auf einen mobilen Server synchronisiert werden musste, und mich dafür tief in den Datenaustausch mit Bibliotheksformaten eingearbeitet. (Durch die Zusammenlegung mit einem anderen Projekt wurde der Datenbestand danach auf dspace migriert.)

Einige Jahre lag der Fokus auf Werkzeugen für Verlage (Web-Anwendungen z.B. für Belegversand, Redaktion, Heftplanung, Kleinanzeigen, Mitarbeiter-Koordination) – aus verschiedenen Modulen sollte ein System für Redaktionsarbeit und Verlagsverwaltung wachsen: fiëé cérébrale. Leider sind mangels Kunden nur Teile davon in Betrieb gegangen, und seit Mitte 2020 sind auch diese offline. Die Reste sind ins Backend der Website meines Verlags Dreiviertelhaus eingegangen.
 
Manche interessanteren Projekte darf ich nicht als Referenzen angeben, da sie Firmengeheimnisse meiner Kunden enthalten. Ein bisschen Open-Source-Code habe ich auf GitHub und Codeberg veröffentlicht.
 
2001–2005 habe ich Werkzeuge für den Workflow einer großen, regionalen Tageszeitung entwickelt, mein bisher größtes Projekt (und mein erstes ernsthaftes Projekt in Python): Jede Nacht mussten ca. 400 Zeitungsseiten (als PostScript-Dateien von ca. 10–250 MB) in PDF umgewandelt werden, jeweils in zwei verschiedenen Auflösungen für Archivierung und Internet. Dabei hat sich herausgestellt, dass der Adobe Distiller zwar weitaus die effektivsten PDFs erzeugt, allerdings mit diesen Datenmengen oft überfordert ist. Nach einem halben Jahr Entwicklungszeit lief meine Lösung so stabil, dass ich mich arbeitslos gemacht hatte (es wurde auf ein neu gekauftes System umgestellt, das diese Funktionen allerdings erst nach einem weiteren halben Jahr dazu bekam, obwohl sie von Anfang an bezahlt waren, während mein System ohne Betreuung offenbar problemlos weiter im Einsatz war). Ein paar Stichworte dazu:
  • Dynamische Lastverteilung über mehrere Workstations (virtuelle Windows-Server), asynchron gesteuert von einem Twisted-Server.
  • Auf jeder Workstation lief ein Distiller, der von einem Twisted-Client beschickt, überwacht und ggf. neugestartet wurde. Vor dem „Destillieren“ musste der PostScript-Code gepatcht werden, da er für die Druckplatten-Belichter zugeschnitten war und auf dem Distiller nicht immer funktionierte (Drehung, richtiges Setzen der Bounding Box, PDF-Zusatzbefehle, Korrektur von Sonderfarben).
  • Die Mitarbeiter in der Produktionssteuerung konnten mit einem grafischen Werkzeug (Oberfläche mit wxPython) verfolgen, welche Seiten sich in welchem Zustand befanden (fehlend, in Verarbeitung, fertig) und ggf. eingreifen, um sie zu überprüfen oder neu anzufordern. Jede Seite wurde dabei durch einen farbigen Button symbolisiert. (Erst wenn alles „grün“ war, d.h. alle Seiten fehlerfrei verarbeitet waren, durften sie nach Hause gehen.) Eine erste Version mit Perl/Tk war unerträglich langsam.
  • Die Daten über die Zusammenstellung der jeweiligen Regionalausgaben kamen zunächst aus manuell ausgefüllten Excel-Tabellen (hier waren eine hohe Fehlertoleranz und entsprechend sinnvolle Fehlermeldungen an die Mitarbeiter gefordert), später aus dem neuen Blattplanungs-System (wo zunächst monatelang sehr schwer zu parsende Textdaten zur Verfügung gestellt wurden, bis ich herausfand, wie ich die benötigten Daten direkt aus dem System abrufen konnte – ich war entsetzt, dass ein „großes, professionelles“ Workflowmanagement-System auf der Serverebene hauptsächlich aus einem Haufen Shellskripte bestand...).
  • Die Daten wurden in einer MySQL-Datenbank gehalten; da der ursprüngliche Server mit der Fülle der Anfragen überfordert war und wir außerdem zur Sicherheit ein Backup haben wollten, gingen schließlich nur noch die Schreib-Anfragen zum Master-Server und die Lese-Anfragen an einen Slave.
Ein weiteres Beispiel: Bei der Neugestaltung der Zeitung wurden auch die Rubrik-Überschriften für die Kleinanzeigen überarbeitet. Sie wurden als einzelne EPSe benötigt, ca. 300 Rubriken in jeweils 7 verschiedenen Breiten. Nachdem ich mitbekommen hatte, dass eine Auszubildende bereits seit Stunden damit beschäftigt war, diese in InDesign zu setzen, schrieb ich ein kleines Python-Skript, das die Excel-Liste der Spaltenbezeichnungen auslas und die Riesenmenge an EPS-Dateien in Sekunden herausschrieb. Das hat sich sehr gelohnt, da im Zuge der Neugestaltung sowohl Bezeichnung als auch Gestaltung der Rubriken noch mehrfach geändert wurde.