RSS, OPML and the XML platform.
Copyright 2003-5 Randy Charles Morin
Today, I notice that Microsoft has changed the licensing on the RSS search results. They use to be free to use in any manner you wanted, commercial or otherwise. Now the copyright has changed to...
Copyright Â© 2006 Microsoft. All rights reserved. These XML results may not be used, reproduced or transmitted in any manner or for any purpose other than rendering MSN Search results within an RSS aggregator for your personal, non-commercial use. Any other use of these results requires express written permission from Microsoft Corporation. By accessing this web page or using these results in any manner whatsoever, you agree to be bound by the foregoing restrictions.
I got an email from Spokeo creator Harrison Tang. Some excerpts follow...
Spokeo is a multimedia RSS reader that aggregates blogs, photos, and videos on the Web. Its backend works like Google News, and it only syndicates publicly available information. This means that Spokeo does not currently support private profiles or Facebook.
Spokeo's main feature is "recommend". When someone recommends a post, it will show up on his (her) friends' Spokeo pages. This way, the post can spread through the network beyond the first-degree readership. In addition, much like Digg, the most recommended stories will appear on the Featured User page.
Spokeo aims to introduce RSS technologies into the mainstream. Most techies understand the power of RSS reader, how it empowers people to track numerous sources and digest more information. The mainstream users' attentions, however, are still locked into one or two major portals. By bridging RSS with social networks, Spokeo facilitates information flows, decentralizes people's attention from portals to niche blogs, and benefits the blogosphere as a whole.
Majolein Hoekstra's 9 RSS reader housekeeping secrets.
The proposal to create and publish an RSS Autodiscovery specification has passed the RSS Advisory Board with members Matthew Bookspan, Rogers Cadenhead, Jason Douglas, James Holderness, Eric Lunt, Randy Charles Morin, Paul Querna and Jake...
Craig Barnes is evangelising Enterprise RSS. Personally, I wonder if corporations really understand the advantage of adopting RSS (and blogs) as a marketing tool. Ya, they pretend, but show me the money. I don't see it. On the other hand, those that get it, will get many times more in return.
Please DO Feed the Sites is a blog series by Tim Dungan about introducing RSS to public TV stations.
Randy: Reposted. Hopefully somebody at Bloglines will pick this up. And, just to re-iterate; RSS 2.0 works. Why? Because the vast majority of feeds are RSS 2.0. So, if RSS 2.0 didn't work in Bloglines, then it wouldn't make it thru QA. When Atom 1.0 is broken, it takes an uber-geek like Rogers to point it out.
For those that don't know, Harvard Law School owns the RSS standard. But, there's actually nobody at Harvard that is actively maintaining the website that hosts the RSS specification or the spec for that matter. As such, it's out-dated and does not include the recent updates made by the RSS Advisory Board. Further, the website is more often than not non-responsive or really slow to respond. This makes it very hard on developers looking for help on RSS. As such, I'm asking my readers to update their RSS links to point to the latest RSS spec on the RSS Advisory Board website. This website is actively maintained by community giant Rogers Cadenhead and the website is very responsive. If you update your links and use the new link in your new posts, then maybe we change the Google juice and help developers get real help. Here's the link to the recent RSS spec.
I moved my site to a new host, which screwed up the way Wordpress handles URIs. While it didnât break any of my post links, it moved my RSS feeds URI from site/index.php/feed/ to site/feed/, and a lot of readers arenât getting the feeds anymore. What can I do to redirect them to the new feeds, without having access to the URIs of the old feeds?
This problem requires a little bit of Apache knowledge. I can think of three ways to fix this problem.
Any other ideas for Nathan?
Update from Nathan...
Hereâs what worked for me: I added a permanent redirect in the .htaccess of my blog root pointing the relative URL of my old RSS feeds to the absolute URL of the new feeds. For example, one line reads:
Redirect permanent /index.php/feed/ http://microsoft.blognewschannel.com/feed/
In my extreme case, I had to find every variation on my RSS URL (since WordPress uses virtual addresses for the feed), and redirect each one separately to the new one.
Thanks a ton for the help, Randy!
Jason Calacanis has left AOL, in response to AOL replacing his boss and mentor, John Miller. I'm sure Jason will do well in whatever he does, this is mostly a big loss for AOL. I'm betting $5 on the imminent decline of Netscape and the Weblogsinc network.
Hat tip to Ken for the news tip and the mentoring.
Tom Morris has introduced new features to his OPath protocol that allows you to locate an <outline> within an OPML document by its created date attribute. I wish he'd consider a solution that isn't dependent on one domain, one that respect the current IRI standard and that works for any OPML <outline> attributes.
Tim Bray on RSS, Atom and the Atom publishing protocol.
And of course, he brings up how do you encode angled brackets in RSS titles as a problem. This has long been solved, but Atomites continue to raise this issue. That's kinda deceptive on Tim's part. Not impressed.
David Rothman asks...
I'm facing a challenge with my blog's feed that I'm hoping you can advise me on. When I first started my blog, I used the native Wordpress feed (http://davidrothman.net/feed ), but I have recently switched to a FeedBurner feed because I love the FeedFlare features that add links to let subscribers do things like quickly and conveniently bookmark a post in del.icio.us. I'd like to make the transition to the FeedBurner feed complete, but I don't want to inconvenience or annoy my blog's subscribers. Also, I can't exactly turn off the native Wordpress feed because it actually provides the information that FeedBurner uses. Is there any advice you can offer?
I had the same problem. My feed was rss.xml and was sub'ed directly and in my feedburner config. I created a new feed index.xml and changed my FeedBurner settings to point to index.xml instead. Then I redirected rss.xml to feedburner. Everything worked.
Randy: I hope so, because right now it sucks.
Tom Morris wants to create the ability to locate a node within an OPML document. He suggests the following notation; http://opath.opiumfield.com/http://hosting.opml.org/dave/states.opml/--/United States/New England. This notation has a few things I don't like. Dependency on a domain, what to do with spaces in the path, won't work in IE or Firefox. Not all nodes can be accessed. I think a better option would use the following format; http://hosting.opml.org/dave/states.opml#text=New+England. If you got ideas? Tell Tom.
I'm gonna break this tutorial into two parts. The first part is when you want to move an RSS feed to another place, domain, blog, or whatever. The second part is when you don't care anymore and you want your readers to simply go away and free up some bandwidth.
In doing my own testing, I put together a very dynamic RSS feed [https://rssweblog.com/test/rss-time.aspx] where all these various move operations will be moving to. The first and most proper way of moving an RSS feed is to respond to the HTTP request with a 301 Permanent Redirect. I've prepared a small ASPX file [https://rssweblog.com/test/http-301.aspx] that simulates exactly this type of response. The code for ASP.NET is shown.
<%@ page language="C#" %>
Response.Status = "301 Moved Permanently";
If you re-use this code, simply change the URL in the AddHeader call to the target URL where your RSS feed is moving to.
For the really geeky nerds out there, this is what a 301 redirect looks like at the wire level. The first two lines are the client request and the last four are the server response. I removed a couple headers that were irrelevant to the discussion.
GET /rss/test/http-301.aspx HTTP/1.1 Host: www.kbcafe.com HTTP/1.1 301 Moved Permanently Date: Fri, 10 Nov 2006 17:55:11 GMT Location: https://rssweblog.com/test/rss-time.aspx Content-Length: 0
Of course, not everybody has HTTP level access to their website or the skill required to generate such a response. In those cases, you may want to consider an XML-level redirect. Here's a sample XML-level redirect [https://rssweblog.com/test/xml-redirect.xml]. The content of the file is shown below.
<?xml version="1.0" ?>
To use this technique simply download the xml-redirect.xml file. Then change the URL of the target RSS feed to the URL where your RSS Feed is moving to. You may have to escape some characters in your target URL. Change > to > < to < and & to &. If you struggle with such escaping, then drop me an email [firstname.lastname@example.org]. Finally, rename the file to the same filename as your RSS feed and copy the file to your web server, replacing your old RSS file.
Again for the geekoids, here's what the XML-redirect looks like on the wire.
GET /rss/test/xml-redirect.xml HTTP/1.1 Host: www.kbcafe.com HTTP/1.1 200 OK Content-Length: 121 Content-Type: text/xml Last-Modified: Fri, 10 Nov 2006 16:21:37 GMT Accept-Ranges: bytes ETag: "2268c84be44c71:d84" Date: Fri, 10 Nov 2006 17:57:19 GMT <?xml version="1.0"?> <redirect> <newLocation>https://rssweblog.com/test/rss-time.aspx</newLocation> </redirect>
Assuming options A and B are not possible, the next best way is a 302 Temporary Redirect. But this method is really wasteful because the client software will continue to use the original URL and be redirected every-time to the new URL. Wasteful indeed. Here's sample temporary redirect [https://rssweblog.com/test/http-302.aspx]. If all of A, B and C are not possible, then a last option is to put a blog entry that specifically asks your readers to re-sub using the new URL.
Great, we know how to move an RSS feed, but just how do we go about killing one that is no longer required. The best way to tell a client that a feed is no longer used is to response with a HTTP 410 Gone response. Here's a sample 410 gone response [https://rssweblog.com/test/http-410.aspx].
The ASP.NET code for a 410 gone response.
<%@ Page Language="C#" %>
Response.Status = "410 Gone";
And here's what it looks like on the wire.
GET /rss/test/http-410.aspx HTTP/1.1 Host: www.kbcafe.com HTTP/1.1 410 Gone Date: Fri, 10 Nov 2006 18:02:32 GMT Content-Length: 0
Some RSS clients will prompt the user to remove the feed when this response is encountered. Others will simply stop polling the feed or even unsubscribe the user without requiring any confirmation.
If you can't figure out how to do a 410 Gone response, then you can also use an XML-level redirect to accomplishes the same. Here's a sample XML-level redirect that tells the RSS client that the feed should be unsub'ed [https://rssweblog.com/test/xml-gone.xml]. Note this XML-level redirect is similar to previous, except that no new RSS feed is provided.
And finally, here's what a XML-level unsub looks like on the wire.
GET /rss/test/xml-gone.xml HTTP/1.1 Host: www.kbcafe.com HTTP/1.1 200 OK Content-Length: 64 Content-Type: text/xml Last-Modified: Fri, 10 Nov 2006 16:21:37 GMT Accept-Ranges: bytes ETag: "de1aba4be44c71:d84" Date: Fri, 10 Nov 2006 18:10:18 GMT <?xml version="1.0"?> <redirect> <newLocation/> </redirect>
Notes: If anybody has PHP code or other similar to the ASP.NET code above, then feel free to post them in the comments. If you post them in the next few days, then I'll likely add them to the content of the original article. And a big thanks in advance.
Michael Arrington proves once again that he's not concerned with integrity. This time, he's caught removing a conflict of interest statement from his blog to help a colleague and is black balling his colleague's competitors. Hey guys, why don't you link to him again, maybe he'll link back to you ;-)
James Snell has published two new articles on how to use the Atom publishing protocol.
And two new sections of Dave Johnson's book RSS and Atom in Action are availble online.
Mozilla Links has a bunch of one-click subscription handlers for various RSS clients. Simply click the following links to install the subscription handler for your favorite RSS reader.
Here's a pretty cool technique I discovered from the 456 Berea Street blog. You can create links to allow your readers to quickly add your blog to the Technorati favorites and boost your Technorati rankings. For instance, click the following link to add The RSS Blog your Technorati faves.
The socially inept YouTube-loving junior college dropout's MySpace page, cruel.com, is relaunching via RSS. Subscribe to their new RSS feed and you'll be one of the first to find out when they re-launch.
Spectrum: Parakey is intended to be a platform for tools that can manipulate just about anything on your hard driveâe-mail, photos, videos, recipes, calendars. In fact, it looks like a fairly ordinary Web site, which you can edit. You can go online, click through your files and view the contents, even tweak them. You can also check off the stuff you want the rest of the world to be able to see. Others can do so by visiting your Parakey site, just as they would surf anywhere else on the Web. Best of all, the part of Parakey thatâs online communicates with the part of Parakey running on your home computer, synchronizing the contents of your Parakey pages with their latest versions on your computer. That means you can do the work of updating your site off-line, too. Friends and relativesâand hackersâdo not have direct access to your computer; theyâre just visiting a site that reflects only the portion of your stuff that you want them to be able to see.
Randy: Parakey is the latest software from Blake Ross, creator of Firefox.
Firefox 2.0 has an new feature that allows it to hand-off RSS subscription requests to other RSS clients. It's very simple to create your own. Here is the code I wrote that installs Rmail as an RSS subscription handler.
Jason Calacanis: Add a "search the web" box on the top right of the Wikipedia pages or next to the Wikipedia Search box on the left. [cut] If Wikipedia is getting 2B pages a month that would be 20-40M searches. Even at a $10 RPM that would be $300-800k a month.
Randy: Although Jason obviously failed math class, this sounds like a very reasonable approach that Wikipedia should be considering. It wouldn't hurt to try it for a month and judge the revenues against the communist onslaught. I can never figure out why people hate ads so much.