I’ve given Bloglines a fair amount of grief over the past few months over their pathetic-at-the-time handling of Atom feeds. I’m not ego-centric enough to believe that I got them to change – at most, I may have increased awareness of the issue to the point that the Bloglines team got around to addressing the issue slightly earlier than they would have otherwise.
But address the issue, they did. I’m pleased to say, they flattened it. They nailed it.
I posed four issues, and one extra credit problem. They were posted on a Saturday. By Monday, three were fixed. By week’s end, All four were fixed. Since that time, perhaps another half a dozen issues were noticed. Each were resolved, with the fix not only implemented but deployed, each within one business day of when it was reported. So while the Bloglines team didn’t get the extra credit problem I posed (which given the current implementations of browsers these days, would have required that they convert all content into consistently well-formed XHTML, and even then wouldn’t have worked on the dominant browser in use today), they clearly aced the test and found other ways to excel even more.
So from me to the Bloglines development team: YOU GUYS ROCK!
Apparently, Bloglines' parent company has a policy which severely curtails the amount of public discussion that Bloglines developers may engage in. From my perspective, such polices are unfortunate, but at the end of the day, that decision is theirs to make. But based on the available facts, the following is my interpretation of the public information available. I may have some of the details wrong, but I’m confident that I have the broad brush strokes essentially correct.
The only charitable way to put it is that the current parser inside of Bloglines evolved over time. It had (and has) to deal not only with multiple, incompatible, and underspecified specifications, but also with multiple, incompatible, and often non-compliant implementations of these specifications. Previously, I’ve cataloged a few of the most common errors.
Along the way, the Bloglines aggregator has become a part of the feed eco-system. Simply put, many people design their feeds not according to any specification, but rather to make sure it works with Bloglines. To be clear, Bloglines is not unique in this regard, others do the same with NetNewsWire, and I expect many to do the same with IE7.
The inevitable result is calcification. Software that was once, well, soft and pliable, has since become something you daren’t touch as you risk affecting the way that untold millions of feeds are interpreted. You don’t touch it even if it means that Bloglines differs from either the specifications themselves or the way tools like NNW or IE7 handle these same edge cases.
With Atom, Bloglines has decided to pursue a fresh beginning. A beginning free from the tyranny of the past. The new status quo is that if you have a test case which is based on real world usage, and can point to the section of the spec which indicates how this test is to be interpreted, then the Bloglines development team will not only address the issue forthwith, but they will also add a test case to their regression test suite so that the same issue will never reoccur.
A clear spec + a regression test suite + Red/Green/Refactor =>
a parser which is not only maintainable,
but also one that can remain so indefinitely.
This represents a important step forward. Given that I can pass around URIs of how Bloglines interprets any given public feed that anybody can view registration free and from any browser by any manufacturer [example], Bloglines – perhaps unwittingly – has found itself in the position of being a de facto reference implementation for feed specifications.
This is exiting, and frankly, a little scary. But as long as Bloglines keeps their commitment to conformance, I’m confident that it will all work out.
But I do have one request. Clearly, everyone has equal access to the specification. And they also have equal access to the Feed Parser Tests. And a member of the Bloglines development team has already publicly stated that they based many of their tests on the FeedParser tests, which is very, very cool.
My one request — and this is not just for Bloglines, but rather for everyone who may have benefited, either directly or indirectly, from the Feed Parser test suite: if in the process of your development you have identified some additional tests, please consider donating as many as you can back so that everybody can benefit.