<?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>Transient Technology &#187; software development</title>
	<atom:link href="http://martinaharris.com/category/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://martinaharris.com</link>
	<description>Next time you look it might be gone</description>
	<lastBuildDate>Tue, 24 Jan 2012 18:14:10 +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>Unitils update &#8211; TestListeners</title>
		<link>http://martinaharris.com/2012/01/unitils-update-testlisteners/</link>
		<comments>http://martinaharris.com/2012/01/unitils-update-testlisteners/#comments</comments>
		<pubDate>Tue, 24 Jan 2012 18:08:02 +0000</pubDate>
		<dc:creator>Martin Harris</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[ldap]]></category>
		<category><![CDATA[unitils]]></category>

		<guid isPermaLink="false">http://martinaharris.com/?p=1108</guid>
		<description><![CDATA[In a previous post I got some help from Tim Ducheyne to work out a way to use a spring wired DataSource with Unitils.  He mentioned a better way was coming&#8230; Sometime back now they added the support for TestListener which &#8230; <a href="http://martinaharris.com/2012/01/unitils-update-testlisteners/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In a <a title="How to link unitils to a spring wired datasource" href="http://martinaharris.com/2010/05/unitils-spring-wired-datasource/">previous post</a> I got some help from Tim Ducheyne to work out a way to use a spring wired DataSource with Unitils.  He mentioned a better way was coming&#8230;</p>
<p>Sometime back now they added the support for TestListener which solves this issue.</p>
<p><a title="Unitils - TestListerer API" href="http://www.unitils.org/apidocs/org/unitils/core/TestListener.html">Unitils &#8211; TestListerer API</a></p>
<p>I don&#8217;t work with conventional databases much now, but was intrigued to see this post explaining how to extend unitils and use TestListeners to test ldap.  Neat eh!</p>
<p><a title="unitils library for enhance unit test by using annotation approach" href="http://blog.esofthead.com/unitils-library-for-enhance-unit-test-by-using-annotation-approach/">Extending Unitils to test LDap.</a></p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2012%2F01%2Funitils-update-testlisteners%2F&amp;title=Unitils+update+-+TestListeners" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2012%2F01%2Funitils-update-testlisteners%2F&amp;title=Unitils+update+-+TestListeners" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2012%2F01%2Funitils-update-testlisteners%2F&amp;title=Unitils+update+-+TestListeners" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fmartinaharris.com%2F2012%2F01%2Funitils-update-testlisteners%2F&amp;headline=Unitils+update+-+TestListeners" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Unitils+update+-+TestListeners&amp;url=http%3A%2F%2Fmartinaharris.com%2F2012%2F01%2Funitils-update-testlisteners%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Unitils+update+-+TestListeners&amp;u=http%3A%2F%2Fmartinaharris.com%2F2012%2F01%2Funitils-update-testlisteners%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Unitils+update+-+TestListeners&amp;url=http%3A%2F%2Fmartinaharris.com%2F2012%2F01%2Funitils-update-testlisteners%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Unitils+update+-+TestListeners&amp;url=http%3A%2F%2Fmartinaharris.com%2F2012%2F01%2Funitils-update-testlisteners%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Unitils+update+-+TestListeners&amp;url=http%3A%2F%2Fmartinaharris.com%2F2012%2F01%2Funitils-update-testlisteners%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fmartinaharris.com%2F2012%2F01%2Funitils-update-testlisteners%2F&amp;title=Unitils+update+-+TestListeners&amp;summary=&amp;source=" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fmartinaharris.com%2F2012%2F01%2Funitils-update-testlisteners%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fmartinaharris.com%2F2012%2F01%2Funitils-update-testlisteners%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fmartinaharris.com%2F2012%2F01%2Funitils-update-testlisteners%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div><div class="dzone_button" style="float: right; margin-left: 5px;">
<script type="text/javascript">
var dzone_url = 'http://martinaharris.com/2012/01/unitils-update-testlisteners/';
var dzone_title = 'Unitils update &#8211; TestListeners';
var dzone_blurb = '';
var dzone_style = '2';
</script>
<script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script>
</div>]]></content:encoded>
			<wfw:commentRss>http://martinaharris.com/2012/01/unitils-update-testlisteners/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Culture and Agile Adoption</title>
		<link>http://martinaharris.com/2012/01/culture-and-agile-adoption/</link>
		<comments>http://martinaharris.com/2012/01/culture-and-agile-adoption/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 21:04:15 +0000</pubDate>
		<dc:creator>Martin Harris</dc:creator>
				<category><![CDATA[scrum and agile]]></category>
		<category><![CDATA[adoption]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[culture]]></category>
		<category><![CDATA[kanban]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://martinaharris.com/?p=1097</guid>
		<description><![CDATA[More and more I have been thinking about the effect of culture on Agile adoption. Then a friend tweeted this article on Agile Culture by Michael Sahota. Its a real eye opener and one key message is that it might &#8230; <a href="http://martinaharris.com/2012/01/culture-and-agile-adoption/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_1098" class="wp-caption alignleft" style="width: 160px"><img class="size-thumbnail wp-image-1098" title="punchnjudy-beachhut" src="http://martinaharris.com/wp-content/uploads/2012/01/punchnjudy-beachhut-150x150.jpg" alt="Its a Punch and Judy Show" width="150" height="150" /><p class="wp-caption-text">Beach Hut - By Martin Harris</p></div>
<p>More and more I have been thinking about the effect of culture on Agile adoption. Then a friend tweeted this article on <a title="Agile Culture" href="http://www.methodsandtools.com/archive/agileculture.php">Agile Culture</a> by Michael Sahota. Its a real eye opener and one key message is that it might be quicker to fit your process to the culture rather than the other way around.</p>
<p>There is some evidence to suggest that trying to introduce and Agile Development system into a culture that won&#8217;t naturally accept it is a recipe for failure.</p>
<p>For me its more complex that this. I am not 100% sure I am anywhere near a solution but these thoughts arise.</p>
<p><strong>Evolution v Revolution and mandate</strong><br />
Without going into the detail which can be <a href="http://www.itworldcanada.com/news/winds-of-change-evolution-vs-revolution-/121466">found on other posts</a> the cultural fit is probably more important if you can&#8217;t change the culture. Most of the time we are somewhat restricted by our mandate. Its rare that someone senior wants this bad enough that they are prepared for the risk of revolutionary change.</p>
<p>If you were about to move in that direction, perhaps you can change the culture to fit. This path is also easier if your scope is small. i.e. if your dealing with a small group of people and not a multinational.</p>
<p>Otherwise perhaps initially selection of technique and Agile process should be culture driven.</p>
<p><strong>The Kanban / Control argument</strong><br />
Its interesting to see Michael point out that Kanban is not Agile. At least by cultural definition. It occurred to me also that successful open source cultures might not be Agile either, they seem to fall into the &#8220;Craftsmanship&#8221; section.</p>
<p>Yet, were you to take a controlling culture and conduct Kanban with XP practices might it not over a long period of time begin to change. Perhaps towards craftsmanship as an appreciation of quality evolves?</p>
<p><strong>So what now then Agile Coaches and CTO&#8217;s?</strong><br />
Well I for one have found the diagrams very useful. Just an awareness of this idea helps bring people to a higher view of what might be going on in their Agile Adoption process and that is no bad thing. Its too easy to get wrapped up in the daily Punch and Judy show forgetting about the bigger picture.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2012%2F01%2Fculture-and-agile-adoption%2F&amp;title=Culture+and+Agile+Adoption" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2012%2F01%2Fculture-and-agile-adoption%2F&amp;title=Culture+and+Agile+Adoption" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2012%2F01%2Fculture-and-agile-adoption%2F&amp;title=Culture+and+Agile+Adoption" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fmartinaharris.com%2F2012%2F01%2Fculture-and-agile-adoption%2F&amp;headline=Culture+and+Agile+Adoption" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Culture+and+Agile+Adoption&amp;url=http%3A%2F%2Fmartinaharris.com%2F2012%2F01%2Fculture-and-agile-adoption%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Culture+and+Agile+Adoption&amp;u=http%3A%2F%2Fmartinaharris.com%2F2012%2F01%2Fculture-and-agile-adoption%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Culture+and+Agile+Adoption&amp;url=http%3A%2F%2Fmartinaharris.com%2F2012%2F01%2Fculture-and-agile-adoption%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Culture+and+Agile+Adoption&amp;url=http%3A%2F%2Fmartinaharris.com%2F2012%2F01%2Fculture-and-agile-adoption%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Culture+and+Agile+Adoption&amp;url=http%3A%2F%2Fmartinaharris.com%2F2012%2F01%2Fculture-and-agile-adoption%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fmartinaharris.com%2F2012%2F01%2Fculture-and-agile-adoption%2F&amp;title=Culture+and+Agile+Adoption&amp;summary=&amp;source=" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fmartinaharris.com%2F2012%2F01%2Fculture-and-agile-adoption%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fmartinaharris.com%2F2012%2F01%2Fculture-and-agile-adoption%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fmartinaharris.com%2F2012%2F01%2Fculture-and-agile-adoption%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div><div class="dzone_button" style="float: right; margin-left: 5px;">
<script type="text/javascript">
var dzone_url = 'http://martinaharris.com/2012/01/culture-and-agile-adoption/';
var dzone_title = 'Culture and Agile Adoption';
var dzone_blurb = '';
var dzone_style = '2';
</script>
<script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script>
</div>]]></content:encoded>
			<wfw:commentRss>http://martinaharris.com/2012/01/culture-and-agile-adoption/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>InfoQ: Chet Hendrickson on the Need for Good Technical Practices</title>
		<link>http://martinaharris.com/2011/11/infoq-chet-hendrickson-on-the-need-for-good-technical-practices/</link>
		<comments>http://martinaharris.com/2011/11/infoq-chet-hendrickson-on-the-need-for-good-technical-practices/#comments</comments>
		<pubDate>Wed, 30 Nov 2011 23:12:44 +0000</pubDate>
		<dc:creator>Martin Harris</dc:creator>
				<category><![CDATA[scrum and agile]]></category>
		<category><![CDATA[change]]></category>
		<category><![CDATA[interview]]></category>
		<category><![CDATA[kanban]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://martinaharris.com/?p=1093</guid>
		<description><![CDATA[Excellent interview that parallels some of my experiences. InfoQ: Chet Hendrickson on the Need for Good Technical Practices.]]></description>
			<content:encoded><![CDATA[<p>Excellent interview that parallels some of my experiences. </p>
<p><a href="http://www.infoq.com/interviews/chet-hendrickson-good-technical-practices#.Tta2Gkizdk0.wordpress">InfoQ: Chet Hendrickson on the Need for Good Technical Practices</a>.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2011%2F11%2Finfoq-chet-hendrickson-on-the-need-for-good-technical-practices%2F&amp;title=InfoQ%3A+Chet+Hendrickson+on+the+Need+for+Good+Technical+Practices" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2011%2F11%2Finfoq-chet-hendrickson-on-the-need-for-good-technical-practices%2F&amp;title=InfoQ%3A+Chet+Hendrickson+on+the+Need+for+Good+Technical+Practices" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2011%2F11%2Finfoq-chet-hendrickson-on-the-need-for-good-technical-practices%2F&amp;title=InfoQ%3A+Chet+Hendrickson+on+the+Need+for+Good+Technical+Practices" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fmartinaharris.com%2F2011%2F11%2Finfoq-chet-hendrickson-on-the-need-for-good-technical-practices%2F&amp;headline=InfoQ%3A+Chet+Hendrickson+on+the+Need+for+Good+Technical+Practices" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=InfoQ%3A+Chet+Hendrickson+on+the+Need+for+Good+Technical+Practices&amp;url=http%3A%2F%2Fmartinaharris.com%2F2011%2F11%2Finfoq-chet-hendrickson-on-the-need-for-good-technical-practices%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=InfoQ%3A+Chet+Hendrickson+on+the+Need+for+Good+Technical+Practices&amp;u=http%3A%2F%2Fmartinaharris.com%2F2011%2F11%2Finfoq-chet-hendrickson-on-the-need-for-good-technical-practices%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=InfoQ%3A+Chet+Hendrickson+on+the+Need+for+Good+Technical+Practices&amp;url=http%3A%2F%2Fmartinaharris.com%2F2011%2F11%2Finfoq-chet-hendrickson-on-the-need-for-good-technical-practices%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=InfoQ%3A+Chet+Hendrickson+on+the+Need+for+Good+Technical+Practices&amp;url=http%3A%2F%2Fmartinaharris.com%2F2011%2F11%2Finfoq-chet-hendrickson-on-the-need-for-good-technical-practices%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=InfoQ%3A+Chet+Hendrickson+on+the+Need+for+Good+Technical+Practices&amp;url=http%3A%2F%2Fmartinaharris.com%2F2011%2F11%2Finfoq-chet-hendrickson-on-the-need-for-good-technical-practices%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fmartinaharris.com%2F2011%2F11%2Finfoq-chet-hendrickson-on-the-need-for-good-technical-practices%2F&amp;title=InfoQ%3A+Chet+Hendrickson+on+the+Need+for+Good+Technical+Practices&amp;summary=&amp;source=" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fmartinaharris.com%2F2011%2F11%2Finfoq-chet-hendrickson-on-the-need-for-good-technical-practices%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fmartinaharris.com%2F2011%2F11%2Finfoq-chet-hendrickson-on-the-need-for-good-technical-practices%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fmartinaharris.com%2F2011%2F11%2Finfoq-chet-hendrickson-on-the-need-for-good-technical-practices%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div><div class="dzone_button" style="float: right; margin-left: 5px;">
<script type="text/javascript">
var dzone_url = 'http://martinaharris.com/2011/11/infoq-chet-hendrickson-on-the-need-for-good-technical-practices/';
var dzone_title = 'InfoQ: Chet Hendrickson on the Need for Good Technical Practices';
var dzone_blurb = '';
var dzone_style = '2';
</script>
<script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script>
</div>]]></content:encoded>
			<wfw:commentRss>http://martinaharris.com/2011/11/infoq-chet-hendrickson-on-the-need-for-good-technical-practices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Update on building .NET</title>
		<link>http://martinaharris.com/2011/10/update-on-building-net/</link>
		<comments>http://martinaharris.com/2011/10/update-on-building-net/#comments</comments>
		<pubDate>Mon, 17 Oct 2011 20:34:31 +0000</pubDate>
		<dc:creator>Martin Harris</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[dependency]]></category>
		<category><![CDATA[dll]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[silverlite]]></category>
		<category><![CDATA[sonar]]></category>

		<guid isPermaLink="false">http://martinaharris.com/?p=1085</guid>
		<description><![CDATA[Sometime back now I posted an article on building .NET and dependency management. I have come to learn that there are several ways. Here are my favorites. Build your own maven plugin to build .NET projects. Package 3rd party products &#8230; <a href="http://martinaharris.com/2011/10/update-on-building-net/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Sometime back now I posted an article on <a title="Building software with .NET dependencies in 2010" href="http://martinaharris.com/2010/06/building-software-with-net-dependencies-in-2010/" target="_blank">building .NET and dependency management</a>.</p>
<p>I have come to learn that there are several ways. Here are my favorites.</p>
<ol>
<li>Build your own <a href="http://maven.apache.org/guides/introduction/introduction-to-plugins.html" target="_blank">maven plugin</a> to build .NET projects. Package 3rd party products as zips and put them in maven. Write a plugin that reads solution and project files and calls MSBuild with the appropriate flags.  <strong>Advantage</strong>, maximum flexibility.  <strong>Disadvantage</strong>, lots of effort.</li>
<li>Use the existing <a href="http://maven-dotnet-plugin.appspot.com/" target="_blank">maven-dotnet-plugin</a>.  <strong>Advantage</strong>, does a lot for you including various types of test and coverage systems, plus it can run <a href="http://www.sonarsource.org/" target="_blank">sonar</a>.  <strong>Disadvantage</strong>, Hard to get it to work on complex silverlight projects. In fact hard full stop.  The docs are not great.</li>
<li>Use <a href="http://nuget.codeplex.com/" target="_blank">NuGet</a>.  <strong>Advantages</strong>, it has .NET pedigree and Microsoft Backing.  Adoption amongst .net developers is probably an easier sell than a java utility.  <strong>Disadvantages</strong>, Very early days for the project, as yet unproven.</li>
<li>Finally <a href="http://npanday.codeplex.com/" target="_blank">npanday</a>.  <strong>Advantages</strong>, nice integration with Visual Studio.  <strong>Disadvantages</strong>, very hard to get it to work with silverlight.  Impossible in fact as MS have kindly removed the command line baml compile utility.</li>
</ol>
<div>So in summary.  There are ways to do this now.  There is hope for .NET dependency management!</div>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2011%2F10%2Fupdate-on-building-net%2F&amp;title=Update+on+building+.NET" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2011%2F10%2Fupdate-on-building-net%2F&amp;title=Update+on+building+.NET" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2011%2F10%2Fupdate-on-building-net%2F&amp;title=Update+on+building+.NET" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fmartinaharris.com%2F2011%2F10%2Fupdate-on-building-net%2F&amp;headline=Update+on+building+.NET" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Update+on+building+.NET&amp;url=http%3A%2F%2Fmartinaharris.com%2F2011%2F10%2Fupdate-on-building-net%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Update+on+building+.NET&amp;u=http%3A%2F%2Fmartinaharris.com%2F2011%2F10%2Fupdate-on-building-net%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Update+on+building+.NET&amp;url=http%3A%2F%2Fmartinaharris.com%2F2011%2F10%2Fupdate-on-building-net%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Update+on+building+.NET&amp;url=http%3A%2F%2Fmartinaharris.com%2F2011%2F10%2Fupdate-on-building-net%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Update+on+building+.NET&amp;url=http%3A%2F%2Fmartinaharris.com%2F2011%2F10%2Fupdate-on-building-net%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fmartinaharris.com%2F2011%2F10%2Fupdate-on-building-net%2F&amp;title=Update+on+building+.NET&amp;summary=&amp;source=" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fmartinaharris.com%2F2011%2F10%2Fupdate-on-building-net%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fmartinaharris.com%2F2011%2F10%2Fupdate-on-building-net%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fmartinaharris.com%2F2011%2F10%2Fupdate-on-building-net%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div><div class="dzone_button" style="float: right; margin-left: 5px;">
<script type="text/javascript">
var dzone_url = 'http://martinaharris.com/2011/10/update-on-building-net/';
var dzone_title = 'Update on building .NET';
var dzone_blurb = '';
var dzone_style = '2';
</script>
<script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script>
</div>]]></content:encoded>
			<wfw:commentRss>http://martinaharris.com/2011/10/update-on-building-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The power of XMLUnit with google Predicate</title>
		<link>http://martinaharris.com/2010/12/the-power-of-xmlunit-with-google-predicate/</link>
		<comments>http://martinaharris.com/2010/12/the-power-of-xmlunit-with-google-predicate/#comments</comments>
		<pubDate>Tue, 14 Dec 2010 22:46:19 +0000</pubDate>
		<dc:creator>Martin Harris</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[collections]]></category>
		<category><![CDATA[filter]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[predicate]]></category>
		<category><![CDATA[XMLUnit]]></category>

		<guid isPermaLink="false">http://martinaharris.com/?p=1069</guid>
		<description><![CDATA[I have been interested in XMLUnit and google collections predicate system for awhile now and recently wrote the following as part of a test.  I have removed some of the test and left just the bits that illustrate this point. The test needs &#8230; <a href="http://martinaharris.com/2010/12/the-power-of-xmlunit-with-google-predicate/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I have been interested in <a title="XMLUnit on sourceforge" href="http://xmlunit.sourceforge.net/" target="_blank">XMLUnit</a> and <a title="Google Collections" href="http://code.google.com/p/google-collections/" target="_blank">google collections</a> predicate system for awhile now and recently wrote the following as part of a test.  I have removed some of the test and left just the bits that illustrate this point.</p>
<p>The test needs to perform a check that the result of transforming some xml is correct.  A reference file is available so we can use XMLUnit to perform a difference.  In my file there is a seconds attribute and because seconds vary with each parse we choose to ignore the value.  There are other ways to achieve this, but its more complex and uses more XMLUnit code. Using a google predicate simplifies this check.</p>
<p>First produce your output file and load the sample and output into strings.  Normally for a test I produce a smaller sample xml file.  Then using XMLUnit difference engine get all differences.</p>
<pre class="brush: java; gutter: false; wrap-lines: false">    Diff d = new Diff(expectedAsString, outputAsString);
    DetailedDiff dd = new DetailedDiff(d);
    List listOfDifferences = dd.getAllDifferences();
</pre>
<p>Next call a function to check that the only differences found are within the seconds attribute.  This uses a predicates from google to perform the matching.</p>
<pre class="brush: java; gutter: false; wrap-lines: false">
    assertTrue(onlyDiffsMatchThisAttributeName("seconds",listOfDifferences));
    }

    private static boolean onlyDiffsMatchThisAttributeName(final String attrName, Iterable it) {

    Iterable filtered = Iterables.filter(it, new Predicate() {

        @Override
        public boolean apply(Difference input) {

                final NodeDetail testNodeDetail = input.getTestNodeDetail();
                if (nodeDetail == null) return false;

                final Node node = nodeDetail.getNode();
                if (node == null) return false;

                final String nodeName = node.getNodeName();
                if (nodeName == null) return false;

                return !nodeName.equals(attrName);
            }
        });
        return (newArrayList(filtered).isEmpty());
    }</pre>
<p>Note that what is happening here is the predicate is filtering away all the seconds matches.  If anything remains in the list false is returned.  Neat huh!  <img src='http://martinaharris.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2010%2F12%2Fthe-power-of-xmlunit-with-google-predicate%2F&amp;title=The+power+of+XMLUnit+with+google+Predicate" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2010%2F12%2Fthe-power-of-xmlunit-with-google-predicate%2F&amp;title=The+power+of+XMLUnit+with+google+Predicate" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2010%2F12%2Fthe-power-of-xmlunit-with-google-predicate%2F&amp;title=The+power+of+XMLUnit+with+google+Predicate" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fmartinaharris.com%2F2010%2F12%2Fthe-power-of-xmlunit-with-google-predicate%2F&amp;headline=The+power+of+XMLUnit+with+google+Predicate" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=The+power+of+XMLUnit+with+google+Predicate&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F12%2Fthe-power-of-xmlunit-with-google-predicate%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=The+power+of+XMLUnit+with+google+Predicate&amp;u=http%3A%2F%2Fmartinaharris.com%2F2010%2F12%2Fthe-power-of-xmlunit-with-google-predicate%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=The+power+of+XMLUnit+with+google+Predicate&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F12%2Fthe-power-of-xmlunit-with-google-predicate%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=The+power+of+XMLUnit+with+google+Predicate&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F12%2Fthe-power-of-xmlunit-with-google-predicate%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=The+power+of+XMLUnit+with+google+Predicate&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F12%2Fthe-power-of-xmlunit-with-google-predicate%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F12%2Fthe-power-of-xmlunit-with-google-predicate%2F&amp;title=The+power+of+XMLUnit+with+google+Predicate&amp;summary=&amp;source=" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fmartinaharris.com%2F2010%2F12%2Fthe-power-of-xmlunit-with-google-predicate%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fmartinaharris.com%2F2010%2F12%2Fthe-power-of-xmlunit-with-google-predicate%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fmartinaharris.com%2F2010%2F12%2Fthe-power-of-xmlunit-with-google-predicate%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div><div class="dzone_button" style="float: right; margin-left: 5px;">
<script type="text/javascript">
var dzone_url = 'http://martinaharris.com/2010/12/the-power-of-xmlunit-with-google-predicate/';
var dzone_title = 'The power of XMLUnit with google Predicate';
var dzone_blurb = '';
var dzone_style = '2';
</script>
<script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script>
</div>]]></content:encoded>
			<wfw:commentRss>http://martinaharris.com/2010/12/the-power-of-xmlunit-with-google-predicate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The idea of non backward compatible Java?</title>
		<link>http://martinaharris.com/2010/09/the-idea-of-non-backward-compatible-java/</link>
		<comments>http://martinaharris.com/2010/09/the-idea-of-non-backward-compatible-java/#comments</comments>
		<pubDate>Thu, 23 Sep 2010 20:19:42 +0000</pubDate>
		<dc:creator>Martin Harris</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[jvm]]></category>

		<guid isPermaLink="false">http://martinaharris.com/?p=1065</guid>
		<description><![CDATA[I have not been blogging much, but I have been reading. Java is somewhat disappointing of late for various reasons.  Then I stumbled across this: the_next_big_jvm_language1 from Stephen Colebourne.  It seems like an interesting idea to me.  It would take some doing, &#8230; <a href="http://martinaharris.com/2010/09/the-idea-of-non-backward-compatible-java/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I have not been blogging much, but I have been reading. Java is somewhat disappointing of late for various reasons.  Then I stumbled across this: <a title="The next big JVM language" href="http://www.jroller.com/scolebourne/entry/the_next_big_jvm_language1" target="_blank">the_next_big_jvm_language1</a> from Stephen Colebourne.  It seems like an interesting idea to me.  It would take some doing, but the advantages could be huge.  It could encompass some of the best ideas and leave behind some of the old ideas we still struggle to shrug off.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2010%2F09%2Fthe-idea-of-non-backward-compatible-java%2F&amp;title=The+idea+of+non+backward+compatible+Java%3F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2010%2F09%2Fthe-idea-of-non-backward-compatible-java%2F&amp;title=The+idea+of+non+backward+compatible+Java%3F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2010%2F09%2Fthe-idea-of-non-backward-compatible-java%2F&amp;title=The+idea+of+non+backward+compatible+Java%3F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fmartinaharris.com%2F2010%2F09%2Fthe-idea-of-non-backward-compatible-java%2F&amp;headline=The+idea+of+non+backward+compatible+Java%3F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=The+idea+of+non+backward+compatible+Java%3F&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F09%2Fthe-idea-of-non-backward-compatible-java%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=The+idea+of+non+backward+compatible+Java%3F&amp;u=http%3A%2F%2Fmartinaharris.com%2F2010%2F09%2Fthe-idea-of-non-backward-compatible-java%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=The+idea+of+non+backward+compatible+Java%3F&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F09%2Fthe-idea-of-non-backward-compatible-java%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=The+idea+of+non+backward+compatible+Java%3F&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F09%2Fthe-idea-of-non-backward-compatible-java%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=The+idea+of+non+backward+compatible+Java%3F&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F09%2Fthe-idea-of-non-backward-compatible-java%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F09%2Fthe-idea-of-non-backward-compatible-java%2F&amp;title=The+idea+of+non+backward+compatible+Java%3F&amp;summary=&amp;source=" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fmartinaharris.com%2F2010%2F09%2Fthe-idea-of-non-backward-compatible-java%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fmartinaharris.com%2F2010%2F09%2Fthe-idea-of-non-backward-compatible-java%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fmartinaharris.com%2F2010%2F09%2Fthe-idea-of-non-backward-compatible-java%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div><div class="dzone_button" style="float: right; margin-left: 5px;">
<script type="text/javascript">
var dzone_url = 'http://martinaharris.com/2010/09/the-idea-of-non-backward-compatible-java/';
var dzone_title = 'The idea of non backward compatible Java?';
var dzone_blurb = '';
var dzone_style = '2';
</script>
<script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script>
</div>]]></content:encoded>
			<wfw:commentRss>http://martinaharris.com/2010/09/the-idea-of-non-backward-compatible-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Diary of a cloud backup – part 5 – Many Months Later</title>
		<link>http://martinaharris.com/2010/07/diary-of-a-cloud-backup-part-5-many-months-later/</link>
		<comments>http://martinaharris.com/2010/07/diary-of-a-cloud-backup-part-5-many-months-later/#comments</comments>
		<pubDate>Tue, 13 Jul 2010 21:04:19 +0000</pubDate>
		<dc:creator>Martin Harris</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[adsl]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[BE]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[crashplan]]></category>
		<category><![CDATA[diary]]></category>
		<category><![CDATA[draytek]]></category>
		<category><![CDATA[ISP]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[off-site]]></category>
		<category><![CDATA[reliability]]></category>
		<category><![CDATA[restore]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[storage]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://martinaharris.com/?p=1058</guid>
		<description><![CDATA[Several months ago now I posted a series of articles about offline backup.  Its a topic that more and more people are dealing with.  The realisation that you have many gigabytes of digital media that could easily be lost combined &#8230; <a href="http://martinaharris.com/2010/07/diary-of-a-cloud-backup-part-5-many-months-later/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Several months ago now I posted a series of articles about <a title="Backup posts" href="http://martinaharris.com/?s=backup" target="_blank">offline backup</a>.  Its a topic that more and more people are dealing with.  The realisation that you have many gigabytes of digital media that could easily be lost combined with better broadband is prompting a move to off-site backups.  So I posted up my exploration into backing up off-site.  Recently I have had a few people ask me if I am still happy with my final choice, <a title="Crashplan backup" href="http://www.crashplan.com" target="_blank">crashplan</a>.</p>
<h2>Even my mum uses it!</h2>
<p>I am very happy with the choice.  In the original posts I managed to setup three home machines, one Linux one windows and a mackbook.  Since then I added the iMac that I keep at my parents.  This is a sign of how easy crashplan is to maintain.  In a nutshell once you have set it up, you just forget about it.  This has to be one of the most important things about backing up.  It does not require any maintenance whatsoever.  This is encouraging when your several hundred miles away from one of the machines.  I can use the web to see if its backed up, and get alerts if a period goes by and it fails.  I just checked it now, 100% backed up today.</p>
<h2>What else?</h2>
<p>The backup client allows you to set how much bandwidth and CPU its allowed to use.  I use the default as I have never found it hogging either.  I am probably lucky that so far several backups on different machines have not started at the same time.  If it did its easily curable.</p>
<h2>In summary</h2>
<p>If you have anything worthwhile keeping, and want off-site backup &#8211; get a crashplan account.  If you have friends with space, use crashplan for free and backup to each others machines.  In fact do both!</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2010%2F07%2Fdiary-of-a-cloud-backup-part-5-many-months-later%2F&amp;title=Diary+of+a+cloud+backup+%E2%80%93+part+5+%E2%80%93+Many+Months+Later" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2010%2F07%2Fdiary-of-a-cloud-backup-part-5-many-months-later%2F&amp;title=Diary+of+a+cloud+backup+%E2%80%93+part+5+%E2%80%93+Many+Months+Later" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2010%2F07%2Fdiary-of-a-cloud-backup-part-5-many-months-later%2F&amp;title=Diary+of+a+cloud+backup+%E2%80%93+part+5+%E2%80%93+Many+Months+Later" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fmartinaharris.com%2F2010%2F07%2Fdiary-of-a-cloud-backup-part-5-many-months-later%2F&amp;headline=Diary+of+a+cloud+backup+%E2%80%93+part+5+%E2%80%93+Many+Months+Later" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Diary+of+a+cloud+backup+%E2%80%93+part+5+%E2%80%93+Many+Months+Later&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F07%2Fdiary-of-a-cloud-backup-part-5-many-months-later%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Diary+of+a+cloud+backup+%E2%80%93+part+5+%E2%80%93+Many+Months+Later&amp;u=http%3A%2F%2Fmartinaharris.com%2F2010%2F07%2Fdiary-of-a-cloud-backup-part-5-many-months-later%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Diary+of+a+cloud+backup+%E2%80%93+part+5+%E2%80%93+Many+Months+Later&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F07%2Fdiary-of-a-cloud-backup-part-5-many-months-later%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Diary+of+a+cloud+backup+%E2%80%93+part+5+%E2%80%93+Many+Months+Later&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F07%2Fdiary-of-a-cloud-backup-part-5-many-months-later%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Diary+of+a+cloud+backup+%E2%80%93+part+5+%E2%80%93+Many+Months+Later&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F07%2Fdiary-of-a-cloud-backup-part-5-many-months-later%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F07%2Fdiary-of-a-cloud-backup-part-5-many-months-later%2F&amp;title=Diary+of+a+cloud+backup+%E2%80%93+part+5+%E2%80%93+Many+Months+Later&amp;summary=&amp;source=" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fmartinaharris.com%2F2010%2F07%2Fdiary-of-a-cloud-backup-part-5-many-months-later%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fmartinaharris.com%2F2010%2F07%2Fdiary-of-a-cloud-backup-part-5-many-months-later%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fmartinaharris.com%2F2010%2F07%2Fdiary-of-a-cloud-backup-part-5-many-months-later%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div><div class="dzone_button" style="float: right; margin-left: 5px;">
<script type="text/javascript">
var dzone_url = 'http://martinaharris.com/2010/07/diary-of-a-cloud-backup-part-5-many-months-later/';
var dzone_title = 'Diary of a cloud backup – part 5 – Many Months Later';
var dzone_blurb = '';
var dzone_style = '2';
</script>
<script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script>
</div>]]></content:encoded>
			<wfw:commentRss>http://martinaharris.com/2010/07/diary-of-a-cloud-backup-part-5-many-months-later/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Building software with .NET dependencies in 2010</title>
		<link>http://martinaharris.com/2010/06/building-software-with-net-dependencies-in-2010/</link>
		<comments>http://martinaharris.com/2010/06/building-software-with-net-dependencies-in-2010/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 21:23:56 +0000</pubDate>
		<dc:creator>Martin Harris</dc:creator>
				<category><![CDATA[software development]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[dependency]]></category>
		<category><![CDATA[dll]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[silverlite]]></category>
		<category><![CDATA[wpf]]></category>

		<guid isPermaLink="false">http://martinaharris.com/?p=1047</guid>
		<description><![CDATA[I come from a Java background. So over the last decade I have moved away from managing dependencies on projects using jars in shared folders. Most professional java programmers have used Maven or Ivy. Recently I looked at Groovy and &#8230; <a href="http://martinaharris.com/2010/06/building-software-with-net-dependencies-in-2010/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I come from a Java background.  So over the last decade I have moved away from managing dependencies on projects using jars in shared folders.  Most professional java programmers have used Maven or Ivy.  Recently I looked at Groovy and Gradle.  All well and good.  What do programmers use for .NET, WPF and Silverlite?  I have been trying to find out and there are mixed opinions.  Some write scripts to copy .dll files, others rely on the Visual Studio solutions.  None of these solutions are scalable.  I found this project: <a href="http://npanday.codeplex.com/ " target="_blank">npanday</a> Has anyone used it on a large project?  I would love to hear your views or review.  What does microsoft do?  What do you do?</p>
<p>Please comment here I am very interested in hearing what other programmers do for .NET dependency management.</p>
<h2>Links for the Java world of dependency management</h2>
<p><a href="http://maven.apache.org/" target="_blank">http://maven.apache.org/</a></p>
<p><a href="http://ant.apache.org/ivy/" target="_blank">http://ant.apache.org/ivy/</a></p>
<p><a href="http://www.gradle.org/" target="_blank">http://www.gradle.org/</a></p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2010%2F06%2Fbuilding-software-with-net-dependencies-in-2010%2F&amp;title=Building+software+with+.NET+dependencies+in+2010" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2010%2F06%2Fbuilding-software-with-net-dependencies-in-2010%2F&amp;title=Building+software+with+.NET+dependencies+in+2010" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2010%2F06%2Fbuilding-software-with-net-dependencies-in-2010%2F&amp;title=Building+software+with+.NET+dependencies+in+2010" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fmartinaharris.com%2F2010%2F06%2Fbuilding-software-with-net-dependencies-in-2010%2F&amp;headline=Building+software+with+.NET+dependencies+in+2010" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Building+software+with+.NET+dependencies+in+2010&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F06%2Fbuilding-software-with-net-dependencies-in-2010%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Building+software+with+.NET+dependencies+in+2010&amp;u=http%3A%2F%2Fmartinaharris.com%2F2010%2F06%2Fbuilding-software-with-net-dependencies-in-2010%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Building+software+with+.NET+dependencies+in+2010&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F06%2Fbuilding-software-with-net-dependencies-in-2010%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Building+software+with+.NET+dependencies+in+2010&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F06%2Fbuilding-software-with-net-dependencies-in-2010%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Building+software+with+.NET+dependencies+in+2010&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F06%2Fbuilding-software-with-net-dependencies-in-2010%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F06%2Fbuilding-software-with-net-dependencies-in-2010%2F&amp;title=Building+software+with+.NET+dependencies+in+2010&amp;summary=&amp;source=" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fmartinaharris.com%2F2010%2F06%2Fbuilding-software-with-net-dependencies-in-2010%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fmartinaharris.com%2F2010%2F06%2Fbuilding-software-with-net-dependencies-in-2010%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fmartinaharris.com%2F2010%2F06%2Fbuilding-software-with-net-dependencies-in-2010%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div><div class="dzone_button" style="float: right; margin-left: 5px;">
<script type="text/javascript">
var dzone_url = 'http://martinaharris.com/2010/06/building-software-with-net-dependencies-in-2010/';
var dzone_title = 'Building software with .NET dependencies in 2010';
var dzone_blurb = '';
var dzone_style = '2';
</script>
<script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script>
</div>]]></content:encoded>
			<wfw:commentRss>http://martinaharris.com/2010/06/building-software-with-net-dependencies-in-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to link unitils to a spring wired datasource</title>
		<link>http://martinaharris.com/2010/05/unitils-spring-wired-datasource/</link>
		<comments>http://martinaharris.com/2010/05/unitils-spring-wired-datasource/#comments</comments>
		<pubDate>Mon, 31 May 2010 22:06:35 +0000</pubDate>
		<dc:creator>Martin Harris</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[datasource]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[junit]]></category>
		<category><![CDATA[spring]]></category>
		<category><![CDATA[unitils]]></category>

		<guid isPermaLink="false">http://martinaharris.com/?p=963</guid>
		<description><![CDATA[Unitils provides its own DataSource. This causes problems if you want to use Spring IOC to inject your own. There is a way around this but its not elegant. In future versions of unitils I believe the team is going &#8230; <a href="http://martinaharris.com/2010/05/unitils-spring-wired-datasource/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://unitils.org/" target="_blank">Unitils</a> provides its own DataSource. This causes problems if you want to use Spring IOC to inject your own. There is a way around this but its not elegant. In future versions of unitils I believe the team is going to provide better support for less intrusive methods. This post documents a way to use your own spring defined DataSource.<br />
<span id="more-963"></span><br />
Currently there is a unitils property that allows you to specify your own SpringDataSourceFactory.</p>
<p># unitils.properties</p>
<p># Assign the SpringDataSourceFactory DataSource.<br />
org.unitils.database.config.DataSourceFactory.implClassName= com.tek.design.unitils.SpringDataSourceFactory</p>
<p>Write your SpringDataSourceFactory and implement both DataSourceFactory and springs ApplicationContextAware interfaces. Then in the init method you will be able to fetch your spring DataSource bean from the application context using a service look up. Not ideal, but until future releases it will do just fine.</p>
<pre class="brush: java; gutter: false">package com.tek.design.unitils;

import java.util.Properties;
import javax.sql.DataSource;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.unitils.database.config.DataSourceFactory;

/**
 *
 * Unitil's provides a way to override the default DataSourceFactory.  This class provides facility to
 * spring wire in the same datasource used by your ORM by fetching it from the ApplicationContext.
 *
 * Use the org.unitils.database.config.DataSourceFactory.implClassName property to supply this factory to unitils.
 *
 */
public class SpringDataSourceFactory implements DataSourceFactory, ApplicationContextAware {

    private static ApplicationContext appContext;

    private DataSource dataSource;

    @Override
    public DataSource createDataSource() {
        return this.dataSource;
    }

    @Override
    public void init(Properties arg0) {

        if (null == this.dataSource) {
            String dataSourceBeanName = "TekDesignDataSource";
            this.dataSource = (DataSource) appContext.getBean(dataSourceBeanName);
            if (this.dataSource == null) {
                throw new SpringBeanLookupException(DataSource.class, "Cant find bean named " + dataSourceName);
            }
        }

    }

    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        appContext = applicationContext;

    }

}</pre>
<h2>Full unitils properties file:</h2>
<p># unitils.properties</p>
<p># Provide a CSV of all used database schemas. ie schema1,schema2.<br />
# The first schema name is the default one.<br />
# If no schema name is specified in a dbunit data set the default one is used.<br />
#<br />
# A schema names are case sensitive when surrounded by database identifier quotes (e.g. &#8220;&#8221; for oracle)<br />
#<br />
# Example unitils description using a schema<br />
#<br />
#&lt;dataset xmlns:frt=&#8221;FRUIT&#8221;&gt;<br />
#   &lt;frt:APPLE NAME=&#8221;COX&#8221;<br />
#                           DESCRIPTION=&#8221;[null]&#8221; /&gt;<br />
#&lt;/dataset&gt;<br />
#<br />
database.schemaNames=fruit,veg</p>
<p># This property specifies the underlying DBMS implementation. Supported values are &#8216;oracle&#8217;, &#8216;db2&#8242;, &#8216;mysql&#8217;, &#8216;hsqldb&#8217;,<br />
# &#8216;postgresql&#8217;, &#8216;derby&#8217; and &#8216;mssql&#8217;. The value of this property defines which vendor specific implementations of<br />
# DbSupport and ConstraintsDisabler are chosen.<br />
database.dialect=oracle</p>
<p># The dao tests often share the same data in the setup files, so its important to<br />
# rollback between tests otherwise constraints will be violated.<br />
DatabaseModule.Transactional.value.default=rollback</p>
<p># Assign the SpringDataSourceFactory DataSource.<br />
org.unitils.database.config.DataSourceFactory.implClassName=<br />
com.tek.design.unitils.SpringDataSourceFactory</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2010%2F05%2Funitils-spring-wired-datasource%2F&amp;title=How+to+link+unitils+to+a+spring+wired+datasource" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2010%2F05%2Funitils-spring-wired-datasource%2F&amp;title=How+to+link+unitils+to+a+spring+wired+datasource" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2010%2F05%2Funitils-spring-wired-datasource%2F&amp;title=How+to+link+unitils+to+a+spring+wired+datasource" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fmartinaharris.com%2F2010%2F05%2Funitils-spring-wired-datasource%2F&amp;headline=How+to+link+unitils+to+a+spring+wired+datasource" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=How+to+link+unitils+to+a+spring+wired+datasource&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F05%2Funitils-spring-wired-datasource%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=How+to+link+unitils+to+a+spring+wired+datasource&amp;u=http%3A%2F%2Fmartinaharris.com%2F2010%2F05%2Funitils-spring-wired-datasource%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=How+to+link+unitils+to+a+spring+wired+datasource&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F05%2Funitils-spring-wired-datasource%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=How+to+link+unitils+to+a+spring+wired+datasource&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F05%2Funitils-spring-wired-datasource%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=How+to+link+unitils+to+a+spring+wired+datasource&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F05%2Funitils-spring-wired-datasource%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F05%2Funitils-spring-wired-datasource%2F&amp;title=How+to+link+unitils+to+a+spring+wired+datasource&amp;summary=&amp;source=" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fmartinaharris.com%2F2010%2F05%2Funitils-spring-wired-datasource%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fmartinaharris.com%2F2010%2F05%2Funitils-spring-wired-datasource%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fmartinaharris.com%2F2010%2F05%2Funitils-spring-wired-datasource%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div><div class="dzone_button" style="float: right; margin-left: 5px;">
<script type="text/javascript">
var dzone_url = 'http://martinaharris.com/2010/05/unitils-spring-wired-datasource/';
var dzone_title = 'How to link unitils to a spring wired datasource';
var dzone_blurb = '';
var dzone_style = '2';
</script>
<script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script>
</div>]]></content:encoded>
			<wfw:commentRss>http://martinaharris.com/2010/05/unitils-spring-wired-datasource/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Unit Testing with a GigaSpaceFactoryBean</title>
		<link>http://martinaharris.com/2010/05/unit-testing-gigaspacefactorybean/</link>
		<comments>http://martinaharris.com/2010/05/unit-testing-gigaspacefactorybean/#comments</comments>
		<pubDate>Mon, 24 May 2010 10:29:26 +0000</pubDate>
		<dc:creator>Martin Harris</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[admin]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[gigaspacefactorybean]]></category>
		<category><![CDATA[gigaspaces]]></category>
		<category><![CDATA[junit]]></category>

		<guid isPermaLink="false">http://martinaharris.com/?p=976</guid>
		<description><![CDATA[I was talking to Shay Banon (Gigaspace Software Architect) he mentioned using GigaSpaceFactoryBean for writing gigaspace unit tests. I could find no examples on their site, although I concede it may be there somewhere. This shows post shows a simple &#8230; <a href="http://martinaharris.com/2010/05/unit-testing-gigaspacefactorybean/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I was talking to <span class="conn-name">Shay </span><span class="conn-name">Banon</span> (Gigaspace Software Architect) he mentioned using GigaSpaceFactoryBean for writing gigaspace unit tests.  I could find no examples on their site, although I concede it may be there somewhere.  This shows post shows a simple example.</p>
<p>He also mentioned using the admin api to do full end to end integration testing.  The admin api has huge potential as its able to control gigaspace containers, deploy into them and collect statistics.  Its a powerful api.</p>
<p>This is documented on their site: <a title="GS Admin API" href="http://www.gigaspaces.com/wiki/display/XAP7/Administration+and+Monitoring+API" target="_blank">http://www.gigaspaces.com/wiki/display/XAP7/Administration+and+Monitoring+API</a><br />
<span id="more-976"></span></p>
<h2>Example unit test using GigaSpaceFactoryBean</h2>
<p>The GigaSpaceFactoryBean does have javadoc: <a title="GIgaSpaceFactoryBean API" href="http://www.gigaspaces.com/docs/JavaDoc7.1/index.html" target="_blank">http://www.gigaspaces.com/docs/JavaDoc7.1/index.html</a>.  It can be used to provide a unit test with a gigaspace implementation for the duration of the test.</p>
<h3>Step 1 Provide a spring definition of the GigaSpaceFactoryBean</h3>
<pre class="brush: xml; gutter: false">&lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:os-core="http://www.openspaces.org/schema/core"
xmlns:os-events="http://www.openspaces.org/schema/events"
xmlns:os-remoting="http://www.openspaces.org/schema/remoting"
xmlns:os-sla="http://www.openspaces.org/schema/sla"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd
http://www.openspaces.org/schema/core http://www.openspaces.org/schema/core/openspaces-core.xsd
http://www.openspaces.org/schema/events http://www.openspaces.org/schema/events/openspaces-events.xsd
http://www.openspaces.org/schema/remoting http://www.openspaces.org/schema/remoting/openspaces-remoting.xsd
http://www.openspaces.org/schema/sla http://www.openspaces.org/schema/sla/openspaces-sla.xsd"&gt;

&lt;os-core:local-tx-manager id="gs.transactionManager" space="testGigaSpace" default-timeout="1000" /&gt;
&lt;os-core:space id="testGigaSpace" url="/./my-test-pu" /&gt;

&lt;bean id="gigaSpace"&gt;
&lt;property name="space" ref="testGigaSpace" /&gt;
&lt;property name="transactionManager" ref="gs.transactionManager" /&gt;
&lt;/bean&gt;</pre>
<p>Follow with other beans needed by the test.  I.e service beans and their dependencies.  Note that the space defined here will also need to be injected into services that need it.  So you will need to use the same bean id.  Careful separation of the spring files means you will be able to substitute a test space for the real one during testing.</p>
<h3>Step 2 Write a unit test</h3>
<pre class="brush: java; gutter: false; wrap-lines: false">@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:/somewhere/sometest-pu.xml")
public class SomeGigaspaceTest {

    @Resource
	private ServiceUnderTest myservice;

    @Resource
    private GigaSpace gigaSpace;

    @Before
    public void setUp() {

        // Setup anything you may wish to be
        // in the space before the test starts.
        this.gigaSpace.write(stuff);

    }

    @Test
    public void testSomething() throws InterruptedException {

        ImmutableSet dataFromGS = this.myservice.getStuff();
        assertFalse(dataFromGS.isEmpty());
        assertThat(dataFromGS.size(), is(100));

    }</pre>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2010%2F05%2Funit-testing-gigaspacefactorybean%2F&amp;title=Unit+Testing+with+a+GigaSpaceFactoryBean" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2010%2F05%2Funit-testing-gigaspacefactorybean%2F&amp;title=Unit+Testing+with+a+GigaSpaceFactoryBean" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2010%2F05%2Funit-testing-gigaspacefactorybean%2F&amp;title=Unit+Testing+with+a+GigaSpaceFactoryBean" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fmartinaharris.com%2F2010%2F05%2Funit-testing-gigaspacefactorybean%2F&amp;headline=Unit+Testing+with+a+GigaSpaceFactoryBean" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Unit+Testing+with+a+GigaSpaceFactoryBean&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F05%2Funit-testing-gigaspacefactorybean%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Unit+Testing+with+a+GigaSpaceFactoryBean&amp;u=http%3A%2F%2Fmartinaharris.com%2F2010%2F05%2Funit-testing-gigaspacefactorybean%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Unit+Testing+with+a+GigaSpaceFactoryBean&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F05%2Funit-testing-gigaspacefactorybean%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Unit+Testing+with+a+GigaSpaceFactoryBean&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F05%2Funit-testing-gigaspacefactorybean%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Unit+Testing+with+a+GigaSpaceFactoryBean&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F05%2Funit-testing-gigaspacefactorybean%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fmartinaharris.com%2F2010%2F05%2Funit-testing-gigaspacefactorybean%2F&amp;title=Unit+Testing+with+a+GigaSpaceFactoryBean&amp;summary=&amp;source=" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fmartinaharris.com%2F2010%2F05%2Funit-testing-gigaspacefactorybean%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fmartinaharris.com%2F2010%2F05%2Funit-testing-gigaspacefactorybean%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fmartinaharris.com%2F2010%2F05%2Funit-testing-gigaspacefactorybean%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div><div class="dzone_button" style="float: right; margin-left: 5px;">
<script type="text/javascript">
var dzone_url = 'http://martinaharris.com/2010/05/unit-testing-gigaspacefactorybean/';
var dzone_title = 'Unit Testing with a GigaSpaceFactoryBean';
var dzone_blurb = '';
var dzone_style = '2';
</script>
<script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script>
</div>]]></content:encoded>
			<wfw:commentRss>http://martinaharris.com/2010/05/unit-testing-gigaspacefactorybean/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

