Sylvain Wallez indirectly reminded me that I, too, have my 10-year anniversary in the Open Source world this year. On October 24, 2000, my first post went to the fop-dev mailing list (Apache FOP developer list), 11 months after the Apache FOP project had started.
I had started a new job back then which began with a project that should format invoices from the health sector to PostScript and print them on large-scale printers including automatic packaging. And for that XSL-FO looked like the right technology, but FOP had to learn how to use fonts other than the base 14 set (Helvetica, Times, Courier, Symbol and ZapfDingbats). Finishing some work started by someone else, my first contribution was initial support for custom Type 1 fonts.
Today, I’m probably the FOP contributor with the longest service record in the project.
I went through the hype phase (2001-2003) as well as the difficult time of the redesign after the famous 0.20.5 release which saw an almost complete exchange of the project team between 2003 and 2005. From 2005 on, we worked towards a stable FOP again that quickly surpassed the old 0.20.5 release for which soon there was almost no expertise around anymore. It’s unbelievable how many people still use 0.20.5 and say “we can’t upgrade”. Many of the problems they have are simply solved in the current release. Anyway, since this year’s 1.0 release, FOP finally doesn’t carry that undeserved taint of an 0.x software anymore. It was just a version number but not an indicator of FOP’s production readiness. The initial goal of a complete implementation of the XSL 1.0 standard was just unrealistic. There’s not even one commercial implementation on the market which achieved that goal. Many people came and went during all that time. FOP is what it is today through contributions from all of them.
Lately, AFP is a big topic where FOP took big leaps forward in the last 2-3 years. Color is also becoming more and more important as color printing gets cheaper and transpromo is gaining interest. Even in today’s world the number of pages printed still increases every year. Apache FOP is well positioned to cover the printed document as well as the electronic document. XSL is an established and accepted technology today. And Apache FOP is often the “entry drug” for people who start XSL. Many stay with it producing millions of pages each year. During the stagnation of the redesign phase, some FOP users turned to commercial implementations like RenderX or AntennaHouse. After 2005 I saw many switch back again after the major improvements because some of the commercial implementations couldn’t offer much more but had a higher TCO depending on the use case or because they offered unsatisfactory support and couldn’t influence the development direction enough. Apache FOP might face some difficult time ahead since the layout engine (the core) didn’t see considerable development lately. Some features like table markers, flow maps and auto-table layout would do FOP some good but it won’t be easy to implement.
Between 2000 and 2003, Apache FOP was part of my job and quickly became a hobby, too. I’ve developed Barcode4J (an open source barcode generator) during that time which plugs nicely into FOP. From 2004 to 2005, FOP was just a hobby as I worked part-time for a small company maintaining a model-driven application framework. In 2005 I went freelance offering commercial support, consulting and development services around Apache FOP. At times, FOP created up to 90% of my income. I did not get rich, of course, but the fun counts, too. It wasn’t always fun. Heated arguments over mostly non-features nibbled at my motivation which triggered me to reduce my involvement in FOP a bit. This year was dominated by two interesting projects that involved producing full-color PDFs, both Web-to-Print. One is Swiss Post’s DirectFactory, a web plattform where you can design and send postcards (or even chocolate wrappers now). The other was for a company that produces photo books, calendars and other gifts from within the browser. That finally got me back to a user role a bit. Before that I basically just hacked FOP without really using it myself. It’s interesting how the perspective shifts again when switching back to the user side. This is particularly important to me now that the EUR, GBP and USD are very weak against the CHF. My commercial support business gets increasingly more difficult because most of my clients are located outside Switzerland. And that means I have to shift my main focus to domestic clients but without leaving my past clients in a void.
I’d like to note something interesting in that context: In all my freelancer time since 2005, I’ve never picked up the phone to look around for projects. I was lucky that they always found me, often even at the right times. A large part of it, I’m sure, is my presence on the Apache FOP Users Mailing List. By answering questions, people recognize a recurring name at some point. When some users run into a problem they can’t solve easily, they often turn to me for a higher service level than is possible on the users mailing list. That said, I believe there is room for a good developer to get challenging tasks as part of a commercial support service for Apache FOP, especially if he’s not afraid of the complicated topic of paper layout and he’s not located in Switzerland which is currently just too expensive due to the currency weaknesses. Such an additional resource would be good for FOP.
Last year, I’ve started to develop an output management server which uses Apache FOP as its main formatter. Although a minimal version is now live working nicely for the DirectFactory, it turned out to be too big an endeavour for a one-man show besides end-user projects and the FOP commercial support. So I’ll be investing in a smaller product first that hopefully will create a little multiplicator for me which commercial support services simply can’t provide. To wrap up this admittedly lengthy post, I need to say that Open Source is a very important topic for me. When done right, it is such an effective way to pool resources and to create high-quality software. Getting rich with it (not that I need to be) is difficult, so the right way is probably somewhere in between commercial and open source products. My wish is that more users of Open Source software think about contributing something back to the many products they use. There are various ways to do that. Too often, people treat OSS as freeware which it simply isn’t.