<?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>4thmouse.com</title>
	<atom:link href="http://4thmouse.com/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://4thmouse.com</link>
	<description>Software Engineering.</description>
	<lastBuildDate>Sun, 18 Dec 2011 05:45:14 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>The Evils of Equals and Autoboxing</title>
		<link>http://4thmouse.com/index.php/2011/12/18/the-evils-of-equals-and-autoboxing/</link>
		<comments>http://4thmouse.com/index.php/2011/12/18/the-evils-of-equals-and-autoboxing/#comments</comments>
		<pubDate>Sun, 18 Dec 2011 05:44:01 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[autoboxin]]></category>
		<category><![CDATA[equality]]></category>

		<guid isPermaLink="false">http://4thmouse.com/?p=533</guid>
		<description><![CDATA[This was a fun, if particularly stupid, one:

public void method check&#40;int value&#41;&#123;
  if&#40;this.x == value&#41;
  &#123;
    //do whatever
  &#125;
&#125;

the previous works as long as x and value are small, but not when they are big. Why? Because x is an Integer not an int. Java helpfully autoboxes the int [...]]]></description>
		<wfw:commentRss>http://4thmouse.com/index.php/2011/12/18/the-evils-of-equals-and-autoboxing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Seniority and Age in Software Engineering (No you aren&#8217;t a senior engineer)</title>
		<link>http://4thmouse.com/index.php/2011/12/17/seniority-and-age-in-software-engineering-no-you-arent-a-senior-engineer/</link>
		<comments>http://4thmouse.com/index.php/2011/12/17/seniority-and-age-in-software-engineering-no-you-arent-a-senior-engineer/#comments</comments>
		<pubDate>Sun, 18 Dec 2011 04:37:47 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://4thmouse.com/?p=522</guid>
		<description><![CDATA[I&#8217;ve been thinking about this topic a fair amount recently catalyzed by a combination of getting older myself, some of the people I&#8217;ve worked with now and in the past, and where I see myself in them.
I think that sometimes the prevalence of youth in positions of power in the industry is over-stated by a [...]]]></description>
		<wfw:commentRss>http://4thmouse.com/index.php/2011/12/17/seniority-and-age-in-software-engineering-no-you-arent-a-senior-engineer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What is Good Design?</title>
		<link>http://4thmouse.com/index.php/2011/12/17/what-is-good-design/</link>
		<comments>http://4thmouse.com/index.php/2011/12/17/what-is-good-design/#comments</comments>
		<pubDate>Sun, 18 Dec 2011 00:36:23 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[software engineering]]></category>

		<guid isPermaLink="false">http://4thmouse.com/?p=512</guid>
		<description><![CDATA[You can spend a lot of time arguing about this question and I think many of those arguments tend to miss the point: good design is a process, not a result. Why is that?

Well first, good design starts with a goal. You should at least try to understand what you&#8217;re trying to do before deciding [...]]]></description>
		<wfw:commentRss>http://4thmouse.com/index.php/2011/12/17/what-is-good-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why Your Junit Should Look More Like Cucumber</title>
		<link>http://4thmouse.com/index.php/2011/12/17/why-your-junit-should-look-more-like-cucumber/</link>
		<comments>http://4thmouse.com/index.php/2011/12/17/why-your-junit-should-look-more-like-cucumber/#comments</comments>
		<pubDate>Sat, 17 Dec 2011 21:49:03 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[cucumber]]></category>
		<category><![CDATA[junit]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://4thmouse.com/?p=497</guid>
		<description><![CDATA[I&#8217;ve recently gone back to writing Java and one thing that&#8217;s really struck me again is how JUnit (and XUnit frameworks in general) don&#8217;t do much to encourage clean tests. Don&#8217;t get me wrong, I&#8217;m all about unit testing, but a lot of junit tests aren&#8217;t very helpful.

For instance, I regularly see tests that look [...]]]></description>
		<wfw:commentRss>http://4thmouse.com/index.php/2011/12/17/why-your-junit-should-look-more-like-cucumber/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Composition vs. Inheritance (hint: usually not inheritance)</title>
		<link>http://4thmouse.com/index.php/2011/12/17/composition-vs-inheritance-hint-usually-not-inheritance/</link>
		<comments>http://4thmouse.com/index.php/2011/12/17/composition-vs-inheritance-hint-usually-not-inheritance/#comments</comments>
		<pubDate>Sat, 17 Dec 2011 16:27:01 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://4thmouse.com/?p=471</guid>
		<description><![CDATA[ A co-worker of mine recently made the comment that a lot of times you see Java code using inheritance where composition is a much better solution. This is very true and worth pointing out.

Basically the problem boils down to this: Although both inheritance and composition form a relationship between objects inheritance creates a strong [...]]]></description>
		<wfw:commentRss>http://4thmouse.com/index.php/2011/12/17/composition-vs-inheritance-hint-usually-not-inheritance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Writing a Yard Extension To Show Inherited Attributes</title>
		<link>http://4thmouse.com/index.php/2011/04/04/writing-a-yard-extension/</link>
		<comments>http://4thmouse.com/index.php/2011/04/04/writing-a-yard-extension/#comments</comments>
		<pubDate>Tue, 05 Apr 2011 04:33:32 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[customize]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[inherited attributes]]></category>
		<category><![CDATA[inherited methods]]></category>
		<category><![CDATA[rdoc]]></category>
		<category><![CDATA[ruby 1.9]]></category>
		<category><![CDATA[template]]></category>
		<category><![CDATA[yard]]></category>

		<guid isPermaLink="false">http://4thmouse.com/?p=459</guid>
		<description><![CDATA[So RDoc is an absolutely terrible documentation generator both from the usage and the coding perspective. Although yard is not yet quite as stable as I&#8217;d like, it is everything RDoc is not, it&#8217;s pretty, well written, and provides numerous well thought out extension points. So as an exercise I decided to fix one of [...]]]></description>
		<wfw:commentRss>http://4thmouse.com/index.php/2011/04/04/writing-a-yard-extension/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unit, Cucumber, and/or Rspec (DHH Say it ain&#8217;t so!)</title>
		<link>http://4thmouse.com/index.php/2011/04/01/unit-cucumber-andor-rspec-dhh-say-it-aint-so/</link>
		<comments>http://4thmouse.com/index.php/2011/04/01/unit-cucumber-andor-rspec-dhh-say-it-aint-so/#comments</comments>
		<pubDate>Fri, 01 Apr 2011 17:49:55 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[cucumber]]></category>
		<category><![CDATA[DHH]]></category>
		<category><![CDATA[rspec]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[unit]]></category>
		<category><![CDATA[XUnit]]></category>

		<guid isPermaLink="false">http://4thmouse.com/?p=448</guid>
		<description><![CDATA[So recently, dhh tweeted that he doesn&#8217;t really get why cucumber and rpsec are so popular and questioned their benefit outside of a niche audience relative to the high cost of writing with them relative to X-Unit style tests. I&#8217;ve used ruby test, rspec, and cucumber extensively and I&#8217;m finding it hard to see that [...]]]></description>
		<wfw:commentRss>http://4thmouse.com/index.php/2011/04/01/unit-cucumber-andor-rspec-dhh-say-it-aint-so/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Myth of Learning a new Programming Language Quickly</title>
		<link>http://4thmouse.com/index.php/2011/04/01/the-myth-of-learning-a-new-programming-language-quickly/</link>
		<comments>http://4thmouse.com/index.php/2011/04/01/the-myth-of-learning-a-new-programming-language-quickly/#comments</comments>
		<pubDate>Fri, 01 Apr 2011 12:45:12 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[coding approach]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[learning a new programming language]]></category>

		<guid isPermaLink="false">http://4thmouse.com/?p=444</guid>
		<description><![CDATA[I&#8217;m surprised how often people in our industry inform me that picking up new programming languages should take a programmer a day or two or maybe a week. I disagree and I think that the assertion really belies a very limited perspective on what it is to learn a new programming language. Take, for instance, [...]]]></description>
		<wfw:commentRss>http://4thmouse.com/index.php/2011/04/01/the-myth-of-learning-a-new-programming-language-quickly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reopening modules in Ruby</title>
		<link>http://4thmouse.com/index.php/2011/03/31/reopening-modules-in-ruby/</link>
		<comments>http://4thmouse.com/index.php/2011/03/31/reopening-modules-in-ruby/#comments</comments>
		<pubDate>Thu, 31 Mar 2011 12:22:09 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://4thmouse.com/?p=434</guid>
		<description><![CDATA[Open class definitions in ruby allow libraries to add functionality to existing objects. Standard practice is to define a module with the new functionality and include it into the existing class ( Jay fields on the subject here  ). Unfortunately this model breaks when you want to update a module.

For instance the following doesn&#8217;t [...]]]></description>
		<wfw:commentRss>http://4thmouse.com/index.php/2011/03/31/reopening-modules-in-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why class variables in Ruby are a bad idea</title>
		<link>http://4thmouse.com/index.php/2011/03/20/why-class-variables-in-ruby-are-a-bad-idea/</link>
		<comments>http://4thmouse.com/index.php/2011/03/20/why-class-variables-in-ruby-are-a-bad-idea/#comments</comments>
		<pubDate>Sun, 20 Mar 2011 20:50:12 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[class variables]]></category>

		<guid isPermaLink="false">http://4thmouse.com/?p=428</guid>
		<description><![CDATA[In ruby, there are instance variables and class variables. Class variables may not work the way you think&#8230;
So to define a class variable we do the following:

class A
  @@class_variable = &#34;bob&#34;
  def self.get
    @@class_variable
  end
end
class B
  @@class_variable = &#34;sally&#34;
  def self.get
    @@class_variable
  end
end
&#160;
#&#34;bob&#34;
A.get
#&#34;sally&#34;
B.get

Here [...]]]></description>
		<wfw:commentRss>http://4thmouse.com/index.php/2011/03/20/why-class-variables-in-ruby-are-a-bad-idea/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

