<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-10888113</id><updated>2011-12-14T21:43:38.889-05:00</updated><title type='text'>rubyTrials</title><subtitle type='html'>A way to keep track of breakthroughs I've made in Ruby and Ruby on Rails.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://rubytrials.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10888113/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://rubytrials.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>w3bsmith</name><uri>http://www.blogger.com/profile/11926018172574808162</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_0E7VfmWnacw/S6P4ddYsbCI/AAAAAAAABEA/ykPc8KntcYo/S220/Photo+on+2010-03-19+at+10.49.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-10888113.post-116088942812667010</id><published>2006-10-15T01:10:00.000-04:00</published><updated>2006-10-15T01:17:08.233-04:00</updated><title type='text'>Free</title><content type='html'>&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt; &lt;a href="http://www.flickr.com/photos/obedientmuse/120520520/" title="photo sharing"&gt;&lt;img src="http://static.flickr.com/51/120520520_0df38987b9_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt; &lt;br /&gt; &lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;  &lt;a href="http://www.flickr.com/photos/obedientmuse/120520520/"&gt;Free&lt;/a&gt;  &lt;br /&gt;  Originally uploaded by &lt;a href="http://www.flickr.com/people/obedientmuse/"&gt;ObedientMuse&lt;/a&gt;. &lt;/span&gt;&lt;/div&gt;You shall be free indeed when your days are not without a care nor your nights without a want and a grief,... - Kahlil Gibran&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10888113-116088942812667010?l=rubytrials.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubytrials.blogspot.com/feeds/116088942812667010/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10888113&amp;postID=116088942812667010' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10888113/posts/default/116088942812667010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10888113/posts/default/116088942812667010'/><link rel='alternate' type='text/html' href='http://rubytrials.blogspot.com/2006/10/free.html' title='Free'/><author><name>w3bsmith</name><uri>http://www.blogger.com/profile/11926018172574808162</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_0E7VfmWnacw/S6P4ddYsbCI/AAAAAAAABEA/ykPc8KntcYo/S220/Photo+on+2010-03-19+at+10.49.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10888113.post-115764372013682870</id><published>2006-09-07T11:40:00.000-04:00</published><updated>2006-09-07T11:42:00.153-04:00</updated><title type='text'>substruct</title><content type='html'>I've recently discovered &lt;a href="http://dev.subimage.com/projects/substruct"&gt;substruct&lt;/a&gt;. Just wanted to announce that I will be using it as the base for several new projects.&lt;br /&gt;&lt;br /&gt;Try it out: &lt;a href="http://dev.subimage.com/projects/substruct"&gt;http://dev.subimage.com/projects/substruct&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10888113-115764372013682870?l=rubytrials.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubytrials.blogspot.com/feeds/115764372013682870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10888113&amp;postID=115764372013682870' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10888113/posts/default/115764372013682870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10888113/posts/default/115764372013682870'/><link rel='alternate' type='text/html' href='http://rubytrials.blogspot.com/2006/09/substruct.html' title='substruct'/><author><name>w3bsmith</name><uri>http://www.blogger.com/profile/11926018172574808162</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_0E7VfmWnacw/S6P4ddYsbCI/AAAAAAAABEA/ykPc8KntcYo/S220/Photo+on+2010-03-19+at+10.49.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10888113.post-115350514489508535</id><published>2006-07-21T14:02:00.000-04:00</published><updated>2006-07-21T14:05:44.906-04:00</updated><title type='text'>check box tag</title><content type='html'>Here's a quicky when dealing with the check_box_tag.&lt;br /&gt;&lt;br /&gt;syntax:&lt;br /&gt;&lt;i&gt;check_box_tag name, value, checked&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;code:&lt;br /&gt;&amp;lt;%= check_box_tag :is_hourly, 1, :checked %&amp;gt;&lt;br /&gt;&lt;br /&gt;outputs:&lt;br /&gt;&amp;lt;input checked="checked" id="is_hourly" name="is_hourly" type="checkbox" value="1" /&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10888113-115350514489508535?l=rubytrials.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubytrials.blogspot.com/feeds/115350514489508535/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10888113&amp;postID=115350514489508535' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10888113/posts/default/115350514489508535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10888113/posts/default/115350514489508535'/><link rel='alternate' type='text/html' href='http://rubytrials.blogspot.com/2006/07/check-box-tag.html' title='check box tag'/><author><name>w3bsmith</name><uri>http://www.blogger.com/profile/11926018172574808162</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_0E7VfmWnacw/S6P4ddYsbCI/AAAAAAAABEA/ykPc8KntcYo/S220/Photo+on+2010-03-19+at+10.49.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10888113.post-114761146642858435</id><published>2006-05-14T08:49:00.000-04:00</published><updated>2006-05-14T09:17:52.076-04:00</updated><title type='text'>conditional layouts</title><content type='html'>I don't know about you, but I always make a admin tool for all my rails projects. Being generally lazy I don't like making new controllers just for the admin, but I do make a different layout. How then to get the controller to display the right layout based on which layout the response came from?&lt;br /&gt;&lt;br /&gt;I found the easiest way was to pass a&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;:layout =&gt; "admin"&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;parameter in the routes for each action I wanted to apply the admin layout to. That's what routes are for right?&lt;br /&gt;&lt;br /&gt;Anyways, to make this magic happen it takes code in two separate spots.&lt;br /&gt;&lt;br /&gt;* In the controller in question do:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;layout :get_layout&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;* In the application.rb (controller) do:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;private&lt;br /&gt;  def get_layout&lt;br /&gt;    if params[:layout]&lt;br /&gt;      return params[:layout]&lt;br /&gt;    else&lt;br /&gt;      return "application"&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;In fact if you need this for all controllers just throw the &lt;br /&gt;&lt;pre&gt;&lt;br /&gt;layout :get_layout&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;right in the application.rb too. I love inheritance! Don't you?&lt;br /&gt;&lt;br /&gt;Now you have the ability to do conditional layouts to your hearts content!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10888113-114761146642858435?l=rubytrials.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubytrials.blogspot.com/feeds/114761146642858435/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10888113&amp;postID=114761146642858435' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10888113/posts/default/114761146642858435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10888113/posts/default/114761146642858435'/><link rel='alternate' type='text/html' href='http://rubytrials.blogspot.com/2006/05/conditional-layouts.html' title='conditional layouts'/><author><name>w3bsmith</name><uri>http://www.blogger.com/profile/11926018172574808162</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_0E7VfmWnacw/S6P4ddYsbCI/AAAAAAAABEA/ykPc8KntcYo/S220/Photo+on+2010-03-19+at+10.49.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10888113.post-114641736410444234</id><published>2006-04-30T12:46:00.000-04:00</published><updated>2006-04-30T13:16:04.120-04:00</updated><title type='text'>rails // migrations or migrains?</title><content type='html'>Tired of using mysql clients? Click ... id, click ... int, click ... 11, (client crash!!) and so on? Why not just do all of your db creation, modification, and removal using ruby in one simple file?&lt;br /&gt;&lt;br /&gt;That's what migrations are for. Here's a quick step through* on how to get migrations working in rails for the first timer:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Open terminal&lt;/li&gt;&lt;li&gt;Go to your rails project directory&lt;/li&gt;&lt;li&gt;script/generate migration migration_name&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Open up your friendly editor (hint: textmate) and edit the db/migrate/001_migration_name.rb file: if you are using Text Mate you can simply type "mate db/migrate/001_migration_name.rb" to pull it up.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;In the migration file you can do cool things like creating tables, removing tables, adding columns, and the like. We're going to create a new table.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;class InitDbTables &lt; ActiveRecord::Migration&lt;br /&gt;  def self.up&lt;br /&gt;    create_table :blogs do |table|&lt;br /&gt;      table.column :title, :string&lt;br /&gt;      table.column :description, :text&lt;br /&gt;      table.column :user_rating, :integer, :default =&gt; 0&lt;br /&gt;      table.column :active, :boolean, :default =&gt; true&lt;br /&gt;      table.column :created_by, :integer&lt;br /&gt;      table.column :created_on, :datetime&lt;br /&gt;      table.column :updated_on, :datetime&lt;br /&gt;    end&lt;br /&gt;&lt;br /&gt;  def self.down&lt;br /&gt;    drop_table :blogs&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Great! Now what? Well now we want to create an actual database:&lt;br /&gt;&lt;br /&gt;In terminal: mysql -u username -p -e "create database blog;"&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Now just edit your database.yml to reflect the proper database, password, et cetera.&lt;br /&gt;&lt;br /&gt;Next edit config/environment.rb and change this line (on line 39 for most basic installs):&lt;br /&gt;&lt;br /&gt;  # config.active_record.schema_format = :ruby&lt;br /&gt;&lt;br /&gt;To this&lt;br /&gt;&lt;br /&gt;  config.active_record.schema_format = :ruby&lt;br /&gt;&lt;br /&gt;Finally, back at the terminal again, type: rake migration&lt;br /&gt;Watch the magic unfold...&lt;br /&gt;&lt;br /&gt;If you don't like what it did you can always undo it. Just go back to your friendly terminal and type: rake migration VERSION=0&lt;br /&gt;&lt;br /&gt;This allows for proper versioning. You can rake migration to any version you have. Anytime you need to add to your db or table, or remove for that matter, just make another migration. Eventually you'll find your self becoming more proficient with your db design and you'll find less versioning needed. But until that day, try this and throw your sql clients in the trash where they belong.&lt;br /&gt;&lt;br /&gt;Hack away!&lt;br /&gt;&lt;br /&gt;*This assumes that you are using OS X. If you are using windows simple replace terminal with command prompt.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10888113-114641736410444234?l=rubytrials.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubytrials.blogspot.com/feeds/114641736410444234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10888113&amp;postID=114641736410444234' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10888113/posts/default/114641736410444234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10888113/posts/default/114641736410444234'/><link rel='alternate' type='text/html' href='http://rubytrials.blogspot.com/2006/04/rails-migrations-or-migrains.html' title='rails // migrations or migrains?'/><author><name>w3bsmith</name><uri>http://www.blogger.com/profile/11926018172574808162</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_0E7VfmWnacw/S6P4ddYsbCI/AAAAAAAABEA/ykPc8KntcYo/S220/Photo+on+2010-03-19+at+10.49.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10888113.post-114291448261853689</id><published>2006-03-20T23:00:00.000-05:00</published><updated>2006-03-20T23:14:42.633-05:00</updated><title type='text'>ruby on rails // current_page?</title><content type='html'>I recently ran into a situation where I needed to know what the current page was in order to apply the proper css class in a view in &lt;a href="http://rubyonrails.com/"&gt;rails&lt;/a&gt;. [That's a long sentence ;)] Anyways it turns out to be cake. Snippet:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;ul&gt;&lt;br /&gt;&amp;lt;% unless current_page? :action =&gt; "index" %&gt;&lt;br /&gt; &amp;lt;li&gt;&lt;%= link_to "Home", {:action =&gt; "index"} %&gt;&amp;lt;/li&gt;&lt;br /&gt;&amp;lt;% else %&gt;&lt;br /&gt; &amp;lt;li class="tab_menu_active"&gt;Home&amp;lt;/li&gt;&lt;br /&gt;&amp;lt;% end %&gt;&lt;br /&gt;&amp;lt;/ul&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Also, in case anyone wondered, this is code from a &lt;a href="http://somerandomdude.net/projects/webdev/divless/"&gt;divless&lt;/a&gt;/&lt;a href="http://www.w3.org/2002/03/csslayout-howto"&gt;table&lt;/a&gt;&lt;a href="http://alistapart.com/articles/journey/"&gt;less&lt;/a&gt; layout. I do all of my sites this way now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10888113-114291448261853689?l=rubytrials.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubytrials.blogspot.com/feeds/114291448261853689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10888113&amp;postID=114291448261853689' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10888113/posts/default/114291448261853689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10888113/posts/default/114291448261853689'/><link rel='alternate' type='text/html' href='http://rubytrials.blogspot.com/2006/03/ruby-on-rails-currentpage.html' title='ruby on rails // current_page?'/><author><name>w3bsmith</name><uri>http://www.blogger.com/profile/11926018172574808162</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_0E7VfmWnacw/S6P4ddYsbCI/AAAAAAAABEA/ykPc8KntcYo/S220/Photo+on+2010-03-19+at+10.49.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10888113.post-113417088016545705</id><published>2005-12-09T18:25:00.000-05:00</published><updated>2005-12-09T18:28:00.176-05:00</updated><title type='text'>If Short Circuit Reminder</title><content type='html'>Here's a often forgotten shortcut for simple if's:&lt;br /&gt;&lt;pre&gt;variable=condition ? value_if_true : value_if_not_true&lt;/pre&gt;&lt;br /&gt;Very useful for quick things in &lt;a href="http://rubyonrails.com/"&gt;Rails&lt;/a&gt; controllers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10888113-113417088016545705?l=rubytrials.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubytrials.blogspot.com/feeds/113417088016545705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10888113&amp;postID=113417088016545705' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10888113/posts/default/113417088016545705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10888113/posts/default/113417088016545705'/><link rel='alternate' type='text/html' href='http://rubytrials.blogspot.com/2005/12/if-short-circuit-reminder.html' title='If Short Circuit Reminder'/><author><name>w3bsmith</name><uri>http://www.blogger.com/profile/11926018172574808162</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_0E7VfmWnacw/S6P4ddYsbCI/AAAAAAAABEA/ykPc8KntcYo/S220/Photo+on+2010-03-19+at+10.49.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10888113.post-113416958530072180</id><published>2005-12-09T17:51:00.000-05:00</published><updated>2005-12-09T18:09:24.926-05:00</updated><title type='text'>Scaffolding Fallout</title><content type='html'>Here's a &lt;a href="http://www.slash7.com/articles/2005/12/07/the-fall-from-scaffolding"&gt;great article&lt;/a&gt; about the abuse and final sadness of counting on scaffolding for your Rails work. I'm so glad to be past that stage. Luckily I came to Rails after doing my own Ruby work: in-fact I was &lt;a href="http://rubytrials.blogspot.com/2005/02/premature-end-of-script-headers.html"&gt;starting to create my own web framework&lt;/a&gt; before finding Rails as some of you know. Read the article. It's very good.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10888113-113416958530072180?l=rubytrials.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubytrials.blogspot.com/feeds/113416958530072180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10888113&amp;postID=113416958530072180' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10888113/posts/default/113416958530072180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10888113/posts/default/113416958530072180'/><link rel='alternate' type='text/html' href='http://rubytrials.blogspot.com/2005/12/scaffolding-fallout.html' title='Scaffolding Fallout'/><author><name>w3bsmith</name><uri>http://www.blogger.com/profile/11926018172574808162</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_0E7VfmWnacw/S6P4ddYsbCI/AAAAAAAABEA/ykPc8KntcYo/S220/Photo+on+2010-03-19+at+10.49.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10888113.post-113390330731038969</id><published>2005-12-06T16:04:00.000-05:00</published><updated>2006-03-20T22:59:53.360-05:00</updated><title type='text'>mysql/ruby woes</title><content type='html'>After pulling my hair for a few weeks I found an answer to mysql/ruby binding woes. (&lt;a href="http://weblog.rubyonrails.com/articles/2005/10/30/get-10-15-more-performance-with-mysql-rails"&gt;article src&lt;/a&gt;):&lt;br /&gt;&lt;br /&gt;[Ruby Trials Editor Note: I originally left a link out to the source of the rest of this article, so here's  the link: &lt;a href="http://hivelogic.com/articles/2005/12/01/ruby_rails_lighttpd_mysql_tiger"&gt;another article source&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;What follows are updated instructions for manually building and installing Ruby, Ruby on Rails, MySQL, and LightTPD on Mac OS X 10.4 (Tiger).&lt;br /&gt;&lt;br /&gt;Compiling and installing these tools this way is well worth the effort, as the end result delivers an easy-to-upgrade, system-independent, stand-alone development platform that is impervious to potential problems that can be caused by system updates, operating system upgrades, etc. These issues and additional background information about why one might roll their own tools in this fashion is detailed in the article, Using /usr/local/, which could be considered a prerequisite for this task.&lt;br /&gt;&lt;br /&gt;The Concept&lt;br /&gt;Basically, what we’re going to do here is download a bunch of open-source tools (some of which rely upon each other to work), configure them, compile them, and install them, one by one, until we have everything we need for a Mac OS X machine to run pretty much any Ruby on Rails application.&lt;br /&gt;&lt;br /&gt;What’s Needed&lt;br /&gt;A few things are needed to get this going:&lt;br /&gt;&lt;br /&gt;Mac OS X 10.4 (Tiger)&lt;br /&gt;Xcode 2.0 or newer (ideally 2.1)&lt;br /&gt;Willingness to type commands into the Terminal application exactly as they appear here&lt;br /&gt;A tasty beverage to enjoy while things compile&lt;br /&gt;A Quick Warning&lt;br /&gt;While it’s unlikely anything we do here might do any kind of damage to the system, it’s good advice to have a current backup of everything, just in case. The Narrator doesn’t take any responsibility for anything that results from following these instructions. We’re following these instructions at our own risk.&lt;br /&gt;&lt;br /&gt;Setting Up&lt;br /&gt;Open the Terminal application. It can be found in the /Applications/Utilities folder.&lt;br /&gt;&lt;br /&gt;Each of the lines below appearing in monospaced type should be entered into Terminal, and be followed by the Return key. But everybody knew that already.&lt;br /&gt;&lt;br /&gt;Create a folder to contain all of the downloaded files and their respective build folders. For these examples, we’ll create a folder called src in the root of our home folder, and change directories into that folder. It will be our workspace:&lt;br /&gt;&lt;br /&gt;mkdir src&lt;br /&gt;cd src&lt;br /&gt;It doesn’t really matter where this folder actually lives. We’ve created it in the home folder, but it could be on the Desktop, or in /usr/local/src for example. All operations should take place there.&lt;br /&gt;&lt;br /&gt;You’ll download and compile everything from right here.&lt;br /&gt;&lt;br /&gt;Paths&lt;br /&gt;We need to make sure that our path is set to look for files in /usr/local (also the place where we’ll be installing the tools) before looking anywhere else.&lt;br /&gt;&lt;br /&gt;To see if the path has been set properly, we can check the contents of the .bash_login file—a special, hidden file in the root of our home folder—for a PATH line using a text editor. TextMate, TextWrangler, BBEdit, and vi are all perfectly good options. To open the file with TextMate, for example, we can type:&lt;br /&gt;&lt;br /&gt;mate ~/.bash_login&lt;br /&gt;This will open the file if it already exists, or open a blank file if it doesn’t. In either case, add the following line at the very end of the file:&lt;br /&gt;&lt;br /&gt;export PATH="/usr/local/bin:/usr/local/sbin:$PATH" &lt;br /&gt;Now save and close the file.&lt;br /&gt;&lt;br /&gt;To make sure the changes are picked up correctly, we now need to execute the file with the following command:&lt;br /&gt;&lt;br /&gt;. ~/.bash_login&lt;br /&gt;It’s likely there will be no response from the shell here, just the prompt, but that’s OK, the changes have been picked up and we’re ready to move on.&lt;br /&gt;&lt;br /&gt;Ruby&lt;br /&gt;We’re ready to start the process. Just type (or cut and paste) each one of the following lines into Terminal, one by one. When one line finishes (some will take a while and dump a lot of information to the screen), enter the next one.&lt;br /&gt;&lt;br /&gt;The first time we run the sudo command, and possible again later, we may be prompted for a password. We’ll just enter our own password here, and the process will continue.&lt;br /&gt;&lt;br /&gt;We’ll start by installing Readline, a prerequisite for Ruby on OS X systems:&lt;br /&gt;&lt;br /&gt;curl -O ftp://ftp.gnu.org/gnu/readline/readline-5.0.tar.gz&lt;br /&gt;tar xzvf readline-5.0.tar.gz&lt;br /&gt;cd readline-5.0&lt;br /&gt;./configure --prefix=/usr/local&lt;br /&gt;sed -e 's/-dynamic/-dynamiclib/' shlib/Makefile &gt; shlib/Makefile.new&lt;br /&gt;mv shlib/Makefile.new shlib/Makefile&lt;br /&gt;make&lt;br /&gt;sudo make install&lt;br /&gt;cd ..&lt;br /&gt;Next up, we’ll download and install Ruby itself:&lt;br /&gt;&lt;br /&gt;curl -O ftp://ftp.ruby-lang.org/pub/ruby/ruby-1.8.2.tar.gz&lt;br /&gt;tar xzvf ruby-1.8.2.tar.gz &lt;br /&gt;cd ruby-1.8.2&lt;br /&gt;./configure --prefix=/usr/local --with-readline-dir=/usr/local&lt;br /&gt;make&lt;br /&gt;sudo make install&lt;br /&gt;cd ..&lt;br /&gt;RubyGems&lt;br /&gt;RubyGems is a handy command-line tool for managing the installation of Ruby packages, like Rails.&lt;br /&gt;&lt;br /&gt;curl -O http://rubyforge.org/frs/download.php/3700/rubygems-0.8.10.tgz&lt;br /&gt;tar xzvf rubygems-0.8.10.tgz&lt;br /&gt;cd rubygems-0.8.10&lt;br /&gt;sudo /usr/local/bin/ruby setup.rb&lt;br /&gt;cd ..&lt;br /&gt;Ruby on Rails&lt;br /&gt;With RubyGems installed, Rails is a simple, one-line install:&lt;br /&gt;&lt;br /&gt;sudo gem install rails --include-dependencies&lt;br /&gt;It’s possible that we may see an “RDoc failure” error here. The error is actually nothing to worry about. Just re-run the command above, or don’t. Things should be fine either way. Really.&lt;br /&gt;&lt;br /&gt;FastCGI&lt;br /&gt;FastCGI is an extension to CGI (Ruby on Rails is essentially a collection of CGI scripts) that provides high performance without the limitations of server specific APIs. Don’t worry if that doesn’t make perfect sense. Just so long as it’s installed on the system:&lt;br /&gt;&lt;br /&gt;curl -O http://www.fastcgi.com/dist/fcgi-2.4.0.tar.gz&lt;br /&gt;tar xzvf fcgi-2.4.0.tar.gz&lt;br /&gt;cd fcgi-2.4.0&lt;br /&gt;./configure --prefix=/usr/local&lt;br /&gt;make&lt;br /&gt;sudo make install&lt;br /&gt;cd ..&lt;br /&gt;We’ll also need to add the Ruby-FastCGI bindings&lt;br /&gt;&lt;br /&gt;curl -O http://sugi.nemui.org/pub/ruby/fcgi/ruby-fcgi-0.8.6.tar.gz&lt;br /&gt;tar xzvf ruby-fcgi-0.8.6.tar.gz&lt;br /&gt;cd ruby-fcgi-0.8.6&lt;br /&gt;/usr/local/bin/ruby install.rb config --prefix=/usr/local&lt;br /&gt;/usr/local/bin/ruby install.rb setup&lt;br /&gt;sudo /usr/local/bin/ruby install.rb install&lt;br /&gt;cd ..&lt;br /&gt;We’re almost done with FastCGI. We just need the Ruby-FCGI Gem—another nice one-line installation:&lt;br /&gt;&lt;br /&gt;sudo gem install fcgi&lt;br /&gt;LightTPD&lt;br /&gt;LightTPD is an open-source webserver designed with security, speed, compliance, and flexibility in mind. It’s great for serving up Rails applications, and Rails 0.14 and newer is already setup to use it if it’s on the system.&lt;br /&gt;&lt;br /&gt;But before we can compile it, we need to build its prerequisite, the PCRE library, a set of functions that implement regular expression pattern matching using the same syntax and semantics as Perl 5:&lt;br /&gt;&lt;br /&gt;curl -O ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-6.4.tar.gz&lt;br /&gt;tar xzvf pcre-6.4.tar.gz&lt;br /&gt;cd pcre-6.4&lt;br /&gt;./configure --prefix=/usr/local&lt;br /&gt;make&lt;br /&gt;sudo make install&lt;br /&gt;cd ..&lt;br /&gt;With PCRE installed, we’re ready to move on to LightTPD:&lt;br /&gt;&lt;br /&gt;curl -O http://lighttpd.net/download/lighttpd-1.4.8.tar.gz&lt;br /&gt;tar xzvf lighttpd-1.4.8.tar.gz&lt;br /&gt;cd lighttpd-1.4.8&lt;br /&gt;./configure --prefix=/usr/local --with-pcre=/usr/local&lt;br /&gt;make&lt;br /&gt;sudo make install&lt;br /&gt;cd ..&lt;br /&gt;MySQL&lt;br /&gt;While it’s possible to compile and install MySQL ourselves, using the OS X MySQL package is actually advantageous. Not only is the install much faster and easier, but the package includes a handy startup item and a preference panel, and the binary is tuned by the MySQL team for OS X.&lt;br /&gt;&lt;br /&gt;Even better, the package installs MySQL right into the /usr/local/ folder, just like it should.&lt;br /&gt;&lt;br /&gt;The install still requires a few steps:&lt;br /&gt;&lt;br /&gt;Download the MySQL 4.1 package for OS X&lt;br /&gt;Double-click the drive image to mount it&lt;br /&gt;Locate the MySQL installer (a file named mysql-standard-4.1.15-apple-darwin8.2.0-powerpc.pkg) and run it, authenticating as needed&lt;br /&gt;Double-click MySQLStartupItem.pkg, authenticate, and let it install&lt;br /&gt;Double-click MySQL.prefPane and install it, deciding whether to make it available to just the current user, or for all system users&lt;br /&gt;Once the install is complete, start the MySQL server using the newly-installed control panel.&lt;br /&gt;&lt;br /&gt;Note: MySQL installs with a default user of root which has no password. Please read this page about MySQL usernames and passwords and set a good one.&lt;br /&gt;&lt;br /&gt;MySQL Native Bindings (Optional)&lt;br /&gt;This step is an optional one, but the performance gains seem to make it worth the extra step. Thanks to RubyGems, it’s another one-line install:&lt;br /&gt;&lt;br /&gt;sudo gem install mysql -- --with-mysql-dir=/usr/local/mysql&lt;br /&gt;&lt;br /&gt;[Ruby Trials Editor Note: I had to type: &lt;b&gt;sudo gem install mysql -- --include=/usr/local/lib --with-mysql-dir=/usr/local/mysql&lt;/b&gt; ]&lt;br /&gt;&lt;br /&gt;We’re Done&lt;br /&gt;Phew! It’s over. We now have a properly located installation of Ruby, Ruby on Rails, MySQL, and LightTPD.&lt;br /&gt;&lt;br /&gt;So … what’s the hold-up? Start writing those Web 2.0 applications already!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10888113-113390330731038969?l=rubytrials.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubytrials.blogspot.com/feeds/113390330731038969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10888113&amp;postID=113390330731038969' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10888113/posts/default/113390330731038969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10888113/posts/default/113390330731038969'/><link rel='alternate' type='text/html' href='http://rubytrials.blogspot.com/2005/12/mysqlruby-woes.html' title='mysql/ruby woes'/><author><name>w3bsmith</name><uri>http://www.blogger.com/profile/11926018172574808162</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_0E7VfmWnacw/S6P4ddYsbCI/AAAAAAAABEA/ykPc8KntcYo/S220/Photo+on+2010-03-19+at+10.49.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10888113.post-113132985639093077</id><published>2005-11-06T21:09:00.000-05:00</published><updated>2005-11-06T21:17:36.403-05:00</updated><title type='text'>Old news ... New news ... Good news?</title><content type='html'>For anyone who's keeping track of this blog, a few changes are about to happen.&lt;br /&gt;&lt;br /&gt;First of all, I've been using rails solidly for all my web projects for the last 4-5 months; but who isn't anymore: old news.&lt;br /&gt;&lt;br /&gt;Secondly, I now have a crew of 5 (6 including me) working full time. Most of them have been trained in Ruby and Rails since coming into the shop; a few of them never programming in their life past html before. The non-programmers learned in a month, the programmers in days. Ruby is just that good!&lt;br /&gt;&lt;br /&gt;Third, we are starting a mmorpg using ruby, and are:&lt;br /&gt;&lt;br /&gt;* Looking to hire telecommuters to help us with our rails projects&lt;br /&gt;* Gaining investment to complete the 16 month game project we have going and to get it published (garage games is a prospective publisher).&lt;br /&gt;&lt;br /&gt;Anyways, thats it for now. I'll try and stay more updated than I have of late.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10888113-113132985639093077?l=rubytrials.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubytrials.blogspot.com/feeds/113132985639093077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10888113&amp;postID=113132985639093077' title='23 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10888113/posts/default/113132985639093077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10888113/posts/default/113132985639093077'/><link rel='alternate' type='text/html' href='http://rubytrials.blogspot.com/2005/11/old-news-new-news-good-news.html' title='Old news ... New news ... Good news?'/><author><name>w3bsmith</name><uri>http://www.blogger.com/profile/11926018172574808162</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_0E7VfmWnacw/S6P4ddYsbCI/AAAAAAAABEA/ykPc8KntcYo/S220/Photo+on+2010-03-19+at+10.49.jpg'/></author><thr:total>23</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10888113.post-111474247305613685</id><published>2005-04-28T22:34:00.000-04:00</published><updated>2005-04-28T22:41:13.056-04:00</updated><title type='text'>Working with Rails</title><content type='html'>&lt;p&gt;A quick note to self (pun intended). In app/controllers/&lt;i&gt;your_controller_here&lt;/i&gt;.rb, place this code:&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;self.establish_connection(&lt;br /&gt;                         :adapter=&gt;"mysql",&lt;br /&gt;                         :host=&gt;"localhost",&lt;br /&gt;                         :username=&gt;"&lt;i&gt;your_username_here&lt;/i&gt;",&lt;br /&gt;                         :password=&gt;"&lt;i&gt;your_password_here&lt;/i&gt;",&lt;br /&gt;                         :database=&gt;"&lt;i&gt;your_database_here&lt;/i&gt;"&lt;br /&gt;                        )&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;To override the default "'root'@'localhost' identified by '';" when connecting to your db.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10888113-111474247305613685?l=rubytrials.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubytrials.blogspot.com/feeds/111474247305613685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10888113&amp;postID=111474247305613685' title='22 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10888113/posts/default/111474247305613685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10888113/posts/default/111474247305613685'/><link rel='alternate' type='text/html' href='http://rubytrials.blogspot.com/2005/04/working-with-rails.html' title='Working with Rails'/><author><name>w3bsmith</name><uri>http://www.blogger.com/profile/11926018172574808162</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_0E7VfmWnacw/S6P4ddYsbCI/AAAAAAAABEA/ykPc8KntcYo/S220/Photo+on+2010-03-19+at+10.49.jpg'/></author><thr:total>22</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10888113.post-111222474275646498</id><published>2005-03-30T18:11:00.000-05:00</published><updated>2005-03-30T18:19:02.756-05:00</updated><title type='text'>Ruby Web</title><content type='html'>Every have the urge to use this cool new scripting language for actual server side cgi for your web site? Hate using pre-made CGI API's? Ever know where to look to grab the web variables to hack your own code?&lt;br /&gt;&lt;br /&gt;If you said yes to all of the above this is for you! ;)&lt;br /&gt;&lt;br /&gt;I said yes and searched the web over for just the right answers. Here's some code for you:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;def getFormRequest&lt;br /&gt;    if ENV['REQUEST_METHOD']=='POST'&lt;br /&gt;        @request=Hash.new&lt;br /&gt;        @vars2=Array.new&lt;br /&gt;        vars=$stdin.gets.strip.split('&amp;')&lt;br /&gt;        vars.each { |pair| @vars2.push(pair.split('=')) }&lt;br /&gt;        @vars2.each { |key,value| @request[key]=value }&lt;br /&gt;    end&lt;br /&gt;    if ENV['QUERY_STRING']&lt;br /&gt;        @request=Hash.new&lt;br /&gt;        @vars2=Array.new&lt;br /&gt;        vars=ENV['QUERY_STRING'].split('&amp;')&lt;br /&gt;        vars.each { |pair| @vars2.push(pair.split('=')) }&lt;br /&gt;        @vars2.each { |key,value| @request[key]=value }&lt;br /&gt;    end&lt;br /&gt;    return @request&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Not the most beautiful code, and I haven't thoroughly tested the post side of the code (I honestly haven't needed to use post yet), but the GET side works perfectly.&lt;br /&gt;&lt;br /&gt;I hope I just made someone else's day, by not making them search for 2-3 hours solid through thousands of news group postings (google failed me here big time), so that they can be more productive or just have fun with this language.&lt;br /&gt;&lt;br /&gt;Signing Off,&lt;br /&gt;m3talsmith&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10888113-111222474275646498?l=rubytrials.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubytrials.blogspot.com/feeds/111222474275646498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10888113&amp;postID=111222474275646498' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10888113/posts/default/111222474275646498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10888113/posts/default/111222474275646498'/><link rel='alternate' type='text/html' href='http://rubytrials.blogspot.com/2005/03/ruby-web.html' title='Ruby Web'/><author><name>w3bsmith</name><uri>http://www.blogger.com/profile/11926018172574808162</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_0E7VfmWnacw/S6P4ddYsbCI/AAAAAAAABEA/ykPc8KntcYo/S220/Photo+on+2010-03-19+at+10.49.jpg'/></author><thr:total>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10888113.post-110860773420645226</id><published>2005-02-16T21:25:00.000-05:00</published><updated>2005-02-16T21:35:34.210-05:00</updated><title type='text'>Premature end of script headers</title><content type='html'>Here's my first ruby trial post. The trial today, Ruby based cgi and the annoying header problem with apache.&lt;br /&gt;&lt;br /&gt;First the sample script:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#!/usr/bin/ruby -w&lt;br /&gt;&lt;br /&gt;### ruServe ####################################################################&lt;br /&gt;# @Author:Michael Christenson II&lt;br /&gt;# @Date:2005-01-30 21:00:00 EST&lt;br /&gt;# @Email: michael@xystus.info&lt;br /&gt;################################################################################&lt;br /&gt;&lt;br /&gt;# List Constants&lt;br /&gt;PRODUCT="ruServe"&lt;br /&gt;PRODUCT_VERSION="0.0.1"&lt;br /&gt;HTTP_HEADER="Content-type: text\/html\n\n"&lt;br /&gt;###&lt;br /&gt;&lt;br /&gt;# List Glabal Variables&lt;br /&gt;###&lt;br /&gt;&lt;br /&gt;# Start ruServe&lt;br /&gt;###&lt;br /&gt;puts "#{HTTP_HEADER}"+&lt;br /&gt;     "&amp;lt;html&amp;gt;"+&lt;br /&gt;     "&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;Request - #{PRODUCT} ver. #{PRODUCT_VERSION}&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;"+&lt;br /&gt;     "&amp;lt;body&amp;gt;"+&lt;br /&gt;     "&amp;lt;p&amp;gt;stillworking&amp;lt;/p&amp;gt;"+&lt;br /&gt;     "&amp;lt;/body&amp;gt;"+&lt;br /&gt;     "&amp;lt;/html&amp;gt;"&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now the really painful part was getting the header to work. I kept getting error 500 from the web server, and kept dancing around my server, through logs and such, trying to find the answer.&lt;br /&gt;&lt;br /&gt;The problem: Malformed header and premature end of script headers&lt;br /&gt;The answer: take out the extra \r's for the Microsoft compatibility if you are on a unix server.&lt;br /&gt;&lt;br /&gt;Old header: Content-type: text\/html\n\r\n\r&lt;br /&gt;New header: Content-type: text\/html\n\n&lt;br /&gt;&lt;br /&gt;Simple and works fine. Until the next trial, please keep yourself together, I'll have an answer eventually ;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10888113-110860773420645226?l=rubytrials.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rubytrials.blogspot.com/feeds/110860773420645226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10888113&amp;postID=110860773420645226' title='17 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10888113/posts/default/110860773420645226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10888113/posts/default/110860773420645226'/><link rel='alternate' type='text/html' href='http://rubytrials.blogspot.com/2005/02/premature-end-of-script-headers.html' title='Premature end of script headers'/><author><name>w3bsmith</name><uri>http://www.blogger.com/profile/11926018172574808162</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_0E7VfmWnacw/S6P4ddYsbCI/AAAAAAAABEA/ykPc8KntcYo/S220/Photo+on+2010-03-19+at+10.49.jpg'/></author><thr:total>17</thr:total></entry></feed>
