Category Archives: Usability

The Guardian on your Kindle

Update: It is now possible to buy an official subscription to The Guardian and The Observer. The rest of this post is now largely of historical interest if you just want The Guardian on your Kindle, but I’ve left the rest of the content unchanged for people who are interested in how I generated my unofficial version.


If you just want a copy of today’s copy of The Guardian or The Observer for you Kindle, you can download one from this automatically generated page.  This post describes the script that generates that generates the file and the motivation for it.

Since moving to Switzerland, I’ve found that I really miss being able to get The Guardian in the morning on my way into work.  Unfortunately, reading the website on a phone (or any other device) is no substitute if you’re relying on data over the mobile phone networks – one really wants all the articles cached for fast navigation through the paper.  The solution for this should be my shiny new Kindle, but sadly subscriptions to The Guardian aren’t available in the Kindle store.  (There are many other papers available.)  Fortunately, The Guardian has an excellent API for accessing its content, and the lovely interface produced by Phil Gyford for reading the paper in a cleaner interface suggested that I could similarly generate a bare bones version of the paper for my Kindle.  I believe that this is permitted under the terms and conditions of the Guardian Open Platform, since I’m (a) including the advertisement linked to from each article, (b) linking back to the original article and (c) acknowledging that the data is supplied by that service.  If I’ve misunderstood, and in fact this is not allowed, please let me know.

To generate a book in the Kindle’s preferred format, you have to generate a .opf file describing the contents of the book, which refers to other files describing its text, images, structure, etc.  Then you can run a binary called “kindlegen” to generate a .mobi archive from those files that will work on your Kindle.  (The samples in the kindlegen archive and the Amazon Kindle Publishing Guidelines are quite sufficient to figure out how to do this.)  My script to generate the .opf and supporting files is far from elegant, but I’m very happy with the results that it produces – it’s a really lovely reading experience.  You can use the normal page forward / back buttons to go from page to page, while the left and right buttons on the five-way skip to the next article’s headline.  This means you can skip quickly through the articles that you aren’t interested in, but each article you do want to read is presented very clearly on the amazing eInk display:

There are a few articles for which the API won’t return the text, saying that rights for redistribution are not available – I’m still including the other metadata for these article and the link to the original article, so that you know what’s missing:

At the end of each article is the advertisement image that’s included – this is to comply with the requirements of the Guardian Open Platform:

You can download the generated .mobi file for today’s Guardian (or The Observer on Sunday) from this page:

A Kindle version of today’s Guardian or Observer

You can bookmark that page in your Kindle’s web browser. Then, whenever you select the bookmark and then “Reload”, then it’ll be refreshed with a link to that day’s generated edition of the newspaper for your Kindle, which you can download straight from that page.

If you’re interested in this project, or have any comments or suggestions, you can contact me by email at:

"mark" followed by a dash, then "guardian" then "kindle" then an "at" sign then longair dot net

… or leave a comment below.  The script for generating this version of The Guardian is available at github.

Superficially Improving Google Reader

This is really a post about adapting Helvetireader for netbook-sized screens, but I can’t resist adding a short rant about online RSS aggregators first…

Why Google Reader?

Once upon a time, on the recommendation of Need To Know, I started using Bloglines to keep track of blogs and anything else that published an RSS feed.  It worked pretty well, but had a number of usability problems that were fixed by the excellent Bloglines Beta.  Well, it was excellent apart from one thing: at some point (one or two years ago?) feeds stopped being updated in a timely fashion.  I reported this as a bug but, in contrast to all my previous bug reports to them, I never even received a confirmation email back.  Problems of this type have been widely reported but as far as I know this is still unfixed.  Unfortunately, while I loved the interface of Bloglines Beta this lack of updates meant that it had effectively become useless, so I’ve switched to Google Reader – the other reasonable alternative when I was considering a switch seemed to be “NewsGator Online“, but that failed to import my rather large list of feeds and the service has now shut down anyway.

It’s very sad that Bloglines’s previously excellent service seems to be now so unloved by its current owners and maintainers.

Google Reader’s Shortcomings

(Update: originally this paragraph had a short complaint about how Google Reader couldn’t be configured in a way that I was happy with, but then Jenny pointed out that in fact it could :)  In short, the following settings are the ones that I like:

  • Select “New Items”, which is a toggle for the view, applying to everything until you change it back to “All Items”.
  • (Tedious) Go to every feed and folder in the subscription list on the left and select from the drop-down menus “Sort by oldest”.

Annoyingly the “Sort by oldest” option then only shows the unread items in the last 30 days, ordered chronologically – but this is still much better than the default configuration, in my opinion.)

There are also some superficial annoyances that fortunately can be easily fixed:

  • The appearance of the page is noisy and inelegant.
  • The layout works badly on small screens, such as my netbook.

At some point I was told about Jon Hicks’s “Helvetireader” redesign of the CSS for Google reader.  This is a vast improvement in the appearance of the application, I think, and it hides much of the noise in the interface that I don’t care about – for example, here are some “before and after” screenshots:

screenshot-basic

And with Helvetireader:screenshot-helvetireaderHowever this still uses up a lot of screen real estate at the top of the page for elements that I don’t care about, such as the search box, login details, social features, etc.  Also, on my netbook the pane on the left is so large that you can’t get a single Dinosaur Comics visible in the right :)  So I added a few more instances of display: none to the Helvetireader CSS and adjusted the sizes of the main panes.  The only non-obvious bit about this was that there’s some bit of Google’s javascript that sets the display property of the search box back to block – fortunately, if you use Greasemonkey to change the ID of this element to something else, then it can’t be found by ID and changed back.  This is a bit horrible, but doesn’t seem to obviously break anything else in the interface…screenshot-helvetireader-reducedIf you want to try this out, then the Greasemonkey script is here, and that points to the CSS here.  Those are tracked in a github gist in case you want to see all the changes back to the original Helvetireader.  This works well in Chromium (so presumably Google Chrome too) and is OK in Firefox, but for an odd bug where the window doesn’t redraw correctly after changing the CSS – you can resize the window to force a redraw, though.

Update: the screenshot there shows a slightly older version of my customization – since then I’ve added back some options for feed settings, etc.

I rather like this approach to changing the appearance of websites to match your needs.  You can find many inventive examples of this idea at userstyles.org.