Glacial Erratics

Tearing down walls with Atom

October 08, 2005

For some time now Socialtext workspaces have been pushing out Atom feeds alongside RSS. In this past week for a not-so-little experiment I made a stab at enabling support for the Atom Publishing Protocol or Atom API.    (PV0)

This turned out to be hugely liberating and more than a little confusing. Perhaps it is just the use of "atom" as the name of the standard--my google skills are taxed as I search for up to date and relevant information that is authoritative and consistent--but more likely it is that while the Atom format has made it to some level of doneness, the Atom protocol is not quite so mature.    (PV1)

These troubles matter little and will be solved: Late last night when I was editing, creating and deleting pages within a Socialtext workspace with both Perl and Python test clients, scales were scraped from my eyes, walls fell down, and objects once distant on the horizon were brought into clear relief. Sure, there are lots of Weblog APIs, but none in my experience has the comfy feel had by Atom in the wild. Atom is complicated and you can feel it, but you can also feel that it could end up doing some fun stuff in a clean way that brings the web another step closer to being a big storehouse of knowledge reusable (not just usable) by anyone.    (PV2)

Reusing knowledge is what drives my interest in the web. It's the force behind PurpleNumbers and TransClusion. Atom has that same feel and that feels good. We're moving away from a world where there's a there there to a world where there's a there everywhere. Content people can aggregate, edit and move around in pieces large and small, ready at hand when needed. Atom can do much more than edit a blog entry about your lunch and what the cat has done. I dream of granularly addressable atom editable chunks in the uniquely identified cloud.    (PV3)

The implementation in Socialtext is far from done. It's not yet aware of Collections, I'm ignoring that whole SOAP problem for now, there are some issues with authentication (WSSE doesn't play well with some security models) and there's the simple fact that my brain failed to suck up all the details (such as changing mime types) of the hundreds of documents I read in the past week.    (PV4)

Who is working on implementations of this stuff? Let's talk. I need some clients to test with.    (PV8)

Here's a screen capture from Joe Gregorio's wxPython client that I doctored a bit (the client, not the picture, there were some problems with authentication and content elements) as evidence for the court. This is just after creating, then retrieving the "Atom Will Rule The Universe" page from a test Socialtext workspace.    (PV5)    (PV6)

Thanks to Joe for all his work on Atom and his help getting the Python client going and thanks to Ben Trott and Tatsuhiko Miyagawa for XML::Atom.    (PV7)