{"id":559,"date":"2007-02-19T05:20:10","date_gmt":"2007-02-19T00:20:10","guid":{"rendered":"http:\/\/emilychang.com\/blog\/?p=559"},"modified":"2010-03-14T19:26:48","modified_gmt":"2010-03-15T03:26:48","slug":"my-data-stream","status":"publish","type":"post","link":"https:\/\/emilychang.com\/blog\/2007\/02\/my-data-stream\/","title":{"rendered":"My Data Stream"},"content":{"rendered":"<p>After a year and a half of using social applications heavily, I recently had to revisit the plan to aggregate all my activity into one data stream.  As the calendar rolled to 2007, I kept wishing I could look at all my social activity from 2006 in context: time, date, type of activity, location, memory, information interest, and so on.  What was I bookmarking, blogging about, listening to, going to, and thinking about?  I still had the urge to have an information and online activity mash-up that would allow me to discover my own patterns and to share my activity across the web in one chronological stream of data (to start with anyway).<\/p>\n<p>While there are some <a href=\"http:\/\/www.emilychang.com\/go\/weblog\/comments\/pretty-supr\/\">great services like SuprGlu<\/a> for aggregating feeds into a browseable blog format (see <a href=\"http:\/\/emilychang.suprglu.com\/\">my SuprGlu<\/a> here), it&#8217;s still a hosted service and I need something that runs on my own server so I can have greater flexibility.<\/p>\n<p>Others have been toying with this idea as well.  A few months ago, Jeremy Keith wrote about his experience with this very issue in &#8220;<a href=\"http:\/\/adactio.com\/journal\/1202\/\">Streaming my life away<\/a>.&#8221;   He decided to write a PHP script that would track several RSS feeds (Twitter, Flickr, Del.icio.us, Last.fm, and blog posts) by time-stamp and then display them in chronological order.  It doesn&#8217;t do any caching but &#8220;the important thing is that it&#8217;s keeping the context of the permalinks (song, link, photo, or blog post) and displaying them ordered by date and time.&#8221;   His experience resonated with me.   I tried his PHP script but it didn&#8217;t quite work on my blog.  Jeff Croft also has a similar implementation at his tumblelog, which appears to be down now.<\/p>\n<p>The night I was playing with this idea, <a href=\"http:\/\/twitter.com\/emilychang\/statuses\/5334132\">I twittered about it<\/a> and heard from Boris Anthony who showed me his <a href=\"http:\/\/bopuc.levendis.com\/ggalaxy\/\">ggalaxy<\/a> multi-contextual aggregator, a great system for seeing all of your friends&#8217; (or favorite feeds) output in one place.  In this case, the <a href=\"http:\/\/www.reallysimplesyndication.com\/riverOfNews\">river of news<\/a> is limited to 7 days and not archived. ggalaxy will be a WordPress plugin.<\/p>\n<p>For my immediate purposes, I wanted to have the data from my selection of RSS feeds parsed and actually imported into my own MySQL database so it was archived and referenced in my own system.  After doing some more research to see if anything was out there specifically for my blog software, I found <a href=\"http:\/\/www.pmachine.com\/forums\/viewthread\/37598\/P36\/#205053\">feedgrab<\/a>, an amazing plugin by <a href=\"http:\/\/www.brandnewbox.co.uk\/\">Andrew Weaver<\/a> in the ExpressionEngine forums.  It worked well but needed the ability to import data from RSS feeds with unique criteria.  After an email exchange with Andrew, he informed me this was already in the works.  He updated the plugin and added new features within a couple of days.  Big thanks to Andrew for writing this (and all the great programmers that support the open source community with their expertise).<\/p>\n<p><strong>My data stream:<\/strong><br \/>\n<a href=\"http:\/\/www.emilychang.com\/stream\">http:\/\/www.emilychang.com\/stream<\/a><\/p>\n<p>I set up a separate blog for each of my services with custom fields for the data and I&#8217;m tracking my RSS feeds from:<\/p>\n<ul>\n<li><a href=\"http:\/\/www.emilychang.com\">EmilyChang.com<\/a><\/li>\n<li><a href=\"http:\/\/www.emilychang.com\/go\/ehub\">eHub<\/a><\/li>\n<li><a href=\"http:\/\/www.ideacodes.com\">Ideacodes<\/a><\/li>\n<li><a href=\"http:\/\/www.stylehive.com\/emilychang\">Stylehive<\/a><\/li>\n<li><a href=\"http:\/\/del.icio.us\/artcodes\">del.icio.us<\/a><\/li>\n<li><a href=\"http:\/\/twitter.com\/emilychang\/\">twitter<\/a><\/li>\n<li><a href=\"http:\/\/beta.plazes.com\/user\/emily\">plazes<\/a><\/li>\n<li><a href=\"http:\/\/www.flickr.com\/photos\/emilychang\/\">flickr<\/a><\/li>\n<li><a href=\"http:\/\/www.last.fm\/user\/emilychang\/\">last.fm<\/a><\/li>\n<li> <a href=\"http:\/\/upcoming.org\/user\/20277\/\">upcoming<\/a><\/li>\n<\/ul>\n<p>The plugin script fetches the RSS feed from each service and then parses the XML and imports the data from pre-determined fields into an ExpressionEngine blog database.  This is then displayed on <a href=\"http:\/\/www.emilychang.com\/activity\/data\/stream\">my stream page<\/a> by time-stamp with an icon to indicate the service or my blog source.  You can click on the mini-calendar to view activity by day.<\/p>\n<p>The script runs automatically every day and imports data from the various services.  I can now search that database with the ExpressionEngine search engine by keyword(s).  While this is internal to me at the moment, I&#8217;ll make the search public after I&#8217;ve customized it a bit.  If I search for &#8220;urban&#8221; I would see results for all my bookmarks tagged red in stylehive, del.icio.us, music I had listened to through last.fm with the title or band &#8220;red,&#8221; photos I posted to flickr with that tag, status messages at twitter, events I was watching or attending at upcoming, Ideacodes news, or eHub apps with a match.<\/p>\n<p>When <a href=\"http:\/\/www.emilychang.com\/go\/weblog\/comments\/tag-this\/\">I wrote<\/a> about this back in September 2005, I was thinking that this type of aggregating by tag would also be helpful.<\/p>\n<blockquote><p>But, I&#8217;m also finding that the more tagging I do in various places and for different types of content, the more I feel my metadata becoming siloed into these other databases. Even though today&#8217;s new applications have moved beyond rigid categories and allow me to tag my own data, the current state of tagging doesn&#8217;t allow for us to map these information relationships from one site to another &#8211; or perhaps more aptly, to see a snapshot of our metadata universe.  I&#8217;m still looking for a way to see how my current tags crossover with one another, and with tags made by others &#8211; the aerial view.<\/p><\/blockquote>\n<p>This type of <a href=\"http:\/\/en.wikipedia.org\/wiki\/Attention_stream\">attention stream<\/a> seems harder to do right now since each web service does tags quite differently within RSS enclosures.<\/p>\n<p>For now, this <em>activity stream<\/em> idea is providing the start to a holistic view of my activity across online networks: both my own and the ones I use. In turn, this acts as a conduit for you, the reader.  Rather than just a static &#8220;recommended links&#8221; page or a blogroll, the data stream opens up my activity to you in semi-realtime and at one website.  I&#8217;ll continue tweaking the content, navigation, and layout so watch for changes.  Let me know what you think!<\/p>\n<p><strong>My data stream:<\/strong><br \/>\n<a href=\"http:\/\/emilychang.com\/stream\">http:\/\/emilychang.com\/stream<\/a><\/p>\n<p><strong>UPDATES<\/strong>:<\/p>\n<p>See <a href=\"http:\/\/www.techmeme.com\/070219\/p62#a070219p62\">discussion about my post on Techmeme<\/a><\/p>\n<p>March 4: <a href=\"http:\/\/adactio.com\/journal\/1265\/\">Watching the stream<\/a> by Jeremy Keith<\/p>\n<p><a href=\"http:\/\/www.personalinfocloud.com\/2007\/02\/life_data_strea.html\">Life Data Stream<\/a> by Thomas Vander Wal<\/p>\n<p><a title=\"Traffic And Flow\" href=\"http:\/\/www.stoweboyd.com\/message\/2007\/02\/traffic_and_flo.html\">Traffic And Flow<\/a> by Stowe Boyd<\/p>\n<p><a title=\"Attention Streams - Your life in feed\" href=\"http:\/\/www.touchstonelive.com\/blog\/2007\/02\/attention-streams-your-life-in-feed.html\">Attention Streams &#8211; Your life in feed<\/a> by Chris Saad<\/p>\n<p><a title=\"Taming your own river of news\" href=\"http:\/\/www.downloadsquad.com\/2007\/02\/19\/taming-your-own-river-of-news\/\">Taming your own river of news<\/a> by Grant Robertson on DownloadSquad<\/p>\n<p><a title=\"Everyone's data streams for everything visible everywhere\" href=\"http:\/\/www.rossdawsonblog.com\/weblog\/archives\/2007\/02\/everyones_data.html\">Everyone&#8217;s data streams for everything visible everywhere<\/a> by Ross Dawson<\/p>\n<p><a title=\" When What i Say and do Probably Matters the Most\" href=\"http:\/\/danielabarbosa.blogspot.com\/2007\/02\/when-what-i-say-and-do-probably-matters.html\">When What i Say and do Probably Matters the Most<\/a> by Daniela Barbosa<\/p>\n<p><a title=\"Marketing 2.0\" href=\"http:\/\/sleepyblogger.com\/?p=572\">Marketing 2.0<\/a> by Robyn Tippins<\/p>\n<p><a href=\"http:\/\/blog.jackvinson.com\/archives\/2007\/02\/26\/my_life_stream.html\">My Life Stream<\/a> by Jack Vinson<\/p>\n<p><a href=\"http:\/\/www.vecosys.com\/2007\/02\/27\/lifestreams-could-help-create-new-personalised-discovery-engines\/\">Lifestreams could help create new personalised discovery engines<\/a> by Sam Sethi<\/p>\n<p><a href=\"http:\/\/www.techquilashots.com\/2007\/02\/20\/idea-23-your-syndicated-chronological-life\/\">IDEA #23 &#8211; Your Syndicated Chronological Life<\/a> by Steve Poland<\/p>\n<p><a href=\"http:\/\/krynsky.com\/lifestream-could-it-be-the-next-big-thing\/\">Lifestream &#8211; Could it be the next big thing?<\/a> by Mark Krynsky<\/p>\n","protected":false},"excerpt":{"rendered":"<p>After a year and a half of using social applications heavily, I recently had to revisit the plan to aggregate all my activity into one data stream. As the calendar rolled to 2007, I kept wishing I could look at all my social activity from 2006 in context: time, date, type of activity, location, memory,&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[246,6],"tags":[150,146,139,1425,148,16,37,149],"class_list":["post-559","post","type-post","status-publish","format-standard","hentry","category-creating","category-writing","tag-aggregation","tag-attention","tag-data","tag-emilychang","tag-lifestreaming","tag-projects","tag-rss","tag-socialnetworks"],"acf":[],"_links":{"self":[{"href":"https:\/\/emilychang.com\/blog\/wp-json\/wp\/v2\/posts\/559","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/emilychang.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/emilychang.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/emilychang.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/emilychang.com\/blog\/wp-json\/wp\/v2\/comments?post=559"}],"version-history":[{"count":0,"href":"https:\/\/emilychang.com\/blog\/wp-json\/wp\/v2\/posts\/559\/revisions"}],"wp:attachment":[{"href":"https:\/\/emilychang.com\/blog\/wp-json\/wp\/v2\/media?parent=559"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/emilychang.com\/blog\/wp-json\/wp\/v2\/categories?post=559"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/emilychang.com\/blog\/wp-json\/wp\/v2\/tags?post=559"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}