<?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>non-random ramble &#187; thoughtblog</title>
	<atom:link href="http://jimbarritt.com/non-random/category/thoughtblog/feed/" rel="self" type="application/rss+xml" />
	<link>http://jimbarritt.com/non-random</link>
	<description>adventures in code</description>
	<lastBuildDate>Tue, 20 Sep 2011 13:16:52 +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>Agile On the Beach</title>
		<link>http://jimbarritt.com/non-random/2011/09/20/agile-on-the-beach/</link>
		<comments>http://jimbarritt.com/non-random/2011/09/20/agile-on-the-beach/#comments</comments>
		<pubDate>Tue, 20 Sep 2011 13:16:52 +0000</pubDate>
		<dc:creator>Jim Barritt</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[thoughtblog]]></category>
		<category><![CDATA[thoughtworks]]></category>

		<guid isPermaLink="false">http://jimbarritt.com/non-random/?p=799</guid>
		<description><![CDATA[I spent two days recently enjoying being in Cornwall attending and presenting at the first Cornish agile conference Agile on the beach. The event was a great success with world class speakers (you can see the full list on the website), and an actual beach party on the thursday night with a band (All the [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.agileonthebeach.com/images/agile-on-the-beach-2011-logo2.jpg" width="500" alt="" /></p>
<p>I spent  two days recently enjoying being in Cornwall attending and presenting at the first Cornish agile conference <a href="http://www.agileonthebeach.com/">Agile on the beach</a>.</p>
<p>The event was a great success with world class speakers (you can see the <a href="http://agileonthebeach.com/programme/speakers">full list</a> on the website), and an actual beach party on the thursday night with a band (<a href="http://www.allthefires.co.uk/">All the fires</a>) and hogroast. The organisation was also superb, co-ordinated by <a href="http://www.eventcornwall.co.uk/">Event cornwall</a>. From the attendee perspective, It was great to meet and talk to such a good turn out of passionate developers and companies.</p>
<p>I have some involvement in the genesis of the event. My dad, <a href="http://thelastresponsiblemoment.com/">Mike Barritt </a> is working for a company called <a href="http://www.oxin.co.uk/">Oxford innovation</a> who are helping companies in cornwall to develop and grow. At some point a while ago, I had connected him with <a href="http://twitter.com/#!/roger_marlow">Roger Marlow</a> and suggested that a good way to help everyone get into agile was to host a conference. A year or so later, and I found myself down in cornwall amongst some of the people I have massive respect for in the industry. The event has also had a great sponsorship and support from <a href="http://www.thoughtworks.com">ThoughtWorks</a>, which makes me really appreciate what an amazing company it is to work for.</p>
<p>Some highlights for me were hearing <a href="http://twitter.com/#!/mpoppendieck">Mary and Tom Poppendieck</a> talking about Lean Startup and running a value stream mapping workshop, <a href="http://twitter.com/#!/KevlinHenney">Kevlin Henney</a> reminding us all that software should be FUN, and <a href="http://twitter.com/#!/jasongorman">Jason Gorman</a> firing us up to keep our focus on quality codemanship and staying out of the &#8220;Anaerobic&#8221; zone when developing code. It was also great to see everyone getting down to the code in a dojo with <a href="http://twitter.com/#!/JonJagger">Jon Jagger</a>, to have the fantastic <a href="http://agilecoach.typepad.com/">Rachel Davies</a> helping people with common agile adoption problems, and have <a href="http://twitter.com/#!/@sf105">Steve Freeman</a> talking about TDD. Quite a line-up!</p>
<p>Unfortunately I couldn&#8217;t attend my colleague <a href="http://twitter.com/#!/boicy">James Lewis&#8217;</a> talk as we were speaking at the same time, but I have seen the slides and it sounded awesome, so I hope to catch it another day. Parallell to us was <a href="http://twitter.com/#!/roger_marlow">Roger</a> so I missed his talk too, but it sounded like he had a good time.</p>
<p>I managed to make a presentation myself, talking through some of the experiences I have had as a consultant working for ThoughtWorks, and in particular some developer practices. I over estimated the amount of material I was trying to get through but did manage to get to a few key points! For those who attended a couple of interesting jump points to follow up might be <a href="http://martinfowler.com/bliki/FeatureToggle.html">Martin Fowler on Feature Toggles</a>, <a href="http://code.google.com/p/gource/">gource</a> (the tool at the end), and <a href="http://continuousdelivery.com/">The continuous delivery book</a> by <a href="http://twitter.com/#!/jezhumble">Jez Humble</a>.</p>
<p>All in all, the event was a great time and I hope that it signifies the beginnings of putting cornwall on the world stage for software development and high tech companies!</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fjimbarritt.com%2Fnon-random%2F2011%2F09%2F20%2Fagile-on-the-beach%2F&amp;title=Agile%20On%20the%20Beach" id="wpa2a_2"><img src="http://jimbarritt.com/non-random/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://jimbarritt.com/non-random/2011/09/20/agile-on-the-beach/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The &#8216;R&#8217; Sessions</title>
		<link>http://jimbarritt.com/non-random/2011/03/07/the-r-sessions/</link>
		<comments>http://jimbarritt.com/non-random/2011/03/07/the-r-sessions/#comments</comments>
		<pubDate>Mon, 07 Mar 2011 07:13:12 +0000</pubDate>
		<dc:creator>Jim Barritt</dc:creator>
				<category><![CDATA[r]]></category>
		<category><![CDATA[random]]></category>
		<category><![CDATA[thoughtblog]]></category>

		<guid isPermaLink="false">http://jimbarritt.com/non-random/?p=774</guid>
		<description><![CDATA[(Image from http://datamining.typepad.com) A few years ago whilst working on my MSc thesis I was heavily into R a statistical analysis package which has a functional language feel to it. My friend Marc Hasenbank, a few others and I ran a series of workshops for people wanting an introduction to R. I recently wanted to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://datamining.typepad.com/gallery/blog-map-gallery.html"><img src="http://datamining.typepad.com/photos/uncategorized/newblogcrop.png" width=400></img></a><br />
(Image from <a href="http://datamining.typepad.com">http://datamining.typepad.com</a>)</p>
<p>A few years ago whilst working on my MSc thesis I was heavily into <a href="http://cran.r-project.org/">R</a> a statistical analysis package which has a functional language feel to it. My friend Marc Hasenbank, a few others and I ran a series of workshops for people wanting an introduction to R. I recently wanted to show this to someone so thought I would post a link. The code from the tutorials can be found <a href="http://www.vuw.ac.nz/staff/stephen_hartley/software/R/rug.htm">here</a></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fjimbarritt.com%2Fnon-random%2F2011%2F03%2F07%2Fthe-r-sessions%2F&amp;title=The%20%E2%80%98R%E2%80%99%20Sessions" id="wpa2a_4"><img src="http://jimbarritt.com/non-random/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://jimbarritt.com/non-random/2011/03/07/the-r-sessions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Help JUnitMax play with Hamcrest 1.3</title>
		<link>http://jimbarritt.com/non-random/2010/12/14/help-junitmax-play-with-hamcrest-1-3/</link>
		<comments>http://jimbarritt.com/non-random/2010/12/14/help-junitmax-play-with-hamcrest-1-3/#comments</comments>
		<pubDate>Tue, 14 Dec 2010 16:19:51 +0000</pubDate>
		<dc:creator>Jim Barritt</dc:creator>
				<category><![CDATA[testing]]></category>
		<category><![CDATA[thoughtblog]]></category>

		<guid isPermaLink="false">http://jimbarritt.com/non-random/?p=757</guid>
		<description><![CDATA[I have been working on converting our codebase to JUnit, with a secondary aim of trying out JUnitMax. I ran the Max and quickly discovered that it failed when trying to execute assertions using the Hamcrest hasItems matcher. The assertion looks something like: This error frequently occurs because JUnit packages an older Version of the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jimbarritt.com/non-random/wp-content/uploads/2010/12/cat_and_dog.jpg" rel="lightbox[757]"><img src="http://jimbarritt.com/non-random/wp-content/uploads/2010/12/cat_and_dog.jpg" alt="" title="cat_and_dog" width="512" height="384" class="aligncenter size-full wp-image-758" /></a></p>
<p>I have been working on converting our codebase to JUnit, with a secondary aim of trying out <a href="http://www.junitmax.com/">JUnitMax</a>.</p>
<p>I ran the Max and quickly discovered that it failed when trying to execute assertions using the Hamcrest <code><i>hasItems</i></code> matcher.</p>
<p>The assertion looks something like:</p>
<pre name='code' class='java:nogutter:nocontrols'>
NoSuchMethodException describeMismatch
</pre>
<p>This error frequently occurs because JUnit packages an older Version of the <code>org.hamcrest.Matcher</code> class which does not have the <code>describeMismatch</code> method. </p>
<p>I dug around a bit in the plugins directory in the eclipse install folder and found that it contains a <code>junit-4.8.2.jar</code>. Happy days I thought, I can simply do what I&#8217;ve been getting used to doing for a while and replace it with <code>junit-dep-4.8.2.jar</code> which does <b>not</b> contain the hamcrest classes. </p>
<p>Unfortunately this didn&#8217;t quite work. It turns out that you need to call it exactly the same <code>junit-4.8.2.jar</code>. I thought this was because there&#8217;s an entry in the <code>MANIFEST.MF</code> file but I tried to change it and that didn&#8217;t work too well.</p>
<p>Renaming the Jar file however works a treat and now I have full JUnitMax action on my box.</p>
<p>I&#8217;ve posted on the JUnitMax forums about the problem <a href="http://tech.groups.yahoo.com/group/junitmax/message/294">here</a>.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fjimbarritt.com%2Fnon-random%2F2010%2F12%2F14%2Fhelp-junitmax-play-with-hamcrest-1-3%2F&amp;title=Help%20JUnitMax%20play%20with%20Hamcrest%201.3" id="wpa2a_6"><img src="http://jimbarritt.com/non-random/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://jimbarritt.com/non-random/2010/12/14/help-junitmax-play-with-hamcrest-1-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visualise your ANT build with Grand</title>
		<link>http://jimbarritt.com/non-random/2010/11/07/visualise-your-ant-build-with-grand/</link>
		<comments>http://jimbarritt.com/non-random/2010/11/07/visualise-your-ant-build-with-grand/#comments</comments>
		<pubDate>Sun, 07 Nov 2010 19:03:35 +0000</pubDate>
		<dc:creator>Jim Barritt</dc:creator>
				<category><![CDATA[ant]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[metrics and visualisation]]></category>
		<category><![CDATA[thoughtblog]]></category>

		<guid isPermaLink="false">http://jimbarritt.com/non-random/?p=724</guid>
		<description><![CDATA[Ever had the feeling that your build file was a tad complex? The above is a visualisation provided by the excellent program grand. This particular build script utilises the ASL ant library. I think it might need some love. Producing the visualisation is very easy. Simply download the jar file and then some ant scripting&#8230; [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jimbarritt.com/non-random/wp-content/uploads/2010/11/ant-visualisation.png" rel="lightbox[724]"><img src="http://jimbarritt.com/non-random/wp-content/uploads/2010/11/ant-visualisation.png" alt="" title="ant-visualisation" width="284" height="592" class="aligncenter size-full wp-image-725" /></a></p>
<p>Ever had the feeling that your build file was a tad complex?</p>
<p>The above is a visualisation provided by the excellent program <a href="http://www.ggtools.net/grand">grand</a>. This particular build script utilises the <a href="http://www.exubero.com/asl/">ASL ant library</a>. I think it might need some love.</p>
<p>Producing the visualisation is very easy. Simply download the jar file and then some ant scripting&#8230;</p>
<p><script src="https://gist.github.com/666324.js?file=grand-ant-visualisation.xml"></script></p>
<p>You need to have <a href="http://www.graphviz.org/">GraphViz</a> installed which should give you a command line program called &#8220;dot&#8221;. You can simply try :</p>
<pre name='code' class='java:nogutter:nocontrols'>
dot &#8211;help
</pre>
<p>On the command line to see if you have it installed.</p>
<p>I have a working version on <a href="https://github.com/jimbarritt/xylon/tree/master/tool/grand/">github</a></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fjimbarritt.com%2Fnon-random%2F2010%2F11%2F07%2Fvisualise-your-ant-build-with-grand%2F&amp;title=Visualise%20your%20ANT%20build%20with%20Grand" id="wpa2a_8"><img src="http://jimbarritt.com/non-random/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://jimbarritt.com/non-random/2010/11/07/visualise-your-ant-build-with-grand/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Walk the streets of your codebase: inFusion, Code City and a MOOSE</title>
		<link>http://jimbarritt.com/non-random/2010/10/25/walk-the-streets-of-your-codebase-infusion-code-city-and-a-moose/</link>
		<comments>http://jimbarritt.com/non-random/2010/10/25/walk-the-streets-of-your-codebase-infusion-code-city-and-a-moose/#comments</comments>
		<pubDate>Mon, 25 Oct 2010 14:02:26 +0000</pubDate>
		<dc:creator>Jim Barritt</dc:creator>
				<category><![CDATA[metrics and visualisation]]></category>
		<category><![CDATA[thoughtblog]]></category>

		<guid isPermaLink="false">http://jimbarritt.com/non-random/?p=466</guid>
		<description><![CDATA[Moose is a framework built in Smalltalk for code analysis. Here&#8217;s a brief guide to get it up and running (at least on OS X). One very interesting application which is built on top of it is called CodeCity built by Richard Wettel. The instructions below are how you go about installing and using CodeCity. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jimbarritt.com/non-random/wp-content/uploads/2010/10/DWS-City-smaller.jpg" rel="lightbox[466]"><img src="http://jimbarritt.com/non-random/wp-content/uploads/2010/10/DWS-City-smaller.jpg" alt="" title="DWS-City-smaller" width="600" height="423" class="aligncenter size-full wp-image-662" /></a></p>
<p><a href="http://www.moosetechnology.org/">Moose</a> is a framework built in <a href="http://www.smalltalk.org/main/">Smalltalk</a> for code analysis. Here&#8217;s a brief guide to get it up and running  (at least on OS X). One very interesting application which is built on top of it is called <a href="http://www.moosetechnology.org/tools/vw/codecity">CodeCity</a> built by <a href="http://www.inf.usi.ch/phd/wettel/">Richard Wettel</a>. The instructions below are how you go about installing and using CodeCity. The picture above is a code city generated from a project I worked on. </p>
<p>The size of the building is determined by the number of methods, the width and length by the number of attributes and the colour by the number of lines of code (lighter blue is more lines of code). The &#8220;districts&#8221; are packages. You can see straight away from this view that we have one large &#8220;<a href="http://en.wikipedia.org/wiki/Central_business_district">CBD</a>&#8221; which is a result of us having a single package called &#8220;model&#8221; rather than more granular, domain related packages (<code>.acccount, .customer, etc</code>) which would be my preference.</p>
<p>A second immediate observation is that we have a syscraper; what is this? In this case, its actually a stub class, which shouldnt even be in the production codebase. Straight away we have found some value from the visualisation. I tend to believe that this may be a result of our IDE tools (such as CTRL+SHIFT+T or CTRL+N which allow us to browse classes by name). Whilst great for encouraging <a href="http://domaindrivendesign.org/node/132">Ubiquitous language</a> I think this view of the codebase is very focused and heads down, and when concentrating on delivery, perhaps we need to come up from the detail level every now and again. Its why I enjoy the package view in <a href="http://www.jetbrains.com/idea/">IntelliJ</a> in which multiple source folders together and presents classes as top level &#8220;leaves&#8221; in the tree so that its easy to see the structure of your packages, compare to eclipse.</p>
<p>I recently printed out the city and stuck it on the wall and was pleasantly surprised by the interest it generated by passers by, so I think its a really useful tool for showing the team something which is inherently hard to &#8220;see&#8221;.</p>
<p>These instructions are for a java project.</p>
<p><b>1) Download <a href="http://www.intooitus.com/inFusion.html">inFusion</a> </b></p>
<p>Although its commercial software you can download it and use it for free. It will read in your source code and save it to a file in Moose (<a href="http://www.moosetechnology.org/docs/famix">Famix</a>) format. This can then be used by CodeCity.</p>
<p>You can download inFusion <a href="http://www.intooitus.com/infusion/download/inFusion.zip">here</a>. On its own, inFusion is a useful metrics tool and provides some interesting visuals (see below) which I won&#8217;t cover in detail here. A good reference is Michele Lanzas&#8217; work <a href="http://www.amazon.co.uk/Object-Oriented-Metrics-Practice-Software-Characterize/dp/3540244298/ref=sr_1_3?ie=UTF8&#038;qid=1287855185&#038;sr=8-3">Object-oriented metrics in practice</a>.</p>
<p>You can run inFusion as a gui to explore your codebase, or if you just want to get to code city, you can run it as a batch file.</p>
<p>To run the ui just go into</p>
<pre name='code' class='java:nogutter:nocontrols'>
$: cd /Applications/inFusion/tools
$: ./inFusion.sh
</pre>
<p>or (windows)</p>
<pre name='code' class='java:nogutter:nocontrols'>
C:> inFusion.bat
</pre>
<p>To export the codebase in famix format (must be 2.1):</p>
<pre name='code' class='java:nogutter:nocontrols'>
$: cd /Applications/inFusion/tools
$: ./java2mse.sh $SOURCE_DIR famix21 $TARGET_FILE
</pre>
<p>or (Windows) </p>
<pre name='code' class='java:nogutter:nocontrols'>
C:> cd C:\development\external\inFusion\tools\inFusion
C:> java2mse.bat $SOURCE_DIR famix21 $TARGET_FILE
</pre>
<p>You may need to <code>chmod +x</code> the file.</p>
<p>On windows you can run the <code>.bat</code> file.</p>
<p><b>2) Load your source code </b></p>
<p>(theres a folder icon on the right). This takes a while and eventually presents you with a html view of your project stats in the bottom window. </p>
<p>An example of the output is shown here:</p>
<p><a href="http://jimbarritt.com/non-random/wp-content/uploads/2010/10/infusion-example.png" rel="lightbox[466]"><img src="http://jimbarritt.com/non-random/wp-content/uploads/2010/10/infusion-example.png" alt="" title="infusion-example" width="738" height="366" class="aligncenter size-full wp-image-667" /></a></p>
<p>To do anything interesting, you right click (or two finger-click on a macbook trackpad) over &#8220;java&#8221; this will be whatever the name of your root directory is, maybe &#8220;src&#8221;.</p>
<p>One option there is to Run tool -> Famix 2.1 exporter. This is the format you want to export for code city. Its important that its 2.1</p>
<p>Again you might have to <code>chmod +x</code> the script.</p>
<p>Notice that you can also run another extremely cool tool, called DuDe which analyses duplicate code fragments in your code base.</p>
<p><b>3) Now your ready for code city</b></p>
<p>Download it from <a href="http://www.inf.usi.ch/phd/wettel/codecity-download.html">here</a>. </p>
<p>There are versions for windows os x and linux.</p>
<p>The os x app is very handy and simply runs.</p>
<p><b>4) Import your MSE file</b></p>
<p>&#8220;Import Model(s) from &#8230;&#8221; &#8220;an MSE file&#8221; button.</p>
<p><b>5) View the city!</b></p>
<p>There are some keyboard shortcuts which werent obvious to me (help -> key mapping). You do W to &#8220;zoom in&#8221;, &#8220;S&#8221; to zoom out, &#8220;A&#8221; to move the whole scene left and &#8220;D&#8221; to move the whole scene right.</p>
<p>You can then navigate around using the arrow keys. If you press CTRL with the arrows, you rotate around the sphere of observation.</p>
<p>Some other cool features are to toggle contextual edges on (its a menubar icon, hover over them). You can configure contextual edges with incoming or outgoing invocations and then select an object and see &#8220;wires&#8221; indicating where the connections are.</p>
<p>Other features:</p>
<p>Make a snapshot of the picture as png<br />
Import a set of MSE files and see an evolving city<br />
View <a href="http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.23.6648">class blueprint</a> of the classes</p>
<p>Enjoy your city!</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fjimbarritt.com%2Fnon-random%2F2010%2F10%2F25%2Fwalk-the-streets-of-your-codebase-infusion-code-city-and-a-moose%2F&amp;title=Walk%20the%20streets%20of%20your%20codebase%3A%20inFusion%2C%20Code%20City%20and%20a%20MOOSE" id="wpa2a_10"><img src="http://jimbarritt.com/non-random/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://jimbarritt.com/non-random/2010/10/25/walk-the-streets-of-your-codebase-infusion-code-city-and-a-moose/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visualise codebase evolution with gource</title>
		<link>http://jimbarritt.com/non-random/2010/10/03/visualise-codebase-evolution-with-gource/</link>
		<comments>http://jimbarritt.com/non-random/2010/10/03/visualise-codebase-evolution-with-gource/#comments</comments>
		<pubDate>Sun, 03 Oct 2010 23:02:58 +0000</pubDate>
		<dc:creator>Jim Barritt</dc:creator>
				<category><![CDATA[metrics and visualisation]]></category>
		<category><![CDATA[thoughtblog]]></category>

		<guid isPermaLink="false">http://jimbarritt.com/non-random/?p=623</guid>
		<description><![CDATA[This rocks. Instructions for what I did to get it up and running are below. Once you have it, just go into an folder with a git repo and type: A few minutes later and you are watching your codebase being built by mini avatars. This is an amazing visualisation, just need to work out [...]]]></description>
			<content:encoded><![CDATA[<p><object width="640" height="390"><param name="movie" value="http://www.youtube.com/v/NjUuAuBcoqs&#038;rel=0&#038;hl=en_US&#038;feature=player_embedded&#038;version=3"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.youtube.com/v/NjUuAuBcoqs&#038;rel=0&#038;hl=en_US&#038;feature=player_embedded&#038;version=3" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="390"></embed></object></p>
<p>This rocks. </p>
<p>Instructions for what I did to get it up and running are below. Once you have it, just go into an folder with a git repo and type:</p>
<pre name='code' class='java:nogutter:nocontrols'>
gource
</pre>
<p>A few minutes later and you are watching your codebase being built by mini avatars. This is an amazing visualisation, just need to work out how it can be used. I suspect that it might help teams to look back over time and see how much things have grown and where all the work goes. Potentially it could be synchronised to other visualisations to explore the history of a codebase.</p>
<p>Nyway, here are my steps to install:</p>
<p>There are instructions on the <a href="http://code.google.com/p/gource/">googlecode site</a>. I&#8217;m running OS X and so can install with <a href="http://www.macports.org/install.php">MacPorts</a>.</p>
<p>First I needed to update and sync my macports. I tried using the <code>port selfupdate</code> but it didnt work for me so I just downloaded and installed the DMG from the ports site, but in theory you should be able to do:</p>
<pre name='code' class='java:nogutter:nocontrols'>
sudo port selfupdate
sudo port sync
</pre>
<p>Then install.</p>
<p>Also I got </p>
<pre name='code' class='java:nogutter:nocontrols'>
dyld: Library not loaded: /opt/local/lib/libjpeg.62.dylib
</pre>
<p>So needed to update tiff</p>
<pre name='code' class='java:nogutter:nocontrols'>
sudo port install tiff
[/java
[java]
sudo port install gource
</pre>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fjimbarritt.com%2Fnon-random%2F2010%2F10%2F03%2Fvisualise-codebase-evolution-with-gource%2F&amp;title=Visualise%20codebase%20evolution%20with%20gource" id="wpa2a_12"><img src="http://jimbarritt.com/non-random/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://jimbarritt.com/non-random/2010/10/03/visualise-codebase-evolution-with-gource/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hyperia: Adventures in REST at the Manchester Geek Night</title>
		<link>http://jimbarritt.com/non-random/2010/09/16/hyperia-adventures-in-rest-at-the-manchester-geek-night/</link>
		<comments>http://jimbarritt.com/non-random/2010/09/16/hyperia-adventures-in-rest-at-the-manchester-geek-night/#comments</comments>
		<pubDate>Thu, 16 Sep 2010 17:55:11 +0000</pubDate>
		<dc:creator>Jim Barritt</dc:creator>
				<category><![CDATA[architecture]]></category>
		<category><![CDATA[rest]]></category>
		<category><![CDATA[thoughtblog]]></category>

		<guid isPermaLink="false">http://jimbarritt.com/non-random/?p=611</guid>
		<description><![CDATA[I had the pleasure of Presenting at our Manchester Geek Night last night (Slides up at Hyperia). Here is the abstract for the talk. It was good fun both writing the code and doing the talk. (thanks to Dan for helping to get it over the line with 4 half hour iterations the night before). [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jimbarritt.com/non-random/wp-content/uploads/2010/09/warlock.png" rel="lightbox[611]"><img src="http://jimbarritt.com/non-random/wp-content/uploads/2010/09/warlock.png" alt="" title="warlock"  height="300" class="aligncenter size-full wp-image-612" /></a></p>
<p>I had the pleasure of Presenting at our Manchester Geek Night last night (Slides up at <a href="http://www.slideshare.net/jimbarritt/hyper-fantasy">Hyperia</a>). </p>
<p>Here is the abstract for the talk. It was good fun both writing the code and doing the talk. (thanks to Dan for helping to get it over the line with 4 half hour iterations the night before). Thanks to all who attended.</p>
<blockquote><p>
The web has been running for many years at a truly global scale on the Hypertext Transfer Protocol (HTTP). The architectural style of HTTP, known as Representational State Transfer (REST) has recently become popular as the basis for application protocols, aswell as the ubiquitous browser client.</p>
<p>This talk will showcase a simple framework called &#8220;<a href="http://github.com/caelum/restfulie">Restfulie</a>&#8221; based on the work of Dr. Jim Webber, Ian Robinson and Savas Parastatdis.</p>
<p>The framework consists of a REST client framework, and by default uses the VRaptor web framework for a backend.</p>
<p>The talk will demonstrate the framework using a demonstration application called &#8220;Hyper Fantasy&#8221;, which is an online implementation of the classic &#8220;Fighting Fantasy&#8221; books of Steve Jackson (http://en.wikipedia.org/wiki/The_Warlock_of_Firetop_Mountain) which provides a convenient metaphor in terms of following links to new resources, and client-side state.
</p></blockquote>
<p>I plan to extend the example and host it on the web. It will go through a rebrand to be called &#8220;Hyperia&#8221;.  There are several possibilities for extension including secure requests, cross language implementation (Ruby and Java) Cloud hosting, multiple servers, caching and iPhone apps.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fjimbarritt.com%2Fnon-random%2F2010%2F09%2F16%2Fhyperia-adventures-in-rest-at-the-manchester-geek-night%2F&amp;title=Hyperia%3A%20Adventures%20in%20REST%20at%20the%20Manchester%20Geek%20Night" id="wpa2a_14"><img src="http://jimbarritt.com/non-random/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://jimbarritt.com/non-random/2010/09/16/hyperia-adventures-in-rest-at-the-manchester-geek-night/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing JRuby with Intellij (OS X)</title>
		<link>http://jimbarritt.com/non-random/2010/07/03/installing-jruby-with-intellij-os-x/</link>
		<comments>http://jimbarritt.com/non-random/2010/07/03/installing-jruby-with-intellij-os-x/#comments</comments>
		<pubDate>Sat, 03 Jul 2010 09:14:25 +0000</pubDate>
		<dc:creator>Jim Barritt</dc:creator>
				<category><![CDATA[build]]></category>
		<category><![CDATA[intellij]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jruby]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[thoughtblog]]></category>

		<guid isPermaLink="false">http://jimbarritt.com/non-random/?p=573</guid>
		<description><![CDATA[GET it from http://jruby.org/ There is a download page, download and exract the tar file somehwere. I put it in /System/Library/Frameworks/JRuby.framework/jruby-1.5.1 I then created a symbolic link to jruby_current And then simply add it to my ~/.bash_profile Now you can add the JRuby SDK to your Java Module in Intellij: Now you can have ruby [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jimbarritt.com/non-random/wp-content/uploads/2010/07/jruby.png" rel="lightbox[573]"><img src="http://jimbarritt.com/non-random/wp-content/uploads/2010/07/jruby.png" alt="" title="jruby" width="235" height="232" class="aligncenter size-full wp-image-574" /></a></p>
<p>GET it from <a href="http://jruby.org/#2">http://jruby.org/</a></p>
<p>There is a download page, download and exract the tar file somehwere.</p>
<p>I put it in <code>/System/Library/Frameworks/JRuby.framework/jruby-1.5.1</code></p>
<p>I then created a symbolic link to <code>jruby_current</code><br />
<pre name='code' class='java:nogutter:nocontrols'>
ln -s jruby-1.5.1/ jruby_current
</pre></p>
<p>And then simply add it to my <code>~/.bash_profile</code></p>
<pre name='code' class='java:nogutter:nocontrols'>
$vi ~/.bash_profile
export PATH=/System/Library/Frameworks/JRuby.framework/jruby_current/bin:$PATH
#Reload the profile&#8230;
$. ~/.bash_profile
#Try out jruby&#8230;
$jruby -v
jruby 1.5.1 (ruby 1.8.7 patchlevel 249) (2010-06-06 f3a3480) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_17) [x86_64-java]
</pre>
<p>Now you can add the JRuby SDK to your Java Module in Intellij:</p>
<p><a href="http://jimbarritt.com/non-random/wp-content/uploads/2010/07/jruby_sdk.png" rel="lightbox[573]"><img src="http://jimbarritt.com/non-random/wp-content/uploads/2010/07/jruby_sdk.png" alt="" title="jruby_sdk" width="600" /></a></p>
<p>Now you can have ruby and Java in the same project. Awesome.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fjimbarritt.com%2Fnon-random%2F2010%2F07%2F03%2Finstalling-jruby-with-intellij-os-x%2F&amp;title=Installing%20JRuby%20with%20Intellij%20%28OS%20X%29" id="wpa2a_16"><img src="http://jimbarritt.com/non-random/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://jimbarritt.com/non-random/2010/07/03/installing-jruby-with-intellij-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google reader &#8220;shared items&#8221; plugin for wordpress</title>
		<link>http://jimbarritt.com/non-random/2010/06/06/google-reader-shared-items-plugin-for-wordpress/</link>
		<comments>http://jimbarritt.com/non-random/2010/06/06/google-reader-shared-items-plugin-for-wordpress/#comments</comments>
		<pubDate>Sun, 06 Jun 2010 16:08:38 +0000</pubDate>
		<dc:creator>Jim Barritt</dc:creator>
				<category><![CDATA[meta]]></category>
		<category><![CDATA[thoughtblog]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://jimbarritt.com/non-random/?p=517</guid>
		<description><![CDATA[I find google reader a useful way to aggregate information from many blogs. Particularly convenient is to be able to read these on my iPhone and then mark them as shared. That way I can build up a list of information I am interested in. This is then conveniently exposed as an RSS feed by [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jimbarritt.com/non-random/wp-content/uploads/2010/06/googlereader1.png" rel="lightbox[517]"><img src="http://jimbarritt.com/non-random/wp-content/uploads/2010/06/googlereader1.png" alt="" title="googlereader" width="500" class="aligncenter size-full " /></a></p>
<p>I find google reader a useful way to aggregate information from many blogs. Particularly convenient is to be able to read these on my iPhone and then mark them as shared. That way I can build up a list of information I am interested in.</p>
<p>This is then conveniently exposed as an RSS feed by google. You can see my shared items at <a href="http://www.google.co.uk/reader/shared/jim.barritt">http://www.google.co.uk/reader/shared/jim.barritt</a> for example.</p>
<p>I used to have a sidebar on this site which had a snippet directly from google reader, but it was determined to have its own style. I wanted a wordpress plugin that would do it for me and found <a href="http://wordpress.org/extend/plugins/recommended-reading-google-reader-shared/">&#8220;Recommended Reading Google Reader&#8221; by C. Murray Consulting</a></p>
<p>Its the nice &#8220;READING&#8221; section on my sidebar. Thanks guys! You just saved me from writing my own!</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fjimbarritt.com%2Fnon-random%2F2010%2F06%2F06%2Fgoogle-reader-shared-items-plugin-for-wordpress%2F&amp;title=Google%20reader%20%E2%80%9Cshared%20items%E2%80%9D%20plugin%20for%20wordpress" id="wpa2a_18"><img src="http://jimbarritt.com/non-random/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://jimbarritt.com/non-random/2010/06/06/google-reader-shared-items-plugin-for-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile North Keynote: Guiding Teams On Mt Agile</title>
		<link>http://jimbarritt.com/non-random/2010/06/05/agile-north-keynote-guiding-teams-on-mt-agile/</link>
		<comments>http://jimbarritt.com/non-random/2010/06/05/agile-north-keynote-guiding-teams-on-mt-agile/#comments</comments>
		<pubDate>Sat, 05 Jun 2010 14:48:41 +0000</pubDate>
		<dc:creator>Jim Barritt</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[thoughtblog]]></category>

		<guid isPermaLink="false">http://jimbarritt.com/non-random/?p=476</guid>
		<description><![CDATA[I recently (Friday 14th May 2010) gave the closing Keynote at Agile North, a one day conference held up in Preston. The talk was loosely based around a metaphor of mountain climbing and playing with the analogy of being a consultant on an agile project being like a mountain guide. The idea is that someone [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jimbarritt.com/non-random/wp-content/uploads/2010/05/agilenorth.gif" rel="lightbox[476]"><img src="http://jimbarritt.com/non-random/wp-content/uploads/2010/05/agilenorth.gif" alt="" title="agilenorth" width="228" height="117" class="aligncenter size-full wp-image-477" /></a></p>
<p>I recently (Friday 14th May 2010) gave the closing Keynote at <a href="http://www.agilenorth.org/">Agile North</a>, a one day conference held up in Preston.</p>
<p>The talk was loosely based around a metaphor of mountain climbing and playing with the analogy of being a consultant on an agile project being like a mountain guide. The idea is that someone who is a mountain guide has many years of experience climbing and coaching people on the mountain. </p>
<p>The talk I think was well recieved and generated quite a bit of interest from people, I think because we were talking about real experiences on our current project.</p>
<p>I co-presented with Mark Crossfield who is the Tech Lead on the team I am Coaching at our current client, AutoTrader, and I felt it was an interesting balance between my &#8220;Guide&#8221; view and his experience leading a team into an Agile project for the first time.</p>
<p>We covered five short stories about our experiences on the project.</p>
<ul>
<li>Safety First &#8211; going beyond CI to pipelines</li>
<li>The Walking Skeleton as a metaphor for iterative feature delivery</li>
<li>Evolution of the codebase</li>
<li>Collective Design</li>
<li>Telling the story of the code</li>
</ul>
<p>The Slide deck is up on <a href="http://www.slideshare.net/jimbarritt/jim-barritt-mark-crossfield-closing-keynote">slideshare</a> and the talk can be viewed here.</p>
<p>At some point they promise to put up the video of the event at which point I will update this post.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fjimbarritt.com%2Fnon-random%2F2010%2F06%2F05%2Fagile-north-keynote-guiding-teams-on-mt-agile%2F&amp;title=Agile%20North%20Keynote%3A%20Guiding%20Teams%20On%20Mt%20Agile" id="wpa2a_20"><img src="http://jimbarritt.com/non-random/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://jimbarritt.com/non-random/2010/06/05/agile-north-keynote-guiding-teams-on-mt-agile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

