<?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>41 technologies &#187; Rails</title>
	<atom:link href="http://techblog.41concepts.com/category/ruby/rails/feed/" rel="self" type="application/rss+xml" />
	<link>http://techblog.41concepts.com</link>
	<description>A software development blog from 41concepts</description>
	<lastBuildDate>Tue, 02 Mar 2010 22:02:37 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='techblog.41concepts.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/115e9c563372d21ea96bf82ba14a66db?s=96&#038;d=http://s2.wp.com/i/buttonw-com.png</url>
		<title>41 technologies &#187; Rails</title>
		<link>http://techblog.41concepts.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://techblog.41concepts.com/osd.xml" title="41 technologies" />
	<atom:link rel='hub' href='http://techblog.41concepts.com/?pushpress=hub'/>
		<item>
		<title>Keeping track of Rails Boot progress</title>
		<link>http://techblog.41concepts.com/2010/03/02/keeping-track-of-rails-boot-progress/</link>
		<comments>http://techblog.41concepts.com/2010/03/02/keeping-track-of-rails-boot-progress/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 21:59:10 +0000</pubDate>
		<dc:creator>mmc</dc:creator>
				<category><![CDATA[Rails]]></category>

		<guid isPermaLink="false">http://techblog.41concepts.com/?p=55</guid>
		<description><![CDATA[Ruby on Rails can take a long time to boot so in some cases it can be useful to provide some kind of progress reporting (f.x. if you are considering using Rails in an embedded application).
RoR does not provide any direct means to monitoring the progress of the boot-process, so a little work is necessary. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=techblog.41concepts.com&blog=1325376&post=55&subd=41tech&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p><a title="Rails" href="http://rubyonrails.org/">Ruby on Rails</a> can take a <strong>long</strong> time to boot so in some cases it can be useful to provide some kind of progress reporting (f.x. if you are considering using Rails in an embedded application).</p>
<p>RoR does not provide any direct means to monitoring the progress of the boot-process, so a little work is necessary. Changing the ruby source files involved in the boot process is not ideal from a maintenance standpoint and even if one does so, the progress report turns out to be very uneven. The best approach I could come up with was a Kernel hook which keeps track of when files are <em>require</em>&#8216;d. Both easy to do and works surprisingly well for fine-tuned progress reporting.</p>
<pre># Hook into require so that we can track startup progress
module Kernel
 alias org_untracked_require_myAppName require
 def require(file, *extras)
 v=org_untracked_require_myAppName(file, *extras)
 $progress_coordinator.addWorkDelta(1,'Rails required '+file.to_s)
  unless progress_coordinator.nil? || file.nil? || !v
 v
 end
end</pre>
<br />Filed under: <a href='http://techblog.41concepts.com/category/ruby/rails/'>Rails</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/41tech.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/41tech.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/41tech.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/41tech.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/41tech.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/41tech.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/41tech.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/41tech.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/41tech.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/41tech.wordpress.com/55/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=techblog.41concepts.com&blog=1325376&post=55&subd=41tech&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://techblog.41concepts.com/2010/03/02/keeping-track-of-rails-boot-progress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d5bb3e48385cef486d4d915f9713e49b?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">mmc</media:title>
		</media:content>
	</item>
		<item>
		<title>Translating models in ruby on rails</title>
		<link>http://techblog.41concepts.com/2009/07/03/translating-models-in-ruby-on-rails/</link>
		<comments>http://techblog.41concepts.com/2009/07/03/translating-models-in-ruby-on-rails/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 14:02:48 +0000</pubDate>
		<dc:creator>Rasmus</dc:creator>
				<category><![CDATA[Rails]]></category>
		<category><![CDATA[copenhagenrb]]></category>

		<guid isPermaLink="false">http://techblog.41concepts.com/?p=49</guid>
		<description><![CDATA[I had to translate a model in Ruby on Rails. The example (in: http://guides.rails.info/i18n.html#translations-for-active-record-models) was:
activerecord:
  models:
    user: Dude
  attributes:
    user:
      login: "Handle"
Well that didn&#8217;t work for me. My only difference was that my model name consisted of two words, so in my yml [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=techblog.41concepts.com&blog=1325376&post=49&subd=41tech&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>I had to translate a model in Ruby on Rails. The example (in: <a href="http://guides.rails.info/i18n.html#translations-for-active-record-models">http://guides.rails.info/i18n.html#translations-for-active-record-models</a>) was:</p>
<pre>activerecord:
  models:
    user: Dude
  attributes:
    user:
      login: "Handle"</pre>
<p>Well that didn&#8217;t work for me. My only difference was that my model name consisted of two words, so in my yml file I had the following:</p>
<pre>activerecord:
  models:
    email_template: Email template
  attributes:
    email_template:
      name: Name
      subject: Subject
      body: Body</pre>
<p>But this did not work in the &#8220;error_messages_for&#8221;. Well the attribute names did, but not the model name that remained untranslated.</p>
<p>After an hour of Googling I didn&#8217;t have any answers until I tried to ad a space instead of the &#8220;underscore&#8221; in the model name. THAT WORKED. So now my yaml file looks like the following. Notice the inconsistencies in the model name!</p>
<pre>activerecord:
  models:
    email template: Email template
  attributes:
    email_template:
    name: Name
    subject: Subject
    body: Body</pre>
<p>Looking at the source code for the helper method &#8220;error_messages_for&#8221; we find the thing bothering me here:</p>
<pre>          I18n.with_options :locale =&gt; options[:locale], :scope =&gt; [:activerecord, :errors, :template] do |locale|
            header_message = if options.include?(:header_message)
              options[:header_message]
            else
              object_name = options[:object_name].to_s.gsub('_', ' ')
              object_name = I18n.t(options[:object_name].to_s, :default =&gt; object_name, :scope =&gt; [:activerecord, :models], :count =&gt; 1)
              locale.t :header, :count =&gt; count, :model =&gt; object_name
            end</pre>
<p>(line 199 of active_record_helper.rb)</p>
<pre>object_name = options[:object_name].to_s.gsub('_', ' ')</pre>
<p>?!?! They are replacing the underscores instead of doing something like:</p>
<pre>eval(resource_name.classify).human_name</pre>
<p>Has someone else noticed this?! And what are your fixes?<br />
Currently I have to write the model name twice in my yaml files. This is not DRY. My file ended up looking like:</p>
<pre>  activerecord:
    models:
      # used by EmailTemplate.human_name
      email_template: "Email template"
      # used by error_messages_for (go figure?!?)
      email template: "Email template"
    attributes:
      email_template:
        name: Name
        subject: Subject
        body: Body</pre>
<br />Posted in Rails  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/41tech.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/41tech.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/41tech.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/41tech.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/41tech.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/41tech.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/41tech.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/41tech.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/41tech.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/41tech.wordpress.com/49/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=techblog.41concepts.com&blog=1325376&post=49&subd=41tech&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://techblog.41concepts.com/2009/07/03/translating-models-in-ruby-on-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ee17bd3edd1c0a865a3302c1de2f2e79?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">Rasmus</media:title>
		</media:content>
	</item>
		<item>
		<title>Installing gems on passenger rails site</title>
		<link>http://techblog.41concepts.com/2009/02/04/installing-gems-on-passenger-rails-site/</link>
		<comments>http://techblog.41concepts.com/2009/02/04/installing-gems-on-passenger-rails-site/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 18:52:51 +0000</pubDate>
		<dc:creator>Rasmus</dc:creator>
				<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[copenhagenrb]]></category>

		<guid isPermaLink="false">http://techblog.41concepts.com/?p=34</guid>
		<description><![CDATA[I just created a new server running a rails app using the wonderful Passenger plugin. 
After I&#8217;d install all the gems needed, I still got errors like :
&#8220;no such file to load &#8212; RMagick (MissingSourceFile)&#8221;
I tried doing a:
require &#8216;RMagick&#8217;
in both IRB and the console and here it loaded fine. Then I suddenly remembered the last time [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=techblog.41concepts.com&blog=1325376&post=34&subd=41tech&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>I just created a new server running a rails app using the wonderful <a href="http://www.modrails.com/">Passenger plugin</a>. </p>
<p>After I&#8217;d install all the gems needed, I still got errors like :<br />
&#8220;no such file to load &#8212; RMagick (MissingSourceFile)&#8221;</p>
<p>I tried doing a:<br />
require &#8216;RMagick&#8217;</p>
<p>in both IRB and the console and here it loaded fine. Then I suddenly remembered the last time I installed a server (I quickly forget silly errors since it&#8217;s so easy to just google them), so I thought I&#8217;d post the solution here if I ever forgot it again.</p>
<p>The problem is that I&#8217;m also using the <a href="http://www.rubyenterpriseedition.com/">Ruby Enterprise Edition</a> and all the gems had been installed to the &#8220;old&#8221; Ruby version. Not the Enterprise Edition. So installing the gems using the gem binary that lies under the Ruby Enterprise Edition fixed the error:</p>
<p>sudo /opt/ruby-enterprise-1.8.6-20090113/bin/gem install rmagick</p>
<div>(remember to update to the correct version)</div>
<div>Won&#8217;t forget that again.</div>
<br />Posted in Rails, Ruby, Uncategorized  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/41tech.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/41tech.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/41tech.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/41tech.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/41tech.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/41tech.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/41tech.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/41tech.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/41tech.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/41tech.wordpress.com/34/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=techblog.41concepts.com&blog=1325376&post=34&subd=41tech&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://techblog.41concepts.com/2009/02/04/installing-gems-on-passenger-rails-site/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ee17bd3edd1c0a865a3302c1de2f2e79?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">Rasmus</media:title>
		</media:content>
	</item>
		<item>
		<title>Building a Ruby on Rails application in a week</title>
		<link>http://techblog.41concepts.com/2008/06/09/building-a-ruby-on-rails-application-in-a-week/</link>
		<comments>http://techblog.41concepts.com/2008/06/09/building-a-ruby-on-rails-application-in-a-week/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 21:05:51 +0000</pubDate>
		<dc:creator>Rasmus</dc:creator>
				<category><![CDATA[Design & Architecture]]></category>
		<category><![CDATA[MyWalkthroughs]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[copenhagenrb]]></category>

		<guid isPermaLink="false">http://41tech.wordpress.com/?p=26</guid>
		<description><![CDATA[This post will (and perhaps some followups) describe how I did a web application in a week using the web framework Ruby on Rails

My company 41concepts is currently developing a rather large application using Ruby on Rails and during this I had a week where I had to wait for something being delivered by another [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=techblog.41concepts.com&blog=1325376&post=26&subd=41tech&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>This post will (and perhaps some followups) describe how I did a web application in a week using the web framework <a title="Ruby on Rails" href="http://www.rubyonrails.com/">Ruby on Rails<br />
</a></p>
<p>My company <a title="41concepts" href="http://www.41concepts.com">41concepts</a> is currently developing a rather large application using Ruby on Rails and during this I had a week where I had to wait for something being delivered by another developer. The application wasn&#8217;t really supposed to grow this large, but the feature list just seemed to grow the more we developed.</p>
<p>Because I had this week, I wanted to try to make a small Ruby on Rails application implementing an idea I&#8217;ve had for some time now.</p>
<p>I really like my Playstation 3 and if you ask my girlfriend this is also a bit too much sometimes. I generally like adventure and roleplaying games such as the <a title="Final Fantasy series" href="http://en.wikipedia.org/wiki/Final_Fantasy">Final Fantasy</a> series and because I hate wasting my time, I usually follow a game walkthrough.</p>
<p>With this application I really wanted to give something back to the game walkthrough community, so I decided to create the site/application &#8220;<a title="My Walkthroughs" href="http://www.mywalkthroughs.com/">My Walkthroughs</a>&#8220;. The main idea is to let users of the site create their game walkthroughs and then share them in different format such as pdf, plain text and html. The idea comes from the fact that almost all walkthroughs are being done in plain ASCII text.</p>
<p>So the application should enable users to build a walkthrough through a web interface and publish it in various formats.</p>
<p>Ok&#8230; I had a week for this, so what did I do?</p>
<h2><strong>Planning </strong></h2>
<p><strong></strong>Well.. I must admit I went straight to implementation. This was a small site and really just a pet project.</p>
<h2>Implementation</h2>
<h3>Design</h3>
<p>I&#8217;m not really a Photoshop shark (I don&#8217;t even have Photoshop), so I found a free template:<br />
<a href="http://www.opensourcetemplates.org/templates/preview/1303028527/"> http://www.opensourcetemplates.org/templates/preview/1303028527/</a></p>
<p>For icons I used the FamFamFam silk icon set that is simply astonishing:<br />
<a href="http://www.famfamfam.com/"> http://www.famfamfam.com/</a></p>
<p>Finally I decided that I wanted some kind of Logo, so I invested in one from Logo Samurai:<br />
<a href="http://www.logosamurai.com/">http://www.logosamurai.com/</a></p>
<p>Cool css scalable buttons:<br />
<a href="http://monc.se/kitchen/stew/buttons/btn.html"> http://monc.se/kitchen/stew/buttons/btn.html</a></p>
<p>Took the confirmation boxes from:<br />
<a href="http://www.templamatic.com/blog.asp?BlogID=18"> http://www.templamatic.com/blog.asp?BlogID=18</a></p>
<p>Got the cool form hints from here<br />
<a href="http://www.askthecssguy.com/2007/03/form_field_hints_with_css_and.html">http://www.askthecssguy.com/2007/03/form_field_hints_with_css_and.html</a></p>
<h3>Code</h3>
<p>I used a lot of different plug-ins and gems. The fastest code to implement, is code you don&#8217;t write <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . They are listed below:</p>
<h4>Plug-ins</h4>
<p><a title="acts_as_bookmarkable" href="http://www.juixe.com/techknow/index.php/2006/07/05/acts-as-bookmarkable-plugin/"><em>acts_as_bookmarkable</em></a><br />
Suddenly I thought it would be a great idea if the user could bookmark other user&#8217;s walkthroughs</p>
<p><a title="acts_as_commentable" href="http://www.juixe.com/techknow/index.php/2006/06/18/acts-as-commentable-plugin/"><em>acts_as_commentable</em></a><br />
Of course users should be able to comment each others walkthroughs, it wouldn&#8217;t quite get the web 2.0 feel without <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><em>acts_as_list (<a href="http://noobonrails.blogspot.com/2007/02/actsaslist-makes-lists-drop-dead-easy.html">tutorial</a>)</em><br />
This is used for lists that should be sortable</p>
<p><a title="acts_as_rated" href="http://devblog.famundo.com/articles/2007/02/04/a-new-rails-plugin-acts_as_rated"><em>acts_as_rated</em></a><br />
This was added late, it turned out really nice with <a href="http://www.komodomedia.com/blog/2007/01/css-star-rating-redux/">this tutorial</a>, adding nice css/ajax support. Also note that all the averages are calculated when the entity is saved and not at render time</p>
<p><em><a title="attachment_fu" href="http://svn.techno-weenie.net/projects/plugins/attachment_fu/">attachment_fu</a> (<a href="http://clarkware.com/cgi/blosxom/2007/02/24">tutorial</a>)</em><br />
This is used for all uploads and thumbnail generation. It works perfectly together with <a title="Amazon S3" href="http://aws.amazon.com/s3">Amazon S3</a></p>
<p><a title="auto_complete" href="http://agilewebdevelopment.com/plugins/auto_complete"><em>auto_complete</em></a><br />
Used for completing the game&#8217;s name when creating a new walkthrough</p>
<p><em><a title="restful_authentication" href="http://svn.techno-weenie.net/projects/plugins/restful_authentication/">restful_authentication</a> (<a href="http://agilewebdevelopment.com/plugins/restful_authentication">basic use</a>, <a href="http://railscasts.com/episodes/67">great screencast</a>)</em><br />
The standard on authentication</p>
<p><a title="simple_captcha" href="http://expressica.com/simple_captcha"><em>simple_captcha</em></a><br />
Used for registrations and other places where spam bots like to date</p>
<p><a title="synch_s3_asset_host" href="http://spattendesign.com/2007/11/6/synching-your-amazon-s3-asset-host-using-capistrano"><em>synch_s3_asset_host</em></a><br />
This was used in the Capistrano recipe for synchronizing the public folder with the <a title="Amazon S3" href="http://aws.amazon.com/s3">Amazon S3</a> asset hosts</p>
<h4>Gems</h4>
<p style="text-align:left;"><a title="htmldoc" href="http://htmldoc.rubyforge.org/"><em>htmldoc</em></a> <em>(<a href="http://rorblog.techcfl.com/2007/11/20/easy-pdf-generation-with-ruby-rails-and-htmldoc/">tutorial</a>)<br />
</em> I had to modify it though, when certain PDFs was generated, the gem reported false as return value but left nothing in the error collection. After some investigation I found out there was a bug in how the result from the command-line was parsed and changed line 186 from &#8220;case line&#8221; to &#8220;case line.strip&#8221; since there was some \r characters that the code didn&#8217;t quite expect. I&#8217;m not sure if this is only applicable to me, but now it works</p>
<p><a title="mini_magick" href="http://rubyforge.org/projects/mini-magick/"><em>mini_magick</em></a><br />
Image manipulation for use with the attachment_fu plugin. This is not as heavy as the full rmagick since it uses the commandline. I wanted to use this with the simple_captcha plugin as well, but it can only modify existing images, not create new ones.</p>
<p><a title="rmagick" href="http://rmagick.rubyforge.org/"><em>rmagick</em></a><br />
Image manipulation for use with the simple_captcha plugin</p>
<p><a title="aws-s3" href="http://amazon.rubyforge.org/"><em>aws-s3</em></a><br />
Provides a nice api for <a title="Amazon S3" href="http://aws.amazon.com/s3">Amazon S3</a></p>
<p><a title="uuidtools" href="http://sporkmonger.com/projects/uuidtools/"><em>uuidtools</em></a><br />
Used for generating GUIDs. Notice that it couldn&#8217;t find the MAC address on my virtual server at <a href="https://manage.slicehost.com/customers/new?referrer=370782885">Slicehost,</a> so I had to manually give it a MAC address</p>
<p><a title="will_paginate" href="http://github.com/mislav/will_paginate/wikis"><em>will_paginate</em></a><br />
Great for pagination. If you want to use ajax paging &#8211; something we use in another application &#8211; <a href="http://www.railsontherun.com/2007/9/27/ajax-pagination-in-less-than-5-minutes">this works perfectly</a></p>
<p><a href="http://www.railsontherun.com/2007/9/27/ajax-pagination-in-less-than-5-minutes"></a>In total the model folder in the application consists of 11 models, 3 observers and 2 mailers. A small and simple app <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>The application use REST and search engine optimized urls everywhere which was something I really wanted from the start. Take e.g. the url for a walkthrough:</p>
<p>/walkthroughs/123456-resident_evil_5_ps3/summary</p>
<p>On this page the user gets a summary of the walkthrough and can download the walkthrough in three different formats using the URLs:</p>
<p>/walkthroughs/123456-resident_evil_5_ps3 <em>(no extension =&gt; html)</em><br />
/walkthroughs/123456-resident_evil_5_ps3.txt <em>(plain text &#8211; ascii)</em><br />
/walkthroughs/123456-resident_evil_5_ps3.pdf <em>(well&#8230; pdf <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</em></p>
<p>The code looks at the last edited time of the walkthrough and generates a new one if needed. The output is placed on Amazon S3 and the user is redirected to this. It would be a bit nicer if the application streamed the file from S3 and then directly on to the user, but in order to save server resources, the user is redirected directly to the S3 url (which is currently not that nice).</p>
<h2>Deployment</h2>
<p>We are currently trying to do deployment on <a title="Amazon EC2" href="http://aws.amazon.com/ec2">Amazon EC2</a> for our larger application, but with this one I really wanted to try out the new <a title="Passenger (mod_rails)" href="http://www.modrails.com/">Passenger (mod_rails)</a> Apache plugin, since it promised real easy rails deployment.</p>
<p>So I bought a slice over at <a title="Slicehost hosting" href="https://manage.slicehost.com/customers/new?referrer=370782885">Slicehost</a> and pretty much <a href="http://www.railsgarden.com/2008/04/12/configurating-passenger-mod_rails-on-slicehost-with-ubuntu-710/">followed this tutorial to the letter.</a> It worked like a charm.</p>
<p>After this I set up Capistrano according to Slicehost&#8217;s own <a href="http://articles.slicehost.com/capistrano">Capistrano documentation</a>.</p>
<p>I also signed up for the <a title="Amazon S3" href="http://aws.amazon.com/s3">Amazon S3</a> storage service for the walkthrough pdf and txt files, as well as the user avatars (from <a href="http://svn.techno-weenie.net/projects/plugins/attachment_fu/">attachment_fu</a> plugin). Furthermore I used the <a href="http://spattendesign.com/2007/11/6/synching-your-amazon-s3-asset-host-using-capistrano">synch_s3_asset_host</a> to synch the public folders with asset hosts in <a title="Amazon S3" href="http://aws.amazon.com/s3">Amazon S3</a> during the capistrano deployment.</p>
<p>For tracking I added the site to our <a href="http://www.google.com/analytics/">Google Analytics</a> account.</p>
<h2>Aftermatch</h2>
<p><strong></strong>Well, I must admit that not everything was actually done in this one week. The following was added after week one:</p>
<ul>
<li>The domain name (I forgot to start this process in the beginning of the week, and it takes a couple of days to process)</li>
<li>The logo from LogoSamurai took some days with revisions and all</li>
<li>The bookmarking functionality</li>
<li>The asset hosts in the capistrano recipe</li>
<li>Forgot password functionality (don&#8217;t know why this slipped in the first place)</li>
<li>Some minor bugfixes to the pdf and plain text rendering (I will probably keep improving this)</li>
<li>Caching (this is something I will need to monitor as the site gets traffic)</li>
<li>I normally write alot of tests, I must admit that I could do better with this app <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>I&#8217;ll probably optimize some database indexes along the way</li>
<li>A nicer system admin area using <a href="http://activescaffold.com/">Active Scaffold</a> or similiar</li>
</ul>
<h2>Price</h2>
<p><strong></strong>So what did all this cost me!?</p>
<ul>
<li>Hosting @ <a href="https://manage.slicehost.com/customers/new?referrer=370782885">Slicehost</a> $20 a month first bill was $60</li>
<li>Logo (<a href="http://www.logosamurai.com/">LogoSamurai</a> 3 designs unlimited revisions) $147</li>
<li>A bunch of great rails plugins &#8211; FREE (thanks&#8230;)</li>
</ul>
<p><strong>$207 and one week of work</strong> (plus some follow up described above).</p>
<p>Now I only need to get some users on the site (the hard part). I might write a bit about the bootstrapping process later.</p>
<p>So go to <a title="My Walkthroughs" href="http://www.mywalkthroughs.com/">http://www.mywalkthroughs.com</a> and give it a spin.</p>
<p><em>Man I love rails&#8230;</em></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/41tech.wordpress.com/26/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/41tech.wordpress.com/26/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/41tech.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/41tech.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/41tech.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/41tech.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/41tech.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/41tech.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/41tech.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/41tech.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/41tech.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/41tech.wordpress.com/26/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=techblog.41concepts.com&blog=1325376&post=26&subd=41tech&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://techblog.41concepts.com/2008/06/09/building-a-ruby-on-rails-application-in-a-week/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ee17bd3edd1c0a865a3302c1de2f2e79?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">Rasmus</media:title>
		</media:content>
	</item>
		<item>
		<title>Introducing Railscheck &#8211; A Q/A verification tool for Ruby On Rails</title>
		<link>http://techblog.41concepts.com/2008/04/15/introducing-railscheck-a-qa-verification-tool-for-ruby-on-rails/</link>
		<comments>http://techblog.41concepts.com/2008/04/15/introducing-railscheck-a-qa-verification-tool-for-ruby-on-rails/#comments</comments>
		<pubDate>Tue, 15 Apr 2008 13:21:33 +0000</pubDate>
		<dc:creator>mmc</dc:creator>
				<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[copenhagenrb]]></category>

		<guid isPermaLink="false">http://41tech.wordpress.com/?p=24</guid>
		<description><![CDATA[The problem
It is a law of software development that the earlier one identifies a problem the cheaper (and less embarrassing) it is to fix. Hence, we developers strive to identify errors early on our own development machines aided by sound development methodologies, tools, and tests (at best automated).
A particular quality assurance challenge with dynamic technologies [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=techblog.41concepts.com&blog=1325376&post=24&subd=41tech&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p><strong>The problem</strong></p>
<p>It is a law of software development that the earlier one identifies a problem the cheaper (and less embarrassing) it is to fix. Hence, we developers strive to identify errors early on our own development machines aided by sound development methodologies, tools, and tests (at best automated).</p>
<p>A particular quality assurance challenge with dynamic technologies like <a href="http://www.ruby-lang.org">Ruby</a>/<a href="http://www.rubyonrails.com/">Rails</a>, <a href="http://en.wikipedia.org/wiki/JavaScript">Javascript</a> or view templates like <a href="http://en.wikipedia.org/wiki/ERuby">ERB</a> is that you have no compiler that checks for <a href="http://en.wikipedia.org/wiki/Syntax_error">syntax errors</a> in advance. So you have to have 100% <a href="http://en.wikipedia.org/wiki/Code_coverage">test coverage</a> (which is often too expensive to be realistic) in order to be assured that even simple syntax errors does not occur.</p>
<p>Furthermore in the case of <a href="http://www.rubyonrails.com/">Ruby On Rails</a>, which is of heavily opinionated nature, there are many <a href="http://itsignals.cascadia.com.au/?p=7">conventions</a> that can be broken by mistakes, which may introduce errors that do no show up initially. This introduces additional testing/debugging work for the programmers (in particular for newcomers to RoR).</p>
<p>Happily Ruby On Rails is so productive a web technology that it more then compensates for these difficulties but even though would it not be nice with  some automated tool to help out a bit?</p>
<p>Unfortunately, your typical Ruby development tools does not provide <strong>any</strong> kind of static verification checks since the problem appears to be just about unsolvable in the general case (because of the dynamic nature of Ruby).</p>
<p>But what about the smaller problem of static verification checks for Ruby On Rails projects only? The RoR domain is much smaller and highly standardized so what is impossible for the entire domain of Ruby programs should be partly possible in Ruby On Rails!</p>
<p><strong>Railcheck</strong></p>
<p>So inspired by <a href="http://en.wikipedia.org/wiki/Lint_%28software%29">LINT</a> , the power of Ruby <a href="http://en.wikipedia.org/wiki/Metaprogramming">meta-programming</a> and various RoR testing snippets on the web, I wrote this initial beta release of <a href="http://railscheck.rubyforge.org/">Railcheck</a> which is a semi-static verifier for your Ruby on Rails projects.</p>
<p>Delivered as a free Ruby <a href="http://docs.rubygems.org/">gem</a> the <a href="http://railscheck.rubyforge.org/">Railscheck</a> project provides a shell command task &#8220;<strong>railscheck</strong>&#8221; that you can run against your Rails projects to test  for a number of typical bugs and inconsistencies. See the project site and linked readme file at <a href="http://railscheck.rubyforge.org/">railscheck.rubyforge.org</a> for details about how to install and run the tool and much more.</p>
<p><a href="http://railscheck.rubyforge.org/">Railscheck</a> is a working beta. The gem works and is useful but has a limited feature set. Much more to come. Use the <a href="http://rubyforge.org/tracker/?group_id=5709">rubyforge tracker</a> function on the <a href="http://railscheck.rubyforge.org/">Railscheck website</a> to suggest features that you would like to be added (or bugs to fix). You are also very welcome to add code/tests to the project, which is open source. Indeed the project is now open to new contributing members.</p>
<p><strong>Update:</strong></p>
<p>Updated the gem with improved contributor documentation, an explicit gem dependency and a fix for a typing error in railscheck.rb file.  Try again if you had problems.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/41tech.wordpress.com/24/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/41tech.wordpress.com/24/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/41tech.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/41tech.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/41tech.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/41tech.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/41tech.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/41tech.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/41tech.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/41tech.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/41tech.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/41tech.wordpress.com/24/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=techblog.41concepts.com&blog=1325376&post=24&subd=41tech&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://techblog.41concepts.com/2008/04/15/introducing-railscheck-a-qa-verification-tool-for-ruby-on-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d5bb3e48385cef486d4d915f9713e49b?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">mmc</media:title>
		</media:content>
	</item>
		<item>
		<title>Rails and file uploads</title>
		<link>http://techblog.41concepts.com/2008/04/10/rails-and-file-uploads/</link>
		<comments>http://techblog.41concepts.com/2008/04/10/rails-and-file-uploads/#comments</comments>
		<pubDate>Thu, 10 Apr 2008 06:04:52 +0000</pubDate>
		<dc:creator>Rasmus</dc:creator>
				<category><![CDATA[Rails]]></category>

		<guid isPermaLink="false">http://41tech.wordpress.com/?p=23</guid>
		<description><![CDATA[While there certainly are several good file upload plugins for Ruby on Rails. It is actually somewhat hard to find any good tutorials on how to do it yourself. I just wanted to post to great links that helped me figure the whole thing out  
http://blog.vixiom.com/2006/07/26/rails-stringio-file-upload/
http://manuals.rubyonrails.com/read/chapter/78
(Now I also know where to look when I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=techblog.41concepts.com&blog=1325376&post=23&subd=41tech&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>While there certainly are several good <a href="http://jacqueschirag.wordpress.com/2007/06/28/ruby-on-rails-file-upload-plug-ins/">file upload plugins for Ruby on Rails</a>. It is actually somewhat hard to find any good tutorials on how to do it yourself. I just wanted to post to great links that helped me figure the whole thing out <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://blog.vixiom.com/2006/07/26/rails-stringio-file-upload/">http://blog.vixiom.com/2006/07/26/rails-stringio-file-upload/</a></p>
<p><a href="http://manuals.rubyonrails.com/read/chapter/78">http://manuals.rubyonrails.com/read/chapter/78</a></p>
<p>(Now I also know where to look when I have to work with file uploads in the future)</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/41tech.wordpress.com/23/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/41tech.wordpress.com/23/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/41tech.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/41tech.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/41tech.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/41tech.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/41tech.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/41tech.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/41tech.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/41tech.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/41tech.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/41tech.wordpress.com/23/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=techblog.41concepts.com&blog=1325376&post=23&subd=41tech&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://techblog.41concepts.com/2008/04/10/rails-and-file-uploads/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ee17bd3edd1c0a865a3302c1de2f2e79?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">Rasmus</media:title>
		</media:content>
	</item>
		<item>
		<title>Ruby Fools conference in Copenhagen</title>
		<link>http://techblog.41concepts.com/2008/04/03/ruby-fools-conference-in-copenhagen/</link>
		<comments>http://techblog.41concepts.com/2008/04/03/ruby-fools-conference-in-copenhagen/#comments</comments>
		<pubDate>Thu, 03 Apr 2008 07:53:38 +0000</pubDate>
		<dc:creator>Rasmus</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[copenhagenrb]]></category>

		<guid isPermaLink="false">http://41tech.wordpress.com/?p=22</guid>
		<description><![CDATA[So we went to the Ruby Fools conference here in Copenhagen and this post kind of sums up my experience of the different speakers. The conference went over two days and had three tracks. I primarily focused on the Advanced Rails stuff. I&#8217;ll probably update this post once you can download the presentation slides (and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=techblog.41concepts.com&blog=1325376&post=22&subd=41tech&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>So we went to the <a href="http://jaoo.dk/ruby-cph/conference/">Ruby Fools conference</a> here in Copenhagen and this post kind of sums up my experience of the different speakers. The conference went over two days and had three tracks. I primarily focused on the Advanced Rails stuff. I&#8217;ll probably update this post once you can download the presentation slides (and video).</p>
<p><b>Tuesday</b>:</p>
<p><i>Dave Thomas explained in his opening keynote</i> why he is a Ruby Fool <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . He&#8217;s gave a great performance about his passion for Ruby and went on to compare the sudden rush of developers coming to the platform with Rails to &#8220;golddiggers and prostitutes&#8221; (before Ruby was this nice little settlement, and suddenly everyone wanted to join). That of course hit pretty much 80% of the people sitting in on the keynote. Great stuff <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> .</p>
<p><i>REST: A pragmatic introduction to the Web&#8217;s architecture  by Stefan Tilkov</i>. While REST is not that new to us, and the speak therefore didn&#8217;t provide much to us, Stefan was great to talk with and I threw a few ideas on him about some of our challenges with REST (like, what do you do when you&#8217;re implementing a dashboard with some functionality also found in other places of the system &#8211; expect a new blog post on this).</p>
<p><i>Tuning the Rails stack by James Cox.</i> Since tuning involves turning alot of knobs al over, this is not an exact science, but he did give som nice pointers on e.g. MySQL tuning and also told a few scary stories on applications that didn&#8217;t scale. On a side note, he had the coolest presentation slides (well, not really slides, I think he said it was a flash movie <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</p>
<p><i>Advanced Ruby on Rails security by Heiko Webers</i>. I&#8217;m having my doubts on what to write here. Let me first say that the content of the presentation was great and very &#8220;german&#8221;. It was &#8220;Do this/Don&#8217;t do this&#8221;. Great stuff. No room for interpretation and once the slides are downloadable I&#8217;ll probably run through every slide while looking on our own TBA application <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Unfortunately Heiko wasn&#8217;t the great presenter and while the slides was clear, he pretty much just read them out loud, but was in trouble whenever he had to explain something that wasn&#8217;t on them.</p>
<p><i>Meta-meta programming by Nic Williams</i> &#8211; man I love this guy.</p>
<p>1) The presentation was close to useless when looking at the use cases where this can be applied.<br />
2) The subject was VERY technical</p>
<p>And yet&#8230; This was perhaps one of the greatest presentations due to the amount of humor and general relaxed style of Nic. Basically everyone knows meta programming, so meta-meta programming was the meta programming of meta programming. The easiest explained example in rails terms is a generator that generates generators (as I said&#8230; Not the most common use case <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</p>
<p><i>Party keynote by Evan Phoenix</i>. A couple of sponsors had provided food and beverages so of course there was a &#8220;party keynote&#8221; (Dave Thomas wanted to swap keynote with Evan <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ). While I have a great respect for Evan, the keynote was close to &#8220;not relevant at all&#8221; to me. He basically explained how he does project management on the open source project <a href="http://rubini.us/">Rubinius</a>. I&#8217;ve haven&#8217;t been in a open source project before, but what he presented was pretty much &#8220;be nice and positive to people&#8221;. There was some debate about the policy on the project that once you committed your first patch you get full commit access to the project. While it certainly works for him, I&#8217;m still having my doubts.</p>
<p><b>Wednesday</b></p>
<p><i>Keynote: Ruby: Past, Present and Future by Yukihiro &#8220;Matz&#8221; Matsumoto</i>. This whas great to here it from the creator himself. There weren&#8217;t many surprises about Ruby it self, but it was great to hear about what his thoughts was on other languages and why he then went on to create Ruby. The future part was a bit cutted off because he spent a little too long bitching about character encoding (UTF-8,16,32). It was clearly something that he&#8217;s spent a lot of time on with the 1.9 release.</p>
<p><i>Versioning your data model by Ole Friis Østergaard</i>. The presentation explained 4-5 different plugins that had something to do with versioning (also an undo redo plugin that actually looks rather nice) &#8211; including his own new plugin Subversive. I kind of noted that this was actually one of the first presentations that actually showed &#8220;real live code&#8221;.</p>
<p><i>Adding full text search to your Rails application by Jørgen Erichsen</i>. We&#8217;re currently also implementing the search enginge <a href="http://lucene.apache.org/solr/">Solr</a> into our own application so this presentation was a must see. While Jørgen went through the basics of the search engine and the <a href="http://acts-as-solr.rubyforge.org/">acts_as_solr</a> plugin (as well as Ferret and also briefly mentioned a couple of other solutions), he didn&#8217;t seem that knowledgeable about the subject when getting to stuff outside the basic behavior of the product.</p>
<p><i>The dark art of developing plugins by James Adam</i>. This was great. James presentation was very pedagogical buildig a plugin step by step explaining every bit of the way. While plugin development aren&#8217;t that difficult to grap, it certainly put one or two thing in place for me. I&#8217;m looking forwards to his slides so I can wrap our authorization for our application up in a plugin.</p>
<p>After this I unfortunely had to leave because of another engangement. So I missed one speaker as well as the ending panel discussion.</p>
<p>Overall the conference was well planned and executed. You could perhaps argue that it is limited what you will learn in one hour presentations, but I could just have attended the workshops leading up to the conference. As a last note&#8230; The track introductions seemed a bit off = 30 minutes break &#8211; 15 minutes track introduction &#8211; 15 minutes break (though Glenn Vanderburg was quite good.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/41tech.wordpress.com/22/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/41tech.wordpress.com/22/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/41tech.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/41tech.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/41tech.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/41tech.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/41tech.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/41tech.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/41tech.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/41tech.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/41tech.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/41tech.wordpress.com/22/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=techblog.41concepts.com&blog=1325376&post=22&subd=41tech&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://techblog.41concepts.com/2008/04/03/ruby-fools-conference-in-copenhagen/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ee17bd3edd1c0a865a3302c1de2f2e79?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">Rasmus</media:title>
		</media:content>
	</item>
		<item>
		<title>Using ExtJS tree on rails with the prototype adapter</title>
		<link>http://techblog.41concepts.com/2008/02/22/using-extjs-tree-on-rails-with-the-prototype-adapter/</link>
		<comments>http://techblog.41concepts.com/2008/02/22/using-extjs-tree-on-rails-with-the-prototype-adapter/#comments</comments>
		<pubDate>Fri, 22 Feb 2008 08:26:31 +0000</pubDate>
		<dc:creator>Rasmus</dc:creator>
				<category><![CDATA[Rails]]></category>
		<category><![CDATA[extjs]]></category>
		<category><![CDATA[prototype]]></category>

		<guid isPermaLink="false">http://41tech.wordpress.com/?p=19</guid>
		<description><![CDATA[UPDATE: Notice that the new version of ExtJS is now on Prototype 1.6, yeah&#8230;
So I&#8217;m doing a folder tree using the ExtJS javascript with the prototype library adapter. I&#8217;m pretty much doing this.
This was somewhat working. Every third or forth browser refresh the tree didn&#8217;t load any nodes. Very odd indeed. I debugged my way [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=techblog.41concepts.com&blog=1325376&post=19&subd=41tech&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>UPDATE: Notice that the new version of ExtJS is now on Prototype 1.6, yeah&#8230;</p>
<p>So I&#8217;m doing a folder tree using the ExtJS javascript with the prototype library adapter. I&#8217;m pretty much doing <a href="http://inside.glnetworks.de/2008/01/26/howto-use-the-ext-js-treeview-exttree-with-ruby-on-rails/">this</a>.</p>
<p>This was somewhat working. Every third or forth browser refresh the tree didn&#8217;t load any nodes. Very odd indeed. I debugged my way through using <a href="http://www.getfirebug.com/">Firebug</a>, but when this was on, it worked everytime. Since Firebug slows down the entire javascript environment I concluded that the error occured when something (or loading) happened too fast.</p>
<p>In the ext-all-debug.js (version 2.0.1) I tracked the error down to line  23754. The json result being evaluated is undefined (notice that this only happens some of the time). So&#8230; after hours of head scratching and putting alerts in both the prototype library and ExtJS library to see what was wrong, it hit me&#8230;</p>
<p>The version ExtJS I have, come bundled with prototype 1.5.0 while rails 2.0.2 comes with prototype 1.6.0.1. In my layout I simply included &lt;%= javascript_include_tag :defaults %&gt;, but after I changed this to:</p>
<p>&lt;%= javascript_include_tag &#8220;application.js&#8221; %&gt;<br />
&lt;%= javascript_include_tag &#8220;ext/adapter/prototype/prototype.js&#8221; %&gt;<br />
&lt;%= javascript_include_tag &#8220;ext/adapter/prototype/effects.js&#8221; %&gt;</p>
<p>Everything seemed to work. Now my only problem is that I now use Rails 2.0.2 with an old version of prototype. So can I use all the rails helpers?!?</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/41tech.wordpress.com/19/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/41tech.wordpress.com/19/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/41tech.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/41tech.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/41tech.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/41tech.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/41tech.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/41tech.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/41tech.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/41tech.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/41tech.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/41tech.wordpress.com/19/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=techblog.41concepts.com&blog=1325376&post=19&subd=41tech&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://techblog.41concepts.com/2008/02/22/using-extjs-tree-on-rails-with-the-prototype-adapter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ee17bd3edd1c0a865a3302c1de2f2e79?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">Rasmus</media:title>
		</media:content>
	</item>
		<item>
		<title>Installing Mephisto (multi site) on DreamHost</title>
		<link>http://techblog.41concepts.com/2008/01/07/installing-mephisto-multi-site-on-dreamhost/</link>
		<comments>http://techblog.41concepts.com/2008/01/07/installing-mephisto-multi-site-on-dreamhost/#comments</comments>
		<pubDate>Mon, 07 Jan 2008 13:46:46 +0000</pubDate>
		<dc:creator>Rasmus</dc:creator>
				<category><![CDATA[Rails]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://techblog.41concepts.com/2008/01/07/installing-mephisto-multi-site-on-dreamhost/</guid>
		<description><![CDATA[The title might be a bit off, since I&#8217;m not providing you with a step by step guide. This post do however sum up my notes during the install.
I started by following excellent guide:
Mephisto and Dreamhost
After looking at several guides, this one was really the easiest to follow.
Now Mephisto was installed and I wanted to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=techblog.41concepts.com&blog=1325376&post=18&subd=41tech&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>The title might be a bit off, since I&#8217;m not providing you with a step by step guide. This post do however sum up my notes during the install.</p>
<p>I started by following excellent guide:<br />
<a href="http://mede.us/2006/12/1/mephisto-and-dreamhost" title="Mephisto and Dreamhost">Mephisto and Dreamhost</a></p>
<p>After looking at several guides, this one was really the easiest to follow.</p>
<p>Now Mephisto was installed and I wanted to add multiple sites support and I followed the guide:<br />
<a href="http://www.mslater.com/2007/6/1/setting-up-mephisto-for-multiple-sites#comment-form" title="Setting up Mephisto for multiple sites">Setting up Mephisto for multiple sites</a></p>
<p>I did everything but couldn&#8217;t figure out why the site still used the site root (/public) as cache location. Well silly me. As it turned out I had to restart the fcgi process (something that I really thought I&#8217;ve already done). So&#8230; Remember to do a:</p>
<pre>touch public/dispatch*</pre>
<p>from the application root folder.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/41tech.wordpress.com/18/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/41tech.wordpress.com/18/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/41tech.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/41tech.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/41tech.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/41tech.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/41tech.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/41tech.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/41tech.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/41tech.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/41tech.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/41tech.wordpress.com/18/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=techblog.41concepts.com&blog=1325376&post=18&subd=41tech&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://techblog.41concepts.com/2008/01/07/installing-mephisto-multi-site-on-dreamhost/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ee17bd3edd1c0a865a3302c1de2f2e79?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">Rasmus</media:title>
		</media:content>
	</item>
		<item>
		<title>Installing RadRails and getting error &#8220;Requested operation cannot be performed because it would invalidate the current configuration. See details for more information.&#8221;</title>
		<link>http://techblog.41concepts.com/2008/01/02/installing-radrails-and-get-error-requested-operation-cannot-be-performed-because-it-would-invalidate-the-current-configuration-see-details-for-more-information/</link>
		<comments>http://techblog.41concepts.com/2008/01/02/installing-radrails-and-get-error-requested-operation-cannot-be-performed-because-it-would-invalidate-the-current-configuration-see-details-for-more-information/#comments</comments>
		<pubDate>Wed, 02 Jan 2008 21:54:26 +0000</pubDate>
		<dc:creator>Rasmus</dc:creator>
				<category><![CDATA[Rails]]></category>

		<guid isPermaLink="false">http://techblog.41concepts.com/2008/01/02/installing-radrails-and-get-error-requested-operation-cannot-be-performed-because-it-would-invalidate-the-current-configuration-see-details-for-more-information/</guid>
		<description><![CDATA[Up until now, I&#8217;ve been using TextMate to create my Ruby on Rails code, but I&#8217;ve been missing stuff like autocompletion (I know, a bit more difficult when using dynamic languages, but I really miss it because I also do alot of C# development in Visual Studio).
So.. I decided to try out RadRails that is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=techblog.41concepts.com&blog=1325376&post=17&subd=41tech&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Up until now, I&#8217;ve been using TextMate to create my Ruby on Rails code, but I&#8217;ve been missing stuff like autocompletion (I know, a bit more difficult when using dynamic languages, but I really miss it because I also do alot of C# development in Visual Studio).</p>
<p>So.. I decided to try out RadRails that is now named <a href="http://www.aptana.com/" title="Aptana Studio">Aptana Studio</a> and the Rails development package  installed as a plugin.</p>
<p>After the download and the installation I then tried to install the Rails plugin, but got this strange error:</p>
<p>&#8220;Requested operation cannot be performed because it would invalidate the current configuration. See details for more information.&#8221; and &#8220;<span class="postbody">   Subclipse Mylar Integration (1.0.1) requires plug-in org.eclipse.mylar.tasks.core (0.9.2)&#8221;, or later version.&#8221;</span></p>
<p>After some searching I found the answer <a href="http://support.aptana.com/issues/browse/ROR-156">here</a>. All you have to do is to un-select the Mylar integration. Although this might be a simple operation for experienced users of Aptana Studio, I was a bit puzzled about this. As someone who just wanted to try out the Rails environment (and I guess I&#8217;m not the only one), this seemed like an unnecessary complex installation (at the time I didn&#8217;t even now what Mylar was  &#8211; now <a href="http://www.eclipse.org/mylyn/" title="Mylyn">Mylyn</a>)</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/41tech.wordpress.com/17/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/41tech.wordpress.com/17/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/41tech.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/41tech.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/41tech.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/41tech.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/41tech.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/41tech.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/41tech.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/41tech.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/41tech.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/41tech.wordpress.com/17/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=techblog.41concepts.com&blog=1325376&post=17&subd=41tech&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://techblog.41concepts.com/2008/01/02/installing-radrails-and-get-error-requested-operation-cannot-be-performed-because-it-would-invalidate-the-current-configuration-see-details-for-more-information/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ee17bd3edd1c0a865a3302c1de2f2e79?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">Rasmus</media:title>
		</media:content>
	</item>
	</channel>
</rss>