· · Atom
· Which is to say, It’s Sunday and I just wired up my little publishing empire here to the new hotness in Web syndication technology, PubSubHubbub. If you’re running a hub and you’re not evil, let me know and I’ll ping you ... [12 comments]
· This was turned up by Aaron Swartz: The hundreds-of-billion-dollars-big glob of US stimulus legislation imposes a bunch of guidelines on recipients, which seems sensible. Especially sensible is the one saying that those receiving the funding have to do substantial reporting, and that the key reporting data be available in a syndication feed, and I quote: “preferred: Atom 1.0, acceptable: RSS”. I can’t think of anything to add. [4 comments]
How Fast is Fast?
· In preparation for my mod-atom presentation at ApacheCon next week, I’ve been running some performance tests with the help of a gaggle of client machines rustled up by some good people in the Sun engineering-lab group. The first numbers are trickling in, and I’m a bit at a loss both on what to measure and how to evaluate the results. Is 180 POSTs/second on a T2000 good?
[Update: Make that 320/second; have some better data presented in a table.] ... [7 comments]
· This is a lengthy note to myself. I initially wanted to capture the thinking that went into the construction of mod_atom while it was still fresh in my mind, and dumped out the first dozen or so sections. Then as I expanded and refactored the code, I find that I’m keeping this up to date. This mostly by way of putting it in a place where I won’t lose it. I can write stuff for ongoing faster than for any other medium, and “On the Net” is a good place not to lose stuff. If mod_atom eventually gets picked up and used, this may be useful to me or anyone else who’s maintaining it; and if it doesn’t, there’ll still eventually be an AtomPub server module for Apache, and this might be useful to whoever builds it. But this is not designed to be entertaining or pedagogical; among other things, it’s in essentially random order ...
· I’ve been using RSpec in a way that’s probably inappropriate, but has got me thinking about Test-Driven Development and REST ... [13 comments]
Build One to Throw Away
· This is a maxim from Fred Brooks’ The Mythical Man-Month. These days I’m thinking it’s the single most important lesson there is about software. It’s been brought rudely home to me by my recent work on mod_atom, whose design is terribly simple; but I still got the first cut wrong in important ways ... [9 comments]
It’s Called AtomPub
· Recently, I was asked for feedback on some technology being built inside Sun which was said to rely on “Atom Pub/Sub”. In related confusing news, more than one big company has talked about “Rolling out APP”. Branding matters. So we took it up on the Atom Protocol mailing list and, for what it’s worth, the community of implementors has agreed that we’re all going to refer to the protocol specified in RFC 5023 as “AtomPub” and nothing else. Please co-operate ... [1 comment]
· Herewith some evidence, for the general tech public, that Atompub is a big deal, and for the Atomistas, some interesting developments ... [6 comments]
USB and Atom
· The last little while, I’ve been doing a lot of infrastructure shifting, and I’ve realized that in the world of computers, USB is maybe the greatest standard ever. I’ve heard kernel engineers sneering and scoffing, but here’s the highest compliment I can pay, speaking as a fairly hard-core computer tech type: I have no idea how USB works, and I don’t think I’ll ever have to learn. If the plug fits into the socket, whatever I’m plugging in will do whatever I’m expecting it to do. I think syndication ought to be like that, which is why Eric Garrido (via Bill de hÓra) is right: please stop announcing multiple syndication-file versions, because nobody cares. Pick one and run with it. I’d say pick one that’s standardized and stable and debugged and modern, but whatever. [7 comments]
It’s an Atompub World
· Today, via InfoQ, we see that Microsoft is betting on Atompub for Windows Live. Since Google and WordPress and big chunks of Java middleware are already doing it too, this really does feel like a bandwagon. For the last fifteen years, HTTP has become the dominant, overwhelmingly dominant, vehicle by which people and programs get things from the Net. With a little Atompub seasoning, it’ll quite likely be the way most things get put back, too. There is a fly in the ointment: tons of servers, not that many clients. Hello Moto? And Nokia and Apple and Samsung and all the rest of you? There a kazillion, and growing, publishing gateways out there waiting for someone to start shipping handhelds with an Atompub-powered “Publish” button.
[Update:] The Google Contacts Data API - Atompub based, of course.
[Update:] Writing Your First AtomPub Service with Abdera.
[Update:] Joe Gregorio: AppClientTest Update and AppClientTest - now with unit testing goodness; I particularly like the “drama in HTTP” analogy. [3 comments]
· Herewith a few random Atompub pointers. Each month that goes by, I’m happier with the way Atompub came out ... [5 comments]
· There’s been some New-year Ape tinkering. A few bug-fixes from me and David Calavera, and also I finally rolled in Joe Gregorio’s patch to make it work with Google’s semi-proprietary authent voodoo. Last and best, we have a new committer, Simon Rozet, whose first patch was a Mongrel adapter, so you can type
ruby go-mongrel.rb and there’s your Ape on port 4000. Simon will probably have checked that in by the time you read this.
Tab Sweep — Tech
· This goes back weeks and weeks; I’ve been wide-finding and doing Sun stuff and the Web-watching has suffered ... [6 comments]
· Today’s big Atom news is from Joseph Scott, who was on the long-weekend shift with Pete Lacey and Sam Ruby and I, pounding WP2.3’s APP-server code into shape. He has written HTTP Basic Authentication, A Tale of AtomPub, WordPress, PHP, Apache, CGI and SSL/TLS; the title is appropriately long, as this is a very meaty piece that I bet will be read many times in the near to medium future by someone puzzled and frustrated by some combination of Apache, PHP, and authentication requirements. Well, yes, the problems popped up in the context of Atompub and WordPress, but there’s nothing specific to the protocol or the product; it’s a big messy ugly corner of Web technology ... [1 comment]
Bad, Feed Readers, Bad!
· Piles of junk, I say. Pardon me, but I’m feeling grumpy. After much more work than it should have been, mod_atom is now generating reasonably coherent (not done yet, but getting there) HTML output and human-oriented (as opposed to APP-oriented) Atom feeds. It’s slightly idiosyncratic XML, with lots of namespace prefixes. The Feed Validator says it’s OK and I think it’s OK. But none of NetNewsWire or Vienna or Bloglines [Update: or Blogbridge or Safari, or My Yahoo!, or Sage] can read it correctly. I fart in their general direction. [Update: Google Reader, Planet Venus, Snarfer, SimplePie, Liferea, Awasu, Shrook, and Flock get it right! Good on ya, guys.] [Ah, Brent sent me a pointer to the latest beta of NetNewsWire 3.1, and it’s fine. I know other people rave about GoogleReader and Vienna and so on, but for me NNW is still way ahead of the pack in letting me scan a whole lot of news in almost no time at all.] Are there any other feed-reader implementors out there who think they can, you know, read XML correctly?!?! If so, get in touch, and if you process my little bundle of joy properly, I’ll lavish praise and links. Or if there’s a bug in the feed that neither I nor the validator can see, I’ll apologize humbly to the whole world. In any case, I’m going to have to go back and patch up the code so it doesn’t emit any of those nasty colons and relative URI references that apparently hurt implementors’ fragile feelings. This does not improve my mood. [Update: Just to be clear, I’m not talking about the ongoing feed; if you want to test your feed reader, contact me and I’ll point you at the test feed.] [17 comments]
· I just did a massive check-in on mod_atom, and it’s now not just an Atom Store, it’s also a basic blog publisher. This fragment is about how it works, and includes a confession; I did one fairly awful thing along the way ... [6 comments]
The Sunday Contests
· Who needs the NFL? The 0.00001% of the population who think Syndication Semantics and Web Architecture are all about fun ought to cruise by Sam Ruby’s space and take in the discussion around One More Step Forward?
· So, hey, it’s the last weekend before school starts and everything gets real again. So we should be kicking back, right? As in, working on Atom Protocol and WordPress ... [4 comments]
Tab Sweep — Tech
· There were a few here that I wanted to do a whole piece about, but I just gotta clear some space on these decks. Today we have pushing and pulling and queueing and Ruby.next and Java hate and PHP-vs.-Rails. What’s not to like? ... [9 comments]
· I’ve decided that mod_atom really needs to be a blog-publishing system, not just an Atom Store. And furthermore, based mostly on the comments to that Sanitation piece, I’ve made two design decisions. First, the sanitizing happens only on the HTML output; the Atom-store part will persist the data as close as possible to the way it was sent upstream. Second, I’m going to try using the TidyLib parser to pick apart
type="html" text constructs so I can clean ’em up ... [4 comments]
· The Ape (runnable, source) has a new committer: David Calavera, who’s from Spain. He wrote me out of the blue saying “Here are some patches that are the beginning of an RFC2617 framework.” David needed the Ape to talk WSSE for his own work ... [3 comments]
Tab Sweep — Tech
· Today we have some Atomic Apple love, iPhone Web friendliness, RelaxNG praise, and JVM Language widening ... [6 comments]
1½ Days of APP Interop
· Check the results. This makes me very glad, as did the hours on the IRC, trying code, patching code, peering at logfiles, laughing at each other... making it work. This is how the Net gets better. Like I said last time, Windows Live Writer is da bomb, other people who are in the blogging-client biz better watch out ... [8 comments]
· We had a little online Atom Protocol interop session today, via IRC and servers scattered here and there about the globe. I got mod_atom to work with Apache Abdera and Windows Live Writer. With a couple of little glitches in each case, fixed on the spot (that’s what the session is for), we had 100% squeaky-clean interop. Earth to client toolmakers: pay attention, or you’re gonna be eating WLW’s dust ...
· People who are interested in the software shouldn’t have to read the acres of prose in the mod_atom intro, so I’ll just keep this one up to date ... [3 comments]
· This is a stripped-down implementation of the server side of the Atom Publishing Protocol as an Apache module, implemented in C. It felt like something that needed to exist and I am better-qualified for this particular chore than your average geek; having said that, I have no idea if anyone actually needs such a thing. mod_atom activity can be tracked on this blog, for now, here. If any interest develops, then I’ll transfer discussion to a blog at
mod-atom.net which will be driven, of course, by mod_atom ... [17 comments]
Trouble for Atom
· Yep, ladies and gentlemen, it looks like there’s trouble on the horizon. On the RFC4287 syndication-format front, it may have been stable since 2005 and widely deployed, but watch out, there’s a new version of RSS 2.0! (2.0.9, to be precise). RSS 2.0 is sort of RFC4287’s main competition, and if there are two different specs, I guess that must mean it’s twice as good. On the Atom-Protocol side, Google’s John Panzer has made a shocking discovery, and I quote: “There seems to be a complaint that outside of the tiny corner of the Web comprised of web pages, news stories, articles, blog posts, comments, lists of links, podcasts, online photo albums, video albums, directory listings, search results, ... Atom doesn't match some data models.” Well, it was fun while it lasted. [8 comments]
Interop Impressions and Pix
· We worked from noon till six Monday, and from 8:30 till the middle of Tuesday; a little over twenty people in the room. I got the Ape talking to a few and failed with a couple of others, but in those cases the problems were implementation glitches, not the protocol. Surprises? I saw a couple of servers that didn’t accept Atom entries, just various kinds of media objects. OK, I guess. Pleasant surprises: getting pretty well complete interoperation with (on almost the first try) Nikunj Mehta’s code and (after a bit of work) Kevin Beyer’s and James Snell’s. I’m running a few shots of the event just because I like taking pictures of people. I’ll write another piece drawing some technical conclusions ... [1 comment]
Atompub Interop Lessons
· 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? ... [2 comments]
Atom Publishing Protocol Interop!
· Mark your calendar: April 16-17 at Google. Everybody is invited, provided they bring along an APP implementation, client or server. This was just announced a couple of days ago, and as I write this there are already
six thirteen client and seven fifteen server implementations signed up to be there and try to fill in the grid. Let’s drop some names, in alphabetical order: AOL, Flock, Google, IBM, Lotus, Microsoft, NTT, Oracle, O’Reilly, Six Apart, Sun, WordPress. Um, have I mentioned that the APP is going to be huge? [6 comments] Rewriting my Gravestone
· If I had fallen over dead any time between about 1999 and last year, my headstone and any obituaries would have said “Computer geek who was in the room when XML was invented.” I’m beginning to think that the Atom Publishing Protocol (APP) has a chance to crowd XML off the headstone ... [2 comments]
· It’s been leveled up to the Protocol-13 draft level and the source is available. While I’m still massively unsatisfied, the Ape as it stands today is actually pretty useful ... [5 comments]
· That would be the twelfth draft of the Atom Publishing Protocol spec. We’ll be asking for IETF last call on this draft. I’m pretty sure that the final product will look about like this. I wouldn’t be surprised if the IETF process patched a couple of security oversights or uncovered a couple of corner cases; nor would I be surprised if it didn’t. But I think that implementors who run with this will be pretty safe; mind you, there are a lot out there who didn’t wait this long; and they deserve our thanks. As do the editors and the good people in the Working Group; this has been mostly a pretty good trip. [Update: Some Atom-protocol news I had hanging around waiting to blog: Dave Johnson links to several implementations, and Elias Torres tells of a quickie.] [3 comments]
· We’re up to Draft 10 of the Atom Publishing Protocol, and it’s very close to what the final product will look like. The APP is getting more early developer support and interop testing than any standards project I’ve ever been involved with, and that includes XML. DeWitt Clinton covers some of the bases, but Dave Johnson makes it nice and simple: “Atom protocol can do everything that MetaWeblog API can do, and much more.” On the subject of the Atom Feed Format, I don’t think much more needs to be said, but the U.S. Intelligence community (which is quite feed-heavy internally) commissioned a study: RSS and Atom Considerations; it seems very thorough to me. In reading it, Wikipedia’s article on Intelink may be a useful reference.
· Atom, especially the Publishing Protocol, is moving into the evangelism stage, since the committee work’s almost done and there are plenty of implementations. Here’s why I think Atom is important. If you look at Dave Sifry’s numbers, the growth of the blogosphere is astounding; looking past all the fluff and chaff, there are somewhere between five and ten million people out there who care enough to contribute to the Net once a week or better. That may sound like a lot, but I don’t think it’s nearly enough. Here at Sun, in a blogging-friendly tech-savvy culture, maybe 5% of the people post regularly. So I look at the number of people using the Net and I wonder: “Why there aren’t 50 million, instead of five million, people contributing every week?” The answer: “Because it’s too hard”. We can fix that. Here’s the Atom dream: A “Publish” button on everything. On every word processor and email reader and web browser and cellphone and PDA and spreadsheet and photo-editor and digicam and outliner and sales-force tracker. Really, everywhere. If it doesn’t have a “Publish” button, it’s broken.
Johnson on Feeds
· Dave Johnson gave a talk this morning at a local XML interest group. His slides (PDF) are the single best introduction and overview I’ve ever seen about feeds and syndication and RSS and Atom and all that stuff.
Upcoming Gig: OSCON
· What with the recent family enlargement, it wasn’t clear that I was going to be able to get to OSCON. But the girl’s settling down pretty well, so I decided to go. I reviewed the schedule and was horrified to see nothing about the Atom Publishing Protocol, which I’m increasingly convinced is hot stuff. So I sent a note off to Nat Torkington saying “WTF, no APP?!?” and he wrote back saying “So submit a paper already” and I did and now I’m on the program. I think I can only go for two days, but Portland’s a great town for beer and bookstores, which there’s more to life than, but only moderately. [Update: I’m arriving at PDX at 4PM on Tue 25th. I can’t be the only one, shoot me a line and let’s organize some taxi sharing, it’s a long boring ride in from the airport.]
Feed Format Kitten Fight
· Like your syndication politics tasty and fresh? Head over to DeWitt Clinton’s Unto.net and read On RSS and Atom. Clinton’s at A9, Amazon.com’s Silly Valley search-wonk cauldron, and his stuff keeps coming across my radar in recent weeks. Anyhow, he has what seems to me a clear-eyed and dispassionate evaluation of the feed-format choices facing implementors these days. There is one place he gets it backward, saying: “I’ve been consistently impressed with how well the authors of the Atom syndication format anticipated the needs of the advanced content syndication community.” No; Atom’s design reflects the backward-looking experience we got in the last few years of working with RSS; it turns out that the future is somewhat like the past. But don’t stop when you get to the end of DeWitt’s piece, there are dozens of comments, most of them instructive, coming at the issue from all sorts of directions. Scoble pushed back at length, follow the pointer from his comment. Someone who signs himself “Raja” has an awfully familiar style. And a final note: when Mr. Clinton talks about XML, for example an RSS
element, he says
. Now, that’s the kind of pedantry I can relate to.
· “This town was named after a minor Dostoyevsky character...” is the beginning. The Landscape — Marfa, Texas Pt. 1 is by David Byrne and it’s really a must-read, ranging through landscape and music and boundaries of various kinds. By the way, Mr. Byrne needs an Atom feed; recently something changed and in my newsreader, his pieces are full of raw HTML markup and sans images.
With Bloglines to Atom
· A few days back I noted approvingly that Bloglines was working on their long-broken Atom 1.0 handler; and that there were a still a few relative-URI problems. I got a puzzled, polite email from a Bloglines engineer saying “Uh, are you sure? I don’t see that, might have been switchover artifacts.” I went and looked and sure enough, they were gone. I did see one little Keith-and-the-roaches bug with a stray “&” so I wrote back saying “fantastic, great work, oh BTW you’ve got a stray ampersand”. Within a few minutes he wrote back “Just fixed the & issue. It might not show up on production until later.” This is the way the Web is supposed to work. (Sam Ruby tells me there are some lingering corner-case bugs; report ’em and I bet they’ll fix ’em.) As of now, I am absolutely recommending Bloglines to all newsreader newbies as a good place to start; and also to anyone, newbie or not, who doesn’t want to deal with the fuss and bother of a separate newsreading program. And with Bloglines’ switch, every major piece of infrastructure that I know of is now Atom 1.0-capable. So I just permanently redirected my RSS feed to the Atom 1.0 version. If this looks weird in your newsreader, please do let me know; and more important, file a bug so your reader gets fixed. Once this settles down, I look forward to taking the axe to a whole bunch of double-escaping and RSS-writing code.
· I work on lots of different things, but Atom is the most important, don’t you forget it. Item: Atom 1.0 isn’t even a year old and it already has its first standardized extension, for feed threading; announcement chez James Snell, who did most of the work. Item: Bloglines has resumed work on their Atom 1.0 parser, and it’s considerably less broken than it used to be. You can actually use it to read my Atom feed and it no longer messes up the white space. The relative-link handling still needs work, though; my pictures don’t show up, and some internal links are broken (not all... puzzling). Anyhow, good on ya guys, this is the right direction. Item: The working group just published Draft 9 of the protocol (official and HTML versions). My opinion is that nothing in here will change much, and there will be a couple of very small additions, and then we’ll go for IETF last call. For Atomic pedants, the change here is what happens when you post something that isn’t an Entry, like for example a movie or a picture.
· James Holderness, a guy who really knows his shit about syndication tech, has been doing some torture-testing; see Encoding RSS Titles, which shows that if you want to do something as obvious as mentioning “AT&T” in your title, you’re in deep RSS doo-doo. (Did I say torture test? James blogs at www.詹姆斯.com; the boy’s got attitude.) Anyhow, James establishes that there’s essentially no safe way to do this. Quoting him: “Clearly if you want to support Firefox or Internet Explorer you’ve got no choice but to use the single encoding option. For certain strings, though, that would mean losing support for at least twenty other aggregators.” Yow. So I emailed James, asking “Would it be oversimplistic to say: ‘Thus, use Atom 1.0?’” He wrote back “Somewhat. While Atom doesn't have the ambiguities of the RSS spec, it has all the same problems with buggy clients.” Fair enough. But I think that James proved that, with RSS, you can’t solve the problem even in principle. With Atom, you can. Which seems like a decisive argument, to me. [Update: Oh hell, James’ Chinese URI broke something in the ongoing front-page generator... until I’ve fixed it, use this.]
Blogging Cam: Almost Right
· Via Niall Kennedy (who’s been very good lately): Microsoft cameras that have one-button publishing to MSN Spaces. This is so wrong. I don’t want to see a future in which your camera is LiveJournal-enabled or Facebook-ready. When I get a computer or a mobile device, it’s either Web-ready or not, it doesn’t have to be MSN-enabled or Yahoo-blessed. This is why we need the Atom protocol. If your phone or your camera or your anything is Atom-enabled, then it will work with any publisher who supports the protocol, no special deals required. Coming soon.
· I’ve been accumulating things Atomic to write about for a while, so here goes. Item: You’ll be able to blog from inside Microsoft Word 2007 via the Atom Publishing Protocol. Item: Sam Ruby has wrangled Planet to the point where it handles Atom 1.0 properly. Item: Along the way, Sam reported a common bug in Atom 1.0 handling, and his comments show it being fixed all over (Planet, MSN, and Google Reader, but not Bloglines of course); the Keith reference in Sam’s title is to this. [Update: Gordon Weakliem extirpates another common bug from the NewsGator universe.] Item: The Movable Type Feed Manager is based on James Snell’s proposed Threading Extensions to Atom 1.0; Byrne Reese seems to think that particular extension is hot stuff. Item: Nature magazine is extending Atom 1.0 for their Open Text Mining Interface. Item: The Google Data APIs are old news now, but it looks like they’re doing Atom 1.0 and playing by the rules. Last Item: Over in the Atom Working Group, we’re getting very close to declaring victory and going for IETF last call on the Protocol document.
· I’m quoting Stephen Duncan Jr, describing the fact that Bloglines would rather try to fool people who subscribe to my Atom feed by switching in my RSS feed, as opposed to just fixing their stupidly broken Atom 1.0 handling. “Odd” is one word for it. Countermeasures are appropriate and if I have to I’ll take them, but wouldn’t it be so much better to just, like, you know, implement the Internet Standards? Nobody’s asking anyone to stop processing RSS, but the world (unlike Bloglines) didn’t freeze solid in 2003.
· First of all, implementors of anything Atom-related need to spend some time chez Jacques Distler; in particular, the conversation that plays out in the comments. Second, there’s this piece of software called Planet Planet that allows you to make an aggregate web page by reading lots of feeds; for example, see Planet Apache or Planet Sun. Sam Ruby decided that its Atom support needed some work, so he did it. Now, here’s the exciting part: he pinged me over the weekend and said “Hey, look at this” wanting to show me his cleverly-Atomized Planet Intertwingly feed. I looked at it in NetNewsWire and was puzzled for a moment; some but not all of the things in the feed were highlighted as unread, even though this was the first time I’d seen it. Then the light went on. This is Atom doing exactly what we went to all that trouble to make it do. NetNewsWire has good Atom support and, because Atom entries all have unique IDs and timestamps, it can tell that it’s seen lots of those entries before in other feeds that I subscribe to. That’s how I found Jacques’ piece. This is huge; anyone who uses synthetic or aggregated feeds knows that dupes are a big problem, showing up all over the place. No longer, Atom makes that problem go away.
Atomic Google Hacks
· Check out Mihai Parparita’s Google Reader Tidbits, about how he used Google Reader hacks to do a bunch of clever feed splicing. The article is interesting, and I think Atom is going to enable a bunch of feed-mashup creativity that I’m not smart enough to invent. But I wanted to do a deep-dive on the actual Atom feed he generated, which is probably of interest only to obsessive Atom 1.0 fetishists ...
Atom as a Case Study
· This is adapted from my talk of the same name at ETech 2006. The talk’s sections were entitled Why?, How?, What?, and Lessons?; I’ve left out What?, the description of what Atom is, since we’ve had plenty of that around here. That leaves Why we built it, How we built it, and what Lessons you might want take away from the experience ...
APP Test Suite
· No specification or standard is really ready for prime time until it has a test suite. The Atom Publishing Protocol already has one, and it hasn’t even shipped yet. Way to go!
· For some time, the Feed Validator has been muttering warnings about my Atom 1.0 feed, having to do with my aggressive use of
xml:base and relative URIs. I fixed that up, and managed to convince Sam Ruby that one of the warnings (due to a redirect from
www.tbray.org) was bogus. So the validator’s happy. I also took a little extra trouble to prettify the feed, and now I think it’s probably useful as an example of a fairly full-featured and ultra-squeaky-clean Atom 1.0 feed; somewhat human-readable, even. Have a look at my feed and Sam’s side-by-side, his is very readable too, there are some points where the difference between Sam’s choices and mine are instructive. Anyone have a suggestion on how my feed might be improved, to serve even better as an example?
Atom Bits & Pieces
· FeedBurner’s FeedFlare API looks interesting. (Actually, there are a ton of Web APIs out there looking interesting, nobody could keep up.) But follow that link above and search for “Atom”; they’re abstracting the universe of feed formats using Atom 1.0 to give you something consistent and useful to write XPaths against. Microsoft’s doing the same thing in the IE7 API, but they’re abstracting to a bastardized not-quite-RSS2.0 format they made up themselves, which is kind of a confusing thing to do and will make the world learn yet another model. Atom’s popping up over in Ning-land too, they’re using the format to expose their applications and data, and are working on making it all writeable via the Atom Publishing Protocol (APP). And at ETech I heard about a couple more guerilla APP implementations, at big smart well-known outfits, not comprehensive or intended for exposure (yet) to the world, just cooked up in a hurry to get something done that needed doing. My spidey sense is tingling.
What Dave Said
· I’d just like to highlight Dave Winer’s remarks today on the RSS 2.0 roadmap. Nobody can say Dave hasn’t been 100% crystal-clear about this. Those of us who thought there was basic, important work that still needed doing in the area of syndication formats had three choices; RDF-wrangling in the RSS 1.0 context, namespace-wrangling in the RSS 2.0 context, and putting a new name on it; to use Dave’s words, “make a new format as an evolution”. Thus, Atom. We don’t have to agree about everything, but if the Internet depends on anything, it depends on standards that are stable, and the framework of trust around that stability.
Why We Need Atom Now
· Check out Mozilla Bug #313441. Lots of juicy stuff: security risks, open source goodness, RSS 2.0 ambiguities bleeding down into RSS 1.0. Bloglines being, uh, a little slow to catch up. And Atom being the solution. My favorite quote: “If you need to use the character ‘<’ in a feed title, which Bugzilla absolutely does, you have exactly three choices: be invalid and work, be valid and fail, or, the *only* real choice, use Atom instead.” It works for some other people who really care about security, too. But maybe the security’s just a sideshow; the real benefit of moving to Atom would be to avoid the annual RSS food-fight.
· Hey, MSDN blogs have started generating Atom 1.0; here’s the IEBlog feed. Good stuff! There are a couple of little glitches: they use
rel="self" instead of
rel="alternate", and they provide
published but not
updated timestamps. Both totally forgivable in a 1.0 release, and presumably easy to fix. Take-away: we need to have better tutorial material (others have made the same
alternate mistake), and to do better at telling the world about the Feed Validator.
Hey Thanks, Firefox!
· Via Rob Sayre, word that Firefox 22.214.171.124 (will auto-update) will contain the fix for Bug 262222, which kept Atom 1.0 feeds that use
xml:base and relative links from working, notably including this one. We do make progress. Now if Bloglines would just get a clue...
· I hadn’t seen the announcement, but this looks like a stable official IETF link to RFC 4287, The Atom Syndication Format. A little more work and we’ll have the publishing protocol done and I can return to my plow (or equivalent). The work of the WG and editors was just outstanding, and the IETF did, as advertised, provide a useful quality-control process without unduly getting in the way. Thanks everyone. The world now has a general-purpose syndication format that is small, stable, based on the last decade’s lessons, clean, and widely implemented. I feel happy.
· The Atom Syndication Format is done, cast in stone, will get an RFC number as soon as the appallingly-slow RFC-Editor process concludes. The Atom Publishing Protocol is very close to done; herewith an overview of how it works and what still needs to be settled ...
Protocol Day One
· It was a mildly historic day; a few of us got together on IRC and tried to interoperate some early Atom Publishing Protocol implementations. The only server on the air was from Dave Johnson. We got two different clients to talk to it; one was a Big Secret Project from a Big Famous Company based on all sorts of slick infrastructure. Mine was
curl. I managed to introspect the server, list the entries, create a new entry, update it, and delete it. I screwed up the messaging a few times, and Dave’s server only blew chunks about half of them. Those who know what
curl is are probably snickering now. But I think the fact that you can debug a nontrivial application with
curl -X -i -d -H is a significant weapon in the quiver of RESTafarians. Let’s see ya do that with your SOAP + WSDL + WS-Policy + WS-Addressing + WS-MetadataExchange + WS-ReliableMessaging app. Actually, the big take-away isn’t that, it’s that the Atom protocol is simple and easy to implement and robust. The world needs something like this. Later: Hey, more Atom Protocol stuff from Joe Gregorio over at XML.com.
· Several people have written to tell me that the ongoing Atom 1.0 feed is thoroughly borked in bloglines, most visibly in white-space and link handling. I sent them a note a couple of weeks ago, but no fix yet. Could someone at bloglines please have a look?
· It’s cooked and ready to serve. It doesn’t have an RFC number yet, but this is officially Atom 1.0 (HTML here). Here’s a comparison of RSS 2.0 and Atom 1.0. The implementors are hard at work. I’ll update this page regularly with Atom-related news and pointers, send word if you want yours included. Read on for crunchy Atomic goodness. [Update: NewsGator Online has 1.0 support.] ...
Atom API Sketches
· I’m thinking about Atom 1.0 from the coder’s point of view. I’m not thinking about the Publishing Protocol, I’m thinking about how you, the programmer, should go about inhaling and exhaling the stuff. I’ve never believed in One True API for XML, it’s just too broad-spectrum, but Atom’s pretty tightly constrained. Obviously, you can use something generic like SAX or one of the many DOM-style APIs, or one of the modern pull APIs. Maybe for Atom we could use something simpler and more natural. I’m thinking out loud in this space, this is far from finished, not even a proposal yet. But, I bet there are other people out there who care ...
· Suppose you’re generating an RSS feed, or you’re thinking about generating an RSS feed, and you’re wondering how Atom fits into the picture. The future of technology is hard to predict, but there’s a good way to hedge your bets. You can generate an RSS feed and, by following a few simple rules, be really sure that there’s a 100%-equivalent Atom 1.0 feed, so that if you’re generating both, they’ll be in sync, and if you need to switch back and forth, it’s just a matter of changing a few strings. Let’s call this future-proofed flavor “Atomic RSS”. It turns out that using Atomic RSS is a Good Thing anyhow, because it will help software in general and news aggregators in particular produce better results. [Ed. note: This is a first cut, and probably has errors; corrections gratefully received. Thanks to Sam Ruby for substantial contributions.] ...
The Atomic Tribe
· I just want to say, the Atompub working group has been outstanding. Not always polite, but intense and hard-working and insightful. Not selfish, either; we had to go prompt the mailing-list contributors individually asking them if they wanted to be in the acknowledgments section. The Net owes a thank-you to: Danny Ayers, James Aylett, Roger Benningfield, Arve Bersvendsen, Dan Brickley, Thomas Broyer, Robin Cover, Bill de hÓra, Martin Duerst, Roy Fielding, Joe Gregorio, Bjoern Hoehrmann, Paul Hoffman, Anne van Kesteren, Brett Lindsley, Dare Obasanjo, David Orchard, Aristotle Pagaltzis, John Panzer, Graham Parks, Dave Pawson, Mark Pilgrim, David Powell, Julian Reschke, Phil Ringnalda, Antone Roundy, Sam Ruby, Eric Scheid, Brent Simmons, Henri Sivonen, Ray Slakinski, James Snell, Henry Story, Asbjørn Ulsberg, Walter Underwood, Norman Walsh, Dave Winer, and Bob Wyman.
1997 and 2005
· Back in 1997, when the shape of XML started to stabilize, I sort of appointed myself Chief Marketing Officer and gave the XML pitch to every conference audience and journalist and interested geek I could find. It was remarkable; pretty well everyone I pitched to said “Oh yeah, I could use something like that for...” and then mentioned an app that was almost never the kind of structured-document thing we thought we’d designed XML for. Flash forward eight years, and I find myself pitching Atom to all sorts of different people. What’s different is, instead of me pushing at them, I’m getting asked “Tell me about this Atom stuff.” What’s the same is that pretty well everyone I pitch to says “I could use something like that for...” and what comes after the dots either isn’t bloggy at all, or is some weird syndication angle I hadn’t thought of. I’m not saying history always repeats itself; just telling you what I’m hearing.
The Last Atom Issue
· The Atom Working Group has sailed through our IETF last call on the data format with a fairly small number of comments, none of them raising particularly troubling issues. This leaves us with a teeny little set of issues to settle, of which only one is really material: can the same entry show up more than once in a feed? It’s trickier than you’d think, but I can see the individual fibers in the finish line ...
IETF Last Call on the Atom Format
· This is a milestone: the IETF Atompub Working Group thinks we’re mostly finished with the Atom Syndication Format, and our Area Director has put the draft out for last call IETF-wide. It’s not set in stone, the WG is chewing on a couple of last little change proposals that might get consensus, and it’s quite likely that some of the smart IETFers will spot problems and ask for changes. We think Atom does a reasonably good job of coalescing all the years of experience with all the RSSes, and I’m pretty convinced it will make a difference. We’ve tried to err on the side of omission; there are lots of things that could have been added that weren’t. We only felt confident enough cover the areas where there’s a lot of prior art and the arguments are mostly over. Anyhow, Atom’s extensible; I’m pretty sure the market is creative enough to converge on good extensions to address any important things we left out. So please have a look either at the IETF ASCII or nice modern HTML versions of the draft, and see if you think we’ve missed anything.
Why We Need Atom Now
· We’re getting real, real close to sending the Atom data-format draft off for general IETF review; the rest of the process can’t happen too fast for me, because there are two big problems that bite me every day that Atom will give the engineers the tools to fix ...
Hats Off to the Atomics
· What happened was, we’re getting close to done on Atom, so we tried to close down our last fifteen issues. The good news is that the debate has been deep and intense but (almost all) polite and grown-up. Today, a Sunday forsooth, we had over 120 messages to the mailing list. The bad news is that the last call jarred loose a few new issues, as last calls will, but we’re still very close. The working group is doing great, I love ’em.
· Recently, Dave Winer pointed out that there’s a problem in how people go about subscribing to to RSS feeds, and made a proposal to address it. Dave’s idea—essentially One Great Big subscription dispatcher—should work, near as I can tell, so any problems would be around business and politics, not technology. John Robb does some more thinking, as does Phil Windley. If we can’t find the business creativity, Atom has another solution that RSS could maybe borrow ...
Atom Format: Final Flurry
· The Atom Data format (whose most recent draft spec is available in ASCII and HTML) is about ready to move on to its next phase, consideration by the whole IETF. We’ve ganged up the last 15 open issues for the Working Group’s final yes-or-no. The discussion is here; if you care, speak up now.
How About a Date?
· Over in Atom-land, we have all been educating each other at incredible length (365 email messages so far) on the subject of the dates you attach to the electronic what-nots you publish. It has, like most educational processes, been painful. I frankly can’t imagine who out there would care about this, but I need to get it out of my system. Plus it has a humorous rhyming couplet ...
· Sometimes it feels like a family. What happened was, we’re having all this angst over in Atom-land about well-formedness and media types and the fact that RSS is usually served “wrong” and the problems this causes. Well, before too much longer, there are going to be a lot of Web resources named
the-other.atom being dished out by Web Servers everywhere, and by default those servers are gonna look at the names and say “Dot-atom what? Yer
text/plain, punk.” So I appealed to Greg Stein of Apache and Google, and he had a pow-wow and reported back I've gone ahead and done this: the application/atom+xml (for .atom) type will appear in our next releases (Apache 1.3.32 and Apache 2.0.51), whenever those come out. Well, Apache’s not the only server out there, so I wrote off to Obasanjo and Scoble and said “Here’s the problem, how about IIS?”. So Scoble did some digging and got routed to Thomas Deml, lead program manager on IIS, and I saw a forwarded email saying The change goes into Win2K3, SP1. Now if we could sort out the rest of the Internet’s issues that smoothly... anyhow, thanks guys.
· Yes, there will be an Atom IETF Working Group. No, there is no “standards war” ...
Keith and Angle Brackets
· This, by Dave Walker, shows up fifteen messages or so into the comments on a Dive Winer piece, and I can’t link to it directly (nothing purple) [Update: yes there is, and I can], but it’s way too good to pass up: When the world ends, the only things left will be cockroaches, rats, Keith Richards, and mangled text that has been escaped one-too-many or one-too-few times.
· Mark Pilgrim has a good piece today on how to choose permanent identifiers. I’m going to pay him the compliment of disagreeing at length ...
Atom Community Meeting
· We’re going to have an Atom Community Meeting June 2nd at Sun’s Silicon-Valley offices. It’s widely known that Sam Ruby (with some help from me) has been trying to find Atom a home over in the IETF. I’m personally optimistic that that’ll work, but even if it does, the next time we could get the Atom community in a room would be at the August IETF, and it’s been a while; I’ve never been to an Atom meeting, myself. Check out the meeting and come if you want to contribute. Read on for a quick note on my position, and Sun’s, vis-a-vis Atom ...
· Sam Ruby is charging ahead with the idea of taking Atom to the IETF, and I generally approve. Sun thinks it would be a good idea for me to put some cycles into syndication technology, so I told Sam that and he came back in about fifteen seconds saying “Wanna co-chair?” ...
By Tim Bray
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.