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]
"SAGUARO CACTUS DERMATITIS" (SAGUARO CACTUS DERMATITIS) [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]
http://www.google.com/search?q=vgtqspzq [Pingback]
http://www.google.com/search?q=lzvtngai [Pingback]
http://pauldavidson.net/wp-content/themes/wfme/images/2/doctor.htm [Pingback]
http://www.cgs.de/search/data/search_text/1/a/tramadol.htm [Pingback]
http://themoneycamp.com/affiliate/banners/3/order-viagra.htm [Pingback]
http://www.cgs.de/search/data/search_text/1/c/generic-cialis.htm [Pingback]
http://themoneycamp.com/affiliate/banners/3/ambien.htm [Pingback]
http://www.cgs.de/search/data/search_text/1/a/buy-cialis.htm [Pingback]
http://pauldavidson.net/wp-content/themes/wfme/images/2/soma.htm [Pingback]
http://themoneycamp.com/affiliate/banners/2/fioricet.htm [Pingback]
http://psprumors.com/forums/Packages/4/ultram-online.htm [Pingback]
http://www.cgs.de/search/data/search_text/1/c/health.htm [Pingback]
http://themoneycamp.com/affiliate/banners/2/cheap-viagra.htm [Pingback]
http://www.cgs.de/search/data/search_text/1/a/buy-viagra.htm [Pingback]
http://themoneycamp.com/affiliate/banners/1/buy-viagra-online.htm [Pingback]
http://psprumors.com/forums/Packages/4/buy-ultram.htm [Pingback]
http://themoneycamp.com/affiliate/banners/4/fioricet-online.htm [Pingback]
http://psprumors.com/forums/Packages/3/carisoprodol-online.htm [Pingback]
http://themoneycamp.com/affiliate/banners/3/carisoprodol-online.htm [Pingback]
http://psprumors.com/forums/Packages/1/levitra.htm [Pingback]
http://psprumors.com/forums/Packages/1/buy-cialis-online.htm [Pingback]
http://www.cgs.de/search/data/search_text/1/d/viagra-online.htm [Pingback]
http://pauldavidson.net/wp-content/themes/wfme/images/2/adipex.htm [Pingback]
http://www.cgs.de/search/data/search_text/1/b/nexium.htm [Pingback]
http://www.cgs.de/search/data/search_text/1/b/pharmacy.htm [Pingback]
http://pauldavidson.net/wp-content/themes/wfme/images/2/health.htm [Pingback]
http://themoneycamp.com/affiliate/banners/4/viagra-online.htm [Pingback]
http://www.cgs.de/search/data/search_text/1/a/levitra.htm [Pingback]
http://www.cgs.de/search/data/search_text/1/d/weightloss.htm [Pingback]
http://www.cgs.de/search/data/search_text/1/c/cheap-viagra.htm [Pingback]
http://pauldavidson.net/wp-content/themes/wfme/images/3/ultram-online.htm [Pingback]
http://www.cgs.de/search/data/search_text/1/a/ultram.htm [Pingback]
http://themoneycamp.com/affiliate/banners/3/soma.htm [Pingback]
http://www.cgs.de/search/data/search_text/1/d/order-cialis.htm [Pingback]
http://psprumors.com/forums/Packages/2/cialisonline.htm [Pingback]
http://www.cgs.de/search/data/search_text/1/c/valium.htm [Pingback]
http://fbbbbbbbbbbbb.com [Pingback]
http://dbbbbbbbbbbbb.com [Pingback]
http://ebbbbbbbbbbbb.com [Pingback]

Monday, 27 June 2005 18:04:42 (GMT Daylight Time, UTC+01:00)
Fortunately RSS Bandit has a deleted items folder. That's the logical place to put an old item when a new item replaces it. That way if the user really wants to know who was in the top place within a list last week, the user has a means to find out.
Monday, 27 June 2005 18:20:07 (GMT Daylight Time, UTC+01:00)
RSS 2.0/extension/extension/extensions

Time for ATOM 1.0
Monday, 27 June 2005 18:29:40 (GMT Daylight Time, UTC+01:00)
paul,
I have found your various nuisance posts across the Web very irritating. If you have a point to make please make it via having an ontopic discussion of the issue at hand instead of trying to turn the conversation into a childish Atom vs. RSS discussion.

PS: Next time, I'll just delete your comment.
Monday, 27 June 2005 18:34:52 (GMT Daylight Time, UTC+01:00)
Thanks to our ingenuity, Top-10 lists work fine in our web aggregator because we don't sort and we don't save any history. So whatever the feed has is what is shown in the order it comes replacing the old stuff.

I am not comparing the pros/cons of giving the user all the functionality they want. I am just pointing out that in our case, all the extra stuff is not needed.

It just works.

Perhaps the solution lies there, an attribute in the feed header that tells the aggregator "do not sort/archive" ???

So everytime you get the feed, just replace the old entries and if the user wants to flag/save something, just move it to another folder?

t3h Blox0r
Monday, 27 June 2005 18:41:45 (GMT Daylight Time, UTC+01:00)
>Perhaps the solution lies there, an attribute in the feed header that tells the aggregator "do not sort/archive" ???

An aggregator can use the cf:treatAs element with the value of "list" as this flag.
Monday, 27 June 2005 18:42:20 (GMT Daylight Time, UTC+01:00)
Default sort field and sort order is definitely an issue in the MS proposal. Do I sort ascending or descending by default? Which field do I sort against by default? Is the ordering of elements within the feed significant?
Monday, 27 June 2005 18:54:14 (GMT Daylight Time, UTC+01:00)
Absolutely Dare, there can be 1000 solutions to a problem that doesn't exist.

Display the list as it comes.
Do not archive the list.

Two things we are doing with great success.
What is wrong with that approach?

t3h Blox0r
Monday, 27 June 2005 19:03:39 (GMT Daylight Time, UTC+01:00)
That would just piss me off. If I left my computer on at home while on a two week vacation, and found out that I missed items on an important feed because the feed only displayed the items currently listed on the server.

Not to mention if a feed used RFC 3229 or other bandwidth saving measures.
Monday, 27 June 2005 19:09:43 (GMT Daylight Time, UTC+01:00)
Ok ok, how about this:

Open RSS Bandit
Right click on a feed
Select "Treat as list" (no sort/archive)
Presto!

Sounds plausible huh?

In other words, let the user treat their feeds as they please.
If I had that option today, I'd use it.
And it is not that hard to implement, is it?

t3h Blox0r
Monday, 27 June 2005 19:42:34 (GMT Daylight Time, UTC+01:00)
t3h Blox0r,
Individual RSS readers can come up with hacks to dal with quirks in feeds. However this scenario is popular and significant enough that it should be explicitly supported in the format instead of being dependent on the aggregator specific hacks.
Monday, 27 June 2005 20:06:03 (GMT Daylight Time, UTC+01:00)
I see,

So you rather wait another year til everybody adopts the standard, instead of providing your users today with a nice and elegant solution to their actual need to get iTunes Top 10 or MSN Top 100 in the order it was supposed to be when it was generated in the feed (as it is the case of 100% feeds) without mixing it with old content when new content arrives.

I got it, didn't mean to bother you.
Thanks for listening.

t3h Blox0r

----
In a parallel universe:

Dare: "Thanks Blox0r, sounds like an interesting idea I am going to explore, maybe I can provide my users with a temporary solution till we get this thing cooked."

Blox0r: "Oh, 'twas nothing. I was just trying to help"
Monday, 27 June 2005 20:45:56 (GMT Daylight Time, UTC+01:00)
I'm not sure where you get the idea that it is one thing versus the other. There's nothing stopping an aggregator today from adding the "Treat As List" feature that you suggest. Similarly the existence of such a feature in one or two aggregators doesn't mean that this functionality isn't desirable in RSS.

If you are making an explicit feature request for RSS Bandit then you can post it at http://sourceforge.net/tracker/?atid=615251&group_id=96589&func=browse and I'll weigh it all the other feature requests we have for the next release.
Monday, 27 June 2005 21:42:44 (GMT Daylight Time, UTC+01:00)
Gosh, I don't mean to hijack your blog but if you post a question expect some answers (good or bad) from your readers.

"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."

Bzzzt, wrong.

1. A smart aggregator should recognize the most subscribed top-10 lists and act accordingly, transparent to the user.
2. Also, it should provide the option to the user to 'Treat as list' if he wishes so.
3. Finally, will support all standards "WHEN" they become standard.

That's what I get for trying to help.

t3h Blox0r
Monday, 27 June 2005 21:59:15 (GMT Daylight Time, UTC+01:00)
>A smart aggregator should recognize the most subscribed top-10 lists and act accordingly, transparent to the user.

Yet another hack suggestion. :)

Nothing stops an aggregator from hard coding knowledge of some popular list feeds such as Netflix or iTunes. This doesn't solve the problem for aggregators that want a generic solution or for non-popular feeds that aren't hard coded into your aggregator of choice.

There's a difference between trying to solve a problem for the syndication community at large and trying to hack a solution for your homegrown RSS reader.
Tuesday, 28 June 2005 00:35:21 (GMT Daylight Time, UTC+01:00)
Hey Dare,

I am sorry if this thread got heated, never meant to.
Maybe I confused your roles as Bandit creator and as MS solution provider.
Got your point, as coders we hack along, but we also have to provide solutions for all.

;-)

PS. I deeply admire your work.
Tuesday, 28 June 2005 17:12:54 (GMT Daylight Time, UTC+01:00)
Each item in the list has multiple columns. Loosely, this is equivalent to array of objects with each list item representing one serialized object and each column containing serialized value of the property. There had been long discussions towards these type of mechanisms in 2003. You can find them in my article at http://www.shitalshah.com/articlelist.aspx?file=articles%5cRSSCalendar.htm&title=RSS+And+Calendar+Integration&heading=RSS+And+Calendar+Integration.

I want to stress a point that I learned hard way in my research: RSS is neither ideal nor it is meant for wrapping such stream of data.

Let me elaborate on this point. You can represent your Netflix list as a table inside in-memory .Net DataSet and then save it as XML file on your webserver. The client software can directly check upon this XML file periodically and refresh the data it's displaying. This works the same way checking upon the RSS feed using E-Tag HTTP headers. All you need to do is to publish the schema of your DataSet and location of your XML. You don't have to put your XML in to RSS to make this work.

You can also easily observer that, in principle, lists can be used for sending out all kind of information that we traditionally store in database table. Question is why you want to put such raw data in RSS? In my essay, the only reason I found was that you can ride on the popularity of the term "RSS". People see RSS as synonym with publishing and subscribing so there is less "training" involved for them. But technically, this doesn't really bring home any advantages.
Saturday, 17 February 2007 23:32:01 (GMT Standard Time, UTC+00:00)
buy flexeril
Tuesday, 29 May 2007 11:38:18 (GMT Daylight Time, UTC+01:00)
http://incontrisingle.odp.tarnobrzeg.pl incontri single
http://fotografico.az.pl/lgdlbq/ lg plasma 42
http://fotografico.az.pl/immobileysrn/ immobile compravendita bergamo
http://fotografico.az.pl/allievoboau/ allievo prostituta nella stanza
http://giovaneoralefottiincucin.odp.tarnobrzeg.pl giovane orale fotti in cucina
http://enologiatoscana.odp.tarnobrzeg.pl enologia toscana
http://insignificanteroulotte.odp.tarnobrzeg.pl insignificante roulotte
http://progettazionerealizzazio.odp.tarnobrzeg.pl progettazione realizzazione sito
http://misuraremaglietta.odp.tarnobrzeg.pl misurare maglietta
http://vecchiechescopanosexanzi.odp.tarnobrzeg.pl vecchie che scopano sex anziani 70 foto sex
http://loghisexneriegsexrie.odp.tarnobrzeg.pl loghi sexnerie gsexrie
http://fotografico.az.pl/filmmqco/ film da scaricare gratis
werw
Comments are closed.