Update:I’ve had feedback on this post from O’Reilly both by email and in the comments. Both Andrew and the other O’Reilly representative I’ve been in contact with seem sincere when they say that these apps will be updated with fixes for the downright broken content and that they intend to invest in further development for the mobile platform.
Since this was pretty much what I’d hoped to hear, I’m going to say that this little outburst served its cause.
To whom it may concern.
I have for years been a satisfied customer of O’Reilly. I’ve bought and enjoyed several books from you both as dead tree paperbacks and downloadable PDFs.
To my chagrin I also bought a number of titles on the iTunes app store once I found out that you publish a selection of your books as standalone apps there. I’m sad to report that I found these apps to be rather disappointing. In fact they are complete and utter crap.
![]()
It’s apparent that what you have done is to adopt the Stanza engine and stripped it down to contain one book per instance. Unless you’ve reinvented an already triangular wheel it also seems that you simply process your Safari PDFs through the downloadable helper app and then push the results to the app store.
Look; Stanza is a great e-book reader when it comes to downloading and reading “Frankenstein” as a Public Domain EPub book. And if you have some totally-not-copyrighted PDF you want to get onto your iPhone the desktop Stanza app does a tolerable job of ripping the file to HTML and reflowing it to read nicely on the small display, but converting PDFs with Stanza in this manner is, undeniably, a hack. It’s a workaround to get a PDF meant for a big screen unto a small screen, no questions asked.
Stanza is admittedly a pretty good solution to get a book onto the iPhone, a few formatting issues aside. There is however a considerable difference between reading a novel and feeling slightly irked because the chapter titles don’t show up in bold and reading a book on programming where half of the code is illegible, broken, or overflows beyond the page and into oblivion.
-

I first noticed this problem in “AppleScript – The definitive guide”. As you can see the code overflows to the right.This is a pretty frequent occurrence on the iPhone when viewing PDFs or web sites that are too wide for the screen. Usually you end up having to drag the page from left to right to read the whole text.
Stanza however reformats your text so that it fits perfectly on the screen which makes it ideal for book-reading, only it doesn’t really do well with fixed width text, which make it a stupid candidate for a book that contains loads of code.
Because Stanza is meant to fit your text into the page it doesn’t allow you to drag to reposition the text. So now your options are to see if you can fit the whole line into the horizontal view or lower the font-size.
-

Even with the font size far below what I can comfortably read (remember, this is even smaller on the iPhone screen because of the difference in resolution) the text breaks.It is to be expected that the code will sometimes be too long for a single line, but this is just a poor handling of text wrapping. There are precedences for how to indicate something should be entered on a single line! You helped create them! The
¬character is one such.The wrapping in these books is completely erratic! Sometimes the code will wrap, sometimes it won’t. Sometimes it will break a line into three lines, and sometimes it will insert a hyphen.
This is code damn it! You know it is, because you write books for coders! Formatting matters to us. Let me stress this point, because it is important: The lousy job you do with the formatting in these books negates their reason to exist. I know ActionScript so I can spot that “
NetCon-nection” isn’t legal, but the reason people buy these books is generally to learn a new language. It’s like trying to learn programming from Calvins dad. 

The awk/sed Pocket Reference, in addition to being by far the worst offender on overflowing lines, also had these gems. The first example is so bad I don’t even know what kind of bad it is. Is it an attempt to reproduce a table over which features are available in different environments or are those dots actually special characters that failed to make it through the PDF conversion?Whatever the deal is with the first one, I’m fairly certain those little boxes shown in the second image that are littered all through the book aren’t valid meta-characters in any shell environment, so I’m guessing there’s something missing here.
Don’t you guys proof-read these things at all?
So what happened? Is there a robot that churns these books out without human intervention? Did you outsource this to some local girl scouts that don’t know what programming books should look like? Or is it just that you don’t care? Because whatever this is, it’s not a work of love, care, precision, professional pride, customer concern, standards or even a modicum of preoccupation that you might be booted from the app store since your apps are broken.
Allow me to make a suggestion. I think there are two decent ways out of this, and I hope against hope that you’ll pick one.
- 1: Stop.
Just don’t do it anymore. I fully realize that it’s not simple to make this content work well on the iPhone, and it is a far far better thing to not make iPhone apps than to make iPhone apps that only disappoint and anger your customers. - 2: Do something worthwhile.
Your core product is the dead tree book which we know and love. You also offer the books digitally, and that adds value because now I can get my book instantly, and it’s searchable whenever I need to go back and reference something.
Why not actually hire some coders to make you an iPhone app that adds further value?Look at Classics. Why can’t I have an O’Reilly bookshelf like that? With in-app purchases you could keep on selling me books to fill up my shelves.
Fix the damn overflowing text. Look at how GoodReader has put in functionality to zip from left to right in one button. That’s what I currently use to read books I downloaded from your Safari store. Better yet. Knock their socks off. You are in a position to custom tailor your app for reading programming books. As far as I know the app store has plenty of geeks ready to part with some money.
And why don’t you add some robust reference functionality. Using GESHI you could add syntax highlighting as well as linking to online references. If it can be done in a WordPress plugin it can be done in your apps. I’m using Mike Chamber’s AS3 Reference app, all the time, and frankly it’s just a local copy of livedocs. Why not aim to make an O’Reilly app that actually becomes a valuable tool both when they’re reading your iPhone books and whenever they need to look something up.
Alright. I’ve said my piece. I do hope someone at O’Reilly will pick this up and rethink the strategy of these iPhone apps. I think the evidence here should be enough to compel Apple to refund me and take some of these apps off the app store if I ever chose to go that way, but I’m not really concerned about that. (I’ve spent too much money on utter crap at the app store to care.) The apps I bought were priced at between $2-$5, but I’ve seen titles that are closer to $40.
I don’t feel saying “all books on the iPhone sucks” or “Reading code on that screen? what do you expect?” is any excuse. I’ve been a fan of O’Reilly books for many years, and I think they have a responsibility towards me as a customer and their own reputation to either offer a decent product or not offer one at all. I’d welcome any views on this from O’Reilly, or anyone else for that matter.
While i agree with your points. Reading images and code is often horrible on the iphone with the O’Reilly App. However, i really love everything else about their iPhone app. It renders the pages fast and yes i do not have to scroll horizontally to read a page.
I often think that their iphone app is superior to their online safari application. Which is really dog slow, but then again this might say more about online safari.
As I said; The Stanza app (which O’Reillys is based on) is a pretty good ebook app, but it messes up the formatting when you convert a PDF. O’Reilly own these books. It shouldn’t be necessary for them to use this technique. Especially since the code is mangled and unreadable or even just misleading. (“NetCon-nection”)
It’s like a movie studio taking a crappy CAM movie of their film and releasing it on Blu-Ray. They can and should do far better.
I found this post from a link on Reddit and couldn’t help but notice the Regex icon. Is that the Regular Expression Pocket Reference? If so, I apologize for the poor experience. If it would help, I would be happy to send you a hard copy of the second edition. I am the author. Email me your address.
Thanks for the thoughtful and detailed feedback on our ebook apps. I agree there is a lot of opportunity for us to improve, and we do regularly update our apps as we improve the CSS and fix bugs and problems.
To clarify, we don’t use PDF as the starting point for the apps. We use the same EPUB that’s available in the “ebook bundles” sold on oreilly.com and combine that with the Stanza rendering engine to build the apps. Those oreilly.com ebook bundles give you multiple DRM-free formats, which means you can read on the device and system of your choice (including Stanza on iPhone, or any other EPUB-compatible reader, such as Bookworm).
We’ve also posted info on getting the most out of our iPhone ebook apps which includes some options for dealing with code. As noted on that page, you can extract the EPUB content from the app, which is a nice fallback for getting a better look at the content.
We know there’s more work to do to make our apps the best they can be, but we also know that tens of thousands of readers from around the world are are reading these apps and finding them useful.
I’ll make sure we take a closer look at the titles you mention. Thanks again for the feedback.
Andrew Savikas
VP, Digital Initiatives
O’Reilly Media, Inc.
Tony: As I said in the email I sent you I feel it would be wrong to accept your very gracious offer of sending me a book, since I don’t feel it’s right that you as an author should make amends for something that is clearly the fault of the publisher. I do sincerely appreciate the sentiment though, and I’m looking forward to reading your book which I will be purchasing on one of the several delivery platforms of O’Reilly that doesn’t suck.
Andrew: Well, I don’t know about “thoughtful and detailed”. Ranting and raving might be a more apt description. But nevertheless; I appreciate you taking the time to comment. I hadn’t read the page you reference which at least shows you are aware of some of the problems with the iPhone ebook format. I have to say though that the section that addresses the issue of code overflow,
Doesn’t quite ring true when I see examples such as the missing characters in the awk and Regex references or these horrible line breaks such this image from the ActionScript 3 Design Patterns title:
The code in this last example, in case you aren’t familiar with ActionScript, is all over the place. It certainly wouldn’t compile, and there’s no indication on how to interpret the hyphens or extra line breaks except just knowing from experience how it should be formatted and stripping them out altogether.
I’m glad to hear you have satisfied customers, but if any of those customers bought the awk/sed pocket reference they must have skipped the parts I refer to above. Or perhaps they were able to get more sense out of those squares, bullets and Ps than I did.
I’ve probably made my point ad nauseum by now. You say that you know there’s work to be done, but does that mean you are planning to do it? As I mention in the post, I’d be very happy to see you guys get this right but I think you have to go beyond embedding your books in a ebook reader meant for reading prose. Your content has different needs, and it’s up to you to address them. And if you do stay with Stanza, and thus decide you can live with the overflowing lines I suppose, I hope you’ll revise the other kind of errors that I encountered, and pointed to here.
Ugh! Andrew, you can get this fixed. I’d be so embarrassed if it were my book that had got mangled. Nice offer from Tony.
~Matt
@Martin: Sorry, I could have been clearer on this — we will update these apps to fix many of the problems you pointed out. A lot of it actually has been addressed with a new version of the CSS included with the EPUB within the apps, but these were from the first batch we released, and we haven’t yet updated them.
I totally understand the frustration both readers and authors (I am both) would have with a sub-par experience with one of our apps; ebooks in general (and app versions in particular) are an evolving medium, and we’re just glad to have the opportunity to iterate and improve them as we go. OTOH, Readers with Kindles who want to buy O’Reilly books are faced with a much smaller selection of titles, both because the Kindle 1 (still) can’t display tables, and because Amazon doesn’t offer any way for us to update the books that someone buys with changes and corrections.
The preliminary sales data from the books-as-apps we currently offer has helped justify a larger investment in richer native mobile apps that do much more than just display ebook content on the mobile phone.
At any rate, thanks again for the feedback. We really do listen. I’ve asked my team to move these four apps to the top of the list for CSS updates and a QA check. I’d also be happy to give you complimentary access to the full “ebook bundle” for these titles — just drop me a line by email.