• Making eBooks with Texinfo and Calibre

    While I greatly enjoy reading, eBooks have mostly eluded me — I still prefer gazing upon ink printed on processed tree pulp, or when electronic texts are convenient, plain old HTML. But as an author, it seems questionable to ignore the multitudes of people who do favor reading on their Kindles and Nooks and iPads.

    But how best to support those? I’ve done most of my serious writing by typing Texinfo word processing commands into GNU Emacs. Fortunately, it appears that I can continue writing with my ancient tools, thanks to file format conversion programs like Calibre.

    I experimented using the most recent edition of The GNU C Reference Manual. The GNU Texinfo toolchain already easily produces PDF and HTML output, so I loaded the single-page HTML file into Calibre. From there, Calibre can produce a variety of eBook outputs, including the ubiquitous ePub and Mobi file formats.

    The resulting ePub file I could view using Apple iBooks on my Mac laptop; delightfully, it looks like other ePub eBooks that I have seen. I don’t have a Kindle, but I presume that Calibre did an equally good job of converting to the Mobi file format.

    So hooray! This toolchain will allow me to use my familiar writing workflow to produce eBook content in formats desired by readers who opt for electronic reading devices.

  • How do people discover new books?

    Today’s New York Times has an article by economist Paul Krugman about Amazon’s alleged status as a monopsony in the book-selling world. (I remember Krugman from college macroeconomics, but had to look up the definition of monopsony!)

    There are opposing views in the saga between Amazon and publishers like Hachette, but even assuming that Amazon’s actions have been entirely proper, one aspect of the story in particular interested me. From the article:

    Book sales depend crucially on buzz and word of mouth (which is why authors are often sent on grueling book tours); you buy a book because you’ve heard about it, because other people are reading it, because it’s a topic of conversation, because it’s made the best-seller list. And what Amazon possesses is the power to kill the buzz. It’s definitely possible, with some extra effort, to buy a book you’ve heard about even if Amazon doesn’t carry it — but if Amazon doesn’t carry that book, you’re much less likely to hear about it in the first place.

    I don’t think that I have ever not found a book that I was deliberately looking for on Amazon, though I have no idea what books I never discovered at all simply because Amazon didn’t carry them. Amazon may be unlikely to break ties with larger publishers, but tiny publishers can put out excellent books too, and might be more likely to end up unfavored by the online retail giant.

    With that in mind, are there any other book discovery habits besides searching on Amazon that we can cultivate?

    • Identifying favorite publishers helps in finding good books. I personally have a lot of books published by the MIT Press. Their books have consistently impressed me as well-written, well-edited, nicely-typeset, and nicely-bound on high-quality paper. Even when I buy one of their books on Amazon, I often find it first on the publisher’s website. Books from Sher Music are also consistently excellent.
    • While reading books and journal articles and magazine articles, I often make note of books that are referenced therein, and look those up as well. I keep several lists of books (currently numbering in the hundreds) that I tentatively want to acquire in the future.
    • There are some internet services that help people discover new books. We don’t necessarily know where these services get their book listings, so it still might come back around to whatever Amazon carries… but maybe not.

    Society discovered and shared and bought and read new books for a very long time before Amazon became the de facto gateway to book shopping. If we deliberately choose to discover books through means other than searching Amazon, we certainly can do so, but I suspect that for many readers, Krugman will prove very correct. And to allow Amazon to wield such power seems kind of disconcerting.

  • 2014 Honda CR-V

    After seven years and 92,000 miles we traded in the 2006 Honda CR-V for a 2014 model. What has seven years of design revisions given us? The most notable changes include a rear-view camera and corresponding display in the dashboard, which is automatically activated when you shift the car into reverse; a switch for turning on and off a mode for better fuel economy (which sucks resources from other areas of the car and makes acceleration take longer, so it actually does make sense to turn off the better fuel economy at times); and Bluetooth connectivity to your mobile phones / tablets / whatever, offering the ability to place phone calls through the car interface and play music from your portable device.

    Since you can so easily play your portable MP3s through the car sound system, the 2006 six-disc compact disc player has been scaled back to a single-disc player. Unsurprisingly, the cassette player has disappeared entirely. I first bought an Apple iPod about ten years ago, and started using an iPhone six years ago, but have still listened mostly to CDs. After two days driving around with the iPhone-to-car-stereo interface, I can readily imagine that Honda will ditch the CD player altogether in a couple of years, and I for one won’t object.

    A myriad of other smaller updates also make the car generally nicer: passenger doors that open wider; back seats that fold down automatically at the pulling of a lever; extended field of view on the driver-side mirror; a little bit more interior space, both for passengers and cargo.

    The owner’s manual (p238) offers some good advice:

    If you get stuck, carefully go in the direction that you think will get you unstuck.

    Sound words for driving, and perhaps for life in general. And in case the temperature warnings on cups of McDonald’s coffee aren’t enough, the manual (p134) also advises us:

    Be careful when you are using the beverage holders. Hot liquid can scald you.

    But most importantly, how does Samantha the border collie enjoy the 2014 CR-V? Seemingly just about as much as she enjoys every other vehicle she has been in, which is to say, not at all. After sitting in the passenger seat for a few minutes, she much preferred going for a walk over going for a drive!

    More: pictures on Flickr

  • Designing Xerox Star Software in 400 Pages

    I’ve been reading Bringing Design to Software, an ancient tome (published in 1996) that collects interviews with a dozen software practitioners on the subject of software design. In modern parlance, what was called “software design” in 1996 might overlap with what today is called “user experience”, but in any event, it is an activity related to, but separate from, programming, that results in a well-planned specification for what is to be programmed.

    The first interview is with David Liddle, who worked on the Xerox Star, an early desktop computer system aimed at business productivity use. How did Liddle and his colleagues go about designing the Star software?

    We ended up writing a 400-page functional specification before we ever wrote one line of code. It was long, because it included a screen view of every possible screen that a user would see. But we did not just sit down and write it. We prototyped a little bit, did some testing with users to decide what made sense, and then wrote a spec for that aspect. Then we prototyped a bit more, tested it, and then spec’d it again, over and over until the process was done.

    400 pages of software requirements may be commonplace in specialized applications like avionics systems, but it’s a lot more planning than most software gets today. Not even content with that, Liddle’s team hired Bill Verplank, a human-computer interface expert from MIT:

    Verplank and his crew did 600 or 700 hours of video, looking at every single feature and function. From all these video recordings, we were able to identify and eliminate many problems. For example, we chose a two-button mouse because, in testing, we found that users demonstrated lower error rates, shorter learning times, and less confusing than when they used either one-button or three-button mice.

    Being on the front line of developing early office applications, Liddle also addresses the misconception that the software models of files and folders and desktops was meant to copy a real-world office environment:

    It is a mistake to think that either spreadsheets or desktops were intended to imitate accounting pads, office furniture, or other physical objects. The critically important role of these metaphors was as abstractions that users could then relate to their jobs. The purpose of computer metaphors, in general, and particularly of graphical or icon-oriented ones, is to let people use recognition rather than recall. People are good at recognition, but tent to be poor at recall. People can see objects and operations on the screen, and can manage them quite well. But when you ask people to remember what string to type to perform some task, you are counting on one of their weakest abilities.

    Curiously, a lot of software written for programmers to use puts heavy demands on recalling arbitrary strings of text…

    Would it still make sense to write a 400-page specification for office application software today? Would it still make sense to record hundreds of hours of video to research the optimal way to use the software? Maybe not. Thirty-three years have passed since the Xerox Star, and along the way, many good software design concepts have been identified and established as common practice. If you’re building software for an Apple desktop or mobile platform, for example, you can simply follow Apple’s design guidelines and save yourself a great deal of fundamental human-computer interaction research.

    Nevertheless, spending time to plan your application up front may still be a good idea. Thinking through the interaction experience and the needed functionality with a pad of paper and a pen can make writing the code more straightforward, and software is easier to test if you have a precise definition of what it’s supposed to do.

    Thanks to people like David Liddle, we can draw on years of experience in good software design to get a head start on our own projects!

  • Canon 300mm/4 Lens from LensRentals

    I needed a camera lens longer than anything I presently own for some event photography, and decided to rent a Canon 300/4 from LensRentals.

    One frequently-cited advantage to using either Canon or Nikon SLR cameras is that they are so common that you can easily rent whatever you need that you don’t own. I’ve never been able to enjoy that alleged truth locally, as I’m not aware of any shop that rents camera equipment within a reasonable driving distance from home. But over the past few years, renting camera equipment online has taken off in popularity, with LensRentals being one of the more well-known providers.

    I created my LensRentals.com account on a Wednesday afternoon and placed the order to receive the lens on the following Monday and to return it the Monday after that. In filling out the shipment form I asked them to send the lens to my customary third-party shipment service provider, who is authorized to sign to receive packages on my behalf. LensRentals contacted me and asked if they could instead ship directly to a FedEx location, with the reason being that once the package leaves the hands of FedEx, regardless of who signed for it, I become personally liable for whatever happens to the package. So they prefer if it goes directly from FedEx to me.

    The package was delivered on schedule to a nearby FedEx location. The lens came lightly wrapped in bubble-wrap, placed inside its standard-issue Canon carrying case, with that placed inside a close-fitting block of foam rubber. The lens was very clean; not mint and pristine, but showing only very light signs of use. I would have been thrilled to buy a used lens in such good condition.

    Over the next several days I completed my event photography assignment, which concluded on a Friday evening. Per the LensRentals web page, the next day that I could ship the lens back was Monday (no weekend shipments), so over the weekend I enjoyed taking some personal pictures of Samantha the border collie and a full moon.

    Monday morning I packed the lens back up the way it came, slapped the prepaid FedEx return postage onto the box, and dropped it off at the same FedEx location that I picked it up at. The entire LensRentals experience went smoothly flawless, and I look forward to using their services again when I have a short-term need for camera equipment.

    Oh, and the lens itself? I don’t have much to add to the scores of reviews online already, but in short, it’s a great lens. My main usage was a moderately well-lit indoor environment. The f4 aperture was plenty to sufficiently freeze motion at a shutter speed around 1/160s, and the image stabilization made that slow of a shutter speed quite usable hand-held. Outside, at 300mm I was able to stay far enough away from Samantha that she usually didn’t find the camera objectionable.

    The resulting images were clear and as richly contrasty as I have come to expect from Canon prime lenses. If the focal length and aperture match what you need, and you have an extra $1500, buy one today. If you’d rather spend $1400 less than that, and don’t need 300mm all the time, then rent one for a week from LensRentals.