<?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>MuddyHorse Farm and Tech</title>
	<atom:link href="http://blog.muddyhorse.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.muddyhorse.com</link>
	<description>Where animals and technology collide</description>
	<lastBuildDate>Thu, 09 Dec 2010 22:54:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<atom:link rel="next" href="http://blog.muddyhorse.com/feed/?page=2" />

		<item>
		<title>This is the Old Blog</title>
		<link>http://blog.muddyhorse.com/2010/12/this-is-the-old-blog/</link>
		<comments>http://blog.muddyhorse.com/2010/12/this-is-the-old-blog/#comments</comments>
		<pubDate>Thu, 09 Dec 2010 22:54:25 +0000</pubDate>
		<dc:creator>pforhan</dc:creator>
				<category><![CDATA[Family]]></category>

		<guid isPermaLink="false">http://blog.muddyhorse.com/?p=417</guid>
		<description><![CDATA[I&#8217;ve migrated just about everything here to muddyhorse.com, so stop coming here! I&#8217;ll keep this site around to serve old links.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve migrated just about everything here to <a href="http://muddyhorse.com">muddyhorse.com</a>, so stop coming here!</p>
<p>I&#8217;ll keep this site around to serve old links.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.muddyhorse.com/2010/12/this-is-the-old-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Third Day</title>
		<link>http://blog.muddyhorse.com/2010/11/third-day/</link>
		<comments>http://blog.muddyhorse.com/2010/11/third-day/#comments</comments>
		<pubDate>Thu, 18 Nov 2010 05:50:55 +0000</pubDate>
		<dc:creator>pforhan</dc:creator>
				<category><![CDATA[Family]]></category>
		<category><![CDATA[san francisco]]></category>
		<category><![CDATA[square]]></category>

		<guid isPermaLink="false">http://blog.muddyhorse.com/?p=405</guid>
		<description><![CDATA[So, here I am, sitting in a San Francisco apartment, overlooking a trendy restaurant scene. With a macbook on my lap. I feel like I just need to tweet something.  Oh, it all makes sense now! My was a bit terse, so I thought I&#8217;d spruce things up a bit.  With real words, anyway.  I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p>So, here I am, sitting in a San Francisco apartment, overlooking a trendy restaurant scene.  With a macbook on my lap.  I feel like I just need to tweet something.  Oh, it all makes sense now!</p>
<p><a href="http://blog.muddyhorse.com/wp-content/uploads/2010/11/square-apt.jpg"><img class="alignnone size-medium wp-image-411" title="Square Living Room" src="http://blog.muddyhorse.com/wp-content/uploads/2010/11/square-apt-300x225.jpg" alt="Living Room Apartment" width="300" height="225" /></a></p>
<p><span id="more-405"></span></p>
<p>My <a href="http://blog.muddyhorse.com/2010/11/i-love-apple/">last post</a> was a bit terse, so I thought I&#8217;d spruce things up a bit.  With real words, anyway.  I&#8217;ve started to settle in a bit.  I rode the Muni subway train home all by myself.  I squashed 1.75 software bugs today, too, a new high in my three-day career.</p>
<p>What&#8217;s Square like?  A little surreal, for a Midwestern boy, but that may be a bit of San Francisco showing.  A day begins with a silent office, just like anywhere else.  Over the next two to three hours, people filter in slowly.  At some point breakfast shows up.  (I had bagels and lox today.  Or, some kind of fish.  Another day I had something made out of walnuts and <a href="http://en.wikipedia.org/wiki/Vaccinium_vitis-idaea"><em>lingonberries</em></a>.)  All the while, folks are working through their tasks.  There is a lot to do for a product with so much focus.</p>
<p>Lunch arrives at around 11:30, 11:45, or so, and often folks will gather in clumps and take a break.  Today we had a guest speaker (<a href="http://twitter.com/Abdur">Abdur Chowdhury</a>) from Twitter come in and give some perspective on how abusers think and work.  A cool part of the day was when <a href="http://twitter.com/jack">Jack Dorsey</a> gave a quick shout of &#8220;Hey, Square!&#8221; to announce the presentation.  The room went silent.  He&#8217;s trained us well.</p>
<p>It&#8217;s a pretty good place to be a developer.  If you set aside the noise, by will or by headphone, you can concentrate on your task and get a lot done.  Meetings are short and direct, more often than not only involving two or three folks for a minute.  Longer tasks may involve two people from different teams pairing up to solve a problem.</p>
<p>I&#8217;m also glad to be back in a strong code review regime.  Every piece of code is reviewed and approved.  This may be while pairing, or by working on an issue branch and sending out to the team for a look.  Very nice.  A good way to learn the standards and conventions, and a whole lot of git.</p>
<p>I&#8217;m slowly learning the ropes on the mac, finding things, turning things on or off, figuring out the keyboard, etc.  But that&#8217;s another post for another day.  I brought along another Dresden Files novel&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.muddyhorse.com/2010/11/third-day/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>I Love Apple</title>
		<link>http://blog.muddyhorse.com/2010/11/i-love-apple/</link>
		<comments>http://blog.muddyhorse.com/2010/11/i-love-apple/#comments</comments>
		<pubDate>Wed, 17 Nov 2010 02:48:37 +0000</pubDate>
		<dc:creator>pforhan</dc:creator>
				<category><![CDATA[Family]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[san francisco]]></category>
		<category><![CDATA[square]]></category>

		<guid isPermaLink="false">http://blog.muddyhorse.com/?p=407</guid>
		<description><![CDATA[I love apple.  You?  Apple very Square, yet not square!  Tasty, and not tasty. And so on.  Here are some very quick impressions from almost two days. Square Fun, fast-paced. Cramped in the current SF office, moving soon. Growing very fast. Very awesome food. Macbook (I&#8217;ll have to do a detailed post on this&#8230;) Missing [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.muddyhorse.com/wp-content/uploads/2010/11/IMAG0112.jpg"><img class="alignnone size-medium wp-image-406" title="apples" src="http://blog.muddyhorse.com/wp-content/uploads/2010/11/IMAG0112-300x200.jpg" alt="Apple" width="300" height="200" /></a></p>
<p>I love apple.  You?  Apple very Square, yet not square!  Tasty, and not tasty.</p>
<p>And so on.  Here are some very quick impressions from almost two days.</p>
<p><span id="more-407"></span></p>
<ul>
<li>Square
<ul>
<li>Fun, fast-paced.</li>
<li>Cramped in the current SF office, moving soon.</li>
<li><a href="http://jobs.squareup.com">Growing</a> very fast.</li>
<li>Very <a href="http://gastronautsf.com">awesome food</a>.</li>
</ul>
</li>
<li>Macbook
<ul>
<li>(I&#8217;ll have to do a detailed post on this&#8230;)</li>
<li>Missing lots of keys</li>
</ul>
<ul>
<li>Unintelligible key combo hints in menu</li>
</ul>
<ul>
<li>Edges are a bit sharp</li>
<li>OS is so-so, very stuck on <a href="http://en.wikipedia.org/wiki/WIMP_%28computing%29">WIMP</a>,I&#8217;m surprised there&#8217;s not more innovation here</li>
<li>Touchpad is enormous.  And borderline non-functional.</li>
<li>I&#8217;ve got <a href="http://ubuntu.com">Ubuntu</a> in a <a href="http://virtualbox.org">VirtualBox</a> and I&#8217;m loving it.</li>
</ul>
</li>
<li>Intellij Idea
<ul>
<li>In one singular case (extract method), it actually seemed smarter than Eclipse.</li>
<li>The rest, surprisingly so-so.</li>
<li>Missing flyovers of, well, everything.  Sometimes a man likes to hover without touching anything.</li>
<li>Wildly misleading web documents for Mac users.</li>
<li>Manages to have more property pages than Eclipse.</li>
<li>Is getting replaced by Eclipse soon, perhaps this evening.</li>
</ul>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.muddyhorse.com/2010/11/i-love-apple/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pat&#8217;s Favorite FireFox Extensions, Oct 2010</title>
		<link>http://blog.muddyhorse.com/2010/10/pats-favorite-firefox-extensions-oct-2010/</link>
		<comments>http://blog.muddyhorse.com/2010/10/pats-favorite-firefox-extensions-oct-2010/#comments</comments>
		<pubDate>Fri, 29 Oct 2010 15:36:01 +0000</pubDate>
		<dc:creator>pforhan</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[extensions]]></category>
		<category><![CDATA[firefox]]></category>

		<guid isPermaLink="false">http://blog.muddyhorse.com/?p=393</guid>
		<description><![CDATA[Here&#8217;s an update to a .  Extensions have come and gone, and Firefox is much updated now, at 3.6.x, with 4.0 on the near horizon. First, a quick note:  Yes, I still use Firefox as my default browser.  It works, it is extensible, and I&#8217;ve never had performance problems with it.  Yes, Chrome is out [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s an update to a <a href="http://blog.muddyhorse.com/2008/02/pats-favorite-firefox-extensions/">2008 article</a>.  Extensions have come and gone, and Firefox is much updated now, at 3.6.x, with 4.0 on the near horizon.<span id="more-393"></span></p>
<p>First, a quick note:  Yes, I still use Firefox as my default browser.  It works, it is extensible, and I&#8217;ve never had performance problems with it.  Yes, Chrome is out there, but every time I&#8217;ve tried it, it is broken in various ways (spellchecking, for one) and the UI decisions in it are perplexing.</p>

<table id="wp-table-reloaded-id-3-no-1" class="wp-table-reloaded wp-table-reloaded-id-3">
<thead>
	<tr class="row-1 odd">
		<th class="column-1">Extension</th><th class="column-2">Description</th><th class="column-3">Status / notes</th>
	</tr>
</thead>
<tbody>
	<tr class="row-2 even">
		<td class="column-1"><a href="http://www.getpersonas.com/en-US/persona/33204">Subtle 2.0</a></td><td class="column-2">A theme/persona, actually.  Clean, light-colored.  The mellow gradient spiffs up the flat gray of the default FF background.</td><td class="column-3">Currently in use</td>
	</tr>
	<tr class="row-3 odd">
		<td class="column-1"><a href="https://addons.mozilla.org/en-US/firefox/addon/6623/">Aging Tabs</a></td><td class="column-2">Sort-of cool extension, changes tab colors for tabs you haven't visited recently.</td><td class="column-3">Installed, but disabled.  While it seems like a great idea, I ended up confusing myself more often than not.</td>
	</tr>
	<tr class="row-4 even">
		<td class="column-1"><a href="https://addons.mozilla.org/en-US/firefox/addon/6623/">BetterPrivacy</a></td><td class="column-2">Calls itself the "Super-Cookie Safeguard".  Deals with Flash LSOs, which are a kind of cookie not managed by the browser.</td><td class="column-3">Currently in use.  Pretty unobtrusive, I don't have to do anything after initial setup.</td>
	</tr>
	<tr class="row-5 odd">
		<td class="column-1"><a href="https://addons.mozilla.org/en-US/firefox/addon/2360/">Broadband Speed Test and Diagnostics</a></td><td class="column-2">Quick way to do a speed test, provides a bunch of tools when an HTTP error condition is returned.</td><td class="column-3">Installed, rarely used.  I don't tend to use this much, anymore, so it may be on the chopping block.</td>
	</tr>
	<tr class="row-6 even">
		<td class="column-1"><a href="https://addons.mozilla.org/en-US/firefox/addon/3006/">DownloadHelper</a></td><td class="column-2">Provides the means to download flash video and what-not</td><td class="column-3">Installed and in use.  Want to download a youtube clip?  This makes it pretty easy.</td>
	</tr>
	<tr class="row-7 odd">
		<td class="column-1"><a href="https://addons.mozilla.org/en-US/firefox/addon/201/">DownThemAll!</a></td><td class="column-2">Firefox download manager.  Can queue up files, download them one at a time, etc.</td><td class="column-3">Installed and in use.</td>
	</tr>
	<tr class="row-8 even">
		<td class="column-1"><a href="https://addons.mozilla.org/en-US/firefox/addon/7423/">Enter Selects</a></td><td class="column-2">As you type in the address bar, if a match shows up below, hitting enter will select that match.</td><td class="column-3">Installed and in use.  Nice -- when it works.  I haven't figured out the rules about this, but I still have plenty of times I have to select the first row.</td>
	</tr>
	<tr class="row-9 odd">
		<td class="column-1"><a href="https://addons.mozilla.org/en-US/firefox/addon/1843/">Firebug</a></td><td class="column-2">Very nice web development package and debugger.</td><td class="column-3">Installed and in use.  Great for development, largely unused otherwise.</td>
	</tr>
	<tr class="row-10 even">
		<td class="column-1"><a href="https://addons.mozilla.org/en-US/firefox/addon/10868/">Firefox Sync</a></td><td class="column-2">Formerly known as Weave, a great bookmark/history/passwords sync app.  If you are feeling paranoid, you can even host your own server.</td><td class="column-3">Installed and in use.  Not 100% perfect, but pretty good.  Has a bit of trouble with slow connections.</td>
	</tr>
	<tr class="row-11 odd">
		<td class="column-1"><a href="https://addons.mozilla.org/en-US/firefox/addon/433/">Flashblock</a></td><td class="column-2">Blocks flash before it starts.  You can then pick and choose which flash bits to run, like a movie player.</td><td class="column-3">Installed and in use.  There are the occasional sites that have a problem with this, but you can whitelist the whole site.</td>
	</tr>
	<tr class="row-12 even">
		<td class="column-1"><a href="https://addons.mozilla.org/en-US/firefox/addon/9609/">Ghostery</a></td><td class="column-2">Looks like a very nice "track the trackers" extension.  Notifies user about cookies, tracking images, etc, and can block problem sites.</td><td class="column-3">Installed and in use.  I just added this today, after a harrowing bout of political ads all across the web.</td>
	</tr>
	<tr class="row-13 odd">
		<td class="column-1"><a href="https://addons.mozilla.org/en-US/firefox/addon/748/">Greasemonkey</a></td><td class="column-2">Users can add scripts to a web page to modify its behavior.</td><td class="column-3">Installed and in use.  Rarely used, but crucial sometimes.  For example, it can script the Groupwise web client to auto-refresh and prevent timed logout.</td>
	</tr>
	<tr class="row-14 even">
		<td class="column-1"><a href="https://addons.mozilla.org/en-US/firefox/addon/3199/">Link Alert</a></td><td class="column-2">Provides a small icon upon hovering over a link.  Can show PDFs, "new window" links, etc.</td><td class="column-3">Installed and in use.</td>
	</tr>
	<tr class="row-15 odd">
		<td class="column-1"><a href="https://addons.mozilla.org/en-US/firefox/addon/951/">Nuke Anything Enhanced</a></td><td class="column-2">Delete elements from web pages.</td><td class="column-3">Installed and in use.  Great for deleting flying boxes, inappropriate ads, unneeded flash bits, and more.</td>
	</tr>
	<tr class="row-16 even">
		<td class="column-1"><a href="https://addons.mozilla.org/en-US/firefox/addon/2691/">Poster</a></td><td class="column-2">Development tool for dealing with REST services</td><td class="column-3">Installed and in use.  A bit crude, but it has all the functionality and HTTP methods needed.</td>
	</tr>
	<tr class="row-17 odd">
		<td class="column-1"><a href="https://addons.mozilla.org/en-US/firefox/addon/1237/">QuickJava</a></td><td class="column-2">Blocks java, JavaScript, flash, Silverlight content.</td><td class="column-3">Installed and in use.  I only have this because Flashblock does not do its thing for Java applets.</td>
	</tr>
	<tr class="row-18 even">
		<td class="column-1"><a href="https://addons.mozilla.org/en-US/firefox/addon/10535/">Remove New Tab Button</a></td><td class="column-2">Removes the new tab button from the tab bar.</td><td class="column-3">Installed and in use.  Ctrl-T forever!</td>
	</tr>
	<tr class="row-19 odd">
		<td class="column-1"><a href="https://addons.mozilla.org/en-US/firefox/addon/77/">Sage</a></td><td class="column-2">RSS Reader.  Uses Bookmarks to organize links.</td><td class="column-3">Installed and in use.  Usage of this has dropped a bit, with smartphone taking on some of the work.</td>
	</tr>
	<tr class="row-20 even">
		<td class="column-1"><a href="https://addons.mozilla.org/en-US/firefox/addon/427/">ScrapBook</a></td><td class="column-2">Quickly copies a web page locally.</td><td class="column-3">Installed and in use.  Rarely used, though.  Another candidate for deletion.</td>
	</tr>
	<tr class="row-21 odd">
		<td class="column-1"><a href="https://addons.mozilla.org/en-US/firefox/addon/3544/">SearchLoad Options</a></td><td class="column-2">Tweaks the behavior of the search box.</td><td class="column-3">Installed and in use.  I like the auto-clearing after a search.  Also, the auto-reset to google is nice, but I find myself very rarely switching search engines.  I tend to use keywords for this instead.</td>
	</tr>
	<tr class="row-22 even">
		<td class="column-1"><a href="https://addons.mozilla.org/en-US/firefox/addon/60/">Web Developer</a></td><td class="column-2">Web development features, messing with forms, css, more.</td><td class="column-3">Installed and in use.  This plugin differs in feel and functionality from Firebug quite a bit.  Useful in day-to-day browsing at times.</td>
	</tr>
</tbody>
</table>

<p>&nbsp;</p>
<p>And to my dearly departed extensions:  you may still be installed, but you got left behind and I can&#8217;t use you:</p>
<ul>
<li>Google Notebook</li>
<li>InstantAction Game Launcher</li>
<li>Quick Preference Button</li>
<li>Reveal</li>
<li>TagSifter</li>
<li>UrlParams</li>
<li>WebDAV Launcher</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.muddyhorse.com/2010/10/pats-favorite-firefox-extensions-oct-2010/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Quick Maven Primer for Java Development</title>
		<link>http://blog.muddyhorse.com/2010/10/quick-maven-primer-for-java-development/</link>
		<comments>http://blog.muddyhorse.com/2010/10/quick-maven-primer-for-java-development/#comments</comments>
		<pubDate>Wed, 13 Oct 2010 18:28:38 +0000</pubDate>
		<dc:creator>pforhan</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[basics]]></category>
		<category><![CDATA[java-build-systems]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[netrexx]]></category>
		<category><![CDATA[rexx]]></category>

		<guid isPermaLink="false">http://blog.muddyhorse.com/?p=381</guid>
		<description><![CDATA[I wrote this up for the NetRexx mailing list, but it&#8217;s a good basics article for anyone wanting to get a quick glance at Maven&#8216;s operations.  I&#8217;m not , I&#8217;m just giving a quick description. Maven 102: Advanced Basics Alternate title:  What you need to do to be a good Maven citizen Java module layout [...]]]></description>
			<content:encoded><![CDATA[<p>I wrote this up for the <a href="http://www.google.com/search?q=netrexx&amp;ie=utf-8&amp;oe=utf-8&amp;aq=t&amp;rls=org.mozilla:en-US:official&amp;client=firefox-a">NetRexx</a> <a href="http://www-01.ibm.com/software/awdtools/netrexx/mailinglist.html">mailing list</a>, but it&#8217;s a good basics article for anyone wanting to get a quick glance at <a href="http://maven.apache.org/">Maven</a>&#8216;s operations.  I&#8217;m not <a href="http://blog.muddyhorse.com/2009/02/java-build-systems-part-2-maven/">trying to come up with a better Maven</a>, I&#8217;m just giving a quick description.<span id="more-381"></span></p>
<h2>Maven 102: Advanced Basics</h2>
<p>Alternate title:  What you need to do to be a good Maven citizen</p>
<h3>Java module layout</h3>
<p>Here is the default layout for a java/jar maven module.  You can reconfigure source and output directories, but you may not want to, as I&#8217;ll discuss in a second.</p>
<p>source/input directories:</p>
<pre style="padding-left: 30px;">src/main/java
src/main/resources
src/test/java
src/test/resources</pre>
<p>output directories:</p>
<pre style="padding-left: 30px;">target
target/classes
target/test-classes</pre>
<h3>Build Flow</h3>
<p>A general flow for Maven in such a project would be to:</p>
<ol>
<li>compile src/main/java to target/classes</li>
<li>copy src/main/resources to target/classes</li>
<li>compile src/test/java to target/test-classes</li>
<li>copy src/test/resources to target/test-classes</li>
<li>run unit tests, output to target/surefire-reports</li>
<li>build jar, source jar, and test jars, place in target</li>
</ol>
<p>Again, you can change much of this, but with Maven, the more you fight with it, the more you will have to fight with it.  It kind of snowballs and will cause annoyances down the line, during releases and documentation and site generation and such.</p>
<h3>Repositories</h3>
<p>It is not terrible to set up a repository, but the holy grail (for the users, anyway) is to get your libraries uploaded to <a href="http://repo1.maven.org/maven2/">Maven Central</a> &#8212; this will make the process quite seamless for adding a new compiler to a project because access to Maven Central is basically required for Maven operation.</p>
<h3>Custom Language Compilation</h3>
<p>Another important task for easy maven integration is compilation.  This will generally require a special maven plugin that can essentially execute  the custom language compiler and conform to something similar to the input and output directories above.  This is not too tricky, especially if there is a java entry point to do the work.</p>
<h3>Modularity</h3>
<p>Related to this is a topic of modularity:  how do you break up a project?  How do you resolve circular references across multiple langugaes? For example, you will generally get yourself into trouble if you have:</p>
<pre style="padding-left: 30px;">src/main/java
src/main/netrexx
src/main/javafx</pre>
<p>all in the same module, and are trying to compile them all at once.  Unless you have a single compiler that can process all your source at once, this won&#8217;t work.  You will be far happier to make multiple modules, use maven to describe the dependencies, and do one language at a time.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.muddyhorse.com/2010/10/quick-maven-primer-for-java-development/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Fun Readings</title>
		<link>http://blog.muddyhorse.com/2010/09/fun-readings/</link>
		<comments>http://blog.muddyhorse.com/2010/09/fun-readings/#comments</comments>
		<pubDate>Tue, 28 Sep 2010 19:42:19 +0000</pubDate>
		<dc:creator>pforhan</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[bond]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[swing]]></category>
		<category><![CDATA[ui]]></category>

		<guid isPermaLink="false">http://blog.muddyhorse.com/?p=378</guid>
		<description><![CDATA[<a href="http://blog.muddyhorse.com/2010/09/fun-readings/" title="Fun Readings"><img src="http://blog.muddyhorse.com/wp-content/uploads/yapb_cache/imag0071.5t6ti0zmcfswkwoc4scsgoo8g.a9sxxja1njksswcs400wcc4cg.th.jpeg" width="180" height="120" alt="Fun Readings" style="float:left;padding:0 10px 10px 0;" ></a>Swing, James Bond, interface design, Dresden, an Elizibethan England children&#8217;s novel, and more &#8212; it&#8217;s all good.]]></description>
			<content:encoded><![CDATA[<a href="http://blog.muddyhorse.com/2010/09/fun-readings/" title="Fun Readings"><img src="http://blog.muddyhorse.com/wp-content/uploads/yapb_cache/imag0071.5t6ti0zmcfswkwoc4scsgoo8g.a9sxxja1njksswcs400wcc4cg.th.jpeg" width="180" height="120" alt="Fun Readings" style="float:left;padding:0 10px 10px 0;" ></a><p>Swing, James Bond, interface design, Dresden, an Elizibethan England children&#8217;s novel, and more &#8212; it&#8217;s all good.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.muddyhorse.com/2010/09/fun-readings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Clumsy Pattern: Passing Data Around</title>
		<link>http://blog.muddyhorse.com/2010/07/the-clumsy-pattern-passing-data-around/</link>
		<comments>http://blog.muddyhorse.com/2010/07/the-clumsy-pattern-passing-data-around/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 21:39:13 +0000</pubDate>
		<dc:creator>pforhan</dc:creator>
				<category><![CDATA[The Clumsy Pattern]]></category>
		<category><![CDATA[clumsy]]></category>
		<category><![CDATA[LinkedIn]]></category>
		<category><![CDATA[orm]]></category>
		<category><![CDATA[rest]]></category>

		<guid isPermaLink="false">http://blog.muddyhorse.com/?p=347</guid>
		<description><![CDATA[In the long-awaited part 2 of , I discuss how we pass around data and objects around &#8212; remote server communication.Not only do we spend a lot of time getting it right, we waste a lot of time arguing about how to do it, which solution is best, and why. We have lots of technologies [...]]]></description>
			<content:encoded><![CDATA[<p>In the long-awaited part 2 of <a href="http://blog.muddyhorse.com/category/technical/clumsy-pattern/">The Clumsy Pattern</a>, I discuss how we pass around data and objects around &#8212; remote server communication.<span id="more-347"></span>Not only do we spend a lot of time getting it right, we waste a lot of time arguing about how to do it, which solution is best, and why.</p>
<p>We have lots of technologies and practices for remote communication.  Some examples from Java: RPC, home-grown sockets, serialization, RMI, CORBA, XML, REST, DTOs, SOAP, and many more.</p>
<p>What&#8217;s the one thing consistent about all of those?  99% of the time, <strong>I DON&#8217;T CARE!</strong> I want to be able to send data to and from a server quickly and consistently.  How the data gets <a href="http://www.vidilife.com/video_play_952031_Hi_Rez_Tron_vs_DM.htm">de-rezzed and rezzed</a> in the meantime matters to the end product only a tiny bit.  (sorry, only good video I could find, watch :10 through :45 for what I mean &#8212; and hope you like Depeche Mode)</p>
<p>These are really cool technologies, and fascinating to dive into for their own sake.  But when I&#8217;m trying to deliver software, I don&#8217;t want to worship at a particular altar, it just doesn&#8217;t matter.  You can typically accomplish any requirements using any of the technologies, but we so often just start waving techs around as a panacea instead of looking closely at the problem.</p>
<blockquote><p><strong>Example:</strong> We just had a client-server app using RMI with <a href="http://static.springsource.org/spring/docs/2.0.x/reference/remoting.html">Spring Remoting</a>&#8216;s HttpInvoker.  Were we having troubles with too much data being sent from the server, and being tied to the same version of domain objects on client and server, having trouble with releasing.  (A Detailed analysis <a href="http://www.objectcommando.com/blog/2010/01/19/spring-remoting-a-step-toward-soa/">here</a>, from a former architect on the team.)  We solved this by switching to <a href="http://en.wikipedia.org/wiki/Restful">RESTful</a> web services all over.  We have specific data being sent down, and no longer depend upon the same module for domain objects.</p>
<p>Now, take a look at the problem and the solution.  We weren&#8217;t having a problem of <em>how</em> we sent the data over, we were having a problem of <em>what</em> we were sending.  We could have fixed that in place, using RMI, using a common module, with a couple of tweaks (managing serialization and <em>not</em> releasing domain, client, and server simultaneously).  Instead, we spent several man-months (I might dare to say close to a year of time) converting our modules, dealing with any RESTEasy quirks, and arguing over URIs.  And now we have 2-3 extra copies of objects in client, server, and web modules.
</p></blockquote>
<p>In the end, things are improved, and these problems are solved.  In fact, following REST patterns basically forced us to confront the problems.  I am glad we are where we are, we&#8217;ve gone to something more text- and test-friendly, all with just a browser.  But it wasn&#8217;t REST that fixed our problems &#8212; we did.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.muddyhorse.com/2010/07/the-clumsy-pattern-passing-data-around/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android Development Quick-start</title>
		<link>http://blog.muddyhorse.com/2010/06/android-development-quick-start/</link>
		<comments>http://blog.muddyhorse.com/2010/06/android-development-quick-start/#comments</comments>
		<pubDate>Thu, 10 Jun 2010 15:24:30 +0000</pubDate>
		<dc:creator>pforhan</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[LinkedIn]]></category>

		<guid isPermaLink="false">http://blog.muddyhorse.com/?p=341</guid>
		<description><![CDATA[I&#8217;m trying to pick up a bit of Android development experience. Here&#8217;s some tips for getting started from scratch.  I have a lot to learn&#8230; Documentation and Tutorials What is Android? &#8212; Quick start on architecture . Application Fundamentals &#8212; Terminology and Components Hello, World tutorial &#8212; very basic tutorial Notepad tutorial &#8212; nice tutorial [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m trying to pick up a bit of Android development experience.  Here&#8217;s some tips for getting started from scratch.  I have a lot to learn&#8230;<span id="more-341"></span></p>
<h1>Documentation and Tutorials</h1>
<p style="padding-left: 30px;"><a href="http://developer.android.com/guide/basics/what-is-android.html">What is Android?</a> &#8212; Quick start on architecture .</p>
<p style="padding-left: 30px;"><a href="http://developer.android.com/guide/topics/fundamentals.html">Application Fundamentals</a> &#8212; Terminology and Components</p>
<p style="padding-left: 30px;"><a href="http://developer.android.com/resources/tutorials/hello-world.html">Hello, World tutorial</a> &#8212; very basic tutorial<a href="http://developer.android.com/resources/tutorials/notepad/index.html"></a></p>
<p style="padding-left: 30px;"><a href="http://developer.android.com/resources/tutorials/notepad/index.html">Notepad tutorial</a> &#8212; nice tutorial with &#8220;problems&#8221; to work though, as well as a clear goal.  Demonstrates different parts of an app&#8217;s lifecycle.</p>
<h1>Development Set-Up</h1>
<p>You&#8217;ll have to go through several steps to get a fully working development environment.  Start with the <a href="http://developer.android.com/sdk/index.html">Android SDK</a>.  Download to somewhere reasonable, then cd into {android&#8217;s home}/tools and run android.  This brings up the SDK/AVD manager, which can pull down samples, documentation, and runtime environments for the different Android versions.  It also is where you set up and launch the device emulators.</p>
<p>Get the <a href="http://developer.android.com/sdk/eclipse-adt.html">Eclipse plug-in for Android</a> next, if you like that sort of thing.  Be sure to configure the SDK location in your preferences.  Note that you can launch the SDK/AVD manager right out of Eclipse, if you like.  If you don&#8217;t want to use the plug in, be sure to check the documentation for the <a href="http://developer.android.com/guide/developing/other-ide.html">command-line tools</a>, which can do many (if not all) of the Eclipse plugin&#8217;s functions.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.muddyhorse.com/2010/06/android-development-quick-start/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Definition of Good Software</title>
		<link>http://blog.muddyhorse.com/2010/05/the-definition-of-good-software/</link>
		<comments>http://blog.muddyhorse.com/2010/05/the-definition-of-good-software/#comments</comments>
		<pubDate>Sat, 08 May 2010 13:28:37 +0000</pubDate>
		<dc:creator>pforhan</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[LinkedIn]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://blog.muddyhorse.com/?p=334</guid>
		<description><![CDATA[In my mind, the definition of well-made software is this:  The absolute minimum required to get the job done. There&#8217;s a little agile in there, relating to software design minimalism.  That&#8217;s not what I&#8217;m getting at.  Whether you are developing something new, or fixing something broken, deliver the very least you must for the desired [...]]]></description>
			<content:encoded><![CDATA[<p>In my mind, the definition of well-made software is this:  The absolute minimum required to get the job done.</p>
<p>There&#8217;s a little agile in there, relating to software design minimalism.  That&#8217;s not what I&#8217;m getting at.  Whether you are developing something new, or fixing something broken, deliver the very least you must for the desired outcome.</p>
<p>I did not say to do the least amount of work required, I said deliver the very least required; go quickly and completely in the direction you must move.  Destroy that bug, hack that web page, do something terrible and glorious.  After getting it working, though, take that next step, and wash all the mud off what you just did.  That is, minimize the actual changes you&#8217;re about to apply.  Make sure every change makes sense and is required.  Don&#8217;t lump another change or some code reformatting in just for &#8220;because it needs to be done eventually&#8221;.  Focus on only what you are doing.</p>
<p>It is a massive accomplishment to delete code from a working system and still have a working system.  It is thrilling, and you&#8217;ve saved yourself and &#8220;the next guy&#8221; a lot of trouble in the future.  This applies whether you are fixing a bug or making something completely new.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.muddyhorse.com/2010/05/the-definition-of-good-software/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>JavaFX: Getting the Frame of a Stage</title>
		<link>http://blog.muddyhorse.com/2010/04/javafx-getting-the-frame-of-a-stage/</link>
		<comments>http://blog.muddyhorse.com/2010/04/javafx-getting-the-frame-of-a-stage/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 12:28:04 +0000</pubDate>
		<dc:creator>pforhan</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[javafx]]></category>

		<guid isPermaLink="false">http://blog.muddyhorse.com/?p=323</guid>
		<description><![CDATA[The JavaFX Stage class, version 1.2 has some simple methods for dealing with focus, toBack() and toFront().  What it is lacking is a way of setting the &#8220;always on top&#8221; property, to force the window to the front. A quick search revealed several hacky things, but when I read Rakesh Menon&#8217;s Always On Top post [...]]]></description>
			<content:encoded><![CDATA[<p>The JavaFX Stage class, version 1.2 has some simple methods for dealing with focus, toBack() and toFront().  What it is lacking is a way of setting the &#8220;always on top&#8221; property, to force the window to the front.</p>
<p>A quick search revealed several hacky things, but when I read Rakesh Menon&#8217;s <a href="http://blogs.sun.com/rakeshmenonp/entry/javafx_always_on_top">Always On Top</a> post to the end, I found the tidbit I needed:  java.awt.Frame.getFrames().  It&#8217;s a static method that lists all AWT frames in use by the system.  So, for as long as JavaFX uses AWT/Swing (not too much longer, apparently), we can use that.  Here&#8217;s the code to get your Stage as a Frame, all above-board.  What you do with it is up to you.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">function getFrame<span style="color: #009900;">&#40;</span>frameName<span style="color: #339933;">:</span><span style="color: #003399;">String</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span>java.<span style="color: #006633;">awt</span>.<span style="color: #003399;">Frame</span> <span style="color: #009900;">&#123;</span>
    var frames <span style="color: #339933;">=</span> java.<span style="color: #006633;">awt</span>.<span style="color: #003399;">Frame</span>.<span style="color: #006633;">getFrames</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>frame in frames<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>frameName <span style="color: #339933;">==</span> frame.<span style="color: #006633;">getTitle</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000000; font-weight: bold;">return</span> frame
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.muddyhorse.com/2010/04/javafx-getting-the-frame-of-a-stage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Not fixing the Xbox 360?</title>
		<link>http://blog.muddyhorse.com/2010/03/not-fixing-the-xbox-360/</link>
		<comments>http://blog.muddyhorse.com/2010/03/not-fixing-the-xbox-360/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 20:40:07 +0000</pubDate>
		<dc:creator>pforhan</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[360]]></category>
		<category><![CDATA[repair]]></category>
		<category><![CDATA[shopping]]></category>
		<category><![CDATA[xbox]]></category>
		<category><![CDATA[xbox-360]]></category>

		<guid isPermaLink="false">http://blog.muddyhorse.com/?p=318</guid>
		<description><![CDATA[I broke down and bought a new Xbox 360 Arcade unit to replace my variously failing boxes.  If you , I tried a couple of strategies to fix my machine.  They all worked &#8212; for a time.  The time the fix worked, however, was variable, ranging from 5-30 hours for a good fix, and as [...]]]></description>
			<content:encoded><![CDATA[<p>I broke down and bought a <a href="http://dealnews.com/Microsoft-Xbox-360-Arcade-Console-for-159-free-shipping/352789.html">new Xbox 360 Arcade</a> unit to replace my variously failing boxes.  If you <a href="http://blog.muddyhorse.com/2010/02/fixing-the-xbox-360/">remember back just a bit in time</a>, I tried a couple of strategies to fix my machine.  They all worked &#8212; for a time.  The time the fix worked, however, was variable, ranging from 5-30 hours for a good fix, and as short as 30 minutes for a bad fix.</p>
<p>I&#8217;ve spent a lot of time on the boxes, and unfortunately, the time I spent fixing seems to have eclipsed the time I spent playing.</p>
<p>The thing I&#8217;ve found most fascinating about the process is that, while buggy, the 360 hardware is quite resilient.  With enough twiddling of screws, I can get a box up and running quite consistently.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.muddyhorse.com/2010/03/not-fixing-the-xbox-360/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>A Small Token of Our Appreciation</title>
		<link>http://blog.muddyhorse.com/2010/02/a-small-token-of-our-appreciation/</link>
		<comments>http://blog.muddyhorse.com/2010/02/a-small-token-of-our-appreciation/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 16:10:54 +0000</pubDate>
		<dc:creator>pforhan</dc:creator>
				<category><![CDATA[Family]]></category>
		<category><![CDATA[bonus]]></category>
		<category><![CDATA[mr. yuck]]></category>
		<category><![CDATA[wow]]></category>

		<guid isPermaLink="false">http://blog.muddyhorse.com/?p=307</guid>
		<description><![CDATA[<a href="http://blog.muddyhorse.com/2010/02/a-small-token-of-our-appreciation/" title="A Small Token of Our Appreciation"><img src="http://blog.muddyhorse.com/wp-content/uploads/yapb_cache/img00056.e85a7vl676gcw8k4w4c08goo4.a9sxxja1njksswcs400wcc4cg.th.jpeg" width="180" height="135" alt="A Small Token of Our Appreciation" style="float:left;padding:0 10px 10px 0;" ></a>The Company was pleased with our performance last year.  So they went against everything we&#8217;ve been teaching our kids, and gave us candy pills. That&#8217;s Jelly beans on the left, mints on the right.  Or so I hope.]]></description>
			<content:encoded><![CDATA[<a href="http://blog.muddyhorse.com/2010/02/a-small-token-of-our-appreciation/" title="A Small Token of Our Appreciation"><img src="http://blog.muddyhorse.com/wp-content/uploads/yapb_cache/img00056.e85a7vl676gcw8k4w4c08goo4.a9sxxja1njksswcs400wcc4cg.th.jpeg" width="180" height="135" alt="A Small Token of Our Appreciation" style="float:left;padding:0 10px 10px 0;" ></a><p>The Company was pleased with our performance last year.  So they went against everything we&#8217;ve been teaching our kids, and gave us candy pills.</p>
<p>That&#8217;s Jelly beans on the left, mints on the right.  Or so I hope.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.muddyhorse.com/2010/02/a-small-token-of-our-appreciation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A good and bad thing about Buzz.</title>
		<link>http://blog.muddyhorse.com/2010/02/a-good-and-bad-thing-about-buzz/</link>
		<comments>http://blog.muddyhorse.com/2010/02/a-good-and-bad-thing-about-buzz/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 13:23:22 +0000</pubDate>
		<dc:creator>pforhan</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[buzz]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://blog.muddyhorse.com/?p=303</guid>
		<description><![CDATA[One cool thing about Buzz: I get more replies than before on my posts. One bad thing about Buzz: Those replies are on the Buzz server, not here. I&#8217;ll try to scale back the user requirements for posting, as I have gotten complaints about that.  But if spam gets too high, I&#8217;ll have to turn [...]]]></description>
			<content:encoded><![CDATA[<p>One cool thing about Buzz:  I get more replies than before on my posts.</p>
<p>One bad thing about Buzz: Those replies are on the Buzz server, not here.</p>
<p><span id="more-303"></span>I&#8217;ll try to scale back the user requirements for posting, as I have gotten complaints about that.  But if spam gets too high, I&#8217;ll have to turn it back on.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.muddyhorse.com/2010/02/a-good-and-bad-thing-about-buzz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Clumsy Pattern: Software Development</title>
		<link>http://blog.muddyhorse.com/2010/02/the-clumsy-pattern-software-development/</link>
		<comments>http://blog.muddyhorse.com/2010/02/the-clumsy-pattern-software-development/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 14:30:48 +0000</pubDate>
		<dc:creator>pforhan</dc:creator>
				<category><![CDATA[The Clumsy Pattern]]></category>
		<category><![CDATA[archaic]]></category>
		<category><![CDATA[clumsy]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[LinkedIn]]></category>

		<guid isPermaLink="false">http://blog.muddyhorse.com/?p=295</guid>
		<description><![CDATA[I haven&#8217;t formulated exactly what I&#8217;m going to say, but I wanted to start a series on the Clumsy pattern in software development.  Don&#8217;t get excited, I&#8217;m neither adopting patterns as a beloved thing (that sentence needs its own post), nor am I trying to establish a new industry term.  I&#8217;ll do a Clumsy Pattern [...]]]></description>
			<content:encoded><![CDATA[<p>I haven&#8217;t formulated exactly what I&#8217;m going to say, but I wanted to start a series on the Clumsy pattern in software development.  Don&#8217;t get excited, I&#8217;m neither adopting patterns as a beloved thing (that sentence needs its own post), nor am I trying to establish a new industry term.  I&#8217;ll do a Clumsy Pattern post when I come across things that are so archaic or broken that they have no right still existing.<span id="more-295"></span></p>
<p>Another way of putting it is that I&#8217;m ashamed of the state of our industry, in these cases.  It may be inertia, or the teams I&#8217;m on, or anything, but I still have to fight it, understand it.  These things are what we should be laughing about, when talking about  the bad old days.</p>
<p>I have some thing swirling in my head&#8230; part of this may be the continuation of the <a href="http://blog.muddyhorse.com/2009/02/java-build-systems-part-2-maven/">Java Build Systems posts</a> I had earlier, and more.  Next two entries, I think: Java and ORM, Java and the Web.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.muddyhorse.com/2010/02/the-clumsy-pattern-software-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Well, they&#8217;re now on the list, anyway&#8230;</title>
		<link>http://blog.muddyhorse.com/2010/02/well-theyre-now-on-the-list-anyway/</link>
		<comments>http://blog.muddyhorse.com/2010/02/well-theyre-now-on-the-list-anyway/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 16:46:14 +0000</pubDate>
		<dc:creator>pforhan</dc:creator>
				<category><![CDATA[Family]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[idiocy]]></category>
		<category><![CDATA[love]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://blog.muddyhorse.com/?p=291</guid>
		<description><![CDATA[Alternate titles for this post: How Gamestop ruined my Valentine&#8217;s Day Gamestop Made Me Do It I&#8217;m an Idiot The wife lovingly bought me a copy of Mass Effect 2 for Valentines Day.  In fact, she told me she was going to, hence my desire to .  She gives it to me, and the first [...]]]></description>
			<content:encoded><![CDATA[<p>Alternate titles for this post:</p>
<ul>
<li>How Gamestop ruined my Valentine&#8217;s Day</li>
<li> Gamestop Made Me Do It</li>
<li>I&#8217;m an Idiot</li>
</ul>
<p><span id="more-291"></span>The wife lovingly bought me a copy of Mass Effect 2 for Valentines Day.  In fact, she told me she was going to, hence my desire to <a href="http://blog.muddyhorse.com/2010/02/fixing-the-xbox-360/">get my Xbox working</a>.  She gives it to me, and the first thing out of my mouth is &#8220;Oh, you bought this used?  I&#8217;ll have to pay $15 to be able to download the free stuff for it.&#8221;</p>
<p>I always do this.  My wife could buy me the coolest toy, phone, gadget, or netbook, and I&#8217;ll mention how much I like it, and oh did you see the deal on it last week where it was half off?  I make the lovely wife feel like an idiot, and the gift seem cheap and poorly thought-out.</p>
<p>That&#8217;s my personal demon to remove.  The real enemy here?  Gamestop, for knowingly selling my wife a game for $55 (a five-dollar discount off new retail price) without even mentioning this to her.  They made a ton of money off the deal, probably way more than they would have from selling the game new.  It was very well publicized in gaming circles that this was coming down the line, there&#8217;s no way they were innocent.</p>
<p>I&#8217;m putting them on my list of most hated companies.  Companies I won&#8217;t go to or buy from.  Congrats, guys &#8212; you just joined the ranks of Best Buy and Sony!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.muddyhorse.com/2010/02/well-theyre-now-on-the-list-anyway/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Design Work&#8230;</title>
		<link>http://blog.muddyhorse.com/2010/02/design-work/</link>
		<comments>http://blog.muddyhorse.com/2010/02/design-work/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 04:16:23 +0000</pubDate>
		<dc:creator>pforhan</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[ui]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://blog.muddyhorse.com/?p=283</guid>
		<description><![CDATA[<a href="http://blog.muddyhorse.com/2010/02/design-work/" title="Design Work&#8230;"><img src="http://blog.muddyhorse.com/wp-content/uploads/yapb_cache/everyday.31bexqhnccmc4wcw4cgss4g0w.a9sxxja1njksswcs400wcc4cg.th.jpeg" width="66" height="100" alt="Design Work&#8230;" style="float:left;padding:0 10px 10px 0;" ></a>I just picked up three books on Design, based largely on the recommendations in the JavaPosse Roundup 09 sessions on the topic.  I haven&#8217;t read them yet, but just perusing them makes them look to be a lot of fun.  First, the Amazon links: The Design of Everyday Things by Donald Norman Don&#8217;t Make Me [...]]]></description>
			<content:encoded><![CDATA[<a href="http://blog.muddyhorse.com/2010/02/design-work/" title="Design Work&#8230;"><img src="http://blog.muddyhorse.com/wp-content/uploads/yapb_cache/everyday.31bexqhnccmc4wcw4cgss4g0w.a9sxxja1njksswcs400wcc4cg.th.jpeg" width="66" height="100" alt="Design Work&#8230;" style="float:left;padding:0 10px 10px 0;" ></a><p>I just picked up three books on Design, based largely on the recommendations in the <a href="http://javaposse.com/">JavaPosse</a> Roundup 09 sessions on the topic.  I haven&#8217;t read them yet, but just perusing them makes them look to be a lot of fun. <span id="more-283"></span> First, the Amazon links:</p>
<ol>
<li><a href="http://www.amazon.com/gp/product/0465067107/ref=oss_product">The Design of Everyday Things</a> by Donald Norman</li>
<li><a href="http://www.amazon.com/gp/product/0321344758/ref=oss_product">Don&#8217;t Make Me Think!  A common sense approach to Web Usability</a> by Steve Krug</li>
<li><a href="http://www.amazon.com/gp/product/0321534042/ref=oss_product">The Non-Designer&#8217;s Design Book</a> by Robin Williams</li>
</ol>
<p><em>Everyday Things</em> is actually about physical, industrial design, but a lot of the anecdotes, photographs, and diagrams seem to apply just as well to software design.  The <em>Design Book</em> steps a bit closer to my familiar software realms by covering general graphic design principles, largely for print media.  It covers the basics of Proximity, Alignment, Repetition, and Contrast, and a host of other things including color and type (font to us normals).  And lastly, <em>Don&#8217;t Make Me Think!</em> covers style and web patterns.  It has juicy bits on brevity, breadcrumbs, scanning patterns, and tons more.</p>
<p>I can&#8217;t wait!  Practical design has always been something I like.  I want to learn the best patterns.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.muddyhorse.com/2010/02/design-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fixing the XBox 360</title>
		<link>http://blog.muddyhorse.com/2010/02/fixing-the-xbox-360/</link>
		<comments>http://blog.muddyhorse.com/2010/02/fixing-the-xbox-360/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 21:04:59 +0000</pubDate>
		<dc:creator>pforhan</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[repair]]></category>
		<category><![CDATA[xbox]]></category>
		<category><![CDATA[xbox-360]]></category>

		<guid isPermaLink="false">http://blog.muddyhorse.com/?p=272</guid>
		<description><![CDATA[I thought I was in the clear as far as the 3 red lights goes for the XBox 360&#8230; it happened, I was under warranty, Microsoft send a cardboard coffin, and I sent it back.  End of story. Oops, it happened again.  There&#8217;s no free lunch this time.  Even if I paid the $100 to [...]]]></description>
			<content:encoded><![CDATA[<p>I thought I was in the clear as far as the 3 red lights goes for the XBox 360&#8230; it happened, I was under warranty, Microsoft send a cardboard coffin, and I sent it back.  End of story.</p>
<p>Oops, it happened again.  There&#8217;s no free lunch this time.  Even if I paid the $100 to MS to repair it, they would only give a 90 day warranty on their work.  So, either buy a new one (with a massive extended warranty, of course) or try to fix it myself.  After attempting to buy a new Arcade unit for $200 at K-Mart twice, but failing both times because they were out of stock, I went the fix route.</p>
<p><span id="more-272"></span>Oooh, that&#8217;s a dark and scary part of the internet.  Everyone&#8217;s trying to sell you their $40 guide on how to fix it like the pros.  Plus they tout how their guides are not scams (a good indication of scamminess), and how they will make you a better person.  I kept digging, though, and found help on my <a href="http://eforhan.wordpress.com">brother</a>&#8216;s recommendation:</p>
<p><a href="http://www.youtube.com/watch?v=wsz0lNJ6JrQ">YouTube &#8211; How To Fix the Red Ring of Death #1 (Penny Trick)</a><br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="445" height="364" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/wsz0lNJ6JrQ&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;border=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="445" height="364" src="http://www.youtube.com/v/wsz0lNJ6JrQ&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;border=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>It actually worked.  I used the video as a general guide.  The only thing I had to do &#8220;off the books&#8221; was convince the xbox to get out of the three red rings mode.  I&#8217;m not sure I did this the best way, but I unplugged the fan and powered up for about 2 minutes.  Even though the three red rings keep flashing, all the parts warm up decently (but can get too warm, that&#8217;s the part I&#8217;m not sure about). After a 30-minute cooldown, the xbox booted just fine.</p>
<p>Along the way, I came across these other reputable/useful links:</p>
<ul>
<li><a href="http://www.instructables.com/id/Fix-the-Red-Ring-of-Deathwithout-towels/">Fixing without towels</a></li>
<li><a href="http://www.llamma.com/xbox360/repair/ring_of_light_x-clamp_fix.htm">Llamma&#8217;s X-Clamp fix</a></li>
<li><a href="http://xbox360repairfix.blogspot.com/2008/09/xbox-360-x-clamp-fix.html">X-Clamp fix 2</a></li>
<li><a href="http://repairmyxbox360-mario.com">Mario&#8217;s Repair Guide</a></li>
</ul>
<p>I played Gears of War 2 for 30 minutes, no problems.  It logs onto Xbox Live just fine.  And, we&#8217;ve gone through the movie Dinosaur today with no issues.  Perhaps it will live long enough for me to play up some Mass Effect 2!</p>
<p>Update:  Not long enough for <em>all</em> of Mass Effect 2&#8230; see also <a href="http://blog.muddyhorse.com/2010/03/not-fixing-the-xbox-360/">this new post</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.muddyhorse.com/2010/02/fixing-the-xbox-360/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Podcast Rotation</title>
		<link>http://blog.muddyhorse.com/2010/01/podcast-rotation/</link>
		<comments>http://blog.muddyhorse.com/2010/01/podcast-rotation/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 15:00:12 +0000</pubDate>
		<dc:creator>pforhan</dc:creator>
				<category><![CDATA[Entertainment]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[podcasts]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://blog.muddyhorse.com/?p=267</guid>
		<description><![CDATA[I just wanted to capture the current set of podcasts I listen to. I commute two hours a day, and this set keeps me lightly stocked &#8212; Sometimes I run out for a day or two, and I rarely fall behind. This is my current gold-standard set of podcasts: Here are some podcasts I&#8217;ve just [...]]]></description>
			<content:encoded><![CDATA[<p>I just wanted to capture the current set of podcasts I listen to.  I commute two hours a day, and this set keeps me lightly stocked &#8212; Sometimes I run out for a day or two, and I rarely fall behind.</p>
<p><span id="more-267"></span>This is my current gold-standard set of podcasts:<br />

<table id="wp-table-reloaded-id-1-no-1" class="wp-table-reloaded wp-table-reloaded-id-1">
<thead>
	<tr class="row-1 odd">
		<th class="column-1">Podcast / RSS Link</th><th class="column-2">Category</th><th class="column-3">Average Length</th><th class="column-4">Description</th>
	</tr>
</thead>
<tbody class="row-hover">
	<tr class="row-2 even">
		<td class="column-1"><a href="http://feeds.feedburner.com/MajorNelsonblogcast">Major Nelson Radio</a></td><td class="column-2">Gaming</td><td class="column-3">1:15 - 2:00</td><td class="column-4">Gaming podcast, focussed almost exclusively on the Xbox 360.  Interviews and news.</td>
	</tr>
	<tr class="row-3 odd">
		<td class="column-1"><a href="http://scripts.ign.com/rss/ign.podcasts.2.0.xml">IGN Games Podcasts</a></td><td class="column-2">Gaming</td><td class="column-3">0:40 - 1:15</td><td class="column-4">I listen to the following podcasts from this RSS:<br />
Game Scoop (all around gaming news)<br />
Three Red Lights (ostensibly 360, often silly)<br />
Nintendo Voice Chat (Wii / DS)<br />
Command Prompt (PC Gaming)</td>
	</tr>
	<tr class="row-4 even">
		<td class="column-1"><a href="http://feeds.ign.com/ignfeeds/podcasts/entertainment/">IGN Entertainment Podcasts</a></td><td class="column-2">Television / Movies / Technology</td><td class="column-3">0:40 - 1:00</td><td class="column-4">I only currently listen to Channel Surfing, but occasionally there are other interesting podcasts</td>
	</tr>
	<tr class="row-5 odd">
		<td class="column-1"><a href="http://www.bungie.net/podcast/bungiepodcast.xml">Bungie Podcast</a><br />
</td><td class="column-2">Gaming</td><td class="column-3">1:30 - 2:00</td><td class="column-4">Bungie studios talking mostly about Halo.  Note:  Not bleeped, not filtered.</td>
	</tr>
	<tr class="row-6 even">
		<td class="column-1"><a href="http://rampancy.net/podcast/angersadnessenvy">Anger, Sadness, Envy</a><br />
</td><td class="column-2">Gaming</td><td class="column-3">1:15 - 1:45</td><td class="column-4">Rampancy.net's podcast discussing all things halo.  Fun deep dives into story and gameplay.</td>
	</tr>
	<tr class="row-7 odd">
		<td class="column-1"><a href="http://dealnews.com/rss/516-">The Dealnews Podcast</a></td><td class="column-2">Technology, Consumer News</td><td class="column-3">0:40 - 1:00</td><td class="column-4">A medium-length, somewhat lighthearted take on tech news and product deals.</td>
	</tr>
	<tr class="row-8 even">
		<td class="column-1"><a href="http://feeds.feedburner.com/javaposse">The Java Posse</a></td><td class="column-2">Programming</td><td class="column-3">1:00 - 1:30</td><td class="column-4">Java and JVM news and sessions</td>
	</tr>
</tbody>
</table>
<br />
Here are some podcasts I&#8217;ve just started listening to and am still evaluating:</p>

<table id="wp-table-reloaded-id-2-no-1" class="wp-table-reloaded wp-table-reloaded-id-2">
<thead>
	<tr class="row-1 odd">
		<th class="column-1">Podcast / RSS</th><th class="column-2">Category</th><th class="column-3">Average Length</th><th class="column-4">Description</th>
	</tr>
</thead>
<tbody class="row-hover">
	<tr class="row-2 even">
		<td class="column-1"><a href="http://www.twiandroid.com/?feed=rss2">This Week in Android</a></td><td class="column-2">Mobile</td><td class="column-3">?</td><td class="column-4">News and interview regarding Android phones and OS.  Just got started.</td>
	</tr>
	<tr class="row-3 odd">
		<td class="column-1"><a href="http://feeds.feedburner.com/ThisAintYourDadsJava">This Ain't Your Dad's Java</a></td><td class="column-2">Programming, JavaFX</td><td class="column-3">1:00 - 1:30</td><td class="column-4">News and comments about JavaFX</td>
	</tr>
	<tr class="row-4 even">
		<td class="column-1"><a href="http://feeds.feedburner.com/LibrivoxCommunityPodcast">Librivox Community Podcast</a></td><td class="column-2">Audio Books</td><td class="column-3">?</td><td class="column-4">Community thoughts from the Librivox audio book site</td>
	</tr>
	<tr class="row-5 odd">
		<td class="column-1"><a href="http://www.npr.org/rss/podcast.php?id=510221">NPR Science Friday</a></td><td class="column-2">Science and Technology</td><td class="column-3">?</td><td class="column-4">Segments from NPR's Talk of the Nation Science Fridays</td>
	</tr>
	<tr class="row-6 even">
		<td class="column-1"><a href="http://www.npr.org/rss/podcast.php?id=5">NPR Talk of the Nation</a></td><td class="column-2">News</td><td class="column-3">?</td><td class="column-4">Segments from NPR's Talk of the Nation</td>
	</tr>
	<tr class="row-7 odd">
		<td class="column-1"><a href="http://marketplace.publicradio.org/RSS/mmr_full.xml">Marketplace Morning Report</a></td><td class="column-2">Financial News</td><td class="column-3">0:08</td><td class="column-4">Short but dense financial news</td>
	</tr>
</tbody>
</table>

]]></content:encoded>
			<wfw:commentRss>http://blog.muddyhorse.com/2010/01/podcast-rotation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Coolish: Mozilla Bespin</title>
		<link>http://blog.muddyhorse.com/2010/01/coolish-mozilla-bespin/</link>
		<comments>http://blog.muddyhorse.com/2010/01/coolish-mozilla-bespin/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 22:14:27 +0000</pubDate>
		<dc:creator>pforhan</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[ide]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://blog.muddyhorse.com/?p=251</guid>
		<description><![CDATA[I know I&#8217;m late to the game, but I was looking over Mozilla Bespin &#8212; a web-based IDE with a surprising amount of features, including source control and syntax highlighting.  Right now, it&#8217;s all about web techs, with a strong focus on HTML, Javascript, and CSS, but it is extensible and seems like it is [...]]]></description>
			<content:encoded><![CDATA[<p>I know I&#8217;m late to the game, but I was looking over <a href="http://en.wikipedia.org/wiki/Mozilla_Bespin">Mozilla Bespin</a> &#8212; a web-based IDE with a surprising amount of features, including source control and syntax highlighting.  Right now, it&#8217;s all about web techs, with a strong focus on HTML, Javascript, and CSS, but it is extensible and seems like it is headed in the right direction.</p>
<p><span id="more-251"></span>This could be a cool way to develop/test the <a href="http://gamesbyemail.com/">GamesByEmail</a> game I&#8217;ve been fiddling with, perhaps.  I don&#8217;t think code-completion is in there, yet, which will ultimately be a must-have, but I can play for now&#8230;</p>
<p>Big bonus:  the editor is high-performance, and is implemented with my favorite, the HTML5 Canvas tag.  See also my experiments <a href="http://muddyhorse.com/canvas">right here</a> (I&#8217;d recommend <a href="http://www.muddyhorse.com/canvas/planetaryZ2.html">planetaryZ2</a>, and don&#8217;t forget to mouseover/click a planet).</p>
<p>There is some work going on integrating eclipse with this&#8230; not sure exactly what, yet, though.  See <a href="http://borisoneclipse.blogspot.com/2009/02/eclipse-in-cloud.html">Eclipse in the Cloud </a>and <a href="http://wiki.eclipse.org/E4/Bespin">E4/Bespin</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.muddyhorse.com/2010/01/coolish-mozilla-bespin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>You&#8217;re just fooling yourself&#8230;</title>
		<link>http://blog.muddyhorse.com/2010/01/youre-just-fooling-yourself/</link>
		<comments>http://blog.muddyhorse.com/2010/01/youre-just-fooling-yourself/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 16:28:46 +0000</pubDate>
		<dc:creator>pforhan</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[mmo]]></category>
		<category><![CDATA[nerds]]></category>
		<category><![CDATA[obfuscation]]></category>

		<guid isPermaLink="false">http://blog.muddyhorse.com/?p=249</guid>
		<description><![CDATA[&#8230; that you&#8217;re cool if you find yourself ever saying any of the following: buff debuff tank aggro DPS AoE Bonus: Tapping Untap In some cases, you may even be fooling yourself that you&#8217;re playing a game.  Seriously, though, I&#8217;m a nerd, and listening to people talk like the above makes me want to take [...]]]></description>
			<content:encoded><![CDATA[<p>&#8230; that you&#8217;re cool if you find yourself ever saying any of the following:</p>
<ul>
<li>buff</li>
<li>debuff</li>
<li>tank</li>
<li>aggro</li>
<li>DPS</li>
<li>AoE</li>
<li>Bonus:
<ul>
<li>Tapping</li>
<li>Untap</li>
</ul>
</li>
</ul>
<p>In some cases, you may even be fooling yourself that you&#8217;re playing a game.  Seriously, though, I&#8217;m a nerd, and listening to people talk like the above makes me want to take their lunch money.</p>
<p><span id="more-249"></span>The discussion that spawned this was an <a href="http://games.slashdot.org/firehose.pl?op=view&amp;type=story&amp;sid=09/12/18/0710206">article on Slashdot</a> about breaking up some of these concepts, so that MMOs don&#8217;t all end up the same.  I&#8217;m in full agreement&#8230; I want to have fun playing, and I want to at least pretend that it&#8217;s not all numbers in a computer somewhere.</p>
<p>(I had to throw in the <a href="http://www.com-www.com/mtg/glossary.html">M:tG</a> terms just because playing that game causes you to talk especially nerdy.)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.muddyhorse.com/2010/01/youre-just-fooling-yourself/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

