One of the things need for my MySQL Users Conference talk is a sample application. Originally this talk was submitted as a tutorial, which I doubted would fly at MySQLUC anyway. For a tutorial, I think I'd spend an hour or more on the application. In this case, I have 45 minutes total, so I think I have about 5-10 minutes for a brief application tour with some code snippets.
Last time I did a tutorial (for OSCON 2002), I tried wrote a small application that would index your MP3 collection using ID3 tags. This time, I'm going for another timely subject: A RSS aggregator. This will actually be pretty easy, since I intend to use Universal Feed Parser to handle all the RSS and/or Atom feeds.
Part of my motivation is I still haven't found an RSS reader that I'm completely happy with. Currently the one I like best is rawdog. rawdog uses the Universal Feed Parser, and creates static web pages. Articles appear in reverse chronological order; there are also plugins to change the ordering. To actually update the feed database and write the pages, you use cron. You can set the refresh time separately for each feed, which is kind to the feed operators. The shortest feed time I use is an hour, and I have some at 2-8 hours, and a couple at one day or more. One big benefit is it's just a web page, so you can read it from anywhere.
Mozilla Thunderbird has RSS reader support, and it basically treats each feed as it would a newsgroup; it does everything you'd expect a USENET news reader to do, except post.
Mozilla Firefox can detect RSS and Atom feeds via the <link rel="alternate" ...> element, and then you can add the feed as a Live Bookmark. This looks like a regular folder of bookmarks, but it is refreshed periodically. This does not take the place of an RSS reader, since you only get a list of links, and no other content, and no tracking of read items, but it is useful. It's particularly easy to add new feeds.
Sage is an RSS and Atom feed aggregator and reader with feed discovery, in addition to Firefox's built-in feed discovery. You can import and export feeds in OPML format. It can render the feeds as HTML and tracks what you have read. I think I like it somewhat better than Thunderbird for this application.
Blam is a RSS (no Atom) written in C#. It works with Mono, and can read and write OPML. It doesn't update feed titles, though, like some of the others, and it may be a little too happy to reload feeds. If you don't already have Mono (or .NET), it's a lot to install.
What I want out of an RSS reader: I think I want is a more dynamic version of rawdog, with a dash of Gmail and del.icio.us. I am less concerned about where the articles are coming from, and more concerned with their classification (news, security, humor, blog, etc.)