The Joy of Splicing
The other day, Fred Wilson made some interesting points about services in the age of Web 2.0, when customers of a service like TypePad might have their personal output being published on many services (TypePad, Flickr, del.icio.us, etc).
As a personal example of that, even within the scope of our own tools & services, Mena has 5 or 6 feeds for her various weblogs, photos, moblogs, etc. I can read all of those feeds in one place by subscribing to all of the feeds, of course, but sometimes I like to see a combined view of just her activity in the past couple of days: all of the posts aggregated from her various feeds, combined into reverse chronological order.
Of course, services like FeedBurner have offered feed splicing for quite some time (giving users the ability to splice together a couple of feeds containing their content around the web). But I always enjoy building my own tools, just for fun.
So I recently updated my XML::Feed module on CPAN to support feed format conversion and splicing, and built a simple feed splicer that takes multiple feeds, splices them together, and produces an Atom feed that contains all of her activity. It's not specific to Mena, of course--it could be used for any combination of feeds.
I'll probably be writing more about this in the future, but for fun, here's a one-liner feed splicer (requires XML::Feed 0.07 or higher):
$ perl -MXML::Feed -e '$b=XML::Feed->new("Atom"); map
$b->splice(XML::Feed->parse(URI->new($_))->convert('Atom')),
@ARGV; print$b->as_xml' [list of feed URIs]
Or, if you don't like reading condensed Perl code: