As the developer of an RSS aggregator I'm glad to see Microsoft's Simple List Extensions for RSS. Many of the aggregator developers I spoke to at Gnomedex this weekend felt the same way. The reason for being happy about these extensions is that they provide a way to fix a number of key feeds that are broken in RSS aggregators today. This includes feeds such as the MSN Music Top 100 Songs feed, iTunes Top 25 Songs feed and Netflix Top 100 Movies feed.

The reasons these feeds appear broken in every aggregator in which I have tried them is covered in a previous post of mine entitled The Netflix Problem: Syndicating Ordered Lists in RSS. For those who don't have time to go back and read the post, the following list summarizes the problems with the feeds

  1. When the list changes some items change position, new ones enter the list and old one's leave. An RSS reader doesn't know to remove items that have left the list from the display and in some cases may not know to eliminate duplicates. Eventually you have a garbled list with last week's #25 song and this weeks #25 song and last month's #25 song all in the same view.

  2. There is no way to know how to sort the list. Traditionally RSS ggregators sort entries by date which doesn't make sense for an ordered list.  

The RSS extensions provided by Microsoft are meant to solve these problems and improve the current negative user experience of people who subscribe to ordered lists using RSS today.  

To solve the first problem Microsoft has provided the cf:treatAs element with the value "list" to be used as a signal to aggregators that whenever the feed is updated that the previous contents should be dumped or archived and replaced by the new contents of the list. That way we no longer have last week's Top 25 song list comingled with this week's list. The interesting question for me is whether RSS Bandit should always refresh the contents of the list view when a list feed is updated (i.e. the feed always contains the current list) or whether to keep the old version of the list perhaps grouped by date. My instinct is to go with the first option. I know Nick Bradbury also had some concerns about what the right behavior should be for treating lists in FeedDemon.

To solve the second problem Microsoft has provided the cf:sort element which can be used to specify what elements on an item should be used for sorting, whether the field is numeric or textual so we know how to sort it and what the human readable name of the field should be when displayed to the user. I'm not really sure how to support this in RSS Bandit. Having every feed be able to specify what columns to show in the list view complicates the user interface somewhat and requires a degree of flexibility in the code. Changing the code to handle this should be straightforward although it may add some complexity.

On the other hand there are some user interface problems. For one, I'm not sure what should be the default sort field for lists. My gut instinct is to add a "Rank" column to the list of columns RSS Bandit supports by default and have it be a numeric field that is numbered using the document order of the feed. So the first item has rank 1, the second has rank 2, etc. This handles the case where a feed has a cf:treatAs element but has no cf:sort values. This will be needed for feeds such as the Netflix Top 100 feed which doesn't have a field that can be used for sorting. The second problem is how to show the user what columns can be added to a feed. Luckily we already have a column chooser that is configurable per feed in RSS Bandit. However we now have to make the list of columns in that list configurable per feed. This might be confusing to users but I'm not sure what other options we can try.


Categories: RSS Bandit | Syndication Technology
Tracked by:
"Simple List Extensions Critique" (Lost Boy) [Trackback]
"Squawkbox: Corporate Use of MSN Spaces-- check out CNBC. Rant alert" (James Gov... [Trackback]
"lined wicker laundry baskets" (lined wicker laundry baskets) [Trackback]
"dvd xcopy platinum" (dvd xcopy platinum) [Trackback]
"Alberta Incorporation" (Alberta Incorporation) [Trackback]
"moving companies quotes" (moving companies quotes) [Trackback]
"real audio player" (real audio player) [Trackback]
"What%27s a Jewish Matchmaker" (What%27s a Jewish Matchmaker) [Trackback]
"dawn of war mod" (dawn of war mod) [Trackback]
"exotic canopy beds" (exotic canopy beds) [Trackback]
"broker dealer information" (broker dealer information) [Trackback]
"2005 ford expedition" (2005 ford expedition) [Trackback]
"Camouflage Wetsuits" (Camouflage Wetsuits) [Trackback]
"mangosteen ORAC ounce" (mangosteen ORAC ounce) [Trackback]
"first compound microscope" (first compound microscope) [Trackback]
"Flagyl and diverticulitis" (Flagyl and diverticulitis) [Trackback]
"hookah diving with out tanks" (hookah diving with out tanks) [Trackback]
"hud property" (hud property) [Trackback]
"No Deposit Bonus" (No Deposit Bonus) [Trackback]
"cervical disc problems" (cervical disc problems) [Trackback]
"protonix in surgery use" (protonix in surgery use) [Trackback]
"vulnerability scanner" (vulnerability scanner) [Trackback]
"compromises of the constitution" (compromises of the constitution) [Trackback]
"residence inn seaworld" (residence inn seaworld) [Trackback]
"body aches and persistent fever" (body aches and persistent fever) [Trackback]
"kayak rod holder" (kayak rod holder) [Trackback]
"open response questions" (open response questions) [Trackback]
"personal injury lawyer virginia" (personal injury lawyer virginia) [Trackback]
"excel communications" (excel communications) [Trackback]
"baby photo contest" (baby photo contest) [Trackback]
"vacation rentals massachusetts" (vacation rentals massachusetts) [Trackback]
"mineral make-up" (mineral make-up) [Trackback]
"banner graphic, greencastle" (banner graphic, greencastle) [Trackback]
"white pages perth" (white pages perth) [Trackback]
"actonel d" (actonel d) [Trackback]
"don gabriel cigar shop" (don gabriel cigar shop) [Trackback]
"soft serve ice cream" (soft serve ice cream) [Trackback]
"jagg oil cooler" (jagg oil cooler) [Trackback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback]