<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Obscured Info</title>
	<atom:link href="http://obscured.info/feed/" rel="self" type="application/rss+xml" />
	<link>http://obscured.info</link>
	<description>as told to Rich Rodriguez</description>
	<pubDate>Mon, 22 Oct 2007 01:21:42 +0000</pubDate>
	<generator>http://wordpress.org/?v=MU</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Debuggers: I&#8217;m all for them</title>
		<link>http://obscured.info/2007/10/22/debuggers-im-all-for-them/</link>
		<comments>http://obscured.info/2007/10/22/debuggers-im-all-for-them/#comments</comments>
		<pubDate>Mon, 22 Oct 2007 01:21:42 +0000</pubDate>
		<dc:creator>Rich</dc:creator>
		
		<category><![CDATA[test]]></category>

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

		<guid isPermaLink="false">http://obscured.info/2007/10/22/debuggers-im-all-for-them/</guid>
		<description><![CDATA[There was yet another huge flamewar over whether or not debuggers are useful or the tools of lazy slobs. Count me in the former: I like using a debugger. Tests are great for shaking out issues with code and for maintaining confidence. However, when things get rough (and they will), it&#8217;s nice to look at [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>There was yet another huge <a href="http://gilesbowkett.blogspot.com/2007/10/debugger-support-considered-harmful.html">flamewar</a> over whether or not debuggers are useful or the tools of lazy slobs. Count me in the <a href="http://www.avibryant.com/2007/10/code-as-screenp.html">former</a>: I like using a debugger. Tests are great for shaking out issues with code and for maintaining confidence. However, when things get rough (and they will), it&#8217;s nice to look at exactly what&#8217;s going on inside the code.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/obscuredinformation.wordpress.com/29/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/obscuredinformation.wordpress.com/29/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/obscuredinformation.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/obscuredinformation.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/obscuredinformation.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/obscuredinformation.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/obscuredinformation.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/obscuredinformation.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/obscuredinformation.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/obscuredinformation.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/obscuredinformation.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/obscuredinformation.wordpress.com/29/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obscured.info&blog=1079190&post=29&subd=obscuredinformation&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://obscured.info/2007/10/22/debuggers-im-all-for-them/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/richier-128.jpg" medium="image">
			<media:title type="html">richier</media:title>
		</media:content>
	</item>
		<item>
		<title>My New PC Build</title>
		<link>http://obscured.info/2007/08/15/my-new-pc-build/</link>
		<comments>http://obscured.info/2007/08/15/my-new-pc-build/#comments</comments>
		<pubDate>Wed, 15 Aug 2007 00:32:12 +0000</pubDate>
		<dc:creator>Rich</dc:creator>
		
		<category><![CDATA[hardware]]></category>

		<guid isPermaLink="false">http://obscured.info/2007/08/15/my-new-pc-build/</guid>
		<description><![CDATA[My AGP-based, first generation Athlon 64 was getting long in the tooth, and didn&#8217;t have a lot of upgrade room. With an eye towards doing more .NET development, and&#8230;uh&#8230;Bioshock&#8217;s impending release I built a new machine.

Athlon64&#215;2 4000+ with stock heatsink/fan
ASUS M2N-SLI mainboard
2GB of RAM (Crucial, of course)
ATI x1950Pro video card
PC Power &#38; Cooling 610 power [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>My AGP-based, first generation Athlon 64 was getting long in the tooth, and didn&#8217;t have a lot of upgrade room. With an eye towards doing more .NET development, and&#8230;uh&#8230;Bioshock&#8217;s impending release I built a new machine.</p>
<ul>
<li>Athlon64&#215;2 4000+ with stock heatsink/fan</li>
<li>ASUS M2N-SLI mainboard</li>
<li>2GB of RAM (Crucial, of course)</li>
<li>ATI x1950Pro video card</li>
<li>PC Power &amp; Cooling 610 power supply</li>
</ul>
<p>I reused a SATA drive and Antec case I had already. The power supply seems like overkill but that video card (crucial for productivity), eats a lot of amps. The build went easily, and even with considerably more horsepower this PC is quieter than the old model.</p>
<p>I&#8217;m also trying running as a limited user under XP on this machine. I&#8217;ll fast-switch to an admin account when I need to install something. Now to get Visual Studio and&#8230;uh Bioshock installed.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/obscuredinformation.wordpress.com/28/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/obscuredinformation.wordpress.com/28/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/obscuredinformation.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/obscuredinformation.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/obscuredinformation.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/obscuredinformation.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/obscuredinformation.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/obscuredinformation.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/obscuredinformation.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/obscuredinformation.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/obscuredinformation.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/obscuredinformation.wordpress.com/28/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obscured.info&blog=1079190&post=28&subd=obscuredinformation&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://obscured.info/2007/08/15/my-new-pc-build/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/richier-128.jpg" medium="image">
			<media:title type="html">richier</media:title>
		</media:content>
	</item>
		<item>
		<title>C# and Yield</title>
		<link>http://obscured.info/2007/07/31/c-goodies/</link>
		<comments>http://obscured.info/2007/07/31/c-goodies/#comments</comments>
		<pubDate>Tue, 31 Jul 2007 01:09:38 +0000</pubDate>
		<dc:creator>Rich</dc:creator>
		
		<category><![CDATA[dotnet]]></category>

		<guid isPermaLink="false">http://obscured.info/2007/07/31/c-goodies/</guid>
		<description><![CDATA[I just discovered yield. Wow. After using some of the new tools languages like Ruby provided (blocks, process control), it&#8217;s been hard to go back to Java. Nice to C# is up to more than just adding syntactic sugar (cough, Java5, cough).
       ]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I just discovered <code>yield</code>. Wow. After using some of the new tools languages like Ruby provided (blocks, process control), it&#8217;s been hard to go back to Java. Nice to C# is up to more than just adding syntactic sugar (cough, Java5, cough).</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/obscuredinformation.wordpress.com/27/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/obscuredinformation.wordpress.com/27/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/obscuredinformation.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/obscuredinformation.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/obscuredinformation.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/obscuredinformation.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/obscuredinformation.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/obscuredinformation.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/obscuredinformation.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/obscuredinformation.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/obscuredinformation.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/obscuredinformation.wordpress.com/27/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obscured.info&blog=1079190&post=27&subd=obscuredinformation&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://obscured.info/2007/07/31/c-goodies/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/richier-128.jpg" medium="image">
			<media:title type="html">richier</media:title>
		</media:content>
	</item>
		<item>
		<title>Diving Into .NET</title>
		<link>http://obscured.info/2007/07/10/diving-into-net/</link>
		<comments>http://obscured.info/2007/07/10/diving-into-net/#comments</comments>
		<pubDate>Tue, 10 Jul 2007 01:06:26 +0000</pubDate>
		<dc:creator>Rich</dc:creator>
		
		<category><![CDATA[dotnet]]></category>

		<guid isPermaLink="false">http://obscured.info/2007/07/10/diving-into-net/</guid>
		<description><![CDATA[I&#8217;ve been coding Java for a good seven years now, ever since I walked away frustrated from writing business applications in lower level COM+, ATL, and C++.  Tonight I dug into a .NET training book for the first time, as I plan on getting certified mainly as a goal for learning.  It&#8217;s really [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;ve been coding Java for a good seven years now, ever since I walked away frustrated from writing business applications in lower level COM+, ATL, and C++.  Tonight I dug into a .NET training book for the first time, as I plan on getting certified mainly as a goal for learning.  It&#8217;s really hard to look at C# as a Java programmer and not see the overwhelming similarities. <code>System.Console.Writeln</code> isn&#8217;t fooling anyone. That said, I&#8217;m already seeing some niceties. Tonight&#8217;s example:</p>
<p><code>bool? flag = null;</code></p>
<p>The &#8216;?&#8217; allows you to indicate the variable is nullable. Java is going to make you think about ints and Integers, even in the Java 5+ world.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/obscuredinformation.wordpress.com/26/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/obscuredinformation.wordpress.com/26/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/obscuredinformation.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/obscuredinformation.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/obscuredinformation.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/obscuredinformation.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/obscuredinformation.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/obscuredinformation.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/obscuredinformation.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/obscuredinformation.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/obscuredinformation.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/obscuredinformation.wordpress.com/26/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obscured.info&blog=1079190&post=26&subd=obscuredinformation&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://obscured.info/2007/07/10/diving-into-net/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/richier-128.jpg" medium="image">
			<media:title type="html">richier</media:title>
		</media:content>
	</item>
		<item>
		<title>I Have the Unit Test Religion</title>
		<link>http://obscured.info/2007/06/22/i-have-the-unit-test-religion/</link>
		<comments>http://obscured.info/2007/06/22/i-have-the-unit-test-religion/#comments</comments>
		<pubDate>Fri, 22 Jun 2007 02:53:20 +0000</pubDate>
		<dc:creator>Rich</dc:creator>
		
		<category><![CDATA[test]]></category>

		<guid isPermaLink="false">http://obscured.info/2007/06/22/i-have-the-unit-test-religion/</guid>
		<description><![CDATA[&#8230;And I must testify. I&#8217;ve been making a conscious effort to make as much of the new logic I&#8217;m writing unit-testable, and it really makes the development process smoother. I can&#8217;t stress enough how important and comforting it is to be able to make changes to complicated logic and be able to immediately test for [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>&#8230;And I must testify. I&#8217;ve been making a conscious effort to make as much of the new logic I&#8217;m writing unit-testable, and it really makes the development process smoother. I can&#8217;t stress enough how important and comforting it is to be able to make changes to complicated logic and be able to immediately test for regressions. There are some pretty big pieces of logic in my current project just crying for unit tests. Now I just have to convince the customer it&#8217;s worth it.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/obscuredinformation.wordpress.com/25/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/obscuredinformation.wordpress.com/25/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/obscuredinformation.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/obscuredinformation.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/obscuredinformation.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/obscuredinformation.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/obscuredinformation.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/obscuredinformation.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/obscuredinformation.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/obscuredinformation.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/obscuredinformation.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/obscuredinformation.wordpress.com/25/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obscured.info&blog=1079190&post=25&subd=obscuredinformation&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://obscured.info/2007/06/22/i-have-the-unit-test-religion/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/richier-128.jpg" medium="image">
			<media:title type="html">richier</media:title>
		</media:content>
	</item>
		<item>
		<title>Defragging OS X</title>
		<link>http://obscured.info/2007/04/26/defragging-os-x/</link>
		<comments>http://obscured.info/2007/04/26/defragging-os-x/#comments</comments>
		<pubDate>Thu, 26 Apr 2007 04:51:08 +0000</pubDate>
		<dc:creator>Rich</dc:creator>
		
		<category><![CDATA[mac]]></category>

		<guid isPermaLink="false">http://obscuredinformation.wordpress.com/2007/04/26/defragging-os-x/</guid>
		<description><![CDATA[When installing Boot Camp on my MacBook Pro, I received an error that files couldn&#8217;t be moved to create the Windows partition. Rather than take the Boot Camp Assistant&#8217;s advice and format the drive, I decided to enter the world of OS X Disk Defragmenting tools. I settled on iDefrag. The reviews were positive, and [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>When installing Boot Camp on my MacBook Pro, I received an error that files couldn&#8217;t be moved to create the Windows partition. Rather than take the Boot Camp Assistant&#8217;s advice and format the drive, I decided to enter the world of OS X Disk Defragmenting tools. I settled on <a href="http://www.coriolis-systems.com/iDefrag.php">iDefrag</a>. The reviews were positive, and the bundled CD Maker app makes it a clear winner: you can build a bootable iDefrag CD that will be able to defrag your Mac&#8217;s boot drive.</p>
<p>After a successful defrag pass, I was able to partition my drive just fine.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/obscuredinformation.wordpress.com/15/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/obscuredinformation.wordpress.com/15/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/obscuredinformation.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/obscuredinformation.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/obscuredinformation.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/obscuredinformation.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/obscuredinformation.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/obscuredinformation.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/obscuredinformation.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/obscuredinformation.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/obscuredinformation.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/obscuredinformation.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obscured.info&blog=1079190&post=15&subd=obscuredinformation&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://obscured.info/2007/04/26/defragging-os-x/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/richier-128.jpg" medium="image">
			<media:title type="html">richier</media:title>
		</media:content>
	</item>
		<item>
		<title>Why My Python MacPort Was Failing to Build</title>
		<link>http://obscured.info/2007/04/08/why-my-python-macport-was-failing-to-build/</link>
		<comments>http://obscured.info/2007/04/08/why-my-python-macport-was-failing-to-build/#comments</comments>
		<pubDate>Mon, 09 Apr 2007 01:27:31 +0000</pubDate>
		<dc:creator>Rich</dc:creator>
		
		<category><![CDATA[mac]]></category>

		<guid isPermaLink="false">http://obscuredinformation.wordpress.com/2007/04/08/why-my-python-macport-was-failing-to-build/</guid>
		<description><![CDATA[I ran into this issue hard last week when I tried to install the port for rdiff-backup using MacPorts. Rdiff-backup depends on python24, and when trying to build that port I was getting this error:
make: *** [Python/mactoolboxglue.o] Error 1
Ultimately, I was bitten by being space conscious when I installed XCode on this Mac: I hadn&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I ran into <a href="http://trac.macports.org/projects/macports/ticket/4881">this issue</a> hard last week when I tried to install the port for rdiff-backup using MacPorts. Rdiff-backup depends on python24, and when trying to build that port I was getting this error:</p>
<p><code>make: *** [Python/mactoolboxglue.o] Error 1</code></p>
<p>Ultimately, I was bitten by being space conscious when I installed XCode on this Mac: I hadn&#8217;t installed the Quicktime, CoreAudio, or OpenGL SDKs since I had no plans to use them. The python port, however, needs them.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/obscuredinformation.wordpress.com/22/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/obscuredinformation.wordpress.com/22/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/obscuredinformation.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/obscuredinformation.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/obscuredinformation.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/obscuredinformation.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/obscuredinformation.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/obscuredinformation.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/obscuredinformation.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/obscuredinformation.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/obscuredinformation.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/obscuredinformation.wordpress.com/22/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obscured.info&blog=1079190&post=22&subd=obscuredinformation&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://obscured.info/2007/04/08/why-my-python-macport-was-failing-to-build/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/richier-128.jpg" medium="image">
			<media:title type="html">richier</media:title>
		</media:content>
	</item>
		<item>
		<title>A Very Quick and Dirty Java Rules Engine</title>
		<link>http://obscured.info/2007/04/08/a-very-quick-and-dirty-java-rules-engine/</link>
		<comments>http://obscured.info/2007/04/08/a-very-quick-and-dirty-java-rules-engine/#comments</comments>
		<pubDate>Sun, 08 Apr 2007 19:36:26 +0000</pubDate>
		<dc:creator>Rich</dc:creator>
		
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://obscuredinformation.wordpress.com/2007/04/08/a-very-quick-and-dirty-java-rules-engine/</guid>
		<description><![CDATA[I was recently tasked with refactoring a mass of business logic that selected the appropriate machinery from a large group for a particular job configuration. The code as written was a huge tree of if/else statements inside a loop over the machines. Each statement would look at a particular set of job characteristics, and check [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I was recently tasked with refactoring a mass of business logic that selected the appropriate machinery from a large group for a particular job configuration. The code as written was a huge tree of if/else statements inside a loop over the machines. Each statement would look at a particular set of job characteristics, and check if the current machine could support the job. This code was quite hard to maintain, as any several hundred lines of branching code is prone to be. What I needed was a little rules engine to evaluate my set of rules for every machine&#8230;<span id="more-21"></span></p>
<p>Rather than brush up on my LISP and <a href="http://en.wikipedia.org/wiki/Rete_algorithm">Rete</a> algorithms, I decided to use my favorite Jakarta project: <a href="http://jakarta.apache.org/commons/collections/">Commons Collections</a>. Given that my rules simply accepted or rejected a machine, I could implement each as an instance of the <a href="http://jakarta.apache.org/commons/collections/api-release/org/apache/commons/collections/Predicate.html">Predicate interface</a>. Its single method <code>boolean evaluate(Object object)</code> is a perfect match for my needs. We can loop over each available machine, and pass it to the <code>evaluate</code> method. If the call returns false, the machine is not appropriate for the job. Common Collections will even take care of that loop for us with the <a href="http://jakarta.apache.org/commons/collections/api-release/org/apache/commons/collections/CollectionUtils.html#filter(java.util.Collection,%20org.apache.commons.collections.Predicate)">CollectionUtils.filter</a> method. Given a Collection and a Predicate, this removes items from the given Collection that evaluate as false to the Predicate. What&#8217;s that? It only takes a single Predicate? That&#8217;s where the <a href="http://jakarta.apache.org/commons/collections/api-release/org/apache/commons/collections/PredicateUtils.html#allPredicate(java.util.Collection)">PredicateUtils.allPredicate</a> method comes in. It will allow us to evaluate a Collection of Predicates as a single unit.</p>
<p>Now all of these rules are extracted as small units that can easily be tested on their own. In addition, it&#8217;s very easy to manually and programmatically add and remove rules from the system.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/obscuredinformation.wordpress.com/21/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/obscuredinformation.wordpress.com/21/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/obscuredinformation.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/obscuredinformation.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/obscuredinformation.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/obscuredinformation.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/obscuredinformation.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/obscuredinformation.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/obscuredinformation.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/obscuredinformation.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/obscuredinformation.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/obscuredinformation.wordpress.com/21/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obscured.info&blog=1079190&post=21&subd=obscuredinformation&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://obscured.info/2007/04/08/a-very-quick-and-dirty-java-rules-engine/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/richier-128.jpg" medium="image">
			<media:title type="html">richier</media:title>
		</media:content>
	</item>
		<item>
		<title>More Hibernate and Setters&#8230;</title>
		<link>http://obscured.info/2007/03/11/26/</link>
		<comments>http://obscured.info/2007/03/11/26/#comments</comments>
		<pubDate>Mon, 12 Mar 2007 02:23:33 +0000</pubDate>
		<dc:creator>Rich</dc:creator>
		
		<category><![CDATA[hibernate]]></category>

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

		<guid isPermaLink="false">http://obscuredinformation.wordpress.com/2007/03/11/26/</guid>
		<description><![CDATA[Over at the MD blog Darren has illustrated more dangers with Hibernate setters.
       ]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Over at the MD blog Darren has <a href="http://www.missiondata.com/blog/java/67/hibernate-and-your-getters-and-setters/">illustrated</a> more dangers with Hibernate setters.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/obscuredinformation.wordpress.com/20/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/obscuredinformation.wordpress.com/20/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/obscuredinformation.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/obscuredinformation.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/obscuredinformation.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/obscuredinformation.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/obscuredinformation.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/obscuredinformation.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/obscuredinformation.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/obscuredinformation.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/obscuredinformation.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/obscuredinformation.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obscured.info&blog=1079190&post=20&subd=obscuredinformation&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://obscured.info/2007/03/11/26/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/richier-128.jpg" medium="image">
			<media:title type="html">richier</media:title>
		</media:content>
	</item>
		<item>
		<title>Serializable? Override hashCode</title>
		<link>http://obscured.info/2007/02/15/serializable-override-hashcode/</link>
		<comments>http://obscured.info/2007/02/15/serializable-override-hashcode/#comments</comments>
		<pubDate>Fri, 16 Feb 2007 02:22:03 +0000</pubDate>
		<dc:creator>Rich</dc:creator>
		
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://obscuredinformation.wordpress.com/2007/02/15/serializable-override-hashcode/</guid>
		<description><![CDATA[This is one of the rules of thumb when implementing Serializable - you need to override hashCode and equals. I was reminded of that today, when some code wasn&#8217;t working in client-server mode, but did in a non-RMI mode.

An enumeration class (pre-Java 5) was used as the key to a *Hash*Map. The client stored a [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>This is one of the rules of thumb when implementing Serializable - you need to override hashCode and equals. I was reminded of that today, when some code wasn&#8217;t working in client-server mode, but did in a non-RMI mode.<br />
<span id="more-19"></span></p>
<p>An enumeration class (pre-Java 5) was used as the key to a *Hash*Map. The client stored a value with a key (EnumClass.AVALUE). The server wasn&#8217;t finding that value in the deserialized Map. Why? Because the default hashCodes for EnumClass.AVALUE were different in the client and server JVMs. </p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/obscuredinformation.wordpress.com/19/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/obscuredinformation.wordpress.com/19/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/obscuredinformation.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/obscuredinformation.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/obscuredinformation.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/obscuredinformation.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/obscuredinformation.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/obscuredinformation.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/obscuredinformation.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/obscuredinformation.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/obscuredinformation.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/obscuredinformation.wordpress.com/19/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obscured.info&blog=1079190&post=19&subd=obscuredinformation&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://obscured.info/2007/02/15/serializable-override-hashcode/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/richier-128.jpg" medium="image">
			<media:title type="html">richier</media:title>
		</media:content>
	</item>
	</channel>
</rss>