<?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:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Not in code</title>
	<atom:link href="http://blog.hiremaga.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.hiremaga.com</link>
	<description>Software is about people</description>
	<pubDate>Sun, 16 Nov 2008 21:19:39 +0000</pubDate>
	<generator>http://wordpress.org/?v=MU</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<image>
		<url>http://www.gravatar.com/blavatar/1bb58d250bfeaaf97c6daf48b9a54b30?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Not in code</title>
		<link>http://blog.hiremaga.com</link>
	</image>
			<item>
		<title>I&#8217;ve moved to San Francisco</title>
		<link>http://blog.hiremaga.com/2008/11/17/ive-moved-to-san-francisco/</link>
		<comments>http://blog.hiremaga.com/2008/11/17/ive-moved-to-san-francisco/#comments</comments>
		<pubDate>Sun, 16 Nov 2008 21:06:02 +0000</pubDate>
		<dc:creator>hiremaga</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[personal sanfrancisco pivotal]]></category>

		<guid isPermaLink="false">http://notincode.wordpress.com/?p=234</guid>
		<description><![CDATA[I moved here 2 weeks ago, on the 1st of November, to work for the awesome Pivotal Labs and it&#8217;s been a really good start.
I&#8217;ve found a nice apartment in SOMA with a really cool roommate. The apartment even has a view of sorts of the Bay Bridge and is about a 20 minute walk [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I moved here 2 weeks ago, on the 1st of November, to work for the awesome <a href="http://www.pivotallabs.com/" target="_blank">Pivotal Labs</a> and it&#8217;s been a really good start.</p>
<p>I&#8217;ve found a nice apartment in <a href="http://flickr.com/photos/tags/soma/clusters/sanfrancisco-california-sf/" target="_blank">SOMA</a> with a really cool roommate. The apartment even has a view of sorts of the <a href="http://flickr.com/photos/cooldesignz/2588441041/" target="_blank">Bay Bridge</a> and is about a 20 minute walk to work. This means I&#8217;m easily getting my <a href="http://www.thewalkingsite.com/10000steps.html" target="_blank">10000 steps a day</a>.</p>
<p>My first week at Pivotal was spent in the <a href="http://www.pivotaltracker.com/" target="_blank">Tracker</a> team, the electronic backbone of <a href="http://pivotallabs.com/how" target="_blank">Pivotal&#8217;s XP flavored methodology</a> (<a href="http://www.pivotaltracker.com/signup/new">you can also use Tracker for free</a>).</p>
<p>The team has been really great - they&#8217;re all really strong developers, quietly confident but balanced, focused and pragmatic. This seems to consistent with everyone I&#8217;ve met at Pivotal. Everyone has been very warm and welcoming, and they all seem like well adjusted individuals - a good sign.</p>
<p>Good times.</p>
&nbsp;&nbsp;&nbsp;Tagged: personal sanfrancisco pivotal&nbsp;&nbsp;&nbsp;<a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/notincode.wordpress.com/234/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/notincode.wordpress.com/234/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/notincode.wordpress.com/234/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/notincode.wordpress.com/234/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/notincode.wordpress.com/234/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/notincode.wordpress.com/234/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/notincode.wordpress.com/234/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/notincode.wordpress.com/234/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/notincode.wordpress.com/234/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/notincode.wordpress.com/234/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.hiremaga.com&blog=2620597&post=234&subd=notincode&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://blog.hiremaga.com/2008/11/17/ive-moved-to-san-francisco/feed/</wfw:commentRss>
	
		<media:content url="http://www.gravatar.com/avatar/cd84e3662c2772ec1f22649b9aa7464a?s=96&#38;d=identicon" medium="image">
			<media:title type="html">hiremaga</media:title>
		</media:content>
	</item>
		<item>
		<title>Screen sharing client in OS X Leopard</title>
		<link>http://blog.hiremaga.com/2008/11/17/screen-sharing-client-in-os-x-leopard/</link>
		<comments>http://blog.hiremaga.com/2008/11/17/screen-sharing-client-in-os-x-leopard/#comments</comments>
		<pubDate>Sun, 16 Nov 2008 20:36:08 +0000</pubDate>
		<dc:creator>hiremaga</dc:creator>
		
		<category><![CDATA[tech]]></category>

		<category><![CDATA[osx screensharing]]></category>

		<guid isPermaLink="false">http://notincode.wordpress.com/?p=232</guid>
		<description><![CDATA[Because I keep forgetting how to start it.
open /System/Library/CoreServices/Screen\ Sharing.app/
And it seems much better than COTVNC.
&#160;&#160;&#160;Tagged: osx screensharing&#160;&#160;&#160;     ]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Because I keep forgetting how to start it.</p>
<p><code>open /System/Library/CoreServices/Screen\ Sharing.app/</code></p>
<p>And it seems much better than COTVNC.</p>
&nbsp;&nbsp;&nbsp;Tagged: osx screensharing&nbsp;&nbsp;&nbsp;<a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/notincode.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/notincode.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/notincode.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/notincode.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/notincode.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/notincode.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/notincode.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/notincode.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/notincode.wordpress.com/232/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/notincode.wordpress.com/232/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.hiremaga.com&blog=2620597&post=232&subd=notincode&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://blog.hiremaga.com/2008/11/17/screen-sharing-client-in-os-x-leopard/feed/</wfw:commentRss>
	
		<media:content url="http://www.gravatar.com/avatar/cd84e3662c2772ec1f22649b9aa7464a?s=96&#38;d=identicon" medium="image">
			<media:title type="html">hiremaga</media:title>
		</media:content>
	</item>
		<item>
		<title>Testing instance methods in a Module with Object.extend()</title>
		<link>http://blog.hiremaga.com/2008/06/07/testing-instance-methods-in-a-module-with-objectextend/</link>
		<comments>http://blog.hiremaga.com/2008/06/07/testing-instance-methods-in-a-module-with-objectextend/#comments</comments>
		<pubDate>Fri, 06 Jun 2008 17:15:19 +0000</pubDate>
		<dc:creator>hiremaga</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

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

		<guid isPermaLink="false">http://notincode.wordpress.com/?p=228</guid>
		<description><![CDATA[A common type of mixin I&#8217;ve encountered involves a Module with instance methods which is included into a Class.
Writing an orthogonal test for a target Class is easy enough, you simply mock/stub any methods the Module provides. 
Testing the Module elegantly however is less obvious, atleast it wasn&#8217;t obvious to me.
One approach I&#8217;ve used is [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>A common type of mixin I&#8217;ve encountered involves a Module with instance methods which is <a href="http://www.ruby-doc.org/core/classes/Module.html#M001661">included</a> into a Class.</p>
<p>Writing an orthogonal test for a target Class is easy enough, you simply mock/stub any methods the Module provides. </p>
<p>Testing the Module elegantly however is less obvious, atleast it wasn&#8217;t obvious to me.</p>
<p>One approach I&#8217;ve used is to create a fake class for the test, include the Module and finally instantiate this for the test. But there&#8217;s the issue of testing the Module&#8217;s interaction with the including Class. For this you could partially mock/stub the test class instance, but there&#8217;s a simpler approach that avoids the test class altogether: create an ordinary rSpec mock instance and <a href="http://www.ruby-doc.org/core/classes/Object.html#M000337">extend</a> it with the Module.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/notincode.wordpress.com/228/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/notincode.wordpress.com/228/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/notincode.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/notincode.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/notincode.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/notincode.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/notincode.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/notincode.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/notincode.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/notincode.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/notincode.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/notincode.wordpress.com/228/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.hiremaga.com&blog=2620597&post=228&subd=notincode&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://blog.hiremaga.com/2008/06/07/testing-instance-methods-in-a-module-with-objectextend/feed/</wfw:commentRss>
	
		<media:content url="http://www.gravatar.com/avatar/cd84e3662c2772ec1f22649b9aa7464a?s=96&#38;d=identicon" medium="image">
			<media:title type="html">hiremaga</media:title>
		</media:content>
	</item>
		<item>
		<title>Metakoans</title>
		<link>http://blog.hiremaga.com/2008/06/07/metakoans/</link>
		<comments>http://blog.hiremaga.com/2008/06/07/metakoans/#comments</comments>
		<pubDate>Fri, 06 Jun 2008 16:59:35 +0000</pubDate>
		<dc:creator>hiremaga</dc:creator>
		
		<category><![CDATA[tech]]></category>

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

		<guid isPermaLink="false">http://notincode.wordpress.com/?p=231</guid>
		<description><![CDATA[Looking to exercise your Ruby muscles? Why not try the Metakoans RubyQuiz. I did this recently and found it helped my understanding of Ruby&#8217;s meta programming facilities.
My solution&#8217;s here.
       ]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Looking to exercise your Ruby muscles? Why not try the <a href="http://www.rubyquiz.com/quiz67.html">Metakoans</a> RubyQuiz. I did this recently and found it helped my understanding of Ruby&#8217;s meta programming facilities.</p>
<p>My solution&#8217;s <a href="http://pastie.org/210250">here</a>.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/notincode.wordpress.com/231/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/notincode.wordpress.com/231/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/notincode.wordpress.com/231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/notincode.wordpress.com/231/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/notincode.wordpress.com/231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/notincode.wordpress.com/231/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/notincode.wordpress.com/231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/notincode.wordpress.com/231/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/notincode.wordpress.com/231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/notincode.wordpress.com/231/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/notincode.wordpress.com/231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/notincode.wordpress.com/231/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.hiremaga.com&blog=2620597&post=231&subd=notincode&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://blog.hiremaga.com/2008/06/07/metakoans/feed/</wfw:commentRss>
	
		<media:content url="http://www.gravatar.com/avatar/cd84e3662c2772ec1f22649b9aa7464a?s=96&#38;d=identicon" medium="image">
			<media:title type="html">hiremaga</media:title>
		</media:content>
	</item>
		<item>
		<title>Use before reuse</title>
		<link>http://blog.hiremaga.com/2008/04/12/use-before-reuse/</link>
		<comments>http://blog.hiremaga.com/2008/04/12/use-before-reuse/#comments</comments>
		<pubDate>Sat, 12 Apr 2008 11:17:29 +0000</pubDate>
		<dc:creator>hiremaga</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[software quality]]></category>

		<guid isPermaLink="false">http://notincode.wordpress.com/?p=229</guid>
		<description><![CDATA[Please.
       ]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Please.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/notincode.wordpress.com/229/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/notincode.wordpress.com/229/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/notincode.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/notincode.wordpress.com/229/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/notincode.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/notincode.wordpress.com/229/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/notincode.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/notincode.wordpress.com/229/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/notincode.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/notincode.wordpress.com/229/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/notincode.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/notincode.wordpress.com/229/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.hiremaga.com&blog=2620597&post=229&subd=notincode&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://blog.hiremaga.com/2008/04/12/use-before-reuse/feed/</wfw:commentRss>
	
		<media:content url="http://www.gravatar.com/avatar/cd84e3662c2772ec1f22649b9aa7464a?s=96&#38;d=identicon" medium="image">
			<media:title type="html">hiremaga</media:title>
		</media:content>
	</item>
		<item>
		<title>Why I test, and why do you test?</title>
		<link>http://blog.hiremaga.com/2008/02/07/why-i-test-and-why-do-you-test/</link>
		<comments>http://blog.hiremaga.com/2008/02/07/why-i-test-and-why-do-you-test/#comments</comments>
		<pubDate>Thu, 07 Feb 2008 10:42:12 +0000</pubDate>
		<dc:creator>hiremaga</dc:creator>
		
		<category><![CDATA[tech]]></category>

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

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

		<guid isPermaLink="false">http://notincode.wordpress.com/?p=226</guid>
		<description><![CDATA[This is most of an email I sent to an internal Cogent mailing list after an entertaining exchange between a couple of the guys about testing styles/philosophies. Craig suggested I post it here, so here &#8217;tis :)
&#8211; snip &#8211;
First about unit and integration tests.

I write unit tests for focused feedback; i.e. tell me exactly what [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>This is most of an email I sent to an internal <a href="http://www.cogentconsulting.com.au" target="_blank">Cogent</a> mailing list after an entertaining exchange between a couple of the guys about testing styles/philosophies. <a href="http://www.craigambrose.com/" target="_blank">Craig</a> suggested I post it here, so here &#8217;tis :)</p>
<p>&#8211; snip &#8211;</p>
<p>First about unit and integration tests.</p>
<ul>
<li>I write <b>unit tests</b> for <b>focused feedback</b>; i.e. tell me exactly what broke. To keep them focused I try to keep them orthogonal which usually means using fakes of any collaborators.</li>
<li>I write <b>integration tests</b> where I need more <b>safety</b> than a unit test will offer. They seem even more important when I&#8217;m stubbing and mocking a lot in a dynamically typed language like Ruby.</li>
<li>I write <b>both</b> types of tests to help <b>convey intent</b> and <b>understand the problem</b> better. I TDD with either a unit test or integration test, whichever feels natural.</li>
</ul>
<p>Then about <a href="http://martinfowler.com/articles/mocksArentStubs.html" target="_blank">interaction and state based testing</a>.</p>
<ul>
<li>I pick the approach that feels natural at the time, favouring neither by default. I struggle with rules about when to use which.</li>
<li>I dislike interaction tests that look suspiciously similar/symmetrical/coupled to the code they refer to. I expect a test to earn its right to exist, and therefore add to the size of the codebase and build&#8217;s time, by either conveying intent that is difficult to express in the code itself (which is why I love the term &#8216;<a href="http://rspec.info/examples.html" target="_blank">example</a>&#8216;) or addressing some other consciously identified risk.</li>
</ul>
<p>Your thoughts?</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/notincode.wordpress.com/226/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/notincode.wordpress.com/226/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/notincode.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/notincode.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/notincode.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/notincode.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/notincode.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/notincode.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/notincode.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/notincode.wordpress.com/226/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/notincode.wordpress.com/226/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/notincode.wordpress.com/226/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.hiremaga.com&blog=2620597&post=226&subd=notincode&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://blog.hiremaga.com/2008/02/07/why-i-test-and-why-do-you-test/feed/</wfw:commentRss>
	
		<media:content url="http://www.gravatar.com/avatar/cd84e3662c2772ec1f22649b9aa7464a?s=96&#38;d=identicon" medium="image">
			<media:title type="html">hiremaga</media:title>
		</media:content>
	</item>
		<item>
		<title>Don&#8217;t get forked by rSpec</title>
		<link>http://blog.hiremaga.com/2008/01/31/dont-get-forked-by-rspec/</link>
		<comments>http://blog.hiremaga.com/2008/01/31/dont-get-forked-by-rspec/#comments</comments>
		<pubDate>Thu, 31 Jan 2008 12:24:12 +0000</pubDate>
		<dc:creator>hiremaga</dc:creator>
		
		<category><![CDATA[tech]]></category>

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

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

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

		<guid isPermaLink="false">http://notincode.wordpress.com/?p=225</guid>
		<description><![CDATA[A 2 week break over christmas/new years and pairing with the incandescent Mark Ryall seemed to make our unit test (spec?) suite time of 200 seconds feel excruciatingly slow. I&#8217;m only kidding Mark, I really do enjoy pairing with you. :)
(How do you punctuate around a smiley?)
Feeling even more (irrationally) intolerant than usual, I convinced [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>A 2 week break over christmas/new years and pairing with the incandescent Mark Ryall seemed to make our unit test (spec?) suite time of 200 seconds feel excruciatingly slow. I&#8217;m only kidding Mark, I really do enjoy pairing with you. :)</p>
<p>(How do you punctuate around a smiley?)</p>
<p>Feeling even more (irrationally) intolerant than usual, I convinced Mark to let us switch away from the reams of text produced by rSpec&#8217;s &#8217;specdoc&#8217; format to its more succinct &#8216;progress&#8217; format and we immediately noticed something odd. Each example was being run 7 times, in fact the entire suite was being run several times with runs interleaved!</p>
<p>Some perplexed investigation and educated guessing finally revealed the cause.</p>
<p>While rSpec gives you a SpecRunner for free via an at_exit hook, we use a script to explicitly invoke a CommandLine::SpecRunner. This is in part because our project is built by Ant (it&#8217;s a polygot-project; a mishmash of Java, Ruby, Python and, somewhat unfortunately IMO, Bash) and in part just because &#8230;</p>
<p>rSpec&#8217;s at_exit hook allows you to run your specs directly via the ruby command (e.g. $ ruby three_is_greater_than_four_spec.rb) and is responsible enough to ensure you haven&#8217;t already run these specs with a custom runner. Except if you call Process.fork during an example.</p>
<p>When you fork in an example the at_exit hook gets replicated in the child process and when this child process tries to exit, you guessed it, it runs your specs. Turns out we had quite a few unstubbed forks in our unit level specs. The immediate remedy was to stub these; they are unit level specs which should after all  be orthogonal.</p>
<p>To make sure we aren&#8217;t inadvertently bitten again we&#8217;ve intercepted rSpec&#8217;s at_exit hook from any child processes by creating our own at_exit hook which exits without executing any other at_exit blocks, i.e. :at_exit { exit! }</p>
<p>Our 830ish specs now run in 15 seconds. The numbers don&#8217;t quite add up (200 seconds / 7 processes &gt; 15 seconds), but since I&#8217;m certain none are being skipped,  I&#8217;m content with this outcome.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/notincode.wordpress.com/225/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/notincode.wordpress.com/225/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/notincode.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/notincode.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/notincode.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/notincode.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/notincode.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/notincode.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/notincode.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/notincode.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/notincode.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/notincode.wordpress.com/225/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.hiremaga.com&blog=2620597&post=225&subd=notincode&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://blog.hiremaga.com/2008/01/31/dont-get-forked-by-rspec/feed/</wfw:commentRss>
	
		<media:content url="http://www.gravatar.com/avatar/cd84e3662c2772ec1f22649b9aa7464a?s=96&#38;d=identicon" medium="image">
			<media:title type="html">hiremaga</media:title>
		</media:content>
	</item>
		<item>
		<title>Another blog?</title>
		<link>http://blog.hiremaga.com/2008/01/26/another-blog/</link>
		<comments>http://blog.hiremaga.com/2008/01/26/another-blog/#comments</comments>
		<pubDate>Sat, 26 Jan 2008 01:44:24 +0000</pubDate>
		<dc:creator>hiremaga</dc:creator>
		
		<category><![CDATA[meta]]></category>

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

		<guid isPermaLink="false">http://notincode.wordpress.com/?p=3</guid>
		<description><![CDATA[I hope this is one of only a few meta-posts on this blog. The plan is to move the content from my existing blog to this one and then gradually stir a more technical flavour into future posts. Textdrive has served me well for the last few years, but I&#8217;ve opted for the flexibility of [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I hope this is one of only a few meta-posts on this blog. The plan is to move the content from my existing blog to this one and then gradually stir a more technical flavour into future posts. Textdrive has served me well for the last few years, but I&#8217;ve opted for the flexibility of VPS hosting for my technical experiments and though it prudent to shield my blog from the more explosive failures.</p>
<p>Dabbling in Ruby and working with a some very intelligent people has led to more than one insight I&#8217;d like to remember and share, so hopefully I&#8217;ll see you again soon :)</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/notincode.wordpress.com/3/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/notincode.wordpress.com/3/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/notincode.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/notincode.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/notincode.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/notincode.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/notincode.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/notincode.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/notincode.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/notincode.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/notincode.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/notincode.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.hiremaga.com&blog=2620597&post=3&subd=notincode&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://blog.hiremaga.com/2008/01/26/another-blog/feed/</wfw:commentRss>
	
		<media:content url="http://www.gravatar.com/avatar/cd84e3662c2772ec1f22649b9aa7464a?s=96&#38;d=identicon" medium="image">
			<media:title type="html">hiremaga</media:title>
		</media:content>
	</item>
		<item>
		<title>Bored?</title>
		<link>http://blog.hiremaga.com/2007/10/30/bored/</link>
		<comments>http://blog.hiremaga.com/2007/10/30/bored/#comments</comments>
		<pubDate>Tue, 30 Oct 2007 11:00:47 +0000</pubDate>
		<dc:creator>hiremaga</dc:creator>
		
		<category><![CDATA[Software]]></category>

		<category><![CDATA[Time Wasters]]></category>

		<guid isPermaLink="false">http://www.hiremaga.com/?p=263</guid>
		<description><![CDATA[Enjoy watching a nerd talk about software. (Thanks for the link Mat K)
Hooked? The video not enough? Need more now? Why not join the coolest group on Facebook.
       ]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Enjoy watching <a href="http://youtube.com/watch?v=dsp6eox6bWM">a nerd talk about software</a>. (Thanks for the link Mat K)</p>
<p>Hooked? The video not enough? Need more now? Why not join <a href="http://swinedu.facebook.com/group.php?gid=19902766960">the coolest group on Facebook</a>.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/notincode.wordpress.com/223/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/notincode.wordpress.com/223/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/notincode.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/notincode.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/notincode.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/notincode.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/notincode.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/notincode.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/notincode.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/notincode.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/notincode.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/notincode.wordpress.com/223/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.hiremaga.com&blog=2620597&post=223&subd=notincode&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://blog.hiremaga.com/2007/10/30/bored/feed/</wfw:commentRss>
	
		<media:content url="http://www.gravatar.com/avatar/cd84e3662c2772ec1f22649b9aa7464a?s=96&#38;d=identicon" medium="image">
			<media:title type="html">hiremaga</media:title>
		</media:content>
	</item>
		<item>
		<title>She&#8217;s finally home</title>
		<link>http://blog.hiremaga.com/2007/10/12/shes-finally-home/</link>
		<comments>http://blog.hiremaga.com/2007/10/12/shes-finally-home/#comments</comments>
		<pubDate>Fri, 12 Oct 2007 11:11:04 +0000</pubDate>
		<dc:creator>hiremaga</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.hiremaga.com/?p=262</guid>
		<description><![CDATA[
My cryptic post might finally make some sense now, well atleast to a few.
       ]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://www.hiremaga.com/wp-content/uploads/2007/10/My675_Side.jpg"><img src="http://www.hiremaga.com/wp-content/uploads/2007/10/My675_Side.thumbnail.jpg"></a></p>
<p>My cryptic post might finally make some sense now, well atleast to a few.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/notincode.wordpress.com/222/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/notincode.wordpress.com/222/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/notincode.wordpress.com/222/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/notincode.wordpress.com/222/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/notincode.wordpress.com/222/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/notincode.wordpress.com/222/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/notincode.wordpress.com/222/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/notincode.wordpress.com/222/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/notincode.wordpress.com/222/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/notincode.wordpress.com/222/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/notincode.wordpress.com/222/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/notincode.wordpress.com/222/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.hiremaga.com&blog=2620597&post=222&subd=notincode&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://blog.hiremaga.com/2007/10/12/shes-finally-home/feed/</wfw:commentRss>
	
		<media:content url="http://www.gravatar.com/avatar/cd84e3662c2772ec1f22649b9aa7464a?s=96&#38;d=identicon" medium="image">
			<media:title type="html">hiremaga</media:title>
		</media:content>

		<media:content url="http://www.hiremaga.com/wp-content/uploads/2007/10/My675_Side.thumbnail.jpg" medium="image" />
	</item>
	</channel>
</rss>