<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en-US">
  <title>Salesforce on Rails - Ruby</title>
  <id>tag:salesforceonrails.com,2009:mephisto/ruby</id>
  <generator version="0.8.0" uri="http://mephistoblog.com">Mephisto Drax</generator>
  
  <link href="http://salesforceonrails.com/ruby" rel="alternate" type="text/html" />
  <updated>2009-03-16T20:16:53Z</updated>
  <link rel="self" href="http://feeds.feedburner.com/salesforceonrails/ruby" type="application/atom+xml" /><entry xml:base="http://salesforceonrails.com/">
    <author>
      <name>Luigi Montanez</name>
    </author>
    <id>tag:salesforceonrails.com,2009-02-12:3207</id>
    <published>2009-02-12T05:32:00Z</published>
    <updated>2009-03-16T20:16:53Z</updated>
    <category term="Ruby" />
    <category term="passenger" />
    <category term="vmware" />
    <link href="http://feedproxy.google.com/~r/salesforceonrails/ruby/~3/9CuUw_h8nL0/accessing-passenger-sites-from-a-windows-vista-instance-in-vmware-fusion" rel="alternate" type="text/html" />
    <title>Accessing Passenger sites from a Windows Vista instance in VMware Fusion</title>
<content type="html">
            &lt;p&gt;This &lt;a href="http://www.robbyonrails.com/articles/2009/02/11/switch-to-passenger-mod_rails-in-development-on-osx-in-less-than-7-minutes-or-your-money-back"&gt;article by Robby Russell&lt;/a&gt; reminded me of a hopefully helpful post I’ve been meaning to write for a while. The problem is straightforward: You’ve got &lt;a href="http://modrails.com"&gt;Phusion Passenger&lt;/a&gt; set up on your Mac &lt;span class="caps"&gt;OS X&lt;/span&gt; Leopard (see Robby’s post for details). Your client called, and they say the site you just launched for them looks funky in Internet Explorer. Fun. So now, you want to access your local Passenger site living at &lt;a href="http://myapp.local"&gt;http://myapp.local&lt;/a&gt; from the copy of Windows Vista living in your &lt;a href="http://www.vmware.com/products/fusion/"&gt;VMware Fusion&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;There are two things you need to do in order to access your Passenger sites from Windows Vista via VMware Fusion:&lt;/p&gt;


	&lt;ol&gt;
	&lt;li&gt;Figure out what Vista thinks is your Mac’s IP address&lt;/li&gt;
		&lt;li&gt;Create entries in Vista’s /etc/hosts file (yes, Vista actually has one)&lt;/li&gt;
	&lt;/ol&gt;


	&lt;p&gt;So fire up VMware and Vista, and let’s begin:&lt;/p&gt;


	&lt;h3&gt;Determine Vista’s Gateway IP&lt;/h3&gt;


	&lt;p&gt;When running VMware Fusion, the virtualized OS (in our case Vista) refers to the host system (Mac &lt;span class="caps"&gt;OS X&lt;/span&gt; Leopard) as its IP Gateway and its &lt;span class="caps"&gt;DNS&lt;/span&gt;. So you want to figure out what that IP address is, and you’ll be able to access the Apache server running in Leopard. Determine the IP with the following steps:&lt;/p&gt;


	&lt;ol&gt;
	&lt;li&gt;Open the Control Panel, switch to Classic View, open Network and Sharing Center.&lt;/li&gt;
		&lt;li&gt;Click on Manage Network Connections in the sidebar.&lt;/li&gt;
		&lt;li&gt;Double click on the Local Area Connection, and click on the Details button.&lt;/li&gt;
		&lt;li&gt;Make note of the IPv4 Default Gateway – that’s your ticket to accessing your Passenger sites.&lt;/li&gt;
	&lt;/ol&gt;


	&lt;p&gt;&lt;a href="http://skitch.com/luigi/brc94/finding-the-gateway"&gt;&lt;img src="http://img.skitch.com/20090212-b55errgiwu63xx5ugkq49qxdga.preview.jpg" alt="Finding the Gateway" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;h3&gt;Edit Vista’s /etc/hosts file&lt;/h3&gt;


	&lt;p&gt;I discovered this &lt;a href="http://maximumpcguides.com/windows-vista/edit-the-windows-vista-hosts-file/"&gt;handy link&lt;/a&gt;, which tells you all you want to know about Vista’s hosts file. In short, it works pretty much the same as any Unix /etc/hosts file. I followed the instructions to set up a shortcut on my Vista Desktop for quick access, and the screenshot of the Properties dialog for that shortcut is below:&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://skitch.com/luigi/brc9i/editing-the-hosts-file"&gt;&lt;img src="http://img.skitch.com/20090212-8m5129pifiqubdy94t1pn25b99.preview.jpg" alt="Editing the hosts file" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Now, just edit the file, creating an entry for each Passenger site:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;172.16.160.2 site1.local
172.16.160.2 site2.local
172.16.160.2 site3.local&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;With the file saved, you should be able to access your Passenger sites from a browser in Vista (no restart of anything needed).&lt;/p&gt;


	&lt;h3&gt;Multiple IEs&lt;/h3&gt;


	&lt;p&gt;Now for a bit of a bonus, I highly recommend installing &lt;a href="http://www.my-debugbar.com/wiki/IETester/HomePage"&gt;IETester&lt;/a&gt; in Vista. &lt;span class="caps"&gt;IE8&lt;/span&gt; beta 2, &lt;span class="caps"&gt;IE7&lt;/span&gt;, IE6 and &lt;span class="caps"&gt;IE5&lt;/span&gt;.5 will be at your fingertips.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Find this helpful?&lt;/strong&gt; Please consider recommending me on &lt;a href="http://www.workingwithrails.com/person/13437-luigi-montanez"&gt;Working with Rails&lt;/a&gt;.&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/salesforceonrails/ruby/~4/9CuUw_h8nL0" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://salesforceonrails.com/2009/accessing-passenger-sites-from-a-windows-vista-instance-in-vmware-fusion</feedburner:origLink></entry>
  <entry xml:base="http://salesforceonrails.com/">
    <author>
      <name>Luigi Montanez</name>
    </author>
    <id>tag:salesforceonrails.com,2008-10-28:2545</id>
    <published>2008-10-28T00:20:00Z</published>
    <updated>2008-10-28T00:25:17Z</updated>
    <category term="Ruby" />
    <link href="http://feedproxy.google.com/~r/salesforceonrails/ruby/~3/jH63_bop1dg/announcing-merb-day-atlanta" rel="alternate" type="text/html" />
    <title>Announcing Merb Day Atlanta</title>
<content type="html">
            &lt;p&gt;It’s been a while since I last posted here (four months to be exact), but I wanted to share the news on a conference I’ve been organizing, &lt;a href="http://atlanta.merbday.com"&gt;Merb Day Atlanta&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;Registration has finally opened (much to my relief), and it should be a great event for Ruby developers looking to dive into the next great thing. Registration is a mere $65, and you’ll be learning from the best: &lt;a href="http://atlanta.merbday.com"&gt;Merb Day Atlanta&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;I don’t really do much Salesforce work these days, and doubt I will in the future, so I have an idea for a new blog. Less about specific technologies, more about the craftsmanship of software development. Stay tuned…&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/salesforceonrails/ruby/~4/jH63_bop1dg" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://salesforceonrails.com/2008/announcing-merb-day-atlanta</feedburner:origLink></entry>
  <entry xml:base="http://salesforceonrails.com/">
    <author>
      <name>Luigi Montanez</name>
    </author>
    <id>tag:salesforceonrails.com,2008-06-20:2203</id>
    <published>2008-06-20T04:31:00Z</published>
    <updated>2009-03-16T20:17:24Z</updated>
    <category term="Ruby" />
    <category term="deployment" />
    <category term="virtualization" />
    <link href="http://feedproxy.google.com/~r/salesforceonrails/ruby/~3/AcrvXI-zWxc/engine-yard-express-a-production-slice-on-your-macbook-pro" rel="alternate" type="text/html" />
    <title>Engine Yard Express: A Production Slice on Your MacBook Pro</title>
<content type="html">
            &lt;p&gt;While computing moves more and more to the cloud, it’s interesting that Ruby web development best practices tend to go in the opposite direction, toward the workstation right in front of you. Running a local web server via ‘script/server’ (or my preferred method of ‘thin start’), hosting &lt;a href="http://salesforceonrails.com/2008/running-a-local-gem-documentation-server-on-mac-os-x"&gt;gem documentation locally&lt;/a&gt;, and using local git branches are all win/win practices because they’re far more efficient, and frankly, let you do some bonehead moves without your co-workers ever having to know.&lt;/p&gt;


	&lt;p&gt;So maybe deployments should be practiced locally as well. &lt;a href="http://brainspl.at/articles/2008/06/06/engine-yard-express"&gt;Ezra Z.&lt;/a&gt; has announced &lt;a href="http://express.engineyard.com/"&gt;Engine Yard Express&lt;/a&gt;, a VMware image that’s essentially an &lt;a href="http://engineyard.com"&gt;Engine Yard&lt;/a&gt; production slice. The idea is that you run the image via virtualization software on your workstation, so that you can get all the benefits of a virtual server without having to actually connect to one through the Tubes.&lt;/p&gt;


	&lt;p&gt;Yes, this really rocks. You’ll be able practice deployments on the plane!&lt;/p&gt;


	&lt;p&gt;So first, you’ll need to buy &lt;a href="http://www.vmware.com/products/fusion/"&gt;VMware Fusion&lt;/a&gt; for your Mac. I first purchased Parallels over a year ago, but VMware clearly kicks its ass. Clearly. It actually runs Windows without making the rest of your system unusable.&lt;/p&gt;


	&lt;p&gt;Next, &lt;a href="http://express.engineyard.com/"&gt;download the image&lt;/a&gt; and double-click on it. Before you even realize what happened, you’ll be presented with a ready, fully-functional slice just waiting for you like an obedient dog:&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/luigimontanez/2558712685/" title="EY Express 0.1.1 by Luigi Montanez, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3170/2558712685_a426c59419.jpg" height="347" alt="EY Express 0.1.1" width="500" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;You’ve been pleasantly provided with randomly generated passwords for the root and express users, and you’re even given the IP address it’s chosen.&lt;/p&gt;


	&lt;p&gt;Let’s create an alias for that address so we don’t have to memorize it. Open up /etc/hosts in your favorite text editor (requires sudo permission) and stick something like this in there:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;192.168.233.128 express.local&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Now, you should probably just leave your VMware window alone. Instead you’ll want to &lt;span class="caps"&gt;SSH&lt;/span&gt; into the slice as if you were logging into a remote server:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;$ ssh express@express.local&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Nice! A quick visit to &lt;a href="http://express.local:81"&gt;http://express.local:81&lt;/a&gt; gives you your Merb start page.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/luigimontanez/2559574162/" title="EY Express Merb by Luigi Montanez, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3153/2559574162_db7db125f3.jpg" height="500" alt="EY Express Merb" width="409" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Now, in your Capistrano scripts, you can use ‘express.local’ as the domain of your servers, and you’ll be able to practice deployments without ever connecting to a remote server. Bom chicka wa waa!&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/salesforceonrails/ruby/~4/AcrvXI-zWxc" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://salesforceonrails.com/2008/engine-yard-express-a-production-slice-on-your-macbook-pro</feedburner:origLink></entry>
  <entry xml:base="http://salesforceonrails.com/">
    <author>
      <name>Luigi Montanez</name>
    </author>
    <id>tag:salesforceonrails.com,2008-06-11:2184</id>
    <published>2008-06-11T03:49:00Z</published>
    <updated>2009-03-16T20:17:36Z</updated>
    <category term="Ruby" />
    <category term="gems" />
    <category term="rdoc" />
    <link href="http://feedproxy.google.com/~r/salesforceonrails/ruby/~3/hhD1GjnX_To/running-a-local-gem-documentation-server-on-mac-os-x" rel="alternate" type="text/html" />
    <title>Running a local gem documentation server on Mac OS X</title>
<content type="html">
            &lt;p&gt;When I first started playing around with Ruby on Rails, one of the things that struck me was how development was done completely locally. Instead of uploading or synchronizing your source code to a remote web server, you simply fired up a Ruby web server process on your local machine, and the development process seemed to flow more smoothly.&lt;/p&gt;


	&lt;p&gt;In that same vein, documentation for Ruby gems can be annoying to hunt down. You have to go to the gem’s web site, and hope that RDoc exists somewhere. Or, you can navigate to your gem’s local install directory and poke around in there. Too much work, and it could break your flow. Not anymore:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;$ gem server&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Now, just visit &lt;a href="http://localhost:8808"&gt;http://localhost:8808&lt;/a&gt;, and you’re good to go. That easy!&lt;/p&gt;


	&lt;p&gt;Also, you may find yourself missing RDoc on updated gems, so make sure to do this when it bothers you:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;$ sudo gem rdoc [--all|gem_name]&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Now, it would be great if the server just started automatically on boot up, with no need for a command line directive. In Mac &lt;span class="caps"&gt;OS X&lt;/span&gt; Leopard, the preferred way is to use &lt;a href="http://developer.apple.com/macosx/launchd.html"&gt;launchd/launchctl&lt;/a&gt;, which is about as obvious to the uninitiated as the rules of Cricket. Luckily, there’s &lt;a href="http://lingon.sourceforge.net/"&gt;Lingon&lt;/a&gt;, which wraps all that ugly &lt;span class="caps"&gt;XML&lt;/span&gt; in a nice &lt;span class="caps"&gt;GUI&lt;/span&gt;. Make a new entry that looks like this:&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/luigimontanez/2569726390/" title="Lingon Gem Server by Luigi Montanez, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3002/2569726390_846e749a4b_o.png" height="632" alt="Lingon Gem Server" width="547" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Note the full path to the gem command, which I needed for the launch command to work. And that’s it. Full documentation to all your locally installed gems, available whenever you need them.&lt;/p&gt;


	&lt;p&gt;Special thanks to &lt;a href="http://www.danielfischer.com/2008/05/23/view-rdocs-for-all-local-gems-gem-server-to-the-rescue/"&gt;Daniel Fischer&lt;/a&gt; for the ‘gem server’ tip, and &lt;a href="http://workingwithrails.com/person/7942-brandon-beacher"&gt;Brandon Beacher&lt;/a&gt; for the tip on Lingon.&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/salesforceonrails/ruby/~4/hhD1GjnX_To" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://salesforceonrails.com/2008/running-a-local-gem-documentation-server-on-mac-os-x</feedburner:origLink></entry>
  <entry xml:base="http://salesforceonrails.com/">
    <author>
      <name>Luigi Montanez</name>
    </author>
    <id>tag:salesforceonrails.com,2008-04-12:22</id>
    <published>2008-04-12T14:10:00Z</published>
    <updated>2008-04-12T14:12:49Z</updated>
    <category term="Ruby" />
    <category term="gems" />
    <category term="textmate" />
    <link href="http://feedproxy.google.com/~r/salesforceonrails/ruby/~3/YrDiYFOxhuU/opening-gems-in-textmate" rel="alternate" type="text/html" />
    <title>Opening Gems in Textmate</title>
<content type="html">
            &lt;p&gt;Here’s a problem: you need to look at a gem’s source code to figure out something, but you need to figure out the path to your gems directory, find the gem in question, and then open it from there. What a pain. Luckily, &lt;a href="http://drnicutilities.rubyforge.org/svn/find_gem/trunk/website/index.txt"&gt;Dr. Nic&lt;/a&gt; has saved the day:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;$ sudo gem install find_gem
$ find_gem activerecord&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;This also comes with the wonderful command ‘edit_gem’. Make sure you have your environment &lt;span class="caps"&gt;EDITOR&lt;/span&gt; variable set in your .bash_login|.bash_profile|.bashrc:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;export EDITOR=&amp;quot;mate&amp;quot;&lt;/code&gt;&lt;/pre&gt;

Save the file and source it:
&lt;pre&gt;&lt;code&gt;$ source .bash_login (or .bash_profile or .bashrc)&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Now, “edit_gem activerecord” does what you think it should do. Nice little pieces of functionality like these really make the term “gem” so appropriate. Hat-tip to &lt;a href="http://effectif.com/2008/3/29/opening-ruby-gems-in-textmate"&gt;Graham Ashton&lt;/a&gt; for sparking my interest to find a solution.&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/salesforceonrails/ruby/~4/YrDiYFOxhuU" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://salesforceonrails.com/2008/opening-gems-in-textmate</feedburner:origLink></entry>
  <entry xml:base="http://salesforceonrails.com/">
    <author>
      <name>Luigi Montanez</name>
    </author>
    <id>tag:salesforceonrails.com,2008-04-09:18</id>
    <published>2008-04-09T18:38:00Z</published>
    <updated>2008-04-09T20:01:32Z</updated>
    <category term="Ruby" />
    <category term="thin" />
    <link href="http://feedproxy.google.com/~r/salesforceonrails/ruby/~3/ATFSW39onbM/presentation-on-thin" rel="alternate" type="text/html" />
    <title>Presentation on Thin</title>
<content type="html">
            &lt;p&gt;Tonight, I’ll be doing a Lightning Talk for the Atlanta Ruby Users Group on &lt;a href="http://code.macournoyer.com/thin/"&gt;Thin&lt;/a&gt;, a Ruby web server. Below are my slides, accompanied by several resources:&lt;/p&gt;


&lt;div&gt;&amp;lt;object height="355" width="425"&gt;&amp;lt;param /&gt;&amp;lt;param /&gt;&amp;lt;param /&gt;&amp;lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=thin-1207766139353517-8" height="355" width="425"&gt;&amp;lt;/embed&gt;&amp;lt;/object&gt;&lt;div&gt;&lt;a href="http://www.slideshare.net/?src=embed"&gt;&lt;img src="http://static.slideshare.net/swf/logo_embd.png" alt="SlideShare" /&gt;&lt;/a&gt; | &lt;a href="http://www.slideshare.net/luigimontanez/thin-344581?src=embed" title="View 'Thin' on SlideShare"&gt;View&lt;/a&gt; | &lt;a href="http://www.slideshare.net/upload?src=embed"&gt;Upload your own&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;

	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://github.com/macournoyer/thin/tree/master"&gt;Thin on GitHub&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://www.garyharan.com/index.php/2008/02/21/rails-development-with-the-thin-web-server/"&gt;Rails Development with Thin&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://blog.ninjahideout.com/posts/busting-a-cap-in-yo-ass"&gt;Using Capistrano with Thin&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://github.com/macournoyer/thin/tree/master/example/thin.god"&gt;Using god with Thin&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://www.misuse.org/science/2008/04/07/thin-vs-mongrel-a-ruby-on-rails-performance-shootout/"&gt;Thin and Mongrel Performance Test&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Thin is in!&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/salesforceonrails/ruby/~4/ATFSW39onbM" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://salesforceonrails.com/2008/presentation-on-thin</feedburner:origLink></entry>
  <entry xml:base="http://salesforceonrails.com/">
    <author>
      <name>Luigi Montanez</name>
    </author>
    <id>tag:salesforceonrails.com,2008-03-29:7</id>
    <published>2008-03-29T00:30:00Z</published>
    <updated>2008-04-01T01:52:06Z</updated>
    <category term="Ruby" />
    <category term="scaling" />
    <link href="http://feedproxy.google.com/~r/salesforceonrails/ruby/~3/u_dsXo_vmDg/rails-scales" rel="alternate" type="text/html" />
    <title>Rails Scales</title>
<content type="html">
            &lt;p&gt;Over on the &lt;a href="http://highscalability.com"&gt;High Scalability Blog&lt;/a&gt;, a writeup on top 10 Facebook App &lt;a href="http://highscalability.com/friends-sale-architecture-300-million-page-view-month-facebook-ror-app"&gt;Friends for Sale&lt;/a&gt; details that two full-time Rails developers and one full-time &lt;span class="caps"&gt;DBA&lt;/span&gt; have, in three months, built an application that serves 200 requests &lt;em&gt;per second&lt;/em&gt;. Yowsers.&lt;/p&gt;


	&lt;p&gt;Much of the criticism of Ruby/Rails performance woes will simply go away this year, what with Ruby 1.9, &lt;a href="http://jruby.codehaus.org"&gt;JRuby&lt;/a&gt;, it’s companion &lt;a href="http://rubyforge.org/projects/glassfishgem"&gt;Glassfish&lt;/a&gt;, and &lt;a href="http://code.macournoyer.com/thin/"&gt;Thin&lt;/a&gt; popping up. Also, &lt;a href="http://merbivore.com"&gt;Merb&lt;/a&gt;, a framework by Rails &lt;a href="http://www.pragprog.com/titles/fr_deploy"&gt;deployment genius&lt;/a&gt; &lt;a href="http://brainspl.at"&gt;Ezra Z.&lt;/a&gt;, will likely inspire some performance enhancements to Rails itself.&lt;/p&gt;


	&lt;p&gt;I’ve always thought that not adopting a development framework just because it doesn’t scale is rather odd. Humans tend to always hold out that irrational hope that yes, some day they’ll be like those famous people on top, even though they’re completely screwing themselves in the present.&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/salesforceonrails/ruby/~4/u_dsXo_vmDg" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://salesforceonrails.com/2008/rails-scales</feedburner:origLink></entry>
  <entry xml:base="http://salesforceonrails.com/">
    <author>
      <name>Luigi Montanez</name>
    </author>
    <id>tag:salesforceonrails.com,2008-03-27:5</id>
    <published>2008-03-27T03:28:00Z</published>
    <updated>2008-04-01T01:52:20Z</updated>
    <category term="Ruby" />
    <category term="Salesforce" />
    <category term="meta" />
    <link href="http://feedproxy.google.com/~r/salesforceonrails/ruby/~3/E0R27wD9P4Y/welcome-to-the-jungle" rel="alternate" type="text/html" />
    <title>Welcome to the Jungle</title>
<content type="html">
            &lt;p&gt;Well, lucky you! You’ve stumbled upon this weird, strange corner of the Tubes. A place where the idealism of an elegant open source project meets the stone-cold reality of delivering quality software within tight deadlines to those who line your pockets. No, this is not just another Rails blog. This is a blog about building web software really fast, under ridiculous constraints, with a multitude of crap hurled your way, and finding joy in it. I don’t profess to have found that joy yet, but hopefully, in what should be a long, fulfilling journey, you and I, my dear reader, will. And I won’t ever use that many commas in a single sentence again. Promise.&lt;/p&gt;


	&lt;p&gt;Luckily, we have some excellent tools at our disposal. You’ve heard of &lt;a href="http://rubyonrails.org"&gt;Ruby on Rails&lt;/a&gt;, the high-flying web framework that everyone’s been writing about since 2005. It’s got that guy &lt;span class="caps"&gt;DHH&lt;/span&gt; who drops the F-bomb a lot and has a funny Danish accent.&lt;/p&gt;


	&lt;p&gt;The hippest nerds flock to it, because it’s a damn good way to built web applications. Ruby is, hands down, the nicest language to code in. Rails (and now &lt;a href="http://merbivore.com"&gt;Merb&lt;/a&gt;), were designed from the ground up to make the lives of web developers better. To make us happier. That’s an amazingly progressive goal, hippy-ish really, and it would have been laughed at by those &lt;span class="caps"&gt;IBM&lt;/span&gt; engineers of yore who wore thick-rimmed glasses out of utility and not out of fashion. But I’ll be damned if I ever code in &lt;span class="caps"&gt;PHP&lt;/span&gt; or Java again.&lt;/p&gt;


	&lt;p&gt;You may have heard of &lt;a href="http://www.salesforce.com"&gt;Salesforce.com&lt;/a&gt;, the enterprise &lt;span class="caps"&gt;CRM&lt;/span&gt; system used by Fortune 500s to Mom and Pop shops to everyone in between. In the past few years (as Rails has been gaining in popularity), Salesforce has become more than just a &lt;span class="caps"&gt;CRM&lt;/span&gt; (customer relationship management). Dubbed &lt;a href="http://force.com"&gt;Force.com&lt;/a&gt;, it’s become a nearly full-blown web application framework, but not in the same sense as Rails. Using Rails, we build web applications by firing up a text editor and coding in Ruby, &lt;span class="caps"&gt;HTML&lt;/span&gt;, CSS, and some Javascript. Using Force.com, we don’t build applications as much as customize the hell out of an existing one. Much is already built for us, but we then need to use a gaggle of technologies to tweak it just right to fit with our users’ needs.&lt;/p&gt;


	&lt;p&gt;Ruby on Rails and Force.com have a lot of differences. Rails is open-source, licensed under the &lt;span class="caps"&gt;MIT&lt;/span&gt; License. It’s free as in beer and free as in speech. Force.com is completely proprietary. Your users will have to subscribe in a per seat/per month arrangement. You host (or pay to someone to host) your own Rails apps, while Force.com apps are completely managed by Salesforce.com (the company). Philosophically, Force.com is a true enterprise framework, while the Rails Core team could care less about making it enterprise (and with good reason).&lt;/p&gt;


	&lt;p&gt;But the two have one striking similarity: they both help web developers build solid applications in ridiculous time. And let me make a bold claim: Force.com completely destroys Rails in development time. It’s not even close. A tool that takes me a day to build using Force.com would take at least a week (and probably two) if I were to use Rails.&lt;/p&gt;


	&lt;p&gt;I’ll let that sit with you, as I’ve said enough for now. In the coming days and weeks, I’ll be evaluating the pros and cons of each web framework, and sharing what I learn along the way. Neither is perfect, but both are pretty great. While there are many great Rails blogs out there, there is (to my knowledge), only &lt;a href="http://gokubi.com"&gt;one&lt;/a&gt; regularly updated Salesforce development blog, with another &lt;a href="http://www.warriorpoint.com/blog/"&gt;newer one&lt;/a&gt;. So, I hope to help fill that void. If this all tickles your pickle, consider &lt;a href="http://feeds.feedburner.com/salesforceonrails"&gt;subscribing to the feed&lt;/a&gt;.&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/salesforceonrails/ruby/~4/E0R27wD9P4Y" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://salesforceonrails.com/2008/welcome-to-the-jungle</feedburner:origLink></entry>
</feed>
