RSS 2.0 is a bad format. I just helped Andy debug a problem with his linkblog's feed. Google Reader was sending folks to his own domain rather than directly to the link destination. Why? Because RSS 2.0 is stupid.

The problem is the guid element in the feed was being used instead of the link element you'd expect. Why? Well, read the spec:

There are no rules for the syntax of a guid. Aggregators must view them as a string.
If the guid element has an attribute named "isPermaLink" with a value of true, the reader may assume that it is a permalink to the item, that is, a url that can be opened in a Web browser.
isPermaLink is optional, its default value is true
Follow all that? guid is defined to be any ol' string. Only later we learn that by default, it's assumed to be a URL that feed readers may use to override the other URL in the entry. In other words, the default behaviour of guid is broken and every RSS 2.0 feed should probably be setting isPermaLink to false on every single entry.

Most people have probably never seen this bug because on a typical feed the link and guid both point to the same URL.

techbad
  2008-04-10 17:29 Z