The results are summarized on the Wiki; what do they mean? Obviously, good news: The fact that people from this many places, most of whom had never met before, got together and were able to put that many check-marks on the grid, based on a protocol whose design is not quite frozen, verges on the miraculous. Now let’s dive a little deeper; what does each check-mark mean, and what can implementors bet on, and when?

Check or Not · Standards vary. For example, there’s one server-side API where I didn’t record success even though I eventually managed (I think) to post a picture, because there was just too much one-off hacking involved. In this particular case, I’m sure the developers are clueful and will fix the problems.

I’m dubious about the quality of a few of the check-marks in the grid; I know some of the client guys bypassed a b0rked Service doc and just hammered HTTP verbs at a hacked-in collection URI, which I’m pretty sure isn’t kosher. On the other hand, the fact that I’m picky, and that I still managed a check-mark on nine of fourteen attempts to interoperate with server implementations, is pretty decent.

Attitude · So far, the attitude around the APP is pretty pleasing. I can clearly remember the early days of trying to roll out one Web Standard or another, and Netscape or Microsoft would come to the meeting and say “Yes, well we’ve decided there would be greater value to our users in our improved version” by which they meant “Fuck you standards wusses, we’re about grabbing territory.”

Haven’t been getting much of that around the Atom Protocol. I wonder why? Partly because protocols are all about it taking two to tango, partly because Atom has never sanely been accused of being a nefarious plot by one vendor or another, maybe because as a community we’re a little older and wiser. Anyhow, I sure appreciate it.

In fact, there was a lot of laughter in the room. “Ape just went into endless-loop mode, snicker.” “GData just blew chunks, ha ha.” “Roller’s got null-byte cancer again, hee hee.” It’s the only way engineers stay sane, see 47 ways.

Authentication · It’s gonna be a problem. See James Snell. I think I’m going to have to write more on the subject.

The Implementation Space · It’s become pretty obvious that a pretty broad range of pieces of software can fairly claim to to be Atompub implementations. This is more obvious on the server than on the client side, partly because the implementations are more numerous and mature at this point.

Some are clearly not general-purpose; for example, the O’Reilly people at the Interop event had what appeared to be a perfectly legal implementation; but you could only post DocBook XML to it. Which I can see being useful for them, but a vanilla blogging client probably won’t work that well with it, out of the box.

In the short term, I’m personally most interested in mainstream servers that a general-purpose blogging client (like the kind you’d expect to find in a mobile phone, hint hint) could use easily. So that’s the space the Ape explores.

If you check that interop grid, the columns with check-marks in Row 1 are implementations that in my opinion could probably be used by a generic blogging client pretty well right out of the box.

Heterogeneity · Technologies represented: Perl, Python, PHP, Ruby, Java, C#; DB2, Oracle, MySQL, Derby, flat files; Linux, Windows, OS X, Solaris. Spot the pattern?

APP When? · So, Joe Cheng of Microsoft, on the Live team and an impressive guy, looked me in the eye and said “When can I ship an APP client and be safe?” Which is a really hard question and 100% totally fair. I can’t make any promises, but what I said was “July” and I think that’s safe.

The Big Lesson · Sun and IBM and Oracle have working database-backed Atom stores. Microsoft and IBM, that we know of, have in-progress clients. Judging by my email, there are a bunch of startups hacking together one side or another of the protocol. Draw your own conclusions, but I think it’s obvious.



Contributions

Comment feed for ongoing:Comments feed

From: Manuzhai (Apr 18 2007, at 15:08)

The interop grid is nice, but what I'd really been hoping for is an extensive list of homes for the code tested (as far as it's publicly available). E.g., because of the part of the blogosphere I live in, I know how to get to the Ape code, and I can find out where Gregorio's code lives, but what are all these other implementations, are they open source, in what language are they written? I've looked around the wiki and Googled several times, but it would be nice if there was an authoritative list somewhere.

[link]

From: Keith Fahlgren (Apr 18 2007, at 16:33)

Tim said: "Some are clearly not general-purpose; for example, the O’Reilly people at the Interop event had what appeared to be a perfectly legal implementation; but you could only post DocBook XML to it"

Just for the record, that server was indeed intended for a single purpose (document repository), but did have a number of more generic collections that you've overlooked:

<collection href=".../atom/oreilly/images">

<atom:title type="text">Images</atom:title>

<accept>image/png,image/jpeg,application/postscript,image/bmp,image/gif,image/tiff,application/pdf</accept>

</collection>

<collection href=".../atom/oreilly/articles">

<atom:title type="text">Articles</atom:title>

<accept>application/xhtml+xml</accept>

</collection>

<collection href=".../atom/oreilly/books">

<atom:title type="text">Books</atom:title>

<accept>application/docbook+xml</accept>

</collection>

<collection href=".../atom/oreilly/pdfs">

<atom:title type="text">PDFs</atom:title>

<accept>application/pdf</accept>

</collection>

<collection href=".../atom/oreilly/shortcuts">

<atom:title type="text">Shortcuts</atom:title>

<accept>application/docbook+xml</accept>

</collection>

If any implementors want to mess with this server in the future feel free to contact me (my first name @ oreilly.com).

[link]

author · Dad · software · colophon · rights
picture of the day
April 17, 2007
· Technology (77 fragments)
· · Atom (91 more)

By .

I am an employee
of Amazon.com, but
the opinions expressed here
are my own, and no other party
necessarily agrees with them.

A full disclosure of my
professional interests is
on the author page.