<?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>Stephen Nimmo &#187; Code</title>
	<atom:link href="http://stephennimmo.com/blog/category/code/feed/" rel="self" type="application/rss+xml" />
	<link>http://stephennimmo.com/blog</link>
	<description></description>
	<lastBuildDate>Sun, 05 Sep 2010 15:18:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>San Antonio Rock and Roll Half Marathon Training &#8211; Week 1</title>
		<link>http://stephennimmo.com/blog/2010/09/05/san-antonio-rock-and-roll-half-marathon-training-week-1/</link>
		<comments>http://stephennimmo.com/blog/2010/09/05/san-antonio-rock-and-roll-half-marathon-training-week-1/#comments</comments>
		<pubDate>Sun, 05 Sep 2010 15:17:43 +0000</pubDate>
		<dc:creator>Stephen</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://stephennimmo.com/blog/?p=327</guid>
		<description><![CDATA[It was a beautiful day in Houston. 72 degrees with low humidity made the run much more tolerable. Did 5.5 which was basically almost two laps around Memorial Park. Today wasn't actually a run day according to the official schedule but I decided to tack it on. The *official* training starts today. Keeping things really [...]]]></description>
			<content:encoded><![CDATA[<p>It was a beautiful day in Houston. 72 degrees with low humidity made the  run much more tolerable. Did 5.5 which was basically almost two laps  around Memorial Park. Today wasn't actually a run day according to the  official schedule but I decided to tack it on.</p>
<p>The *official* training starts today. Keeping things really simple.</p>
<ul>
<li>No Skipped Workouts</li>
<li>All Runs Outside if possible</li>
<li>No Alcohol</li>
<li>No Soft Drinks</li>
<li>No Fast Food</li>
<li>No Processed Crap</li>
<li>Nothing to drink except water, Propel, coffee and unsweetened tea. </li>
<li>If all is followed - 1 cheat meal a week. Probably at BW3. </li>
</ul>
<p>Blogging on Sunday every week to talk about the past week and what's on tap next week.</p>
<p>Last Week: Sick from strep and recovering from Vegas.</p>
<p>Next Week: Runs on Tues, Thurs and Fri. Easy, Tempo and Easy. Flying to <a href="http://maps.google.com/maps?hl=&amp;q=jersey+city&amp;ie=UTF8&amp;hq=&amp;hnear=Jersey+City,+Hudson,+New+Jersey&amp;gl=us&amp;ei=nLGDTOzwE4Sclged8fH3Dw&amp;ved=0CC4Q8gEwAA&amp;ll=40.763934,-74.020772&amp;spn=0.023306,0.038581&amp;t=h&amp;z=15" target="_blank">Jersey City</a> next week so my runs will need to be earlier and the temptation of eating like crap and boozing is always prevalent when on the road. Not the ideal week to start my training, but this week my resolve is solid so no worries. It's usually about 4 or 5 weeks into training when I start trying to convince myself it's ok to eat that breakfast burrito and drink a beer.</p>
<p>Here's the run from today.</p>
<p><iframe width='465' height='548' frameborder='0' src='http://connect.garmin.com:80/activity/embed/47668698'></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://stephennimmo.com/blog/2010/09/05/san-antonio-rock-and-roll-half-marathon-training-week-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tuesday Running Workout</title>
		<link>http://stephennimmo.com/blog/2010/08/17/tuesday-running-workout/</link>
		<comments>http://stephennimmo.com/blog/2010/08/17/tuesday-running-workout/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 12:53:16 +0000</pubDate>
		<dc:creator>Stephen</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://stephennimmo.com/blog/?p=325</guid>
		<description><![CDATA[Ordered all my training stuff last night for the half. 2XU Compression Calf sleeves. Headsweats visor. 3 new pair of Balega socks. Got a new nike dry-fit shirt from Academy. I LOVE Nike's dry fit stuff, both their regular dry fit t-shirts or their golf shirts. Playing 9 at Tour 18 this evening. Good run [...]]]></description>
			<content:encoded><![CDATA[<p>Ordered all my training stuff last night for the half. 2XU Compression Calf sleeves. Headsweats visor. 3 new pair of Balega socks. Got a new nike dry-fit shirt from Academy. I LOVE Nike's dry fit stuff, both their regular dry fit t-shirts or their golf shirts. </p>
<p>Playing 9 at Tour 18 this evening. </p>
<p>Good run today. Next Run: Thursday at 6:30a. </p>
<p><iframe width='465' height='548' frameborder='0' src='http://connect.garmin.com:80/activity/embed/44918573'></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://stephennimmo.com/blog/2010/08/17/tuesday-running-workout/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I have not been running&#8230;and I can tell.</title>
		<link>http://stephennimmo.com/blog/2010/08/15/i-have-not-been-running-and-i-can-tell/</link>
		<comments>http://stephennimmo.com/blog/2010/08/15/i-have-not-been-running-and-i-can-tell/#comments</comments>
		<pubDate>Sun, 15 Aug 2010 14:56:03 +0000</pubDate>
		<dc:creator>Stephen</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://stephennimmo.com/blog/?p=322</guid>
		<description><![CDATA[So last Sunday's run was canceled due to festivities at my house the night before. Unfortunately, prior to those festivities I was trying to move a trash can and the handle broke. Five stitches in my left hand between my thumb and forefinger. So no golf and no running for at least a couple of [...]]]></description>
			<content:encoded><![CDATA[<p>So last Sunday's run was canceled due to festivities at my house the night before. Unfortunately, prior to those festivities I was trying to move a trash can and the handle broke. Five stitches in my left hand between my thumb and forefinger. So no golf and no running for at least a couple of days to make sure nothing got infected. </p>
<p>3 days turned into 7. </p>
<p>So what's the problem? Little excuses turn into big, run-canceling excuses. I have a 13.1 mile race in 12 weeks in San Antonio. San Antonio and Houston have many differences but only a single one will be on my mind that day - Hills. These little excuses have to go. This can't be about training anymore, but rather a lifestyle change. If there is something that is going to interfere with my running schedule, it stops today. I know what to look for. I know what I need to do. It's not a matter of whether or not I can physically do it. It's a matter of whether I can focus and sacrifice for the goal. </p>
<p>Today, I sacrificed. After a week off, I got up two hours later on a Sunday and went for a run at 8:30a. I was overheated and couldn't keep my heart rate down. Where I can normally maintain a 160 for at least 3 or 4 miles, I was at 170 before I knew it and it killed my run, both on pace and distance. My de facto running coach said that your HR is a tell-tale sign of how your body is sustaining itself during the run. A high rate rate is the first sign that your body is saying it's tired. When I got to the end my heart rate was 183 and I could barely walk.  It's been 45 minutes since with a 20 minute freezing cold shower and I am still sweating.  Granted, I did play golf during the heat of the day yesterday and sweated a few gallons of water but that shouldn't affect me this hard. Needless to say, I have a bit of work ahead of me.</p>
<p>Next Run: Tuesday at 6:30. Running Workout, 3 miles and 3 sets. </p>
<p><iframe width='465' height='548' frameborder='0' src='http://connect.garmin.com:80/activity/embed/44623095'></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://stephennimmo.com/blog/2010/08/15/i-have-not-been-running-and-i-can-tell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fast Coherence Updates</title>
		<link>http://stephennimmo.com/blog/2010/05/06/fast-coherence-updates/</link>
		<comments>http://stephennimmo.com/blog/2010/05/06/fast-coherence-updates/#comments</comments>
		<pubDate>Thu, 06 May 2010 11:34:32 +0000</pubDate>
		<dc:creator>Stephen</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Coherence]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://stephennimmo.com/blog/?p=294</guid>
		<description><![CDATA[Let's say we want to update a list located in a cache somewhere. Typically, this would be done like this. List&#60;String&#62; names = new ArrayList&#60;String&#62;(); names.add(&#34;Bob&#34;); NamedCache cache = CacheFactory.getCache(&#34;test&#34;); cache.put(&#34;B&#34;, names); List&#60;String&#62; names2 = (List&#60;String&#62;)cache.get(&#34;B&#34;); names2.add(&#34;Bill&#34;); cache.put(&#34;B&#34;, names2); But what this does actually requires a complete serialization of the payload both from the (possibly) [...]]]></description>
			<content:encoded><![CDATA[<p>Let's say we want to update a list located in a cache somewhere. Typically, this would be done like this. </p>
<pre class="brush: java">
List&lt;String&gt; names = new ArrayList&lt;String&gt;();
names.add(&quot;Bob&quot;);
NamedCache cache = CacheFactory.getCache(&quot;test&quot;);
cache.put(&quot;B&quot;, names);

List&lt;String&gt; names2 = (List&lt;String&gt;)cache.get(&quot;B&quot;);
names2.add(&quot;Bill&quot;);
cache.put(&quot;B&quot;, names2);
</pre>
<p>But what this does actually requires a complete serialization of the payload both from the (possibly) remote location and back to the backup node when the put is executed. Network traffic and IO no bueno. </p>
<p>Instead, extend the AbstractProcessor and ship that work out to the node, cutting network IO in half. </p>
<pre class="brush: java">
public class AddNameProcessor extends AbstractProcessor {

	private String name;

	public AddNameProcessor(String name) {
		this.name = name;
	}

	@SuppressWarnings(&quot;unchecked&quot;)
	public Object process(Entry entry) {
		List&lt;String&gt; list = null;
		if (entry.getValue() == null){
			list = new ArrayList&lt;String&gt;();
			list.add(name);
			entry.setValue(list);
			return list;
		} else {
			list = (List&lt;String&gt;)entry.getValue();
			list.add(name);
			entry.setValue(list);
			return list;
		}
	}

}
</pre>
<p>And call it in a similar way.</p>
<pre class="brush: java">
NamedCache cache = CacheFactory.getCache(&quot;test&quot;);
List&lt;String&gt; names = (List&lt;String&gt;) cache.invoke(&quot;B&quot;, new AddNameProcessor (&quot;Bill&quot;));
</pre>
]]></content:encoded>
			<wfw:commentRss>http://stephennimmo.com/blog/2010/05/06/fast-coherence-updates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu 9.10 &#8211; Apache2 + Tomcat6</title>
		<link>http://stephennimmo.com/blog/2009/12/23/ubuntu-9-10-apache2-tomcat6/</link>
		<comments>http://stephennimmo.com/blog/2009/12/23/ubuntu-9-10-apache2-tomcat6/#comments</comments>
		<pubDate>Wed, 23 Dec 2009 17:03:58 +0000</pubDate>
		<dc:creator>Stephen</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[apache tomcat linux ubuntu]]></category>

		<guid isPermaLink="false">http://stephennimmo.com/blog/?p=286</guid>
		<description><![CDATA[1) sudo apt-get install apache2 tomcat6 libapache2-mod-jk 2) sudo vim /etc/apache2/workers.properties and type/past in: # Define 1 real worker using ajp13 worker.list=worker1 # Set properties for worker1 (ajp13) worker.worker1.type=ajp13 worker.worker1.host=localhost worker.worker1.port=8009 3) sudo vim /etc/apache2/apache2.conf and type/past in: # Load mod_jk module # Update this path to match your modules location LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so # [...]]]></description>
			<content:encoded><![CDATA[<p>1) sudo apt-get install apache2 tomcat6 libapache2-mod-jk<br />
2) sudo vim /etc/apache2/workers.properties<br />
and type/past in:<br />
# Define 1 real worker using ajp13<br />
worker.list=worker1<br />
# Set properties for worker1 (ajp13)<br />
worker.worker1.type=ajp13<br />
worker.worker1.host=localhost<br />
worker.worker1.port=8009</p>
<p>3) sudo vim /etc/apache2/apache2.conf<br />
and type/past in:<br />
# Load mod_jk module<br />
# Update this path to match your modules location<br />
LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so<br />
# Declare the module for (remove this line on Apache 2.x)<br />
#AddModule mod_jk.c<br />
# Where to find workers.properties<br />
# Update this path to match your conf directory location (put workers.properties next to httpd.conf)<br />
JkWorkersFile /etc/apache2/workers.properties<br />
# Where to put jk shared memory<br />
# Update this path to match your local state directory or logs directory<br />
JkShmFile /var/log/apache2/mod_jk.shm<br />
# Where to put jk logs<br />
# Update this path to match your logs directory location (put mod_jk.log next to access_log)<br />
JkLogFile /var/log/apache2/mod_jk.log<br />
# Set the jk log level [debug/error/info]<br />
JkLogLevel info<br />
# Select the timestamp log format<br />
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "</p>
<p>6) sudo vim /etc/apache2/sites-enabled/000-default<br />
Delete "DocumentRoot /var/www"<br />
And type in<br />
JkMount / worker1<br />
JkMount /* worker1<br />
note, you can use JkUnMount to define directories you want apache to serve</p>
<p>7) Enable port 8009 on tomcat<br />
sudo vim /etc/tomcat6/server.xml<br />
remove the "<!--" that is a line above and the "-->" that is a line below<br />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /></p>
<p> <img src='http://stephennimmo.com/blog/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> restart tomcat<br />
sudo /etc/init.d/tomcat6 restart</p>
<p>9) restart apache<br />
sudo /etc/init.d/apache2 restart</p>
<p>10) wget localhost<br />
You should see the default tomcat page </p>
<p>Courtesy of: http://rcpeters.blogspot.com/2009/05/installing-apache2-and-tomcat6-on.html</p>
]]></content:encoded>
			<wfw:commentRss>http://stephennimmo.com/blog/2009/12/23/ubuntu-9-10-apache2-tomcat6/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>ActiveMQ Clustered and Bulletproof</title>
		<link>http://stephennimmo.com/blog/2009/11/03/activemq-clustered-and-bulletproof/</link>
		<comments>http://stephennimmo.com/blog/2009/11/03/activemq-clustered-and-bulletproof/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 14:51:30 +0000</pubDate>
		<dc:creator>Stephen</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[ActiveMQ]]></category>

		<guid isPermaLink="false">http://stephennimmo.com/blog/?p=281</guid>
		<description><![CDATA[It's easy to create a clustered instance of ActiveMQ and have your clients connect via multicast. This gives you the ability to create ActiveMQ instances all over the place, have them autodiscover each other and failover seamlessly and automatically. Here's the ActiveMQ configuration. &#60;beans xmlns=&#34;http://www.springframework.org/schema/beans&#34; xmlns:amq=&#34;http://activemq.apache.org/schema/core&#34; xmlns:xsi=&#34;http://www.w3.org/2001/XMLSchema-instance&#34; xsi:schemaLocation=&#34;http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd http://activemq.apache.org/camel/schema/spring http://activemq.apache.org/camel/schema/spring/camel-spring.xsd&#34;&#62; &#60;bean class=&#34;org.springframework.beans.factory.config.PropertyPlaceholderConfigurer&#34; [...]]]></description>
			<content:encoded><![CDATA[<p>It's easy to create a clustered instance of ActiveMQ and have your clients connect via multicast. This gives you the ability to create ActiveMQ instances all over the place, have them autodiscover each other and failover seamlessly and automatically. Here's the ActiveMQ configuration.</p>
<pre class="brush: xml">

&lt;beans xmlns=&quot;http://www.springframework.org/schema/beans&quot;
	xmlns:amq=&quot;http://activemq.apache.org/schema/core&quot;
	xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
	xsi:schemaLocation=&quot;http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
  		http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd
  		http://activemq.apache.org/camel/schema/spring http://activemq.apache.org/camel/schema/spring/camel-spring.xsd&quot;&gt;

	&lt;bean class=&quot;org.springframework.beans.factory.config.PropertyPlaceholderConfigurer&quot; /&gt;

	&lt;broker xmlns=&quot;http://activemq.apache.org/schema/core&quot; brokerName=&quot;MyBroker&quot; dataDirectory=&quot;${activemq.base}/data&quot;&gt;

		&lt;destinations&gt;
			&lt;queue physicalName=&quot;MyQueue&quot; /&gt;
		&lt;/destinations&gt;

		&lt;transportConnectors&gt;
			&lt;transportConnector name=&quot;openwire&quot; uri=&quot;tcp://localhost:0&quot; discoveryUri=&quot;multicast://default&quot;/&gt;
		&lt;/transportConnectors&gt;

		&lt;networkConnectors&gt;
      		&lt;networkConnector uri=&quot;multicast://default&quot;/&gt;
    	&lt;/networkConnectors&gt;

	    &lt;persistenceAdapter&gt;
	      	&lt;memoryPersistenceAdapter/&gt;
	    &lt;/persistenceAdapter&gt;

	&lt;/broker&gt;

	&lt;jetty xmlns=&quot;http://mortbay.com/schemas/jetty/1.0&quot;&gt;
        &lt;connectors&gt;
            &lt;nioConnector port=&quot;8161&quot;/&gt;
        &lt;/connectors&gt;

        &lt;handlers&gt;
            &lt;webAppContext contextPath=&quot;/admin&quot; resourceBase=&quot;${activemq.base}/webapps/admin&quot; logUrlOnStart=&quot;true&quot;/&gt;
        &lt;/handlers&gt;
    &lt;/jetty&gt;

&lt;/beans&gt;
</pre>
<p>And here is the Spring code for the client.</p>
<pre class="brush: xml">

&lt;bean id=&quot;jmsConnectionFactory&quot; class=&quot;org.apache.activemq.ActiveMQConnectionFactory&quot;&gt;
 		&lt;property name=&quot;brokerURL&quot;&gt;
 			&lt;value&gt;discovery:(multicast://default)&lt;/value&gt;
 		&lt;/property&gt;
 	&lt;/bean&gt;

 	&lt;bean id=&quot;destination&quot; class=&quot;org.apache.activemq.command.ActiveMQQueue&quot;&gt;
 		&lt;constructor-arg index=&quot;0&quot;&gt;
 			&lt;value&gt;MyQueue&lt;/value&gt;
 		&lt;/constructor-arg&gt;
 	&lt;/bean&gt;

 	&lt;bean id=&quot;jmsTemplate&quot; class=&quot;org.springframework.jms.core.JmsTemplate&quot;&gt;
 		&lt;property name=&quot;connectionFactory&quot;&gt;
 			&lt;bean class=&quot;org.springframework.jms.connection.SingleConnectionFactory&quot;&gt;
 				&lt;property name=&quot;targetConnectionFactory&quot; ref=&quot;jmsConnectionFactory&quot; /&gt;
 			&lt;/bean&gt;
 		&lt;/property&gt;
 	&lt;/bean&gt;
</pre>
<p>If you will notice, the ActiveMQ client uses the discovery mechanisms for finding the queue, which allows it to connect to any piece of hardware without actually having to know physical locations. You can replace your multicast://default (which happens to be multicast://239.255.2.3:6155) with whatever multicast address you would like. You could even DNS-it-up and have a url look like multicast://MyBroker.mydomain.com:6166. </p>
<p>Enjoy. </p>
<p><a href="http://activemq.apache.org/multicast-transport-reference.html">http://activemq.apache.org/multicast-transport-reference.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://stephennimmo.com/blog/2009/11/03/activemq-clustered-and-bulletproof/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Maven and the Enterprise</title>
		<link>http://stephennimmo.com/blog/2009/04/08/maven-and-the-enterprise/</link>
		<comments>http://stephennimmo.com/blog/2009/04/08/maven-and-the-enterprise/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 18:34:52 +0000</pubDate>
		<dc:creator>Stephen</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Maven]]></category>

		<guid isPermaLink="false">http://stephennimmo.com/blog/?p=276</guid>
		<description><![CDATA[Sounds like a band from the 70's, huh? Here's a quick picture for part of a presentation I am putting together for my colleagues. Here's a basic drawing describing a minimum development environment for any company. The "servers" can be consolidated to a certain point, especially if you are using virtualization software. Also, the source [...]]]></description>
			<content:encoded><![CDATA[<p>Sounds like a band from the 70's, huh? Here's a quick picture for part of a presentation I am putting together for my colleagues. </p>
<p><a href="http://stephennimmo.com/blog/wp-content/uploads/2009/04/maven-enterprise.jpg" rel="lightbox[276]"><img src="http://stephennimmo.com/blog/wp-content/uploads/2009/04/maven-enterprise-300x149.jpg" alt="maven-enterprise" title="maven-enterprise" width="300" height="149" class="aligncenter size-medium wp-image-275" /></a></p>
<p>Here's a basic drawing describing a minimum development environment for any company. The "servers" can be consolidated to a certain point, especially if you are using virtualization software. </p>
<p>Also, the source control, continuous integration and maven repository manager can realistically all run on a single server. You MIGHT be able to get away with running the actual builds on the box but might run into some performance issues, particularly if you are running a big build and simultaneously checking in a bunch of source code. </p>
]]></content:encoded>
			<wfw:commentRss>http://stephennimmo.com/blog/2009/04/08/maven-and-the-enterprise/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Requirements Documents are the suck.</title>
		<link>http://stephennimmo.com/blog/2009/03/26/requirements-documents-are-the-suck/</link>
		<comments>http://stephennimmo.com/blog/2009/03/26/requirements-documents-are-the-suck/#comments</comments>
		<pubDate>Fri, 27 Mar 2009 02:10:45 +0000</pubDate>
		<dc:creator>Stephen</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://stephennimmo.com/blog/?p=250</guid>
		<description><![CDATA[http://www.scottberkun.com/blog/2009/why-requirements-stink/]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.scottberkun.com/blog/2009/why-requirements-stink/" target="blank">http://www.scottberkun.com/blog/2009/why-requirements-stink/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://stephennimmo.com/blog/2009/03/26/requirements-documents-are-the-suck/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10 Papers Every Software Architect Should Read (At Least Twice)</title>
		<link>http://stephennimmo.com/blog/2009/03/10/10-papers-every-software-architect-should-read-at-least-twice/</link>
		<comments>http://stephennimmo.com/blog/2009/03/10/10-papers-every-software-architect-should-read-at-least-twice/#comments</comments>
		<pubDate>Wed, 11 Mar 2009 00:39:55 +0000</pubDate>
		<dc:creator>Stephen</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://stephennimmo.com/blog/?p=243</guid>
		<description><![CDATA[http://www.rgoarchitects.com/nblog/2009/02/27/10PapersEverySoftwareArchitectShouldReadAtLeastTwice.aspx]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.rgoarchitects.com/nblog/2009/02/27/10PapersEverySoftwareArchitectShouldReadAtLeastTwice.aspx" target="blank">http://www.rgoarchitects.com/nblog/2009/02/27/10PapersEverySoftwareArchitectShouldReadAtLeastTwice.aspx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://stephennimmo.com/blog/2009/03/10/10-papers-every-software-architect-should-read-at-least-twice/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pics from Corporate Cup</title>
		<link>http://stephennimmo.com/blog/2009/03/10/pics-from-corporate-cup/</link>
		<comments>http://stephennimmo.com/blog/2009/03/10/pics-from-corporate-cup/#comments</comments>
		<pubDate>Tue, 10 Mar 2009 23:23:37 +0000</pubDate>
		<dc:creator>Stephen</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://stephennimmo.com/blog/?p=239</guid>
		<description><![CDATA[Running with the coworkers.]]></description>
			<content:encoded><![CDATA[<p>Running with the coworkers. </p>

<a href='http://stephennimmo.com/blog/2009/03/10/pics-from-corporate-cup/img_1268/' title='img_1268'><img width="150" height="150" src="http://stephennimmo.com/blog/wp-content/uploads/2009/03/img_1268-150x150.jpg" class="attachment-thumbnail" alt="img_1268" title="img_1268" /></a>
<a href='http://stephennimmo.com/blog/2009/03/10/pics-from-corporate-cup/img_1264_1/' title='img_1264_1'><img width="150" height="150" src="http://stephennimmo.com/blog/wp-content/uploads/2009/03/img_1264_1-150x150.jpg" class="attachment-thumbnail" alt="img_1264_1" title="img_1264_1" /></a>

]]></content:encoded>
			<wfw:commentRss>http://stephennimmo.com/blog/2009/03/10/pics-from-corporate-cup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
