<body><script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener('load', function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <div id="navbar-iframe-container"></div> <script type="text/javascript" src="https://apis.google.com/js/platform.js"></script> <script type="text/javascript"> gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: 'https://www.blogger.com/navbar.g?targetBlogID\x3d8841590\x26blogName\x3dmini+cod\x27s+blog\x26publishMode\x3dPUBLISH_MODE_BLOGSPOT\x26navbarType\x3dBLACK\x26layoutType\x3dCLASSIC\x26searchRoot\x3dhttps://minicod.blogspot.com/search\x26blogLocale\x3den_US\x26v\x3d2\x26homepageUrl\x3dhttp://minicod.blogspot.com/\x26vt\x3d-5922962456000464541', where: document.getElementById("navbar-iframe-container"), id: "navbar-iframe" }); } }); </script>

Tuesday, November 16, 2004

<guid> scandal

On the course of the development of my feed project, I tested my feeds on several different programs. These are: Klip, RssReader, Mozilla Thunderbird, SharpReader and FeedReader. They are all very good readers of RSS 2.0 feeds, however, some of them doesn’t conform the standard very well. I don’t regard myself as an expert on this, but these are my findings. The <guid> tag has been introduced since 2.0, each item should come with it for recognizing the uniqueness of an item. Therefore, readers should forget about the rest of tags such as <link> and <description>. The idea is not difficult when you think of 2 people having same name in a customer database, this is similar to a global id in the feed.

Klip: Recognize the existence of <guid>, fully support.
RssReader: By far the most terrible support of <guid>, it doesn’t see it at all or simply ignore it. It treats the whole item as a global id. You’ll see a lot of items on screen sharing the same <guid>.
Thunderbird: Treats <guid> extremely well, no problem at all.
SharpReader: Still treats <guid> as a family member, however, if the content of an item has been changed since last retrieval, the old version will be replaced by the updated, even though they share the same <guid>. This doesn’t happen in Klip at all, strange.
FeedReader: Doesn’t support UTF-8 encoding, my feeds are in Chinese. Do not use it to read my news.

Chinese feeds are either written in Big5 or Unicode, there are almost 99.9% of webpages are still in Big5 (very sad indeed). RssReader and SharpReader both supports Unicode very well based on the IE core. Thunderbird and Klip (doesn’t support Big5 though) supported it well too. FeedReader isn’t a good choice of reading Unicode characters. Feeds written using perl have some serious troubles on all readers except Klip. I have absolutely no idea.