It’s been a while since I posted my last article here. But tonight I just can’t help it. For a few weeks I’ve been reading MongoDB in Action, from Manning, as an eBook on my iPad. And for a few days, since I started diving into the more complex parts of it, I’m struggling with errors all over the place. And I’m not just talking about typos here, I’m talking about massive errors that completely change the meaning of code samples and leave you wondering about your own sanity and stupidity. Here are a few examples coming from their Errata page:
Page 81, First code snippet
First off, how the hell am I supposed to match there erratas with my eBook? An eBook has no such pages, it depends on what you’re reading it on, the size of the font, etc. Now I know these erratas are designed for paper books originally. But these are technical books we’re talking about. How many technical people are still reading ink on dead trees around here?
Replace
category = db.categories.findOne({'slug': 'outdoors'}) siblings = db.categories.find({'parent_id': category['_id']}) products = db.products.find({'category_id': category['_id']}). skip((page_number - 1) * 12). limit(12). sort({helpful_votes: -1})with
category = db.categories.findOne({'slug': 'outdoors'}) siblings = db.categories.find({'parent_id': category['parent_id']}) products = db.products.find({'category_id': category['_id']}). skip((page_number - 1) * 12). limit(12). sort({average_review: -1})
In the paragraph before this code sample, you can read that we’re looking for siblings of the current category, and then in the original code sample above, you see the code is looking for children, not siblings. So you start hitting your head agains the wall, reading the same sample over and over again, trying to make sense of it, and then you locate the errata and you see THIS!
But we’re not done yet, there’s more, there’s worse!
From the same errata page:
The line reading:
emit(shipping_month, {order_total: this.sub_total, items_total: 0});should read:
emit(shipping_month, {order_total: this.sub_total, items_total: 0});
You can read it again… and again… no, there’s no difference between the original and the correction. It’s exactly the same fricking line! The worst part is that you can feel there’s something wrong with this line. It’s obvious that it seems odd to start a map-reduce with different starting points, but which one is the right one? Not so easy to figure out when you’re encountering your first map-reduce. So what, is there an errata page for the errata page somewhere?
But my favorite is definitely the next one:
The lines reading:
var tmpTotal = 0; var tmpItems = 0; tmpTotal += doc.order_total; tmpItems += doc.items_total; return ( {order_total: tmpTotal, items_total: tmpItems} );should read:
var tmpTotal = 0; var tmpItems = 0; values.forEach(function(doc) { tmpTotal += doc.order_total; tmpItems += doc.items_total; }); return ( {order_total: tmpTotal, items_total: tmpItems} );
Ah! So that’s where this “doc” variable comes from! How the hell could two entire lines be removed by mistake? And then I noticed something odd. The last line of what’s supposed to be the original is wrong. What I’m actually reading in my version of the book is:
return ( {total: tmpTotal, items: tmpItems} );
And not:
return ( {order_total: tmpTotal, items_total: tmpItems} );
So same question again… Errata for this errata?
So to sum it up: Manning is a technical editor, they publish technical books for technical readers. They release draft versions in advance for the community to review them on the cheap. Then they sell you eBooks for 30$ a pop, the final version is still littered with massive errors. And then they can’t figure out how to patch your book so they write an errata page that is simply unusable because A- you can’t match page numbers with an eBook and B- the errata page itself is full of errors.
And they wonder why their industry is on the decline? Seriously? I’ll tell you what, next time I’ll save a few tens of bucks and I’ll find “another source”…
And in the meantime, I just found out about Sigil. So I’ll see if I can patch the book and republish it, just as a provocation.
8 Comments
Vinch · August 9, 2012 at 4:30 am
So book publishing is dying because you were able to find 3 errors in the book? Mmm… OK.
Sébastien · August 9, 2012 at 10:04 am
No. because I just extracted 3 examples out of 10 pages of a few hundred page book, that I didn’t even finish reading it, and because it’s not the first time I encounter this kind of problem with tech books.
Samuel · August 9, 2012 at 9:12 am
I always believed that e-books are easy to be updated just like any other piece of software.
Fenton Harcourt Mudd · August 9, 2012 at 12:45 pm
Sure is easy to spot some one who has spent a life time avoiding books because they are too cool to be seen in a library or bookstore, start wailing about bad books when their new shiny techno poser gadget gets them reading again only to act butt hurt when they come across a woofer of a book. Bad books have nothing to do with your perceived conspiracy against progress. Anyone who has consumed enough books regardless of format, knows there are plenty of poorly crafted ones out there. Nothing to see here, move along folks.
Greg · August 9, 2012 at 2:05 pm
> How many technical people are still reading ink on dead trees around here?
I am. I don’t mind electronic presentation for short pieces such as articles, but for long technical books I still prefer print.
Cristofer · August 9, 2012 at 3:25 pm
Maybe you can ask for Manning or the author to release source code @ github so they can keep book code up to date. There are other books/publishers releasing source code this way.
Sébastien · August 11, 2012 at 1:43 am
That’s exactly what I was thinking. Imagine a Github for books, where everybody could propose patches via pull requests, where the epub could be recompiled from the latest source of the book at any time, with a protection of course so that you cannot compile the book on your own and get it for free…
Dave Joyce · August 9, 2012 at 10:25 pm
It’s a problem of editing vs time-to-market, with the mindset that some online errata will sufficiently satisfy the reader/consumer. As you’ve discovered, this is flawed thinking.