(picture)

November 18, 2004

Bloglines API

I spent a little while recently experimenting with the BlogLines Sync API. It's good - and very easy to use; in only a few hours, I built a little application to pull news from Bloglines into Groove Forms.

Using the Bloglines aggregator as a news source is interesting: sure, this is a centralized service; but it's a nice way to avoid the complexities of handling RSS/RDF/Atom "in the wild". It also turns out to be really efficient. More technical details below the fold.

So, we built a shared space and invited a bunch of people in there; news updates are pulled in every half-hour (from my extensive blogroll). With Groove's notifiers, unread-marks, presence, and extensibility, this feels like probably the best newsreading environment I've found yet... Hopefully we'll find a way to get some variant of this code into your hands soon.

Bloglines

seems like many people's favourite newsreader nowadays. The usual UI is a web browser, so there's no client-side hit (other than an optional notifier - the Firefox notifier is neat). I have to admit ditching the (otherwise very good) SharpReader because of its startup overhead. Bloglines is great for work/home mix, although it's no use for travel-reading.

There's a privately-held company behind this somewhere, with no visible means of support. How quaint is that? Anyway, Mark and co are obviously pouring in resources somehow - the site hasn't often been slow.

Some virtues of centralization

There are some really interesting linkabilities-of-scale which Bloglines is beginning to exploit: Technorati-style, identifying the links between weblogs; and, more important, beginning to function as a real social hub by showing who's reading what. It's strangely comforting to know that nobody else subscribes to del.icio.us/tag/odd, and that my own blog's subscriber-count is way up in the long-tail thirties.

For a consumer of the bloglines web services APIs there are some really tangible benefits:

  • Clean data! All feeds have been pre-digested into an RSS-like structure, and they're all the same format. This is so good.
  • A single socket to call. I can scan a thousand weblogs with a single thread. I only need to call HTTP GET on two URLs.
  • Unread marks (or rather, built-in high-water-marks). When I call "listsubs" to retrive a list of all my subscriptions, each item includes an unread-count. Then, iff that number is more than zero, I can call to retrieve the unread items (and simultaneously mark them as read).

My next wishlist item will be to handle enclosures (for those podcasting feeds). And, luckily, the"getitems" API does return enclosure links. But... the flipside of clean data is that the API might not change as quickly as usage, or be as rich as RSS or Atom extensions can make it.

Bottom line: for a developer who wants to quickly build RSS-feed information into an application, this is a treat.