Coding Horror

programming and human factors

Geekatoo, the Geek Bat-Signal

To understand this story, you need to understand that grandchildren are like crack cocaine to grandparents. I'm convinced that if our parents could somehow snort our children up their noses to get a bigger fix, they would. And when your parents live out of state, like ours do, access to the Internet isn't just important. No. It is life threatening.

Like Gator in Jungle Fever, grandparents just gotta get their fix of the grandkids every month. And if they don't, if their Internet is broken for any reason, you're going to get an earful via telegraph and facsimile and registered letter until you fix it.

one rule: never get high on your own supply.

Either way, they're gonna get high. On your kids.

My mom is no exception. So when her computer suddenly stopped working, and she couldn't get updates on her three grandkids, I got frantic calls. Which is odd, because everything had been working fine for a few years now. Once Henry was born in 2009, I set her up with a netbook that had Skype and Firefox set to auto update and she'd been able to video chat with us regularly, no problem at all, since then. So what happened?

My first thought was to hell with it, I'll just buy her a new iPad online via the Apple Store. I'm a big fan of the retina display, and surely the touchy-feely iPad would be more resistant to whatever problem she was having than a netbook, what with its archaic "operating system" and "updates" and "keyboard" and "mouse".

With some urging from my wife (I married well), cooler heads prevailed. What if her problem had nothing to do with the computer, but her Internet connection in some way? Then I'd just be trading one set of problems for another with the iPad. I have no idea how things are set up over there, thousands of miles away. I needed help. Help from a fellow geek who lives nearby and is willing to drive out and assist my poor mom.

My mom doesn't live near where I grew up any more, so I have no friend network there. All I could think of was Geek Squad. I've seen the trucks in our neighborhood, and they've been around a while, so I checked out their website. Maybe they'd work?

Geek-squad-service

When I can buy my mom a new iPad for $399, the idea of paying $299 just to have someone come out and fix her old stuff starts to feel like a really bad idea. But I suppose it's a preview of our disposable computer future, because it's increasingly cheaper to buy a new one than it is to bother fixing the old one. This is the stuff that my friend and iFixit founder Kyle Wiens' nightmares are made of. I'm sorry, Kyle. But it's coming.

I posted my discontent on Twitter, as I am wont to do, and received an interesting recommendation for a site I'd never heard of – Geekatoo.

Geekatoo-logo

I was intrigued, first because the site didn't appear to suck which is more than I can say for about half the links I click on, and second because it appealed to my geek instincts. I could post a plea for help for my mom, and a fellow geek, one of my kind who happened to be local, would be willing to head out and assist. I could send out the geek bat-signal! But I was still skeptical. My mom lives in Charlotte, North Carolina which, while not exactly the sticks, isn't necessarily a big tech hub city, either. I figured I had nothing to lose at this point, so I posted the request titled "Mom Needs Tech Support" with the info I had.

Much to my surprise, I got two great bids within 24 hours, geeks with good credentials, and I picked the first one. The estimate was two hours for $45, and he was on-site helping my mom within 2 days from the time I posted.

Geekatoo-case

It turns out that my wife's intuition was correct: the cable internet installer had inexplicably decided to connect my mother's computer to a neighbor's wireless, instead of setting up a WiFi access point for her. So when that neighbor moved away, calamity ensued.

And the results? Well, I think they speak for themselves.

Thank you Jeff you are the best son ever!!!!!!!!!

My mom, as usual, exaggerates about her only son. I am far, far from the best son ever. But any website that can make me look like a hero to my mom, and keep my fellow Super User geeks gainfully employed doing superhero work on my behalf gets a huge thumbs up from me.

Needless to say, strongly recommended. If you need reliable local tech support that won't break the bank, and you want to support both your family and your local geek community at the same time, check out Geekatoo.

[advertisement] How are you showing off your awesome? Create a Stack Overflow Careers profile and show off all of your hard work from Stack Overflow, Github, and virtually every other coding site. Who knows, you might even get recruited for a great new position!

Discussion

Will Apps Kill Websites?

I've been an eBay user since 1999, and I still frequent eBay as both buyer and seller. In that time, eBay has transformed from a place where geeks sell broken laser pointers to each other, into a global marketplace where businesses sell anything and everything to customers. If you're looking for strange or obscure items, things almost nobody sells new any more, or grey market items for cheap, eBay is still not a bad place to look.

At least for me, eBay still basically works, after all these years. But one thing hasn't changed: the eBay website has always been difficult to use and navigate. They've updated the website recently to remove some of the more egregious cruft, but it's still way too complicated. I guess I had kind of accepted old, complex websites as the status quo, because I didn't realize how bad it had gotten until I compared the experience on the eBay website with the experience of the eBay apps for mobile and tablet.

eBay Website

Ebay-web

eBay Mobile App

Ebay-iphone-app

eBay Tablet App

Ebay-ipad-app

Unless you're some kind of super advanced eBay user, you should probably avoid the website. The tablet and mobile eBay apps are just plain simpler, easier, and faster to use than the eBay website itself. I know this intuitively from using eBay on my devices and computers, but there's also usability studies with data to prove it, too. To be fair, eBay is struggling under the massive accumulated design debt of a website originally conceived in the late 90s, whereas their mobile and tablet app experiences are recent inventions. It's not so much that the eBay apps are great, but that the eBay website is so very, very bad.

The implied lesson here is to embrace constraints. Having a limited, fixed palette of UI controls and screen space is a strength. A strength we used to have in early Mac and Windows apps, but seem to have lost somewhere along the way as applications got more powerful and complicated. And it's endemic on the web as well, where the eBay website has been slowly accreting more and more functionality since 1999. The nearly unlimited freedom that you get in a modern web browser to build whatever UI you can dream up, and assume as large or as small a page as you like, often ends up being harmful to users. It certainly is in the case of eBay.

If you're starting from scratch, you should always design the UI first, but now that we have such great mobile and tablet device options, consider designing your site for the devices that have the strictest constraints first, too. This is the thinking that led to mobile first design strategy. It helps you stay focused on a simple and uncluttered UI that you can scale up to bigger and beefier devices. Maybe eBay is just going in the wrong direction here; design simple things that scale up; not complicated things you need to scale down.

Above all else, simplify! But why stop there? If building the mobile and tablet apps first for a web property produces a better user experience – why do we need the website, again? Do great tablet and phone applications make websites obsolete?

Why are apps better than websites?

  1. They can be faster.
    No browser overhead of CSS and HTML and JavaScript hacks, just pure native UI elements retrieving precisely the data they need to display what the user requests.

  2. They use simple, native UI controls.
    Rather than imagineering whatever UI designers and programmers can dream up, why not pick from a well understood palette of built-in UI controls on that tablet or phone, all built for optimal utility and affordance on that particular device?

  3. They make better use of screen space.
    Because designers have to fit just the important things on 4 inch diagonal mobile screens, or 10 inch diagonal tablet screens, they're less likely to fill the display up with a bunch of irrelevant noise or design flourishes (or, uh, advertisements). Just the important stuff, thanks!

  4. They work better on the go and even offline.
    In a mobile world, you can't assume that the user has a super fast, totally reliable Internet connection. So you learn to design apps that download just the data they need at the time they need to display it, and have sane strategies for loading partial content and images as they arrive. That's assuming they arrive at all. You probably also build in some sort of offline mode, too, when you're on the go and you don't have connectivity.

Why are websites better than apps?

  1. They work on any device with a browser.
    Websites are as close to universal as we may ever get in the world of software. Provided you have a HTML5 compliant browser, you can run an entire universe of "apps" on your device from day zero, just by visiting a link, exactly the same way everyone has on the Internet since 1995. You don't have to hope and pray a development community emerges and is willing to build whatever app your users need.

  2. They don't have to be installed.
    Applications, unlike websites, can't be visited. They aren't indexed by Google. Nor do applications magically appear on your device; they must be explicitly installed. Even if installation is a one-click affair, your users will have to discover the app before they can even begin to install it. And once installed, they'll have to manage all those applications like so many Pokemon.

  3. They don't have to be updated.
    Websites are always on the infinite version. But once you have an application installed on your device, how do you update it to add features or fix bugs? How do users even know if your app is out of date or needs updating? And why should they need to care in the first place?

  4. They offer a common experience.
    If your app and the website behave radically differently, you're forcing users to learn two different interfaces. How many different devices and apps do you plan to build, and how consistent will they be? You now have a community divided among many different experiences, fragmenting your user base. But with a website that has a decent mobile experience baked in, you can deliver a consistent, and hopefully consistently great, experience across all devices to all your users.

I don't think there's a clear winner, only pros and cons. But apps will always need websites, if for nothing else other than a source of data, as a mothership to phone home to, and a place to host the application downloads for various devices.

And if you're obliged to build a website, why not build it out so it offers a reasonable experience on a mobile or tablet web browser, too? I have nothing against a premium experience optimized to a particular device, but shouldn't all your users have a premium experience? eBay's problem here isn't mobile or tablets per se, but that they've let their core web experience atrophy so badly. I understand that there's a lot of inertia around legacy eBay tools and long time users, so it's easy for me to propose radical changes to the website here on the outside. Maybe the only way eBay can redesign at all is on new platforms.

Will mobile and tablet apps kill websites? A few, certainly. But only the websites stupid enough to let them.

[advertisement] What's your next career move? Stack Overflow Careers has the best job listings from great companies, whether you're looking for opportunities at a startup or Fortune 500. You can search our job listings or create a profile and let employers find you.
Discussion

Make Your Email Hacker Proof

It's only a matter of time until your email gets hacked. Don't believe me? Just read this harrowing cautionary tale.

When [my wife] came back to her desk, half an hour later, she couldn’t log into Gmail at all. By that time, I was up and looking at e‑mail, and we both quickly saw what the real problem was. In my inbox I found a message purporting to be from her, followed by a quickly proliferating stream of concerned responses from friends and acquaintances, all about the fact that she had been “mugged in Madrid.” The account had seemed sluggish earlier that morning because my wife had tried to use it at just the moment a hacker was taking it over and changing its settings—including the password, so that she couldn’t log in again.

The greatest practical fear for my wife and me was that, even if she eventually managed to retrieve her records, so much of our personal and financial data would be in someone else’s presumably hostile hands that we would spend our remaining years looking over our shoulders, wondering how and when something would be put to damaging use. At some point over the past six years, our [email] correspondence would certainly have included every number or code that was important to us – credit card numbers, bank-account information, medical info, and any other sensitive data you can imagine.

Now get everyone you know to read it, too. Please. It's for their own good.

Your email is the skeleton key to your online identity. When you lose control of your email to a hacker – not if, but when you lose control of your email to a hacker – the situation is dire. Email is a one stop shop for online identity theft. You should start thinking of security for your email as roughly equivalent to the sort of security you'd want on your bank account. It's exceedingly close to that in practice.

The good news, at least if you use GMail, is that you can make your email virtually hacker-proof today, provided you own a cell phone. The fancy geek technical term for this is two factor authentication, but that doesn't matter right now. What matters is that until you turn this on, your email is vulnerable. So let's get started. Not tomorrow. Not next week. Right. Freaking. Now.

Go to your Google Account Settings

Google-account-settings

Make sure you're logged in. Expand the little drop-down user info panel at the top right of most Google pages. From here, click "Account" to view your account settings.

Google-enable-two-factor-auth

On the account settings page, click "edit" next to 2-step verification and turn it on.

Have Your Cell Phone Ready

GMail will walk you through the next few steps. You just need a telephone that can receive SMS text messages. Enter the numeric code sent through the text message to proceed.

Google-text-email-verification

Now Log In With Your Password and a PIN

Now your password alone is no longer enough to access your email.

Google-two-factor-login

Once this is enabled, accessing your email always requires the password, and a code delivered via your cell phone. (You can check the "remember me for 30 days on this device" checkbox so you don't have to do this every time.) With this in place, even if they discover your super sekrit email password, would-be hackers can't do anything useful with it! To access your email, they'd need to somehow gain control of your cell phone, too. I can't see that happening unless you're in some sort of hostage situation, and at that point I think email security is the least of your problems.

What If I Lose My Cell Phone?

Your cell phone isn't the only way to get the secondary PIN you need to access your email. On the account page there are multiple ways to generate verification codes, including adding a secondary backup phone number, and downloading mobile applications that can generate verification codes without a text message (but that requires a smart phone, naturally).

Google-backup-email-codes

This also includes the never-fails-always-works option: printing out the single-use backup verification codes on a piece of paper. Go do this now. Right now! And keep those backup codes with you at all times. Put them in your wallet, purse, man-purse, or whatever it is that travels with you most often when you get out of bed.

Backup-verification-codes

What About Apps That Access Email?

Applications or websites that access your email, and thus necessarily store your email address and password, are also affected. They have no idea that they now need to enter a PIN, too, so they'll all be broken. You'll need to generate app-specific passwords for your email. To do that, visit the accounts page.

Google-enabling-apps

Click on authorizing applications & sites, then enter a name for the application and click the Generate Password button.

Google-generated-app-password

Let me be clear about this, because it can be confusing: enter that specially generated password in the application, not your master email password.

This effectively creates a list of passwords specific to each application. So you can see the date each one was last used, and revoke each app's permission to touch your email individually as necessary without ever revealing your primary email password to any application, ever. See, I told you, there is a method to the apparent madness.

But I Don't Use Gmail

Either nag your email provider to provide two-factor authentication, or switch over. Email security is critically important these days, and switching is easy(ish). GMail has had fully secure connections for quite a while now, and once you add two-factor authentication to the mix, that's about as much online email safety as you can reasonably hope to achieve short of going back to snail mail.

Hey, This Sounds Like a Pain!

I know what you're thinking. Yes, this is a pain in the ass. I'll fully acknowledge that. But you know what's an even bigger pain in the ass? Having your entire online identity stolen and trashed by a hacker who happens to obtain your email password one day. Remember that article I exhorted you to read at the beginning? Oh, you didn't read it? Go freaking read it now!

Permit me to channel Jamie Zawinski one last time: "OMG, entering these email codes on every device I access email would be a lot of work! That sounds like a hassle!" Shut up. I know things. You will listen to me. Do it anyway.

I've been living with this scheme for a few months now, and I've convinced my wife to as well. I won't lie to you; it hasn't all been wine and roses for us either. But it is inconvenient in the same way that bank vaults and door locks are. The upside is that once you enable this, your email becomes extremely secure, to the point that you can (and I regularly do) email yourself highly sensitive data like passwords and logins to other sites you visit so you can easily retrieve them later.

If you choose not to do this, well, at least you've educated yourself about the risks. And I hope you're extremely careful with your email password and change it regularly to something complex. You're making life all too easy for the hackers who make a fabulous living from stealing and permanently defacing online identities just like yours.

[advertisement] Hiring developers? Post your open positions with Stack Overflow Careers and reach over 20MM awesome devs already on Stack Overflow. Create your satisfaction-guaranteed job listing today!
Discussion

Learn to Read the Source, Luke

In the calculus of communication, writing coherent paragraphs that your fellow human beings can comprehend and understand is far more difficult than tapping out a few lines of software code that the interpreter or compiler won't barf on.

That's why, when it comes to code, all the documentation probably sucks. And because writing for people is way harder than writing for machines, the documentation will continue to suck for the forseeable future. There's very little you can do about it.

Except for one thing.

Read-the-source-luke

You can learn to read the source, Luke.

The transformative power of "source always included" in JavaScript is a major reason why I coined – and continue to believe in – Atwood's Law. Even if "view source" isn't built in (but it totally should be), you should demand access to the underlying source code for your stack. No matter what the documentation says, the source code is the ultimate truth, the best and most definitive and up-to-date documentation you're likely to find. This will be true forever, so the sooner you come to terms with this, the better off you'll be as a software developer.

I had a whole entry I was going to write about this, and then I discovered Brandon Bloom's brilliant post on the topic at Hacker News. Read closely, because he explains the virtue of reading source, and in what context you need to read the source, far better than I could:

I started working with Microsoft platforms professionally at age 15 or so. I worked for Microsoft as a software developer doing integration work on Visual Studio. More than ten years after I first wrote a line of Visual Basic, I wish I could never link against a closed library ever again.

Using software is different than building software. When you're using most software for its primary function, it's a well worn path. Others have encountered the problems and enough people have spoken up to prompt the core contributors to correct the issue. But when you're building software, you're doing something new. And there are so many ways to do it, you'll encounter unused bits, rusty corners, and unfinished experimental code paths. You'll encounter edge cases that have been known to be broken, but were worked around.

Sometimes, the documentation isn't complete. Sometimes, it's wrong. The source code never lies. For an experienced developer, reading the source can often be faster… especially if you're already familiar with the package's architecture. I'm in a medium-sized co-working space with several startups. A lot of the other CTOs and engineers come to our team for guidance and advice on occasion. When people report a problem with their stack, the first question I ask them is: "Well, did you read the source code?"

I encourage developers to git clone anything and everything they depend on. Initially, they are all afraid. "That project is too big, I'll never find it!" or "I'm not smart enough to understand it" or "That code is so ugly! I can't stand to look at it". But you don't have to search the whole thing, you just need to follow the trail. And if you can't understand the platform below you, how can you understand your own software? And most of the time, what inexperienced developers consider beautiful is superficial, and what they consider ugly, is battle-hardened production-ready code from master hackers. Now, a year or two later, I've had a couple of developers come up to me and thank me for forcing them to sink or swim in other people's code bases. They are better at their craft and they wonder how they ever got anything done without the source code in the past.

When you run a business, if your software has a bug, your customers don't care if it is your fault or Linus' or some random Rails developer's. They care that your software is bugged. Everyone's software becomes my software because all of their bugs are my bugs. When something goes wrong, you need to seek out what is broken, and you need to fix it. You fix it at the right spot in the stack to minimize risks, maintenance costs, and turnaround time. Sometimes, a quick workaround is best. Other times, you'll need to recompile your compiler. Often, you can ask someone else to fix it upstream, but just as often, you'll need to fix it yourself.

  • Closed-software shops have two choices: beg for generosity, or work around it.
  • Open source shops with weaker developers tend to act the same as closed-software shops.
  • Older shops tend to slowly build the muscles required to maintain their own forks and patches and whatnot.

True hackers have come to terms with a simple fact: If it runs on my machine, it's my software. I'm responsible for it. I must understand it. Building from source is the rule and not an exception. I must control my environment and I must control my dependencies.

Nobody reads other people's code for fun. Hell, I don't even like reading my own code. The idea that you'd settle down in a deep leather chair with your smoking jacket and a snifter of brandy for a fine evening of reading through someone else's code is absurd.

But we need access to the source code. We must read other people's code because we have to understand it to get things done. So don't be afraid to read the source, Luke – and follow it wherever it takes you, no matter how scary looking that code is.

[advertisement] Stack Overflow Careers matches the best developers (you!) with the best employers. You can search our job listings or create a profile and even let employers find you.
Discussion

Books: Bits vs. Atoms

I adore words, but let's face it: books suck.

More specifically, so many beautiful ideas have been helplessly trapped in physical made-of-atoms books for the last few centuries. How do books suck? Let me count the ways:

  • They are heavy.
  • They take up too much space.
  • They have to be printed.
  • They have to be carried in inventory.
  • They have to be shipped in trucks and planes.
  • They aren't always available at a library.
  • They may have to be purchased at a bookstore.
  • They are difficult to find.
  • They are difficult to search within.
  • They can go out of print entirely.
  • They are too expensive.
  • They are not interactive.
  • They cannot be updated for errors and addendums.
  • They are often copyrighted.

What's the point of a bookshelf full of books other than as an antiquated trophy case of written ideas trapped in awkward, temporary physical relics?

Brian-dettmer-book

Books should not be celebrated. Words, ideas, and concepts should be celebrated. Books were necessary to store these things, simply because we didn't have any other viable form to contain them. But now we do.

Words Belong on the Internet

At the risk of stating the obvious, if your goal is to get a written idea in front of as many human beings as efficiently as possible, you shouldn't be publishing dead tree books at all. You should be editing a wiki, writing a blog, or creating a website. That's why the Encyclopedia Britannica officially went out of print in 2012, after a 244 year print run. In the straight-up match between paper and Web, the Encyclopedia Britannica lost. Big time.

The EB couldn’t cover enough: 65,000 topics compared to the almost 4M in the English version of Wikipedia.

Topics had to be consistently shrunk or discarded to make room for new information. E.g., the 1911 entry on Oliver Goldsmith was written by no less than Thomas Macaulay, but with each edition, it got shorter and shorter. EB was thus in the business of throwing out knowledge as much as it was in the business of adding knowledge.

Topics were confined to rectangles of text. This is of course often a helpful way of dividing up the world, but it is also essentially false. The “see also’s” and the attempts at synthetic indexes and outlines (Propædi) helped, but they were still highly limited, and cumbersome to use.

This is why the book scanning efforts of Google Books and The Internet Archive are so important – to unlock the knowledge trapped in all those books and place it online so the entire world can benefit.

In the never-ending human quest for communication, bits have won decisively over atoms. But bits haven't completely replaced atoms for publishing quite yet; that will take a few more decades.

An Argument for the eBook

While the Internet is perfectly adequate for basic printed text juxtaposed with images and tables, it is a far cry from the beautiful, complex layout and typography of modern books. Sometimes the medium is part of the message. That's what led computer scientists to create PostScript and TeX, systems of representing the printed page in code as pure mathematics that can scale infinitely, or at least to the best possible resolution of the particular device you're viewing it on. Packaging written content into a special file format preserves these beautiful layouts so you can read the text as originally designed by the author.

It's also fair to argue that writers should be fairly compensated for their work. Clearly nobody is going to pay 5 cents per web page. But there's a long established commercial model of packaging a set of writing together into a coherent format, or "book", and selling that.

You can't always rely on the Internet being available. What if you have no Internet connectivity, or intermittent connectivity? You could periodically harvest a bunch of related web pages every month and package the current versions into a file. And that file can be stored and cached locally on laptops, phones, and servers all over the world. Local files have built in, persistent offline availability.

No, the Internet will not kill the book. But it will change their form permanently; books are no longer pages printed with atoms, they're files printed with bits: eBooks.

The Trouble with Bits

The road from atoms to bits is not an easy one, and we're only at the beginning of this journey. eBooks are vastly more flexible than printed books, but they come with their own set of tradeoffs:

  • They always require a reading device.
  • They cannot be loaned to friends.
  • They cannot be resold to others.
  • They cannot be donated to libraries.
  • They may be encumbered with copy protection.
  • They may be in a format your reader cannot understand.
  • They may refuse to load for any reason the publisher deems necessary.
  • They may have incomplete or broken or obsolete layout.
  • They may have low-resolution bitmapped images that are inferior to print.
  • They may be a substantially worse reading experience than print except on very high resolution reading devices.

Book-error

The copy protection issue alone is deeply troubling; with eBooks, book publishers now have an unprecedented level of control over when, where, and how you can read their books. In the world of atoms, once the book is shipped out, the publisher cedes all control to the reader. Once you've bought that physical book, you can do with it whatever you will: read it, burn it, photocopy it (for personal use), share it, resell it, loan it, donate it, even throw it at passers-by as a makeshift weapon. But in the world of bits, the publisher has an iron grip over their eBook, which isn't so much sold to you as "licensed" for your use, maybe even only for specific devices like an Amazon Kindle or an Apple iPad. And they can silently remove the book from your device at their whim.

In the brave new world of eBooks, book publishers are waking up drunk with newfound power. And honestly I can't say I blame them. After centuries of publishers having virtually no control at all over the books they publish, they've now been granted near total control.

How Much Do eBooks Cost?

Consider one of my favorite books, the classic Don't Make Me Think. How much does it cost to buy, as an eBook or otherwise?

Amazon print new$22.88
Amazon print used$13.98
Amazon eBook$14.16
Publisher eBook$25.60
Apple eBook$33.16

Except for Amazon, all the eBooks are more expensive than the print version. This … makes no sense. How can the bits in the digital version, which require no printing, no shipping, no physical storage whatsoever, be more expensive than the atoms?

What Do eBooks Look Like?

What you actually end up reading when you buy the eBook can vary wildly. Here are pages 80 and 81 of my print copy of Don't Make Me Think. I attempted to take a photograph of the book, then realized it's incredibly difficult to take a decent picture of two pages of a book for a photography noob like myself, so I manually scanned the pages in instead.

Dont-make-me-think-page-80-81-scanned-small

If you buy the eBook from the publisher, you get a PDF which appears to be based on the exact same data used to print the book. Pages 80 and 81 are nearly identical to print, with page numbers, footnotes, layout and typography completely intact. (There are some unrelated minor differences on page 81 because the print version is from the second edition.)

Dont-make-me-think-pages-80-81-small

But when you buy the eBook from Amazon, you get a proprietary eBook format which contains very little of the original formatting. Pages 80 and 81 are quite different. The footnotes are gone. The title font and font colors are lost. The layout and spacing is completely off, and to my eye the page frankly looks a little broken.

Dont-make-me-think-page-80-81-kindle-small

When you buy the book from Apple, you get yet another proprietary eBook format. For comparison, here's page 3 of Don't Make Me Think from the publisher's PDF, which as we've previously established is very nearly the same as print.

Dont-make-me-think-page-3-small

I downloaded the sample chapter of Don't Make Me Think from Apple's iBooks, and it appears to be an even worse representation than Amazon's. I have all the same criticisms of Amazon's eBook format here – page 3 has broken layout, no footnotes, missing title fonts and colors, plus now it takes four, yes, four pages to read that very same single print page.

Dont-make-me-think-page-3-ibooks-all

So eBooks Suck, Too?

With Don't Make Me Think, I intentionally chose a book that highlights the remaining gap between atoms and bits in books. I've read dozens of other eBooks on Kindle and iPad, and generally the experience is good. For books that are entirely text, with very little layout, the various eBook formats do a great job. This may very well be a majority of books in the world. All eBook formats handle text and basic fonts perfectly fine. But then, so does the Internet. If an eBook can't outperform the Internet at layout, it loses one of the strongest arguments in its favor.

Still, there's no way Amazon's or Apple's current eBook versions of Don't Make Me Think are suitable replacements for the print version. Worse, you won't even know what you'll be missing unless you download a sample and compare it with the print version, as I have. That's disappointing, because part of the joy a book brings to the words inside is by expertly packaging those words into a whole experience. If an eBook can't capture the nuance of the layout at least as well as a hoary old PDF does, again, why bother?

We, as readers, are easily giving up as much as we're getting in the transition from books made of atoms to eBooks made of bits. To make it worthwhile, I believe publishers need to do two things:

  1. eBooks should be inexpensive. Because I can't loan them (with rare exceptions), because I can't resell them, because I can't buy a cheaper used copy, because I'm only licensed to read them at all on "supported" readers under whatever terms the publishers will allow me to, an eBook simply has less utility and value to me. Right now, eBooks are far less flexible than physical books and therefore a worse value. Yet they are far cheaper to produce and sell for everyone involved. The pricing absolutely has to reflect this. If I can get a used copy of a book for less than the eBook, no sale. If I can get a new copy of a book for less than the eBook, no sale and screw you.

  2. eBooks should be a near-perfect replica of the print book. With the advent of the iPad 3, it is finally possible for eBook readers to provide nearly the same visual fidelity as the print book. I don't want to spend money on an eBook with broken, inferior formatting and typography and layout compared to the print edition. Give me an eBook that I can potentially hand down to my children with the same confidence I could give them a print book, 30 years from now, and know that I am not totally compromising the experience.

Because I love words, I want to love eBooks. I want to buy lots and lots of eBooks. But unless the publishers are willing to treat eBooks with the same respect and care that they give to their printed books – and most importantly of all, adjust their pricing to reflect the brave new economy of bits, and not an antiquated economy of atoms – they're destined to eventually suffer the same fate as the Encyclopedia Britannica.

[advertisement] How are you showing off your awesome? Create a Stack Overflow Careers profile and show off all of your hard work from Stack Overflow, Github, and virtually every other coding site. Who knows, you might even get recruited for a great new position!
Discussion