<?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"
	>

<channel>
	<title>eval(code)</title>
	<atom:link href="http://www.evalcode.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.evalcode.com</link>
	<description>Two parts foo, one part bar.</description>
	<pubDate>Mon, 24 Nov 2008 19:20:58 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>en</language>
			<item>
		<title>Git versus SVN Presentation</title>
		<link>http://www.evalcode.com/2008/11/git-versus-svn-presentation/</link>
		<comments>http://www.evalcode.com/2008/11/git-versus-svn-presentation/#comments</comments>
		<pubDate>Mon, 24 Nov 2008 19:20:58 +0000</pubDate>
		<dc:creator>Justin Smestad</dc:creator>
		
		<category><![CDATA[Development]]></category>

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

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

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

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

		<guid isPermaLink="false">http://www.evalcode.com/?p=115</guid>
		<description><![CDATA[Last week I made a presentation about Git and compared it to Subversion. There is an obvious bias in the slides however, I tried to make a point to show the downsides of Git as well. One slide that is missing is one on security and the idea of Git storing all the commit history [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I made a presentation about Git and compared it to Subversion. There is an obvious bias in the slides however, I tried to make a point to show the downsides of Git as well. One slide that is missing is one on security and the idea of Git storing all the commit history on each machine can be a security risk in some scenarios. Feel free to use these slides in your own presentation, but post a link back as a thank you.</p>
<p>Slides: <a href="http://www.evalcode.com/wp-content/uploads/2008/11/git-presentation1.pdf">git-presentation</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.evalcode.com/2008/11/git-versus-svn-presentation/feed/</wfw:commentRss>
		</item>
		<item>
		<title>RMagick install frustrations</title>
		<link>http://www.evalcode.com/2008/11/rmagick-install-frustrations/</link>
		<comments>http://www.evalcode.com/2008/11/rmagick-install-frustrations/#comments</comments>
		<pubDate>Mon, 24 Nov 2008 06:04:39 +0000</pubDate>
		<dc:creator>Justin Smestad</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.evalcode.com/?p=106</guid>
		<description><![CDATA[I had a frustrating afternoon after my RMagick mysteriously blew up and refused to run. If you have encountered this error:
&#8220;This version of RMagick was created to run with ImageMagick x.x.x (not y.y.y)&#8221;
You will be happy to know you just have to uninstall and reinstall RMagick. Apparently the gem is not only specifically built to [...]]]></description>
			<content:encoded><![CDATA[<p>I had a frustrating afternoon after my RMagick mysteriously blew up and refused to run. If you have encountered this error:</p>
<p>&#8220;This version of RMagick was created to run with ImageMagick x.x.x (not y.y.y)&#8221;</p>
<p>You will be happy to know you just have to uninstall and reinstall RMagick. Apparently the gem is not only specifically built to your machine but also bound to the ImageMagick that was installed at the time.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evalcode.com/2008/11/rmagick-install-frustrations/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Pivotal Tracker API Ruby Wrapper</title>
		<link>http://www.evalcode.com/2008/11/pivotal-tracker-api-ruby-wrapper/</link>
		<comments>http://www.evalcode.com/2008/11/pivotal-tracker-api-ruby-wrapper/#comments</comments>
		<pubDate>Tue, 11 Nov 2008 21:29:58 +0000</pubDate>
		<dc:creator>Justin Smestad</dc:creator>
		
		<category><![CDATA[Datamapper]]></category>

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

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

		<guid isPermaLink="false">http://www.evalcode.com/?p=97</guid>
		<description><![CDATA[I have been playing around with the recently released public API for Pivotal Tracker. In the process of converting this into a Datamapper Adapter, I tested it with some simple Net::HTTP Ruby code. It provides a nice simple, and limited, illustration of what is possible with this public API. One thing I would like to [...]]]></description>
			<content:encoded><![CDATA[<p>I have been playing around with the recently released <a href="http://www.pivotaltracker.com/help/api">public API</a> for <a href="http://www.pivotaltracker.com">Pivotal Tracker</a>. In the process of converting this into a Datamapper Adapter, I tested it with some simple Net::HTTP Ruby code. It provides a nice simple, and limited, illustration of what is possible with this public API. One thing I would like to see added to the API however is the ability to limit the number of results when querying with filters. Attached is the slightly modified source code (removed my project id and token key). Tests are included as always, but fair warning, some are brittle! I will post another revision once the Datamapper Adapter is created.</p>
<pre name="code" class="ruby">

require &#039;rubygems&#039;
require &#039;hpricot&#039;
require &#039;net/http&#039;
require &#039;uri&#039;
require &#039;cgi&#039; 

##
# Pivotal Tracker API Ruby Wrapper
# November 11, 2008
# Justin Smestad
# http://www.evalcode.com
##

class Tracker
  def initialize(project_id = changeme, token = changeme)
    @project_id, @token = project_id, token
  end

  def project
    resource_uri = URI.parse(&quot;http://www.pivotaltracker.com/services/v1/projects/#{@project_id}&quot;)
    response = Net::HTTP.start(resource_uri.host, resource_uri.port) do |http|
      http.get(resource_uri.path, {&#039;Token&#039; =&gt; @token})
    end

    doc = Hpricot(response.body).at(&#039;project&#039;)

    @project = {
      :name             =&gt; doc.at(&#039;name&#039;).innerHTML,
      :iteration_length =&gt; doc.at(&#039;iteration_length&#039;).innerHTML,
      :week_start_day   =&gt; doc.at(&#039;week_start_day&#039;).innerHTML,
      :point_scale      =&gt; doc.at(&#039;point_scale&#039;).innerHTML
    }
  end

  def stories
    resource_uri = URI.parse(&quot;http://www.pivotaltracker.com/services/v1/projects/#{@project_id}/stories&quot;)
    response = Net::HTTP.start(resource_uri.host, resource_uri.port) do |http|
      http.get(resource_uri.path, {&#039;Token&#039; =&gt; @token})
    end

    doc = Hpricot(response.body)

    @stories = []

    doc.search(&#039;stories &gt; story&#039;).each do |story|
      @stories &lt;&lt; {
        :id =&gt; story.at(&#039;id&#039;).innerHTML.to_i,
        :type =&gt; story.at(&#039;story_type&#039;).innerHTML,
        :name =&gt; story.at(&#039;name&#039;).innerHTML
       }
    end
    return @stories
  end

  # would ideally like to pass a size, aka :all to limit search
  def find(filters = {})
    uri = &quot;http://www.pivotaltracker.com/services/v1/projects/#{@project_id}/stories&quot;
    unless filters.empty?
      uri &lt;&lt; &quot;?filter=&quot;
      filters.each do |key, value|
        uri &lt;&lt; CGI::escape(&quot;#{key}\&quot;#{value}\&quot;&quot;
      end
    end

    resource_uri = URI.parse(uri)
    response = Net::HTTP.start(resource_uri.host, resource_uri.port) do |http|
      http.get(resource_uri.path, {&#039;Token&#039; =&gt; @token})
    end

    doc = Hpricot(response.body)

    @stories = []

    doc.search(&#039;stories &gt; story&#039;).each do |story|
      @stories &lt;&lt; {
        :id =&gt; story.at(&#039;id&#039;).innerHTML.to_i,
        :type =&gt; story.at(&#039;story_type&#039;).innerHTML,
        :name =&gt; story.at(&#039;name&#039;).innerHTML
      }
    end
    return @stories
  end

  def find_story(id)
    resource_uri = URI.parse(&quot;http://www.pivotaltracker.com/services/v1/projects/#{@project_id}/stories/#{id}&quot;)
    response = Net::HTTP.start(resource_uri.host, resource_uri.port) do |http|
      http.get(resource_uri.path, {&#039;Token&#039; =&gt; @token, &#039;Content-Type&#039; =&gt; &#039;application/xml&#039;})
    end

    doc = Hpricot(response.body).at(&#039;story&#039;)

    @story = {
      :id =&gt; doc.at(&#039;id&#039;).innerHTML.to_i,
      :type =&gt; doc.at(&#039;story_type&#039;).innerHTML,
      :name =&gt; doc.at(&#039;name&#039;).innerHTML
    }
  end

  def create_story(story)
    story_xml = build_story_xml(story)
    resource_uri = URI.parse(&quot;http://www.pivotaltracker.com/services/v1/projects/#{@project_id}/stories&quot;)
    response = Net::HTTP.start(resource_uri.host, resource_uri.port) do |http|
      http.post(resource_uri.path, story_xml, {&#039;Token&#039; =&gt; @token, &#039;Content-Type&#039; =&gt; &#039;application/xml&#039;})
    end
  end

  def update_story(story)
    story_xml = build_story_xml(story)
    resource_uri = URI.parse(&quot;http://www.pivotaltracker.com/services/v1/projects/#{@project_id}/stories/#{story[:id]}&quot;)
    response = Net::HTTP.start(resource_uri.host, resource_uri.port) do |http|
      http.put(resource_uri.path, story_xml, {&#039;Token&#039; =&gt; @token, &#039;Content-Type&#039; =&gt; &#039;application/xml&#039;})
    end
  end

  def delete_story(story_id)
    resource_uri = URI.parse(&quot;http://www.pivotaltracker.com/services/v1/projects/#{@project_id}/stories/#{story_id}&quot;)
    response = Net::HTTP.start(resource_uri.host, resource_uri.port) do |http|
      http.delete(resource_uri.path, {&#039;Token&#039; =&gt; @token})
    end
  end

  private

    def build_story_xml(story)
      story_xml = &quot;&lt;story&gt;&quot;
      story.each do |key, value|
        story_xml &lt;&lt; &quot;&lt;#{key}&gt;#{value.to_s}&lt;/#{key}&gt;&quot;
      end
      story_xml &lt;&lt; &quot;&lt;/story&gt;&quot;
    end
end
</pre>
<p><span id="more-97"></span></p>
<pre name="code" class="ruby">

require &#039;pivotal_tracker&#039;
require &#039;test/unit&#039;

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

def setup
@tracker = Tracker.new
end

def test_assert_stories_return
assert_equal 3, @tracker.stories.size
end

def test_assert_project_response
project = @tracker.project
assert_equal &quot;Factory Test&quot;, project[:name]
assert_equal &quot;1&quot;, project[:iteration_length]
end

def test_find_without_filters
result = @tracker.find
assert_equal @tracker.stories.size, result.size
end

def test_find_with_filters
result = @tracker.find :name =&gt; &#039;Create another one&#039;
assert_equal result[0][:name], &#039;Create another one&#039;
end

def test_assert_story_creation
current_size = @tracker.stories.size
story = {
:name =&gt; &#039;Create another one&#039;,
:story_type =&gt; &quot;feature&quot;,
:requested_by =&gt; &quot;Justin Smestad&quot;
}
@tracker.create_story(story)
assert_equal (current_size + 1), @tracker.stories.size
end

def test_story_updates
story = {
:id =&gt; 272626,
:name =&gt; &#039;This has changed&#039;
}
@tracker.update_story(story)
assert_equal @tracker.find_story(story[:id])[:name], story[:name]
end

def test_story_deletion
current_size = @tracker.stories.size
id = @tracker.stories[0][:id]
@tracker.delete_story(id)
assert_equal (current_size - 1), @tracker.stories.size
end

end
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.evalcode.com/2008/11/pivotal-tracker-api-ruby-wrapper/feed/</wfw:commentRss>
		</item>
		<item>
		<title>destroy_all with conditions</title>
		<link>http://www.evalcode.com/2008/11/destroy_all-with-conditions/</link>
		<comments>http://www.evalcode.com/2008/11/destroy_all-with-conditions/#comments</comments>
		<pubDate>Mon, 03 Nov 2008 17:43:19 +0000</pubDate>
		<dc:creator>Justin Smestad</dc:creator>
		
		<category><![CDATA[Development]]></category>

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

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

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

		<guid isPermaLink="false">http://www.evalcode.com/?p=95</guid>
		<description><![CDATA[In a has_many relationship, there should be a way to add conditions to destroy in order to eliminate an explicit find.


@post.comments.find(:all, :conditions =&#62; &#34;name LIKE &#039;stupid%&#039;&#34;).each {&#124;record&#124; record.destroy }

With a patch I recently submitted to Rails core, you can now trim this line into:


@post.comments.destroy_all &#34;name LIKE &#039;stupid%&#039;&#34;

Jump on over to Lighthouse bugtracker and try out [...]]]></description>
			<content:encoded><![CDATA[<p>In a has_many relationship, there should be a way to add conditions to destroy in order to eliminate an explicit find.</p>
<pre name="code" class="ruby">

@post.comments.find(:all, :conditions =&gt; &quot;name LIKE &#039;stupid%&#039;&quot;).each {|record| record.destroy }
</pre>
<p>With a patch I recently <a href="http://rails.lighthouseapp.com/projects/8994/tickets/1300-destroy_all-with-conditions-on-has_many-association">submitted</a> to Rails core, you can now trim this line into:</p>
<pre name="code" class="ruby">

@post.comments.destroy_all &quot;name LIKE &#039;stupid%&#039;&quot;
</pre>
<p>Jump on over to Lighthouse bugtracker and try out the <a href="http://rails.lighthouseapp.com/projects/8994/tickets/1300-destroy_all-with-conditions-on-has_many-association">patch</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evalcode.com/2008/11/destroy_all-with-conditions/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ruby&#8217;s and Rails&#8217; case gotcha when comparing classes</title>
		<link>http://www.evalcode.com/2008/10/rubys-and-rails-case-gotcha-when-comparing-classes/</link>
		<comments>http://www.evalcode.com/2008/10/rubys-and-rails-case-gotcha-when-comparing-classes/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 07:18:09 +0000</pubDate>
		<dc:creator>Justin Smestad</dc:creator>
		
		<category><![CDATA[Rails]]></category>

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

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

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

		<guid isPermaLink="false">http://www.evalcode.com/?p=88</guid>
		<description><![CDATA[While pairing yesterday I ran into quite an interesting problem when using the Ruby case statement. Now this should not come to a surprise because the case statement uses the === operator rather than the == operator (that is common in other languages). We were refactoring some code like this.


variable = group_class == Animal ? [...]]]></description>
			<content:encoded><![CDATA[<p>While pairing yesterday I ran into quite an interesting problem when using the Ruby case statement. Now this should not come to a surprise because the case statement uses the === operator rather than the == operator (that is common in other languages). We were refactoring some code like this.</p>
<pre name="code" class="ruby">

variable = group_class == Animal ? 8 : 2
</pre>
<p>initially this turned into</p>
<pre name="code" class="ruby">

if group_class == Animal
  variable = 8
elsif group_class == Water
  variable = 2
else
  variable = nil
end
</pre>
<p>This code was simply meant to check against class type since group_class is holding the type of this object. We decided to change this into a case statement as we could see more group_class types coming down the road in the next iteration.</p>
<pre name="code" class="ruby">

variable = case group_class
               when Animal: 3
               when Water: 8
               ....
</pre>
<p>So this code was assumingly supposed to work, however does not. Apparently the valid way of writing this class is to do:</p>
<pre name="code" class="ruby">

variable = case group_class.name
               when &quot;Animal&quot;: 3
               when &quot;Water&quot;: 8
               ....
</pre>
<p>Then this code works as designed. Tracking down the reason for this is ActiveRecord&#8217;s overloaded == and === operators.</p>
<pre name="code" class="ruby">

# File activerecord/lib/active_record/base.rb, line 1269
1269:       def ===(object)
1270:         object.is_a?(self)
1271:       end
-----
# File activerecord/lib/active_record/base.rb, line 2421
2421:       def ==(comparison_object)
2422:         comparison_object.equal?(self) ||
2423:           (comparison_object.instance_of?(self.class) &amp;&amp;
2424:             comparison_object.id == id &amp;&amp;
2425:             !comparison_object.new_record?)
2426:       end
</pre>
<p>Just a quirk I noticed. Enjoy <img src='http://www.evalcode.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.evalcode.com/2008/10/rubys-and-rails-case-gotcha-when-comparing-classes/feed/</wfw:commentRss>
		</item>
		<item>
		<title>TextMate reigns supreme with &#8216;Ack in Project&#8217;</title>
		<link>http://www.evalcode.com/2008/09/textmate-1-with-ack-in-project/</link>
		<comments>http://www.evalcode.com/2008/09/textmate-1-with-ack-in-project/#comments</comments>
		<pubDate>Mon, 29 Sep 2008 19:08:45 +0000</pubDate>
		<dc:creator>Justin Smestad</dc:creator>
		
		<category><![CDATA[Development]]></category>

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

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

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

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

		<guid isPermaLink="false">http://www.evalcode.com/?p=83</guid>
		<description><![CDATA[The one thing holding TextMate back from Ruby / Rails domination is its horribly slow search functionality. Using &#8216;Search in Project&#8217; will take what seems like an eternity to pop up any results. The only real attempt at solving this headache was to use &#8216;Grep in Project&#8217;, but it left a lot to be desired [...]]]></description>
			<content:encoded><![CDATA[<p>The one thing holding TextMate back from Ruby / Rails domination is its horribly slow search functionality. Using &#8216;Search in Project&#8217; will take what seems like an eternity to pop up any results. The only real attempt at solving this headache was to use &#8216;Grep in Project&#8217;, but it left a lot to be desired including search speed. Now comes the solution, &#8216;Ack in Project&#8217; was a project created on GitHub back in August to use the much more efficient Ack library for searching. With enhanced output, it has given other IDEs like NetBeans and IntelliJ a swift quick to the balls as to what is the best Ruby / Rails editor.</p>
<pre name="code" class="shell">

$ cd /Applications/TextMate.app/Contents/SharedSupport/Bundles/
$ sudo git clone git://github.com/protocool/ack-tmbundle.git Ack.tmbundle
</pre>
<p>Use Ack in Project with Cmd+Shift+A</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evalcode.com/2008/09/textmate-1-with-ack-in-project/feed/</wfw:commentRss>
		</item>
		<item>
		<title>2008090808_moving_to_denver.rb</title>
		<link>http://www.evalcode.com/2008/09/2008090808_moving_to_denverrb/</link>
		<comments>http://www.evalcode.com/2008/09/2008090808_moving_to_denverrb/#comments</comments>
		<pubDate>Mon, 08 Sep 2008 16:44:38 +0000</pubDate>
		<dc:creator>Justin Smestad</dc:creator>
		
		<category><![CDATA[Miscellaneous]]></category>

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

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

		<category><![CDATA[factory labs]]></category>

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

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

		<guid isPermaLink="false">http://www.evalcode.com/?p=81</guid>
		<description><![CDATA[The lack of posting was not done in vein. Over the past few weeks I have been interviewing with companies and finally settled on Factory Design Labs. This will be a nice move away from the Java world that I have been seemingly trapped inside for the past few months into a Rails position. Since [...]]]></description>
			<content:encoded><![CDATA[<p>The lack of posting was not done in vein. Over the past few weeks I have been interviewing with companies and finally settled on <a href="http://www.factorylabs.com">Factory Design Labs</a>. This will be a nice move away from the Java world that I have been seemingly trapped inside for the past few months into a Rails position. Since I am in Chicago and the new position is in Denver, that means its time to move and to what a better city! I am an avid fan of everything outdoors and living close to the elements. This post is just a status update for anyone contemplating removing my blog from RSS for lack of updates. I will begin posting regularly again after my first few days at Factory Labs on September 23.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evalcode.com/2008/09/2008090808_moving_to_denverrb/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Rubyme opens its doors.</title>
		<link>http://www.evalcode.com/2008/08/rubyme-opens-its-doors/</link>
		<comments>http://www.evalcode.com/2008/08/rubyme-opens-its-doors/#comments</comments>
		<pubDate>Wed, 20 Aug 2008 23:57:00 +0000</pubDate>
		<dc:creator>Justin Smestad</dc:creator>
		
		<category><![CDATA[Development]]></category>

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

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

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

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

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

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

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

		<guid isPermaLink="false">http://www.evalcode.com/?p=78</guid>
		<description><![CDATA[I have been working long hours getting this site up and running. The concept was initially drafted after some tutoring work I had done and the difficulty I had in coordinating everything. If you have not yet figured out, the site is called Rubyme (www.rubyme.net). The goal of the site is to provide an easy [...]]]></description>
			<content:encoded><![CDATA[<p>I have been working long hours getting this site up and running. The concept was initially drafted after some tutoring work I had done and the difficulty I had in coordinating everything. If you have not yet figured out, the site is called Rubyme (<a href="http://www.rubyme.net">www.rubyme.net</a>). The goal of the site is to provide an easy way for users to find help on anything from specific project difficulties to a more typical tutor style. Currently many of the features are still under heavy development, but the basic functionality is there. I encourage you to sign up and become a tutor. It is a great way to make some money, get exposure, and learn. There will be ongoing patches, so please report any problems to my email address: justin.smestad@gmail.com</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evalcode.com/2008/08/rubyme-opens-its-doors/feed/</wfw:commentRss>
		</item>
		<item>
		<title>mod_rails setup issues and solution</title>
		<link>http://www.evalcode.com/2008/08/mod_rails-setup-issues-and-solution/</link>
		<comments>http://www.evalcode.com/2008/08/mod_rails-setup-issues-and-solution/#comments</comments>
		<pubDate>Wed, 20 Aug 2008 05:51:23 +0000</pubDate>
		<dc:creator>Justin Smestad</dc:creator>
		
		<category><![CDATA[Rails]]></category>

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

		<category><![CDATA[.htaccess]]></category>

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

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

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

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

		<guid isPermaLink="false">http://www.evalcode.com/?p=75</guid>
		<description><![CDATA[So I was migrating my server over to Debian Lenny from Etch and ran into some interesting problems along the way. The first of which is related to an open ticket on the mod_rails issue tracker. The conflict appears to be with Wordpress permalinks, .htaccess and mod_rails. However, without my knowing when I installed mod_rails [...]]]></description>
			<content:encoded><![CDATA[<p>So I was migrating my server over to Debian Lenny from Etch and ran into some interesting problems along the way. The first of which is related to an <a href="http://code.google.com/p/phusion-passenger/issues/detail?id=104">open ticket</a> on the mod_rails issue tracker. The conflict appears to be with Wordpress permalinks, .htaccess and mod_rails. However, without my knowing when I installed mod_rails (a.k.a Passenger) via the script it disabled by rewrite module. So when I went back to check this blog, running wordpress, all the permalinks were broken. I had tried everything from setting &#8216;RailsAutoDetect off&#8217; and &#8216;RailsAllowModRewrite on&#8217;, however neither of these are even needed. I just had to issue the simple commands:</p>
<pre name="code" class="shell">
sudo a2enmod rewrite
sudo /etc/init.d/apache2 restart
</pre>
<p>After these two commands, you can stop pulling out your hair and begin shaking your fist at the sneaky passenger/mod_rails installer. Just goes to show that automated installers are not always the holy grail.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evalcode.com/2008/08/mod_rails-setup-issues-and-solution/feed/</wfw:commentRss>
		</item>
		<item>
		<title>rboard is one step closer to a reality</title>
		<link>http://www.evalcode.com/2008/08/rboard-is-one-step-closer-to-a-reality/</link>
		<comments>http://www.evalcode.com/2008/08/rboard-is-one-step-closer-to-a-reality/#comments</comments>
		<pubDate>Thu, 14 Aug 2008 19:28:13 +0000</pubDate>
		<dc:creator>Justin Smestad</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.evalcode.com/?p=70</guid>
		<description><![CDATA[Radar, a friend of mine in the Ruby community, has finally achieved success with his most recent project. He is working on implementing the &#8216;ideal forum application&#8217; for the folks over at Rails Forum. I was lucky enough to give him a hand for a small chunk of his code, topic moving! Figured it was [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://frozenplague.net/2008/08/13/moving-topics/">Radar</a>, a friend of mine in the Ruby community, has finally achieved success with his most recent project. He is working on implementing the &#8216;ideal forum application&#8217; for the folks over at <a href="http://www.railsforum.com">Rails Forum</a>. I was lucky enough to give him a hand for a small chunk of his code, topic moving! Figured it was blog worthy and if you want to see some intimidating code, <a href="http://github.com/Radar/rboard/tree/master">rboard</a> is as good as any!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.evalcode.com/2008/08/rboard-is-one-step-closer-to-a-reality/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
