Getting a New App Running on Edge

(cross-posted from Yehuda’s Blog)

So people have been attempting to get a Rails app up and running recently. I also have some apps in development on Rails 3, so I’ve been experiencing some of the same problems many others have.

The other night, I worked with sferik to start porting merb-admin over to Rails. Because this process involved being on edge Rails, we got the process honed to a very simple, small, repeatable process.

The Steps

Step 1: Install bundler (version 0.8.1 required)

$ sudo gem install bundler

Step 2: Check out Rails

$ git clone git://github.com/rails/rails.git
$ cd rails

Step 3: Bundle Rails dependencies

$ gem bundle --only default

Step 4: Generate a new app

$ ruby railties/bin/rails ../new_app --dev
$ cd ../new_app

Done

Everything should now work: script/server, script/console, etc.

When you execute rails APP_NAME --dev, it will create a new Rails application with a Gemfile pointing to your Rails checkout and bundle it right after.

Also notice that in Step 3 we pass --only default to the bundle command. This will skip bundling of both mysql and pg (for postgresql) gems.

Enjoy!

Updated on 01/15/2010 – Rewrote steps to include gem install bundler and use rails APP_NAME --dev.

Spinning up a new Rails app

So people have been attempting to get a Rails app up and running recently. I also have some apps in development on Rails 3, so I’ve been experiencing some of the same problems many others have.

The other night, I worked with sferik to start porting merb-admin over to Rails. Because this process involved being on edge Rails, we got the process honed to a very simple, small, repeatable process.

The Steps

Step 1: Check out Rails

$ git clone git://github.com/rails/rails.git

Step 2: Generate a new app

$ ruby rails/railties/bin/rails new_app
$ cd new_app

Step 3: Edit the app’s Gemfile

# Add to the top
directory "/path/to/rails", :glob => "{*/,}*.gemspec"
git "git://github.com/rails/arel.git"
git "git://github.com/rails/rack.git"

Step 4: Bundle

$ gem bundle

Done

Everything should now work: script/server, script/console, etc.

If you want to check your copy of Rails into your app, you can copy it into the app and then change your Gemfile to point to the relative location.

For instance, if you copy it into vendor/rails, you can make the first line of the Gemfile directory "vendor/rails", :glob => => "{*/,}*.gemspec". You’ll want to run gem bundle again after changing the Gemfile, of course.

The Balance of Convention and Innovation

In which I post an enjoyable quote and some thoughts on standards versus innovation.

Adam Wiggins just posted a few paragraphs by Tim Lind from his article titled Innovation in Database Technology. Rarely do I just post direct quotes here, but I really thought the paragraphs were insightful, so I’ll share them for those that haven’t had the pleasure yet.

That, is why we have really moved away from sql, it is not for any specific approach to scalability or data storage, but rather just the ability to free ourselves from the standardized ideas encapsulated in the standard query language.

I’m going to say it again, moving away from sql allows us to innovate. I’m sure no one will have ill feeling towards the notion of innovation, and standardization is almost the exact opposite, it is the crystallization of previous innovation, so of course it would be what we stand against.

We do not necessarily stand against any specific idea encapsulated by the sql standardization, rather we just choose to open ourselves up to investigating the elements of the system for the sake of making design decisions which provide innovative solutions.

You can’t innovate in a box of standards, thus the “think outside the box” saying. For whatever reason, I had not thought about the step back from SQL from this perspective.

Several people have asked me what issues I ran into switching to MongoDB. The biggest issue I ran into was freeing my mind from the standards and conventions that swaddled me in bed at night. Conventions and standards are great, but they do seem to be at odds with innovation.

We definitely do not want to be in a constant state of innovation, as I am sure that would lead to chaos. On the other hand, if we always stick to conventions and standards, we will never push forward. There has to be balance. After years of the same with regards to databases, it great to see the new ideas over the past year or so.

Thanks to Tim for the observations and Adam for putting them on my radar.

Sweetyhigh.com on the KCal News & ClevverTV.com

ELC Technologies has been developing Sweetyhigh.com, a new social network for tween girls. Founder, Veronica Zelle, is shown in the below clip on Kcal news, emphasizing the safefy benefits and features of Sweethigh.com. Sweetyhight is also highlighted on the below YouTube clip on ClevverTV.com. See and hear more below:
http://www.cbs2.com/video/?id=122775@kcbs.dayport.com

#194 MongoDB and MongoMapper

MongoDB is a document based database engine. Learn how to access it through MongoMapper in this episode.

#194 MongoDB and MongoMapper

MongoDB is a document based database engine. Learn how to access it through MongoMapper in this episode.

(oh my) Zsh themes Gone Wild! 18+

Earlier this evening, I accepted a pull-request for theme number 18, which is now included in Oh My Zsh. To celebrate, I’ve updated the themes wiki page with fresh screenshots.

Here is a sampling of some of the themes that you can use out of the box with <a href="http://github.com/robbyrussell/oh-my-zsh">Oh My Zsh</a>.


<a href="http://github.com/robbyrussell/oh-my-zsh"><img src="http://robbyonrails.com/files/ohmyzsh-themes.png" alt="" /></a>


Oh My Zsh is much more than a collection of themes for your zsh config. It&#8217;s a way of life<sup><a href="http://feedproxy.google.com/~r/RobbyOnRails/~3/1XJ-4fOA1XM/zsh-themes-gone-wild-18#fn1">1</a></sup>.


Also, be sure to follow <a href="http://twitter.com/ohmyzsh">ohmyzsh</a> on twitter now!


<p id="fn1"><sup>1</sup> well.. at least while you&#8217;re in the terminal. ;-)</p><div class="feedflare">