intertwingly

It’s just data

Accidentally Closed


Jeremy Zawodny: I care about openness. That’s why I pushed for RSS at Yahoo

Aim higher.

Sure Yahoo! Groups produces RSS, but it puts plain text in the description.  I realize that the spec only goes so far as saying that entity-encoded HTML is allowed, but we all know that item description must be suitable for presentation as HTML, right?

Yahoo! also produces feeds that aren’t well formed or contain the same guid for every item.

Openness is not a binary quantity.  Some things are intentionally open.  Some things are intentionally closed.  But more often, some things are accidentally open.  Or accidentally closed.

Bit Rot is all around us.  The first two chapters seminal work Small Pieces, Loosely Joined are online.  Take a look at them using Firefox.  The rotting of bits (and this was only across a few years) is visually apparent.  I did some minor restoration, and sent them to David, but he hasn’t put them online just yet.

For a while, Movable Type’s backup format was a defacto weblog interchange format.  When used by to exchange data between two tools, neither of which are Movable Type, this is a case of accidental openness.

The flip side of this is data formats that are accidentally closed.  Almost every weblog migration I have ever seen starts out with exuberance as their weblog tool promised to produce an archive in an XML dialect.  This is quickly followed up by puzzlement when the normal XML tools one might use refuse to process the data, often due to a character encoding error.  The problems could be as simple as what line feed character to use.  This accidental closedness can be every bit as pernicious as dealing with a format that is intentionally closed.

This occurs at higher levels too.  Choosing different spellings or even entirely different names for attributes creates notorious interop issues with OPML.

I know it must seem like madness to some that I serve all page on my weblog as xhtml to browsers that support it - it keeps me vigilant.  Kinda like how some weigh themselves every day.  I am now doing the same with Planet, which these days includes your weblog posts.  And I produce a combined atom feed that always is well formed, and is getting closer and closer to being consistently valid (as I write this, there are only two warnings).

Aiming higher may mean choosing formats for which your intentions can more clearly be expressed.  Aiming higher may mean dropping support for a draft version of a format.  Alternatively, aiming higher may mean conforming to a profile.  Or, it might simply mean running a validator periodically.