<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Darryl Nelson's Blog</title>
	<atom:link href="http://darrylnelson.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://darrylnelson.wordpress.com</link>
	<description>Software Operations in Enterprise Terrain</description>
	<lastBuildDate>Sun, 19 Oct 2008 22:20:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='darrylnelson.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Darryl Nelson's Blog</title>
		<link>http://darrylnelson.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://darrylnelson.wordpress.com/osd.xml" title="Darryl Nelson&#039;s Blog" />
	<atom:link rel='hub' href='http://darrylnelson.wordpress.com/?pushpress=hub'/>
		<item>
		<title>People before technology</title>
		<link>http://darrylnelson.wordpress.com/2008/10/19/people-before-technology/</link>
		<comments>http://darrylnelson.wordpress.com/2008/10/19/people-before-technology/#comments</comments>
		<pubDate>Sun, 19 Oct 2008 22:20:18 +0000</pubDate>
		<dc:creator>darrylnelson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://darrylnelson.wordpress.com/?p=118</guid>
		<description><![CDATA[Colonel John Boyd was a United States Air Force fighter pilot and self-taught scholar.  A true polymath, he mastered a wide range of subjects from dogfighting to physics to philosophy.  Boyd was the best kind of thinker; a theorist as well as a practitioner.  His thinking influenced US fighter jet design and military operational art [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=darrylnelson.wordpress.com&amp;blog=4416924&amp;post=118&amp;subd=darrylnelson&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:left;"><a href="http://en.wikipedia.org/wiki/John_Boyd_(military_strategist)">Colonel John Boyd</a> was a United States Air Force fighter pilot and self-taught scholar.  A true polymath, he mastered a wide range of subjects from <a href="http://en.wikipedia.org/wiki/Dogfight">dogfighting</a> to physics to philosophy.  Boyd was the best kind of thinker; a theorist as well as a practitioner.  His <a href="http://www.d-n-i.net/dni/john-r-boyd/">thinking</a> influenced US fighter jet design and military operational art and science from the 1970&#8242;s up to the present.</p>
<p style="text-align:left;"><a href="http://darrylnelson.files.wordpress.com/2008/10/jrboyd.jpg"><img class="aligncenter size-full wp-image-128" title="jrboyd" src="http://darrylnelson.files.wordpress.com/2008/10/jrboyd.jpg?w=500" alt=""   /></a></p>
<p>One of Boyd&#8217;s mantras was &#8220;People, Ideas, Hardware. In that order!&#8221;.  Investment in people is paramount. A perennial engineering temptation (naturally and understandably) is to focus on the technology (aka hardware).  A great programmer will produce results regardless of the language (Java, C++, Scala, Fortran, Cobol, future super cool language X, whatever).  Technology does not a software developer make.</p>
<p style="text-align:left;">The &#8220;people over technology&#8221; theme can be illustrated by a study of the past.  Because the past is truly prologue and history has useful trans disciplinary lessons for us, behold the <a href="http://en.wikipedia.org/wiki/T-34">Russian T-34 tank</a>:</p>
<p style="text-align:left;"><a href="http://darrylnelson.files.wordpress.com/2008/10/t-34_tank1.png"><img class="aligncenter size-large wp-image-136" title="t-34_tank1" src="http://darrylnelson.files.wordpress.com/2008/10/t-34_tank1.png?w=500&#038;h=311" alt="" width="500" height="311" /></a></p>
<p style="text-align:left;">First developed in the late 1930&#8242;s, the T-34 was a revolutionary design.  It would have a huge influence on tank development that resonate today.  When the German Wehrmacht (Armed Forces) first encountered the T-34 in <a href="http://en.wikipedia.org/wiki/Operation_Barbarossa">Operation Barbarossa</a> in the summer of 1941, the T-34 was a shock.  Superbly well-endowed with thick, sloped armor, a deadly 76.2mm cannon, and a powerful 500 hp diesel engine, it was everything its tank peers were not.  Typical tanks of the period (including German) had thinner, unsloped armor, small caliber cannon, and easy-to-catch-fire gasoline engines.  For the technology uber-alles crowd, the Russian army should have swept the field of its adversaries in the last half of 1941.</p>
<p style="text-align:left;">History records a much different result.  The exact opposite happened.  The Russian army incurred devastating losses of men and material and was thoroughly routed.  Better technology did not and could not save them*.  The German army of 1941 had superior people (better trained and experienced), strategic/tactical ideas, and leadership.  Their technologically inferior armored force did not impede their success.  This example from history can be applied, albeit loosely, to the modern battlefield of software development.</p>
<p style="text-align:left;">Boyd&#8217;s emphasis on people is something I try to remember, especially when a new and exciting technology appears on the horizon.  Technology alone will not save your project.  Hard, diligent work coupled with sound design principles (separation of concerns, DRY, decoupling, etc.) are the most important things.  As long as they remain in focus, have at it with the technology, old or new.  As an added benefit, the essentials above will make your technology choice decisions informed and wise ones.</p>
<p style="text-align:left;">A book** I&#8217;ve reading lately supports Boyd&#8217;s maxim.  After recapping some of the author&#8217;s hard-won experience with successful software architectures, they note that &#8220;Success is not based on the technology&#8221;.  People and ideas are more important.</p>
<p style="text-align:left;">Of course, good people + good ideas/process + good technology is ideal!</p>
<p style="text-align:left;">* In the utterly ruthless feedback chamber of WW2 Eastern front warfare, the Russian personnel and strategic/tactical ideas would learn and adapt and ultimately, of course, win the war beside their American and British Commonwealth allies.</p>
<p style="text-align:left;">** M. Rosen, B. Lublinsky, K. Smith, and M. Baker, <a href="http://www.amazon.com/Applied-SOA-Service-Oriented-Architecture-Strategies/dp/0470223650/ref=pd_bbs_sr_1?ie=UTF8&amp;s=books&amp;qid=1224453620&amp;sr=8-1">Applied SOA</a>, Wiley Publishing, Indianapolis, IN, 2008, page 10.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/darrylnelson.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/darrylnelson.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/darrylnelson.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/darrylnelson.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/darrylnelson.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/darrylnelson.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/darrylnelson.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/darrylnelson.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/darrylnelson.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/darrylnelson.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/darrylnelson.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/darrylnelson.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/darrylnelson.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/darrylnelson.wordpress.com/118/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=darrylnelson.wordpress.com&amp;blog=4416924&amp;post=118&amp;subd=darrylnelson&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://darrylnelson.wordpress.com/2008/10/19/people-before-technology/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7a4286586d287d294679c5a786c91634?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">darrylnelson</media:title>
		</media:content>

		<media:content url="http://darrylnelson.files.wordpress.com/2008/10/jrboyd.jpg" medium="image">
			<media:title type="html">jrboyd</media:title>
		</media:content>

		<media:content url="http://darrylnelson.files.wordpress.com/2008/10/t-34_tank1.png?w=500" medium="image">
			<media:title type="html">t-34_tank1</media:title>
		</media:content>
	</item>
		<item>
		<title>Interesting Links</title>
		<link>http://darrylnelson.wordpress.com/2008/09/11/interesting-links/</link>
		<comments>http://darrylnelson.wordpress.com/2008/09/11/interesting-links/#comments</comments>
		<pubDate>Thu, 11 Sep 2008 11:39:26 +0000</pubDate>
		<dc:creator>darrylnelson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://darrylnelson.wordpress.com/?p=113</guid>
		<description><![CDATA[What is OSGi for?? by Neil Bartlett An explanantion why OSGi is useful.   Terracotta Server as a Message Bus by Mark Gregory Turansky Interesting idea outside the conventional solutions.   Patterns in Real Life By Boby Thomas P Using real world objects to explain design patterns.   The End of an Era, the Beginning of a New [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=darrylnelson.wordpress.com&amp;blog=4416924&amp;post=113&amp;subd=darrylnelson&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<ol>
<li><a href="http://neilbartlett.name/blog/2008/06/06/what-is-osgi-for/">What is OSGi for??</a> by<a href="http://neilbartlett.name/blog/2008/06/06/what-is-osgi-for/"> </a>Neil Bartlett<br />
An explanantion why OSGi is <em>useful</em>.<br />
 </li>
<li><a href="http://blog.markturansky.com/archives/26">Terracotta Server as a Message Bus</a> by Mark Gregory Turansky<br />
Interesting idea outside the conventional solutions.<br />
 </li>
<li><a href="http://www.codeproject.com/KB/architecture/patterns_in_real_life.aspx">Patterns in Real Life</a> By Boby Thomas P<br />
Using real world objects to explain design patterns.<br />
 </li>
<li><a href="http://sebastien-arbogast.com/2008/06/28/the-end-of-an-era-the-beginning-of-a-new-one/">The End of an Era, the Beginning of a New One</a> by Sébastien Arbogast<br />
Will the OOP paradigm be supplanted?<br />
 </li>
<li><a href="http://www.infoq.com/presentations/Developing-Expertise-Dave-Thomas">Developing Expertise: Herding Racehorses, Racing Sheep</a> (presentation) by Dave Thomas<br />
What nurses can teach us about expertise.  <br />
 </li>
<li><a href="http://www.infoq.com/interviews/poppendieck-lean-2007">Interview: Mary and Tom Poppendieck on using Lean for Competitive Advantage</a><br />
The Poppendieck&#8217;s discuss Lean thinking and what it means for software development.</li>
</ol>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/darrylnelson.wordpress.com/113/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/darrylnelson.wordpress.com/113/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/darrylnelson.wordpress.com/113/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/darrylnelson.wordpress.com/113/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/darrylnelson.wordpress.com/113/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/darrylnelson.wordpress.com/113/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/darrylnelson.wordpress.com/113/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/darrylnelson.wordpress.com/113/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/darrylnelson.wordpress.com/113/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/darrylnelson.wordpress.com/113/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/darrylnelson.wordpress.com/113/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/darrylnelson.wordpress.com/113/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/darrylnelson.wordpress.com/113/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/darrylnelson.wordpress.com/113/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/darrylnelson.wordpress.com/113/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/darrylnelson.wordpress.com/113/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=darrylnelson.wordpress.com&amp;blog=4416924&amp;post=113&amp;subd=darrylnelson&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://darrylnelson.wordpress.com/2008/09/11/interesting-links/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7a4286586d287d294679c5a786c91634?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">darrylnelson</media:title>
		</media:content>
	</item>
		<item>
		<title>My Current Technical Reading Queue</title>
		<link>http://darrylnelson.wordpress.com/2008/08/26/my-current-technical-reading-queue/</link>
		<comments>http://darrylnelson.wordpress.com/2008/08/26/my-current-technical-reading-queue/#comments</comments>
		<pubDate>Wed, 27 Aug 2008 02:22:40 +0000</pubDate>
		<dc:creator>darrylnelson</dc:creator>
				<category><![CDATA[Books]]></category>

		<guid isPermaLink="false">http://darrylnelson.wordpress.com/?p=107</guid>
		<description><![CDATA[<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=darrylnelson.wordpress.com&amp;blog=4416924&amp;post=107&amp;subd=darrylnelson&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.pragprog.com/titles/kpiod/interface-oriented-design"><img class="alignnone" src="http://i90.photobucket.com/albums/k275/nordikov/InterfaceOrientedDesign.jpg" alt="" width="190" height="228" /></a><a href="http://www.amazon.com/Definitive-Guide-Terracotta-Hibernate-Scalability/dp/1590599861/ref=pd_bbs_sr_1?ie=UTF8&amp;s=books&amp;qid=1219801984&amp;sr=8-1"><img class="alignnone" src="http://i90.photobucket.com/albums/k275/nordikov/terracotta.gif" alt="" width="125" height="164" /></a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/darrylnelson.wordpress.com/107/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/darrylnelson.wordpress.com/107/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/darrylnelson.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/darrylnelson.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/darrylnelson.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/darrylnelson.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/darrylnelson.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/darrylnelson.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/darrylnelson.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/darrylnelson.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/darrylnelson.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/darrylnelson.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/darrylnelson.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/darrylnelson.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/darrylnelson.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/darrylnelson.wordpress.com/107/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=darrylnelson.wordpress.com&amp;blog=4416924&amp;post=107&amp;subd=darrylnelson&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://darrylnelson.wordpress.com/2008/08/26/my-current-technical-reading-queue/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7a4286586d287d294679c5a786c91634?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">darrylnelson</media:title>
		</media:content>

		<media:content url="http://i90.photobucket.com/albums/k275/nordikov/InterfaceOrientedDesign.jpg" medium="image" />

		<media:content url="http://i90.photobucket.com/albums/k275/nordikov/terracotta.gif" medium="image" />
	</item>
		<item>
		<title>Ruby on Rails</title>
		<link>http://darrylnelson.wordpress.com/2008/08/22/ruby-on-rails/</link>
		<comments>http://darrylnelson.wordpress.com/2008/08/22/ruby-on-rails/#comments</comments>
		<pubDate>Sat, 23 Aug 2008 03:27:50 +0000</pubDate>
		<dc:creator>darrylnelson</dc:creator>
				<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://darrylnelson.wordpress.com/?p=95</guid>
		<description><![CDATA[I was having a discussion several days ago with a colleague about Ruby on Rails.   As a Struts veteran, I found it to be a revelation.  Keep in my mind, however, my only &#8220;hands on&#8221; experience is the ONLamp.com tutorial Rolling with Ruby on Rails. In 2005, I was on an overseas assignment and asked [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=darrylnelson.wordpress.com&amp;blog=4416924&amp;post=95&amp;subd=darrylnelson&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:center;"><a href="http://www.rubyonrails.org/"><img class="size-full wp-image-98 aligncenter" src="http://darrylnelson.files.wordpress.com/2008/08/rails.png?w=500" alt=""   /></a></p>
<p>I was having a discussion several days ago with a colleague about <a href="http://www.rubyonrails.org/">Ruby on Rails</a>.   As a Struts veteran, I found it to be a revelation.  Keep in my mind, however, my only &#8220;hands on&#8221; experience is the ONLamp.com tutorial <a href="http://www.onlamp.com/pub/a/onlamp/2005/01/20/rails.html">Rolling with Ruby on Rails</a>.</p>
<p>In 2005, I was on an overseas assignment and asked to throw together a reporting web app several days before my departure.  I did what I knew and that was Struts.  Bear in my mind, I like Struts, and it was a good MVC implementation in its day.  I&#8217;ve written many a Action and form classes.</p>
<p>I completed my Struts web app before I left.  It was a decent, if rushed, bunch of <a href="http://en.wikipedia.org/wiki/Create,_read,_update_and_delete">CRUD</a> web pages with a truly awful GUI frontend.  I just didn&#8217;t have the time for CSS, nice buttons, etc.  All my time went into wiring the stack together and getting the basic functionality completed.  At the time I didn&#8217;t realize the  infrastructure overhead required.  Was it alot? Not really, but I was reinventing the wheel again as I had with other Struts apps, past, present, and future.</p>
<p>As I went through the <em>Rolling with Ruby on Rails</em> tutorial about 18 months later,  I kept thinking back to that crude CRUD Struts I had written a long time ago, in a <span style="text-decoration:line-through;">galaxy</span> region far, far way.  The &#8220;<a href="http://en.wikipedia.org/wiki/Convention_over_Configuration">convention over configuration</a>&#8221; paradigm used in <em>RoR </em>would saved alot of time.  All the time I spent on the &#8220;plumbing&#8221; in my Struts app, I could have used to add extra features and make the frontend &#8220;pretty&#8221; in RoR.   Now I am definitely not a Rails guru, but my overseas web app assignment was the perfect scenario for Ruby on Rails because it highlighted its strengths.  Those strengths include fast delivery of the 80% of features most developers need, mainly CRUD operations.  I know RoR is not a silver bullet, but in it&#8217;s niche, Rails excels.  And it&#8217;s fun too.</p>
<p style="text-align:left;">I don&#8217;t know where it resides today on <a href="http://www.gartner.com/">Gartner</a>&#8216;s hype cycle, but I like it for what it does.</p>
<p style="text-align:center;"><a href="http://en.wikipedia.org/wiki/Image:Gartner_Hype_Cycle.svg"><img class="size-medium wp-image-101 aligncenter" src="http://darrylnelson.files.wordpress.com/2008/08/559px-gartner_hype_cycle.png?w=300&#038;h=194" alt="" width="300" height="194" /></a></p>
<p>I think the &#8220;convention over configuration&#8221; paradigm has some merit.   Its being leveraged by other cool projects out there like <a href="http://adhearsion.pbwiki.com/">Adhearsion</a> (which, I believe, was influenced by Rails).  I hope to incorporate it in future projects that require extensions.   Done well, it has the potential to increase productivity and reduce defects.</p>
<p>Some links:<br />
<a href="http://www.rubyonrails.org/">Ruby on Rails</a><br />
InfoQ Article &#8220;<a href="http://www.infoq.com/news/2007/10/ruby-hype-cycle">Ruby and the hype cycle</a>&#8220;<br />
<a href="http://www.digitalmediaminute.com/article/1816/top-ruby-on-rails-tutorials">Top 12 Ruby on Rails Tutorials</a><br />
<a href="http://www.pragprog.com/titles/rails3/agile-web-development-with-rails-third-edition">Agile Web Development with Rails, 3rd ed.</a> by Ruby, Thomas, and Hansson</p>
<p><strong>UPDATE:</strong> After listening to the podcast <a href="http://www.nofluffjuststuff.com/home.jsp">Java application development in &#8217;08</a> by Jay Zimmerman of <a href="http://www.nofluffjuststuff.com/home.jsp">No Fluff Just Stuff</a>, <a href="http://grails.org/">Grails</a> is also a compelling alternative.  Grails takes the philosophy of RoR and puts a JVM-based spin on it.   It combines <a href="http://groovy.codehaus.org/">Groovy</a>, <a href="http://www.springframework.org/">Spring</a>, <a href="http://www.hibernate.org/">Hibernate</a>, <a href="http://www.mortbay.org/jetty/">Jetty</a>, and <a href="http://groovy.codehaus.org/Gant">Gant </a>(I&#8217;m sure there are others).  Regardless, I&#8217;m glad I played around with RoR as my experience with <a href="http://www.ruby-lang.org/en/">Ruby</a> was nil.   On a related note, Jay Zimmerman reports that he sees a diminished interest in <a href="http://struts.apache.org/">Struts</a> (with increases in Spring and Hibernate, unsurprisingly).  The podcast is worth your time.  I went to a &#8220;No Fluff, Just Stuff&#8221; event in Dallas several years ago and I really enjoyed it.  Given the opportunity, I&#8217;d go again.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/darrylnelson.wordpress.com/95/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/darrylnelson.wordpress.com/95/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/darrylnelson.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/darrylnelson.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/darrylnelson.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/darrylnelson.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/darrylnelson.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/darrylnelson.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/darrylnelson.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/darrylnelson.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/darrylnelson.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/darrylnelson.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/darrylnelson.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/darrylnelson.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/darrylnelson.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/darrylnelson.wordpress.com/95/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=darrylnelson.wordpress.com&amp;blog=4416924&amp;post=95&amp;subd=darrylnelson&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://darrylnelson.wordpress.com/2008/08/22/ruby-on-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7a4286586d287d294679c5a786c91634?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">darrylnelson</media:title>
		</media:content>

		<media:content url="http://darrylnelson.files.wordpress.com/2008/08/rails.png" medium="image" />

		<media:content url="http://darrylnelson.files.wordpress.com/2008/08/559px-gartner_hype_cycle.png?w=300" medium="image" />
	</item>
		<item>
		<title>OpenEjb in Felix</title>
		<link>http://darrylnelson.wordpress.com/2008/08/22/openejb-in-felix/</link>
		<comments>http://darrylnelson.wordpress.com/2008/08/22/openejb-in-felix/#comments</comments>
		<pubDate>Sat, 23 Aug 2008 02:11:25 +0000</pubDate>
		<dc:creator>darrylnelson</dc:creator>
				<category><![CDATA[OSGi]]></category>

		<guid isPermaLink="false">http://darrylnelson.wordpress.com/?p=81</guid>
		<description><![CDATA[The first post of my blog was about OSGi, a java technology that has gained some traction.  As part of my OSGi education, I&#8217;ve been reading blogs, articles, and playing around with Apache Felix. Currently I&#8217;m spending some of my free time working on an OSGi project as a learning tool.  The code examples I&#8217;ve [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=darrylnelson.wordpress.com&amp;blog=4416924&amp;post=81&amp;subd=darrylnelson&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://darrylnelson.wordpress.com/2008/08/06/osgi/">first post</a> of my blog was about OSGi, a java technology that has gained some traction.  As part of my OSGi education, I&#8217;ve been reading blogs, articles, and playing around with <a href="http://felix.apache.org">Apache Felix</a>.</p>
<p>Currently I&#8217;m spending some of my free time working on an OSGi project as a learning tool.  The code examples I&#8217;ve found have been nice but all do the same thing: a client bundle calls a service bundle in an Activator start method.  End of story.  This is great as a &#8220;Hello World&#8221; introduction,  but I&#8217;d like to see how bundles operate in a way that reflect a real environment.  Thus I&#8217;m trying to figure it out myself in a coding &#8220;<a href="http://www.amazon.com/Van-Halen-Live-Without-Net/dp/B000286S9C/ref=pd_bbs_sr_1?ie=UTF8&amp;s=dvd&amp;qid=1219455212&amp;sr=8-1">live without a net</a>&#8221; exercise.  The project is an attempt to run a legacy enterprise javabean (EJB 2) in an OSGi Felix container.  Yeah, I know EJB 3 is light years ahead but I sometimes have to work with the older spec at work.  Besides, an EJB 2 OSGi bundle maybe just the demo needed to sell OSGi in my shop. <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>I&#8217;ve found Apache&#8217;s <a href="http://openejb.apache.org/">OpenEjb</a> project and started there as it advertises a port to OSGi.  The core jars are bundles.  Second, I used OpenEjb embedded in Tomcat web server at a <a href="http://www.valtech.com">Valtech</a> EJB 3 course and walked away impressed.  What follows is a way to get OpenEjb running in Felix.</p>
<p>Caveat Emptor:  there may be a better/simpler/elegant way to do this.  I&#8217;m an OSGi and Felix neophyte and your results may vary.  BTW, this example was done on Windows XP.</p>
<p>Here&#8217;s how I did it:</p>
<p><span id="more-81"></span>1.  I followed the <a href="http://felix.apache.org/site/integration-of-felix-inside-eclipse.html">Felix setup tutorial for Eclipse</a>.<br />
2.  Add the &amp;lt;openejb home&gt;/lib jar files to your Eclipse project&#8217;s classpath.<br />
3.  In your Eclipse project, click on the <strong>conf -&gt; config.properties</strong> file.<br />
4.  Edit the <strong>org.osgi.framework.system.packages</strong> properties key by appending the following packages:</p>
<p><pre class="brush: css;">
\
 javax.annotation.security; \
 javax.ejb; \
 javax.ejb.spi; \
 javax.interceptor; \
 javax.management.j2ee; \
 javax.persistence; \
 javax.persistence.spi; \
 javax.mail; \
 javax.resource; \
 javax.resource.spi; \
 javax.resource.spi.endpoint; \
 javax.resource.spi.work; \
 javax.security.jacc; \
 javax.wsdl; \
 javax.wsdl.extensions.http; \
 javax.wsdl.extensions.soap; \
 javax.wsdl.factory; \
 javax.wsdl.xml; \
 org.apache.commons.cli; \
 org.apache.geronimo.connector; \
 org.apache.geronimo.connector.outbound; \
 org.apache.geronimo.connector.outbound.connectionmanagerconfig; \
 org.apache.geronimo.connector.outbound.connectiontracking; \
 org.apache.geronimo.connector.work; \
 org.apache.geronimo.transaction.log; \
 org.apache.geronimo.transaction.manager; \
 org.apache.log4j; \
 org.apache.openjpa.event; \
 org.apache.openjpa.persistence; \
 org.apache.xbean.finder; version=3.4.0.r636442, \
 org.apache.xbean.naming.context; version=3.3.0, \
 org.apache.xbean.naming.reference; version=3.3.0, \
 org.apache.xbean.recipe; version=3.4.0.r636442, \
 org.codehaus.swizzle.stream; \
 org.hibernate; \
 org.hibernate.transaction; \
 org.objectweb.asm; \
 org.objectweb.asm.commons; \
 sun.misc;</pre></p>
<p>5.  In the same config.properties file, look for the <strong>felix.auto.start.1</strong> property. Append these OpenEjb bundle entries:</p>
<p><pre class="brush: css;">
\
file:C:/&lt;openejb home&gt;/lib/openejb-jee-3.0.jar \
file:C:/&lt;openejb home&gt;/lib/openejb-loader-3.0.jar \
file:C:/&lt;openejb home&gt;/lib/openejb-javaagent-3.0.jar \
file:C:/&lt;openejb home&gt;/lib/openejb-core-3.0.jar
\</pre></p>
<p>Make sure to replace <strong>&lt;openejb home&gt;</strong> with the path to your OpenEjb installation.</p>
<p>6.  Run your Felix Eclipse project per the instructions in the setup tutorial.  After the Felix OSGi container initializes (hopefully successfully), type &#8220;ps&#8221; to list your installed bundles:</p>
<p>START LEVEL 1<br />
ID   State         Level  Name<br />
[   0] [Active     ] [    0] System Bundle (1.0.1)<br />
[   1] [Active     ] [    1] Apache Felix Shell Service (1.0.0)<br />
[   2] [Active     ] [    1] Apache Felix Shell TUI (1.0.0)<br />
[   3] [Active     ] [    1] Apache Felix Bundle Repository (1.0.0)<br />
[   4] [Active     ] [    1] openejb-jee (3.0)<br />
[   5] [Active     ] [    1] openejb-loader (3.0)<br />
[   6] [Active     ] [    1] openejb-javaagent (3.0)<br />
[   7] [Active     ] [    1] openejb-core (3.0)</p>
<p>Again, there may be a better way to do this but the above worked for me.  Also, by adding the OpenEjb bundles to the felix.auto.start.1 property, I don&#8217;t have to continually restart those bundles when debugging my EJB 2 test bundle.</p>
<p>I can&#8217;t get my EJB 2 bundle to work with OpenEjb; my current issue is JNDI lookups.  Once I figure that out (probably by using the OSGi service registry?), I may post my results if its not too much of a hack.</p>
<p>Update:  The EasyBeans project has a tutorial on how to <a href="http://wiki.easybeans.org/xwiki/bin/view/Doc/OSGi-Assembly">EJB and OSGi</a> to play together.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/darrylnelson.wordpress.com/81/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/darrylnelson.wordpress.com/81/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/darrylnelson.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/darrylnelson.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/darrylnelson.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/darrylnelson.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/darrylnelson.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/darrylnelson.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/darrylnelson.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/darrylnelson.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/darrylnelson.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/darrylnelson.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/darrylnelson.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/darrylnelson.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/darrylnelson.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/darrylnelson.wordpress.com/81/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=darrylnelson.wordpress.com&amp;blog=4416924&amp;post=81&amp;subd=darrylnelson&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://darrylnelson.wordpress.com/2008/08/22/openejb-in-felix/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7a4286586d287d294679c5a786c91634?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">darrylnelson</media:title>
		</media:content>
	</item>
		<item>
		<title>Booch on Software</title>
		<link>http://darrylnelson.wordpress.com/2008/08/19/booch-on-software/</link>
		<comments>http://darrylnelson.wordpress.com/2008/08/19/booch-on-software/#comments</comments>
		<pubDate>Wed, 20 Aug 2008 02:35:09 +0000</pubDate>
		<dc:creator>darrylnelson</dc:creator>
				<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://darrylnelson.wordpress.com/?p=49</guid>
		<description><![CDATA[The task of the software development team is to create an illusion of simplicity. We build abstractions to create this illusion. Grady Booch<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=darrylnelson.wordpress.com&amp;blog=4416924&amp;post=49&amp;subd=darrylnelson&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<blockquote><p>The task of the software development team is to create an illusion of<br />
simplicity.</p>
<p>We build abstractions to create this illusion.</p></blockquote>
<p>Grady Booch</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/darrylnelson.wordpress.com/49/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/darrylnelson.wordpress.com/49/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/darrylnelson.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/darrylnelson.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/darrylnelson.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/darrylnelson.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/darrylnelson.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/darrylnelson.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/darrylnelson.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/darrylnelson.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/darrylnelson.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/darrylnelson.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/darrylnelson.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/darrylnelson.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/darrylnelson.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/darrylnelson.wordpress.com/49/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=darrylnelson.wordpress.com&amp;blog=4416924&amp;post=49&amp;subd=darrylnelson&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://darrylnelson.wordpress.com/2008/08/19/booch-on-software/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7a4286586d287d294679c5a786c91634?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">darrylnelson</media:title>
		</media:content>
	</item>
		<item>
		<title>Why Open Standards are Good</title>
		<link>http://darrylnelson.wordpress.com/2008/08/09/why-open-standards-are-good/</link>
		<comments>http://darrylnelson.wordpress.com/2008/08/09/why-open-standards-are-good/#comments</comments>
		<pubDate>Sat, 09 Aug 2008 20:13:13 +0000</pubDate>
		<dc:creator>darrylnelson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://darrylnelson.wordpress.com/?p=45</guid>
		<description><![CDATA[Standards make innovation easier because they make the results of innovation more widely available. Stephen F. DeAngelis<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=darrylnelson.wordpress.com&amp;blog=4416924&amp;post=45&amp;subd=darrylnelson&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<blockquote><p><span class="content hover_target">Standards make innovation easier because they make the results of innovation more widely available.<br />
</span><a href="http://enterpriseresilienceblog.typepad.com/enterprise_resilience_man/2007/09/innovation-comp.html">Stephen F. DeAngelis</a></p></blockquote>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/darrylnelson.wordpress.com/45/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/darrylnelson.wordpress.com/45/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/darrylnelson.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/darrylnelson.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/darrylnelson.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/darrylnelson.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/darrylnelson.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/darrylnelson.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/darrylnelson.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/darrylnelson.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/darrylnelson.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/darrylnelson.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/darrylnelson.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/darrylnelson.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/darrylnelson.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/darrylnelson.wordpress.com/45/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=darrylnelson.wordpress.com&amp;blog=4416924&amp;post=45&amp;subd=darrylnelson&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://darrylnelson.wordpress.com/2008/08/09/why-open-standards-are-good/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7a4286586d287d294679c5a786c91634?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">darrylnelson</media:title>
		</media:content>
	</item>
		<item>
		<title>Engineering Humility and the Axiom of Specification</title>
		<link>http://darrylnelson.wordpress.com/2008/08/09/engineering-humility-and-the-axiom-of-specification/</link>
		<comments>http://darrylnelson.wordpress.com/2008/08/09/engineering-humility-and-the-axiom-of-specification/#comments</comments>
		<pubDate>Sat, 09 Aug 2008 19:46:28 +0000</pubDate>
		<dc:creator>darrylnelson</dc:creator>
				<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://darrylnelson.wordpress.com/?p=26</guid>
		<description><![CDATA[When I was in grad school, one of my engineering professors stressed the need for humility when doing any science-based endeavor (I would add any endeavor, actually).  Contrary to conventional wisdom, scientific knowledge is not static; it is dynamic.  Scientific knowledge is continually revised over time in light of new evidence.  Because engineering is a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=darrylnelson.wordpress.com&amp;blog=4416924&amp;post=26&amp;subd=darrylnelson&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When I was in grad school, one of my engineering professors stressed the need for humility when doing any science-based endeavor (I would add <em>any</em> endeavor, actually).  Contrary to conventional wisdom, scientific knowledge is not static; it is dynamic.  Scientific knowledge is continually revised over time in light of new evidence.  Because engineering is a scientific process, this dynamism applies to building things as well.  How does scientific dynamism relate to the virtue of humility?  We should be ready to throw out any conclusions or designs that mismatch with new data.  Humility facilitates this process. The authors of <a href="http://www.amazon.com/Head-First-Object-Oriented-Analysis-Design/dp/0596008678/ref=rcx_ser_title?ie=UTF8&amp;s=books">Head First Object-Oriented Analysis &amp; Design</a> (pg. 246) state it another way:</p>
<blockquote><p>Pride kills good design</p></blockquote>
<p>So too should we engineers acknowledge that our designs should evolve and adapt (especially at the outset) as we learn and discover more about the problem space.  The fact is humans simply cannot comprehensively understand a new domain.</p>
<p>Being humble before an engineering problem, like an enterprise application, acknowledges what my professor called the <strong>Axiom of Specification</strong>. This engineering law states the following:</p>
<blockquote><p>The human cannot correctly specify (abstract design) at once all levels of a system at the outset of its development.</p></blockquote>
<p>The stinging hand of experience has taught me that my initial software designs weren&#8217;t very good.  I simply could not wrap my mind around a engineering problem <em>in toto</em> upon first exposure.  The Axiom of Specification was in full effect.</p>
<p>The Agile and Lean paradigms take into account this axiom.  For instance, iterations deliver feedback allowing engineers to alleviate the knowledge deficit at the beginning of development.</p>
<p>So stay humble; don&#8217;t be &#8220;married&#8221; to your design, continually investigate your problem domain, and be ready to change your designs as you learn.  You can&#8217;t subvert the Axiom of Specification.</p>
<div class="content"><span class="content hover_target"> </span></div>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/darrylnelson.wordpress.com/26/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/darrylnelson.wordpress.com/26/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/darrylnelson.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/darrylnelson.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/darrylnelson.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/darrylnelson.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/darrylnelson.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/darrylnelson.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/darrylnelson.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/darrylnelson.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/darrylnelson.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/darrylnelson.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/darrylnelson.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/darrylnelson.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/darrylnelson.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/darrylnelson.wordpress.com/26/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=darrylnelson.wordpress.com&amp;blog=4416924&amp;post=26&amp;subd=darrylnelson&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://darrylnelson.wordpress.com/2008/08/09/engineering-humility-and-the-axiom-of-specification/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7a4286586d287d294679c5a786c91634?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">darrylnelson</media:title>
		</media:content>
	</item>
		<item>
		<title>OSGi</title>
		<link>http://darrylnelson.wordpress.com/2008/08/06/osgi/</link>
		<comments>http://darrylnelson.wordpress.com/2008/08/06/osgi/#comments</comments>
		<pubDate>Wed, 06 Aug 2008 00:36:49 +0000</pubDate>
		<dc:creator>darrylnelson</dc:creator>
				<category><![CDATA[OSGi]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://darrylnelson.wordpress.com/?p=17</guid>
		<description><![CDATA[Something I&#8217;ve been researching lately is the Open Services Gateway Initiative (OSGi) framework- a java module system.  I think it probably holds some promise as a viable technology, although I remain agnostic due to my lack of &#8220;real world&#8221; experience.  Regardless, at some point most java developers will be exposed to OSGi in one way [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=darrylnelson.wordpress.com&amp;blog=4416924&amp;post=17&amp;subd=darrylnelson&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Something I&#8217;ve been researching lately is the <a href="http://www.osgi.org" target="_blank">Open Services Gateway Initiative (OSGi)</a> framework- a java module system.  I think it probably holds some promise as a viable technology, although I remain agnostic due to my lack of &#8220;real world&#8221; experience.  Regardless, at some point most java developers will be exposed to OSGi in one way or another.  More than a few industry heavyhitters are adopting it.  Heavyhitters like Eclipse, BEA Weblogic, IBM, JBoss, and Oracle.  It may even become part of Java 7 if <a href="http://jcp.org/en/jsr/detail?id=277" target="_blank">JSR 277</a> is adopted.</p>
<p>Here&#8217;s some links:</p>
<p><a href="http://www.osgi.org/Main/HomePage" target="_blank">The OSGi Alliance</a><br />
Neil Bartlett&#8217;s <a href="http://neilbartlett.name/blog/osgi-articles/" target="_blank">Getting Started with OSGi</a> tutorial is a good place to start. (He&#8217;s also started a <a href="http://neilbartlett.name/blog/osgibook/" target="_blank">free book</a> that&#8217;s worth checking out.)<br />
<a href="http://www.eclipse.org/equinox/">Eclipse&#8217;s Equinox</a> &#8211; probably the most popular implementation<br />
<a href="http://felix.apache.org/site/index.html">Felix </a>- Apache&#8217;s implementation<br />
<a href="http://www.springframework.org/osgi/">Spring Dynamic Modules</a> for OSGi<br />
<a href="http://www.oracle.com/technology/pub/articles/dev2arch/2007/12/osgi-introduction.html">An Introduction to OSGi on the Server Side</a> &#8211; article published by <span style="text-decoration:line-through;">BEA Systems</span> Oracle</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/darrylnelson.wordpress.com/17/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/darrylnelson.wordpress.com/17/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/darrylnelson.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/darrylnelson.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/darrylnelson.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/darrylnelson.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/darrylnelson.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/darrylnelson.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/darrylnelson.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/darrylnelson.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/darrylnelson.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/darrylnelson.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/darrylnelson.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/darrylnelson.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/darrylnelson.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/darrylnelson.wordpress.com/17/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=darrylnelson.wordpress.com&amp;blog=4416924&amp;post=17&amp;subd=darrylnelson&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://darrylnelson.wordpress.com/2008/08/06/osgi/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7a4286586d287d294679c5a786c91634?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">darrylnelson</media:title>
		</media:content>
	</item>
	</channel>
</rss>
