As I wrote in my last weeknote, I decided to switch from LaTeX to HTML for the training manuals and papers my company Freistil Consulting will publish in the future. In this post, I'm going to explain why.
As a computer scientist, system administrator and IT trainer, I've written a lot of documents ranging from single-page articles and a diploma thesis to my book "Perl-Meisterkurs" with nearly 200 pages. And all the time, I've been looking for the format that best supported publishing those documents.
In the early nineties, I learned to like LaTeX. The process of writing documents in LaTeX (write, process, verify, repeat) is so similar to writing software in a compiler language that I found it very easy to learn. And its output quality was just stunning compared to all the text processing software like Word. Also, like for example with Perl, there is a huge choice of useful extensions, called "styles", freely available on the Internet. With those, you can use LaTeX for writing articles and books as well as letters and even presentation slides (or cooking recipes for that matter).
But while you can generate PDF files easily with LaTeX, converting a document into HTML for the Web is tedious, even with the converter software available. And because I needed printouts as well as web pages to display on a projector, I chose DocBook XML as my source format. It's been used for publishing technical documents for a long time and can be converted into PDF as easily as into HTML. Unfortunately, at least using open source tools, the PDF output is not nearly as neat as the one from LaTeX.
So, when I started writing my Perl book, I reverted back to LaTeX and I've been happy for some years. That is, until I decided to focus on online training. Now great print quality didn't matter that much any more and I needed HTML files to publish on our online training platform.
The format had to be based on plain text so I could still use Textmate, my favourite text editor, and Perl scripts to process my source files. There weren't much alternatives left to choose from. One of the most interesting candidates was Markdown. I already use Markdown on most of my blogs because it's easy to write and also easy on the eyes. Furthermore, Scrivener, the writing tool I like most, also supports working with Markdown.
And then there was HTML, simple, plain HTML. I got the idea from Mark Pilgrim's interview on the setup where he mentioned that he's writing his new book in HTML. I liked this idea because doing semantic markup in HTML is easy and by using CSS, you can style a great looking online presentation.
Writing HTML is almost as easy as writing Markdown, especially when you have support from your editor software. Additionally, there was the strategic aspect that if I wanted to involve other writers, I would be much easier to find some who knew HTML than ones with LaTeX, DocBook or Markdown knowledge.
Because I still wanted to be able to generate PDF files, I looked for decent HTML-to-PDF converters. XSL:FO was the main reason I abandoned DocBook, so I researched the alternatives and found PrinceXML. Prince uses the normal CSS styling information and extends its syntax a bit to cover printing aspects like page sizes and footnotes. I found out that CSS3 actually even can do page or figure numbering and cross references. It has to be mentioned that PrinceXML is a bit on the pricy side, so I had to do some tests first.
I quickly converted one of the book's chapters from LaTeX to HTML, created a CSS style sheet for screen and one for print media, and checked the results in HTML and PDF. As was to be expected, the web presentation was fine, and also the PDF output from PrinceXML was quite acceptable. These results finally convinced me to go Full Monty on converting the book from LaTeX to HTML.
I haven't finished the conversion yet, but thanks to a Perl script with a growing list of regular expressions, I can minimize my manual work. I'll also need to write some scripts for generating the table of contents and the keyword index, because PrinceXML doesn't do that.
I expect to have a complete new version of the Perl Meisterkurs book in May and will let you know of my experiences in another post.
Some parents really are awesome. Until this, I didn't see the use of owning a family home.
Last week showed that defining priorities is essential when you're starting a new business.
When I voiced my hope to get our hosting website online this week in my previous weeknote, I didn't think of the Perl seminar that would have me out of office for four of five days this week. So I only had Monday and the travel time on Tuesday and Friday to get the most important tasks done. By the way, I still enjoy taking the train to work, especially if getting there takes me a few hours. I kept the Bahncard 100 which lets me travel by train as much as I need for a flat monthly fee. So, for last week's seminar, I just had to reserve a seat in a train that goes all the way from Freiburg to Wolfsburg to secure myself 5 hours of solid work time in each direction.
The seminar went fine. I had twelve participants eager to learn Perl and three days to teach them the most important basics. Which is not a comfortable time frame, because actually only explaining all the topics takes more than two days, and then the trainees haven't written a single line of code themselves. But they got to a basic understanding of the language which was my expressed goal for the seminar. Together, we hope that there'll be a second seminar where we'll be able to look at practical problems and more advanced aspects of Perl.
Spending all day in a classroom and the evening in a hotel room still isn't my preferred way of teaching, so I'll put more effort into promoting our online trainings.
In advance of the seminar, I had to spend some time on my training material. Despite it having matured over more than 8 years now, it's still not perfect in its explanations and examples and it still contains a few typos and glitches. Additionally, for a few weeks, I've been thinking about the format I could best maintain it in the future. The LaTeX format in which I had written the book started to show real limitations, especially because I had chosen it for its printing quality but now needed a format for online presentation.
After I spent some hours on looking -- and deciding -- for a future format, I got back to my original goal of working on the training manual itself. (BTW, I chose HTML and will explain the reasons in a separate blog post.) But departing time came quickly and the seminar took up the rest of the week.
In the end, I didn't have the time to do the finishing touches on the webhosting website, so I'll have to postpone the site launch for another week. There maybe would have been enough time, though, if I hadn't embarked on my journey to a better book and paper writing format.
Those tool and format discussions are dangerous because they can quickly derail a project and bring productivity to a low. Instead of working on your content, you start researching and testing different "solutions" that could replace your working one. Sometimes, "research" is just an euphemism for procrastination. If you have people that pay for your living without asking for a quick ROI, you may be able to go on Holy Grail expeditions. But in a business, you need to focus on what directly benefits your customers. With a training manual, that's its content, not the format it's written in.
The second priority is business development, for example with a website. That's why I'll measure the success of the new week by how much new business I'll have generated in its end.
Starting with the week after Easter, I'm now working as a full-time self-employed. And to comply with weeknote custom, I renumbered my weeknotes so the one from last week now is #1. All previous weeknotes, written during the business launch preparation phase, got negative numbers. The advantage of this change is that if (rather when) I have to compute the current weeknote number, I can use the Weeknote Calculator.
My application for state founding subsidies has been accepted! Yay! I'll be granted nine months of unemployment pay with 300 € on top, no strings attached. That means I can develop my business in a sane pace without worrying about my family starving.
The new Freistil Campus website is working great. I'm very happy to have moved from Moodle to Drupal because I can do so much more with the site now. As I've told before, we're already using it for the new Perl Meisterkurs that started this month, and it's so much fun to experience motivated participants that fill the seminar group with postings and literally beg for new course material so they can continue learning.
I'll start working on a bunch of new training projects this week, including some free webinars about development topics like version control. My main focus will be two big online workshops I'll call "Water" and "Ice" for now.
High Performance Webhosting
Work on our hosting system is going fine, all the base infrastructure is in place. Especially the monitoring and security systems have already proven to work great. The former by waking me up in the early morning to tell me I had forgotten to configure the resource allocation of one web server which then gradually ate up all memory and went down in flames. The latter by alerting me of of a mysterious change of a system program that, as I found out an hour of anxiety later, had been caused by a software update I had done the previous day.
I'm not happy to report that I still haven't finished work on the hosting product website. But since everything else is running in its tracks I'm optimistic that next week will be launch week. (He said, in his child-like naïveté...)
8-bit creatures taking over the world! (Watch it while it's still online.)