Zocalo

Zocalo

Zocalo is a lightweight web feed reader designed for PDAs.

Web feeds are standardised summaries of web sites. If you want to surf the internet quickly or track a large number of web sites it is faster and more convenient to read feeds and only read whole articles that interest you. Furthermore, feeds can easily be downloaded and read offline.

About Zocalo

When starting this work, I wanted a feed client that makes it easy to update my feeds quickly and read them offline because using wireless internet on mobile devices uses a lot of power.

I wanted a client that didn't use a lot of resources. I don't want to save megabytes of old feed articles. I'm not really bothered about marking which articles I have read or not. RSS 2.0 recommends 20 articles as a limit to any feed anyway.

There didn't seem to be many web feed readers for the Zaurus, one that I had been using was ZauRSS, but it was missing many features and I didn't like the GUI. Fortunately Takatsugu Nokubi, the author of ZauRSS, had kindly made his source code available so I downloaded it and started rewriting it to satisfy my needs.

The icons are from the Tango Project, except for the Zocalo icon which is my own attempt to show the RSS icon in an atom and imply that Zocalo handles all feed types.

Features

Zocalo main features:
  • Read RSS, RSS RDF and Atom feeds
  • GUI and features designed for PDA such as small screen, use of keyboard
  • libcurl used for transfers
  • Lightweight

Screenshots

feed view articles view item view
Feed View Articles View Item View
feed information preferences  
Feed Information Preferences  

Downloads

You will need to install libcurl and libz.
Changes in 1.3
  • Status icons for feed status (red = invalid, yellow = unknown, green = good).
  • Preliminary support for website icons. *1
  • Enclosures (e.g. podcasts) can be downloaded. *2
  • More unwanted HTML tags parsed out of article titles.
  • After an update Feeds that have new articles are highlighted in the Feeds View.
  • Settings icon added to toolbar.
  • Settings dialog cleaned up and more options added, including choose font face.
  • Feed information table updated.
  • Improvements to usability, e.g. when selecting "Update All" the main widget will switch to show the feeds view and each feed will be highlighted as it is downloaded.
  • Minor bugs continue to be quashed.
*1 Feed must be added by website URL. Discovery of feeds from website is not robust and is being improved for 1.4
*2 This is limited to one enclosure per article which is fine for RSS but Atom supports multiple enclosures.


Changes in 1.2
  • Added support for portrait mode using jog wheel and OK button. Press OK quickly to navigate in, press OK and hold to navigate out.
  • Press and hold stylus on feeds in Feeds View for context menu.
  • Automatic discovery of the feed if you enter the URL of the website.
  • Change the colour of the stripes, the same colour is now used as the background for an article's header.
  • Change the colour of new articles.
  • Help file added.
  • Bugfix: Actually use the specified qcop signal if you change the browser.
Changes in 1.1
  • Preferences can now be adjusted for network timeout, web browser and font size
  • Date format follows system settings
  • Highlighting during update all is now correct
  • Option to continue if an error occurs during update all
  • Faster exit if no updates were made
Note: if you are upgrading from 1.0 then feed updated dates will not use the new system until you have updated them.

Notes

Use the cursor keys to navigate. Toolbar icons are from left to right: feeds view, articles view, open in browser, update current feed, stop transfer.

In portrait view use the jog wheel and OK button to navigate. Press OK and release quickly to navigate in, press OK and hold to navigate out. Hold until the display changes.

Only one transfer is active at any time but you can update all feeds from the menu, they will be downloaded in sequence.

The articles view shows only articles that were in the feed when you last updated it, articles from previous updates are not stored. After an update, new articles are marked with a different colour (see settings) but articles that were present the last time you updated will be black. When you exit Zocalo the article status is cleared.

This version saves all feeds in a flat file when you exit. If you have many feeds then it will take some time to save the data. If you manage to crash or kill the program then any updated feeds will not be saved. If you are short of space you can clear the flat file but keep the list of feeds via the button in the preferences.

Some feed servers do not return the Content-Length header so for those feeds the progress bar will not move.

The version number does not reflect the status of the software and is an arbitrary number chosen by myself.

Potential Bugs

Please kindly report bugs and usability issues to the Zocalo thread at the OESF forums.

Opinion

About Web Feed Types

I have been writing feeds by hand and using scripts to help automate that process for some time now and I think web feeds are great. The standardisation is not. There are 3 standards for web feeds, RSS 2.0, RSS RDF and Atom. In my opinion, RSS 2.0 is the best: simple and easy to write but its specification is not as clear as it could be. RSS RDF requires a lot of parsing and is less simple. It is not as suitable for a lightweight client on a mobile platform or if you write the feed by hand. Atom is good but still uses too many RDF-like features. When a human reads RDF it is difficult to imagine how it will be parsed.

Advice for Writing Feeds

When writing a feed or a feed module I think your philosophy should be to choose a standard and follow it. Keep it simple. Don't add images, HTML or CSS to the article descriptions. Don't include the whole article in the description, make a summary. Avoid using additional namespaces. I despise advertisements in feeds, it is not meta data.

About Web Feed Clients

I don't believe feeds are in any way similar to email. I don't think a web feed reader should treat them with the same paradigm of "unread" and "read" messages. I want to use a feed reader to skim a number of websites and pick out the articles I want to read in more detail. Some of them I will want to go to the web site and read them in a web browser. Or I will just want to read a summary because I don't have time to read the article thoroughly.