<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Azavea Labs &#187; visualization</title>
	<atom:link href="http://www.azavea.com/blogs/labs/tag/visualization/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.azavea.com/blogs/labs</link>
	<description>Insight on what our engineers are doing</description>
	<lastBuildDate>Mon, 06 Feb 2012 22:32:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Geoserver Timestamp Styling and PostgreSQL DateTime Fields</title>
		<link>http://www.azavea.com/blogs/labs/2012/02/geoserver-timestamp-styling-and-postgresql-datetime-fields/</link>
		<comments>http://www.azavea.com/blogs/labs/2012/02/geoserver-timestamp-styling-and-postgresql-datetime-fields/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 22:26:54 +0000</pubDate>
		<dc:creator>Carissa Brittain</dc:creator>
				<category><![CDATA[Posts]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[GeoServer]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://www.azavea.com/blogs/labs/?p=1867</guid>
		<description><![CDATA[Think for a moment about how many ways we talk about dates and time. In regular language, we can say things like &#8220;last Tuesday&#8221; or &#8220;week after the week after next&#8221; or &#8220;Friday the 12th&#8221; and people generally can figure out when we&#8217;re talking about. Add time into the mix and phrases start getting strange: [...]]]></description>
			<content:encoded><![CDATA[<p>Think for a moment about how many ways we talk about <a title="Gregorian mostly" href="http://en.wikipedia.org/wiki/Calendar_date" target="_blank">dates</a> and <a title="Any time!" href="http://www.timeanddate.com/worldclock/" target="_blank">time</a>. In regular language, we can say things like &#8220;last Tuesday&#8221; or &#8220;week after the week after next&#8221; or &#8220;Friday the 12th&#8221; and people generally can figure out when we&#8217;re talking about. Add time into the mix and phrases start getting strange: &#8220;noon-thirty&#8221; and &#8220;half-past midnight&#8221; are my favorite oddities.</p>
<p>The actual date-time standard is published as <a title="Wikipedia's overview" href="http://en.wikipedia.org/wiki/ISO_8601" target="_blank">ISO 8601</a> and talks about what date-time data should look like, but programming languages, databases and other programs implement this standard with sometimes vastly different interfaces and rules.</p>
<p>PostgreSQL&#8217;s handling of date-time data takes the form of 6 different <a title="All listed out here, with max and min values." href="http://www.postgresql.org/docs/8.4/static/datatype-datetime.html" target="_blank">field types</a>, all suited to different data needs. For the OpenTreeMap project, we&#8217;re using the timestamp data type which allows us to store both dates and times for events down to the microsecond.</p>
<p>Geoserver accepts a single date-time type (also called <a title="Definition only" href="http://docs.geoserver.org/stable/en/user/filter/function_reference.html#function-argument-type-reference" target="_blank">timestamp</a>) that stores dates and times at the same resolution as PostgreSQL&#8217;s data type, so it reads PostgreSQL&#8217;s date-time data easily. Adding a date filter to Geoserver&#8217;s SLD files is also fairly easy so long as you know how Geoserver wants date-time data to be formatted. The various formats that Geoserver knows how to interpret are located <a title="Buried in the documentation..." href="http://docs.geoserver.org/latest/en/user/googleearth/tutorials/time/time.html#specifying-a-date-format">here</a>. So, if we have a field in a database table called &#8220;last_updated&#8221;, then an example SLD filter might look like this:</p>
<pre>&lt;Filter&gt;
  &lt;PropertyIsLessThan&gt;
     &lt;PropertyName&gt;last_updated&lt;/PropertyName&gt;
     &lt;Literal&gt;2012-01-01 00:00:00&lt;/Literal&gt;
  &lt;/PropertyIsLessThan&gt;
&lt;/Filter&gt;
</pre>
<p>This filter would display any updates made before midnight on January 01, 2012. Another example (from the OGC 1.0 encoding specification&#8217;s <a title="PDF - look in the example section for date filters" href="http://portal.opengeospatial.org/files/?artifact_id=1171">examples</a>) catches updates between certain dates:</p>
<pre>&lt;ogc:Filter&gt;
  &lt;ogc:PropertyIsBetween&gt;
    &lt;ogc:PropertyName&gt;last_updated&lt;/ogc:PropertyName&gt;
    &lt;ogc:LowerBoundary&gt;
      &lt;ogc:Literal&gt;2011-12-01 00:00:00&lt;/ogc:Literal&gt;
    &lt;/ogc:LowerBoundary&gt;
    &lt;ogc:UpperBoundary&gt;
      &lt;ogc:Literal&gt;2011-12-31 23:59:59&lt;/ogc:Literal&gt;
    &lt;/ogc:UpperBoundary&gt;
  &lt;/ogc:PropertyIsBetween&gt;
&lt;/ogc:Filter&gt;</pre>
<p>This filter would display any updates made during the month of December, 2011. Anything that was updated outside the specified date and time parameters would bypass these filters and go on to check any other rules in the SLD file. This works great if we&#8217;re only interested in <a title="Not this kind" href="http://www.istockphoto.com/stock-photo-1063134-real-tv-static.php" target="_blank">static</a> date comparisons. But what if we want to see updates less than a week old? Or objects that haven&#8217;t been updated for more than three months? This kind of dynamic filtering is a little harder to do.</p>
<p>After digging through the Geoserver documentation and a lot of googling, we decided to shift the dynamic part of the filter into a PostgreSQL view. Our test view included an id field, a geometry field and a field that calculates the number of days since the last update to that object. The view sql looks like this:</p>
<pre>CREATE OR REPLACE VIEW timestamp_test AS
  SELECT
    treemap_tree.id,
    date_part('days'::text, now() - treemap_tree.last_updated) AS days,
    treemap_tree.geometry
  FROM treemap_tree;</pre>
<p>So now we can add this view to Geoserver as a source layer and it will see the new days field as a static number field. We can use any of the property filters on this field and style recently added data in a dynamic fashion.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.azavea.com/blogs/labs/2012/02/geoserver-timestamp-styling-and-postgresql-datetime-fields/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Azavea’s Coffee Helper: Caféduino</title>
		<link>http://www.azavea.com/blogs/labs/2010/03/azaveas-coffee-helper-cafeduino/</link>
		<comments>http://www.azavea.com/blogs/labs/2010/03/azaveas-coffee-helper-cafeduino/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 14:03:51 +0000</pubDate>
		<dc:creator>David Zwarg</dc:creator>
				<category><![CDATA[Posts]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[coffee]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://www.azavea.com/blogs/labs/?p=460</guid>
		<description><![CDATA[Azavea has a clearly defined symbiosis with coffee. We have a designated Minister of Coffee, an incredible coffee grinder, and we get selections of coffee from around the world; some of it hand-delivered, and some of it hand-crafted. One of the problems opportunities that I observed was that as coffee was brewed and consumed in [...]]]></description>
			<content:encoded><![CDATA[<p>Azavea has a clearly defined symbiosis with coffee. We have a designated Minister of Coffee, an incredible coffee grinder, and we get selections of coffee <a href="http://www.flickr.com/photos/tags/coffee/map?&amp;fLat=-14.2429&amp;fLon=-51.4122&amp;zl=14">from</a> <a href="http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=coffee+near:tasmania&amp;sll=-42.000519,146.703146&amp;sspn=4.061753,3.532104&amp;ie=UTF8&amp;hq=coffee&amp;hnear=Tasmania,+Australia&amp;t=h&amp;z=8">around</a> the <a href="http://en.wikipedia.org/wiki/File:DirkvdM_orosi_valley_bird.jpg">world</a>; some of it <a href="http://www.rainforestours.com/products.htm">hand-delivered</a>, and some of it <a href="http://www.azavea.com/blogs/labs/2009/08/fueling-the-software-engineer/">hand-crafted</a>.</p>
<p>One of the <span style="text-decoration: line-through;">problems</span> opportunities that I observed was that as coffee was brewed and consumed in the office (about 6 brews a day), there would often be an unlucky staffer who picked up the (opaque) coffee pot to find it empty.  I don’t personally drink coffee, so I was unaware of how much anticipation one would have when approaching the pot.  Not knowing how much coffee was in there, and worrying if the mug you pour may be <a href="http://www.google.com/search?q=half+empty">half empty</a> or <a href="http://www.google.com/search?q=half+full">half full</a>.</p>
<p>I slowly set to work in my free time to solve this conundrum.  To me, it seemed like an individual would want to know if there was coffee in the coffee pot before approaching the coffee maker (whom some of us address reverently as <a href="http://www.zojirushi.com/ourproducts/breadmakers/ec_bd15.html" class="broken_link" rel="nofollow">Zojirushi-san</a>).  This could be 1) a web page, 2) a desktop app, or 3) an <a href="http://en.wikipedia.org/wiki/Internet_Relay_Chat">IRC</a> (not <a href="http://en.wiktionary.org/wiki/IIRC">IIRC</a>) bot.</p>
<p>I drew up some schematics, took some measurements, and retreated to my home lab to build an <a href="http://www.arduino.cc/">Arduino</a> based, web-enabled measurement system tailored for the coffee pot. I used an <a href="http://www.arduino.cc/en/Main/ArduinoBoardDiecimila">Arduino Diecimila</a>, an <a href="http://www.arduino.cc/en/Main/ArduinoEthernetShield">Ethernet Shield</a>, a couple piezoelectric sensors, a 3 color LED, a couple buttons, and an awesome hand-crafted wooden base.</p>
<p>A <span style="text-decoration: line-through;">short</span> while later, I had a working prototype ready for testing. This device now sits in Azavea’s kitchen, measuring the weight of the coffee maker, and reporting the measurements to <a href="http://www.pachube.com/">pachube</a>.  After doing some internal evaluation, the name ‘Caféduino’ stuck, and I developed a couple methods of viewing the coffee pot status.</p>
<ol>
<li>Direct      web access
<div id="attachment_462" class="wp-caption aligncenter" style="width: 324px"><img class="size-full wp-image-462 " title="Caféduino Webpage" src="http://www.azavea.com/blogs/labs/wp-content/uploads/2010/03/cafeduino-1.png" alt="The web page generated by the Cafeduino" width="314" height="118" /><p class="wp-caption-text">The web page generated by the Caféduino</p></div>
<p>Using this method, it’s possible to directly address the Caféduino.  This gives one direct access to the      measurement values, but is more useful for other applications that are      polling the data frequently.</li>
<li>Caféduino      Notification
<div id="attachment_463" class="wp-caption aligncenter" style="width: 231px"><img class="size-full wp-image-463 " title="Caféduino Notifier" src="http://www.azavea.com/blogs/labs/wp-content/uploads/2010/03/cafeduino-2.png" alt="The system tray notification app." width="221" height="82" /><p class="wp-caption-text">The system tray notification app.</p></div>
<p>Using this method, the Caféduino is polled continuously, and the tiny      coffee mug in the system tray is updated as the coffee level changes.  This is the most aggressive method of      monitoring the Caféduino which, mysteriously, is the most comforting for      users.</p>
<div id="attachment_464" class="wp-caption aligncenter" style="width: 419px"><img class="size-full wp-image-464 " title="Caféduino History" src="http://www.azavea.com/blogs/labs/wp-content/uploads/2010/03/cafeduino-3.png" alt="Visualizing the Cafeduino history." width="409" height="210" /><p class="wp-caption-text">Visualizing the Caféduino history.</p></div>
<p>When the coffee mug is clicked, the history of the Caféduino is charted in      the window.  What you are seeing is      a Google visualization applet that is consuming the historical data,      stored on <a href="http://www.pachube.com/">http://www.pachube.com/</a>.</li>
<li>IRC      bot integration
<div id="attachment_465" class="wp-caption aligncenter" style="width: 244px"><img class="size-full wp-image-465 " title="Caféduino IRC Conversation" src="http://www.azavea.com/blogs/labs/wp-content/uploads/2010/03/cafeduino-4.png" alt="A sample IRC conversation with the IRC bot." width="234" height="90" /><p class="wp-caption-text">A sample IRC conversation with the IRC bot.</p></div>
<p>Lastly, the most interactive method of polling the Caféduino is through      our internal IRC channel. The above screenshot is the conversation that I      initiated with the IRC bot, and its response.  It has reassured me that there is      indeed, 77.78% of a pot of coffee left.</li>
</ol>
<p>Now our staff can check in on the coffee pot, to insure that their next visit to the kitchen will be without disappointment.  While this system works well for monitoring the coffee level, the next steps may be more involved – building a machine to <a href="http://gizmodo.com/5015735/the-top-10-rube-goldberg-machines-featured-on-film">automatically brew coffee</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.azavea.com/blogs/labs/2010/03/azaveas-coffee-helper-cafeduino/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Envisioning Development</title>
		<link>http://www.azavea.com/blogs/labs/2010/01/envisioning-development/</link>
		<comments>http://www.azavea.com/blogs/labs/2010/01/envisioning-development/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 14:50:03 +0000</pubDate>
		<dc:creator>David Zwarg</dc:creator>
				<category><![CDATA[Posts]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[housing]]></category>
		<category><![CDATA[nyc]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://www.azavea.com/blogs/labs/?p=386</guid>
		<description><![CDATA[This is so simple, it&#8217;s cool: http://envisioningdevelopment.net/map I especially like the hourglass-like effect way of populating the columns. It gives one the feel of really counting things. Like when you switch between East Harlem and the Upper East Side. I would like to be able to see the distribution over the whole city, or the [...]]]></description>
			<content:encoded><![CDATA[<p>This is so simple, it&#8217;s cool: <a href="http://envisioningdevelopment.net/map">http://envisioningdevelopment.net/map</a></p>
<p>I especially like the hourglass-like effect way of populating the columns. It gives one the feel of really counting things.  Like when you switch between East Harlem and the Upper East Side.</p>
<p>I would like to be able to see the distribution over the whole city, or the gradients between neighborhoods, but that&#8217;s just me.  I think the design is neat and clean, and tells a very compelling story.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.azavea.com/blogs/labs/2010/01/envisioning-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nesting Comments Using Ext.XTemplate</title>
		<link>http://www.azavea.com/blogs/labs/2009/10/nesting-comments-using-ext-xtemplate/</link>
		<comments>http://www.azavea.com/blogs/labs/2009/10/nesting-comments-using-ext-xtemplate/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 18:38:42 +0000</pubDate>
		<dc:creator>Carissa Brittain</dc:creator>
				<category><![CDATA[Posts]]></category>
		<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://www.azavea.com/blogs/labs/?p=300</guid>
		<description><![CDATA[When considering a nested comment implementation, we really only have to deal with two types of comment: root comments and child or nest comments. Root comments are easy to describe. They are not a child of any other comment. They're what you get when someone has a brilliant new insight, hits the "New Comment" button and dazzles us all. Nest comments, on the other hand, seem like they should be more complicated. If you're allowing replies to comments, then a nest comment could have its own nests. Wouldn't that make a comment both a nest and a root? Not in this post. For the purposes of this example: roots don't have parents; everything else is a nest. Simple.]]></description>
			<content:encoded><![CDATA[<p>When considering a <a title="No, not for them..." href="http://en.wikipedia.org/wiki/Nesting,_Shetland" target="_blank">nested comment implementation</a>, we really only have to deal with two types of comment: root comments and child or nest comments. <a title="Hold me up!" href="http://en.wikipedia.org/wiki/File:Koreni-00.JPG" target="_blank">Root </a>comments are easy to describe. They are not a child of any other comment. They&#8217;re what you get when someone has a brilliant new insight, hits the &#8220;New Comment&#8221; button and dazzles us all. <a title="Cheep, cheep." href="http://en.wikipedia.org/wiki/File:Bald_eagle_nesting.JPG" target="_blank">Nest</a> comments, on the other hand, seem like they should be more complicated. If you&#8217;re allowing replies to comments, then a nest comment could have its own nests. Wouldn&#8217;t that make a comment both a nest and a root? Not in this post. For the purposes of this example: roots don&#8217;t have parents; everything else is a nest. Simple.</p>
<p>Let&#8217;s address a few data prerequisites before diving into the actual how-to of template nesting. No matter how your comment data gets to your page, it should be <a title="But which way?" href="http://www.molly.com/2009/09/29/why-bottom-posting-sucks/" target="_blank" class="broken_link" rel="nofollow">in order</a>. For example: say we have 3 comments :</p>
<ul>
<li>Root A &#8211; Oct 1
<ul>
<li>Nest 1 &#8211; Oct 15</li>
</ul>
</li>
<li>Root B &#8211; Oct 4</li>
</ul>
<p>We seem to be following a <a title="Smarter than your average 4th grader?" href="http://fcit.usf.edu/FCAT/strategies/co/activity2.htm" target="_blank">chronological paradigm</a> here and everything is in a logical order. In order to do the least processing in your javascript, your data should come to the page in this same order: Root A, Nest 1 then Root B.</p>
<p>Each comment should have some basic information available to the template. Root comments only need some kind of id along with the actual comment information (text, date, <a title="What's in it, Egg?" href="http://en.wikipedia.org/wiki/Six_Demon_Bag#Big_Trouble_in_Little_China" target="_blank">all that kind of thing</a>). Nest comments need a bit more information. They should know the id of their parent (whether a root or another nest) and their nesting level or how deeply they&#8217;re nested from the top of the conversation. For our example above, a sample data set should look something like this:</p>
<pre>{ [id: 100, text: "Root A", date: "Oct 1", nestLevel: 0, parent: 0],
  [id: 350, text: "Nest 1", date: "Oct 15", nestLevel: 1, parent: 100],
  [id: 288, text: "Root B", date: "Oct 4", nestLevel: 0, parent: 0] }</pre>
<p>Notice that our root comments have nestLevel and parent values of 0 (<a title="Wasn't always there" href="http://en.wikipedia.org/wiki/Zero#Early_history" target="_blank">zero</a>). This makes sense: Roots can&#8217;t have parents by our definition above, and they will always have a nest level of 0. Take a look at the second entry, our nest comment. The parent value is 100 which is the same as the id value for our first root comment, Root A. In effect, we have an internal relationship <a title="An internal foreign key maybe?" href="http://www.geocities.com/SiliconValley/Vista/2207/sql3.html#Keys" target="_blank" class="broken_link" rel="nofollow">key for our data</a>.</p>
<p>Now that we have data in the right order and our nests know their parents and <a title="Hopefully not this deep!" href="http://ant.edb.miyakyo-u.ac.jp/INTRODUCTION/Gakken79E/Page_20.html" target="_blank">how deep they are</a>, we can set up our Ext.XTemplate object to handle the visual component of our nesting.</p>
<pre>var tplComments = new Ext.XTemplate(
 '&lt;tpl for="."&gt;',
    '&lt;div id="comment-{id}" style="margin-left:{[values.nestLevel === 0 ? "5" : "15"]}px;
              background-color:{[values.nestLevel % 2 === 0 ? "#fff" : "#f9f9dd"]};
              border:1px #ccc solid;
              padding:5px;"&gt;',
        //comment text, date and other info here
    '&lt;/div&gt;',
 '&lt;/tpl&gt;',
);</pre>
<p>Lets pick apart our template and see how it visually nests our comments for us. On the first line, we&#8217;re declaring our object, nothing new here. The next line uses a template looping mechanism (for=&#8221;.&#8221;) to create the internal tag structure for each data element in our comment set.  Now things get interesting.</p>
<p>The id of our eventual div tags will include the id of the comment being templated. This is done using some <a title="An intro to the subject" href="http://www.simple-talk.com/dotnet/asp.net/token-replacement-in-asp.net/" target="_blank">token replacement</a> where you see {id}. So the html for our first comment will be in the div with the id &#8220;comment-100&#8243;.</p>
<p>In the style attribute of our comment div are two blocks of javascript surrounded by {[    ]} that the template will treat as javascript instead of just text. Inside those blocks, the &#8220;values&#8221; object refers to the particular comment object we&#8217;re dealing with inside our loop. The attributes on this object are the same as the property names in our data set: id, text, date, nestLevel and parent. When <a title="Ternary - think if-then-else" href="http://en.wikipedia.org/wiki/Ternary_logic" target="_blank">English-a-fied</a>, the first block reads: If the nestLevel is 0 (meaning a root comment) then write 5 here, for any other value write 15. This will give our roots a left margin of 5px and our nests a left margin of 15. While this doesn&#8217;t quite get us to an infinitely-nested set of comments, it gets us close and provides a visual cue to the audience. We&#8217;ll get closer to a truly nested solution in the javascript utilizing this template later.</p>
<p>The second block of javascript in the style attribute switches the background from white to cream on alternating comments. Its English sentence might read: If the nestLevel <a title="Look for modulo" href="http://www.javascriptkit.com/jsref/arithmetic_operators.shtml" target="_blank">is an even number</a>, use a white background, otherwise use cream.</p>
<p>Now for some javascript to bring it all together and make our nesting work properly. After your comment data is available in the page, you can use the <a title="The spec" href="http://www.extjs.com/deploy/dev/docs/?class=Ext.XTemplate" target="_blank">XTemplate</a>&#8216;s append function and some basic Ext DOM querying to stack your comments indefinitely.</p>
<pre>if(comment.get("nestLevel") === 0)
{
   tplComments.append(commentLocation, comment.data);
}
else
{
    tplComments.append(Ext.get("comment-" + comment.get("parent")), comment.data);
}</pre>
<p>This block of javascript splits our comments set into the two definitions from the beginning: roots and nests. Roots just get appended to the end of the commentLocation element on your page. Nothing fancy there. Nests, however, take a bit more thought. A nest knows the id of it&#8217;s parent comment. In our template object, each comment is contained in a div with the same id as the comment. In order to nest a comment under its proper parent, use Ext&#8217;s built-in DOM searching capabilities to locate the parent, then append the nest.</p>
<p>Each nest will wind up nested 15px in from the left edge of its parent; alternating comments have subtle color changes and each wrapping div is associated to a comment by id for future tinkering. And we&#8217;re done!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.azavea.com/blogs/labs/2009/10/nesting-comments-using-ext-xtemplate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On The Road at The Future of News and Civic Media Conference</title>
		<link>http://www.azavea.com/blogs/labs/2009/06/on-the-road-at-the-future-of-news-and-civic-media-conference/</link>
		<comments>http://www.azavea.com/blogs/labs/2009/06/on-the-road-at-the-future-of-news-and-civic-media-conference/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 02:11:42 +0000</pubDate>
		<dc:creator>David Zwarg</dc:creator>
				<category><![CDATA[Posts]]></category>
		<category><![CDATA[barcamp]]></category>
		<category><![CDATA[geodata]]></category>
		<category><![CDATA[mit]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://www.azavea.com/blogs/labs/?p=138</guid>
		<description><![CDATA[Here's an update from MIT, and The Future of News and Civic Media Conference. I attended the conference to participate in a barcamp session on mapping tools, and how they are can be used for different types of projects.  This conference was really intriguing.  Coming from a GIS background, I was struck by how often maps and geography are used to tell a story.

(some cool geodata visualizations after the jump)]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s an update from MIT, and The Future of News and Civic Media Conference. (<a href="http://civic.mit.edu/knightconf" class="broken_link" rel="nofollow">link</a>)  I attended the conference to participate in a barcamp session on mapping tools (spatial databases, image map servers, libraries, etc), and how they are can be used for different types of projects (journalism and communities, particularly).  This conference was <em>really</em> intriguing (chatter on twitter <a href="http://search.twitter.com/search?q=%23fncm09">#fncm09</a> and <a href="http://search.twitter.com/search?q=%23knc09">#knc09</a>).  Coming from a GIS background, I was struck by how often maps and geography are used to tell a story.</p>
<p>In the conference&#8217;s opening plenary, Chris Csikentmihalyti presented his work with ExtrAct (<a href="http://labcast.media.mit.edu/?p=69">video</a>, <a href="http://civic.mit.edu/projects/c4fcm/extract">project</a>), which is building tools for people monitoring gas and oil extraction in their towns.  He showed a google earth video zooming into Western Colorado, and showing all the wells in the state of Colorado.  It was a crowd-gasping moment. (sorry, no linkage)</p>
<p>Chris then talked about community projects, and used OpenStreetMap.org as an example of a global data collection effort. <a href="http://www.youtube.com/watch?v=Vx3dTBtGwWs" class="broken_link" rel="nofollow">Another spinny globe video</a> showed the additions of street segments to the OpenStreetMap.org database over the 2008 calendar year.  Impressive, to say the least.</p>
<p>The next speaker was Ben Fry, one of the inventors of <a href="http://www.processing.org/">Processing</a>.  He gave a good introduction to Data Visualization, why it&#8217;s relevant, and how a successful visualization communicates a great deal of information in a small amount of space.  Among the demos in Ben&#8217;s talk, one of them was one of the earlier processing visualizations, <a href="http://benfry.com/zipdecode/">zipdecode</a>. (try clicking on the map and typing &#8217;02138&#8242;)  My first thought was &#8220;Awesome, more maps!&#8221;  He followed it up later with live demo of Cascade on Wheels&#8217; Wall Map (<a href="http://www.trsp.net/cow/">project</a>, <a href="http://www.vimeo.com/645435">video</a>).  Again, my reaction: &#8220;Awesome, more maps!&#8221;</p>
<p>These two speakers stood out to me, because of their use of spatial data in their presentations.  Neither of them said anything about GIS, geography, spatial data, or anything of that nature, they just threw the interactive maps on the projector in the auditorium, and let the maps tell the story.  It flowed into the rest of the presentation, and made sense.  It was excellent to see another perspective and use of geography and geographic data, even if nobody mentioned it, or called it out.  The data was just naturally spatial, and the visualizations were so easy to understand, there was no need to explain it.</p>
<p>If this is the future of news, I&#8217;m tuning in.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.azavea.com/blogs/labs/2009/06/on-the-road-at-the-future-of-news-and-civic-media-conference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

