<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Data Realization</title>
	
	<link>http://datarealization.com</link>
	<description />
	<lastBuildDate>Sun, 12 Dec 2010 01:52:37 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/datarealization" /><feedburner:info uri="datarealization" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>datarealization</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>API-Driven Development</title>
		<link>http://feedproxy.google.com/~r/datarealization/~3/0ye5nHSIDmo/</link>
		<comments>http://datarealization.com/2010/12/11/api-driven-development/#comments</comments>
		<pubDate>Sun, 12 Dec 2010 01:52:37 +0000</pubDate>
		<dc:creator>Brian Shaler</dc:creator>
				<category><![CDATA[API]]></category>
		<category><![CDATA[philosophy]]></category>

		<guid isPermaLink="false">http://datarealization.com/?p=109</guid>
		<description><![CDATA[When many people hear &#8220;API&#8221; they think about interfaces web services—such as Twitter and Facebook—provide for 3rd party developers.
What is an API? API stands for Application Programming Interface. APIs serve as interfaces between different software programs and facilitate their interaction, similar to the way user interfaces facilitate interaction between humans and computers. The key thing [...]]]></description>
			<content:encoded><![CDATA[<p>When many people hear &#8220;API&#8221; they think about interfaces web services—such as Twitter and Facebook—provide for 3rd party developers.</p>
<p>What is an API? API stands for Application Programming Interface. APIs serve as interfaces between different software programs and facilitate their interaction, similar to the way user interfaces facilitate interaction between humans and computers. The key thing to understand is that APIs don&#8217;t have to be an interface between your application and the outside world. An API can be incredibly useful for applications running under the same roof.</p>
<p>At Data Realization, we strongly encourage creating simple, flexible APIs around data. What does this mean? Let&#8217;s think about charts and graphs. You can grab a free charting widget online, and there are typically two ways of delivering data to it: in the HTML where the widget is instantiated, or available at a specific URL. Either way, the chart will typically grab the data from where you point it, display it, and sometimes allow you to interact with it (e.g. mouse-over to show a number). This can be sufficient if all you need to do with your data is plot it using a free chart widget, but not for more advanced analytics.</p>
<p>With advanced analytics and data visualization, you&#8217;re creating an application that runs on a client computer (often in a browser), and has a <em>conversation</em> with a server. The conversation takes place via an API, where the client tells the server what data it wants, and the server responds with the data. The server becomes a simple data provider, focusing on security/authentication and scaling/caching, while ignoring presentation.</p>
<p>Let&#8217;s say you have an interactive chart that allows you to view a year of data or zoom in to view an hour of data. You don&#8217;t want to load a year&#8217;s worth of data in a one-minute resolution. Instead, the front-end application can say to the server, &#8220;I want a year&#8217;s worth of data in one-week resolution.&#8221; If the user zooms in, the application makes a new request, saying, &#8220;I want a month&#8217;s worth of data in one-day resolution.&#8221; On the back-end, preparing for this kind of use-case is trivial, where you would create roll-up tables in the database that house data at several resolutions. The API would then take the requested resolution and find the most sensible table to pull from.</p>
<p>The end user experience is an application in which they can put their <em>hands on the data</em>, and zoom in with animations to help give additional context to the data.</p>
<p>APIs for data are easy (in most cases).</p>
<p>Database records are easily serialized (JSON, XML, etc). Most data is immutable and easily cache-able and pre-cache-able. Taking the conversational approach is easier than it sounds, as request parameters are validated and translated directly into database queries. Providing data through an API encourages modularity and separates data processing from presentation.</p>
<img src="http://feeds.feedburner.com/~r/datarealization/~4/0ye5nHSIDmo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://datarealization.com/2010/12/11/api-driven-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://datarealization.com/2010/12/11/api-driven-development/</feedburner:origLink></item>
		<item>
		<title>What’s the Question?</title>
		<link>http://feedproxy.google.com/~r/datarealization/~3/OV9cpP3lyKE/</link>
		<comments>http://datarealization.com/2010/07/06/whats-the-question/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 09:38:33 +0000</pubDate>
		<dc:creator>Brian Shaler</dc:creator>
				<category><![CDATA[philosophy]]></category>

		<guid isPermaLink="false">http://datarealization.com/?p=85</guid>
		<description><![CDATA[Data visualization isn&#8217;t about the tools. It is about learning. The tools should not be selected or designed until there is a clear understanding of what questions are going to be answered.
One of the most common visualization tools is the line graph. It&#8217;s simple, intuitive, and helps answer the question, &#8220;How did this value change [...]]]></description>
			<content:encoded><![CDATA[<p>Data visualization isn&#8217;t about the tools. It is about learning. The tools should not be selected or designed until there is a clear understanding of what questions are going to be answered.</p>
<p>One of the most common visualization tools is the line graph. It&#8217;s simple, intuitive, and helps answer the question, &#8220;How did this value change over time?&#8221; Typically, the value is pulled straight from the database or logs.</p>
<p>Plotting a value over time on a line graph is taking the engineering approach: examine the input format and find a matching output format. When you start from a user&#8217;s perspective, you&#8217;ll hear phrases like &#8220;the relationship between,&#8221; and &#8220;the rate of,&#8221; and &#8220;how does X affect Y?&#8221; These are not as easy to drag and drop into a graphing library, but the results are much more profound.</p>
<p>The best answer isn&#8217;t always a number. The answer can be a shape, a gradient, or a trend.</p>
<p>It all depends on the question.</p>
<img src="http://feeds.feedburner.com/~r/datarealization/~4/OV9cpP3lyKE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://datarealization.com/2010/07/06/whats-the-question/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://datarealization.com/2010/07/06/whats-the-question/</feedburner:origLink></item>
		<item>
		<title>Heat Maps in Flash</title>
		<link>http://feedproxy.google.com/~r/datarealization/~3/5Ch4poXV2l4/</link>
		<comments>http://datarealization.com/2010/07/05/heat-maps-in-flash/#comments</comments>
		<pubDate>Mon, 05 Jul 2010 09:19:02 +0000</pubDate>
		<dc:creator>Brian Shaler</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://datarealization.com/?p=47</guid>
		<description><![CDATA[Three years ago, I rendered a large heat map representing almost 100,000 Digg users and the 300,000 friendships between them. I used PHP/GD2 to render the image and it took quite a while to render. Due to the difficulty of redrawing it, the heat map was never updated. It would have been great if the [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_50" class="wp-caption alignright" style="width: 400px"><img class="size-full wp-image-50" title="Heat Map" src="http://datarealization.com/wp-content/uploads/2010/05/heatmap1.png" alt="Heat Map rendered in Flash" width="390" height="220" /><p class="wp-caption-text">Heat Map rendered in Flash</p></div>
<p>Three years ago, I rendered a <a href="http://brian.shaler.name/digg/heatmap/">large heat map</a> representing almost 100,000 Digg users and the 300,000 friendships between them. I used PHP/GD2 to render the image and it took quite a while to render. Due to the difficulty of redrawing it, the heat map was never updated. It would have been great if the heat map reflected current information, but instead it got to live on as a snapshot taken in 2007.</p>
<p>Since then, I’ve wondered about ways of rendering heat maps on the fly, ideally using the visitor’s CPU. Finally, in November, I was able to hack together a highly optimized Flash application that produces pretty awesome-looking heat maps (if I do say so myself) within a second or two.</p>
<p><a href="http://shazam.bitgravity.com/stuff/heatmap/">Check it out</a></p>
<img src="http://feeds.feedburner.com/~r/datarealization/~4/5Ch4poXV2l4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://datarealization.com/2010/07/05/heat-maps-in-flash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://datarealization.com/2010/07/05/heat-maps-in-flash/</feedburner:origLink></item>
		<item>
		<title>Visualizing Travel</title>
		<link>http://feedproxy.google.com/~r/datarealization/~3/4MSR_1lgho8/</link>
		<comments>http://datarealization.com/2010/07/04/visualizing-travel/#comments</comments>
		<pubDate>Mon, 05 Jul 2010 05:56:41 +0000</pubDate>
		<dc:creator>Brian Shaler</dc:creator>
				<category><![CDATA[data viz on the web]]></category>
		<category><![CDATA[datarealization]]></category>
		<category><![CDATA[philosophy]]></category>

		<guid isPermaLink="false">http://datarealization.com/?p=9</guid>
		<description><![CDATA[Dopplr is a travel social network that helps you find out if your trips are going to coincide with your friends. In addition to alerting you of travel coincidences, Dopplr provides a few basic visualizations of your trips and allows you to export your data in various formats.
These visualizations are fun to look at and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.dopplr.com/">Dopplr</a> is a travel social network that helps you find out if your trips are going to coincide with your friends. In addition to alerting you of travel coincidences, Dopplr provides a few basic visualizations of your trips and allows you to export your data in various formats.</p>
<div id="attachment_10" class="wp-caption alignleft" style="width: 250px"><img src="http://datarealization.com/wp-content/uploads/2010/04/Picture-42.png" alt="Dopplr Travel Data Visualizations" title="Dopplr Travel Data Visualizations" width="240" height="329" class="size-full wp-image-10" /><p class="wp-caption-text">Dopplr Travel Data Visualizations</p></div>
<p>These visualizations are fun to look at and share with your friends, but are they useful? The answer is debatable, but for most of the widgets, the answer is probably no.</p>
<p>Effective visualizations focus on answering questions. You shouldn&#8217;t visualize for the sake of visualizing. You shouldn&#8217;t take data and dump it onto a graph, chart, map, or table without purpose. One Dopplr widget shows your personal velocity by averaging the distances you&#8217;ve traveled over time. The result is an interesting number, and to have your personal velocity compared to a glacier, duck, or butterfly is fun, but what&#8217;s the point?</p>
<p>Dopplr should be commended for taking a step into this space. It&#8217;s fascinating data and it&#8217;s wonderful to see this personal data visualized in fun and interesting ways. But can we take it a step further?</p>
<p>Where Dopplr falls short is in creating visualizations that effectively lead to a better understanding of the data. In order to make people understand, you must first figure out what needs to be understood. What facts can be extracted from this data using visualization? It&#8217;s best to formulate this as a fact being an answer to a question. So what are the questions here?</p>
<div id="attachment_10" class="wp-caption alignright" style="width: 250px">
<div style="text-align: left;">Phoenix: 188 days (51.5%)<br />
San Francisco: 98 days (26.8%)<br />
New York: 28 days (7.6%)<br />
Los Angeles: 14 days (3.8%)<br />
Boulder: 10 days (2.7%)<br />
Austin: 8 days (2.1%)<br />
Las Vegas: 7 days (1.9%)<br />
Chicago: 5 days (1.3%)<br />
Springfield: 4 days (1%)<br />
Philadelphia: 3 days (0.8%)</div>
<p><p class="wp-caption-text">My geographic distribution in 2009</p></div>
<p>After exporting my personal travel data from Dopplr as a JSON object, I explored some ways of learning more from my data. For example, I was curious how much time I spent at home in Phoenix, Arizona &#8212; as a fraction or percent of the year. Since it&#8217;s such a simple question and answer, I didn&#8217;t bother representing it in a very visual way.</p>
<p>This week, I came up with a more complicated question. With the weekend approaching, I was excited to spend an entire weekend in Phoenix. I felt like I hadn&#8217;t have very many full weekends at home. That lead me to want to justify this feeling. How many weekends had I spent at home during the first 3.5 months of 2010? That&#8217;s a question that can be answered effectively through visualization.</p>
<div id="attachment_16" class="wp-caption alignleft" style="width: 387px"><img src="http://datarealization.com/wp-content/uploads/2010/04/Picture-41.png" alt="Visualizing my travel data" title="Visualizing my travel data" width="377" height="398" class="size-full wp-image-16" /><p class="wp-caption-text">Visualizing my travel data</p></div>
<p>Surprisingly, Dopplr doesn&#8217;t have a calendar view (or maybe I just don&#8217;t know where it is). It looks like you can subscribe to an iCal feed for your trips, but it is likely only your <em>upcoming</em> trips. Displaying my travel travel on a calendar made it easy for me to figure out how much time I&#8217;ve spent on the road and how many weekends I&#8217;ve spent at home.</p>
<p>The result made me question how I would define a weekend at home.</p>
<p>If a &#8220;full&#8221; weekend required that my Friday night and early Monday morning not be infringed by travel plans, then I&#8217;ve only had one &#8220;full&#8221; weekend before this weekend (early April). If you don&#8217;t include the Monday morning restriction, I had a full weekend in February, too. If you don&#8217;t restrict based on Friday night travel, I had <em>two</em> weekends at home in February.</p>
<p>This example was fairly basic and trivial until I added the legend, showing which cities each color on the calendar represented. Using the 1 box = 1 day metaphor already present on the left, the legend was also able to double as a sort of bar chart, expressing the number of days I&#8217;ve spent in each city.</p>
<p>It&#8217;s worth noting that even though I set out to visualize my geographic distribution, I didn&#8217;t jump straight to putting the data on a map. Focus on the questions you are trying to answer, and let that dictate the type of visualization you use.</p>
<img src="http://feeds.feedburner.com/~r/datarealization/~4/4MSR_1lgho8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://datarealization.com/2010/07/04/visualizing-travel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://datarealization.com/2010/07/04/visualizing-travel/</feedburner:origLink></item>
		<item>
		<title>Churn Rate Graphs</title>
		<link>http://feedproxy.google.com/~r/datarealization/~3/MdZf6H7fe8w/</link>
		<comments>http://datarealization.com/2010/07/03/churn-rate-graphs/#comments</comments>
		<pubDate>Sat, 03 Jul 2010 09:11:46 +0000</pubDate>
		<dc:creator>Brian Shaler</dc:creator>
				<category><![CDATA[datarealization]]></category>
		<category><![CDATA[sparklines]]></category>

		<guid isPermaLink="false">http://datarealization.com/?p=36</guid>
		<description><![CDATA[Wish a live internet video broadcast, there is usually one key metric: viewer count.
How many people are watching now? And how about now? And now?
The number changes over time, meaning we can easily express how the number changes over time with a time-series line graph. You can see if you are getting an influx of [...]]]></description>
			<content:encoded><![CDATA[<p>Wish a live internet video broadcast, there is usually one key metric: viewer count.</p>
<p><em>How many people are watching now? And how about now? And now?</em></p>
<p>The number changes over time, meaning we can easily express how the number changes over time with a time-series line graph. You can see if you are getting an influx of new viewers or if people are tuning out.</p>
<p>There&#8217;s a critical flaw in this viewer count number, however. If your broadcast is hovering around 1,000 viewers and most people are captivated and sticking around, the line graph will look very similar to a graph representing the same quantity of viewers with new viewers tuning in at the same rate that people are leaving. Those are two very different scenarios that could look exactly alike on a graph.</p>
<div id="attachment_39" class="wp-caption alignright" style="width: 496px"><img class="size-full wp-image-39" title="churn rate" src="http://datarealization.com/wp-content/uploads/2010/05/churn.png" alt="Live Viewership with Churn Rate" width="486" height="69" /><p class="wp-caption-text">Live Viewership with Churn Rate</p></div>
<p>In broadcast television, the rate at which viewers come and go is called &#8220;churn rate&#8221;. This variable can be added to the viewership line graph, for example by plotting new connections and disconnections relative to the viewer count. The wider the line, the higher the churn rate.</p>
<div id="attachment_43" class="wp-caption alignright" style="width: 210px"><img class="size-full wp-image-43" title="churn rate sparkline" src="http://datarealization.com/wp-content/uploads/2010/05/churn_sparkline.png" alt="Churn Rate Sparkline" width="200" height="33" /><p class="wp-caption-text">Churn Rate Sparkline</p></div>
<p>This can also be applied to sparklines, where small, unlabeled graphs can show not only the trend in viewership count, but also the churn rate (as illustrated by the thickness of the colors.</p>
<img src="http://feeds.feedburner.com/~r/datarealization/~4/MdZf6H7fe8w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://datarealization.com/2010/07/03/churn-rate-graphs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://datarealization.com/2010/07/03/churn-rate-graphs/</feedburner:origLink></item>
	</channel>
</rss>

