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

<channel>
	<title>Marc Leglise &#187; Web Development</title>
	<atom:link href="http://www.drelmo.net/category/web-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.drelmo.net</link>
	<description>Hacking away with Linux, Ruby, Rails, and so on and so forth</description>
	<lastBuildDate>Mon, 21 Dec 2009 17:30:10 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Merb Camp 2008</title>
		<link>http://www.drelmo.net/2008/11/05/merb-camp-2008/#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=merb-camp-2008</link>
		<comments>http://www.drelmo.net/2008/11/05/merb-camp-2008/#comments</comments>
		<pubDate>Wed, 05 Nov 2008 21:53:26 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.drelmo.net/?p=30</guid>
		<description><![CDATA[A few weeks ago, I got to attend Merb Camp on the UCSD campus.  For those of you that haven&#8217;t heard yet, Merb is a new web framework written in Ruby, which many consider to be the spiritual successor to Rails.  Essentially where DHH (creator of Rails) professes that &#8220;the Rails way&#8221; is the way [...]]]></description>
			<content:encoded><![CDATA[<p>A few weeks ago, I got to attend Merb Camp on the UCSD campus.  For those of you that haven&#8217;t heard yet, <a href="http://www.merbivore.com/" target="_blank">Merb</a> is a new web framework written in Ruby, which many consider to be the spiritual successor to <a href="http://www.rubyonrails.com" target="_blank">Rails</a>.  Essentially where DHH (creator of Rails) professes that &#8220;the Rails way&#8221; is the way to go, Merb takes a much more Linux-style approach in figuring that individual components of the framework should be swappable for others with as much ease as possible.  Equally as important, Merb is thread-safe, allowing it to scale much more easily than Rails.  I haven&#8217;t yet gotten to cook up any releasable projects with it, but I&#8217;m very excited to get going on it.</p>
<p>Anyway, Merb Camp had ~150 attendees at the <a href="http://www.calit2.net/" target="_blank">CalIT2</a> building.  We were also joined by hundreds more that were watching the live webcast from all over the world and participating in the discussion via IRC.  When the Q&amp;A sections after each talk happened, I volunteered to read out the questions that came in via IRC, so that our international guests got a chance to be a part of the fray.  Once we got to the Merb Team Panel discussion on Day 2, I was asked to moderate the panel.  The video has since been posted on the <a href="http://www.merbcamp.com/video" target="_blank">Merb Camp Video</a> section of the site.  Here is the <a title="Marc Leglise moderates the panel on transitioning from Rails to Merb" href="http://www.merbcamp.com/video/from_rails_to_merb_panel.mp4" target="_blank">direct link to the panel video</a> where you can see me in impromptu action.</p>
<p>All in all, it was a very fun conference, where I got to meet all kinds of developers from all over the world.  I can&#8217;t wait for the next one!</p>
<div class="lightsocial_container"><div class="lightsocial_element"><a href="http://digg.com/submit?url=http%3A%2F%2Fwww.drelmo.net%2F2008%2F11%2F05%2Fmerb-camp-2008%2F&amp;title=Merb+Camp+2008"><img src="http://www.drelmo.net/wp-content/plugins/light-social/digg.ico" alt="Digg This" title="Digg This" /></a></div><div class="lightsocial_element"><a href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.drelmo.net%2F2008%2F11%2F05%2Fmerb-camp-2008%2F&amp;title=Merb+Camp+2008"><img src="http://www.drelmo.net/wp-content/plugins/light-social/reddit.ico" alt="Reddit This" title="Reddit This" /></a></div><div class="lightsocial_element"><a href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.drelmo.net%2F2008%2F11%2F05%2Fmerb-camp-2008%2F&amp;headline=Merb+Camp+2008"><img src="http://www.drelmo.net/wp-content/plugins/light-social/yahoo_buzz.ico" alt="Buzz This" title="Buzz This" /></a></div><div class="lightsocial_element"><a href="http://www.dzone.com/links/add.html?title=Merb+Camp+2008&amp;url=http%3A%2F%2Fwww.drelmo.net%2F2008%2F11%2F05%2Fmerb-camp-2008%2F"><img src="http://www.drelmo.net/wp-content/plugins/light-social/dzone.ico" alt="Vote on DZone" title="Vote on DZone" /></a></div><div class="lightsocial_element"><a href="http://www.facebook.com/sharer.php?t=Merb+Camp+2008&amp;u=http%3A%2F%2Fwww.drelmo.net%2F2008%2F11%2F05%2Fmerb-camp-2008%2F"><img src="http://www.drelmo.net/wp-content/plugins/light-social/facebook.ico" alt="Share on a Facebook" title="Share on a Facebook" /></a></div><div class="lightsocial_element"><a href="http://delicious.com/save?title=Merb+Camp+2008&amp;url=http%3A%2F%2Fwww.drelmo.net%2F2008%2F11%2F05%2Fmerb-camp-2008%2F"><img src="http://www.drelmo.net/wp-content/plugins/light-social/delicious.ico" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a></div><div class="lightsocial_element"><a href="http://www.dotnetkicks.com/kick/?title=Merb+Camp+2008&amp;url=http%3A%2F%2Fwww.drelmo.net%2F2008%2F11%2F05%2Fmerb-camp-2008%2F"><img src="http://www.drelmo.net/wp-content/plugins/light-social/dotnetkicks.ico" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a></div><div class="lightsocial_element"><a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.drelmo.net%2F2008%2F11%2F05%2Fmerb-camp-2008%2F&amp;title=Merb+Camp+2008&amp;summary=&amp;source="><img src="http://www.drelmo.net/wp-content/plugins/light-social/linkedin.ico" alt="Share on LinkedIn" title="Share on LinkedIn" /></a></div><div class="lightsocial_element"><a href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.drelmo.net%2F2008%2F11%2F05%2Fmerb-camp-2008%2F"><img src="http://www.drelmo.net/wp-content/plugins/light-social/technorati.ico" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a></div><div class="lightsocial_element"><a href="http://twitter.com/home?status=Reading+http%3A%2F%2Fwww.drelmo.net%2F2008%2F11%2F05%2Fmerb-camp-2008%2F"><img src="http://www.drelmo.net/wp-content/plugins/light-social/twitter.ico" alt="Post on Twitter" title="Post on Twitter" /></a></div></div>]]></content:encoded>
			<wfw:commentRss>http://www.drelmo.net/2008/11/05/merb-camp-2008/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
<enclosure url="http://www.merbcamp.com/video/from_rails_to_merb_panel.mp4" length="797127193" type="video/quicktime" />
		</item>
		<item>
		<title>Open Past&#8230; what day?</title>
		<link>http://www.drelmo.net/2008/03/03/open-past-what-day/#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=open-past-what-day</link>
		<comments>http://www.drelmo.net/2008/03/03/open-past-what-day/#comments</comments>
		<pubDate>Mon, 03 Mar 2008 18:37:53 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[CogSci 121: HCI Programming]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.drelmo.net/2008/03/03/open-past-what-day/</guid>
		<description><![CDATA[It&#8217;s been too long since the last update, especially since we&#8217;ve overcome a lot of hurdles in building this system.  I&#8217;ll talk about each in its own right.
Hours of Operation
The primary quandary we faced was in how to represent a store&#8217;s hours of operation in the database. The obvious implementation is to have separate [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been too long since the last update, especially since we&#8217;ve overcome a lot of hurdles in building this system.  I&#8217;ll talk about each in its own right.</p>
<h2>Hours of Operation</h2>
<p>The primary quandary we faced was in how to represent a store&#8217;s hours of operation in the database. The obvious implementation is to have separate columns for each day&#8217;s open and close times.  This gives us 14 columns added to the &#8217;store&#8217; table, named &#8216;monday_open&#8217;, &#8216;monday_close&#8217;, &#8216;tuesday_open&#8217;&#8230; and so on.  Since we have a different column for each day, it would make sense to have the column be of type &#8216;<em>time</em>&#8216; right?  <strong>No!</strong></p>
<p>Especially because we&#8217;re dealing with locations that are open late, we need to deal with cases like <strong>&#8220;On Monday, we&#8217;re open from 10am &#8211; 2am&#8221;</strong>.  If the columns only handle time, then we&#8217;ll have a store with <strong>monday_open = 10:00</strong> and <strong>monday_close = 2:00</strong>.  That means we need to do some serious condition checking to see if its open.  Better yet, how do we query for all stores that are open at a specific time? Not very efficient.</p>
<p>So how did we deal with this?  We want the columns to be able to know not just the time of day, but also the day of the week.  For the example above, we want the columns to read more like <strong>monday_open = Mon 10:00</strong> and <strong>monday_close = Tue 2:00</strong>. This would make queries a whole lot easier, as we can resort to a simple <strong>open &lt; right_now &lt; close</strong> test, without having to create extra logic. But SQL databases don&#8217;t have a type to represent time + day of week.  The options are <em>time</em> (hours, minutes, seconds only) or fullblown <em>datetime</em> (year, month, day, hour, etc). Since we&#8217;ve concluded that <em>time</em> is not enough on its own, we&#8217;re forced into using a full <em>datetime </em>field.</p>
<p>But wait! That means <strong>monday_close</strong> will look more like <strong>March 4, 2008 2:00 -0800</strong>. How are you going to deal with the comparisons when it&#8217;s now June? The condition will always fail, thinking the store closed months ago! And that&#8217;s where our solution comes in. The solution is, to some degree, in the question.  Our comparisons will involve the entire <em>datetime</em>, but we only care about day-of-week and time. Therefore, we just need to pick arbitrary values for the rest of the <em>datetime</em> fields and have the code enforce their usage. We ended up using the week of Jan 1, 2007 for our project, primarily because Jan 1 is a Monday, making it very easy to translate a number to day-of-week. Throw in a few helper functions to make the date translation seamless to the user, and we&#8217;re set!</p>
<h2>Website Hosting</h2>
<p>As I said in my previous <a href="/2007/09/11/my-top-2-web-hosting-companies/">post about web hosting companies</a>, DreamHost is a great cheap shared-hosting solution, but its Rails support leaves a bit to be desired. I was pleased to see that they&#8217;ve cleaned up their <a href="http://wiki.dreamhost.com/Rails" target="_blank">documentation</a>, and getting a Rails site running requires a lot fewer hacks now. But the speed issue is still a huge one. Big enough for me to still say that for a commercial Rails app, I would not use them. For a class project, they&#8217;re perfect.</p>
<h2>Introducing the Team to Rails</h2>
<p>We&#8217;ve transitioned the project to Rails completely, which has made, as usual, a lot of grunt work disappear into thin air. It&#8217;s working well for what we need from it, albeit a very simple site. The real issue with Rails is that, being so new, still very few people know about it, much less have used it before. Whenever introducing a group of people to a new technology, you&#8217;re going to have mixed results, and our team is no exception. Some have taken to it excitedly, some with reserve, and some are just not very interested. All this is fine, especially since there&#8217;s plenty of work to do outside of Rails. It&#8217;s interesting to have such a cross-section of reactions to it all working together.</p>
<h2>Interfacing with Google</h2>
<p>Since our project employs Google Maps to display store locations, we need to interface with their API. More importantly, we need to load latitude and longitude coordinates of the stores into our own database. Since we all quickly agreed that we didn&#8217;t want to do that by hand, we worked out an alternate solution.</p>
<p>The interface to add a new store to the database employs Google Local Search to find stores that are already in Google&#8217;s system, and therefore already have all of the information we need (except hours). From the search results we get back from Google, we can click a button that then pushes the data up to our own server. Then we go in and set the hours of operation and assign a category. It took a lot of tweaking to get it working right, but after a few hours of Rodolphe working on the client-side Javascript and me working on the server-side receiving end, we got it ironed out.</p>
<div class="lightsocial_container"><div class="lightsocial_element"><a href="http://digg.com/submit?url=http%3A%2F%2Fwww.drelmo.net%2F2008%2F03%2F03%2Fopen-past-what-day%2F&amp;title=Open+Past...+what+day%3F"><img src="http://www.drelmo.net/wp-content/plugins/light-social/digg.ico" alt="Digg This" title="Digg This" /></a></div><div class="lightsocial_element"><a href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.drelmo.net%2F2008%2F03%2F03%2Fopen-past-what-day%2F&amp;title=Open+Past...+what+day%3F"><img src="http://www.drelmo.net/wp-content/plugins/light-social/reddit.ico" alt="Reddit This" title="Reddit This" /></a></div><div class="lightsocial_element"><a href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.drelmo.net%2F2008%2F03%2F03%2Fopen-past-what-day%2F&amp;headline=Open+Past...+what+day%3F"><img src="http://www.drelmo.net/wp-content/plugins/light-social/yahoo_buzz.ico" alt="Buzz This" title="Buzz This" /></a></div><div class="lightsocial_element"><a href="http://www.dzone.com/links/add.html?title=Open+Past...+what+day%3F&amp;url=http%3A%2F%2Fwww.drelmo.net%2F2008%2F03%2F03%2Fopen-past-what-day%2F"><img src="http://www.drelmo.net/wp-content/plugins/light-social/dzone.ico" alt="Vote on DZone" title="Vote on DZone" /></a></div><div class="lightsocial_element"><a href="http://www.facebook.com/sharer.php?t=Open+Past...+what+day%3F&amp;u=http%3A%2F%2Fwww.drelmo.net%2F2008%2F03%2F03%2Fopen-past-what-day%2F"><img src="http://www.drelmo.net/wp-content/plugins/light-social/facebook.ico" alt="Share on a Facebook" title="Share on a Facebook" /></a></div><div class="lightsocial_element"><a href="http://delicious.com/save?title=Open+Past...+what+day%3F&amp;url=http%3A%2F%2Fwww.drelmo.net%2F2008%2F03%2F03%2Fopen-past-what-day%2F"><img src="http://www.drelmo.net/wp-content/plugins/light-social/delicious.ico" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a></div><div class="lightsocial_element"><a href="http://www.dotnetkicks.com/kick/?title=Open+Past...+what+day%3F&amp;url=http%3A%2F%2Fwww.drelmo.net%2F2008%2F03%2F03%2Fopen-past-what-day%2F"><img src="http://www.drelmo.net/wp-content/plugins/light-social/dotnetkicks.ico" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a></div><div class="lightsocial_element"><a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.drelmo.net%2F2008%2F03%2F03%2Fopen-past-what-day%2F&amp;title=Open+Past...+what+day%3F&amp;summary=&amp;source="><img src="http://www.drelmo.net/wp-content/plugins/light-social/linkedin.ico" alt="Share on LinkedIn" title="Share on LinkedIn" /></a></div><div class="lightsocial_element"><a href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.drelmo.net%2F2008%2F03%2F03%2Fopen-past-what-day%2F"><img src="http://www.drelmo.net/wp-content/plugins/light-social/technorati.ico" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a></div><div class="lightsocial_element"><a href="http://twitter.com/home?status=Reading+http%3A%2F%2Fwww.drelmo.net%2F2008%2F03%2F03%2Fopen-past-what-day%2F"><img src="http://www.drelmo.net/wp-content/plugins/light-social/twitter.ico" alt="Post on Twitter" title="Post on Twitter" /></a></div></div>]]></content:encoded>
			<wfw:commentRss>http://www.drelmo.net/2008/03/03/open-past-what-day/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Step-by-step Rails setup using Capistrano 2.0 and Mongrel</title>
		<link>http://www.drelmo.net/2007/09/11/step-by-step-rails-setup-using-capistrano-20-and-mongrel/#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=step-by-step-rails-setup-using-capistrano-20-and-mongrel</link>
		<comments>http://www.drelmo.net/2007/09/11/step-by-step-rails-setup-using-capistrano-20-and-mongrel/#comments</comments>
		<pubDate>Tue, 11 Sep 2007 21:10:33 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.drelmo.net/2007/09/11/step-by-step-rails-setup-using-capistrano-20-and-mongrel/</guid>
		<description><![CDATA[I started working on a new client site in Rails recently and reached the point where I was ready to launch a starter-version over at OCS.  In the process, I wanted to upgrade a few of my practices and utilities, most notably Capistrano.  I have been using the 1.4 series for a while, [...]]]></description>
			<content:encoded><![CDATA[<p>I started working on a new client site in Rails recently and reached the point where I was ready to launch a starter-version over at <a href="http://www.ocssolutions.com/" title="OCS Solutions" target="_blank">OCS</a>.  In the process, I wanted to upgrade a few of my practices and utilities, most notably <a href="http://www.capify.org/" title="Capistrano" target="_blank">Capistrano</a>.  I have been using the 1.4 series for a while, but this was a brand new site, so what better opportunity would there be to start using 2.0?</p>
<p>Since Capistrano 2.0 is relatively new to the scene, the documentation (as with most Rails-related projects) was lagging behind.  The team changed a lot about how 2.0 works, making most of my old deployment recipes obsolete.  The problem is, the info about how to write new ones is still very scattered and hard to navigate.  OCS was suffering from much the same problem, with no detailed guide on getting a new Rails app ready and launched on their servers.  Since I knew I&#8217;d need to repeat the process in the future, I decided to document the process as I went.  Halfway through, I realized that I was likely not the only one who could benefit from such a guide.</p>
<p>The result of my efforts was posted later that day on the <a href="http://wiki.ocssolutions.com/" title="OCS Solutions Tech Support Wiki" target="_blank">official OCS Support Wiki</a>, as an article entitled &#8220;<a href="http://wiki.ocssolutions.com/Step-by-step_setup_using_Capistrano_2.0_and_Mongrel" title="Step-by-step setup using Capistrano 2.0 and Mongrel" target="_blank">Step-by-step setup using Capistrano 2.0 and Mongrel</a>&#8221; under their Ruby on Rails section.  It even got a mention and some kind words on the <a href="http://www.ocsblog.com/2007/09/06/deploying-with-capistrano-20-and-mongrel-guide/" target="_blank">OCS Blog</a>.</p>
<div class="lightsocial_container"><div class="lightsocial_element"><a href="http://digg.com/submit?url=http%3A%2F%2Fwww.drelmo.net%2F2007%2F09%2F11%2Fstep-by-step-rails-setup-using-capistrano-20-and-mongrel%2F&amp;title=Step-by-step+Rails+setup+using+Capistrano+2.0+and+Mongrel"><img src="http://www.drelmo.net/wp-content/plugins/light-social/digg.ico" alt="Digg This" title="Digg This" /></a></div><div class="lightsocial_element"><a href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.drelmo.net%2F2007%2F09%2F11%2Fstep-by-step-rails-setup-using-capistrano-20-and-mongrel%2F&amp;title=Step-by-step+Rails+setup+using+Capistrano+2.0+and+Mongrel"><img src="http://www.drelmo.net/wp-content/plugins/light-social/reddit.ico" alt="Reddit This" title="Reddit This" /></a></div><div class="lightsocial_element"><a href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.drelmo.net%2F2007%2F09%2F11%2Fstep-by-step-rails-setup-using-capistrano-20-and-mongrel%2F&amp;headline=Step-by-step+Rails+setup+using+Capistrano+2.0+and+Mongrel"><img src="http://www.drelmo.net/wp-content/plugins/light-social/yahoo_buzz.ico" alt="Buzz This" title="Buzz This" /></a></div><div class="lightsocial_element"><a href="http://www.dzone.com/links/add.html?title=Step-by-step+Rails+setup+using+Capistrano+2.0+and+Mongrel&amp;url=http%3A%2F%2Fwww.drelmo.net%2F2007%2F09%2F11%2Fstep-by-step-rails-setup-using-capistrano-20-and-mongrel%2F"><img src="http://www.drelmo.net/wp-content/plugins/light-social/dzone.ico" alt="Vote on DZone" title="Vote on DZone" /></a></div><div class="lightsocial_element"><a href="http://www.facebook.com/sharer.php?t=Step-by-step+Rails+setup+using+Capistrano+2.0+and+Mongrel&amp;u=http%3A%2F%2Fwww.drelmo.net%2F2007%2F09%2F11%2Fstep-by-step-rails-setup-using-capistrano-20-and-mongrel%2F"><img src="http://www.drelmo.net/wp-content/plugins/light-social/facebook.ico" alt="Share on a Facebook" title="Share on a Facebook" /></a></div><div class="lightsocial_element"><a href="http://delicious.com/save?title=Step-by-step+Rails+setup+using+Capistrano+2.0+and+Mongrel&amp;url=http%3A%2F%2Fwww.drelmo.net%2F2007%2F09%2F11%2Fstep-by-step-rails-setup-using-capistrano-20-and-mongrel%2F"><img src="http://www.drelmo.net/wp-content/plugins/light-social/delicious.ico" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a></div><div class="lightsocial_element"><a href="http://www.dotnetkicks.com/kick/?title=Step-by-step+Rails+setup+using+Capistrano+2.0+and+Mongrel&amp;url=http%3A%2F%2Fwww.drelmo.net%2F2007%2F09%2F11%2Fstep-by-step-rails-setup-using-capistrano-20-and-mongrel%2F"><img src="http://www.drelmo.net/wp-content/plugins/light-social/dotnetkicks.ico" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a></div><div class="lightsocial_element"><a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.drelmo.net%2F2007%2F09%2F11%2Fstep-by-step-rails-setup-using-capistrano-20-and-mongrel%2F&amp;title=Step-by-step+Rails+setup+using+Capistrano+2.0+and+Mongrel&amp;summary=&amp;source="><img src="http://www.drelmo.net/wp-content/plugins/light-social/linkedin.ico" alt="Share on LinkedIn" title="Share on LinkedIn" /></a></div><div class="lightsocial_element"><a href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.drelmo.net%2F2007%2F09%2F11%2Fstep-by-step-rails-setup-using-capistrano-20-and-mongrel%2F"><img src="http://www.drelmo.net/wp-content/plugins/light-social/technorati.ico" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a></div><div class="lightsocial_element"><a href="http://twitter.com/home?status=Reading+http%3A%2F%2Fwww.drelmo.net%2F2007%2F09%2F11%2Fstep-by-step-rails-setup-using-capistrano-20-and-mongrel%2F"><img src="http://www.drelmo.net/wp-content/plugins/light-social/twitter.ico" alt="Post on Twitter" title="Post on Twitter" /></a></div></div>]]></content:encoded>
			<wfw:commentRss>http://www.drelmo.net/2007/09/11/step-by-step-rails-setup-using-capistrano-20-and-mongrel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Top 2 Web Hosting Companies</title>
		<link>http://www.drelmo.net/2007/09/11/my-top-2-web-hosting-companies/#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=my-top-2-web-hosting-companies</link>
		<comments>http://www.drelmo.net/2007/09/11/my-top-2-web-hosting-companies/#comments</comments>
		<pubDate>Tue, 11 Sep 2007 20:52:16 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.drelmo.net/2007/09/11/my-top-2-web-hosting-companies/</guid>
		<description><![CDATA[Like most web developers, I get asked fairly regularly who I recommend for setting up simple websites.  For the record, my experience with project hosting has been very polar.  I&#8217;ve done a few sites where the requirements called for a full dedicated server, which I got to set up by hand.  If [...]]]></description>
			<content:encoded><![CDATA[<p>Like most web developers, I get asked fairly regularly who I recommend for setting up simple websites.  For the record, my experience with project hosting has been very polar.  I&#8217;ve done a few sites where the requirements called for a full dedicated server, which I got to set up by hand.  If there is interest in those installations, I can post some info about them.  For now, I&#8217;m going to focus on the other end of the spectrum: shared hosting.</p>
<h2><a href="http://www.ocssolutions.com/" target="_blank">#1: OCS Solutions</a></h2>
<p>My uncontested favorite.  If you&#8217;re setting up anything beyond a simple personal site, these are the folks to go to.  Not only do they specialize in Rails hosting, but they actually answer the phone!  No, wait, I&#8217;ll do you one better.  Their CEO (Robert) is part of the 24/7 phone support shift and actually knows exactly what he&#8217;s talking about!  I know of no other (legitimate) hosting companies that can make that claim.</p>
<p>I&#8217;ve already got a few client sites hosted with them, so the team there has seen my name in a good number of support requests already.  They never fail to get back to me within 24 hours, but usually less than 3.  When I have a truly urgent issue, they are always there on the phone.  I have yet to ever leave a voicemail.</p>
<p>More than anything else, their Rails hosting is phenomenal.  The first site I moved over to them was a relatively basic Rails app that had been having speed and uptime problems on Dreamhost, even with minimal load.  Ever since the move (with zero changes to my code) the site has performed like an athlete on speed.  From now on, all of my Rails apps are going on the OCS servers.</p>
<p>My only gripe with them is the occasional usability issues with their web panels, which is where I still use #2 for a few things.</p>
<h2><a href="http://www.dreamhost.com/" target="_blank">#2: Dreamhost</a></h2>
<p>Very strong in some areas.  Very weak in others.</p>
<p>Dreamhost is the ideal &#8220;budget-hosting&#8221; solution.  For a not-expensive price, an account with them will let you do a lot of things.  You can register and host a virtually unlimited number of domains with one account.  Their &#8220;One Click Installs&#8221; make basic sites (like this one) ridiculously easy to manage.  Even their interface to Subversion, while lacking some more advanced functionality, is ideal for small projects.</p>
<p>On the other hand, their Rails support is not 100%.  Google it and you&#8217;ll see what I mean.  There are posts and discussions abound all over the net about how to get your app to work smoothly, with mixed results.   I spent a long time tweaking the code on the <a href="http://www.muirsurf.com" title="Muir Surf &amp; Sport" target="_blank">Muir Surf &amp; Sport</a> site to get it to work.  The best I could get it still had a 1-2% rate of 500 errors.  Not acceptable.</p>
<p>To make things worse, their support is sub-par.  Their target audience is a very broad client base, so they can&#8217;t afford to offer phone support.  Ok, fine, I can email them when all hell breaks loose.  But when one of my client&#8217;s e-commerce sites went offline, completely, it took Dreamhost over <strong>8 hours</strong> to get back to me.  And guess what?  It was their fault it had gone down in the first place!  That was the brick that broke the camel&#8217;s back for me.  I will never again have a client ask me &#8220;Why is my site down?&#8221; and have to answer &#8220;Oh, I&#8217;m waiting on the host to get back to me.&#8221;</p>
<h2>Concluding Thoughts</h2>
<p>The basic summary is that Dreamhost works for most circumstances.  If your needs are basic, and/or reliability is not mission-critical, then they are a fine host.  But for critical projects, 99% uptime means that 10,000 out of every million hits will fail.  If you need Rails hosting, and/or actually want good support, go with OCS.  The cost is not much higher, but you&#8217;ll notice a huge difference.</p>
<div class="lightsocial_container"><div class="lightsocial_element"><a href="http://digg.com/submit?url=http%3A%2F%2Fwww.drelmo.net%2F2007%2F09%2F11%2Fmy-top-2-web-hosting-companies%2F&amp;title=My+Top+2+Web+Hosting+Companies"><img src="http://www.drelmo.net/wp-content/plugins/light-social/digg.ico" alt="Digg This" title="Digg This" /></a></div><div class="lightsocial_element"><a href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.drelmo.net%2F2007%2F09%2F11%2Fmy-top-2-web-hosting-companies%2F&amp;title=My+Top+2+Web+Hosting+Companies"><img src="http://www.drelmo.net/wp-content/plugins/light-social/reddit.ico" alt="Reddit This" title="Reddit This" /></a></div><div class="lightsocial_element"><a href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.drelmo.net%2F2007%2F09%2F11%2Fmy-top-2-web-hosting-companies%2F&amp;headline=My+Top+2+Web+Hosting+Companies"><img src="http://www.drelmo.net/wp-content/plugins/light-social/yahoo_buzz.ico" alt="Buzz This" title="Buzz This" /></a></div><div class="lightsocial_element"><a href="http://www.dzone.com/links/add.html?title=My+Top+2+Web+Hosting+Companies&amp;url=http%3A%2F%2Fwww.drelmo.net%2F2007%2F09%2F11%2Fmy-top-2-web-hosting-companies%2F"><img src="http://www.drelmo.net/wp-content/plugins/light-social/dzone.ico" alt="Vote on DZone" title="Vote on DZone" /></a></div><div class="lightsocial_element"><a href="http://www.facebook.com/sharer.php?t=My+Top+2+Web+Hosting+Companies&amp;u=http%3A%2F%2Fwww.drelmo.net%2F2007%2F09%2F11%2Fmy-top-2-web-hosting-companies%2F"><img src="http://www.drelmo.net/wp-content/plugins/light-social/facebook.ico" alt="Share on a Facebook" title="Share on a Facebook" /></a></div><div class="lightsocial_element"><a href="http://delicious.com/save?title=My+Top+2+Web+Hosting+Companies&amp;url=http%3A%2F%2Fwww.drelmo.net%2F2007%2F09%2F11%2Fmy-top-2-web-hosting-companies%2F"><img src="http://www.drelmo.net/wp-content/plugins/light-social/delicious.ico" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a></div><div class="lightsocial_element"><a href="http://www.dotnetkicks.com/kick/?title=My+Top+2+Web+Hosting+Companies&amp;url=http%3A%2F%2Fwww.drelmo.net%2F2007%2F09%2F11%2Fmy-top-2-web-hosting-companies%2F"><img src="http://www.drelmo.net/wp-content/plugins/light-social/dotnetkicks.ico" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a></div><div class="lightsocial_element"><a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.drelmo.net%2F2007%2F09%2F11%2Fmy-top-2-web-hosting-companies%2F&amp;title=My+Top+2+Web+Hosting+Companies&amp;summary=&amp;source="><img src="http://www.drelmo.net/wp-content/plugins/light-social/linkedin.ico" alt="Share on LinkedIn" title="Share on LinkedIn" /></a></div><div class="lightsocial_element"><a href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.drelmo.net%2F2007%2F09%2F11%2Fmy-top-2-web-hosting-companies%2F"><img src="http://www.drelmo.net/wp-content/plugins/light-social/technorati.ico" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a></div><div class="lightsocial_element"><a href="http://twitter.com/home?status=Reading+http%3A%2F%2Fwww.drelmo.net%2F2007%2F09%2F11%2Fmy-top-2-web-hosting-companies%2F"><img src="http://www.drelmo.net/wp-content/plugins/light-social/twitter.ico" alt="Post on Twitter" title="Post on Twitter" /></a></div></div>]]></content:encoded>
			<wfw:commentRss>http://www.drelmo.net/2007/09/11/my-top-2-web-hosting-companies/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
