{"id":159,"date":"2006-01-01T14:10:16","date_gmt":"2006-01-01T03:10:16","guid":{"rendered":"http:\/\/www.somethinkodd.com\/oddthinking\/?p=159"},"modified":"2006-01-03T16:13:36","modified_gmt":"2006-01-03T05:13:36","slug":"wordpress-versus-rss-versus-bloglines","status":"publish","type":"post","link":"https:\/\/www.somethinkodd.com\/oddthinking\/2006\/01\/01\/wordpress-versus-rss-versus-bloglines\/","title":{"rendered":"WordPress versus RSS versus Bloglines"},"content":{"rendered":"<h2>Introduction<\/h2>\n<p>If you believe the hype, RSS (including Atom) feeds are the greatest thing since sliced bread. I think they are great, but they still have a lot to learn from sliced bread! RSS still needs the same sort of benefits of increased usability and standardisation that sliced bread brought to bread-making and toasting.<\/p>\n<p>The following rant is just me carping on about various aspects of RSS (including Atom), <a title=\"WordPress Home\" href=\"http:\/\/wordpress.org\">WordPress<\/a> and <a href=\"http:\/\/www.bloglines.com\">Bloglines<\/a> (my choice in feed aggregators).<\/p>\n<p>Remember: I savagely attack them because I <em>care<\/em>&#8230;<\/p>\n<h2>WordPress and RSS Feeds<\/h2>\n<p>WordPress supports a number of different feeds &#8211; really quite a surprising number.<\/p>\n<p>The feeds that you can subscribe to include:<\/p>\n<ul>\n<li>all of the articles<\/li>\n<li>all of the articles in a category<\/li>\n<li>all of the articles by an author<\/li>\n<li>all of the articles containing keywords<\/li>\n<li>all of the comments<\/li>\n<li>all of the comments on a particular article<\/li>\n<\/ul>\n<p>WordPress also supports the common feed formats: RSS 0.92, RSS 1.0 and Atom 0.3.<\/p>\n<p>I haven&#8217;t (yet?) found the feed I actually want &#8211; all of the articles <em>and<\/em> all of the comments.<\/p>\n<h2>How do find a feed?<\/h2>\n<p>It is one thing for a web-site to offer a feed. It is another to <em>find<\/em> that feed. How does a page link to a corresponding feed?<\/p>\n<h3>Human-Visible Links<\/h3>\n<p>The obvious way is to include a hypertext link, visible on the web-site.<\/p>\n<h4>Orange XML Icon<\/h4>\n<p>The tradition seems to be to use an orange rectangular icon with the letters &#8220;XML&#8221; in it.<\/p>\n<p>I am having trouble describing exactly how <em>wrong! wrong! wrong!<\/em> that system is.<\/p>\n<p>It is not just that orange so carefully clashes with everyone&#8217;s colour-scheme. It is not just that orange appears so prominently, when the icon is only used occasionally by a few people.<\/p>\n<p>It is more that XML is a technical name for low-level file-format. So not only doesn&#8217;t it mean the same thing as &#8220;subscribe&#8221; to non-technical people, it also doesn&#8217;t mean the same thing as &#8220;subscribe&#8221; to <em>technical<\/em> people. You may as well call the link &#8220;ASCII&#8221; or even &#8220;Big-Endian&#8221;.<\/p>\n<p>I applaud <a href=\"http:\/\/blogs.msdn.com\/rssteam\/archive\/2005\/12\/14\/503778.aspx\">Microsoft&#8217;s decision to ignore the XML icon<\/a> in IE7.<\/p>\n<h4>Dealing with Naive Clickers<\/h4>\n<p>If there is a link with an icon, naive users will click on it to see what it does.<\/p>\n<p>If you click on a link direct to the RSS content, you get a cryptic XML file displayed. (IE6 won&#8217;t even open an Atom feed &#8211; you need to save it to disk, and open it as an XML file, but that&#8217;s another story.)<\/p>\n<p>Cryptic XML displayed to the user? Hold on. Wasn&#8217;t that what XSLT was supposed to prevent? Hey, WordPress, where&#8217;s the link to an XSLT definition to display the RSS more meaningfully? (Even a static message, explaining to the user where they are, would be a great start.)<\/p>\n<p>Actually, to be fair, WordPress has a different mechanism. By default, it links to the RSS feed like so: <code>feed:http:\/\/<em>blog address<\/em>\/feed<\/code>. Unfortunately, IE6 doesn&#8217;t recognise the <code>feed:<\/code> scheme, and gives a horrible error message:<\/p>\n<blockquote><p>The page you are looking for is currently unavailable. The Web site might be experiencing technical difficulties, or you may need to adjust your browser settings.<\/p><\/blockquote>\n<p>Bad IE! Bad, bad IE! You should follow standards&#8230;. oh wait up. Maybe for once it isn&#8217;t IE&#8217;s fault? <code>Feed:<\/code> isn&#8217;t a <a href=\"http:\/\/www.iana.org\/assignments\/uri-schemes\">standard URI-scheme<\/a>. Nor does it seem to be used by aggregators doing auto-discovery (WordPress does support the other scheme &#8211; described below.) So, my dear WordPress, what was the thinking behind this usability nightmare?<\/p>\n<div class=\"aside\">Stop Press: See correction to this statement in the comments below. Bloglines <em>does<\/em> recognise this in auto-discovery.<\/div>\n<h4>Conclusion on Human-Visible Links<\/h4>\n<p>So, human-visible links to feeds are problematic. XSLT could reduce the impact of the problem, as could the use of more appropriate icons.<\/p>\n<h3>Auto-Discovery Links<\/h3>\n<p>If only there was another way &#8211; some way the software could automatically detect RSS feeds. Good news! They can, through the use of <code>link<\/code> tags in the HTML header. The <code>link<\/code> tag specifies the URL of the feed, a title, the MIME type (e.g. <code>application\/rss+xml<\/code>) and a relationship of <code>alternate<\/code>.<\/p>\n<p>Note: This is a different type of &#8220;link&#8221; tag to the typical <code>&lt;a&gt;<\/code> link tags that the web is built upon.<\/p>\n<h4>Authoritative References<\/h4>\n<p>Where did I find this information about auto-discovery?<\/p>\n<p>Through the help files of the aggregators, like Bloglines? No.<\/p>\n<p>Directly from the standard document published by an authoritative source? No.<\/p>\n<p>From a few random blogs (e.g. <a href=\"http:\/\/diveintomark.org\/archives\/2002\/06\/02\/important_change_to_the_link_tag\">Dive Into Mark<\/a>) that give me no reason to trust them and no references? Why, yes!<\/p>\n<p>I want a more authoritative reference.  Why?  So I can feel more comfortable that other people will follow the same interoperability conventions that I am being asked to follow.<\/p>\n<h4>Where&#8217;s Your Grammar?<\/h4>\n<p>The keyword for the <code>LINK<\/code> relationship is <code>alternate<\/code>. Alternate? Oh please! The word you are looking for is &#8220;<a href=\"http:\/\/en.wikipedia.org\/wiki\/Alternate\" title=\"Wikipedia definition of Alternate\" class=\"wikipedia\">alternative<\/a>&#8220;. Call me a nitpicker, but I find this just plain embarrassing. Did you remember to get someone who has some attention to detail to review your proposal before you published it?<\/p>\n<h4>Where&#8217;s Does The Title Come From?<\/h4>\n<p>The <code>LINK<\/code> tag includes a <code>title<\/code> field. That sounds really useful. I have links to multiple feeds in the same heading, and I can clearly distinguish between, say, the articles feed and the comments feed.<\/p>\n<p>But wait &#8211; when I ask <a href=\"http:\/\/bloglines.com\/sub\/http:\/\/oddthinking.somethinkodd.com\">Bloglines to auto-discover the OddThinking RSS feeds<\/a>, it seems to use different titles to the ones I provided in the <code>link<\/code> tag. What is going on?<\/p>\n<p>It seems Bloglines ignores the <code>title<\/code> field in the <code>link<\/code> tag. Instead, if fetches the RSS feed itself, and looks inside for the title to use.<\/p>\n<p>Unfortunately, WordPress sets that XML field the same for all feeds, so there is no distinguishing marks apart from the URL.<\/p>\n<div class=\"aside\">Stop Press: See correction to this statement in the comments below. WordPress <em>does<\/em> include <em>some<\/em> information in XML title.<\/div>\n<p>Both WordPress <em>and<\/em> Bloglines could do better here. Bloglines &#8211; take advantage of the provided title in the link. WordPress &#8211; let the feed&#8217;s metadata explain what it contains.<\/p>\n<h4>When do you know about your feeds?<\/h4>\n<p>The convention for auto-discovery is to put the links to the feeds in the HTML header.<\/p>\n<p>In WordPress, the header is normally generated &#8220;outside <a href=\"http:\/\/codex.wordpress.org\/The_Loop\">the loop<\/a>&#8220;. This means it is generated before the WordPress engine has read the database and filtered out which articles will be displayed. As a result, WordPress doesn&#8217;t yet know, at the time of generating the header, which articles (and hence which comment feeds) will be displayed.<\/p>\n<p>This is a tricky one &#8211; a clash between WordPress&#8217;s architecture and the structure of the HTML page. I can&#8217;t see how this could be easily fixed, but it means it is impossible (?) to enable auto-discovery of comments feeds for a particular set of article.<\/p>\n<h2>Conclusion<\/h2>\n<p>There&#8217;s still a long way to go to make WordPress, Bloglines and RSS get along seamlessly. Too much of the plumbing is visible to the subscriber, and too many features are only available to people willing to URL-hack.<\/p>\n<p>Despite the <a href=\"http:\/\/caseyporn.com\/blog\/archives\/000882.html\">lesson from Caseyporn<\/a>, I have not displayed orange icons on every page. I have shunted all the instructions off to a corner (see the Subscribe link on the menu).<\/p>\n<p>I feel guilty about relying on feed aggregators to do auto-discovery, when there is still so much work to be done. In the meantime, I am leaving in the ability to subscribe via email, even though this is even clumsier!<\/p>\n<p>Trying to get a feed from RSS is still like trying to get a feed from unsliced bread. The user is forced to do a lot of cutting by hand; the results are often misshapen, and they don&#8217;t fit properly into the <strike>feedburner<\/strike> toaster slot!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you believe the hype, RSS (including Atom) feeds are the greatest thing since sliced bread. I think they are great, but they still have a lot to learn from sliced bread! RSS still needs the same sort of benefits of increased usability and standardisation that sliced bread brought to bread-making and toasting.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_s2mail":"","footnotes":""},"categories":[31,25],"tags":[],"class_list":["post-159","post","type-post","status-publish","format-standard","hentry","category-geek","category-insufficiently-advanced-technology"],"_links":{"self":[{"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/posts\/159","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/comments?post=159"}],"version-history":[{"count":0,"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/posts\/159\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/media?parent=159"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/categories?post=159"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/tags?post=159"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}