by Mike Shea on 14 December 2005
I haven't paid much attention to the Atom vs RSS wars in the world of XML syndication formats. I generally used RSS 2.0 for its simplicity, extensibility, and ubiquity. Most everyone seems to use RSS 2.0. It's backward compatible with RSS .91. It uses very simple "link" and "title" tags for things. Most every parser doesn't have too much trouble with it. I can easily write a regex parser in Perl or Python to parse over it. Using XHTML namespaces, I can include the entire contents of an entry into an RSS file with a body tag.
Then I look at this new finagled Atom format. Right off the bat it pissed me off. Instead of "item" they wrap things in "entry" tags. Then they break one of the two tags that made RSS so simple by making links an attribute instead of an entity. Now I can't just parse on link tags, I have to figure out if its Atom, if its an alternate link, and if it points to an html file before I can stick it somewhere. Sure, the declaration is nice, but allowing for multiple links in a single item really freaks me out.
This last weekend I spent a lot of time with Atom 1.0 and I'm not as pissed off as I was. I read up on a couple of articles by Tim Bray including RSS 2.0 and Atom 1.0 compared and On Postel, Again. They make a lot of sense. Atom is now an IETF standard, not copywritten to any one group. It can be called as a namespace itself. The reason they broke the link tag was to make it more consistent and to allow for these funky "containers" that let you declare content by its type. New "summary" and "content" tags let you include the full contents of an entry and declare it as text, html, xhtml, or something else. The new "updated" and "id" tags are now required but link is not.
Atom 1.0 isn't perfect. It's still more complicated than RSS 2.0 was. Fewer tools support it directly. You can still do a lot of weird things with Atom that programmers won't understand. For example, Tim Bray's own Atom 1.0 feed doesn't work when you subscribe with Firefox. I think this is because he uses relative URLs in his "link" "href" attributes, something I also think sucks.
I rewrote a few of my scripts to now generate Atom 1.0 feeds from my content including feeds for mikeshea.net, liquidtheater.com, and loralciriclight.com. I also wrote an XSLT stylesheet to render Atom 1.0 feeds in HTML on a supporting browser like Firefox. For example, check out my Mikeshea.net Atom 1.0 feed.
I also updated my lifebackup program to create a lifebackup intellectual DNA strand, a copy of everything I write for about five websites, in both Atom 1.0 as well as the original RSS 2.0. Someday I may kill one or the other but for now, it's only four megs each. I also wrote a Python script that can build an entire website from my Atom 1.0 feed automatically. It was mostly an exercise but it was fun.
I put copies of my various Python scripts in my scripts library.
I started typing up my new short story, "Vrenna and the Little King" last night. I'm about 1,000 words in to a 5,000 word story. I wrote this one with a Lamy 2000 fine point fountain pen loaded with Noodler's Black ink in a large Moleskine lined journal with a traditional Renaissance Art leather Moleskine cover. The story is one I had stewing in my head for a long long time. When I sat down to write it, it all came out at once. It needs some work but overall I was happy with it. I may try to sell this one so it may not show up on the web for a while, if anyone out there is interested in reading it, send me an email to email@example.com and get on my list of editors.
Send comments to firstname.lastname@example.org or follow @mshea on Twitter. If you enjoyed this article, please use this link to Amazon.com for your next online purchase.