RSS on the Client
April 30, 2003
What do I do with an RSS feed?
Q: I am trying to figure out this RSS thing. If I want to "subscribe" to someone's XML feed, what do I do? I hit the XML button and get an entire page of code. What do I do with that?
A: I'll start by spelling out something which you probably (at some level)
already know: RSS (an acronym for RDF Site Summary) is just another XML vocabulary.
feed -- as you call it, an XML feed -- is simply an XML document conforming to the
rules of that vocabulary and served up to some
client program. (For example, an RSS document has a root
rss element, which has
numerous subordinate elements, all of which may have various attributes.) If you're
interested in the details of the RSS vocabulary, an excellent introduction is Mark Pilgrim's XML.com
feature of a few months ago. (Part 1 is especially helpful for newcomers; Part 2 deals
primarily with using Python to process RSS feeds.)
But your question isn't about the vocabulary. Instead it poses the quite reasonable head-scratcher which might pop into any Web user's mind: Thousands of other people out there on the Web already "get" RSS -- how do I use all that RSS-encapsulated information?
As you've learned, simply aiming your Web browser at an RSS feed is not the way to go. Browsers -- even the late-model ones which tout their support for XML -- can't handle everything delivered to them. They can handle "XML" all right, using one-size-fits-all rules of thumb (like elements nested within other elements, and so on); it's the specific vocabularies, like RSS, which they don't know enough about to process in any meaningful way. So when you open an RSS document, your browser treats it the same way it does any other XML document: dumps the raw source to your screen.
For now, the solution is to acquire a separate client program, called an RSS aggregator, RSS client, or RSS reader, to collect and process your feeds. RSS reading features are sometimes bundled into Usenet newsreader programs. While the underlying technology is not the same, from a user's perspective "subscribing" to an RSS feed feels an awful lot like "subscribing" to a newsgroup. Some source of the information must be polled on demand or on a schedule; the data must be retrieved and presented to the user initially in some summary form, such as a header; and then the information must be displayed in full if the user selects it.
|Figure 1: FeedReader
In fact, even the RSS readers which aren't bundled into newsreaders almost universally have the same "look" as newsreaders themselves. Figure 1 shows the main screen for FeedReader 2.5, a freeware RSS reader for Windows. Down the left side is a list of available "channels" (that is, feed sources); at top right is the list of current "topics" from the selected channel; and at bottom right is the content associated with the currently selected topic. In many cases this content consists merely of a "Read on" link; sometimes the feed's developers have also included a capsule summary of the document.. Following the link here opens the entire document associated with this topic, often in the same portion of the newsreader window as the link/summary. For example, Figure 2 displays a recent XML.com feature as selected from the list of feeds available on the O'Reilly Meerkat "Open Wire Service." (Again, this screenshot depicts the FeedReader interface.)
|Figure 2: FeedReader and Meerkat
Not all RSS readers are based on Microsoft Windows. AmphetaDesk (version 0.93, Figure 3) runs under Windows and Mac and Linux clients. It's a Perl-driven freeware reader which dynamically assembles an index page containing links to all the current feeds and serves it up to the browser; each of these links, of course, simply opens the linked-to page in the browser window.
|Figure 3: AmphetaDesk
These clients share one feature: They all come preconfigured with sources of RSS feeds. As you might have noticed in Figure 1, for example, FeedReader's built-in set of sources includes an extensive selection from moreover.com's "public metabase".
Likewise, for the most part the RSS readers let you add new sources to the ones they're preconfigured for. Which brings up another question: How do you find RSS sources in the first place?
Good places to start include NewsIsFree and syndic8.com. At the latter, there's a "search for feed" form on the home page; enter a keyword and hit the Search button to list all the feeds for which they have information. Entering "comedy," for instance, located 18 feeds (some duplicates). At syndic8.com and, indeed, just about any site offering RSS feeds, the links to the feeds are marked with one of the "XML buttons" you mentioned in your question. (For those who haven't seen them, these buttons most often look like this: ) It's a plain old hyperlink, so you can simply right-click on it to copy the URL and then paste it into your RSS reader's "add channel" feature.
|Figure 4: NewzCrawler
Some RSS readers are a bit more sensitive than others to what you're looking at, though, and don't need the additional help from you. This feature is called "autodiscovery"; the idea is that when you're visiting any web page, and have your RSS reader active, it "knows" if there are one or more RSS feed links on the page. If so, you're given the opportunity to add the channel. The commercial NewzCrawler reader (free 14-day trial, $24.95 to purchase), for instance, pops up a form like Figure 4.
Also in XML Q&A
(Be aware that a good deal of the current RSS load on the Internet isn't from "official" news sources such as newspapers and other press services, governments and so on. RSS is also common in distributing the content of weblogs. It's true that blogs are of uneven quality and freshness; nonetheless, their daily -- or more frequent -- update cycles fit naturally with the idea of content syndication. When visiting your favorite blogs, keep an eye open for the "XML button" described above.)
Not everyone agrees that this blizzard of standalone RSS clients is a good thing. Until the browser makers climb onto the RSS bandwagon, though, and start bundling RSS-smart modules with their products, these little applications provide the answer to your question. (If you're using Mozilla or Netscape 7.0+ as your browser, regardless of operating-system platform, you might want to check out the very interesting NewsMonster Java application. There's a free, ad-supported basic version as well as a "NewsMonster Pro" available for $29.95.)