<?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>Orbifold &#187; data-visualization</title>
	<atom:link href="http://visualizationtools.net/default/tag/data-visualization/feed/" rel="self" type="application/rss+xml" />
	<link>http://visualizationtools.net/default</link>
	<description>Think. Visualize. Understand.</description>
	<lastBuildDate>Wed, 18 Jan 2012 09:08:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>A Nuget package for Processing.js</title>
		<link>http://visualizationtools.net/default/nuget-processing/</link>
		<comments>http://visualizationtools.net/default/nuget-processing/#comments</comments>
		<pubDate>Wed, 07 Dec 2011 08:12:23 +0000</pubDate>
		<dc:creator>Francois Vanderseypen</dc:creator>
				<category><![CDATA[Data Visualization]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Web client]]></category>
		<category><![CDATA[data-visualization]]></category>
		<category><![CDATA[Processing]]></category>

		<guid isPermaLink="false">http://visualizationtools.net/default/?p=5679</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>Nuget packages make it easy to add functionality to your applications. Much like adding a WCF service reference, you can add (or update) with a few clicks all sorts of libraries and tools to a Visual Studio project. If you have a website (MVC or standard webforms) you can add various JavaScript libraries; jQuery, RazorJS, fastJSON&#8230;and it&#8217;s so much easier than figuring out the download page, getting it into the correct folder and so on. Since I&#8217;m a big fan of data visualization libraries it&#8217;s a pleasure to have easy access to D3.js in this way, but I was missing for a long time access to Processing.js through the Nuget library. Not anymore. After a bit looking around and agreeing with the good people at <a title="Processing.js" href="http://processingjs.org/" target="_blank">Processing </a>I created/uploaded <a title="Processing.js" href="http://nuget.org/packages/Processing.js" target="_blank">a Nuget package for processing.js</a>.</p>
<p><a href="http://nuget.org/packages/Processing.js"><img class="alignnone size-medium wp-image-5681" title="Nuget Processing.js " src="http://visualizationtools.net/default/wp-content/uploads/2011/12/NugetProcessingScreenshot-300x274.png" alt="" width="300" height="274" /></a></p>
<p>&nbsp;</p>
<h1>1-2-3 example</h1>
<p>Create a website in Visual Studio (I&#8217;ve taken a MVC one here) and right-click on your project, go to the Nuget package manager and search for &#8216;Processing.js&#8217; in the online section</p>
<p><a href="http://nuget.org/packages/Processing.js"><img class="alignnone size-medium wp-image-5682" title="Nuget Package Manager" src="http://visualizationtools.net/default/wp-content/uploads/2011/12/NugetPackageManager-259x300.png" alt="" width="259" height="300" /></a></p>
<p><a href="http://nuget.org/packages/Processing.js"><img class="alignnone size-medium wp-image-5683" title="Nuget Package Manager" src="http://visualizationtools.net/default/wp-content/uploads/2011/12/NugetPackageManager2-300x129.png" alt="" width="300" height="129" /></a></p>
<p>Click on &#8216;Install&#8217; and a couple of JS libraries will be added to your Scripts folder.</p>
<p>Either in your aspx/html or in the &#8216;_layout.cshtml&#8217; file add a reference to the &#8216;Processing.js&#8217; library. You can simply drag-drop the file from the Solution Browser into the text editor and Visual Studio will automatically create the correct reference. From this point on the possibilities are endless, have a look at the <a title="Processing exhibition" href="http://processingjs.org/exhibition" target="_blank">Processing ehibition</a> for instance.</p>
<p>For example, if you wish to add a clock to your page change the &#8216;Index.cshtml&#8217; to the following:</p>
<div class="wp_codebox">
<table>
<tr id="p56791">
<td class="line_numbers">
<pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
</pre>
</td>
<td class="code" id="p5679code1">
<pre class="xml" style="font-family:monospace;">@{
    ViewBag.Title = &quot;Home Page&quot;;
}
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;h2<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    A simple processing.js clock
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/h2<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;p<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;canvas</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;canvas1&quot;</span> <span style="color: #000066;">width</span>=<span style="color: #ff0000;">&quot;200&quot;</span> <span style="color: #000066;">height</span>=<span style="color: #ff0000;">&quot;200&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/canvas<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;/p<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;script</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;script1&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;text/javascript&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
    // Simple way to attach js code to the canvas is by using a function
    function sketchProc(processing) {
        // Override draw function, by default it will be called 60 times per second
        processing.draw = function () {
            // determine center and max clock arm length
            var centerX = processing.width / 2, centerY = processing.height / 2;
            var maxArmLength = Math.min(centerX, centerY);
&nbsp;
            function drawArm(position, lengthScale, weight) {
                processing.strokeWeight(weight);
                processing.line(centerX, centerY,
        centerX + Math.sin(position * 2 * Math.PI) * lengthScale * maxArmLength,
        centerY - Math.cos(position * 2 * Math.PI) * lengthScale * maxArmLength);
            }
&nbsp;
            // erase background
            processing.background(224);
&nbsp;
            var now = new Date();
&nbsp;
            // Moving hours arm by small increments
            var hoursPosition = (now.getHours() % 12 + now.getMinutes() / 60) / 12;
            drawArm(hoursPosition, 0.5, 5);
&nbsp;
            // Moving minutes arm by small increments
            var minutesPosition = (now.getMinutes() + now.getSeconds() / 60) / 60;
            drawArm(minutesPosition, 0.80, 3);
&nbsp;
            // Moving hour arm by second increments
            var secondsPosition = now.getSeconds() / 60;
            drawArm(secondsPosition, 0.90, 1);
        };
&nbsp;
    }
&nbsp;
    var canvas = document.getElementById(&quot;canvas1&quot;);
    // attaching the sketchProc function to the canvas
    var p = new Processing(canvas, sketchProc);
    // p.exit(); to detach it
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/script<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;div</span> <span style="color: #000066;">style</span>=<span style="color: #ff0000;">&quot;height: 0px; width: 0px; overflow: hidden;&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre>
</td>
</tr>
</table>
</div>
<p>Run/display this page and you&#8217;ll get something like the following:</p>
<p><a href="http://nuget.org/packages/Processing.js"><img src="http://visualizationtools.net/default/wp-content/uploads/2011/12/NugetSimpleProcessingApp-300x143.png" alt="" title="Nuget Simple Processing App" width="300" height="143" class="alignnone size-medium wp-image-5687" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://visualizationtools.net/default/nuget-processing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The job of the future</title>
		<link>http://visualizationtools.net/default/job-of-the-future/</link>
		<comments>http://visualizationtools.net/default/job-of-the-future/#comments</comments>
		<pubDate>Mon, 17 Oct 2011 16:54:09 +0000</pubDate>
		<dc:creator>Francois Vanderseypen</dc:creator>
				<category><![CDATA[Data Visualization]]></category>
		<category><![CDATA[data-visualization]]></category>

		<guid isPermaLink="false">http://visualizationtools.net/default/?p=5672</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><iframe src="http://player.vimeo.com/video/29684853?title=0&amp;byline=0&amp;portrait=0" width="400" height="225" frameborder="0" webkitAllowFullScreen allowFullScreen></iframe>
<p><a href="http://vimeo.com/29684853">The Value of Data Visualization</a> from <a href="http://vimeo.com/columnfive">Column Five</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>Finding the needle in the haystack is now more pressing than before. The more data we produce and have access to, the more the need for something intelligent to get the information out of the data becomes important. Obviously the ever-increasing amount of data and the shift to global data stores like the cloud have increased the need for better visualizations techniques and innovative thinking.But the amount of noise has also increased and the need to choose through it. How to filter out of the billions of tweets the stuff that matters to you? The only way to do that is by choosing; what matters to you is related to the things that you choose for and which have a direct relevance in your life (personal or professional). Before the filtering comes the criteria and the criteria are dictated by the business or personal context combined with a more-or-less precise definition of what the solution or answer should be like. Usually a question has many answers or complementary answers, much like a mathematical problem has a one or more solutions depending on the target space within which the solution should be found. </p>
<p>Although I find it refreshing to see that data visualization and presentation techniques are now more important than ever before, it&#8217;s not for myself the reason why this field is interesting or fertile. Data visualization is useful as a product for the end-user or consumer but is equally well interesting for the producer or creative inventor because it combines various fields. Like nothing else you need to be partly an artist, partly a scientist to come up with something beautiful yet meaningful and interesting. You need to understand sometimes deep technical details and exotic programming concepts while having a good understanding of the business context and what a customer needs. You need to fathom the (business) question and at the same time have a vision, which usually means a mixture of intuition and expertise. You need to understand the language of different people and sub-cultures, read through minor details, yet see through the details and go beyond to deliver a broad concept. Having a bird&#8217;s-eye view while knowing the murky details on a low-level demands a mind which can stretch across all levels of thinking. Can you make the simple complex and the complex simple? Can you see color where others see mathematical formula&#8217;s? Can you see sound where others see data and shapes? Can you see code where someone sees motion? Can you see patterns where others see noise? Can you see information where others see data?</p>
<ul>
<li><a href="http://www.visualizing.org/" title="Visualizing" target="_blank">Visualizing.org</a></li>
<li><a href="http://www.informationisbeautiful.net/" title="Information is beautiful" target="_blank">Information is beautiful</a></li>
<li><a href="http://datavisualization.ch/showcases/" title="Data Viz Showcase" target="_blank">Data Visualization Showcase</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://visualizationtools.net/default/job-of-the-future/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Particle systems and Silverlight</title>
		<link>http://visualizationtools.net/default/silverlight-particle-systems/</link>
		<comments>http://visualizationtools.net/default/silverlight-particle-systems/#comments</comments>
		<pubDate>Sun, 26 Jun 2011 17:17:55 +0000</pubDate>
		<dc:creator>Francois Vanderseypen</dc:creator>
				<category><![CDATA[Data Visualization]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[data-visualization]]></category>
		<category><![CDATA[Layout algorithms]]></category>

		<guid isPermaLink="false">http://visualizationtools.net/default/?p=5515</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<div class="image-wrap portfolio"><a href="/default/wp-content/uploads/2011/06/image5.png" rel="prettyPhoto" title="Sample particle system"><span class="zoom"></span>
<img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="/default/wp-content/uploads/2011/06/image_thumb5.png" border="0" alt="image" width="530" height="368" />
</a></div><p style="clear:both;">&nbsp;</p><p style="clear:left;">&nbsp;</p>
<p>Recently a customer requested a particle simulation with the intention to investigate correlations and the effect of multiple ‘attractors’. The real, underlying issue in this demand is the fact that certain situations and systems are governed by laws (differential equations) which cannot be solved exactly and require a dynamic system to search for critical coefficients. These coefficients result in (semi) stable configurations or highlight boundary conditions inside which things make sense.</p>
<p>The problem with these kind of systems is the scalability which has two aspects; <strong>the visualization</strong> which doesn’t scale well with the retained graphics pipeline of WPF/SL/WP7 on the one hand&nbsp; and the O(N*N) <strong>calculation of interactions between particles</strong>.</p>
<p>Regarding the visuals there is really a lot to consider:</p>
<ul>
<li>if you inherit from a baseclass like FrameworkElement or Control or even UserControl you carry around with each and every particle a whole lot of stuff; data binding, styling, event and other infrastructure. While all these things are really great in an LOB, one doesn’t usually need all this when dealing with (lots of) particles</li>
<li>typically the underlying surface needs to be a Canvas but this element also brings along many gears; the retained rendering system, the measure/layout mechanics, styling and more. Maybe the bonus you miss when bypassing the Canvas is the ability to easily integrate zoom and pan in an application.</li>
<li>how much user-interaction is required, are mouse-events necessary or is it a ‘let it run’ system? Here as well, you need to consider carefully the implications (especially related to the scalability of the app).</li>
</ul>
<p>With respect to the simulation or calculation part things are more straightforward but you also need to think about</p>
<ul>
<li>the possibility to use F# for the more mathematically oriented parts. The disadvantage is however the need to constraint your model to make sure things talk to C#, or you have to go the full nine yards in F# (talking to XAML is still a disaster in this case).</li>
<li>how to optimize the calculations and to make sure that inside loops you break early and branch as much as possible</li>
<li>dropping unnecessary properties of the particles and make the particle system as lightweight as possible</li>
</ul>
<p>Within the Silverlight/WP context my experience is that if you use the Canvas/UIElement combination you easily hit a wall around <strong>500 particles</strong> due to the way the rendering engine is functioning and the fact that the UIElement (or FrameworkElement) are too ‘heavy’. The inter-particle calculation will still run OK with 500 particles but the end-result is that it’s not a good solution altogether.</p>
<p>One can keep the Canvas as underlying surface and render particles as inherited Shape items but this doesn’t push the boundary much.</p>
<p>A step further is to replace the Canvas with a bitmap and use direct pixel printing. This is easily done with the <a href="http://writeablebitmapex.codeplex.com/" target="_blank">WriteableBitmapEx</a> project you can find on CodePlex. This boosts your rendering to <strong>5000 particles</strong> if you drop interactions. However, if you switch on inter-particle forces you hit a calculational wall around <strong>1500 particles</strong> which is still way better than the retained rendering solution but still somewhat underwhelming.</p>
<p>So, as a next step it would be great to use parallel processing for the algorithmic part but unfortunately there is no task parallel processing library (TPL) for Silverlight (though somewhat made an unofficial port). Another possibility would be to use MailboxProcessor of F# but it would entail threading issues and an altogether more difficult system.</p>
<p>Various samples and libraries are available for XNA and Windows Phone which allow one to create particle effects but</p>
<ul>
<li>the often use sprites or similar techniques to minimize the particle count. The results are usually very good but the aim in the context of games is usually to create a certain effect rather than to give a physically correct simulation.</li>
<li>they often do not exhibit inter-particle forces. If they do the particle count is low.</li>
<li>they focus on effects and not physics</li>
</ul>
<p>See also the Flint-sharp library which is a port of the Flash/Flex library.</p>
<p>The conclusion is that one can perform simulations and develop particle system in Silverlight if the need is not above, say, a thousand particles. Above this threshold things become more difficult and Silverlight as a medium becomes less suitable for this type of task. Obviously there are high-tech solutions on the basis of C++ and GPU instructions but this was outside my client’s scope (and my technical know-how as well).</p>
<div class="bluebox">
<a href="/downloads/stuff/SilverlightParticles.zip">Attached is simple and fun particle system on the basis of WriteableBitmapEx and lightweight particles.</a>
</div>
<p><strong>Note</strong>: on different level you need to note in the attached simulation sample that</p>
<ul>
<li>the average speed varies a lot while the amount of interacting particles stays the same</li>
<li>the <strong>ergodic phenomenon</strong> if easily shown; that the average velocity over the sample equals the average of one item in time</li>
<li>it&#8217;s quite difficult to create stable configurations; which mimics well how the real world is also constantly influenced by quantum fluctuations</li>
</ul>
<h2>References</h2>
<ul>
<li><a href="http://www.damonpayne.com/post/2011/02/07/Task-Parallel-Library-Ported-to-Silverlight-4.aspx" target="_blank">TPL library ported to Silverlight 4</a></li>
<li><a href="http://create.msdn.com/en-US/education/catalog/sample/particle" target="_blank">Particle system for games (XNA &amp; WP)</a></li>
<li><a href="http://code.google.com/p/flint-sharp/" target="_blank">Flint for C#</a></li>
<li><a href="http://writeablebitmapex.codeplex.com/" target="_blank">WriteableBitmapEx on CodePlex</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://visualizationtools.net/default/silverlight-particle-systems/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Parallel coordinates in WPF</title>
		<link>http://visualizationtools.net/default/parallel-coordinates-in-wpf/</link>
		<comments>http://visualizationtools.net/default/parallel-coordinates-in-wpf/#comments</comments>
		<pubDate>Sun, 08 Mar 2009 05:35:37 +0000</pubDate>
		<dc:creator>Francois Vanderseypen</dc:creator>
				<category><![CDATA[Diagramming]]></category>
		<category><![CDATA[Diverse]]></category>
		<category><![CDATA[data-visualization]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://www.orbifold.net/default/?p=1886</guid>
		<description><![CDATA[About some customer challenge, multi-dimension data visualization and a custom WPF control which allows you to visualize ANY type of CSV/spreadsheet data.]]></description>
			<content:encoded><![CDATA[<p><strong>March 20th update</strong>: you can <a href="http://www.orbifold.net/downloads/paragraph/paragraph.demo.zip">download </a>a demo of this control now and Denis has also <a href="http://denisvuyka.wordpress.com/2009/03/20/first-wpf-parallel-coordinates-control/" target="_blank">posted an article</a> on this development.</p>
<p><a href="http://www.orbifold.net/default/wp-content/uploads/accumulation.png"><img class="alignleft size-medium wp-image-1887" title="accumulation" src="http://www.orbifold.net/default/wp-content/uploads/accumulation-300x238.png" alt="accumulation" width="300" height="238" /></a>How to picture a 5-dimensional sphere or a see the correlation ofÂ  112-dimensional weather data? The answer was found in 1885 when <a title="Wikipedia reference" href="http://en.wikipedia.org/wiki/Parallel_coordinates" target="_blank">parallel coordinates </a>were invented and later refined in 1959 throughÂ  <a title="The man and his story." href="http://www.math.tau.ac.il/~aiisreal/" target="_blank">Inselberg</a>. The idea is actually very simple, given some N-dimensional space of data you draw N parallel lines and each line has its own scale. Plot a given data point on these lines by creating a line between the N point of this multi-didmensional point. In this way you get a line per data point and the series of given data points are mapped to a series of lines on the graph. The situation being much like projective geometry where we also find a back-and-forth thinking between lines and points in space. The good thing about such a representation is that if points have some accumulation in a particular dimension you will see it because lines will accumulate on the axis representing this dimension (see adjacent image). This kind of correlation can usually only be detected through statistical analysis, but what do you do if you want to record or supervise data which continuously comes in from real-time systems? This would mean a continuous mathematical analysis of the sampled data and this would entail some very custom algorithm bound to the particular context.</p>
<p>A customer of ours recently challenged us to implement the parallel coordinates visualization in WPF. While quite straightforward at first sight it proved to be more difficult than we initially thought for two reasons:</p>
<ul>
<li><strong>non-numeric data</strong>: what to do if you have some string data in one of the dimensions? Say, you want to visualize in one of the dimensions a timestamp or telephone numbers or names of patients.</li>
<li><strong>how to emphasize the accumulation points</strong> in the graph? While in the screenshots above you can actually see well the discrete tendence in the second dimension, the screenshot on the right bestows you with a challenge to detect it.</li>
</ul>
<p>The first problem was tackled through an internal mapping of the data which spreads the non-numeric data across an axis. The drawback of this is that at various levels one has to switch between the actual</p>
<p><a href="http://www.orbifold.net/default/wp-content/uploads/nocorrelation.png"><img class="alignright size-medium wp-image-1890" title="Where is it?" src="http://www.orbifold.net/default/wp-content/uploads/nocorrelation-300x236.png" alt="Where is it?" width="300" height="236" /></a></p>
<p>data and the internal representation for labels, line hit during hovering, the histogram (see below) and any calculation in general. The second was more difficult and entailed some analysis of the data and various visual alternatives to attract the attention of the user (human interpreter of the data). The end-result is an <strong>histogram </strong>which like a rotated bar chart on the axis graphs the relative amount of crossings on the axis. The histogram actually shows also the opposite of an accumulation, since (see the second axis in the screenshot below) an equal spreading of the histogram&#8217;s rectangles means an equal distribution of the lines across the dimension axis.</p>
<p><a href="http://www.orbifold.net/default/wp-content/uploads/histogram.png"><img class="alignleft size-medium wp-image-1894" title="Histogram" src="http://www.orbifold.net/default/wp-content/uploads/histogram-300x239.png" alt="Histogram" width="300" height="239" /></a>Other minor features we added to this data visualization are; the possibility to hover over the graph and see the actual data of the multi-dimensional points, datagrid binding and editing, customization of look &amp; feel through dependency properties, swapping data axes, scaling data vertically on a particular axis.</p>
<p>Probably the most satisfactory moment for myself during the development was at the point when it became clear that just <strong>any CSV/spreadsheet data can be bound to the parallel graph visualization</strong>. Indeed, due to the internal mapping mechanism one can present any type of tabular data and as a proof of concept I mocked some random spreadsheet in Excel which was subsequently visualized without a hitch.</p>
<p>Stocks &amp; shares anyone? Let me know.</p>
<p><a href="http://www.orbifold.net/default/wp-content/uploads/datagrid.png"><img class="aligncenter size-medium wp-image-1895" title="More visual beauty" src="http://www.orbifold.net/default/wp-content/uploads/datagrid-300x150.png" alt="More visual beauty" width="300" height="150" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://visualizationtools.net/default/parallel-coordinates-in-wpf/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
<!-- This Quick Cache file was built for (  www.visualizationtools.net/default/tag/data-visualization/feed/ ) in 0.77626 seconds, on Feb 9th, 2012 at 7:28 am UTC. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on Feb 9th, 2012 at 8:28 am UTC -->
