<?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>f3yourmind</title>
	<atom:link href="http://aslamkhan.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://aslamkhan.net</link>
	<description>"There are no limits. There are only plateaus, and you must not stay there, you must go beyond them." - Bruce Lee</description>
	<lastBuildDate>Mon, 08 Mar 2010 13:38:53 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Beware the Big Industry Specification Up Front</title>
		<link>http://aslamkhan.net/software-development/beware-the-big-industry-specification-up-front/</link>
		<comments>http://aslamkhan.net/software-development/beware-the-big-industry-specification-up-front/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 13:38:53 +0000</pubDate>
		<dc:creator>Aslam</dc:creator>
				<category><![CDATA[Architecture and Development]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[IAA]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[OSGi]]></category>
		<category><![CDATA[SCA]]></category>

		<guid isPermaLink="false">http://aslamkhan.net/?p=320</guid>
		<description><![CDATA[If you have done any development in Java-land, then surely you came across the dreaded three letter word EJB.  And you were most likely duped into thinking it was great.  I did!  Then I realised it was just a specification.  It was a great big, furry, non-executable PDF.  A specification for managing objects but the [...]]]></description>
			<content:encoded><![CDATA[<p>If you have done any development in Java-land, then surely you came across the dreaded three letter word EJB.  And you were most likely duped into thinking it was great.  I did!  Then I realised it was just a specification.  It was a great big, furry, non-executable PDF.  A specification for managing objects but the creating of these objects were just horrid.  EJB3 was a clean-up exercise, but still far from nice.</p>
<p>A couple of months ago I ran into OSGi again, but with SCA on top of it.  Horrid!  SCA is yet another warm and huggable specification.  But it&#8217;s so ugly to work with.  Everything feels so over the top complicated and restrictive in expression.  And the tools that I saw built on this SCA implementation were just awful.  Beyond being buggy, the enforced paradigm was just counter-productive.  When will tool vendors realise that talented developers do not want a diagramming interface to write code?  But the root cause is that the SCA specification describes the diagramming notation. Yuck!  Same reason that I do UML sketches with a lot of bastardisations with no tie-in with my code.</p>
<p>And let me not go into domain specific big vendor specs, designs, blue prints, etc. like IBM&#8217;s Insurance Application Architecture (IAA). Nasty stuff.</p>
<p>More commonly, I see so many self-confessed agile teams fearing the dreaded big design up front, and the big requirements up front document thrown over the wall.  If there is such a fear for big-x-up-front, why is there no fear for big-industry-and-vendor-specs-up-front like EJB, SCA, IAA, etc?</p>
<p>Why?</p>
<p>There are deep lessons and principles lurking beneath this surface.  Agile demands you to be a lot more aware of actions, decisions and consequences.</p>
<p>So why do you choose not to be agile when you are trying so hard to be agile?</p>
]]></content:encoded>
			<wfw:commentRss>http://aslamkhan.net/software-development/beware-the-big-industry-specification-up-front/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Last Sprint Challenge</title>
		<link>http://aslamkhan.net/software-development/the-last-sprint-challenge/</link>
		<comments>http://aslamkhan.net/software-development/the-last-sprint-challenge/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 13:25:01 +0000</pubDate>
		<dc:creator>Aslam</dc:creator>
				<category><![CDATA[Architecture and Development]]></category>
		<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://aslamkhan.net/?p=316</guid>
		<description><![CDATA[In agile economics we often talk about stopping the project before it 100% complete; when you reach a point of diminishing returns; i.e. that agile fail-safe point when the cost of producing software is greater than the value of the software itself.  Kind of.
So let&#8217;s try a weird-ish thought experiment.  You&#8217;re in such a project [...]]]></description>
			<content:encoded><![CDATA[<p>In agile economics we often talk about stopping the project before it 100% complete; when you reach a point of diminishing returns; i.e. that agile fail-safe point when the cost of producing software is greater than the value of the software itself.  Kind of.</p>
<p>So let&#8217;s try a weird-ish thought experiment.  You&#8217;re in such a project and you&#8217;ve reached this point.  You are about to start the dead last sprint and then it&#8217;s over.  The team will be disbanded, but the software will live on.</p>
<p>You have just one more opportunity to work on this product, with this code base, with the people on this team.  Your legacy is in this software.  Every decision you made is sitting in a vast time line of deltas in your version control repository, all the way back to day 0.</p>
<p>What do <strong>you</strong> choose to do in this last sprint?</p>
]]></content:encoded>
			<wfw:commentRss>http://aslamkhan.net/software-development/the-last-sprint-challenge/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>I wanna hold your ha-a-a-a-a-a-and</title>
		<link>http://aslamkhan.net/software-development/i-wanna-hold-your-ha-a-a-a-a-a-and/</link>
		<comments>http://aslamkhan.net/software-development/i-wanna-hold-your-ha-a-a-a-a-a-and/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 14:57:22 +0000</pubDate>
		<dc:creator>Aslam</dc:creator>
				<category><![CDATA[Architecture and Development]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[factor10]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[XP]]></category>

		<guid isPermaLink="false">http://aslamkhan.net/?p=303</guid>
		<description><![CDATA[Do you remember that catchy Beatles song?

Oh yeah, I´ll tell you something
I think you'll understand
When I say that something
I wanna hold your hand
I wanna hold your hand
I wanna hold your hand

So what made me think about this?  That frustrating construction of the new M5/N1 interchange in Cape Town!!  When you&#8217;re sitting in traffic, you can&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>Do you remember that catchy Beatles song?</p>
<blockquote>
<pre style="font: normal normal normal 11px/normal verdana; line-height: 16px; padding: 10px;">Oh yeah, I´ll tell you something
I think you'll understand
When I say that something
I wanna hold your hand
I wanna hold your hand
I wanna hold your hand</pre>
</blockquote>
<p>So what made me think about this?  That frustrating construction of the new M5/N1 interchange in Cape Town!!  When you&#8217;re sitting in traffic, you can&#8217;t do anything but look and think.  And I&#8217;ve seen this scaffolding get taller and taller and wider and wider and longer and longer and more and more people appear on it each day.</p>
<div id="attachment_311" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-311 " title="Sourced from http://www.capetown.gov.za" src="http://aslamkhan.net/wp-content/uploads/2010/02/KB_3_Jan_10_h.jpg" alt="Sourced from http://www.capetown.gov.za" width="500" height="333" /><p class="wp-caption-text">Sourced from http://www.capetown.gov.za</p></div>
<p>I know that one day, they will remove the scaffolding and the concrete will just hang there in mid air on those massive pillars and walls that they&#8217;re busy building, and I won&#8217;t be sitting in traffic any longer, and it will all just work.</p>
<p>What a shame that software is not like that !!  So many people get turned on by scaffolding.  And The Beatles sang on &#8230;</p>
<blockquote>
<pre style="font: normal normal normal 11px/normal verdana; line-height: 16px; padding: 10px;">And when I touch you i feel happy, inside
It's such a feeling
That my love
I can't hide
I can't hide
I can't hide</pre>
</blockquote>
<p>And just like the M5 construction, so much scaffolding gets built, and so many people climb on.  But then, they don&#8217;t climb down.  And they don&#8217;t tear down the scaffolding.  And it just stays there mashed in with the concrete bits.  And then they ask people to use it.  And it takes strain and then it&#8217;s a performance problem, or a load problem, or it just crashes down.</p>
<p>I do use scaffolding, but most of the time it&#8217;s in a spike and more often it&#8217;s in a test, just to get me over my point of fear.  Deploying software with scaffolding is just dangerous and negligent.  I really don&#8217;t want to drive my car over the M5 interchange while those thin steel pipes are holding up the concrete slabs.</p>
<p>But above all of that, the most important scaffolding is social scaffolding.  It&#8217;s better to provide human scaffolding to support each other on a team that is focused on delivering quality software.  It&#8217;s worse to plug in weak struts in the code base that will just collapse when the next developer builds on top of it.  Very un-ubuntu!</p>
<p style="text-align: center;"><img class="size-full wp-image-312 aligncenter" title="Torch Relay from the Beijing Olympics.  Sourced from http://torchrelay.beijing2008.cn" src="http://aslamkhan.net/wp-content/uploads/2010/02/Img214037659.jpg" alt="Sourced from http://torchrelay.beijing2008.cn" /></p>
<p>So, the Beatles song still holds true, but only for social scaffolding.</p>
<blockquote>
<pre style="font: normal normal normal 11px/normal verdana; line-height: 16px; padding: 10px;">Yeah you, got that something
I think you'll understand
When I say that something
I wanna hold your hand
I wanna hold your hand
I wanna hold your hand
I wanna hold your ha-a-a-a-a-a-and</pre>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://aslamkhan.net/software-development/i-wanna-hold-your-ha-a-a-a-a-a-and/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What&#8217;s worse than BIG DUF?  A BIG DIC!</title>
		<link>http://aslamkhan.net/software-development/whats-worse-than-big-duf-a-big-dic/</link>
		<comments>http://aslamkhan.net/software-development/whats-worse-than-big-duf-a-big-dic/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 21:41:53 +0000</pubDate>
		<dc:creator>Aslam</dc:creator>
				<category><![CDATA[Architecture and Development]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://aslamkhan.net/?p=304</guid>
		<description><![CDATA[Most agile people say big designs up front rarely pay off.  You spend so much time doing design that you delay the opportunity of feedback from real, working software.  But I sometimes do BIG DUF.  It&#8217;s not that the design is big, it&#8217;s the problem that is big.  So I need an up front big [...]]]></description>
			<content:encoded><![CDATA[<p>Most agile people say big designs up front rarely pay off.  You spend so much time doing design that you delay the opportunity of feedback from real, working software.  But I sometimes do BIG DUF.  It&#8217;s not that the design is big, it&#8217;s the problem that is big.  So I need an up front big picture with just a few big parts.</p>
<p>It helps me conquer and divide.</p>
<p>That&#8217;s not a bad thing.  What I find really painful is casting the design in concrete.  When your design is cast, then your mental state is already cast in concrete too.  And that means that it is a lot harder to do the right things.  So, more gets added to the concrete slab and it&#8217;s real hard work to break anything off.  When I have a BIG DUF, I often look at how to reduce it, rather than increase it.</p>
<p>I don&#8217;t think it&#8217;s wrong to have a  BIGDUF, it&#8217;s worse if you have a BIGDIC (BIG Design in Concrete).  That concrete block will hurt you later &#8230; a lot.</p>
<p>In other words, the size of a BIGDIC does not matter, it&#8217;s the rigidity that&#8217;s the problem (<em>&#8211; That&#8217;s so lame, I could not resist!</em>)</p>
]]></content:encoded>
			<wfw:commentRss>http://aslamkhan.net/software-development/whats-worse-than-big-duf-a-big-dic/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>ESCOT 2010</title>
		<link>http://aslamkhan.net/events/escot-2010/</link>
		<comments>http://aslamkhan.net/events/escot-2010/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 13:35:09 +0000</pubDate>
		<dc:creator>Aslam</dc:creator>
				<category><![CDATA[Architecture and Development]]></category>
		<category><![CDATA[Conferences, Speaking Gigs, etc.]]></category>
		<category><![CDATA[AOP]]></category>
		<category><![CDATA[modularity]]></category>

		<guid isPermaLink="false">http://aslamkhan.net/?p=301</guid>
		<description><![CDATA[I have no idea what I&#8217;ve gotten myself into now, but I&#8217;ve agreed to help out the Empirical Evaluation of Software Composition Techniques workshop will be held as part of the next Aspect Oriented Software Development conference.  I doubt I will attend ESCOT or AOSD but it will be good to collaborate once more with [...]]]></description>
			<content:encoded><![CDATA[<p>I have no idea what I&#8217;ve gotten myself into now, but I&#8217;ve agreed to help out the <a href="http://www.comp.lancs.ac.uk/~greenwop/escot10/index.html">Empirical Evaluation of Software Composition Techniques</a> workshop will be held as part of the next <a href="http://www.aosd.net/2010/index.php">Aspect Oriented Software Development</a> conference.  I doubt I will attend ESCOT or AOSD but it will be good to collaborate once more with some very enlightening people that I met at OOPSLA last year.</p>
<p>I guess I&#8217;ve got quite a lot of reading coming up and it will be fun to read what is coming out of the research channels and cast my own weird industrial perspective on things <img src='http://aslamkhan.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://aslamkhan.net/events/escot-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Test First TDD</title>
		<link>http://aslamkhan.net/software-development/test-first-tdd/</link>
		<comments>http://aslamkhan.net/software-development/test-first-tdd/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 09:11:02 +0000</pubDate>
		<dc:creator>Aslam</dc:creator>
				<category><![CDATA[Architecture and Development]]></category>
		<category><![CDATA[factor10]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://aslamkhan.net/?p=299</guid>
		<description><![CDATA[I think that TDD is getting bastardized.  If you happen to use a Unit testing framework, it does not mean that you are test driven at all.  TDD is about test first to drive the rest &#8211; design, clean code, feedback, quality, and lot more.  Using a testing framework is easy.  Being test first driven [...]]]></description>
			<content:encoded><![CDATA[<p>I think that TDD is getting bastardized.  If you happen to use a Unit testing framework, it does not mean that you are test driven at all.  TDD is about test first to drive the rest &#8211; design, clean code, feedback, quality, and lot more.  Using a testing framework is easy.  Being test first driven is really difficult.  You may start off with the mechanics and focus on the cadence, but you only feel the value a lot later &#8211; when you have woven it as an attitude into your fabric of thinking.</p>
<p>That&#8217;s why I&#8217;m giving the <strong>TEST FIRST TDD</strong> <a href="http://opencourses.factor10.com">course</a> next week.  If you want to go beyond just learning about an xUnit API and step on the path of a personal journey to changing the way you create software, then come along.  I don&#8217;t have miracles but I can do better than just shining a light.  I will step into the darkness with you and help you move towards the light.</p>
]]></content:encoded>
			<wfw:commentRss>http://aslamkhan.net/software-development/test-first-tdd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mapping Steve&#8217;s Mind and More</title>
		<link>http://aslamkhan.net/software-development/mapping-steves-mind-and-more/</link>
		<comments>http://aslamkhan.net/software-development/mapping-steves-mind-and-more/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 09:01:26 +0000</pubDate>
		<dc:creator>Aslam</dc:creator>
				<category><![CDATA[Architecture and Development]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://aslamkhan.net/?p=297</guid>
		<description><![CDATA[If you hate reading lengthy blog posts and dig the mind map view of the world, then add Steve van der Merwe&#8217;s blog to your feed gadget.  What I really like is his short quick observations and great views about software development.  But for me, it&#8217;s even better that I get to speak to him [...]]]></description>
			<content:encoded><![CDATA[<p>If you hate reading lengthy blog posts and dig the mind map view of the world, then add S<a href="http://www.stevevandermerwe.net/blog/">teve van der Merwe&#8217;s blog</a> to your feed gadget.  What I really like is his short quick observations and great views about software development.  But for me, it&#8217;s even better that I get to speak to him regularly, in person.  If you&#8217;re in the Cape Town area, make a point of finding him and chatting to him.  He makes ubuntu real.</p>
]]></content:encoded>
			<wfw:commentRss>http://aslamkhan.net/software-development/mapping-steves-mind-and-more/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>97 Things Every Programmer Should Know</title>
		<link>http://aslamkhan.net/events/97-things-every-programmer-should-know/</link>
		<comments>http://aslamkhan.net/events/97-things-every-programmer-should-know/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 08:54:30 +0000</pubDate>
		<dc:creator>Aslam</dc:creator>
				<category><![CDATA[Conferences, Speaking Gigs, etc.]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://aslamkhan.net/?p=295</guid>
		<description><![CDATA[One of my contributions to 97 Things Every Programmer Should Know will be included in the book.  My good friend and colleague, Niclas Nilsson, also has a contribution which will be in the book as well.  But don&#8217;t just read mine, read all 97 and the amazing contributions that did not make it to the [...]]]></description>
			<content:encoded><![CDATA[<p>One of <a href="http://programmer.97things.oreilly.com/wiki/index.php/Ubuntu_Coding_for_Your_Friends">my contributions</a> to <a href="http://programmer.97things.oreilly.com/wiki/index.php/Contributions_Appearing_in_the_Book">97 Things Every Programmer Should Know</a> will be included in the book.  My good friend and colleague, <a href="http://niclasnilsson.se/">Niclas Nilsso</a>n, also has a <a href="http://programmer.97things.oreilly.com/wiki/index.php/Thinking_in_States">contribution</a> which will be in the book as well.  But don&#8217;t just read mine, read all 97 and the amazing contributions that did not make it to the printed book as well.  I have know idea how Kevlin Henney managed to select these 97 things from so many contributions.</p>
]]></content:encoded>
			<wfw:commentRss>http://aslamkhan.net/events/97-things-every-programmer-should-know/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DDD Reference Card</title>
		<link>http://aslamkhan.net/software-development/ddd-reference-card/</link>
		<comments>http://aslamkhan.net/software-development/ddd-reference-card/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 08:45:27 +0000</pubDate>
		<dc:creator>Aslam</dc:creator>
				<category><![CDATA[Architecture and Development]]></category>
		<category><![CDATA[DDD]]></category>

		<guid isPermaLink="false">http://aslamkhan.net/?p=292</guid>
		<description><![CDATA[I know it&#8217;s absolutely insane to try to reduce Eric Evans&#8217; amazing book into just a few pages, but stupidity won.  I think it&#8217;s still useful as a &#8220;next to the coffee mug on your desk thing&#8221; if you&#8217;re just starting off with DDD.  So download the free Domain Driven Design Reference Card at http://refcardz.dzone.com. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://refcardz.dzone.com"><img class="alignleft" title="Domain Driven Design Reference Card" src="http://refcardz.dzone.com/sites/all/files/refcardz/thumbs/13745.png" alt="" width="103" height="133" /></a>I know it&#8217;s absolutely insane to try to reduce <a href="http://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1238687848&amp;sr=8-1">Eric Evans&#8217; amazing book</a> into just a few pages, but stupidity won.  I think it&#8217;s still useful as a &#8220;next to the coffee mug on your desk thing&#8221; if you&#8217;re just starting off with DDD.  So download the free Domain Driven Design Reference Card at <a href="http://refcardz.dzone.com">http://refcardz.dzone.com</a>. Small warning: it&#8217;s not useful unless you&#8217;ve read <a href="http://domaindrivendesign.org/books">Eric&#8217;s and/or Jimmy&#8217;s book</a> or have attended a <a href="http://opencourses.factor10.com">DDD course</a>.</p>
<p>I&#8217;ve tried to keep it true to the book.  I&#8217;ve aslo added a reference to a couple of additional patterns right at the end, after some quick chats with Eric and Jimmy.  Given the space constraints, I decided to leave out the CQRS work.  It feels better anyway, since this meant as a cheat sheet for people starting out.</p>
]]></content:encoded>
			<wfw:commentRss>http://aslamkhan.net/software-development/ddd-reference-card/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gotcha! (side-effects really pain a lot)</title>
		<link>http://aslamkhan.net/software-development/gotcha-side-effects-really-pain-a-lot/</link>
		<comments>http://aslamkhan.net/software-development/gotcha-side-effects-really-pain-a-lot/#comments</comments>
		<pubDate>Mon, 28 Dec 2009 20:37:40 +0000</pubDate>
		<dc:creator>Aslam</dc:creator>
				<category><![CDATA[Architecture and Development]]></category>
		<category><![CDATA[buildr]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[rjb]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[side effects]]></category>

		<guid isPermaLink="false">http://aslamkhan.net/?p=286</guid>
		<description><![CDATA[I just upgraded to Snow Leopard and installed buildr which failed miserably.
/Library/Ruby/Gems/1.8/gems/rjb-1.1.9/lib/rjbcore.bundle: dlopen(/Library/Ruby/Gems/1.8/gems/rjb-1.1.9/lib/rjbcore.bundle, 9): no suitable image found.  Did find: (LoadError)
/Library/Ruby/Gems/1.8/gems/rjb-1.1.9/lib/rjbcore.bundle: no matching architecture in universal wrapper - /Library/Ruby/Gems/1.8/gems/rjb-1.1.9/lib/rjbcore.bundle
It turns out that I needed to rebuild rjb, the ruby-java bridge, but that failed too.
extconf.rb:48: JAVA_HOME is not set. (RuntimeError)
I was certain that JAVA_HOME was [...]]]></description>
			<content:encoded><![CDATA[<p>I just upgraded to Snow Leopard and installed <a href="http://buildr.apache.org">buildr</a> which failed miserably.</p>
<blockquote><p><code>/Library/Ruby/Gems/1.8/gems/rjb-1.1.9/lib/rjbcore.bundle: dlopen(/Library/Ruby/Gems/1.8/gems/rjb-1.1.9/lib/rjbcore.bundle, 9): no suitable image found.  Did find: (LoadError)<br />
/Library/Ruby/Gems/1.8/gems/rjb-1.1.9/lib/rjbcore.bundle: no matching architecture in universal wrapper - /Library/Ruby/Gems/1.8/gems/rjb-1.1.9/lib/rjbcore.bundle</code></p></blockquote>
<p>It turns out that I needed to rebuild <a href="http://rubyforge.org/projects/rjb/">rjb</a>, the ruby-java bridge, but that failed too.</p>
<blockquote><p><code>extconf.rb:48: JAVA_HOME is not set. (RuntimeError)</code></p></blockquote>
<p>I was certain that <code>JAVA_HOME</code> was definitely set and it was pointing to the 64-bit Apple 1.6 JDK.  Digging in <code>extconf.rb</code>, it finds <code>JAVA_HOME</code> from the <code>ENV</code> hash</p>
<blockquote><p><code>javahome = ENV['JAVA_HOME']</code></p></blockquote>
<p>So, nothing weird about that too!  What&#8217;s going on?  I was installing buildr like this</p>
<blockquote><p><code>sudo gem install buildr</code></p></blockquote>
<p>The problem is that once you <code>sudo</code>, you are running with another environment, one without the <code>JAVA_HOME</code> variable.  So, the quick fix is simply</p>
<blockquote><p><code>sudo env JAVA_HOME=$JAVA_HOME gem install '1.1.9' rjb<br />
sudo env JAVA_HOME=$JAVA_HOME gem install buildr</code></p></blockquote>
<p>I completely forgot about this side-effect.  Like all side-effects, it was painful &#8211; it just cost me an hour of  digging around looking at all sorts of other things.  But, more importantly, breaking fundamental assumptions (e.g. my environment is the <code>sudo</code>&#8217;s environment) and zoning in on the root cause of the problem resulted in a very simple solution.</p>
]]></content:encoded>
			<wfw:commentRss>http://aslamkhan.net/software-development/gotcha-side-effects-really-pain-a-lot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
