- web applications
- database applications
- workflow automation (esp. in prepress)
- data conversion (e.g. XML, CSV)
- database publishing
Unfortunately I can’t show you some of my most interesting projects, since they contain company secrets of my customers.
I published some open source code at GitHub
Current projects include tools for publishers (web applications e.g. for shipping vouchers, page planning, classifieds, staff coordination) – from single modules slowly grows a comprehensive system for editorial work and publishing management: fiëé cérébrale
At a former employer’s I developed workflow tools for a big, regional newspaper, my biggest project up to now (and my first serious project with Python
): Each night about 400 newspaper pages (PostScript files of 10–250 MB) needed to get converted to PDF, each in two resolutions for achive and internet. We learned that Adobe Distiller makes the most efficient PDs by far, but it often chokes on those huge files. After half a year of development time my solution run so solid that I rendered myself jobless (management bought a new system that was advertised to include the same functionality, but they grew it only another six months later, while my system run unattended apparently without problems). Some keywords:
- Dynamical load distribution over several workstations (virtual Windows server), controlled asynchronically by a Twisted Server.
- On each workstation a Distiller was running, fed, controlled and occasionally restartet by a Twisted client. Before distilling the PostScript code had to be patched, since it was made for the platesetter and not always worked on Distiller (rotation, bounding box correction, additional PDF commands, spot color correction).
- Production control staff could check all page states (missing, processing, ready) with a GUI tool (wxPython) and if necessary take action to check or re-request pages.
- Data on composition of the different regional issues at first came from manually filled Excel sheets (here we needed a high fault tolerance and meaningful error messages), later from the new page planning system (where I got hard-to parse text files, until I found how I could pull the data directly from the system – I was appalled, that a “big, professional“ workflow management system internally was mostly made up from a bunch of shell scripts…).
- We kept all data in a MySQL database; since our original server was unable to cope with the mass of requests and we needed a backup anyway, only write requests went to our master server, while read requests were handled by a slave.
Another example: As the newspaper was re-designed, also the category titlings of the classifieds were changed. The system needed them as single EPS files, ca. 300 rubrics, each in 7 widths. When I learned that an apprentice was working for hours, setting them with InDesign, I wrote a small Python script that read the Excel list of rubrics and produced the huge heap of EPS files in seconds. That really paid off, since design and titles of the rubrics changed several times during that relaunch.