Monday, January 19, 2015

Wednesday, January 7, 2015

Moving On

2014 marked the end of ten years of consulting with IBM. In that time, I learned invaluable lessons developing and maintaining three expert systems (one with CLIPS and two with JRules). Suffice it to say, there’s a huge difference between using a feature as a tool developer for a few weeks and using it as a tool user on a daily basis for years to develop and maintain a production system.

Moving forward, I want to see if there’s a market for inexpensively priced eBooks (see my prior Textbooks are Crazy Expensive post). I think the available CLIPS documentation compares quite favorably with other expert system tools, but compared to widely used languages such as Java or operating systems such as iOS, there’s a dearth of documentation and high quality examples.

To have a better understanding of the eBook creation process, my first project was to create an ePub version of the CLIPS User’s Guide (written by Dr. Joseph Giarratano many years ago). I used Apple’s Pages word processing app for a variety of reasons: I didn’t want to write the eBook in XHTML because I wanted to use a WYSIWYG editor that supported functionality for generating PDF files that’s not supported when generating eBooks (such as the ability to keep image captions on the same page as the image); I wanted to see if Pages was a suitable alternative to Word for my needs; since Pages can directly export to ePub, I wanted to see how well that process works; and I wanted to see if the ePubs generated by Pages could be easily converted for use with other eBook readers such as Kindle and Nook.

As I discovered, eBook creation is far more difficult than just formatting your content and pressing a button. The most annoying hurdle is that all eBook readers live in a reality where books on programming languages don’t exist. I understand why you shouldn’t expect a reader to support a specific font, but it should be dead simple to specify that one of three generic font types should be used: serif, sans-serif, or monospace. For a programming book, at the very least you need to be able to specify a serif or sans-serif font for the main body of your text and a monospace font for your code.

Pages should have been a slam dunk for Apple. They didn’t need to implement all the functionality of Word, they just needed to implement the most basic functionality and make it intuitive and easy to use. Sadly, in broad strokes, Pages doesn’t seem any better than Word, just different, and like Word, frequently annoying. That’s not to say there’s no reason to use it. It’s relatively inexpensive when compared to Word and you can store your documents in iCloud and access them from your Mac, iOS devices, or web browser. The ePub generation works pretty well, so if you only plan on offering your eBooks in the iBooks Store, using Pages to generate the ePubs appears to be a pretty good solution.

The jury is still out on whether using the ePub generated by Pages to create versions for Kindle and Nook is a viable option. I’m almost satisfied with the Kindle files I was able to generate from the Pages ePub. Hopefully, there’s just a few tweaks I need to figure out to be completely satisfied. Nook is another story. The Nook app for iOS appears to be optimized to display ePub files in the ugliest possible format.

Information on the free iBooks version of the CLIPS 6.3 User’s Guide is available at this link. At some point I’ll probably make a version available for the Kindle, but it won’t be through the Kindle store. There are some restrictions with offering public domain content on the Kindle store that the User’s Guide would violate. In addition, free eBooks can not be distributed through the Kindle store.