Friday, December 15, 2006

Lightweight Feed Reader for Web-Enabled Devices

screenshotUpdate: 2007-06-02: An upgraded version is now available.

If like me you commute to and from work by public transit, you might also enjoy spending some of that time catching up with the latest news. Newspapers still seem popular, but they aren't the most up-to-date and are quite impractical in a crowd. TV phones and podcasts are very neat, but they all imply audio or video and are therefore not always the easiest way to scan through the info, at least in my opinion.

For quite some time now, what I found really fits my needs best is a simple web-based RSS/Atom feed reader that I can access from my mobile phone's browser. So I wrote one, of course. Or more accurately, I recently rewrote my old one using the SimpleXML feature built in PHP 5+.

The 12 requirements I set myself were:

  • K.I.S.S.: viewing tool is likely to be a small screen device, screen reader, etc.
  • Use only PHP, XML, XHTML and CSS (no DB, Javascript [...] this time).
  • Typing-free user interface, selection-only user input.
  • Output standard XHTML for maximum accessibility and portability.
  • Have stylesheets for different viewing environment (handheld, screen, etc).
  • Use local caching for the remote feeds, with a 30 minutes refresh interval.
  • Clean and limit in size the entries' descriptions to only provide an excerpt if the feed publishes all of the article's content, instead of a synopsis.
  • Have a paging feature to keep the output very light for low memory devices.
  • Offer multiple pre-defined source selections.
  • Let users choose the number of items per page.
  • Be secure in regards to user input, caching, etc.
  • And all this in less than 500 lines, including detailed comments.
With all this in mind, I came up with a little utility I call parseMe, which you can freely download below. Not a very creative name by any stretch, but a short one, which helps when thumb-typing the url on a phone numerical keyboard.
  • Online demo: See this mobile feed reader in action.
  • Downloads: Latest and historical packages.
  • SHA1SUM: SHA1 sum for the above files.
  • INSTALL: Basic installation instructions to get you going.
  • COPYING: Software license, GPL.
  • AUTHORS: Credits file.
There is not enough there for me to make it a full blown project, so feel free to do with it what you want. All the code is released under the GPL. The bundled feed icon is the current standard one, as provided by feedicons.com.

parseMe requires PHP 5+, a web server and a writable filesystem for caching. I have, so far, tested it under Apache 2+ on Fedora Core 5/6 and Ubuntu 6.10, as well as Apache 1.3.33 on Mac OS X (using PHP 5 from entropy.ch). It might also just run as is on Windows, using the various PHP and Web server options on that platform. Same goes for other platforms supported by PHP 5.

There you go, enjoy. And if you don't have a web account to run your own copy of the app, feel free to access the above demo from your mobile devices, but you'll probably find the default feed list quite limited very fast.

And for the record, if you are looking for more mobile browsing destinations, Google is starting to have quite a few nice products. The following links go to the mobile versions of the Google tools:
Unfortunately, my phone can't remember my Google account info, as implemented in their login form, so having to sign-in every time still makes running my own little typing-free and customizable app that much more convenient for me. :)

2 comments:

smilbandit said...

I did the same thing and rolled it into the mobile site i'm building in my spare time at http://wampad.com. I don't have a completely type free interface but I was able to keep it down by kinda piggy backing off of feedburner feeds. I'm using the magpierss code to parse the rss. Next time you've got time to kill stop by.

stephdau said...

smilbandit: wampad's pretty neat too. Thanks.