<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.1.1" -->
<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/"
	>

<channel>
	<title>Virtual Surreality</title>
	<link>http://grahamis.com/blog</link>
	<description>It's too real to be true</description>
	<pubDate>Sun, 20 Jul 2008 21:25:49 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.1.1</generator>
	<language>en</language>
			<item>
		<title>A hope for children in Ethiopia</title>
		<link>http://grahamis.com/blog/2008/06/26/a-hope-for-children-in-ethiopia/</link>
		<comments>http://grahamis.com/blog/2008/06/26/a-hope-for-children-in-ethiopia/#comments</comments>
		<pubDate>Wed, 25 Jun 2008 19:30:25 +0000</pubDate>
		<dc:creator>Josh Graham</dc:creator>
		
		<category><![CDATA[Responsibility]]></category>

		<guid isPermaLink="false">http://grahamis.com/blog/2008/06/26/a-hope-for-children-in-ethiopia/</guid>
		<description><![CDATA[Lots of technology blogs piled up, but first thing&#8217;s first.
Last week I was in Chicago for some meetings at the ThoughtWorks head office. On the Monday night one of my colleagues hosted a charity fund raising dinner which included some magnificent Ethiopian food (and beer).
During a presentation, she told us personal anecdotes about a trip [...]]]></description>
			<content:encoded><![CDATA[<p>Lots of technology blogs piled up, but first thing&#8217;s first.</p>
<p>Last week I was in Chicago for some meetings at the <a href="http://www.thoughtworks.com/">ThoughtWorks</a> head office. On the Monday night one of my colleagues hosted a charity fund raising dinner which included some magnificent Ethiopian food (and beer).</p>
<p>During a presentation, she told us personal anecdotes about a trip to Africa and her visit to the <a href="http://ahopeforchildren.org/">AHOPE</a> orphanage. We were told a number of stories of the adoption of kids into the few countries that allow foreign adoption of children with HIV and how now, with the anti-retroviral medicines becoming more readily available, those kids have more than just short-term palliative care in the orphanage, they have a chance at being raised in a healthy, comfortable (albeit Western) home and leading an independent adult life.</p>
<p>As they say on the site, &#8216;Are you looking for just the right gift that isn&#8217;t just &#8220;stuff&#8221; for a person who has everything and needs nothing, whose heart would be touched by reaching out to a child who has nothing and needs everything?&#8217; Even if you&#8217;re not the next Brangelina, have a look at what you might want to donate to provide a lot of help for just a small amount.</p>
<p>This short video reminded me of being at my daughter&#8217;s pre-school - except of course these kids don&#8217;t have their parents picking them up after the songs are done. </p>
<p><center><a href="http://ahopeforchildren.org/video/ahope_movie1.mov"><img src='http://grahamis.com/blog/wp-content/uploads/2008/06/ahope_movie1_thumb.jpg' alt='AHOPE video' /></a></center></p>
]]></content:encoded>
			<wfw:commentRss>http://grahamis.com/blog/2008/06/26/a-hope-for-children-in-ethiopia/feed/</wfw:commentRss>
<enclosure url='http://ahopeforchildren.org/video/ahope_movie1.mov' length='9076134' type='video/quicktime'/>
		</item>
		<item>
		<title>The value of test names</title>
		<link>http://grahamis.com/blog/2008/05/29/the-value-of-test-names/</link>
		<comments>http://grahamis.com/blog/2008/05/29/the-value-of-test-names/#comments</comments>
		<pubDate>Thu, 29 May 2008 07:35:32 +0000</pubDate>
		<dc:creator>Josh Graham</dc:creator>
		
		<category><![CDATA[Coding]]></category>

		<category><![CDATA[Agile / Lean]]></category>

		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://grahamis.com/blog/2008/05/29/the-value-of-test-names/</guid>
		<description><![CDATA[My colleague Jay Fields recently blogged about the value of test names.
We had a little discussion about it yesterday on IM. Here&#8217;s a summary.
Josh Graham
I feel the test name is important for two reasons:
1) it is intentional programming - a neural pathway is established in your brain as you write the name of the test [...]]]></description>
			<content:encoded><![CDATA[<p>My colleague <a href="http://blog.jayfields.com/">Jay Fields</a> recently blogged about the <a href="http://blog.jayfields.com/2008/05/testing-value-of-test-names.html">value of test names</a>.</p>
<p>We had a little discussion about it yesterday on IM. Here&#8217;s a summary.</p>
<p><em>Josh Graham</em></p>
<blockquote><p>I feel the test name is important for two reasons:<br />
1) it is intentional programming - a neural pathway is established in your brain as you write the name of the test method so your mind tries to think about what the hell you are trying to achieve by doing all that typing<br />
2) for those test consumers you speak of to get a sense of the behaviour of the system as specified by the stories and high level acceptance criteria
</p></blockquote>
<p><em>Jay Fields</em></p>
<blockquote><p>2) [is] fair enough. Before introducing expectations on any client project I&#8217;ve brought it up as &#8220;what do you think about&#8221; and let the team decide. The last thing I want is an idea to be branded as bad because the wrong ppl used it<br />
1) I think is based on the person. I always found it 10 times harder to write a sentence, I just want to get to the code but, I&#8217;m crazy for making the code intention revealing
</p></blockquote>
<p><em>Josh Graham</em></p>
<blockquote><p>Picking a reasonable moniker for the test name is useful too, when something breaks (particularly if it occurs often)&#8230; &#8220;That #$%#$%! shouldRejectLostOrStolenCard test is failing again - must be the clearing house API has changed or they&#8217;ve crashed once more&#8221;.
</p></blockquote>
<p><em>Jay Fields</em></p>
<blockquote><p>yeah, that&#8217;s an interesting point<br />
wish you would have replied with that one, I&#8217;d have put it in my entry
</p></blockquote>
<p>We then talked about how to attach a moniker to the test on different languages - method names in Java being the easiest, while anonymous inner classes being a way to do so without having a moniker (other than perhaps a comment) at all.</p>
<p>I still contended that a method was a reasonable level of granularity to contain a test and use the method name as the moniker. A method (it&#8217;s declaration and its body) is location independent - it can be moved around in its module and you can still find it and its moniker appears in the abstract syntax tree so it&#8217;s very easy to find when using an editor that maintains an AST.</p>
<p>Jay&#8217;s responses to my scenarios in which this proves useful assume a short TDD cycle and also good developers.</p>
<p>So, while the test name may be superfluous in some cases, I don&#8217;t mind the extra mental effort of summarising the intent of the test into its name - and if that is overly difficult or not needed (both of which are plausible) then a banal label like enclosing the test in a method called &#8220;test1&#8243; is a small price for me to package it up in a manageable, easy-to-find chunk.</p>
<p>YMMV.</p>
]]></content:encoded>
			<wfw:commentRss>http://grahamis.com/blog/2008/05/29/the-value-of-test-names/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Just when you think recruiters couldn&#8217;t be more lame&#8230;</title>
		<link>http://grahamis.com/blog/2008/05/14/just-when-you-think-recruiters-couldnt-be-more-lame/</link>
		<comments>http://grahamis.com/blog/2008/05/14/just-when-you-think-recruiters-couldnt-be-more-lame/#comments</comments>
		<pubDate>Wed, 14 May 2008 06:43:15 +0000</pubDate>
		<dc:creator>Josh Graham</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://grahamis.com/blog/2008/05/14/just-when-you-think-recruiters-couldnt-be-more-lame/</guid>
		<description><![CDATA[
I am in IT. I think it&#8217;s pretty easy to find that out about me. Nothing in my CV indicates the ability to fly aeroplanes or helicopters.
Either the pattern matching spamming software has gone wonky, or this dude has set a new low watermark&#8230;
(with apologies to the half dozen recruiters I have met that are [...]]]></description>
			<content:encoded><![CDATA[<p>
I am in IT. I think it&#8217;s pretty easy to find that out about me. Nothing in my CV indicates the ability to fly aeroplanes or helicopters.</p>
<p>Either the pattern matching spamming software has gone wonky, or this dude has set a new low watermark&#8230;</p>
<p>(with apologies to the half dozen recruiters I have met that are anything but lame)</p>
<blockquote><p>I have 1750 hours on Saab 340B and 340B Plus with American Eagle and<br />
Pacific Coastal in the US and Canada respectively.</p>
<p>Is this a job for Rex?</p>
<p>> Hello Joshua<br />
><br />
> Apologies if this has made it to you by mistake&#8230;..<br />
><br />
> I am looking for EMB120 Pilots, Bell Helicopter pilots and Metroliner 23<br />
> Pilots and SAAB 340 pilots for FO and captain roles.<br />
><br />
> If you have 500+ hours on these types, please contact me as soon as you can.<br />
><br />
> Thanks.<br />
><br />
> Best Regards<br />
><br />
> (name removed to protect the stupid)<br />
> Recruitment Consultant
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://grahamis.com/blog/2008/05/14/just-when-you-think-recruiters-couldnt-be-more-lame/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Upcoming conferences</title>
		<link>http://grahamis.com/blog/2008/05/06/upcoming-conferences/</link>
		<comments>http://grahamis.com/blog/2008/05/06/upcoming-conferences/#comments</comments>
		<pubDate>Tue, 06 May 2008 08:30:59 +0000</pubDate>
		<dc:creator>Josh Graham</dc:creator>
		
		<category><![CDATA[Conference]]></category>

		<guid isPermaLink="false">http://grahamis.com/blog/2008/05/06/upcoming-conferences/</guid>
		<description><![CDATA[JoshG is a busy bee:

Australian Architecture Forum 2008 (Melbourne May 16 &#038; Sydney May 19): Final keynote (with Richard Durnall and Jim Webber respectively)
JAOO Australia 2008 (Brisbane May 28-30 &#038; Sydney June 2-4): organising
Enterprise 2.0 (Boston June 9-12): attending
Agile 2008 (Toronto August 4-8): speaking

If you are a software technologist in Australia, I strongly encourage you [...]]]></description>
			<content:encoded><![CDATA[<p>JoshG is a busy bee:</p>
<ul>
<li><a href="http://www.architectureforum.net.au/Pages/Keynote.aspx">Australian Architecture Forum</a> 2008 (Melbourne May 16 &#038; Sydney May 19): Final keynote (with <a href="http://www.richarddurnall.com/">Richard Durnall</a> and <a href="http://jim.webber.name/">Jim Webber</a> respectively)</li>
<li><a href="http://jaoo.com.au/">JAOO Australia</a> 2008 (Brisbane May 28-30 &#038; Sydney June 2-4): organising</li>
<li><a href="http://www.enterprise2conf.com/">Enterprise 2.0</a> (Boston June 9-12): attending</li>
<li><a href="http://www.agile2008.org/">Agile 2008</a> (Toronto August 4-8): speaking</li>
</ul>
<p>If you are a software technologist in Australia, I strongly encourage you to attend JAOO Australia as it is arguably the best technical conference in the world and it is certainly a boon to have it come to our neck of the woods. We are getting some superb international speakers that you&#8217;ll be able to interact with throughout the conference (they stay around at JAOO to learn too), and the more we support it, the more we&#8217;ll get next year.</p>
]]></content:encoded>
			<wfw:commentRss>http://grahamis.com/blog/2008/05/06/upcoming-conferences/feed/</wfw:commentRss>
		</item>
		<item>
		<title>CruiseControl comes of age. Cruise and relax.</title>
		<link>http://grahamis.com/blog/2008/04/23/cruisecontrol-comes-of-age-cruise-and-relax/</link>
		<comments>http://grahamis.com/blog/2008/04/23/cruisecontrol-comes-of-age-cruise-and-relax/#comments</comments>
		<pubDate>Wed, 23 Apr 2008 08:07:41 +0000</pubDate>
		<dc:creator>Josh Graham</dc:creator>
		
		<category><![CDATA[Agile / Lean]]></category>

		<guid isPermaLink="false">http://grahamis.com/blog/2008/04/23/cruisecontrol-comes-of-age-cruise-and-relax/</guid>
		<description><![CDATA[Hot on the heals of the Mingle 2.0 announcement, ThoughtWorks Studios has released information on the next generation of the world&#8217;s most popular Continuous Integration engine, CruiseControl, called Cruise.
It is a ground-up rewrite accomplished in around 8 months with an emphasis on catering to enterprise software development teams and large-scale applications. It combines sequential build [...]]]></description>
			<content:encoded><![CDATA[<p>Hot on the heals of the <a href="http://studios.thoughtworks.com/mingle-project-intelligence">Mingle</a> 2.0 announcement, ThoughtWorks Studios has released information on the next generation of the world&#8217;s most popular Continuous Integration engine, CruiseControl, called <a href="http://studios.thoughtworks.com/cruise">Cruise</a>.</p>
<p>It is a ground-up rewrite accomplished in around 8 months with an emphasis on catering to enterprise software development teams and large-scale applications. It combines sequential build pipelines (for, say, progressively more complicated or longer-running tests) with concurrent build tasks using a grid of agents.</p>
<p>The Cruise server can dispatch work to agents on ye olde CruiseControl servers. Although the Cruise product is <a href="http://opensource.thoughtworks.com/faq.html">not Open Source Software</a>, the licensing terms are generous and in line with Mingle. Pricing is yet to be released.</p>
<p>With the usability innovations of <a href="http://cruisecontrolrb.thoughtworks.com/">cc.rb</a> and the great foundation laid by <a href="http://cruisecontrol.sourceforge.net/">CruiseControl</a> and <a href="http://ccnet.thoughtworks.com/">CruiseControl.NET</a> we&#8217;re excited at the prospect of using the newest and best Continuous Integration tool on the market, from the <a href="http://www.thoughtworks.com/">company</a> who <a href="http://martinfowler.com/articles/continuousIntegration.html">changed the way</a> developers integrate their software changes and who <a href="http://www.pragprog.com/titles/twa">wrote the book</a> on build pipelines.</p>
]]></content:encoded>
			<wfw:commentRss>http://grahamis.com/blog/2008/04/23/cruisecontrol-comes-of-age-cruise-and-relax/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Running OS X on a PC</title>
		<link>http://grahamis.com/blog/2008/04/15/running-os-x-on-pc/</link>
		<comments>http://grahamis.com/blog/2008/04/15/running-os-x-on-pc/#comments</comments>
		<pubDate>Tue, 15 Apr 2008 10:30:41 +0000</pubDate>
		<dc:creator>Josh Graham</dc:creator>
		
		<category><![CDATA[LOL]]></category>

		<category><![CDATA[Operating Systems]]></category>

		<guid isPermaLink="false">http://grahamis.com/blog/2008/04/15/running-os-x-on-windows/</guid>
		<description><![CDATA[In response to Dr Nick&#8217;s technological feat, Ajey suggested I take on the much more challenging task of running OS X on a PC.
Result!!


Also, Mingle 2.0 is released! Another fantastic effort from the ThoughtWorks Studios crew.
]]></description>
			<content:encoded><![CDATA[<p>In response to <a href="http://ca.rroll.net/2008/04/13/this-is-what-a-mac-is-really-good-for/">Dr Nick&#8217;s</a> technological feat, Ajey suggested I take on the much more challenging task of running OS X on a PC.</p>
<p>Result!!</p>
<p><img src="http://grahamis.com/blog/wp-content/uploads/2008/04/img_3173.JPG" alt="Mac on Windows" width="100%"/></p>
<p><hr /></p>
<p>Also, <a href="http://studios.thoughtworks.com/mingle-project-intelligence">Mingle 2.0</a> is released! Another fantastic effort from the ThoughtWorks Studios crew.</p>
]]></content:encoded>
			<wfw:commentRss>http://grahamis.com/blog/2008/04/15/running-os-x-on-pc/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Computing fulfils the dreams</title>
		<link>http://grahamis.com/blog/2008/04/01/computing-fulfils-the-dreams/</link>
		<comments>http://grahamis.com/blog/2008/04/01/computing-fulfils-the-dreams/#comments</comments>
		<pubDate>Tue, 01 Apr 2008 05:39:24 +0000</pubDate>
		<dc:creator>Josh Graham</dc:creator>
		
		<category><![CDATA[Information Science]]></category>

		<category><![CDATA[LOL]]></category>

		<guid isPermaLink="false">http://grahamis.com/blog/2008/04/01/computing-fulfils-the-dreams/</guid>
		<description><![CDATA[Software intelligence has come of age!
My colleagues at ThoughtWorks Studios have cracked the automation of the software development process. Compuware, IBM and Borland have been trying for years. MDA is the useless love-child of CASE and UML. It takes true genius to solve this problem:
http://studios.thoughtworks.com/mingle-hidden/introducing-mingle-proj-o-matic
My erstwhile colleague, Jon Tirsen, now at Google in Sydney, has [...]]]></description>
			<content:encoded><![CDATA[<p>Software intelligence has come of age!</p>
<p>My colleagues at ThoughtWorks Studios have cracked the automation of the software development process. Compuware, IBM and Borland have been trying for years. MDA is the useless love-child of CASE and UML. It takes true genius to solve this problem:</p>
<p><a href="http://studios.thoughtworks.com/mingle-hidden/introducing-mingle-proj-o-matic">http://studios.thoughtworks.com/mingle-hidden/introducing-mingle-proj-o-matic</a></p>
<p>My erstwhile colleague, Jon Tirsen, now at Google in Sydney, has also announced a truly amazing feat in blending statistical analysis, complex hypercube maths, and their super clever search engine. I&#8217;m proud that Jon, although Swedish, has embraced the Aussie vernacular and called the product &#8220;gDay&#8221; (which is supposed to be &#8220;Google Day&#8221; but we all know where he keeps his surfboard). I&#8217;m also happy that they put <a href="http://en.wikipedia.org/wiki/Graham's_number">Graham&#8217;s number</a> to good use in this truly extraordinary achievement.</p>
<p><a href="http://google.com.au/gday">http://google.com.au/gday</a></p>
]]></content:encoded>
			<wfw:commentRss>http://grahamis.com/blog/2008/04/01/computing-fulfils-the-dreams/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ThoughtWorks Anthology</title>
		<link>http://grahamis.com/blog/2008/03/23/thoughtworks-anthology/</link>
		<comments>http://grahamis.com/blog/2008/03/23/thoughtworks-anthology/#comments</comments>
		<pubDate>Sat, 22 Mar 2008 20:39:27 +0000</pubDate>
		<dc:creator>Josh Graham</dc:creator>
		
		<category><![CDATA[Coding]]></category>

		<category><![CDATA[Architecture]]></category>

		<category><![CDATA[Agile / Lean]]></category>

		<category><![CDATA[Information Science]]></category>

		<category><![CDATA[Open Source]]></category>

		<category><![CDATA[Reading]]></category>

		<guid isPermaLink="false">http://grahamis.com/blog/2008/03/23/thoughtworks-anthology/</guid>
		<description><![CDATA[My CTO, Rebecca Parsons, announced the publication of the ThoughtWorks Anthology a few days ago:

I am thrilled to announce that the ThoughtWorks Anthology is now ON SALE!  
http://www.pragprog.com/titles/twa
There are essays by Roy and Michael Robinson, Martin, Neal Ford, Tiffany Lentz, Stelios Pantazopoulos, Ian Robinson, Erik Doernenburg, Kristan Vingrys and James Bull, as well as [...]]]></description>
			<content:encoded><![CDATA[<p>My CTO, Rebecca Parsons, announced the publication of the <a href="http://www.pragprog.com/titles/twa">ThoughtWorks Anthology</a> a few days ago:</p>
<blockquote><p>
I am thrilled to announce that the ThoughtWorks Anthology is now ON SALE!  </p>
<p><a href="http://www.pragprog.com/titles/twa">http://www.pragprog.com/titles/twa</a></p>
<p>There are essays by Roy and Michael Robinson, Martin, Neal Ford, Tiffany Lentz, Stelios Pantazopoulos, Ian Robinson, Erik Doernenburg, Kristan Vingrys and James Bull, as well as ex-TWers Dave Farley, Jeff Bay and Julian Simpson.  (And of course your&#8217;s truly made her own contribution).  Mike Aguilar wrote the introduction.  </p>
<p>Some comments that appear in the book:</p>
<p>Jim Fischer writes, &#8220;The anthology provides a peek into the diversity of views and perspectives held by a company that dares to take on the long-accepted tenet of the IT industry that custom software is too hard and too costly.&#8221;</p>
<p>Big Dave Thomas writes, &#8220;Software is in many ways a team sport, and the leaders shape the software culture.  Often successful organizations don&#8217;t take the time to document them, and hence others don&#8217;t benefit from them.  This interesting collection of personal essays gives a glimpse into the culture of ThoughtWorks through some of its leaders.&#8221;</p>
<p>I&#8217;m really excited that this project has come to fruition and I hope you all enjoy what you see.</p>
<p>Rebecca
</p></blockquote>
<p>I was lucky enough to review the content earlier this year. It&#8217;s a keeper.</p>
<p>UPDATE: Some press&#8230; <a href="http://www.sys-con.com/read/541124.htm">http://www.sys-con.com/read/541124.htm</a></p>
]]></content:encoded>
			<wfw:commentRss>http://grahamis.com/blog/2008/03/23/thoughtworks-anthology/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Thaz my bro</title>
		<link>http://grahamis.com/blog/2008/03/18/thaz-my-bro/</link>
		<comments>http://grahamis.com/blog/2008/03/18/thaz-my-bro/#comments</comments>
		<pubDate>Tue, 18 Mar 2008 08:46:15 +0000</pubDate>
		<dc:creator>Josh Graham</dc:creator>
		
		<category><![CDATA[Philosophy]]></category>

		<category><![CDATA[Information Science]]></category>

		<category><![CDATA[Responsibility]]></category>

		<guid isPermaLink="false">http://grahamis.com/blog/2008/03/18/thaz-my-bro/</guid>
		<description><![CDATA[http://money.cnn.com/2008/03/14/technology/kirkpatrick_thoughtworks.fortune/index.htm
Nuff said (although journalists never quite get it.)
]]></description>
			<content:encoded><![CDATA[<p><a href="http://money.cnn.com/2008/03/14/technology/kirkpatrick_thoughtworks.fortune/index.htm">http://money.cnn.com/2008/03/14/technology/kirkpatrick_thoughtworks.fortune/index.htm</a></p>
<p>Nuff said (although journalists never quite get it.)</p>
]]></content:encoded>
			<wfw:commentRss>http://grahamis.com/blog/2008/03/18/thaz-my-bro/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Jamming for Inveneo</title>
		<link>http://grahamis.com/blog/2008/02/29/jamming-for-inveneo/</link>
		<comments>http://grahamis.com/blog/2008/02/29/jamming-for-inveneo/#comments</comments>
		<pubDate>Fri, 29 Feb 2008 06:55:44 +0000</pubDate>
		<dc:creator>Josh Graham</dc:creator>
		
		<category><![CDATA[Coding]]></category>

		<category><![CDATA[Architecture]]></category>

		<category><![CDATA[Agile / Lean]]></category>

		<category><![CDATA[Philosophy]]></category>

		<category><![CDATA[Open Source]]></category>

		<category><![CDATA[Operating Systems]]></category>

		<category><![CDATA[Responsibility]]></category>

		<guid isPermaLink="false">http://grahamis.com/blog/2008/02/29/jamming-for-inveneo/</guid>
		<description><![CDATA[After a meeting of the office of the CTO, most of us stayed around in our San Francisco office for a few days to do some podcasts and to participate in a Code Jam for Inveneo, a not-for-profit who provide computers and connectivity to developing countries (especially their schools, hospitals, and poorer villages).
They install a [...]]]></description>
			<content:encoded><![CDATA[<p>After a meeting of the office of the CTO, most of us stayed around in our San Francisco office for a few days to do some podcasts and to participate in a Code Jam for <a href="http://inveneo.org/">Inveneo</a>, a not-for-profit who provide computers and connectivity to developing countries (especially their schools, hospitals, and poorer villages).</p>
<p>They install a server in, say, a hospital with a few lower-powered, custom desktops (almost iMac in configuration). These, as well as the servers, can run off solar panels for power.</p>
<p>We were presented with a worthwhile problem with a number of interesting constraints:</p>
<ul>
<li>Low-power server running Ubuntu, with two small SATA hard disks in a Linux software RAID-1 array</li>
<li>VMWare images of the servers for testing</li>
<li>Python, bash, mdadm, and beep as our &#8220;programming languages&#8221;</li>
</ul>
<p>When a RAID array fails, we need to alert any (if any) humans who are near the server. This can be interesting as the only things nearby might be the tree it is mounted in with a long-range WiFi, or the goat who uses it as a heat source at night. This means that any alert should be sufficiently frequent and annoying for the locals to contact someone who can let the support technician know. The conflict is that it also might be the nurses in their office at the hospital who have work to do and don&#8217;t want to be disturbed.</p>
<p>The solution was to use the PC speaker to beep. We can control the pitch and duration of the beep. Some combinations sounded too much like an ECG machine so that was no good. In the end, we chose a simple rising scale that would sound odd in any environment (except, perhaps, in a Mike Oldfield recording). This is repeated by default every 30 minutes.</p>
<p>We also had to send an email to the support technician. This doesn&#8217;t work when the server doesn&#8217;t actually have any connectivity (as some are used only as a local communications hub), or when connectivity is unreliable. Even then, many of the technicians are hours or even days away from the servers.</p>
<p>As many of the technicians aren&#8217;t particularly technical, we also had help by identifying which of the two disks had failed and allow them to simply change the one labelled &#8220;Disk 1&#8243; or &#8220;Disk 2&#8243;. Serial numbers are good for this but VM hard disks don&#8217;t have serial numbers (I think that&#8217;s a feature request to both VMWare and Parallels).</p>
<p>We had Jeff Wishnie from Inveneo as the customer, Anda Abramovici as IM, Jonny Leroy as BA, Paul Hammant and Chad Wathington as QA, and the star developer crew of Drew Olson, Sammy Zahabi, Ola Bini, Erik Doernenburg and your&#8217;s truly. We quickly learned the following:</p>
<ul>
<li>The skills we needed (and had, just a little rusty) were more along the lines of Unix devices, shell, ASCII control characters, and simulation</li>
<li>Python sucks (a bad tradesman blames his tools? perhaps - but it still sucks)</li>
</ul>
<p>Anyway, we got most of what we wanted done in the time, and given the context, more than we anticipated. But we all would have liked to get a lot more done and would have if we were using our tools of choice (which are chosen for very good reasons).</p>
<p>Nonetheless, we&#8217;re doing it for the kids and it was great!</p>
<p>What a buzz. Super Agile. Super Fun. Go Inveneo, you rock!!</p>
]]></content:encoded>
			<wfw:commentRss>http://grahamis.com/blog/2008/02/29/jamming-for-inveneo/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
