Kindle Considered Harmful
Posted: Fri Mar 03, 2023 5:17 pm
I receive considerable complaints from Kindle users who've purchased electronic versions of my books from Amazon for their Kindles (and bad reviews on Amazon, to match). The biggest complaint is that the listings are poorly formatted on their devices. Why can't I (or No Starch) fix this problem?
First of all, no matter how hard you try, attempting to shoehorn wide source code listings (especially assembly language source code listings, which are often wider than HLL source code) onto a small device such as a Kindle is nearly impossible. Any attempt that would be halfway successful would require violating many different programming style guidelines, such as using long/reasonable variable names, employing proper spacing, and so on. It doesn't make sense to destroy good programming style (on all devices and in the hard copy book) in order to shoehorn the listing onto a Kindle (or similar small device). Heck, getting the listings to fit in the paper book is difficult enough.
However, the biggest problem is that neither I nor No Starch is responsible for the Kindle formatting. No Starch provides the EPUB files to Amazon and they produce the Kindle versions of the book. No doubt, this is done purely by machine with no human interaction, so the results are going to be less than desirable no matter what I or No Starch do on our end.
I recently asked No Starch about this process based on some emails I have received, here was their response:
If you have a badly formatted eBook of mine, I recommend contacting No Starch and seeing if it's possible to get a version in a different format.
Cheers,
Randy Hyde
First of all, no matter how hard you try, attempting to shoehorn wide source code listings (especially assembly language source code listings, which are often wider than HLL source code) onto a small device such as a Kindle is nearly impossible. Any attempt that would be halfway successful would require violating many different programming style guidelines, such as using long/reasonable variable names, employing proper spacing, and so on. It doesn't make sense to destroy good programming style (on all devices and in the hard copy book) in order to shoehorn the listing onto a Kindle (or similar small device). Heck, getting the listings to fit in the paper book is difficult enough.
However, the biggest problem is that neither I nor No Starch is responsible for the Kindle formatting. No Starch provides the EPUB files to Amazon and they produce the Kindle versions of the book. No doubt, this is done purely by machine with no human interaction, so the results are going to be less than desirable no matter what I or No Starch do on our end.
I recently asked No Starch about this process based on some emails I have received, here was their response:
Personally, when I read ebooks, I always go for the PDF version. That way I get the version the author (or publisher) intended. I realize this is not always possible, but trying to read technical books on a small Kindle device is almost always an exercise in frustration.Thank you for reaching out. This issue has come up in the past. I've checked with our production team, and here's a somewhat brief explanation:
This is a known and unfortunate issue that likely stems from Amazon's conversion from EPUB to AZW3. We supply the EPUB to PRH, who supplies it to Amazon, who converts it to AZW3. Amazon stopped supporting MOBI files in August 2021, so MOBI is now used only for sideloading books onto Kindle devices. If you download for your Kindle directly through Amazon, as most people do, it will be in AZW3 format, and whatever conversion Amazon uses seems to cause issues in certain code listings. Books with long code lines and lots of whitespace in code blocks tend to see worse results. We've received complaints about this for Art of Webassembly too.
I'm wondering if we could offer a MOBI version to people who experience this issue? What do you think?
If you have a badly formatted eBook of mine, I recommend contacting No Starch and seeing if it's possible to get a version in a different format.
Cheers,
Randy Hyde