{"id":74,"date":"2007-11-12T03:46:20","date_gmt":"2007-11-12T08:46:20","guid":{"rendered":"http:\/\/www.visophyte.org\/blog\/2007\/11\/12\/first-steps-to-interactive-fun-using-couchdb\/"},"modified":"2009-04-01T08:26:26","modified_gmt":"2009-04-01T13:26:26","slug":"first-steps-to-interactive-fun-using-couchdb","status":"publish","type":"post","link":"https:\/\/www.visophyte.org\/blog\/2007\/11\/12\/first-steps-to-interactive-fun-using-couchdb\/","title":{"rendered":"first steps to interactive fun using CouchDB"},"content":{"rendered":"<p> <img decoding=\"async\" src=\"http:\/\/www.visophyte.org\/blog\/wp-content\/uploads\/2007\/11\/visotank-first-python-dev-sparkbars1.png\" alt=\"visotank-first-python-dev-sparkbars1.png\" \/><\/p>\n<p>First, let me say that <a href=\"http:\/\/pylonshq.com\/\">Pylons<\/a> with its <a href=\"http:\/\/pythonpaste.org\/\">Paste<\/a> magic is delightful; lots of nice round edges helped me get something simple up and running in no time, and using <a href=\"http:\/\/genshi.edgewall.org\/\">genshi<\/a> to boot.<\/p>\n<p>The new tool, visotank, is ingesting the python-dev mailman archives (as <a href=\"\/blog\/2007\/09\/16\/python-dev-mailman-archive-thread-arc-visualizations\/\">previously <\/a><a href=\"\/blog\/2007\/10\/01\/cairo-bakes-pretty-pies\/\">visualized<\/a>) and putting them into <a href=\"http:\/\/couchdb.com\/\">CouchDB<\/a>.  The near-term goal is to allow for interactive exploration\/visualization of the archives.  The current result, as pictured, is simply sparkline barcharts of people&#8217;s posting history.  Left-to-right, present-to-past, weekly, one (vertical) pixel per message, truncating at the image height (12 pixels).<\/p>\n<p>Although the input processing thus far is specific to mailing list archives, the couchdb schema in use is for generic e-mail traffic.  The messages are even coerced into rfc2822 format for &#8216;raw&#8217; storage.<\/p>\n<p>The ability to use &#8216;map&#8217; multiple times in couchdb views to spread information is delightful.  What I really would like is more <em>reduce<\/em> functionality or, more specifically, just <em>accumulate<\/em>.  The sparkbars get their data from statistics with keys [contact id, timestamp of time period] and value <em>1<\/em>, one per message.  I would love for couchdb to provide a way to aggregate all those values with identical keys into a single row with the sum as the value.  I&#8217;ll look into this and the view implementation before writing any more on the subject, but if someone out there already knows a way to do this, please let me know.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.visophyte.org\/blog\/wp-content\/uploads\/2007\/11\/visotank-first-python-dev-sparkbars2.png\" alt=\"visotank-first-python-dev-sparkbars2.png\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>First, let me say that Pylons with its Paste magic is delightful; lots of nice round edges helped me get something simple up and running in no time, and using genshi to boot. The new tool, visotank, is ingesting the &hellip; <a href=\"https:\/\/www.visophyte.org\/blog\/2007\/11\/12\/first-steps-to-interactive-fun-using-couchdb\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[15,5,11,4],"tags":[130,41,42,39],"class_list":["post-74","post","type-post","status-publish","format-standard","hentry","category-couchdb","category-email","category-software","category-visualizing","tag-couchdb","tag-mailman","tag-sparkline","tag-visophyte"],"_links":{"self":[{"href":"https:\/\/www.visophyte.org\/blog\/wp-json\/wp\/v2\/posts\/74","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.visophyte.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.visophyte.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.visophyte.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.visophyte.org\/blog\/wp-json\/wp\/v2\/comments?post=74"}],"version-history":[{"count":1,"href":"https:\/\/www.visophyte.org\/blog\/wp-json\/wp\/v2\/posts\/74\/revisions"}],"predecessor-version":[{"id":251,"href":"https:\/\/www.visophyte.org\/blog\/wp-json\/wp\/v2\/posts\/74\/revisions\/251"}],"wp:attachment":[{"href":"https:\/\/www.visophyte.org\/blog\/wp-json\/wp\/v2\/media?parent=74"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.visophyte.org\/blog\/wp-json\/wp\/v2\/categories?post=74"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.visophyte.org\/blog\/wp-json\/wp\/v2\/tags?post=74"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}