<?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>Palantir Technologies &#187; visualization</title>
	<atom:link href="http://blog.palantirtech.com/category/visualization/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.palantirtech.com</link>
	<description>Articles from the Engineering Group at Palantir Technologies</description>
	<lastBuildDate>Fri, 23 Jul 2010 23:33:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Haiti: effective recovery through analysis</title>
		<link>http://blog.palantirtech.com/2010/04/05/haiti-effective-recovery-through-analysis/</link>
		<comments>http://blog.palantirtech.com/2010/04/05/haiti-effective-recovery-through-analysis/#comments</comments>
		<pubDate>Mon, 05 Apr 2010 21:58:56 +0000</pubDate>
		<dc:creator>Ari</dc:creator>
				<category><![CDATA[Human-Computer Symbiosis]]></category>
		<category><![CDATA[palantir]]></category>
		<category><![CDATA[problemspace-government]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://blog.palantirtech.com/?p=1336</guid>
		<description><![CDATA[
Visualizing SMS hotspots in days following the earthquake in Palantir.
Screenshot courtesy of Palantir Technologies

[Editor's Note: an edited version of this post first appeared on O'Reilly's Radar blog.]
The prologue was an earthquake of unexpected magnitude and location that left 250,000 dead.
As computer scientists and technologists, we&#8217;re used to dealing with large numbers in the abstract. Expressed [...]]]></description>
			<content:encoded><![CDATA[<div style='float: right; margin-left:15px; margin-bottom: 15px; text-align: center; width: 300px'><a href="/wp-content/uploads/2010/03/haiti.png"><img src="/wp-content/uploads/2010/03/haiti-thumb.png" alt="" title="haiti" width="300" height="210" class="alignnone size-medium wp-image-1468" /></p>
<div style='text-align: center; font-size: 0.8em'>Visualizing SMS hotspots in days following the earthquake in Palantir.</div>
<div style='text-align: center; font-size: 0.6em'>Screenshot courtesy of Palantir Technologies</div>
<p></a></div>
<p><em>[Editor's Note: an edited version of this post <a href="http://radar.oreilly.com/2010/04/good-data-cuts-through-the-cha.html">first appeared on O'Reilly's Radar blog</a>.]</em></p>
<p>The prologue was an earthquake of unexpected magnitude and location that left 250,000 dead.</p>
<p>As computer scientists and technologists, we&#8217;re used to dealing with large numbers in the abstract. Expressed in human terms, the mind-boggling numbers of 250,000 dead, 300,000 injured and over 1 million people left homeless are hard to comprehend. </p>
<p>Hit the link to read more about how effective data management and analysis is crucial to recovery efforts and see specific examples of data about the situation in Haiti modeled in Palantir Government.<br />
<span id="more-1336"></span></p>
<h2>Chapter One: Rescue</h2>
<p>There was one glimmer of hope in this sea of tragedy: the world&#8217;s reaction. In the early hours and days after the quake, the focus was on pinpointing, triaging, and rescuing those in grave danger. Since those first harrowing hours, <a href="http://en.wikipedia.org/wiki/Humanitarian_response_to_the_2010_Haiti_earthquake"> the world has made plain its willingness to help the people of Haiti</a>.  Supplies of money, food, medicine, fresh water, and volunteers have been pouring into Haiti and fundraising efforts are on-going around the world.</p>
<p>Technology also played an early, crucial role, with <a href="http://www.mission4636.org/">Mission 4636</a>, <a href="http://instedd.org/">InSTEDD</a>  and <a href="http://haiti.ushahidi.com/reports/submit">Ushahidi</a> reacting lighting-fast to create a data collection system that enabled people in trouble to quickly communicate their urgent needs to rescuers and relief workers . If you haven&#8217;t already read it, Lukas Biewald&#8217;s piece, <a href="http://radar.oreilly.com/2010/03/how-crowdsourcing-helped-haiti.html">How crowdsourcing helped Haiti&#8217;s relief efforts</a>, is a great look at those first, and most urgent efforts to collect data and synthesize information about the situation on the ground.</p>
<h2>Chapters Two Through Many: Recovery</h2>
<div style='float: right; margin-left:15px; margin-right: 15px'>
<a href="/wp-content/uploads/2010/03/p-hti0366.jpg"><img src="/wp-content/uploads/2010/03/p-hti0366-thumb.jpg" alt="" title="p-hti0366" width="300" height="200" class="alignnone size-medium wp-image-1475" /></a><br/></p>
<div style='text-align: center; font-size: 0.8em'>The extent of the devastation in Haiti.</div>
<div style='text-align: center; font-size: 0.6em'>Photo courtesy of Marko Kokic / ICRC / American Red Cross</div>
</div>
<p>Unfortunately, even partial recovery in Haiti will take years at the bare minimum.<a href="http://www.miamiherald.com/2010/01/17/1429872/vice-president-joe-biden-stresses.html"> U.S. Vice President Joe Biden stated on 16 January</a> that President Obama &#8220;does not view this as a humanitarian mission with a life cycle of a month. This will still be on our radar screen long after it&#8217;s off the crawler at CNN. This is going to be a long slog.&#8221;   </p>
<h3>Building the Deep, Big Picture</h3>
<p>The recovery from a disaster of this magnitude presents some important tasks in the sphere of information technology: coordination of effort, triaging those most in need, and getting good data into the hands of decision makers and aid workers.</p>
<p>Here&#8217;s a partial list of aid, relief, and rescue organizations currently in Haiti, gleaned from <a href="http://en.wikipedia.org/wiki/2010_Haiti_earthquake#Rescue_and_relief_efforts">Wikipedia</a>: </p>
<ul>
<li>An Argentine military field hospital</li>
<li>The Red Cross/Crescent, in various forms</li>
<li>The US military</li>
<li>Multiple UN agencies</li>
<li>Remnants of the Haitian government</li>
<li>The French navy</li>
<li>Sri Lankan relief workers</li>
<li>At least 2000 rescuers from 43 different groups (along with 161 search dogs)</li>
</ul>
<p>A wealth of collaborators like this presents some unique challenges around information fusion: unlike business competitors or opposing sides of a war, the different groups <em>want</em> to share as much information as possible to achieve their common goal.  A unified organization, like a single national military will have pre-existing methods to model and share their <a href="http://en.wikipedia.org/wiki/Situational_awareness">situational awareness</a>. That is not the case in Haiti: this is a collection of groups coming together to form an ad-hoc relief force. Everything from differences in human languages, database schema, collection methodology, and problem domain make most of the datasets seemingly disjoint from the others.</p>
<p>However, each organization has a produced a fairly detailed picture of the parts of Haiti that they are interacting with.  Each organization also wants to consume every other&#8217;s organization&#8217;s detailed knowledge of the situation.  To act effectively, they need to integrate that knowledge into a common operating picture that accurately models the situation on the ground yesterday, today, and tomorrow.</p>
<h3>Analyzing the Haiti situation using Palantir Government</h3>
<p>Our reaction to the earthquake was to try to help in the best way we knew how.  We set up a <a href="http://haiti.paas.palantirtech.com/">publicly available instance of our Palantir Government product</a>, already loaded with relevant data, for use by aid workers and organizations working in Haiti.  Using relevant, open-source data we&#8217;ve started modeling a picture of what&#8217;s going in Haiti.  </p>
<p>Our first cut was to include the locations and names of collapsed buildings, Internally Displaced People (IDP) camps, and Misson 4636 SMS messages, among others.  We also added in map layers that let us see what administrative zone any point on the map is located in.</p>
<p>Having mapped the data into this model, users have access to it through a suite of visualization, analysis, querying, and collaboration tools that allow them to get useful answers to practical questions.  Here are some examples:</p>
<ul>
<li>Which administrative sectors have had the most SMS requests for food in the past 24 hours?</li>
<li>What collapsed buildings are there that may contained hazardous materials that will require special cleanup?</li>
<li>Are any IDP camps near enough to these hazmat sites to warrant special precautions or moving the residents?</li>
</ul>
<p>We&#8217;ve created a video showing all the pieces put together into a seamless whole, using live data in our publicly available Haiti instance:</p>
<div style='text-align: center;'>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="480" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="id" value="banner" /><param name="quality" value="high" /><param name="bgcolor" value="#000000" /><param name="src" value="http://www.palantirtech.com/_ptwp_live_ect0/wp-content/themes/ptcom/swf/fvp.swf?movieurl=hhttp://media.palantirtech.com/government/videos/haiti/haiti2.flv" /><embed src="http://www.palantirtech.com/_ptwp_live_ect0/wp-content/themes/ptcom/swf/fvp.swf?movieurl=http://media.palantirtech.com/government/videos/haiti/haiti2.flv" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="480" movieurl="http://media.palantirtech.com/government/videos/haiti/haiti2.flv"/></object>
</div>
<h2>The Next Chapter: Flooding</h2>
<div style='float: right; margin-left:15px; margin-bottom: 15px; width: 300px; text-align: center;'>
<a href="/wp-content/uploads/2010/03/p-hti0508.jpg"><img src="/wp-content/uploads/2010/03/p-hti0508-thumb.jpg" alt="" title="p-hti0508" width="300" height="199" class="alignnone size-medium wp-image-1472" /></a><br/></p>
<div style='text-align: center; font-size: 0.8em'>A view of the water point at the Citee Renault camp  in Port-au-Prince, Haitii</div>
<div style='text-align: center; font-size: 0.6em'>Photo courtesy of Joe Lowry / IFRC / American Red Cross</div>
</div>
<p>From the <a href="http://www.redcross.org/portal/site/en/menuitem.1a019a978f421296e81ec89e43181aa0/?vgnextoid=0fe6e0b8da8b6210VgnVCM10000089f0870aRCRD">Red Cross website</a>: </p>
<blockquote><p>      “We’re racing against the clock with hurricane season just around the corner,” said Jean Pierre Taschereau, a Red Cross disaster expert just back from Haiti. “Getting semi-permanent structures in place as well as trenches for sanitation latrines will be critically important.”</p></blockquote>
<p>From <a href='http://www.abc.net.au/lateline/content/2010/s2844832.htm'>&#8220;Quake-ravaged Haiti faces flooding&#8221;</a>:</p>
<blockquote><p>
The UN wants to move 200,000 people out of overcrowded camps like this one. The Haitian government is trying to find land. It&#8217;s identified five sites outside of the Haitian capital, but those five sites are about 200 hectares and by the UN&#8217;s estimates 600 hectares will be needed to house the people it plans to move safely to have proper drainage when the rainy season finally arrives.
</p></blockquote>
<p>Haiti&#8217;s rainy season is notorious for causing flooding.  Now, with the infrastructure of the country destroyed, flood season will be more dangerous than usual.  Not only are the normal structures that protect people from the waters gone, but they&#8217;ve moved out of the ruins of Port-au-Prince to hastily constructed IDP camps, some of which are sitting in the flood plains of Haiti&#8217;s waterways.</p>
<p>The essential question facing relief workers: <em>Which of the approximately 2500 IDP camps are most at risk from flooding?</em></p>
<p>In a place like the United States, an earthquake response and recovery team could engage the services and expertise of the US Geological Survey,  which maintains the <a href="http://waterdata.usgs.gov/nwis">National Water Information System</a>, a warehouse of detailed information about all things water in this country. No such luck in Haiti, where the closest thing to the USGS is the <a href="http://www.cnigs.ht/">Centre National de l&#8217;Information Géo-Spatiale</a>.  A quick look at their website shows that they didn&#8217;t really make it through the earthquake. (In the video, we feature a picture of what&#8217;s left of their facility &mdash; it&#8217;s not pretty).</p>
<p>Since we&#8217;re starting from square one we put together data from the <a href="http://www.agc.army.mil/Haiti/index.html">Army Geospatial Center</a>, <a href="http://ochaonline.un.org/tabid/6412/language/en-US/Default.aspx">the UN</a>, <a href="http://www.noaanews.noaa.gov/stories2010/20100119_haiti.html">NOAA</a>, Haiti-based NGOs, a number of academic papers, and even <a href="http://www.flickr.com/photos/tags/earthquake/map?&#038;fLat=18.5873&#038;fLon=-72.3666&#038;zl=6&#038;order_by=recent">geo-tagged photos from Flickr</a>.  The time it took to integrate this data? About six hours.  Time it took to do the analysis?  About seven minutes.  Amount of that work that is reusable?  All of it.</p>
<p>Check out this video for a walk-through of the analysis:</p>
<div style='text-align: center;'>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="480" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="id" value="banner" /><param name="quality" value="high" /><param name="bgcolor" value="#000000" /><param name="src" value="http://www.palantirtech.com/_ptwp_live_ect0/wp-content/themes/ptcom/swf/fvp.swf?movieurl=http://media.palantirtech.com/government/videos/haiti/haiti_flooding.flv" /><embed src="http://www.palantirtech.com/_ptwp_live_ect0/wp-content/themes/ptcom/swf/fvp.swf?movieurl=http://media.palantirtech.com/government/videos/haiti/haiti_flooding.flv" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="480" movieurl="http://media.palantirtech.com/government/videos/haiti/haiti_flooding.flv"/></object>
</div>
<p>The best way to improve this analysis will be to add more detailed information about flooding, gathered from the field.  We&#8217;re looking into getting new conduits of information into the Haiti instance to make this a reality as the rains really pick up.</p>
<h2>A Call To Action</h2>
<p>If you&#8217;d like to help us, we&#8217;re accepting new data sources, analyses, and contact with relief organizations.</p>
<p>Volunteers, supplies, and goodwill are only the raw ingredients to recovery; it&#8217;s the efficient and timely application of those resources to Haiti&#8217;s most pressing problems that will change lives and make recovery a reality instead of just a good intention.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.palantirtech.com/2010/04/05/haiti-effective-recovery-through-analysis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Palantir Technologies Demo Reel: screenshots, round 3</title>
		<link>http://blog.palantirtech.com/2009/09/29/the-palantir-technologies-demo-reel-screenshots-round-3/</link>
		<comments>http://blog.palantirtech.com/2009/09/29/the-palantir-technologies-demo-reel-screenshots-round-3/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 18:53:27 +0000</pubDate>
		<dc:creator>Ari</dc:creator>
				<category><![CDATA[fun]]></category>
		<category><![CDATA[palantir]]></category>
		<category><![CDATA[swing]]></category>
		<category><![CDATA[user interface]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://blog.palantirtech.com/?p=1185</guid>
		<description><![CDATA[Software engineering is a craft that blends science and art. This fact is easy to overlook as the artistic aspects are often eclipsed by discussions of the science and technology behind what we do.
This is not one of those times:  the art in software engineering is most evident when building compelling visual interfaces, something [...]]]></description>
			<content:encoded><![CDATA[<p>Software engineering is a craft that blends science and art. This fact is easy to overlook as the artistic aspects are often eclipsed by discussions of the science and technology behind what we do.</p>
<p>This is not one of those times:  the art in software engineering is most evident when building compelling visual interfaces, something Palantir knows a thing or two about. </p>
<p>A demo reel is an industry term in the movie business &mdash; a short reel that acts as a portfolio when applying for jobs, a highlight reel of the author&#8217;s visual career.  We&#8217;re not in the movie business, we&#8217;re in the software business.  We do, however, use moving pictures to tell stories, stories backed by data &mdash; this is our demo reel: two-and-a-half minutes of data visualization and user interface eye-candy (<i><span style='font-size: 0.9em'>It has pounding music &#8212; you may want to put on headphones or turn down your speakers.</span></i>):</p>
<div style='text-align: center;'>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="480" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="id" value="banner" /><param name="quality" value="high" /><param name="bgcolor" value="#000000" /><param name="src" value="http://www.palantirtech.com/_ptwp_live_ect0/wp-content/themes/ptcom/swf/fvp.swf?movieurl=http://media.palantirtech.com/palantir_demo_reel_final.mp4" /><embed src="http://www.palantirtech.com/_ptwp_live_ect0/wp-content/themes/ptcom/swf/fvp.swf?movieurl=http://media.palantirtech.com/palantir_demo_reel_final.mp4" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="480" movieurl="http://media.palantirtech.com/palantir_demo_reel_final.mp4"></embed></object>
</div>
<p><i><span style='font-size: 0.9em'>The movie will take a few seconds to load.  It&#8217;s 800&#215;600, so expanding to full-screen is suggested. We&#8217;ve done our best to create a streamable-yet-good-looking video.  The compression artifacts are there, but shouldn&#8217;t be too distracting.  In a real Palantir client, there are no compression artifacts and everything looks even better than it does here.</span></i></p>
<p>The Palantir family of products is much more that just pretty pictures; we have the <a href="http://www.palantirtech.com/government/videos/whitevideos">underlying intelligence infrastructure</a> to make those realtime animations possible and (more importantly) <b><i>meaningful</i></b>.  That said, we sure do think they&#8217;re pretty.</p>
<p>By the way, if you&#8217;re interested in the progression of our interfaces, this not the first time we&#8217;ve posted eye candy: we posted <a href="http://blog.palantirtech.com/2008/07/04/palantir-screenshots-round-two/">a set of updated screenshots</a> a little over a year ago; think of this as the next installment in the series.</p>
<p>And yes, it&#8217;s really all <a href="http://java.sun.com/docs/books/tutorial/ui/features/index.html">Java Swing</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.palantirtech.com/2009/09/29/the-palantir-technologies-demo-reel-screenshots-round-3/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Palantir Finance Applied to Log4J Data</title>
		<link>http://blog.palantirtech.com/2009/08/26/palantir-finance-applied-to-log4j-data/</link>
		<comments>http://blog.palantirtech.com/2009/08/26/palantir-finance-applied-to-log4j-data/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 07:22:42 +0000</pubDate>
		<dc:creator>Andrew C.</dc:creator>
				<category><![CDATA[enterprise engineering]]></category>
		<category><![CDATA[user interface]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://blog.palantirtech.com/?p=948</guid>
		<description><![CDATA[In a previous post, Eric W. covered how we analyze polled system health information. Now we’ll look at pushed information, in the form of logging events.

We had two problems to solve: how to store structured data with a logging message, and how to analyze the collected data.

Analysis is the easy part: just use Palantir! More details below the fold.]]></description>
			<content:encoded><![CDATA[<p>In a <a href="http://blog.palantirtech.com/2009/02/23/palantir-monitoring-server-where-build-beats-buy/" mce_href="http://blog.palantirtech.com/2009/02/23/palantir-monitoring-server-where-build-beats-buy/">previous post</a>, Eric W. covered how we analyze polled system health information.  Now we&#8217;ll look at <em>pushed</em> information, in the form of logging events.</p>
<p><strong>Use Cases &amp; Constraints</strong></p>
<p>We decided on three kinds of questions we wanted to answer:</p>
<ul>
<li>What is the health of the deployment?
<ul>
<li>Example: What errors have occurred in the last 24 hours?</li>
</ul>
</li>
<li>Which parts of the platform are our users engaged with?
<ul>
<li>Example: How much time do users spend in each application?</li>
</ul>
</li>
<li>How is our server performing over time?
<ul>
<li>Example: What is the average wait on a search query?</li>
</ul>
</li>
</ul>
<p>The chief constraint was that we build our platform on <a href="http://logging.apache.org/log4j/" mce_href="http://logging.apache.org/log4j/">Log4J</a>. We already use Log4J all over the project, so converting the logging was out of the question.  Besides, Log4J provides a guideline for the kind of metadata our events should support, and Log4J makes it easy to record events to a database.</p>
<p>That left us with two problems to solve: how to store structured data with a Log4j message, and how to analyze the collected data.</p>
<p>Analysis is the easy part: just use Palantir!  After all, a sequence of logging events has a lot in common with a time series.  The rest is explained below.</p>
<p><span id="more-948"></span></p>
<p><strong>Recording Structured Data</strong></p>
<p>Consider the problem of plotting usage by a user on a given day.  The simplest approximation is to log an event every time an application is closed, and provide the time spent in the application with that event.  Posting the information as an unstructured String&#8211;e.g. “Andrew spent 46 seconds in Chart&#8221;–makes it difficult to later extract the data for analysis.  To solve this problem we developed the class <code>RichLogEntry</code>.</p>
<p><code>RichLogEntry</code>s contain a human-readable message and tagged data in the form of a set of key/value pairs, such as {duration, 46}, {user, Andrew}.  This adds to the up-front cost since log messages become more complex, but the benefit is that the analysis engine can easily and generically access data in events.</p>
<p>Furthermore, <code>RichLogEntry</code> plays nicely with existing Log4J infrastructure.  <code>Logger</code>s in Log4J already accept an arbitrary <code>Object</code> to pass to <code>Appender</code>s, and Log4J’s default <code>Appender</code>s call <code>toString()</code> on the <code>Object</code>s provided.  For <code>RichLogEntry</code> the <code>toString()</code> is simply the human-readable message. So a call to the logging framework with a <code>RichLogEntry</code> would look like (pseudo-Java):<br />
<code><br />
logger.info( (“Andrew just spent 46 seconds in Chart”,<br />
{“duration” : 46.0, “application” : “Chart”, “user” : “Andrew”}) );<br />
</code></p>
<p>For most <code>Appender</code>s this would produce the human-readable <code>String</code>, but our custom <code>Appender</code> knows how to store the tagged data for later analysis.</p>
<p><strong>Example: Application Usage</strong></p>
<p>We implemented the above (i.e. log a &#8220;duration&#8221; message each time a Palantir application loses focus), and hooked in the data with a Palantir Data Provider plugin.</p>
<p>In the image below, we&#8217;re using our <a href="http://www.palantirfinance.com/apps/instrument.html">Explorer</a> application to analyze the logging data.  Our filter framework combines filtering and visualization into a single application.  The image contains three filters from top to bottom, each containing a blue title bar.  The results of each filter are fed into the filter below it:</p>
<ul>
<li>The top filter separates messages by application and displays statistics for each.  We&#8217;ve selected the Explorer application, so its 144 messages will be fed into the next filter.</li>
<li>The middle filter has a histogram of the number of seconds each Explorer instance was active (in log scale). Each &#8220;bucket&#8221; represents a range of durations, and its height is the number of messages with that duration.  It looks like I usually spend around 10 seconds in Explorer before switching windows. We&#8217;re selecting the gray part of the histogram to avoid skewing our results for the times I&#8217;ve gone <a href="http://en.wiktionary.org/wiki/AFK" mce_href="http://en.wiktionary.org/wiki/AFK">AFK</a> with Palantir running.</li>
<li>The bottom filter counts the number of log events over time.</li>
</ul>
<p><a href="/wp-content/uploads/2009/08/andrew-usage.png" mce_href="/wp-content/uploads/2009/08/andrew-usage.png"><img class="size-full wp-image-1093" src="/wp-content/uploads/2009/08/andrew-usage.png" mce_src="/wp-content/uploads/2009/08/andrew-usage.png" alt="Andrew's InstrumentGroup usage." width="664" /></a></p>
<p>In <a href="http://www.palantirtech.com/finance">Palantir Finance</a>, filters such as these can be saved and used anywhere in the platform.  Let&#8217;s do that, and compare my usage to my coworker Eric L&#8217;s.  Creating a new set of filters for Eric is easy&#8211;I just modify a single filter above to specify him instead of me (the filter isn&#8217;t shown for simplicity&#8217;s sake), and then save a new copy.  Our <a href="http://www.palantirfinance.com/apps/chart.html">Chart</a> application is a good place to view the two series side by side:</p>
<p><a href="/wp-content/uploads/2009/08/usage-comp.png" mce_href="/wp-content/uploads/2009/08/usage-comp.png"><img class="size-full wp-image-1098" src="/wp-content/uploads/2009/08/usage-comp.png" mce_src="/wp-content/uploads/2009/08/usage-comp.png" alt="Andrew and Eric's usage." width="664" /></a></p>
<p>Of course, I&#8217;m the harder worker!</p>
<p><strong>Conclusion</strong></p>
<p>Our logging framework is complete, and we&#8217;ve found many new use cases. We use the framework to:</p>
<ul>
<li>analyze performance metrics across builds of both Palantir products</li>
<li>automatically compile usage reports on deployed installations</li>
<li>import and explore exotic event data sets by running the events through Log4J</li>
</ul>
<p>Building the Log4J analysis framework was valuable, fun and easy; and it demonstrates the flexibility of Palantir Finance for working with arbitrary data sets.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.palantirtech.com/2009/08/26/palantir-finance-applied-to-log4j-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VizWeek 2009: Awards and Workflow</title>
		<link>http://blog.palantirtech.com/2009/08/24/vast09award/</link>
		<comments>http://blog.palantirtech.com/2009/08/24/vast09award/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 11:00:01 +0000</pubDate>
		<dc:creator>Ari</dc:creator>
				<category><![CDATA[problemspace-government]]></category>
		<category><![CDATA[user interface]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://blog.palantirtech.com/?p=1157</guid>
		<description><![CDATA[
We put up a post last year on the 2008 VAST Grand Challenge.  Well, the IEEE VAST Challenge 2009 is over and the awards are in.  We had another strong year, scoring two awards:

Grand Challenge: Analyst’s Tool Choice (Of 48 submissions, only 3 Grand Challenge awards were given)
Intuitive Traffic Visualization and Video Description [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin-left: 15px; margin-bottom: 15px;"><img src="/wp-content/uploads/2009/08/vast2009.jpg" alt="" /></div>
<p>We put up a post last year on the <a href="http://blog.palantirtech.com/2008/07/21/we-bring-data-to-life/">2008 VAST Grand Challenge</a>.  Well, the <a href="http://hcil.cs.umd.edu/localphp/hcil/vast/index.php">IEEE VAST Challenge 2009</a> is over and the awards are in.  We had another strong year, scoring two awards:</p>
<ul>
<li><strong>Grand Challenge: Analyst’s Tool Choice </strong>(Of 48 submissions, only 3 Grand Challenge awards were given)</li>
<li><strong>Intuitive Traffic Visualization and Video Description of the Analysis Process</strong></li>
</ul>
<p>Some background on the event: three years ago, the <a href="http://ieee.org/portal/site">IEEE</a> began an annual conference called <strong>VAST</strong> (<strong>V</strong>isual <strong>A</strong>nalytics in <strong>S</strong>cience and <strong>T</strong>echnology).  The <a href="http://vis.computer.org/VisWeek2009/vast/index.html">VAST symposium</a> focuses on the fundamental research contributions and  real-world application of <a href="http://www.infovis-wiki.net/index.php/Visual_Analytics">visual analytics</a>.  As a part of the conference, the <a href="http://hcil.cs.umd.edu/localphp/hcil/vast/index.php">VAST Challenge</a> allows teams to compete on delivering analytic solutions against a synthetic real-world dataset.</p>
<p>A selection of choice quotes from the judges:</p>
<ul>
<li><em>An award for “highly usable integrated exploration environment”, “efficient analytic exploration platform” or something along these lines would be appropriate.</em></li>
<li><em>Survey Question: How much novelty do you see in this submission (data processing, visualization, interaction, hypothesis generation or evaluation, overall process, etc.)? Answer: More so than novelty was the <span style="text-decoration: underline;">extremely</span> efficient solution approach to this challenge, much more so than other solutions.</em></li>
<li><em>The submission shows two things very clearly: One, it shows the analytical process as being a multi-faceted, simultaneous processing of different information that is quite common among analysts. Two, it shows how multiple perspectives can be displayed on a single monitor, enabling the analyst to visualize what his mind is analyzing. Outstanding!</em></li>
</ul>
<h2>Our submission</h2>
<p>And finally, our submission to the Grand Challenge.  Here we have our overview video, with a link to the full video below:</p>
<div style="text-align: center;">
<p><object id="banner" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="480" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="quality" value="high" /><param name="bgcolor" value="#000000" /><param name="src" value="http://www.palantirtech.com/_ptwp_live_ect0/wp-content/themes/ptcom/swf/fvp.swf?movieurl=http://media.palantirtech.com/government/videos/VAST2009/GC_Intro.flv" /><param name="allowfullscreen" value="true" /><embed id="banner" type="application/x-shockwave-flash" width="640" height="480" src="http://www.palantirtech.com/_ptwp_live_ect0/wp-content/themes/ptcom/swf/fvp.swf?movieurl=http://media.palantirtech.com/government/videos/VAST2009/GC_Intro.flv" allowfullscreen="true" bgcolor="#000000" quality="high"></embed></object></p>
</div>
<p>For an in-depth look at the data and techniques used to make this a reality, check out our full submission in <a href="http://www.palantirtech.com/government/analysis-blog/cyber-counter-intelligence"><em>Finding a Mole: Cyber Counter Intelligence</em></a> on the <a href="http://www.palantirtech.com/government/analysis-blog">Palantir Analysis Blog</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.palantirtech.com/2009/08/24/vast09award/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Model-View-Adapter</title>
		<link>http://blog.palantirtech.com/2009/04/20/model-view-adapter/</link>
		<comments>http://blog.palantirtech.com/2009/04/20/model-view-adapter/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 20:00:17 +0000</pubDate>
		<dc:creator>Kevin</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[javatech]]></category>
		<category><![CDATA[swing]]></category>
		<category><![CDATA[tips and tricks]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://blog.palantirtech.com/?p=210</guid>
		<description><![CDATA[I used to think I understood MVC.  In undergraduate CS programs, MVC is taught as an off-the-shelf pattern, explained once and then ready for use in the real world.  Wikipedia also makes it seem pretty simple:
Model–View–Controller (MVC) is an architectural pattern used in software engineering. Successful use of the pattern isolates business logic [...]]]></description>
			<content:encoded><![CDATA[<p>I used to think I understood MVC.  In undergraduate CS programs, MVC is taught as an off-the-shelf pattern, explained once and then ready for use in the real world.  Wikipedia also makes it seem pretty simple:</p>
<blockquote><p><a href="http://en.wikipedia.org/wiki/Model-view-controller">Model–View–Controller (MVC)</a> is an architectural pattern used in software engineering. Successful use of the pattern isolates business logic from user interface considerations, resulting in an application where it is easier to modify either the visual appearance of the application or the underlying business rules without affecting the other. In MVC, the model represents the information (the data) of the application; the view corresponds to elements of the user interface such as text, checkbox items, and so forth; and the controller manages the communication of data and the business rules used to manipulate the data to and from the model.</p></blockquote>
<p>They go on to show the classic triangle diagram and how it&#8217;s baked into various GUI and web frameworks.  There&#8217;s only one clause in the entire article that hints at something deeper:  &#8220;Though MVC comes in different flavors…&#8221;</p>
<p>Different flavors indeed.  In fact MVC is not just <em>a</em> pattern but a whole family of patterns:  <a href="http://en.wikipedia.org/wiki/Model-view-controller">MVC</a>, <a href="http://en.wikipedia.org/wiki/Model-view-adapter">MVA</a>, <a href="http://en.wikipedia.org/wiki/Model_View_Presenter">MVP</a>, <a href="http://en.wikipedia.org/wiki/Presentation-abstraction-control">PAC</a>, <a href="http://c2.com/cgi/wiki?ModelDelegate">Model-Delegate</a>&#8230;.  It very quickly gets very hairy.</p>
<p>In this article I want to describe one of MVC&#8217;s lesser-known variants, the <a href="http://en.wikipedia.org/wiki/Model-view-adapter">Model-View-Adapter (MVA) pattern</a>, and talk about its advantages over traditional MVC in the context of a Java Swing application.</p>
<p><span id="more-210"></span></p>
<h2>Architecture</h2>
<p>The best place to start is with an architecture diagram.  While vanilla MVC is a triangle:</p>
<div class="postimg"><a href="/wp-content/uploads/2009/04/mvc.png"><img title="mvc" src="/wp-content/uploads/2009/04/mvc.png" alt="Model-View-Controller" /></a></div>
<p>MVA puts the Adapter in a position to strictly mediate between Model and View:</p>
<div class="postimg"><a href="/wp-content/uploads/2009/04/mva.png"><img title="mva" src="/wp-content/uploads/2009/04/mva.png" alt="Model-View-Adapter" /></a></div>
<p>Here a solid line represents a direct relationship while a dashed line represents an indirect relationship via the Observer pattern.  Put another way, the Adapter holds a pointer both to the Model and to the View and directly calls methods on both.  At the same time, it attaches itself as a listener both to the Model and to the View in order to receive events.  It receives property change events from the Model and action events (checkbox ticked, text entered, etc.) from the View, and then routes appropriate changes to the other side.  The Adapter is entirely responsible for keeping the Model and the View in sync; the Model and View are both relatively dumb structures, knowing nothing about the other.</p>
<p>The advantages to organizing code this way are:</p>
<ul>
<li>All &#8220;moving parts&#8221; are centralized in one place, the Adapter.  No worrying about where to add a listener; no hunting around to find isolated listeners.</li>
<li>Separation of concerns between the View and the Adapter.  The View is responsible for layout and visual presentation while the Adapter is responsible for synchronization and the dynamic aspects of the user interface.</li>
<li>Better decoupling between Models and Views.  Specifically, the View doesn&#8217;t need to know anything about the Model.</li>
</ul>
<p>Additionally, while it will never be possible to fully <a href="http://se.ethz.ch/~meyer/publications/patterns/visitor.pdf">componentize </a> any variant of the MVC pattern, MVA is more amenable to componentization and thus more of its implementation can be centralized (in a single class) and reused.  Once componentized, we can augment the basic functionality with things like:</p>
<ul>
<li>Automatic registration and unregistration of listeners when the View enters and exits the Swing component hierarchy, thereby preventing certain kinds of memory leaks.</li>
<li>Automatic unregistration of listeners when the program shuts down.  This can help free up resources like realtime subscriptions.</li>
<li>Method for swapping a new Model object in for an old Model object.</li>
<li>Ability to execute a task without listeners attached, to help prevent event-action-event loops.</li>
</ul>
<p>The downside to using MVA over MVC is that the Adapter tends to take on a lot of the responsibility and can get quite complicated.  But in my experience that can be mitigated by having good conventions about which pieces (M, V, A) are allowed to communicate with which other pieces and at what times.  Enforcing predictable control flow goes a long way toward managing complexity.</p>
<p>Read on for a code-level description of our implementation of the MVA pattern.</p>
<h2>Palantir MVA Implementation</h2>
<p>Our half-componentization of MVA resides in a single abstract class named Adapter:</p>
<pre class="brush: java;">
public abstract class Adapter&lt;ViewType extends Component, ModelType&gt; {
// constructor
protected Adapter(ViewType view, ModelType model); { ... }

/**
* Attach listeners to the View's subcomponents (checkboxes etc.).
* Listeners should be stored as member variables in the Adapter
* subclass.
*/
protected abstract void registerViewListeners();

/**
* Detach the same listeners (member variables) that were
* attached in registerViewListeners().
*/
protected abstract void unregisterViewListeners();

/**
* Attach listener(s) to the Model.
*/
protected abstract void registerModelListeners();

/**
* Detach the same listeners (member variables) that were
* attached in registerModelListeners().
*/
protected abstract void unregisterModelListeners();

/**
* Bring the View fully in synch with the Model.  Typically
* this involves querying state from the Model and
* reconfiguring subcomponents of the View accordingly.
*/
protected abstract void fullSynchronize();

protected ModelType getModel() { ... }
protected ViewType getView() { ... }

// other methods elided
}
</pre>
<p>New View components that want to stay synchronized with a Model must instantiate a subclass of Adapter and implement the abstract methods.  The Adapter parent class (itself an example of the Template Method design pattern) will then call into the appropriate abstract methods at the appropriate times.  For example, after the View is constructed, as soon as it&#8217;s displayed in the Swing component hierarchy the Adapter parent class will automatically call fullSynchronize() (whose implementation should bring the View in line with the Model) and then registerViewListeners() and registerModelListeners(), so the Adapter is poised to react to events.  Likewise, when the View is removed from the component hierarchy (when its containing frame is closed, say), both unregisterViewListeners() and unregisterModelListeners() will be called.  This can help ensure that no memory will be leaked when a long-life-cycle object (like a system-wide singleton) retains a pointer to a short-life-cycle object (the View) via the Observer pattern.</p>
<h2>Dealing With Listener Loops</h2>
<p>One problem that confronts UI developers is the problem of &#8220;listener loops&#8221;:  infinite loops that result when the View fires an event, the Adapter (or Controller) responds to it by setting some property on the Model, and an event is propagated from the Model back to the View, starting the whole cycle over again.</p>
<p>One way to combat this is to make sure your Model only fires events when the value that&#8217;s being set on the Model is different from the value currently stored in the Model.  (This will cut off the infinite loop after one and a half cycles.)  It&#8217;s a good practice but often isn&#8217;t enough, especially when your system is multithreaded and events start to queue up.  You can sometimes get into situations where an M-V-C triplet will thrash forever between two different values for one of the Model&#8217;s properties.</p>
<p>Our solution to this problem is a protected method (on our Adapter base class) called runWithoutViewListeners:</p>
<pre class="brush: java;">
/**
* Guarantees that the job r will be run:
*    - on the Swing thread
*    - with Model listeners attached
*    - with View listeners DEtached
*/
public final void runWithoutViewListeners(final Runnable r) { ... }
</pre>
<p>The implementation of this method checks to make sure the view listeners are attached when it&#8217;s called, detaches them via a call to unregisterViewListeners(), invokes the Runnable, then reattaches the view listeners via a call to registerViewListeners().  The code inside the Runnable can then make whatever changes it wants to the View without perturbing the Model downstream.  Listener loop averted!</p>
<h2>More To Come</h2>
<p>I hope that&#8217;s given you some sense of the territory out there in the wide world of MVC-variants.  In a week or two, Derek will show off some of the work he&#8217;s done on the M piece of the MVA triad related to &#8220;event bubbling.&#8221;  Stay tuned!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.palantirtech.com/2009/04/20/model-view-adapter/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>VizWeek 2008: awards and workflow</title>
		<link>http://blog.palantirtech.com/2008/12/12/vizweek-2008-report/</link>
		<comments>http://blog.palantirtech.com/2008/12/12/vizweek-2008-report/#comments</comments>
		<pubDate>Fri, 12 Dec 2008 09:15:28 +0000</pubDate>
		<dc:creator>Ari</dc:creator>
				<category><![CDATA[palantir]]></category>
		<category><![CDATA[problemspace-government]]></category>
		<category><![CDATA[user interface]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://blog.palantirtech.com/?p=158</guid>
		<description><![CDATA[
As we mentioned in an earlier post, Palantir was recently invited to the IEEE&#8217;s VisWeek in Dayton Ohio, and was honored to be invited to participate in the VAST Interactive Challenge as part of VisWeek.
After winning an award for Interactive Visual Analytic Environment, Palantir was one of three teams selected to participate in the interactive [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; width: 289px; text-align: right"><a href="http://vis.computer.org/VisWeek2008/"><img src="http://vis.computer.org/VisWeek2008/img/logo_vswk.jpg" alt="" /></a></div>
<p>As we mentioned in an <a href="http://blog.palantirtech.com/2008/07/21/we-bring-data-to-life/">earlier post</a>, Palantir was recently invited to the IEEE&#8217;s <a href="http://vis.computer.org/VisWeek2008/">VisWeek</a> in Dayton Ohio, and was honored to be invited to participate in the VAST Interactive Challenge as part of VisWeek.</p>
<p>After <a href="http://vgtc.org/wpmu/vast08/2008/11/04/grand-challenge-award-interactive-visual-analytics-palantir-the-future-of-analysis/">winning an award for Interactive Visual Analytic Environment</a>, Palantir was one of three teams selected to participate in the interactive session from 73 <a href="http://www.cs.umd.edu/hcil/VASTchallenge08/">VAST Challenge</a> entries.  For the challenge, we were given a completely new set of data to analyze.  We had 30 minutes to import 3 disparate datasets into Palantir, 30 minutes to train an analyst that had never used Palantir, and then 2 hours for the analyst to explore the data.</p>
<p>The data for the challenge came from three different sources, with a set of questions to answer for each set of data.  There was an infectious outbreak, a Wikipedia edit war, and an abduction from a city park.  Over the three challenges, there were over 100,000 datapoints to analyze.  All of the data revolved around a fictitious town in Florida, Barracuda Springs, and was linked to the fictitious cult that was the center of the 2008 VAST Challenge.  While two members of our team were importing the three datasets, the third team member was working with our analyst (each of the three teams was given a analyst from a nearby analytical organization).  In 30 minutes, our analyst was able to learn how to conduct relational, temporal, geospatial, and statistical analysis in Palantir.  After the 30 minutes of training, she was able to easily navigate the Palantir workspace, and solve all three challenges.  Below is her work (hit the link to check it out).</p>
<p>Her conclusion was that Palantir was “viciously good software” and that she would be asking her boss if they could acquire Palantir for their work.  Hit the link below to see screenshots and explanations for one of the challenge workflows.</p>
<p>We really enjoyed the VAST Challenge, and our experience at VisWeek.  There were a lot of outstanding papers, posters, and speakers at VisWeek, and we were inspired by many fantastic visualizations that might soon make their way into Palantir&#8217;s Finance and Government Platforms.  We are also looking forward to the <a href="http://www.cs.umd.edu/hcil/VASTchallenge09/">2009 VAST Challenge</a>!<br />
<span id="more-158"></span></p>
<h2>Challenge: Infectious Outbreak</h2>
<p>Our analyst started with the first challenge, analyzing an infectious outbreak in Barracuda Springs.  The notional source of this data was reported school absences, so we see gaps in the timeline for weekends.</p>
<h3>The Outbreak</h3>
<p>She started by searching for all infected houses, and then plotting them geospatially.  She immediately identified that the infection was a 5 week outbreak, peaking in week three, and then tailing off.  With Palantir&#8217;s temporal filters, she quickly identified the first house to have the disease was 208, on Thursday May 5th:</p>
<div class='postimg'><a href="http://blog.palantirtech.com/wp-content/uploads/2008/12/visweek-workflow-outbreak-patient0.jpg"><img src="http://blog.palantirtech.com/wp-content/uploads/2008/12/visweek-workflow-outbreak-patient0.jpg" width="640" /></a></div>
<h3>Week 1 &#8211; starting slow</h3>
<p>Increasing our temporal filter to the first week, we saw that the infection was in the north of Barracuda Springs, isolated in two neighborhoods (points on the map that correspond to selected time range in the timeline (bottom) are highlighted in yellow):</p>
<div class='postimg'><a href="http://blog.palantirtech.com/wp-content/uploads/2008/12/visweek-workflow-week1.jpg"><img src="http://blog.palantirtech.com/wp-content/uploads/2008/12/visweek-workflow-outbreak-week1.jpg" width="640" /></a></div>
<h3>Week 2 &#8211; burning bright in north</h3>
<p>The second week saw much of the north infected, but not yet into the south:</p>
<div class='postimg'><a href="http://blog.palantirtech.com/wp-content/uploads/2008/12/visweek-workflow-week2.jpg"><img src="http://blog.palantirtech.com/wp-content/uploads/2008/12/visweek-workflow-outbreak-week2.jpg" width="640" /></a></div>
<h3>Week 3 &#8211; everyone&#8217;s got it</h3>
<p>The third week shows the infection peaking, and moving to the rest of community. The analyst also noted that the neighborhoods from the first week appear to be clearing up:</p>
<div class='postimg'><a href="http://blog.palantirtech.com/wp-content/uploads/2008/12/visweek-workflow-week3.jpg"><img src="http://blog.palantirtech.com/wp-content/uploads/2008/12/visweek-workflow-outbreak-week3.jpg" width="640" /></a></div>
<h3> Week 4 &#8211; northside burnout</h3>
<p>By week 4, infections are exclusively in the south of Barracuda Springs, and in week 5 the infection clears up:</p>
<div class='postimg'><a href="http://blog.palantirtech.com/wp-content/uploads/2008/12/visweek-workflow-week4.jpg"><img src="http://blog.palantirtech.com/wp-content/uploads/2008/12/visweek-workflow-outbreak-week4.jpg" width="640" /></a></div>
<h3>Hidden Pattern: refusing treatment</h3>
<p>Also of interest was the fact that there are certain geographic areas where the infection lasts for 10 days.  This was an Easter egg put into the data &#8212; the areas of 10 day infections were neighborhoods in the city where the fictitious cult had settled, and they were refusing to take treatment.  Using the histogram, the data leaps out you. We were the only group to discover this:</p>
<div class='postimg'><a href="http://blog.palantirtech.com/wp-content/uploads/2008/12/visweek-workflow-outbreak-cult-families.jpg"><img src="http://blog.palantirtech.com/wp-content/uploads/2008/12/visweek-workflow-outbreak-cult-families.jpg" width="640" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.palantirtech.com/2008/12/12/vizweek-2008-report/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Scatter Plot Quick Select</title>
		<link>http://blog.palantirtech.com/2008/09/16/scatter-plot-quick-select/</link>
		<comments>http://blog.palantirtech.com/2008/09/16/scatter-plot-quick-select/#comments</comments>
		<pubDate>Wed, 17 Sep 2008 04:00:26 +0000</pubDate>
		<dc:creator>Brandon</dc:creator>
				<category><![CDATA[user interface]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://blog.palantirtech.com/?p=112</guid>
		<description><![CDATA[I recently had the opportunity to attend a talk by Ben Shneiderman, a big name in HCI and professor at the University of Maryland. He showed off a bunch of really cool visualizations he&#8217;s invented over the years, aimed at advancing the field of data analysis. One of the visualizations, the Rank-by-Feature framework, looked immediately [...]]]></description>
			<content:encoded><![CDATA[<p>I recently had the opportunity to attend a talk by <a href="http://en.wikipedia.org/wiki/Ben_Shneiderman">Ben Shneiderman</a>, a big name in HCI and professor at the University of Maryland. He showed off a bunch of really cool visualizations he&#8217;s invented over the years, aimed at advancing the field of data analysis. One of the visualizations, the <a href="ftp://ftp.cs.umd.edu/pub/hcil/Reports-Abstracts-Bibliography/2004-13html/2004-13.pdf">Rank-by-Feature framework</a>, looked immediately useful to our product.  It&#8217;s an overview of multidimensional data that uses coloring in a matrix of correlations. I decided to add it into Palantir Finance as a proof-of-concept.</p>
<p>We have a scatter plot in Palantir Finance, but it&#8217;s not designed to compare your data across many variables (called metrics here). I extended it by adding a small triangular matrix control that we call the scatter plot Quick Select. The control gives you a visual overview of the data, and allows you to identify interesting metric pairs and then drill down into a scatter plot for any particular pair.</p>
<p><a href='http://blog.palantirtech.com/wp-content/uploads/2008/09/quick-select.png' title='quick-select.png'><img src='http://blog.palantirtech.com/wp-content/uploads/2008/09/quick-select.png' alt='quick-select.png' /></a></p>
<p>Assume I want to view a set of 10 metrics (shown above). With our regular scatter plot, you have to choose two of these metrics and plot them to see their correlation. If you want to know how every possible pair of metrics correlate, you have to manually perform an <a href="http://en.wikipedia.org/wiki/Big_O_notation">O(n<sup>2</sup>)</a> input operation.</p>
<p>With Quick Select, you enter the metrics once and the triangular matrix is formed. Each square in the matrix represents a pair of metrics, and each square&#8217;s color is the correlation between the pairs.  For example, green is a strong positive correlation, light green a less positive correlation, white is no correlation, and red is a strong anti-correlation.</p>
<p>In the highlighted square above, we&#8217;re comparing <a href="http://en.wikipedia.org/wiki/Percent_return">percent return</a> and <a href="http://en.wikipedia.org/wiki/Correlation">correlation with the S&amp;P 500</a> over the past year.  The red shows a strong negative correlation.  This makes sense in light of recent market behavior: the S&amp;P 500 has not done well over the past year, so companies that were correlated with it also performed poorly, while companies that moved in the opposite direction performed well.</p>
<p>Drilling down to a scatter plot is as simple as clicking on the corresponding square.  Below are 2 of the 45 possible scatter plots defined by this set of 10 metrics. You can quickly jump back and forth between different scatter plots while retaining a nice, condensed overview of the data in the triangular matrix on the left.</p>
<p><a href='http://blog.palantirtech.com/wp-content/uploads/2008/09/quick-select-2.png' title='quick-select-2.png'><img src='http://blog.palantirtech.com/wp-content/uploads/2008/09/quick-select-2.png' alt='quick-select-2.png' /></a></p>
<p><a href='http://blog.palantirtech.com/wp-content/uploads/2008/09/quick-select-3.png' title='quick-select-3.png'><img src='http://blog.palantirtech.com/wp-content/uploads/2008/09/quick-select-3.png' alt='quick-select-3.png' /></a></p>
<p>This prototype took less than a day to write. And it was written from outside the system, using only the pluggability points Palantir Finance provides.  Overall it&#8217;s a powerful visualization component, added as an extension to the Palantir Finance platform, and done in under a day. Pretty cool!</p>
<p> Many thanks to Prof. Shneiderman for the idea.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.palantirtech.com/2008/09/16/scatter-plot-quick-select/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Printing to Plotters in Java</title>
		<link>http://blog.palantirtech.com/2008/08/11/printing-to-plotters-in-java/</link>
		<comments>http://blog.palantirtech.com/2008/08/11/printing-to-plotters-in-java/#comments</comments>
		<pubDate>Tue, 12 Aug 2008 00:00:18 +0000</pubDate>
		<dc:creator>Carl</dc:creator>
				<category><![CDATA[javatech]]></category>
		<category><![CDATA[tips and tricks]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://blog.palantirtech.com/?p=104</guid>
		<description><![CDATA[
Carl juggles with his creation
One of the things our customers love to do is print our beautiful object graphs and tape them to the wall for discussion.  What they hate to do is print 30 pages, line them up, and tape them to a poster one at a time.  So we bought a [...]]]></description>
			<content:encoded><![CDATA[<div style='float: right; width: 300px; text-align: center; margin-left:10px; margin-bottom: 10px'>
<a href='http://blog.palantirtech.com/wp-content/uploads/2008/08/carljuggles-thumb.jpg' title='carljuggles-thumb.jpg'><img src='http://blog.palantirtech.com/wp-content/uploads/2008/08/carljuggles-thumb.jpg' alt='carljuggles-thumb.jpg' /></a><br/><a href='http://blog.palantirtech.com/wp-content/uploads/2008/08/carljuggles-thumb.jpg' title='carljuggles-thumb.jpg'><em>Carl juggles with his creation</em></a></div>
<p>One of the things our customers love to do is print our <a href="http://blog.palantirtech.com/wp-content/uploads/2008/07/pg-timefilter.png">beautiful object graphs</a> and tape them to the wall for discussion.  What they hate to do is print 30 pages, line them up, and tape them to a poster one at a time.  So we bought a <a href="http://en.wikipedia.org/wiki/Plotter">plotter</a>, and I started plotting.</p>
<p>I needed to print directly to a Java <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Graphics.html">Graphics</a> object.  Unfortunately, the available information on large output printing from Java is thin at best.  While there are lots of ways to successfully place ink on paper, I was only able to find one that reliably lets the application pick odd paper sizes that plotters use, like 24&#215;19.7 inches. (The term &#8220;plotter&#8221; used to mean something with pens for printing blueprints and such.  Now it just means a large format printer, commonly printers that can use roll paper as a source.)</p>
<p>One of the first things you&#8217;ll learn when you start working with printing in Java is that a language intended to be all things to all people (i.e., cross-platform) is utterly lousy at tasks highly specific to a given environment, such as printing.  It will not surprise you to hear that native print services on Windows are pretty different from those available on a Mac, which themselves are pretty different from the <a href="http://www.cups.org/">CUPS</a> system common to Unix systems.</p>
<p>So, by and large, you are reduced to the least common denominator of printing.  Part and parcel of this least common denominator is agreeing on what constitutes a piece of paper and sticking to it.  This is fine for people thinking, &#8220;My paper is 8.5 inches wide by 11 inches tall.&#8221;  It poses a bit of a problem for people with plotters who are thinking, &#8220;My paper is 24 inches wide by as many damned inches tall as I need.&#8221;  Even relatively powerful programs like PhotoShop or <a href="http://www.gimp.org/features/">GIMP</a> don&#8217;t seem to support plotters well.  I believe Photoshop works by specifying the exact paper size you want to use, but any technique in which the easiest solution for the user is to pull out a calculator does not meet with my approval.<br />
<span id="more-104"></span></p>
<h2>Advice in a nutshell</h2>
<p>A <a href="http://www.apl.jhu.edu/~hall/java/Swing-Tutorial/Swing-Tutorial-Printing.html ">tutorial by MartyHall</a> provides some valuable insights into printing which I applied to my printing component.  While it didn&#8217;t address my specific issues, props to a well-done starting point.</p>
<p>I&#8217;m starting with the assumption that you&#8217;ve got yourself a class that implements the <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/awt/print/Printable.html">Printable</a> interface so that once the Java printing subsystem is coerced into accepting the appropriate paper size,<a href="http://java.sun.com/j2se/1.5.0/docs/api/java/awt/print/Printable.html#print(java.awt.Graphics,%20java.awt.print.PageFormat,%20int)"> Printable.print(Graphics, PageFormat, int)</a> will be called correctly and your job will print properly.  Since my usage was screen-visible as well as printable, I simplified and asserted that one screen pixel is equivalent to one point (1/72 inch), which is how Java prepares the scaling on the Graphics object passed to Printable.print(&#8230;), thus making printouts look about the size of onscreen displays.  Then, knowing that the printout needed, for example, 1200 vertical pixels/points, I can automatically calculate that I want to use a paper size 18&#8243; tall or so (1200 / 72 dpi = 16.67&#8243; + margins).</p>
<p>Here&#8217;s a summary of the critical steps:</p>
<ol>
<li>Do the math yourself to get the paper size required in points (1/72 of an inch)
<li>Implement the <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/awt/print/Pageable.html">Pageable</a> interface to report page count (usually one) and the <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/awt/print/PageFormat.html">PageFormat</a> using the computed paper size.
<li>Create a <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/awt/print/PrinterJob.html">PrinterJob</a> configured with the correct <a href="http://java.sun.com/j2se/1.5.0/docs/api/javax/print/PrintService.html">PrintService</a>
<li>Set your Pageable on the PrinterJob instance
<li>Optionally display print setup dialog (PrinterJob.printDialog()) recognizing that changes to orientation or paper size will be ignored.
<li>call <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/awt/print/PrinterJob.html#print()">PrinterJob.print()</a>
</ol>
<h3>Generally, don&#8217;t use the standard dialogs</h3>
<p>This might seem contrary to desired behavior, but I found that giving the user access to the usual native or cross-platform print dialogs can be a bit sticky because those are places where the user can alter the selected paper; in order to properly print to roll paper sources, we must override any paper settings the dialogs might provide. Ultimately this can be confusing for the user, but that&#8217;s an unfortunate side effect of supporting plotters.</p>
<h3>Don&#8217;t take any advice too seriously</h3>
<p>We still choose to display the dialog because complex printers like plotters have many options that the users may need to alter and would otherwise have no way to modify.</p>
<h2>StickFigure: looking at plotting in Palantir</h2>
<p>This work didn&#8217;t happen in a vacuum: we have a need to print large graphs for display.  Being able to print them in a large format is one of the simplest and most beloved methods of collaboration.</p>
<p>To give an example of why plotter printing is interesting, we created a stick figure on the graph in Palantir. After creating this monstrosity, we went go print it and examined the layout.  The first layout was with letter-size paper, and just by looking at the head, we could see that it was going to be a lot of pages:</p>
<p><a style='display: block; text-align: center' href='http://blog.palantirtech.com/wp-content/uploads/2008/08/letterzoom.jpg' title='letterzoom-thumb.jpg'><img src='http://blog.palantirtech.com/wp-content/uploads/2008/08/letterzoom-thumb.jpg' alt='letterzoom-thumb.jpg' /></a><a style='display: block; text-align: center' href='http://blog.palantirtech.com/wp-content/uploads/2008/08/letterzoom.jpg' title='letterzoom-thumb.jpg'><em>Zoomed-in view of the head of the stick figure. (click for full image)</em><br/></a></p>
<p>Zooming out to view the entire graph, it&#8217;s clear that it&#8217;s going to be 35 pages!</p>
<p><a style='display: block; text-align: center' href='http://blog.palantirtech.com/wp-content/uploads/2008/08/letter.jpg' title='letterzoom-thumb.jpg'><img src='http://blog.palantirtech.com/wp-content/uploads/2008/08/letter-thumb.jpg' alt='letter-thumb.jpg' /></a><a style='display: block; text-align: center' href='http://blog.palantirtech.com/wp-content/uploads/2008/08/letter.jpg' title='letterzoom-thumb.jpg'><em>Full pagination of the stick figure. (click for full image)</em><br/></a></p>
<p>Even switching to the largest standard paper size only gets us to two sheets:</p>
<p><a style='display: block; text-align: center' href='http://blog.palantirtech.com/wp-content/uploads/2008/08/arche.jpg' title='arche.jpg'><img src='http://blog.palantirtech.com/wp-content/uploads/2008/08/arche-thumb.jpg' alt='arche.jpg' /></a><a style='display: block; text-align: center' href='http://blog.palantirtech.com/wp-content/uploads/2008/08/arche.jpg' title='arche.jpg'><br />
<em>Paginated out to largest standard paper size, still two pages (click for full image)</em></a></p>
<p>When we switch over to using the plotter layout, we finally get to the one sheet we were looking for:</p>
<p><a style='display: block; text-align: center' href='http://blog.palantirtech.com/wp-content/uploads/2008/08/roll.jpg' title='roll-thumb.jpg'><img src='http://blog.palantirtech.com/wp-content/uploads/2008/08/roll-thumb.jpg' alt='roll-thumb.jpg' /></a><a style='display: block; text-align: center' href='http://blog.palantirtech.com/wp-content/uploads/2008/08/roll.jpg' title='roll-thumb.jpg'><br />
<em>Paginated onto a plotter roll. (click for full image)</em></a></p>
<p>And finally, Mr. StickFigure comes to life:</p>
<p><a style='display: block; text-align: center' href='http://blog.palantirtech.com/wp-content/uploads/2008/08/carljuggles.jpg' title='carljuggles.jpg'><img src='http://blog.palantirtech.com/wp-content/uploads/2008/08/carljuggles-med.jpg' alt='carljuggles-med.jpg' /></a><a style='display: block; text-align: center' href='http://blog.palantirtech.com/wp-content/uploads/2008/08/carljuggles.jpg' title='carljuggles.jpg'><em>Carl juggles with his creation</em></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.palantirtech.com/2008/08/11/printing-to-plotters-in-java/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>We bring data to life: Palantir &amp; the VAST Challenge</title>
		<link>http://blog.palantirtech.com/2008/07/21/we-bring-data-to-life/</link>
		<comments>http://blog.palantirtech.com/2008/07/21/we-bring-data-to-life/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 21:54:30 +0000</pubDate>
		<dc:creator>Ari</dc:creator>
				<category><![CDATA[palantir]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://blog.palantirtech.com/?p=100</guid>
		<description><![CDATA[
Palantir has entered the 2008 VAST Challenge.  We present an in-depth look at one of our challenge solutions as the first public example of the Palantir platform in action.
Two years ago, the IEEE began an annual conference called VAST (Visual Analytics in Science and Technology).  The VAST symposium focuses on the fundamental research [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; width: 289px; text-align: right"><a href="http://vis.computer.org/VisWeek2008/VAST/index.html"><img src="http://vis.computer.org/VisWeek2008/img/logo_vast_on.jpg" alt="" /></a></div>
<p>Palantir has entered the 2008 <a href="http://www.cs.umd.edu/hcil/VASTchallenge08/">VAST Challenge</a>.  We present an in-depth look at one of our challenge solutions as the first public example of the Palantir platform in action.</p>
<p>Two years ago, the <a href="http://ieee.org/portal/site">IEEE</a> began an annual conference called <strong>VAST</strong> (<strong>V</strong>isual <strong>A</strong>nalytics in <strong>S</strong>cience and <strong>T</strong>echnology).  The <a href="http://vis.computer.org/VisWeek2008/VAST/index.html">VAST symposium</a> focuses on the fundamental research contributions and  real-world application of <a href="http://www.infovis-wiki.net/index.php/Visual_Analytics">visual analytics</a>.  As a part of the conference, the <a href="http://www.cs.umd.edu/hcil/VASTchallenge08/">VAST Challenge</a> allows teams to compete on delivering analytic solutions against a synthetic real-world dataset.  </p>
<p>Each year, the organizers build a very vast (pun intended) dataset from scratch.  The data is entirely fictional but mirrors real-world use cases and scenarios. This year&#8217;s dataset is about a new religious movement that started on an imaginary Caribbean island (cleverly titled <em>Isla del Sueño</em>, or &#8220;Island of Dreams&#8221;) situated between Florida and Cuba. There are four subsets of the synthetic data: the Wikipedia page for the movement and its associated edit and discussion pages; landing and Coast Guard interdiction records for boats leaving Isla del Sueño for Florida/Mexico; cell phone records from the island; and RFID tracking data from people in a building that was attacked with an IED.</p>
<p>The types of questions asked in the problem sets are qualitative questions that require answers backed by data. These are the sorts of questions that don&#8217;t yield answers using a machine-learning/data-mining approach nor can an unassisted human get these answers by simple inspection of the data. They require some sort of <a href="http://blog.palantirtech.com/2007/03/16/human-computer-symbiosis/">human-computer symbiosis</a> to solve.</p>
<p>To solve the VAST problems, we assembled an ad-hoc team of analysts &mdash;  composed of a mix of engineers, in-house professional analysts, and one senior executive &mdash; and asked them to use the Palantir Government software to <a href="http://blog.palantirtech.com/2007/12/04/what-do-we-do/">extract insights from the data</a>. </p>
<p>The results speak for themselves: <a href="http://www.palantirtech.com/vast2008/">the complete set of Palantir&#8217;s VAST solutions are available here</a>.  </p>
<p>Read on for an in-depth look at how we deconstructed and solved one of the problems.</p>
<p><span id="more-100"></span></p>
<h2>Analyzing Cell Phone Networks or &#8220;Where&#8217;s <span style="text-decoration: line-through;">Waldo</span> Ferdinando?&#8221;</h2>
<p><a href="http://www.palantirtech.com/vast2008/Palantir-Palantir-Phone/index.html">Mini-Challenge 3</a> asks a couple of questions about the command and control structure of the religious movement by examining cell phone data from the island:</p>
<ul>
<li>What is the Catalano/Vidro social network, as reflected in the cell phone call data, at the end of the time period?</li>
<li>Characterize the changes in the Catalano/Vidro social structure over the ten day period.</li>
</ul>
<p>We started out with a CSV containing 9,385 rows that look like this, logging ten-days of calls:</p>
<div style="width: 100%; text-align: center;"><img title="Source Data" src="http://blog.palantirtech.com/wp-content/uploads/2008/07/data.png" alt="" /></div>
<p>A tabular format like this is about as far from &#8220;visual&#8221; or &#8220;analytic&#8221; as one can get; not even a social-network-analysis-savant could glean something interesting from the data in that form. In addition to the spreadsheet, we were given the approximate geographic locations of each cell tower and the following intelligence (from the contest&#8217;s synthetic dataset):</p>
<blockquote><p>“We have medium confidence that Ferdinando Catalano is identifier 200.  Close relatives and associates he would be calling would include David Vidro, Juan Vidro, Jorge Vidro, and Estaban Catalano.  We believe Ferdinando would call brother Estaban most frequently.  We also believe that David Vidro coordinates high-level Paraiso activities and communications. ”</p></blockquote>
<p>Using nothing but that spreadsheet and the power of Palantir, we were able to uncover secretive attempts by member of the Paraiso movement’s highest echelon to conceal their cell phone traces by switching devices.</p>
<div style="float:left; width: 378px; text-align: left"><a href="http://www.palantirtech.com/vast2008/Palantir-Palantir-Phone/Video/index.htm"><img title="Screenshot teaser of Mini-Challenge 3 Solution Video" src="http://blog.palantirtech.com/wp-content/uploads/2008/07/phone-video-screenshot.png" alt="" /></a></div>
<p>Most importantly, the analytic team did this without needing to be experts in the technical aspects of social network analysis, database queries, or Java. Instead, Palantir allows users &mdash; people who have a deep understanding of how the world works but are not technically savvy &mdash; to get answers backed by data.  So answers to high-level questions such as, “Who were these people talking to during those last three days of network silence?” are actually easy to extract from the dataset. We realize that this sounds awfully hand-wavy, abstract, and vague, but the videos and explanations show exactly how it&#8217;s done.</p>
<p>Here&#8217;s the two-minute long <a href="http://www.palantirtech.com/vast2008/Palantir-Palantir-Phone/Video/index.htm">Mini Challenge 3 Video</a> and <a href="http://www.palantirtech.com/vast2008/Palantir-Palantir-Phone/index.html">full explanation</a>.  The ten-minute long <a href="http://www.palantirtech.com/vast2008/Palantir-Palantir-Grand/Video/index.htm"><em>Palantir VAST 2008 Grand Challenge</em> video</a> gives a brief overview of Palantir and then presents all four solutions.</p>
<p>Palantir Finance, our product that has not yet been released, brings a similar level of power, flexibility, and high-level analytics to the realm of finance.  Stay tuned for a sneak peek of those capabilities in the coming months.</p>
<p>If you found that video as much fun as we do, check out <a href="http://www.palantirtech.com/vast2008/">the other demonstrations of our ability to make data come to life</a>. The <a href="http://www.palantirtech.com/vast2008/Palantir-Palantir-Boat/Video/index.htm">“Boat Video”</a> about migration data does an especially good job of showing off Palantir’s relational analysis abilities and its open-platform geospatial integration. Each of the write-ups includes additional screenshots that aren’t in the videos.</p>
<p>Welcome to the future of analysis!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.palantirtech.com/2008/07/21/we-bring-data-to-life/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Palantir Screenshots: Round Two</title>
		<link>http://blog.palantirtech.com/2008/07/04/palantir-screenshots-round-two/</link>
		<comments>http://blog.palantirtech.com/2008/07/04/palantir-screenshots-round-two/#comments</comments>
		<pubDate>Fri, 04 Jul 2008 20:52:10 +0000</pubDate>
		<dc:creator>Ari</dc:creator>
				<category><![CDATA[palantir]]></category>
		<category><![CDATA[user interface]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://blog.palantirtech.com/?p=95</guid>
		<description><![CDATA[About 10 months ago, we released set of nine screenshots from our applications.  Time has passed and we have not stopped working; the look of the applications has evolved.  Here are some updated screenshots:

&#160;&#160;


Time Filtering

The graph is linked to the histogram which allows view filtering based on time ranges.
Financial Dashboard



The dashboard allows a [...]]]></description>
			<content:encoded><![CDATA[<p>About 10 months ago, we released set of nine screenshots from our applications.  Time has passed and we have not stopped working; the look of the applications has evolved.  Here are some updated screenshots:</p>
<div style='text-align: center'>
<a href='http://blog.palantirtech.com/wp-content/uploads/2008/07/pg-timefilter.png'><img align='middle' src="http://blog.palantirtech.com/wp-content/uploads/2008/07/pg-timefilter.png" alt="" title="pg-timefilter" width="290" style="padding: 8px" /></a>&nbsp;<a href='http://blog.palantirtech.com/wp-content/uploads/2008/07/hh-dashboard.png'><img align='middle' src="http://blog.palantirtech.com/wp-content/uploads/2008/07/hh-dashboard.png" alt="" title="hh-dashboard" width="290" style="padding: 8px" /></a><br/><a href='http://blog.palantirtech.com/wp-content/uploads/2008/07/hh-prettyfilters.png'><img align='middle' src="http://blog.palantirtech.com/wp-content/uploads/2008/07/hh-prettyfilters.png" alt="" title="hh-prettyfilters" width="290" style="padding: 8px"/></a>&nbsp;<a href='http://blog.palantirtech.com/wp-content/uploads/2008/07/pg-flows.png'><img align='middle' src="http://blog.palantirtech.com/wp-content/uploads/2008/07/pg-flows.png" alt="" title="pg-flows" width="290" style="padding: 8px" /></a><br/>
</div>
<p><span id="more-95"></span></p>
<h2>Time Filtering</h2>
<p><a href='http://blog.palantirtech.com/wp-content/uploads/2008/07/pg-timefilter.png'><img align='middle' src="http://blog.palantirtech.com/wp-content/uploads/2008/07/pg-timefilter.png" alt="" title="pg-timefilter" width="600"/></a></p>
<p>The graph is linked to the histogram which allows view filtering based on time ranges.</p>
<h2>Financial Dashboard</h2>
<div style='text-align'>
<a href='http://blog.palantirtech.com/wp-content/uploads/2008/07/hh-dashboard.png'><img align='middle' src="http://blog.palantirtech.com/wp-content/uploads/2008/07/hh-dashboard.png" alt="" title="hh-dashboard" width="600"/></a>
</div>
<p>The dashboard allows a financial analyst to follow a configurable set of widgets delivering real-time financial data.</p>
<h2>Instrument Groups</h2>
<div style='text-align'>
<a href='http://blog.palantirtech.com/wp-content/uploads/2008/07/hh-prettyfilters.png'><img align='middle' src="http://blog.palantirtech.com/wp-content/uploads/2008/07/hh-prettyfilters.png" alt="" title="hh-prettyfilters" width="600"/></a>
</div>
<p>The Instrument Groups tool lets analysts build up dynamic groups of financial instruments using expressive queries, filters, and calculations</p>
<h2>Flows</h2>
<div style='text-align'>
<a href='http://blog.palantirtech.com/wp-content/uploads/2008/07/pg-flows.png'><img align='middle' src="http://blog.palantirtech.com/wp-content/uploads/2008/07/pg-flows.png" alt="" title="pg-flows" width="600"/></a>
</div>
<p>More impressive in an animation than still image, the flows tool allow for the intuitive visualization of resources flowing on between entities.  The configurable threshold enables the filtering of the &#8216;noise&#8217; of smaller payments.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.palantirtech.com/2008/07/04/palantir-screenshots-round-two/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
