Saturday, September 5, 2009

The recent birth of my daughter Reese has inspired me to keep a better record of my thoughts and feelings. My original motivation, to capture for posterity the tweets I had written during labor and delivery, soon evolved into a more significant effort to establish a comprehensive lifestream of the content I produce and reference in public on the Internet. My search for existing solutions left me disappointed, and I set out to patch together a solution of my own from a variety of free services, each of which provides a piece of the whole puzzle. Thanks to RSS and the following services, it's all possible without writing a line of code. (Okay, I had to copy/paste a little code, but the services generated it all for me.)

Google Reader

First, I subscribed in Google Reader to the RSS feeds of each of the services I use to publish or reference content. In my case, this includes:

I added each of these services to a folder, and used Google Reader's Settings to share the folder. The feed for the shared folder is a reverse chronological list of posts from each of the constituent feeds. Google Reader produces an attractive web page associated with the shared folder. However, Google Search does not index the page, nor does the page provide a commenting feature.

I realized that if I could cajole a blog hosting service into reposting each of the posts in my Google Reader feed, I'd get the search and commenting functionality I wanted. I was surprised at the difficulty I had finding such a service, given that "publish from RSS" seems like such a simple feature to implement. Indeed, if you host your own blog software, there are a variety of plugins at your disposal. Nevertheless, it seems that most blog hosting services feel the user base for such a feature is dominated by sploggers. Lack of clearly distinguished terminology compounded my difficulty identifying a service that fulfills my requirements. For example, search results commonly equate "autoblogging" with republishing content as spam, whereas services accept "reblogging" as the social practice of sharing content from upstream publishers. The subtle distinction hinges on intent.

Tumblr

Once I was able to wipe "autoblog" from my mind and try searching for "reblog", I discovered Tumblr. Tumblr addresses the spam concern by banning the practice in their content policy, and provides both manual and automatic reblogging features.

I created a Tumblr blog and configured it to automatically import my lifestream folder's feed produced by Google Reader.

To provide a little more transparency regarding the sources of the content on my Tumblr blog, I added a clip of posts and a blogroll. Tumblr's polling of my feed introduces some delay in the publishing process; the clip mitigates this problem by displaying links to the latest posts as soon as my lifestream folder feed includes them. The blogroll links to each of the constituent feeds that compose my lifestream. To add the clip and blogroll, I copied the relevant code from Google Reader's Settings and pasted it into my Tumblr template.

Disqus

Unlike other blog hosting services, Tumblr does not provide a commenting feature. Fortunately, Disqus's sophisticated commenting service integrates with Tumblr, with the added bonus that Disqus indexes the social web, finds reactions to your posts that are published elsewhere, and displays them alongside comments.

I created a Disqus account, copied the appropriate integration code, and pasted it into my Tumblr template.

Content Requiring More Effort to Republish

Extracting and republishing my content from the following services required a bit more effort.

Gmane

I'm an occasional contributor to various email lists. Some of these lists have archives that can be read via RSS, but I want to include only my posts in my lifestream. Doing so involves combining Gmane Search with Dapper site scraping.

Gmane provides search by author, so it's easy to locate my posts. However, the search results are not accessible by RSS. Enter Dapper.

Dapper

Dapper is a data mapping service. It extracts content from any web page and publishes it in any of a variety of formats, including RSS. I used the Dapper wizard to search Gmane and produce an RSS feed of my email list posts. I subscribed to the resulting RSS feed in Google Reader and added it to my lifestream folder.

Google Groups

Google Groups archives Usenet posts and hosts non-Usenet forums presented with the same user interface. Google Groups does not provide RSS feeds of search results directly. Fortunately, Google Alerts can do so. I created a Google Alert, delivered to a feed, comprising the results of a search for my email address. I subscribed to the resulting feed in Google Reader and added it to my lifestream folder.

FitnessBuilder

FitnessBuilder is an iPhone app from PumpOne. Several of PumpOne's iPhone apps integrate with MapMyFitness. Using those apps, I previously would sync my workouts to MapMyFitness, which would include them in its feed of my activity. FitnessBuilder does not provide the same syncing feature. Fortunately, it can email workout logs, and Blogger accepts posts by email. I set up a Blogger blog for my FitnessBuilder workouts, and I post to it by emailing my workouts from the FitnessBuilder app. I subscribed to the blog's feed in Google Reader and added it to my lifestream folder.