I bought a bunch of electronic books this week:
The first two are from O'Reilly, and are presented as DRM-free ePub documents. The third is from Amazon, presented as a DRM-encumbered Kindle document. Now I'm not going to rant about DRM or about how the Kindle document basically locks me in to only reading the book through the Kindle app. That's a rant I've already performed elsewhere. I'm not going to rant about the slightly more difficult document navigation in Kindle versus iBooks or Stanza.
My issue today is simply the difference between a nicely executed translation from print to electronic form, versus a poorly executed translation.
In the O'Reilly books, each chapter begins on a new page, and in fact each major section begins on a new page. So as you progress through the book on Perl Best Practices, you're starting literally turning a new leaf as you learn about each new best practice.
In the O'Reilly books, cross references (such as "see 'XYZ' in Chapter 5") are links, so you can tap the link and be taken to the target of the cross reference.
In the O'Reilly books, code samples are presented as preformatted text. This makes it easy to see the different blocks of text versus sample code.
In the O'Reilly books, tables are presented as tables containing text.
In the Kindle books, each chapter begins on a new page, but the sections just run on one after another. This gets especially annoying since the "Working Effectively With Legacy Code" book contains many cross-references to techniques which make particular situations easier to deal with. More about the cross-references later, but each technique just starts off where the previous one left off. That is, there is no separation between the technique descriptions other than the new heading.
In the Kindle books, cross references are not links. They are just text, referencing a mythical page number. The two ways I have discovered to find the target of the cross reference are either to open the table of contents and page through by hand, or to use the "search" feature to find the cross reference. The search feature is made less useful due to the large number of cross references, so searching for a section by name results in dozens of hits.
In the Kindle books, code samples are presented as plain text. This makes it difficult to tell what parts of the book are, for example, bulleted lists versus indented code - I have to spend that extra fraction of a second looking at the glyphs to see yes, that's a bullet, that's a curly brace. I find it easier to scan past code samples when they're in a monospaced font, while the body text is in a proportional font.
In the Kindle books, tables are presented as images of the typset tables copied from the printed book. This makes it hard to copy the text when I want to use a code sample as the basis for my refactoring work.
So now I'm off to violate the DMCA and Copyright and who knows how many other stupid intellectual property laws, by stripping the DRM from the Kindle book, converting it to an ePub, and fixing all the problems so I can actually use it.