<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
 
  <title>Steve Eichert</title>
  <subtitle>A really swell blog built with Webby</subtitle>
  
  <updated>2009-02-19T11:08:52-05:00</updated>
  <author>
    <name>Steve Eichert</name>
    <email>steve.eichert@gmail.com</email>
  </author>
  <id>http://steveeichert.com/blog//</id>
  
  <link rel="self" href="http://feeds.feedburner.com/SteveEichert" type="application/atom+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry>
    <title>How Scala Prevented My House From Burning Down</title>
    <link href="http://feedproxy.google.com/~r/SteveEichert/~3/6jEpiL4zxz8/scala-prevented-my-house-from-burning-down.html" />
    <id>tag:steveeichert.com/blog/,2009-02-19:1235057072</id>
    <updated>2009-02-19T10:24:32-05:00</updated>
    <content type="html">&lt;p&gt;My interest in Scala can be traced back to a &lt;a href="http://cbcg.net/talks/Scala.pdf"&gt;Phlly Lambda presentation given by Toby Dipasquale&lt;/a&gt; last January.  More recently I was meeting with someone about a data visualization project and they mentioned they were using Scala for a couple of startups they were working on. For those of you unfamiliar with Scala here&amp;#8217;s a blurb from the &lt;a href="http://www.scala-lang.org/"&gt;Scala language website&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;#8220;Scala is a general purpose programming language designed to express common programming patterns in a concise, elegant, and type-safe way. It smoothly integrates features of object-oriented and functional languages. It is also fully interoperable with Java.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The thing that made Scala particularly interesting to me was that it was a functional language, and that it&amp;#8217;s fully interoperable with Java.  I&amp;#8217;ve been using a couple Java libraries for some projects I&amp;#8217;m working on and I haven&amp;#8217;t been enjoying it all that much.   My hopes were that I could use Scala to make those projects more enjoyable, while at the same time learning a functional language (although it&amp;#8217;s not a purely functional language).&lt;/p&gt;
&lt;p&gt;To help me on my journey of learning Scala I asked &lt;a href="http://twitter.com/codeslinger"&gt;@codeslinger&lt;/a&gt; and &lt;a href="http://twitter.com/markchadwick"&gt;@markchadwick&lt;/a&gt; for Scala book recommendations.  Although, the pickings are slim, they both recommended &lt;a href="http://www.artima.com/shop/programming_in_scala"&gt;Programming in Scala&lt;/a&gt;.  A couple weeks ago I bought the PDF form of the book and began working my way through it.  For anyone interesting in learning Scala I&amp;#8217;d definitely recommend it.  It covers a lot of ground, and is well written.  Oh, and it also &lt;strong&gt;prevented my house from burning down&lt;/strong&gt;!&lt;/p&gt;
&lt;p&gt;Since I have the PDF version of the book I&amp;#8217;ve been printing out chapters periodically (reading on a computer screen sucks).  This past Saturday morning I was sitting around watching my kids make a complete mess of the house and decided that I wanted to continue on with &lt;a href="http://www.artima.com/shop/programming_in_scala"&gt;Programming in Scala&lt;/a&gt;.  As such I printed out the next chapter.  As I walked upstairs into my office (which is in the attic) I began to smell something out of the ordinary.  As I went further up the smell got worse.  I didn&amp;#8217;t think much of it, and grabbed the printouts and headed back downstairs.  When I got downstairs I noticed the entire chapter didn&amp;#8217;t print out, so I went back to the computer and re-printed the chapter.  When I made my way upstairs the second time the smell was again worse then before and also more identifiable.  It smelled like an electrical fire!  It turns out that one of my computers more or less blew up, had ejected it&amp;#8217;s CD tray and had smoke bellowing out the front.  I have no way of knowing what would have happened had I not been so interested in reading more about Scala, but I&amp;#8217;m glad that Scala and &lt;a href="http://www.artima.com/shop/programming_in_scala"&gt;Programming Scala&lt;/a&gt; hooked me and led me upstairs to catch my exploding computer early.&lt;/p&gt;
&lt;p&gt;So the moral of the story is that if you&amp;#8217;re looking for a language to learn, consider Scala&amp;#8230;.it just might prevent your house from burning down! :)&lt;/p&gt;
&lt;p&gt;Cheers,&lt;br /&gt;
Steve&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SteveEichert/~4/6jEpiL4zxz8" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://steveeichert.com/blog/2009/02/19/scala-prevented-my-house-from-burning-down.html</feedburner:origLink></entry>
  
  <entry>
    <title>Network Visualization on the Web</title>
    <link href="http://feedproxy.google.com/~r/SteveEichert/~3/JpFW0MOukBc/network-visualization-on-the-web.html" />
    <id>tag:steveeichert.com/blog/,2009-01-30:1233335533</id>
    <updated>2009-01-30T12:12:13-05:00</updated>
    <content type="html">&lt;p&gt;Over the course of the last couple months I&amp;#8217;ve been doing quite a bit of investigation and experimentation of existing network visualization libraries.  There are a number of libraries available, some open source, some built specifically for the web, others meant for a desktop environment, some in java, others in flash, and round and round we go.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve talked to quite a few people who have specific expertise in technologies for doing network visualization as well, ranging from flash to javascript to Silverlight to java.  My conclusion thus far is that large scale network visualizations (300+ nodes) is hard.  Once you cross the 100 node mark, you begin to have serious problems with laying out the network in a way that is usable by the user of the system that the visualization is within.  Drop on top of that the desire to make the visualization interactive (zoom, click, drag, etc), as well as the desire to have the visualization software figure out the best layout for the network itself and you have a pretty difficult problem to solve.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m currently doing some prototypes myself using Silverlight.  I don&amp;#8217;t love the idea of using Silverlight since I doubt the penetration of Silverlight is as great as some have proclaimed, but, the advantages it offers are hard to look past.  As a long time .NET/C# developer I&amp;#8217;m very comfortable with the development tools used to build Silverlight applications, as well as the language within which to do so, C#.  Silverlight appears to offer some pretty decent performance, and I suspect that it will get better as the  VM improves.  The major disadvantage of Silverlight, which I don&amp;#8217;t know the validity of, is it&amp;#8217;s lack of existing user base.  Since it&amp;#8217;s relatively new, and not many sites use it, I suspect the installed base of Silverlight is much less then something like Flash.&lt;/p&gt;
&lt;p&gt;The other piece of software that I&amp;#8217;ve been spending a bit of time with is graphvis.  Graphvis is good at creating network visualizations, and supports a number of different layout algorithms.  Unfortunately the output isn&amp;#8217;t always great, and it most certainly isn&amp;#8217;t very interactive.  What I&amp;#8217;m experimenting with is using graphvis to pre-compute the network layout, and then feeding that positional information into the Silverlight visualization.  The primary advantage will be that the Silverlight app won&amp;#8217;t have to figure out the initial layout, however, it will be able to handle all the nice visualization and interactivity that&amp;#8217;s desired.  The question still remains, is Silverlight up to the challenge?  Or is flash, processing, or a pure java applet more appropriate/capable?  Only time will tell&amp;#8230;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SteveEichert/~4/JpFW0MOukBc" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://steveeichert.com/blog/2009/01/30/network-visualization-on-the-web.html</feedburner:origLink></entry>
  
</feed>
