<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Ross Niemi's Musings</title>
	<atom:link href="http://rossniemi.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://rossniemi.wordpress.com</link>
	<description></description>
	<lastBuildDate>Tue, 17 Jan 2012 20:33:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='rossniemi.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Ross Niemi's Musings</title>
		<link>http://rossniemi.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://rossniemi.wordpress.com/osd.xml" title="Ross Niemi&#039;s Musings" />
	<atom:link rel='hub' href='http://rossniemi.wordpress.com/?pushpress=hub'/>
		<item>
		<title>How to Disable Password Checking for Certificates in IE7 when Strong Private Key Protection is Enabled</title>
		<link>http://rossniemi.wordpress.com/2007/09/23/how-to-disable-password-checking-for-certificates-in-ie7-when-strong-private-key-protection-is-enabled/</link>
		<comments>http://rossniemi.wordpress.com/2007/09/23/how-to-disable-password-checking-for-certificates-in-ie7-when-strong-private-key-protection-is-enabled/#comments</comments>
		<pubDate>Mon, 24 Sep 2007 04:02:59 +0000</pubDate>
		<dc:creator>Ross Niemi</dc:creator>
				<category><![CDATA[Certificates]]></category>
		<category><![CDATA[Selenium]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://rossniemi.wordpress.com/2007/09/23/how-to-disable-password-checking-for-certificates-in-ie7-when-strong-private-key-protection-is-enabled/</guid>
		<description><![CDATA[One of the projects that I&#8217;m currently working on requires the use of soft-certificates in order to confirm identity and for doing authorization. Since the application that is being written only needs to have support for Internet Explorer 7, I imported my PKCS #12 certificate through Internet Explorer (Internet Options -&#62; Content -&#62; Certificates -&#62; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rossniemi.wordpress.com&amp;blog=662496&amp;post=33&amp;subd=rossniemi&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>One of the projects that I&#8217;m currently working on requires the use of soft-certificates in order to confirm identity and for doing authorization.  Since the application that is being written only needs to have support for Internet Explorer 7, I imported my PKCS #12 certificate through Internet Explorer (Internet Options -&gt; Content -&gt; Certificates -&gt; Personal -&gt; Import).  </p>
<p>As I was importing it, there was a page where I needed to provide a password that the CA had given me.  On the same page there is an option to &#8220;Enable strong private key protection&#8221;.  It was followed by the sentence &#8220;You will be prompted every time the private key is used by an application if you enable this option&#8221;.  Since I favored security over convenience, I happily selected this option and provided my new password.  Just in case I needed to move to another computer, I also marked the key as being exportable.</p>
<p><span id="more-33"></span></p>
<p>After time had past on the project, the discussion of automated functional tests with <a href="http://www.openqa.org/selenium/">Selenium</a> came up.  I thought, thats OK:  I remembered that there is an option for IE to remember my password when I&#8217;m prompted to give IE permission to use my private key.  I selected this option the next time I was prompted by IE for my password.  What I found out when stopping and starting a new IE process was that IE ignores the fact that I told it to remember my password.  To make matters worse, since I no longer had my password that the CA gave me, I could not re-import the original certificate.</p>
<p>Just when I thought I was out of options, inspiration kicked in and I performed the following steps to make it so that I no longer had to provide my password whenever IE wanted to use my private key:</p>
<ol>
<li>Go to the Personal Certificate tab (see above)</li>
<li>Select the certificate that you wish to remove the password from</li>
<li>Click &#8220;Export&#8221;</li>
<li>Click &#8220;Next&#8221;</li>
<li>Select &#8220;Yes, export the private key&#8221;</li>
<li>Unselect &#8220;Enable strong protection (requires IE 5.0, NT 4.0 SP4 or above)</li>
<li>Select &#8220;Include all certificates in the certification path if possible&#8221;</li>
<li>You may either select &#8220;Delete the private key if the export is successful&#8221; or remove the certificate manually after the export</li>
<li>Provide your Password and Confirm your password</li>
<li>Specify a file name (something that you will remember with the PFX extension)</li>
<li>Click &#8220;Next&#8221;</li>
<li>Click &#8220;Finish&#8221;</li>
<li>Click &#8220;Import&#8221;</li>
<li>Click &#8220;Next&#8221;</li>
<li>Browse for your exported certificate</li>
<li>Click &#8220;Next&#8221;</li>
<li>Provide your password as before</li>
<li>Mark this key as exportable</li>
<li>Click &#8220;Next&#8221;</li>
<li>Place all certificates in the following store: Personal</li>
<li>Click &#8220;Next&#8221;</li>
<li>Click &#8220;Finish&#8221;</li>
</ol>
<p>What saved me here was that since I chose to make the certificate exportable when I did the original import, I could perform the preceding steps.  If I did not do this and since I forgot the password for my original PFX file, then my only option would have been to contact the CA to issue me another certificate.</p>
<p>Now that this is done, I can start up my automated regression functional test suite and not have to be bothered to provide my password every time IE runs a test.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rossniemi.wordpress.com/33/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rossniemi.wordpress.com/33/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rossniemi.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rossniemi.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rossniemi.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rossniemi.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rossniemi.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rossniemi.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rossniemi.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rossniemi.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rossniemi.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rossniemi.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rossniemi.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rossniemi.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rossniemi.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rossniemi.wordpress.com/33/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rossniemi.wordpress.com&amp;blog=662496&amp;post=33&amp;subd=rossniemi&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rossniemi.wordpress.com/2007/09/23/how-to-disable-password-checking-for-certificates-in-ie7-when-strong-private-key-protection-is-enabled/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8b9307a472434144530281654a5df886?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ross</media:title>
		</media:content>
	</item>
		<item>
		<title>MinneBar 2007</title>
		<link>http://rossniemi.wordpress.com/2007/04/22/minnebar-2007/</link>
		<comments>http://rossniemi.wordpress.com/2007/04/22/minnebar-2007/#comments</comments>
		<pubDate>Sun, 22 Apr 2007 17:04:04 +0000</pubDate>
		<dc:creator>Ross Niemi</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[BarCamp]]></category>

		<guid isPermaLink="false">http://rossniemi.wordpress.com/2007/04/22/minnebar-2007/</guid>
		<description><![CDATA[Yesterday I went to my first ever MinneBar which was pretty exciting. I did not find out about it until earlier this week, but I&#8217;m glad I was able to attend and present. Apparently this year&#8217;s MinneBar was the 2nd largest BarCamp in history with almost 400 registered people. From what I was told, the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rossniemi.wordpress.com&amp;blog=662496&amp;post=29&amp;subd=rossniemi&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Yesterday I went to my first ever <a href="http://barcamp.org/MinneBar">MinneBar</a> which was pretty exciting.  I did not find out about it until earlier this week, but I&#8217;m glad I was able to attend and present.</p>
<p>Apparently this year&#8217;s <a href="http://barcamp.org/MinneBar">MinneBar</a> was the 2nd largest <a href="http://barcamp.org/">BarCamp</a> in history with almost 400 registered people.  From what I was told, the largest <a href="http://barcamp.org/">BarCamp</a> was in Bangalore with over 500 attendees.</p>
<p>Some of the presentations which I seen parts of were:</p>
<ol>
<li>A Highly Kinetic Semi Dangerous Exposition &#8211; <a href="http://nfttu.blogspot.com/">Bill Gurstelle</a></li>
<li><a href="http://www.rubyonrails.org">Ruby on Rails</a> Q&amp;A &#8211; <a href="http://www.loudthinking.com/">David Heinemeier Hansson</a></li>
<li>Introduction to Natural Language Processing &#8211; Frank Schilder &amp; Gary Berosik</li>
<li><a href="http://www.jruby.org">JRuby</a> 0.99 Q&amp;A &#8211; <a href="http://headius.blogspot.com/">Charles Nutter</a> and <a href="http://www.bloglines.com/blog/ThomasEEnebo">Thomas Enebo</a>.</li>
<li>Functional Languages and Agile Development &#8211; <a href="http://enfranchisedmind.com/blog/archive/2007/04/21/229">Robert Fischer</a></li>
</ol>
<p>In the morning I gave a presentation with <a href="http://www.alttext.com/">Ben Edwards</a> from <a href="http://refactr.com">Refactr</a> entitled <em>Selling Agile to the Enterprise</em>.  We had pretty good attendance with people spilling out into the hallway.  The presentation can be found <a href="http://refactr.com/files/slides/2007/04/selling-agile/">here</a>.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rossniemi.wordpress.com/29/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rossniemi.wordpress.com/29/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rossniemi.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rossniemi.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rossniemi.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rossniemi.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rossniemi.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rossniemi.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rossniemi.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rossniemi.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rossniemi.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rossniemi.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rossniemi.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rossniemi.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rossniemi.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rossniemi.wordpress.com/29/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rossniemi.wordpress.com&amp;blog=662496&amp;post=29&amp;subd=rossniemi&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rossniemi.wordpress.com/2007/04/22/minnebar-2007/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8b9307a472434144530281654a5df886?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ross</media:title>
		</media:content>
	</item>
		<item>
		<title>Monitoring Ant Build Execution Times</title>
		<link>http://rossniemi.wordpress.com/2007/03/09/monitoring-ant-build-execution-times/</link>
		<comments>http://rossniemi.wordpress.com/2007/03/09/monitoring-ant-build-execution-times/#comments</comments>
		<pubDate>Sat, 10 Mar 2007 01:19:15 +0000</pubDate>
		<dc:creator>Ross Niemi</dc:creator>
				<category><![CDATA[Ant]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://rossniemi.wordpress.com/2007/03/09/monitoring-ant-build-execution-times/</guid>
		<description><![CDATA[I recently received an email from someone asking about an open source tool I wrote some time ago called Antomology. Since its been a while since I thought about it, why not blog about it. (Ripped from the README.txt) Antomology, besides being a word play on Entomology, is an Ant analysis tool suite. The current [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rossniemi.wordpress.com&amp;blog=662496&amp;post=21&amp;subd=rossniemi&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I recently received an email from someone asking about an open source tool I wrote some time ago called <a href="http://antomology.codehaus.org">Antomology</a>.  Since its been a while since I thought about it, why not blog about it.</p>
<p>(Ripped from the README.txt)</p>
<blockquote><p>
Antomology, besides being a word play on <a href="http://en.wikipedia.org/wiki/Entomology">Entomology</a>, is an Ant analysis tool suite.  The current suite offering is:</p>
<p><strong>StatisticsListener</strong> &#8211; an Ant BuildListener which can be used to gather statistics while an Ant build is executed.  Statistics on the targets and tasks executed are written to the console after the build completes.  Some of the statistics captured are:</p>
<ol>
<li>the number of times a target / task is called</li>
<li>the average processing time spent on a target / task</li>
<li>the total processing time spent on a target / task</li>
<li>the total processing time spent on a target / task expressed as a percentage</li>
</ol>
</blockquote>
<p>The tool isn&#8217;t too amazing and the current suite offering is meager, but it served its purpose well on a past project that I was on.  I was hoping to take it to the next level by providing support for historical graphing and analysis, but I have not been able to find the time to do it (as of yet).</p>
<p>The Continuous Integration solution at <a href="http://www.codehaus.org">Codehaus </a>isn&#8217;t publishing the <a href="http://antomology.codehaus.org">Antomology</a> jar yet, but the code in the <a href="//svn.antomology.codehaus.org/antomology/">Subversion repository</a> is more current (and tested).</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rossniemi.wordpress.com/21/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rossniemi.wordpress.com/21/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rossniemi.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rossniemi.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rossniemi.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rossniemi.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rossniemi.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rossniemi.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rossniemi.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rossniemi.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rossniemi.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rossniemi.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rossniemi.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rossniemi.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rossniemi.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rossniemi.wordpress.com/21/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rossniemi.wordpress.com&amp;blog=662496&amp;post=21&amp;subd=rossniemi&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rossniemi.wordpress.com/2007/03/09/monitoring-ant-build-execution-times/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8b9307a472434144530281654a5df886?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ross</media:title>
		</media:content>
	</item>
		<item>
		<title>A Comparison of Continuous Integration Tools for Ruby on Rails</title>
		<link>http://rossniemi.wordpress.com/2007/02/28/a-comparison-of-continuous-integration-tools-for-ruby-on-rails/</link>
		<comments>http://rossniemi.wordpress.com/2007/02/28/a-comparison-of-continuous-integration-tools-for-ruby-on-rails/#comments</comments>
		<pubDate>Wed, 28 Feb 2007 15:53:39 +0000</pubDate>
		<dc:creator>Ross Niemi</dc:creator>
				<category><![CDATA[ContinuousIntegration]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://rossniemi.wordpress.com/2007/02/28/a-comparison-of-continuous-integration-tools-for-ruby-on-rails/</guid>
		<description><![CDATA[Yesterday I gave a talk at the Ruby Users of Minnesota (RUM) meeting where I presented some slides and gave a demo on some of the current Continuous Integration (CI) tools that are available for Ruby and Ruby on Rails. The technologies reviewed were Continuous Builder, Cerberus, CruiseControl, and CruiseControl.rb. I also compiled and presented [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rossniemi.wordpress.com&amp;blog=662496&amp;post=12&amp;subd=rossniemi&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Yesterday I gave a talk at the <a href="http://ruby.mn/">Ruby Users of Minnesota (RUM)</a> meeting where I presented some slides and gave a demo on some of the current <a href="http://www.martinfowler.com/articles/continuousIntegration.html">Continuous Integration (CI)</a> tools that are available for Ruby and Ruby on Rails.</p>
<p>The technologies reviewed were <a href="http://dev.rubyonrails.com/svn/rails/plugins/continuous_builder/">Continuous Builder</a>, <a href="http://cerberus.rubyforge.org">Cerberus</a>, <a href="http://cruisecontrol.sourceforge.net">CruiseControl</a>, and <a href="http://cruisecontrolrb.rubyforge.org">CruiseControl.rb</a>.  I also compiled and presented a <a href="http://rossniemi.files.wordpress.com/2007/03/ci-ruby-on-rails-1_0.pdf">comparison matrix</a> much like Aslak Hellesoy has done on the <a href="http://docs.codehaus.org/display/DAMAGECONTROL/Continuous+Integration+Server+Feature+Matrix">DamageControl </a>web site.</p>
<p>All the artifacts that I used for the demo can be found on the <a href="http://rossniemi.wordpress.com/docs/">Docs</a> page.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rossniemi.wordpress.com/12/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rossniemi.wordpress.com/12/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rossniemi.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rossniemi.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rossniemi.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rossniemi.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rossniemi.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rossniemi.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rossniemi.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rossniemi.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rossniemi.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rossniemi.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rossniemi.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rossniemi.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rossniemi.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rossniemi.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rossniemi.wordpress.com&amp;blog=662496&amp;post=12&amp;subd=rossniemi&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rossniemi.wordpress.com/2007/02/28/a-comparison-of-continuous-integration-tools-for-ruby-on-rails/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8b9307a472434144530281654a5df886?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ross</media:title>
		</media:content>
	</item>
		<item>
		<title>Recovering Deleted Posts When Using WordPress</title>
		<link>http://rossniemi.wordpress.com/2007/01/31/recovering-deleted-posts-using-wordpress/</link>
		<comments>http://rossniemi.wordpress.com/2007/01/31/recovering-deleted-posts-using-wordpress/#comments</comments>
		<pubDate>Wed, 31 Jan 2007 15:39:04 +0000</pubDate>
		<dc:creator>Ross Niemi</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://rossniemi.wordpress.com/2007/01/31/recovering-deleted-posts-using-wordpress/</guid>
		<description><![CDATA[This morning I was having some technical problems with my &#8220;Learning Ruby &#8211; TDD Style!&#8221; Parts 1 and 2 blog posts, specifically how pings were handled when linking posts to each other on update. A side effect of a post update meant a comment would be automatically created in the blog post that it referred [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rossniemi.wordpress.com&amp;blog=662496&amp;post=11&amp;subd=rossniemi&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This morning I was having some technical problems with my &#8220;Learning Ruby &#8211; TDD Style!&#8221; Parts <a href="http://rossniemi.wordpress.com/2007/01/13/learning-ruby-tdd-style-part-1">1</a> and <a href="http://rossniemi.wordpress.com/2007/01/31/learning-ruby-tdd-style-part-2/">2</a> blog posts, specifically how pings were handled when linking posts to each other on update.  A side effect of a post update meant a comment would be automatically created in the blog post that it referred to.  Since I was adding and will continue to add &#8220;navigation&#8221; functionality for the different post-parts in order to make life easier for the readers, the present set up was not adequate.</p>
<p>When writing or updating a post in WordPress, there is a box on the right hand side of the screen entitled <em>Discussion</em> with an item for allowing pings.  The solution was simple enough:  All I needed to do was update each page, uncheck <em>Allow Pings</em>, save and delete any lingering ping comments.  Simple enough.  Somewhere along deleting the ping comments in my early morning haze, I accidentally deleted one of my blog entries!</p>
<p><span id="more-11"></span></p>
<p>I was able to verify that I did this by navigating to the user facing page to be greeted by a &#8220;Page Not Found&#8221; error.  Fantastic!  Unfortunately, I was quick to find out that WordPress does not have an undelete option for posts and since I visited the user facing page, I no long had my blog entry in my local cache.  After hitting up some of the big name search engines to find a cached copy without success, I needed to figure out a better way of recreating my blog entry without having to do it from scratch.</p>
<p>After much cursing took place, I decided to make another go of playing with the cache.  The following is the technique I came up with using just the browser I was blogging in:</p>
<ol>
<li>Put the browser in &#8220;Work Offline&#8221; mode &#8211; usually found under the first couple drop-down menus in your browser</li>
<li>Navigate to the page that was being <em>edited</em> by looking at the browser history</li>
<li>Breathe a sigh of relief when you see your blog entry in the post textarea</li>
<li>Copy and paste your &#8220;post&#8221; to somewhere safe</li>
<li>Create a new post and paste in your recovered post</li>
</ol>
<p>WordPress seems to manage their pages for post edits by using the following URL syntax:</p>
<pre>

http://your-blog.wordpress.com/wp-admin/post.php?

                  action=edit&amp;post=post-id
</pre>
<p>In order to figure out your post id, you can always go to the &#8220;Manage &#8211; Post&#8221; section in your blog administration console and see the post ids for the posts that you still have.  Using this information you can make an educated guess what the post id is for the post you deleted.</p>
<p>The drawback in using this approach is that your subscribers will end up with multiple entries in their feed of the same title.  A small price to pay I figure&#8230;</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rossniemi.wordpress.com/11/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rossniemi.wordpress.com/11/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rossniemi.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rossniemi.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rossniemi.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rossniemi.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rossniemi.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rossniemi.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rossniemi.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rossniemi.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rossniemi.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rossniemi.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rossniemi.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rossniemi.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rossniemi.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rossniemi.wordpress.com/11/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rossniemi.wordpress.com&amp;blog=662496&amp;post=11&amp;subd=rossniemi&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rossniemi.wordpress.com/2007/01/31/recovering-deleted-posts-using-wordpress/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8b9307a472434144530281654a5df886?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ross</media:title>
		</media:content>
	</item>
		<item>
		<title>Learning Ruby &#8211; TDD Style! (Part 2)</title>
		<link>http://rossniemi.wordpress.com/2007/01/31/learning-ruby-tdd-style-part-2/</link>
		<comments>http://rossniemi.wordpress.com/2007/01/31/learning-ruby-tdd-style-part-2/#comments</comments>
		<pubDate>Wed, 31 Jan 2007 14:43:24 +0000</pubDate>
		<dc:creator>Ross Niemi</dc:creator>
				<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://rossniemi.wordpress.com/2007/01/31/learning-ruby-tdd-style-part-2/</guid>
		<description><![CDATA[start &#124; previous &#124; next &#124; finish In order to do Test Driven Development (TDD), we need to become intimately familiar with assertions. In my last blog entry, we started to look at the assert method. Lets consider the contract of this method: assert(boolean, message=nil) &#8211; Asserts that boolean is not false or nil. When [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rossniemi.wordpress.com&amp;blog=662496&amp;post=10&amp;subd=rossniemi&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://rossniemi.wordpress.com/2007/01/13/learning-ruby-tdd-style-part-1">start</a> | <a href="http://rossniemi.wordpress.com/2007/01/13/learning-ruby-tdd-style-part-1">previous</a> | next | finish</p>
<p>In order to do Test Driven Development (TDD), we need to become intimately familiar with assertions.  In my last blog entry, we started to look at the <code>assert</code> method.  Lets consider the contract of this method:</p>
<p><em>assert(boolean, message=nil)</em><br />
    &#8211; Asserts that boolean is not false or nil. </p>
<p>When testing this method I&#8217;m making the conscious decision <strong>not</strong> to test <code>assert</code> using the other methods that <code>Test::Unit::Assertions</code> offers.  Although it&#8217;ll make things more difficult at first, it will force us to learn aspects of the Ruby language that we would not be able to see if we used one &#8220;assert&#8221; to test another &#8220;assert&#8221;.</p>
<p><span id="more-10"></span></p>
<p>So what should we test first?  Well, lets try the happy path first:  Let&#8217;s test to make sure <code>assert</code> does not fail if boolean is not false or nil.</p>
<pre>
require 'test/unit'

class AssertionsTest &lt; Test::Unit::TestCase

  def test_assert_boolean_is_not_false_or_nil
    assert true
    assert(true)
    assert true, 'A message you will not see'
    assert true, "A message you will not see"
    assert true, nil
    assert true, ''
    assert true, ""
    assert true, String.new
    assert true, :something
    assert 'bogus'
  end
end
</pre>
<p>TDD in a pairing fashion is usually best experienced as the test was typed so that the reviewer can ask questions in real-time.  In order to &#8220;simulate&#8221; this approach, the following bullets describe the thought process I took in order to write this test.</p>
<ol>
<li>
<p>
      <em>I need to create a test which asserts that the boolean is not false or nil</em><br />
              Lets call it <code>test_assert_boolean_is_not_false_or_nil</code>
    </p>
</li>
<li>
<p>
    <em>I would like to assert boolean which confirms my understanding of how to call methods in Ruby</em><br />
    Lets call assert with and without ()&#8217;s
    </p>
</li>
<li>
<p>
    <em>I would like to assert boolean-message which confirms my understanding of how strings work in Ruby</em><br />
    Lets call assert with a message that is a string with single and double quotes, nil, empty quotes, String.new, and a symbol
    </p>
</li>
<li>
<p>
    <em>I would like to assert boolean for a non-boolean, non-nil object</em><br />
    Lets call assert with a &#8220;boolean&#8221; that is a string
    </p>
</li>
</ol>
<p>Now when I run my test I see that it passes.  If the <code>Test::Unit::Assertions</code> module did not exist and my goal was to develop <code>assert</code> using TDD, then my test would fail and I would proceed to implement the <code>assert</code> method.  Once done, I would then re-run my test to ensure I implemented the method as per spec.  If my test failed, I would go back to the <code>assert</code> method, fix it, and then re-run my test until it passes.</p>
<p>Since we&#8217;re testing the behavior of <code>assert</code>, we can now move on to the unhappy path test. Specifically, we are now going to write a test to ensure that an exception is raised when boolean is false or nil.</p>
<p>The easiest way to test this would have been to use the <code>assert_block</code> method, but since we are trying to learn Ruby we&#8217;ll pretend that it doesn&#8217;t exist and we will write our own.</p>
<pre>
  ASSERTION_FAILED = Test::Unit::AssertionFailedError

  def test_assert_boolean_is_false_or_nil
    my_assert_exception_raised(ASSERTION_FAILED) { assert false }
    my_assert_exception_raised(ASSERTION_FAILED) { assert nil }
  end

  def my_assert_exception_raised expected
    begin
      yield
      exceptionNotRaised = true
    rescue =&gt; exception
      my_assert_type_of expected, exception
    end
    if exceptionNotRaised
      raise Test::Unit::AssertionFailedError.new( expected +
                " should have been raised.")
    end
  end

  def my_assert_type_of expectedClass, actualInstance
    my_assert_not_nil actualInstance
    my_assert_classes_are_equal nil, nil
    my_assert_classes_are_equal actualInstance.class, actualInstance.class
    my_assert_classes_are_equal expectedClass, expectedClass
    my_assert_classes_are_equal expectedClass, actualInstance.class
  end

  def my_assert_not_nil instance
    assert instance
    assert !instance.nil?
    assert instance != nil
  end

  def my_assert_classes_are_equal clazz1, clazz2
    assert clazz1 == clazz2
    assert clazz1.eql?(clazz2)
    assert clazz1.equal?(clazz2)
  end
</pre>
<p>To distinguish <code>Test::Unit::Assertions</code> assertions from our custom assertion, I have prefixed our custom assertion with <code>my_</code>.  As before, the following is the thought process taken: </p>
<ol>
<li>
<p>
      <em>I need to create a test which asserts that the boolean is false or nil</em><br />
              Let&#8217;s call it <code>test_assert_boolean_is_false_or_nil</code>
    </p>
</li>
<li>
<p>
    <em>I would like to make sure an exception is thrown when asserting false</em><br />
    Since we can reuse this for the assert nil case, let&#8217;s create a method which we can pass a block into it. A <em>block</em> is a &#8220;nameless function&#8221; or just a list of instructions you want to execute.
    </p>
</li>
<li>
<p>
    <em>I would like to capture an expected raised exception when my block is executed</em><br />
    Since <code>yield</code> &#8220;yields&#8221; to the passed in block, lets wrap the <code>yield</code> with begin..rescue..end syntax.  Next, we&#8217;ll verify that the class of the exception raised is the one that we expected.
    </p>
</li>
<li>
<p>
    <em>I would like to raise an exception if assert does not raise its own</em><br />
    For simplicity, lets add a flag to indicate if <code>assert</code> raised an exception.  If not, our if block will raise its own.
    </p>
</li>
</ol>
<p>In order to shorten this blog entry, I&#8217;ll let you take a look at the implementation for <code>my_assert_type_of</code> on your own.  The code here is another example of proving out what we know of the Ruby language.  Specifically, this code tests the behavior of:</p>
<ul>
<li><em>nil checking an instance</em></li>
<li><em>nil class equality</em></li>
<li><em>non-nil class equality</em></li>
</ul>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rossniemi.wordpress.com/10/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rossniemi.wordpress.com/10/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rossniemi.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rossniemi.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rossniemi.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rossniemi.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rossniemi.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rossniemi.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rossniemi.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rossniemi.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rossniemi.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rossniemi.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rossniemi.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rossniemi.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rossniemi.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rossniemi.wordpress.com/10/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rossniemi.wordpress.com&amp;blog=662496&amp;post=10&amp;subd=rossniemi&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rossniemi.wordpress.com/2007/01/31/learning-ruby-tdd-style-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8b9307a472434144530281654a5df886?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ross</media:title>
		</media:content>
	</item>
		<item>
		<title>Learning Ruby &#8211; TDD Style! (Part 1)</title>
		<link>http://rossniemi.wordpress.com/2007/01/13/learning-ruby-tdd-style-part-1/</link>
		<comments>http://rossniemi.wordpress.com/2007/01/13/learning-ruby-tdd-style-part-1/#comments</comments>
		<pubDate>Sun, 14 Jan 2007 04:15:58 +0000</pubDate>
		<dc:creator>Ross Niemi</dc:creator>
				<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://rossniemi.wordpress.com/2007/01/13/learning-ruby-tdd-style-part-1/</guid>
		<description><![CDATA[start &#124; previous &#124; next &#124; finish I&#8217;m starting to take a serious look at Ruby, and like many people who are new to a programming language, it&#8217;s difficult to know where to start. Sure I have the &#8220;pickaxe&#8221; book in hand and my bookmarks are overflowing with Ruby links, but where ever and however [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rossniemi.wordpress.com&amp;blog=662496&amp;post=8&amp;subd=rossniemi&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>start | previous | <a href="http://rossniemi.wordpress.com/2007/01/31/learning-ruby-tdd-style-part-2/">next</a> | finish</p>
<p>I&#8217;m starting to take a serious look at Ruby, and like many people who are new to a programming language, it&#8217;s difficult to know where to start.  Sure I have the <a href="http://www.pragmaticprogrammer.com/titles/ruby/index.html">&#8220;pickaxe&#8221; book</a> in hand and my bookmarks are overflowing with Ruby links, but where ever and however I start I would like to be able to see immediate results and I would like to prove to myself that I&#8217;m understanding the syntax.</p>
<p>How about testing what I already know?  Well, right now I don&#8217;t know too much.  However, that should make things easier since it will prevent me from wanting to take on too much at once and keeping myself focused on small obtainable goals.  </p>
<p><span id="more-8"></span></p>
<p>Since I come from the Test Driven Development (TDD) camp, testing is pretty second nature and it is very comforting for me to keep on doing it.  Perhaps the question I should be asking is: <em>Where should one start when learning Ruby using TDD?</em></p>
<p>Since Ruby already has a unit testing framework, the first place we should look is the <code>Test::Unit</code> module.  Hmm.. looks like there is a <code>TestCase</code> class.  In the past when I developed Java applications, I&#8217;ve used JUnit extensively so this seems familiar to me.  Okay, but what are we going to test first?  Well, when you are writing a test you typically need to make an <em>assertion</em>.  Right, where is that kept?  </p>
<p>After digging around in the <a href="http://www.ruby-doc.org/">ruby docs online</a>, we see that the <code>Test::Unit::Assertions</code> class contains the assertions used by <code>Test::Unit:TestCase</code>.  Scanning down the document, the first public instance method we encountered is <code>assert</code>.  Well, golly gee whiz.  If we were pairing with Donald Rumsfeld then he would tell us to be vigilant and go after that method because its a known-unknown.</p>
<p>Alright, lets start by creating an <code>AssertionsTest</code> class which will test the <code>assert</code> behavior.</p>
<pre>
require 'test/unit'

class AssertionsTest &lt; Test::Unit::TestCase

  def test_should_do_something_with_assert
    # method to be revisited . . .
  end

end
</pre>
<p>This seems to be a good breaking point.  My goal is to treat this as a running example while I&#8217;m learning the finer aspects of Ruby.  Hopefully readers like yourself will find this to be a useful and educational experience.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rossniemi.wordpress.com/8/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rossniemi.wordpress.com/8/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rossniemi.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rossniemi.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rossniemi.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rossniemi.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rossniemi.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rossniemi.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rossniemi.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rossniemi.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rossniemi.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rossniemi.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rossniemi.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rossniemi.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rossniemi.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rossniemi.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rossniemi.wordpress.com&amp;blog=662496&amp;post=8&amp;subd=rossniemi&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rossniemi.wordpress.com/2007/01/13/learning-ruby-tdd-style-part-1/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8b9307a472434144530281654a5df886?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ross</media:title>
		</media:content>
	</item>
		<item>
		<title>Finnish Kung Fu is Strong!</title>
		<link>http://rossniemi.wordpress.com/2007/01/09/finnish-kung-fu-is-strong/</link>
		<comments>http://rossniemi.wordpress.com/2007/01/09/finnish-kung-fu-is-strong/#comments</comments>
		<pubDate>Tue, 09 Jan 2007 15:10:27 +0000</pubDate>
		<dc:creator>Ross Niemi</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://rossniemi.wordpress.com/2007/01/09/finnish-kung-fu-is-strong/</guid>
		<description><![CDATA[A lot of people were pretty excited about getting a Nintendo Wii for Christmas this past year largely in part to the cool remote motion sensor technology. After seeing some of the demos for Call of Duty 3, I must say that my interest was sparked. However, what if I wanted to practice my Kung [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rossniemi.wordpress.com&amp;blog=662496&amp;post=7&amp;subd=rossniemi&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A lot of people were pretty excited about getting a <a href="http://wii.nintendo.com">Nintendo Wii</a> for Christmas this past year largely in part to the cool <a href="http://wii.nintendo.com/controller.jsp#wii_remote">remote motion sensor</a> technology. After seeing some of the demos for <a href="http://www.youtube.com/watch?v=aIf5tTHe0_E">Call of Duty 3</a>, I must say that my interest was sparked.</p>
<p>However, what if I wanted to practice my Kung Fu skills?  Sure the <a href="http://wii.nintendo.com">Nintendo Wii</a> comes with a <a href="http://wii.nintendo.com/controller.jsp#nunchuk">&#8220;nunchuk&#8221;</a> controller, but over time I&#8217;m sure the muscles in my legs will begin to atrophy if I don&#8217;t get the stimulating workout that I need.  Well, wait no longer.  Check out this <a href="http://wii.nintendo.com/controller.jsp#wii_remote">technology</a> coming out of the far east country of&#8230; Finland.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rossniemi.wordpress.com/7/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rossniemi.wordpress.com/7/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rossniemi.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rossniemi.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rossniemi.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rossniemi.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rossniemi.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rossniemi.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rossniemi.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rossniemi.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rossniemi.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rossniemi.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rossniemi.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rossniemi.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rossniemi.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rossniemi.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rossniemi.wordpress.com&amp;blog=662496&amp;post=7&amp;subd=rossniemi&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rossniemi.wordpress.com/2007/01/09/finnish-kung-fu-is-strong/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8b9307a472434144530281654a5df886?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ross</media:title>
		</media:content>
	</item>
		<item>
		<title>Buckeyes: Thems Good Eats!</title>
		<link>http://rossniemi.wordpress.com/2007/01/08/buckeyes-thems-good-eats/</link>
		<comments>http://rossniemi.wordpress.com/2007/01/08/buckeyes-thems-good-eats/#comments</comments>
		<pubDate>Tue, 09 Jan 2007 05:16:26 +0000</pubDate>
		<dc:creator>Ross Niemi</dc:creator>
				<category><![CDATA[Humor]]></category>

		<guid isPermaLink="false">http://rossniemi.wordpress.com/2007/01/08/buckeyes-thems-good-eats/</guid>
		<description><![CDATA[As I sit watching the BCS Title Game between the Buckeyes and the Gators, I started to reflect back on how little I knew of the Ohio and western Pennsylvanian region before meeting my wife. Coming from Canada, American college football was foreign to me since hockey in Canada is king. Even more foreign were [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rossniemi.wordpress.com&amp;blog=662496&amp;post=6&amp;subd=rossniemi&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As I sit watching the BCS Title Game between the <a href="http://ohiostatebuckeyes.cstv.com/sports/m-footbl/osu-m-footbl-body.html">Buckeyes</a> and the <a href="http://www.gatorzone.com/football/">Gators</a>, I started to reflect back on how little I knew of the Ohio and western Pennsylvanian region before meeting my wife.  Coming from Canada, American college football was foreign to me since hockey in Canada is king. Even more foreign were the customs of the <a href="http://en.wikipedia.org/wiki/Hillbilly">hillbillies</a> who call <a href="http://en.wikipedia.org/wiki/Appalachia">Appalachia</a> home.</p>
<p>When I visited my future in-laws for the first time out in western Pennsylvania, I was asked if I wanted to eat some &#8220;buckeyes&#8221;.  Knowing that my wife&#8217;s family are avid deer hunters, I assumed that they were being literal.  Since I love food and embrace every opportunity to try food which is different, I was really looking forward to the experience.  In my defense, before this moment I have visited quite of few exotic countries and enjoyed much stranger food. Still, I was looking forward to trying some fine Appalachia eats.</p>
<p><span id="more-6"></span></p>
<p>Imagine my disappointment and shock when I bit into a chocolate covered peanut butter ball when I was expecting something more spongy and less sweet.  Embracing my many years of consulting skills, I was able to recover quickly and I thanked them for the tasty treat.  Needless to say, I dared not mention or explain my confusion since I would have only embarrassed myself and possibly jeopardize my engagement.  Still I couldn&#8217;t understand why on earth people would make candy and named after discarded animal parts.</p>
<p>Later on during the same trip we went to visit my finance&#8217;s grandfather in eastern Ohio and I saw some unusual brown balls by the back steps piled up &#8211; similar to a tasty treat I tried earlier.  I asked my finance what they were and she told me that they were &#8220;buckeyes&#8221;.  In my experience, whenever you are in an unfamiliar situation, it is best to identify the familiar.  Falling back on what I already knew, that my in-laws were deer hunters, I started picturing my finance&#8217;s 92 year old grandfather sitting on the back porch gutting deer (or at least employing someone to) and discarding the buck eyes in a pile.  It may have been best to ask for clarification, but I still had my dark secret from my previous &#8220;buckeye&#8221; episode.</p>
<p>Finally, on a different occasion I was watching an Ohio State football game on TV.  In addition to seeing a good team play, what really stood out for me was that the Buckeye football players had stickers on their helmets while the other team did not.  I was still pretty new to this American college football thing and my vision is poor, so I tried to make out what it was (I should have used Google).  </p>
<p>I never took a botany course in school, but take a guess which plant I thought I saw:</p>
<p><img src="http://www.uwgb.edu/biodiversity/herbarium/trees/aesgla_leaf02_web400gf.jpg" width="117" height="100" alt="Buckeye Leaf" /><img src="http://www.evolutionquebec.com/site/images/cannabi/feuille.gif" width="117" height="100" alt="Not a Buckeye Leaf" /></p>
<p>Well, I must say that my view of the Midwest totally changed once I had that revelation.  Instead of picturing the Midwest or Ohio as a closed region bound by rigid traditional values, I started to think of it more as a highly liberal region quietly residing within conservative America.  That&#8217;s right Pacific Northwest states: You have nothing on Ohio state!  Hey, if one of the best and most visible college football teams in the United States could wear &#8220;those&#8221; stickers on their helmets and still have the acceptance of the fans and Ohio residents then Ohio <em>has</em> to be a super liberal state&#8230; My, and so many stickers too!</p>
<p>Anyhow, since that time I have fallen in love with <a href="www.wikipedia.org">Wikipedia</a> and was able to use it dispel my faulty knowledge.  What I ended up finding is that <a href="http://en.wikipedia.org/wiki/Ohio_Buckeye">Ohio Buckeye is a tree, the sticker is of the Ohio Buckeye tree leaves, a Buckeye is a nut from the Ohio Buckeye, and Buckeyes are also chocolate covered peanut butter balls</a>. </p>
<p>As I write this, it looks like the <a href="http://ohiostatebuckeyes.cstv.com/sports/m-footbl/osu-m-footbl-body.html">Buckeyes</a> have no hope for recovery against the <a href="http://www.gatorzone.com/football/">Gators</a>.  Better luck next year!  Don&#8217;t eat too many &#8220;buckeyes&#8221; in the off-season!</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rossniemi.wordpress.com/6/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rossniemi.wordpress.com/6/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rossniemi.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rossniemi.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rossniemi.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rossniemi.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rossniemi.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rossniemi.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rossniemi.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rossniemi.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rossniemi.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rossniemi.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rossniemi.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rossniemi.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rossniemi.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rossniemi.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rossniemi.wordpress.com&amp;blog=662496&amp;post=6&amp;subd=rossniemi&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rossniemi.wordpress.com/2007/01/08/buckeyes-thems-good-eats/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8b9307a472434144530281654a5df886?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ross</media:title>
		</media:content>

		<media:content url="http://www.uwgb.edu/biodiversity/herbarium/trees/aesgla_leaf02_web400gf.jpg" medium="image">
			<media:title type="html">Buckeye Leaf</media:title>
		</media:content>

		<media:content url="http://www.evolutionquebec.com/site/images/cannabi/feuille.gif" medium="image">
			<media:title type="html">Not a Buckeye Leaf</media:title>
		</media:content>
	</item>
		<item>
		<title>Patterns of Annoying Flyers</title>
		<link>http://rossniemi.wordpress.com/2007/01/08/patterns-of-annoying-flyers/</link>
		<comments>http://rossniemi.wordpress.com/2007/01/08/patterns-of-annoying-flyers/#comments</comments>
		<pubDate>Mon, 08 Jan 2007 22:24:12 +0000</pubDate>
		<dc:creator>Ross Niemi</dc:creator>
				<category><![CDATA[Humor]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://rossniemi.wordpress.com/2007/01/08/patterns-of-annoying-flyers/</guid>
		<description><![CDATA[After traveling by air for many, many years, it&#8217;s hard not to recognize those flyers which are just plain annoying. The following list are some of these people that I have seen and continue to loathe: The Princess &#8211; people who put their jackets and / or their tiny bags in the overhead bin instead [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rossniemi.wordpress.com&amp;blog=662496&amp;post=5&amp;subd=rossniemi&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>After traveling by air for many, many years, it&#8217;s hard not to recognize those flyers which are just plain annoying.  The following list are some of these people that I have seen and continue to loathe:</p>
<ul>
<li><strong>The Princess</strong> &#8211; people who put their jackets and / or their tiny bags in the overhead bin instead of holding onto their jacket and putting their bags under the seat in front of them.  Oddly enough, most of these offenders are middle-age business men who carry man-purses around. </li>
<li><strong>The Lazy Sherpa</strong> &#8211; people who sit in the back and decide to put their roller bags up by the bulkhead.  Although these offenders won&#8217;t have to carry their already over packed bag as far, it forces people near to front to check their baggage <em>OR</em> they will need to go further back and tick off those people seated there.</li>
<li><strong>My new best friend</strong> &#8211; perpetrators are usually old, lonely, or just nervous of flying.  They like to tell you everything about themselves, even if you don&#8217;t ask.  Sometimes they will continue to talk to you even when your eyes are closed and you&#8217;re sleeping.</li>
<p><span id="more-5"></span></p>
<li><strong>THIS <em>IS</em> MY INSIDE VOICE!</strong> &#8211; no matter where you are on the plane, there is no escaping this individual.  This pattern can occur simultaneously with the &#8220;My new best friend&#8221; pattern.</li>
<li><strong>The Brewery/Distillery</strong> &#8211; the nervous flier who decide to self-medicate themselves with booze before and during the flight.  Usually stinks of booze for the entire flight.  Bonus points if the Brewery / Distillery has spittle / barf on their face / shirt / slacks.</li>
<li><strong>The Seat Cowboy</strong> &#8211; people who bounce around in their seat and mercilessly try to force their seat back further than the seat is manufactured to do&#8230; or until my knees break.
<li><strong>The Uni-bomber</strong> &#8211; this offender usually works alone or with a can of beans before hand.  Many people are affected when his / her bomb goes off, but no one knows who did it.  The phrase &#8220;silent but deadly&#8221; is truly applicable in this instance.</li>
<li><strong>Sausage in a Bun</strong> &#8211; usually comprises of one larger individual in the middle seat or two on the outside seats.</li>
<li><strong>Seat Squatter</strong> &#8211; when you arrive at your seat, there is already someone there and they try to sell you on taking their less pleasant seat.  Sometimes they will continue to hum and ha until you have to physically give them the boot.</li>
<li><strong>Au Natural</strong> &#8211; lucky are you when you sit next to a naturalist who refuses to wear deodorant because of their inorganic elements.</li>
<li><strong>Mosquito Fogger</strong> &#8211; individuals whose sense of smell has become worse over the years and so they have to apply their fragrances using a mosquito fogger so they and everyone on the plane can smell it.</li>
<li><strong>New Age Wacko Parent</strong> &#8211; parents who let their children have the rule of the aircraft i.e. the kids are allowed treat their seats like jungle gyms or trampolines. These parents also let their child scream and cry since the child is &#8220;only trying to express him / her self&#8221;.</li>
<li><strong>I have no bladder control, but I want the window seat</strong> &#8211; if you know that you have problems with your bladder / bowels, please choose a seat near the lavatory and in the aisle</li>
<li><strong>I don&#8217;t like being bothered, but I want the aisle seat</strong> &#8211; by electing to take an aisle seat, you need to have some expectations that people in your row will need to get up</li>
<li><strong>My legs are short, but I want the bulkhead or emergency exit row</strong> &#8211; save these seats for people who get bloody knees from sitting behind you</li>
<li><strong>I sit in an aisle/window seat and I want both armrests</strong> &#8211; you already have <em>one</em> personal armrest.  Think of the poor schmuck who is stuck in the middle!
<li><strong>No, I will not switch (equivalent) seats so you can sit with your wife</strong> &#8211; I really don&#8217;t know what to say about this one.  If you recognize yourself as being an offender then you deserve to be beaten.</li>
<li><strong>I like my space and I want to pay for economy</strong> &#8211; if you really do have space issues then fork the cash out for first class seats&#8230; if you choose not to then &#8220;just suck it up princess&#8221;.</li>
</ul>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rossniemi.wordpress.com/5/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rossniemi.wordpress.com/5/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rossniemi.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rossniemi.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rossniemi.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rossniemi.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rossniemi.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rossniemi.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rossniemi.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rossniemi.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rossniemi.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rossniemi.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rossniemi.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rossniemi.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rossniemi.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rossniemi.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rossniemi.wordpress.com&amp;blog=662496&amp;post=5&amp;subd=rossniemi&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rossniemi.wordpress.com/2007/01/08/patterns-of-annoying-flyers/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8b9307a472434144530281654a5df886?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ross</media:title>
		</media:content>
	</item>
	</channel>
</rss>
