<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>Graeme Nelson</title>
	
	<link>http://www.graemenelsonpdx.com</link>
	<description>a ruby web developer located in portland, oregon</description>
	<lastBuildDate>Fri, 18 Sep 2009 20:47:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/graemenelsonpdx" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Introducing HeyIndie</title>
		<link>http://www.graemenelsonpdx.com/articles/90-introducing-heyindie</link>
		<comments>http://www.graemenelsonpdx.com/articles/90-introducing-heyindie#comments</comments>
		<pubDate>Fri, 18 Sep 2009 20:47:41 +0000</pubDate>
		<dc:creator>Graeme Nelson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.graemenelsonpdx.com/?p=90</guid>
		<description><![CDATA[For the last month, I&#8217;ve been hard at work with Tim Barkow to launch HeyIndie.  We are close to launching our first version, you can read more about it over at the HeyIndie Blog.
What I&#8217;ve really enjoyed about this project was the ability to step outside the technology realm and dive into the customer [...]]]></description>
			<content:encoded><![CDATA[<p>For the last month, I&#8217;ve been hard at work with <a href="http://www.thinkcorps.com/">Tim Barkow</a> to launch <a href="http://heyindie.com">HeyIndie</a>.  We are close to launching our first version, you can read more about it over at the <a href="http://heyindie.com/blog/">HeyIndie Blog</a>.</p>
<p>What I&#8217;ve really enjoyed about this project was the ability to step outside the technology realm and dive into the customer realm.  Tim and I both stumbled up <a href="http://steveblank.com/">Steven Blank</a> book <a href="http://www.amazon.com/gp/product/0976470705?tag=graenelso-20">The Four Steps to the Epiphany</a> at the same time.  I am not sure how Steven Blank stayed under my radar for so long.  I&#8217;ve always considered myself a champion for the customer, but it wasn&#8217;t until I started reading the book and articles by Steven Blank that I realized that I really wasn&#8217;t, since I never got outside of the building to talk with the customer.  </p>
<p>If you haven&#8217;t read Steve Blank, I highly recommend it.  It will definitely make you think in different ways, when building an application or starting a startup.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.graemenelsonpdx.com/articles/90-introducing-heyindie/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making ActionController::Translation#translate more like ActionView::Helpers::TranslationHelper#translate</title>
		<link>http://www.graemenelsonpdx.com/articles/74-making-actioncontrollertranslationtranslate-more-like-actionviewhelperstranslationhelpertranslate</link>
		<comments>http://www.graemenelsonpdx.com/articles/74-making-actioncontrollertranslationtranslate-more-like-actionviewhelperstranslationhelpertranslate#comments</comments>
		<pubDate>Thu, 13 Aug 2009 22:53:27 +0000</pubDate>
		<dc:creator>Graeme Nelson</dc:creator>
				<category><![CDATA[i18n]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://www.graemenelsonpdx.com/?p=74</guid>
		<description><![CDATA[I started using i18n support in rails.  I really liked how the ActionView::Helpers::TranslationHelper#translate method works.  
If the key starts with &#8220;.&#8221;, then the key is scoped to the partial.  For example, if translate(&#8221;.title&#8221;) is called from the registrations/new page, then the key gets scoped to &#8216;registrations.new.title&#8217;.  I wanted the same sort [...]]]></description>
			<content:encoded><![CDATA[<p>I started using <a href="http://en.wikipedia.org/wiki/Internationalization_and_localization">i18n</a> support in <a href="http://rubyonrails.org/">rails</a>.  I really liked how the <a href="http://api.rubyonrails.org/classes/ActionView/Helpers/TranslationHelper.html#M001633">ActionView::Helpers::TranslationHelper#translate</a> method works.  </p>
<p>If the key starts with &#8220;.&#8221;, then the key is scoped to the partial.  For example, if translate(&#8221;.title&#8221;) is called from the registrations/new page, then the key gets scoped to &#8216;registrations.new.title&#8217;.  I wanted the same sort of behavior with the ActionController::Translation#translate, so I created my own method called <code>scope_key_by_controller_and_action</code> and placed it in the ApplicationController. The code looks  like:</p>
<pre>
<code>
  def scope_key_by_controller_and_action( key )
      return key unless key.first == "."
      "#{controller_name}.#{action_name}#{key}"
  end
</code>
</pre>
<p>Then I could use it with the ActionController::Translation#translate method, like so:</p>
<pre>
<code>
   def page_title
     @page_title ||=
           t( scope_key_by_controller_and_action(".title") )
   end
</code>
</pre>
<p>The scope_key_by_controller_and_action(&#8221;.title&#8221;) will be converted to &#8220;registrations.new.title&#8221; for a controller/action combo of &#8220;registrations&#8221; and &#8220;new&#8221;.  If the key doesn&#8217;t start with &#8220;.&#8221; then the original key is returned.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.graemenelsonpdx.com/articles/74-making-actioncontrollertranslationtranslate-more-like-actionviewhelperstranslationhelpertranslate/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Running RSpec Through Textmate with Multiruby</title>
		<link>http://www.graemenelsonpdx.com/articles/64-running-rspec-through-textmate-with-multiruby</link>
		<comments>http://www.graemenelsonpdx.com/articles/64-running-rspec-through-textmate-with-multiruby#comments</comments>
		<pubDate>Wed, 12 Aug 2009 17:31:09 +0000</pubDate>
		<dc:creator>Graeme Nelson</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[multiruby]]></category>
		<category><![CDATA[rspec]]></category>

		<guid isPermaLink="false">http://www.graemenelsonpdx.com/?p=64</guid>
		<description><![CDATA[When working with RSpec, I like to run my individual specs with the RSpec Textmate Bundle.  After making the switch to using multiruby, the bundle was picking up my old install of ruby.  This was easy to fix, at least to run my current 1.8.7 version of ruby from my .multiruby directory.
On my [...]]]></description>
			<content:encoded><![CDATA[<p>When working with RSpec, I like to run my individual specs with the <a href="http://wiki.github.com/dchelimsky/rspec/textmate">RSpec Textmate Bundle</a>.  After making the switch to using <a href="http://zentest.rubyforge.org/ZenTest/Multiruby.html">multiruby</a>, the bundle was picking up my old install of ruby.  This was easy to fix, at least to run my current 1.8.7 version of ruby from my <code>.multiruby</code> directory.</p>
<p>On my mac, I just opened <code>/etc/profile</code> and added the following line to the bottom of file:</p>
<p><code><br />
export PATH="/Users/graemenelson/.multiruby/install/1.8.7-p174/bin:$PATH"<br />
</code></p>
<p>My initial attempt was to add <code>/Users/graemenelson/.multiruby/install/1.8.7-p174/bin</code> to the top of the /etc/paths file, but other directories still appeared before my <code>.multiruby</code> directory.</p>
<p>However, this still doesn&#8217;t work when I want to switch to using a different ruby version.  Does any have any ideas on how to solve this?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.graemenelsonpdx.com/articles/64-running-rspec-through-textmate-with-multiruby/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ZenTest multiruby fails on setup</title>
		<link>http://www.graemenelsonpdx.com/articles/55-zentest-multiruby-fails-on-setup</link>
		<comments>http://www.graemenelsonpdx.com/articles/55-zentest-multiruby-fails-on-setup#comments</comments>
		<pubDate>Sat, 08 Aug 2009 23:19:08 +0000</pubDate>
		<dc:creator>Graeme Nelson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.graemenelsonpdx.com/?p=55</guid>
		<description><![CDATA[I hope this helps someone else.  I decided that I need to get setup with Ruby 1.9, and I found this nice write up.  
However, when I typed:
multiruby_setup the_usual
I kept receiving the following error, in my ~/.multiruby/build/ruby-1.8.6-p383/log.build (your directory may vary depending on the patch level for ruby 1.8.6):
readline.c: In function ‘filename_completion_proc_call’
This post [...]]]></description>
			<content:encoded><![CDATA[<p>I hope this helps someone else.  I decided that I need to get setup with Ruby 1.9, and I found this <a href="http://drnicwilliams.com/2008/12/11/future-proofing-your-ruby-code/">nice write up</a>.  </p>
<p>However, when I typed:</p>
<p><code>multiruby_setup the_usual</code></p>
<p>I kept receiving the following error, in my <code>~/.multiruby/build/ruby-1.8.6-p383/log.build</code> (your directory may vary depending on the patch level for ruby 1.8.6):</p>
<p><code>readline.c: In function ‘filename_completion_proc_call’</code></p>
<p>This <a href="http://blog.robseaman.com/2008/12/10/from-ruby-1-8-6-to-1-87-and-back-again-on-leopard">post</a> pointed me in the right direction, it seems that my installation of readline in /usr/local was causing a conflict.  I had just installed that the other day, when I decided to abandoned macports and <a href="http://www.graemenelsonpdx.com/articles/47-going-usr-local">go /usr/local</a>.  I just removed this installation, by going to the source directory (which I still had around) and typing <code>sudo make uninstall</code>.  I am not sure if this messed up any of my other libraries, only time will tell.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.graemenelsonpdx.com/articles/55-zentest-multiruby-fails-on-setup/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>going /usr/local</title>
		<link>http://www.graemenelsonpdx.com/articles/47-going-usr-local</link>
		<comments>http://www.graemenelsonpdx.com/articles/47-going-usr-local#comments</comments>
		<pubDate>Fri, 07 Aug 2009 23:55:55 +0000</pubDate>
		<dc:creator>Graeme Nelson</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[macosx]]></category>
		<category><![CDATA[macports]]></category>

		<guid isPermaLink="false">http://www.graemenelsonpdx.com/?p=47</guid>
		<description><![CDATA[I&#8217;ve been living a double life with my Mac OS X development environment, the MacPorts life and the /usr/local life.  
Why I used MacPorts?

It&#8217;s easy, just type sudo port install packagename

However, I kept running into more and more situations where MacPorts didn&#8217;t really work for me.  

MacPorts seemed to always be behind in [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been living a double life with my Mac OS X development environment, the <a href="http://www.macports.org/">MacPorts</a> life and the /usr/local life.  </p>
<h3>Why I used MacPorts?</h3>
<ul>
<li>It&#8217;s easy, just type <code>sudo port install packagename</code></li>
</ul>
<p>However, I kept running into more and more situations where MacPorts didn&#8217;t really work for me.  </p>
<ul>
<li>MacPorts seemed to always be behind in revisions.  I wanted to use the lastest and greatest.</li>
<li>MacPorts sometimes failed, and I had to search around for the solution providing special switches.  How is this any different than installing from source?</li>
</ul>
<p>Lately, I started seeing conflicts between /opt/local (MacPorts) and /usr/local.  This is when I decided I needed to make a choice between them.  I decided to adopted the /usr/local method, since I want to be able to use the latest versions for libraries and software.  When I was looking around for posts on the subject, I happened to stumble upon this <a href="http://hivelogic.com/articles/using_usr_local/">nice post</a> on why you would want to install your own packages in /usr/local.  Justification!</p>
<p>So, today I am starting on that path.  I am not sure if it will be successful, but I am giving it a try.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.graemenelsonpdx.com/articles/47-going-usr-local/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Installing CouchDB on Mac OS X</title>
		<link>http://www.graemenelsonpdx.com/articles/41-installing-couchdb-on-mac-os-x</link>
		<comments>http://www.graemenelsonpdx.com/articles/41-installing-couchdb-on-mac-os-x#comments</comments>
		<pubDate>Thu, 30 Jul 2009 19:01:12 +0000</pubDate>
		<dc:creator>Graeme Nelson</dc:creator>
				<category><![CDATA[couchdb]]></category>

		<guid isPermaLink="false">http://www.graemenelsonpdx.com/?p=41</guid>
		<description><![CDATA[When I first started checking out CouchDB a couple of months ago, I installed CouchDB via Mac Ports.  Everything was working fine, until I decided to try and upgrade couchdb via ports:
sudo port upgrade couchdb
Next thing I knew, Erlang was upgraded to a version that was no longer compatible with CouchDB.  So, I [...]]]></description>
			<content:encoded><![CDATA[<p>When I first started checking out CouchDB a couple of months ago, I installed CouchDB via Mac Ports.  Everything was working fine, until I decided to try and upgrade couchdb via ports:</p>
<p><code>sudo port upgrade couchdb</code></p>
<p>Next thing I knew, Erlang was upgraded to a version that was <a href="http://wiki.apache.org/couchdb/Error_messages#BinaryArchitectureMismatchOSX">no longer compatible</a> with CouchDB.  So, I tried several different ways to get my old Erlang version back, but with little success.  I then decided to try and install all the required packages by hand.   I tried a couple of different blog posts, but the one that work for me was:</p>
<p><a href="http://devoh.com/posts/2009/03/couchdb-leopard">http://devoh.com/posts/2009/03/couchdb-leopard</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.graemenelsonpdx.com/articles/41-installing-couchdb-on-mac-os-x/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blog Updated</title>
		<link>http://www.graemenelsonpdx.com/articles/35-blog-updated</link>
		<comments>http://www.graemenelsonpdx.com/articles/35-blog-updated#comments</comments>
		<pubDate>Tue, 28 Jul 2009 17:30:58 +0000</pubDate>
		<dc:creator>Graeme Nelson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.graemenelsonpdx.com/?p=35</guid>
		<description><![CDATA[I&#8217;ve decided to update my blog software once again.  My last attempt was a custom built application, using Sinatra Web Framework.  I really enjoyed working with Sinatra and I learned a lot about Sinatra in the process.
So, why change?  Well, I wanted to make an update to my blog last week, but [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve decided to update my blog software once again.  My last attempt was a custom built application, using <a href="http://www.sinatrarb.com">Sinatra Web Framework</a>.  I really enjoyed working with Sinatra and I learned a lot about Sinatra in the process.</p>
<p>So, why change?  Well, I wanted to make an update to my blog last week, but I updated my local Sinatra environment to the latest and greatest, and that broke my blog code. I didn&#8217;t have the time to spend on fixing the issues.  I decided that I needed to move my blog to a mature blog platform, so I can focus on writing blog posts and working on code I really wanted to be working on. </p>
<p>This blog is now running on <a href="http://www.wordpress.org">wordpress</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.graemenelsonpdx.com/articles/35-blog-updated/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
