<?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>BoPL &#187; Work</title>
	<atom:link href="http://bopl.samharris.us/tag/work/feed/" rel="self" type="application/rss+xml" />
	<link>http://bopl.samharris.us</link>
	<description>It's not all caviar and baby wipes, mate</description>
	<lastBuildDate>Thu, 13 May 2010 19:51:00 +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>Performance Testing &#8211; A Simple Plan</title>
		<link>http://bopl.samharris.us/2009/02/performance-testing-a-simple-plan/</link>
		<comments>http://bopl.samharris.us/2009/02/performance-testing-a-simple-plan/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 16:02:30 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://bopl.samharris.us/?p=1115</guid>
		<description><![CDATA[I was asked to outlline what I&#8217;d expect someone to decide before they started a performance test exercise. A quick look at StickyMinds shows this document, which looks very good. It is, however, 8 pages long, which is about 7.5 pages longer than I need if my target audience is going to bother with it. [...]]]></description>
			<content:encoded><![CDATA[<p>I was asked to outlline what I&#8217;d expect someone to decide before they started a performance test exercise.  A quick look at StickyMinds shows <a href="http://www.stickyminds.com/sitewide.asp?ObjectId=13379&#038;Function=edetail">this document</a>, which looks very good.  It is, however, 8 pages long, which is about 7.5 pages longer than I need if my target audience is going to bother with it.  Here, then, is my simplified version.  Slightly cryptic, perhaps, but workable (at least for a web server, which is what we&#8217;re dealing with).</p>
<p>Purpose?<br />
*Performance Test &#8211; see what it will do<br />
*Stress Test &#8211; see the most it will do<br />
*Load Test &#8211; see what happens when it does more than that<br />
*Sizing &#8211; Guide to customers on hardware requirements</p>
<p>Test platform?<br />
*Number of machines<br />
*Machine specs<br />
*Network spec</p>
<p>Test Application?<br />
*Low complexity to concentrate on platform<br />
*High complexity to simulate real-life loads<br />
*Think times emphasize load or real-life use.</p>
<p>Finally, how will results be measured?<br />
*Throughput (or equivalents)<br />
*Constraints (e.g. is app under test memory bound, CPU bound, network bound)<br />
*Recommended hardware &#8211; e.g. X users per Y GB of memory and Z GHz of processor.</p>
]]></content:encoded>
			<wfw:commentRss>http://bopl.samharris.us/2009/02/performance-testing-a-simple-plan/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Busy</title>
		<link>http://bopl.samharris.us/2008/09/busy/</link>
		<comments>http://bopl.samharris.us/2008/09/busy/#comments</comments>
		<pubDate>Sun, 14 Sep 2008 20:29:37 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://bopl.samharris.us/?p=988</guid>
		<description><![CDATA[In case you hadn&#8217;t noticed, things have been rather quiet here. Work is busy, life too, culminating on Friday of last week when I spent 20 hours in Budapest &#8211; left home at 4:30am Friday, arrived back 11:30am Saturday, which on top of alcohol-based work socializing meant way too little sleep. More regular posting to [...]]]></description>
			<content:encoded><![CDATA[<p>In case you hadn&#8217;t noticed, things have been rather quiet here.  Work is busy, life too, culminating on Friday of last week when I spent 20 hours in Budapest &#8211; left home at 4:30am Friday, arrived back 11:30am Saturday, which on top of alcohol-based work socializing meant way too little sleep.  More regular posting to come, promise!</p>
]]></content:encoded>
			<wfw:commentRss>http://bopl.samharris.us/2008/09/busy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Solaris, NWAM and Static IPs</title>
		<link>http://bopl.samharris.us/2008/06/solaris-nwam-and-static-ips/</link>
		<comments>http://bopl.samharris.us/2008/06/solaris-nwam-and-static-ips/#comments</comments>
		<pubDate>Thu, 19 Jun 2008 13:55:20 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://bopl.samharris.us/?p=977</guid>
		<description><![CDATA[A new feature in OpenSolaris is NWAM, the NetWork Auto Magic, um, thingy. It&#8217;s a handy tool that automatically configures your network connection. Unfortunately it unhandily has no GUI at the moment, though one is in the works, so if it doesn&#8217;t work right first time you can quickly get lost in text files and [...]]]></description>
			<content:encoded><![CDATA[<p>A new feature in OpenSolaris is NWAM, the NetWork Auto Magic, um, thingy.  It&#8217;s a handy tool that automatically configures your network connection.  Unfortunately it unhandily has no GUI at the moment, though one is in the works, so if it doesn&#8217;t work right first time you can quickly get lost in text files and Google searches.  In my case I wanted it to do its normal magic, but to use a static IP address at all times.  Here&#8217;s how I did it:</p>
<p><code>svcs svc:/network/physical</code>  This should show that &#8216;nwam&#8217; is online and &#8216;default&#8217; is disabled.  If it doesn&#8217;t, off to Google with you!</p>
<p>Edit the file <code>/etc/nwam/llp</code> so that it says something like <code>yukonx0 static 192.168.1.50/24</code> &#8211; <code>yukonx0</code> is the name of your network adapter (mine is for a Mac Mini ethernet port), <code>192.168.1.50</code> is the IP you want to assign, and <code>/24</code> shows that your subnet mask is 255.255.255.0.  Your values will vary.</p>
<p>Edit the file <code>/etc/nsswitch.conf</code> and add dns to the hosts line, to give <code>hosts:  files dns</code>.</p>
<p>Now delete the default route entry (this may well not exist, but it&#8217;s safest to remove and recreate): <code>route delete default 192.168.1.1</code> (your default route may be different).  Then add the entry back in permanently: <code>route -p add default 192.168.1.1</code>.</p>
<p>Finally restart nwam with <code>svcadm restart svc:/network/physical:nwam</code> and wait for a moment.  It should tell you that it&#8217;s connected with IP 192.168.1.50 (or whatever you selected).  Once that&#8217;s done you should be able to connect to the Internet, and more importantly be able to reboot and have it still work.  Though it shouldn&#8217;t be necessary, if it&#8217;s not working immediately try rebooting.</p>
]]></content:encoded>
			<wfw:commentRss>http://bopl.samharris.us/2008/06/solaris-nwam-and-static-ips/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Load Balancing Tomcat on Leopard with mod_jk</title>
		<link>http://bopl.samharris.us/2008/05/load-balancing-tomcat-on-leopard-with-mod_jk/</link>
		<comments>http://bopl.samharris.us/2008/05/load-balancing-tomcat-on-leopard-with-mod_jk/#comments</comments>
		<pubDate>Wed, 28 May 2008 14:24:15 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[Recommended]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://bopl.samharris.us/?p=967</guid>
		<description><![CDATA[I&#8217;ve just had to setup a test system that load balances a site running on Tomcat across multiple computers. My test bed is 3 mac minis, one working as the &#8216;head&#8217; running Apache, and the other two in the &#8216;farm&#8217; handling the load. It was a less than painless exercise, so I thought I&#8217;d write [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just had to setup a test system that load balances a site running on Tomcat across multiple computers.  My test bed is 3 mac minis, one working as the &#8216;head&#8217; running Apache, and the other two in the &#8216;farm&#8217; handling the load.  It was a less than painless exercise, so I thought I&#8217;d write up the instructions.</p>
<p><strong>1. Install Tomcat</strong><br />
Download Tomcat from <a href="http://tomcat.apache.org/download-60.cgi">here</a>.<br />
On each farm machine rename the folder to be Tomcat, then move it to the /Library/ directory.<br />
In Terminal:</p>
<p><code>cd /Library/Tomcat/bin<br />
rm *.bat<br />
rm *.exe<br />
chmod +x *</code></p>
<p>(You don&#8217;t need .bat or .exe files, but you do need other files to be executable).</p>
<p>Edit the file <code>/Library/Tomcat/conf/tomcat-users.xml</code> so that it reads:</p>
<p><code>
<pre>
&lt;?xml version=&#x27;1.0&#x27; encoding=&#x27;utf-8&#x27;?&gt;
&lt;tomcat-users&gt;
  &lt;role rolename=&quot;manager&quot;/&gt;
  &lt;user username=&quot;tomcat&quot; password=&quot;s3cret&quot; roles=&quot;manager&quot;/&gt;
&lt;/tomcat-users&gt;
</pre>
<p></code></p>
<p>(Note that the username and password are examples from Tomcat &#8211; you should probably change them).</p>
<p>Repeat the above for each farm machine.</p>
<p><strong>2. Deploy your application</strong><br />
Open each of your farm machines in turn from your browser, e.g.</p>
<p><code>http://farm1:8080/</code></p>
<p>You should see a screen that looks something like this:</p>
<div align=center>
<img src="http://bopl.samharris.us/wp/wp-content/uploads/2008/05/tomcat.png" alt="Welcome screen for a Tomcat installation" title="Tomcat" width="500" height="343"/></div>
<p>Click <em>Tomcat Manager</em> and enter the username and password you defined above.  This should show the <em>Tomcat Web Application Manager</em> screen.</p>
<p>Upload the war file of the application you want to run.  Once complete you should see a link on the manager page to your application.  Click it and make sure it works OK.</p>
<p>Repeat the above for each farm machine.</p>
<p><strong>3. Install mod_jk</strong><br />
Here&#8217;s the tricky bit.  Mod_jk is the apache module that handles the load balancing.  It&#8217;s available <a href="http://tomcat.apache.org/connectors-doc/">here</a>, BUT none of the downloads there will work on Leopard.  Apache on Leopard runs as 64 bit, which isn&#8217;t an option you can download from the Tomcat site.  So you have two options:</p>
<ul>
<li>Download the source code and build your own version.  This isn&#8217;t too hard if you have the relevant tools already installed &#8211; look <a href="http://blog.lo-fi.net/2007/10/leopard-for-web-developer-installing.html">here</a> for an excellent step-by-step on the changes you need to make to build a 64 bit version.</li>
<li>Use <a href="http://www.macports.org/">MacPorts</a></li>
<p>, which appears to have the facility to create a 64 bit version (I haven&#8217;t tested this).</p>
<li>Download the 64 bit version of <a href='http://bopl.samharris.us/wp/wp-content/uploads/2008/05/mod_jk.so'>mod_jk</a> 1.2.26 that I created.  I may update this as I go along, but no guarantees!</li>
</ul>
<p>Once you have your <code>mod_jk.so</code> file (if it doesn&#8217;t end up with that name, change the name) copy it to the <code>/usr/libexec/apache2/</code> directory of your head machine.  It&#8217;s worth changing the ownership and permissions of the file to match the other modules using the commands <code>sudo chown root:wheel mod_jk.so</code> and <code>sudo chmod 755 mod_jk.so</code>.</p>
<p><strong>4. Configure Apache</strong><br />
Edit the file <code>/etc/apache2/httpd.conf</code> and add the following lines:<br />
<code>
<pre>
#Added for Load Balancing
LoadModule jk_module libexec/apache2/mod_jk.so
# Path to workers.properties
JkWorkersFile /etc/apache2/workers.properties 

# Path to jk logs
JkLogFile /your-chosen-location/mod_jk.log

# Jk log level [debug/error/info]
JkLogLevel info

# Jk log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

# JkOptions for forwarding
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories

# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"

JkMount /your-application balancer
JkMount /your-application/* balancer
#End Added for Load Balancing
</pre>
<p></code></p>
<p>Note that you&#8217;ll need to set the location for your log file, and the name of your application.  It&#8217;s a good idea to create the log file (e.g. use <code>touch mod_jk.log</code> in the directory you want it; this makes sure the file can be created, which would otherwise trip Tomcat up.</p>
<p>Now create a new file <code>worker.properties</code> in <code>/etc/apache2</code> containing the following:</p>
<p><code>
<pre>workers.tomcat_home=/Library/Tomcat
workers.java_home=/System/Library/Frameworks/JavaVM.framework/Versions/Current

worker.list=balancer
worker.maintain=5

worker.farm1.port=8009
worker.farm1.host=farm1-IP-address
worker.farm1.type=ajp13
worker.farm1.lbfactor=1

worker.farm2.port=8009
worker.farm2.host=farm2-IP-address
worker.farm2.type=ajp13
worker.farm2.lbfactor=10

worker.balancer.type=lb
worker.balancer.balance_workers=farm1,farm2
worker.balancer.method=Request</pre>
<p></code></p>
<p>The <code>worker.maintain</code> setting helps determine how long one farm machine will be used before the load switches to another machine.  For testing I used 5 (seconds); the default is 60.</p>
<p><strong>5. Start Apache</strong><br />
Tomcat should still be running on each of the farm servers, so start Apache on your head machine by opening System Preferences&#8230;Sharing and checking the &#8216;Web Sharing&#8217; box (if it was already checked then uncheck and recheck it to restart Apache).</p>
<p><strong>6. Test it out</strong><br />
Browse to <code>http://head/your-application</code> &#8211; you should see your application!</p>
<p><strong>Credits</strong><br />
This post was based on the excellent work found <a href="http://thought-bytes.blogspot.com/2007/03/how-to-load-balance-tomcat-55-with.html">here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bopl.samharris.us/2008/05/load-balancing-tomcat-on-leopard-with-mod_jk/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Release Day</title>
		<link>http://bopl.samharris.us/2008/04/release-day/</link>
		<comments>http://bopl.samharris.us/2008/04/release-day/#comments</comments>
		<pubDate>Wed, 30 Apr 2008 18:13:20 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://bopl.samharris.us/?p=962</guid>
		<description><![CDATA[I can finally share what I&#8217;ve been working on since I joined SpringSource. I won&#8217;t try to explain it in detail, because half of you will glaze over immediately, but basically it&#8217;s an application platform that allows convenient deployment of OSGi Java apps using Spring software. See, I told you. For those of you who&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p>I can finally share what I&#8217;ve been working on since I joined SpringSource.  I won&#8217;t try to explain it in detail, because half of you will glaze over immediately, but basically it&#8217;s an application platform that allows convenient deployment of OSGi Java apps using Spring software.  See, I told you.</p>
<p>For those of you who&#8217;ve gone &#8220;ooh&#8221;, <a href="http://www.springsource.com/web/guest/products/suite/applicationplatform">here&#8217;s the product page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://bopl.samharris.us/2008/04/release-day/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First Day</title>
		<link>http://bopl.samharris.us/2008/02/first-day/</link>
		<comments>http://bopl.samharris.us/2008/02/first-day/#comments</comments>
		<pubDate>Mon, 18 Feb 2008 19:16:38 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://bopl.samharris.us/2008/02/first-day/</guid>
		<description><![CDATA[Just got back from my first day at the new job. Much as I&#8217;d expected, there&#8217;s lots to learn; I&#8217;m testing a back-end kind of application (sorry, did I just get too technical?), which means that just about everything you&#8217;re doing is either totally invisible to the user, or is just part of the magic [...]]]></description>
			<content:encoded><![CDATA[<p>Just got back from my first day at the new job.  Much as I&#8217;d expected, there&#8217;s lots to learn; I&#8217;m testing a back-end kind of application (sorry, did I just get too technical?), which means that just about everything you&#8217;re doing is either totally invisible to the user, or is just part of the magic that happens that gets the data they&#8217;re interested in to display.  That means that testing is harder because you can&#8217;t just press the buttons, and harder because the functionality is aimed at developers (one of which I am not).</p>
<p>On the upside I am now the proud carer for a top of the range black MacBook and a 23&#8243; Cinema Display.  I also have a Mighty Mouse, but one day with that was enough for me to run to ASDA for a Trust wireless ergonomic one (£6.50, and as good as the Microsoft version that I previously favoured).</p>
<p>Must rest now, brain hurts.</p>
]]></content:encoded>
			<wfw:commentRss>http://bopl.samharris.us/2008/02/first-day/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New Job</title>
		<link>http://bopl.samharris.us/2008/02/new-job/</link>
		<comments>http://bopl.samharris.us/2008/02/new-job/#comments</comments>
		<pubDate>Tue, 05 Feb 2008 13:13:19 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://bopl.samharris.us/2008/02/new-job/</guid>
		<description><![CDATA[OK, now that the contract is signed I don&#8217;t think I can bring down the wrath of any deity with my boastful nature (c.f. the New England Patriots). In a couple of weeks I&#8217;ll be working for SpringSource, chief committers of the Spring Framework for Java (and .NET, I learned with some surprise). The team [...]]]></description>
			<content:encoded><![CDATA[<p>OK, now that the contract is signed I don&#8217;t think I can bring down the wrath of any deity with my boastful nature (c.f. the New England Patriots).  In a couple of weeks I&#8217;ll be working for <a href="http://www.springsource.com">SpringSource</a>, chief committers of the Spring Framework for Java (and .NET, I learned with some surprise).</p>
<p>The team seem really nice, as well as being wicked smart (end Boston accent).  The work environment looks good, there&#8217;s a gym on site so I&#8217;ll be able to shower once I can cycle-commute again (16 miles each way, so may take a while to work up to it), and the job itself is about as cool as QA can get (take that for what it&#8217;s worth!).  In the meantime I have some time to finish off the bathroom renovation, then move on to a kitchen renovation.  Lucky me.</p>
]]></content:encoded>
			<wfw:commentRss>http://bopl.samharris.us/2008/02/new-job/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Interview</title>
		<link>http://bopl.samharris.us/2008/02/interview/</link>
		<comments>http://bopl.samharris.us/2008/02/interview/#comments</comments>
		<pubDate>Fri, 01 Feb 2008 09:31:03 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://bopl.samharris.us/2008/02/interview/</guid>
		<description><![CDATA[Following a phone call at 8:40 this morning I have a job interview this afternoon (I&#8217;ve been unemployed since 5pm yesterday, so I guess it&#8217;s time to get back in the saddle). I&#8217;m rather nervous, not just because it&#8217;s an interview (it&#8217;s been a while since I had one, but I&#8217;m generally OK with them), [...]]]></description>
			<content:encoded><![CDATA[<p>Following a phone call at 8:40 this morning I have a job interview this afternoon (I&#8217;ve been unemployed since 5pm yesterday, so I guess it&#8217;s time to get back in the saddle).  I&#8217;m rather nervous, not just because it&#8217;s an interview (it&#8217;s been a while since I had one, but I&#8217;m generally OK with them), but because the company:</p>
<ul>
<li>develops a (profitable) open source app (hence enthusiastic, large-brained people)&#8230;</li>
<li>that is highly technical (it&#8217;s a developer tool, which makes it something of a mystery to me)&#8230;</li>
<li>and they&#8217;ve already rejected a number of people (so clearly have strong ideas of what they&#8217;re looking for)</li>
</ul>
<p>So today&#8217;s schedule involves finding and ironing a tie and shirt (and possibly my suit), going to the barber (haven&#8217;t had a hair cut in at least a year) and reading reading reading.</p>
<p>By the way, don&#8217;t be too nervous for me &#8211; I&#8217;m a generally optimistic person, so when I say that I don&#8217;t think I&#8217;ll get the job it&#8217;s not because I doubt myself, I just doubt that this will work out.</p>
]]></content:encoded>
			<wfw:commentRss>http://bopl.samharris.us/2008/02/interview/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Requirements</title>
		<link>http://bopl.samharris.us/2007/11/requirements/</link>
		<comments>http://bopl.samharris.us/2007/11/requirements/#comments</comments>
		<pubDate>Tue, 27 Nov 2007 09:55:00 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://bopl.samharris.us/2007/11/requirements/</guid>
		<description><![CDATA[My job is based almost entirely on requirements. Things that customers want of the software, things that management want, things that designers want, even things that testers and developers want to sneak in there. Here&#8217;s a piece explaining why requirements are like ogres.]]></description>
			<content:encoded><![CDATA[<p>My job is based almost entirely on requirements.  Things that customers want of the software, things that management want, things that designers want, even things that testers and developers want to sneak in there.  Here&#8217;s a piece explaining why <a href="http://angryaussie.wordpress.com/2006/06/09/requirements-are-like-ogres/">requirements are like ogres</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://bopl.samharris.us/2007/11/requirements/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tech Nursery Rhyme</title>
		<link>http://bopl.samharris.us/2007/11/tech-nursery-rhyme/</link>
		<comments>http://bopl.samharris.us/2007/11/tech-nursery-rhyme/#comments</comments>
		<pubDate>Wed, 07 Nov 2007 09:02:19 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://bopl.samharris.us/2007/11/tech-nursery-rhyme/</guid>
		<description><![CDATA[A friend who has a young child in pre-school in Silicon Valley sent me this rhyme they learned recently: 99 little bugs in the code, 99 bugs in the code, fix one bug, compile it again, 101 little bugs in the code.]]></description>
			<content:encoded><![CDATA[<p>A friend who has a young child in pre-school in Silicon Valley sent me this rhyme they learned recently:</p>
<p><code>99 little bugs in the code,<br />
99 bugs in the code,<br />
fix one bug, compile it again,<br />
101 little bugs in the code.</code></p>
]]></content:encoded>
			<wfw:commentRss>http://bopl.samharris.us/2007/11/tech-nursery-rhyme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
