Recently (relatively speaking since I've been poor about blogging of late), I talked about putting together a Life Feed. It went live weeks ago, but I haven't (until now) gotten around to mentioning it.
Let's introduce a buzzword: Web 2.0.
I hate buzzwords, they're usually ill-defined with half a dozen explanations as to what they mean, but let us use the definition of Web 2.0 that I like: A web with user generated content. (I will avoid the other popular definition 'uses Ajax', and stay well away from what 'Ajax' actually means. Boy, I'm really letting this dislike of buzzwords shine through tonight, aren't I?)
In the good old days, there would be strict limits on who could add content to a website, the world was divided into "Authors" and "Consumers". Then along comes Web 2.0 and the playing field changes, now some sites have "Administrators" and "Users" (with some users being active and some remaining passive consumers).
This organisation is great, if you're looking for a photo then you can go to Flickr and search their collection of photos, or look through the photos of a particular user. Incidentally, Flickr is how I found the image I use above, its a great service for finding graphics to spice up content.
This organisation is dreadful! How are you supposed to find all the works of a particular user across all these different services?
It would be nice if we had single sign on (and OpenID looks like it might be a way forward here), which let you find everything a user does (sadly, while most of the services I listed above belong to Yahoo!, you can't trace a single user through all of them). That said, I wouldn't want this sort of thing rushed into since there are privacy concerns.
Since we don't have a single sign on, I thought I'd do the next best thing.
RSS, Atom and JSON (where would we be without abbreviations and acronyms?) are common data formats used to present articles in a machine readable format (HTML doesn't have a way to distinguish between separate articles) and most Web 2.0 sites make use of them.
So, given a bunch of data sources, I can pull a lot of content from various places around the web (see the bottom of my homepage for a list), mix them together and then spit them out again. My script isn't perfect yet, it sometimes generates HTML syntax errors (if two Twitter entries are too similar, they'll end up with the same id), and it doesn't strip syntax errors out of other sources (I've managed to put some bad material into Wordpress while copy/pasting from Amazon and I don't want to force the entry to regenerate as it will bump it back up to the top of the index), but it does the job.
Credits: Web 2.0 is here photograph by tantek and used under a Creative Commons license.