Tuesday, June 25, 2013

Building Books

Last Friday, I bought a new laptop: a MacBook Pro. While I made the purchase more out of impulse than anything else, I have to admit that I'm incredibly satisfied with the laptop. As a long-time Windows user (and UNIX/Linux user), some things were not immediately obvious, but I have to admit that the learning curve isn't as steep as I expected.

I used to have a Mac around twenty years ago. It was an old Macintosh Classic II. It was a good machine, but once the Internet began to become more widespread, it showed its age quickly. Every personal machine I've owned since then has run Windows. Naturally, I quickly joined the "Windows is better" crowd, assuming Macs were for other people, not me.

I bought the 13-inch MacBook Pro with a Retina display. I have to admit, I'm completely shocked by the quality of the hardware, both in terms of physical quality and performance. While I was considering which laptop to buy, I briefly considered upgrading to the Intel i7 CPU, but I realize now that it's really entirely unnecessary, since the i5 provides plenty of power.

But, I was supposed to write about how we build books, not my new toy.

All of Gnome on Fire's books are managed the same way. The text itself is written using a minimal plain-text markup language. This allows the authors to concentrate on the writing, not the formatting. We use a set of scripts to convert the markup to two different targets: LaTeX and HTML. The LaTeX output allows us to produce the PDF that gets sent to the printer to produce physical books, and the HTML output gets converted to MOBI format (Amazon Kindle) and EPUB format (every device except the Kindle).

The set of build tools is nearly 100% free open-source software, with the major exception of the proprietary KindleGen software provided by Amazon, used to produce MOBI files.

Not only is open-source software free, but it happens to be especially portable. This allows us to run the same build process on the Mac that we use on our Linux-based servers.

The current generation of Macs are UNIX-based. This eliminates the need to run a compatibility subsystem (like Cygwin, for example) since the OS natively supports UNIX-based applications. With this feature, it's surprisingly simple to run our toolset on any current-generation Mac.

In short, with the increasingly Web-based nature of applications, along with my increasing reliance on open-source tools and UNIX/Linux in general, there's no time like the present to make the switch to a Mac. The days of incompatible software are long gone: I have yet to find anything for which a Mac version doesn't exist, or at least an equivalent but similar product doesn't exist.

Of course, most of my time these days is spent staring at an array of terminal windows. Nevertheless, it doesn't hurt to have them running in the smoothest and most attractive user interface I've ever seen.

No comments:

Post a Comment