After wanting to try it out for some time I finally decided to jump in and give rails a try. I also thought it would be interesting to blog the process.

Installing rails

I run Mac OS 10.5 as my primary operating system, which ships with Rails installed out of the box. Ok so all I needed to do was update the install. Expecting that to be painful I was pleasantly surprised when it was this easy:.

sh-3.2#sudo gem update rails
Updating installed gems...
Bulk updating Gem source index for: http://gems.rubyforge.org
Attempting remote update of rails
Successfully installed rails-2.1.2
1 gem installed
Gems updated: rails

That was the easiest update to any software I have ever done.

Building the first application

Ok I am going to cheat with this one (because Rails lets me) and type one line to get a working codebase:

bruce$ rails helloWorld
create
create app/controllers
create app/helpers
create app/models
create app/views/layouts
create config/environments
create config/initializers
create db
create doc
create lib
create lib/tasks
create log
create public/images
create public/javascripts
create public/stylesheets
create script/performance
create script/process
create test/fixtures
create test/functional
create test/integration
create test/unit
create vendor
create vendor/plugins
create tmp/sessions
create tmp/sockets
create tmp/cache
create tmp/pids
create Rakefile
create README
create app/controllers/application.rb
create app/helpers/application_helper.rb
create test/test_helper.rb
create config/database.yml
create config/routes.rb
create config/initializers/inflections.rb
create config/initializers/mime_types.rb
create config/initializers/new_rails_defaults.rb
create config/boot.rb
create config/environment.rb
create config/environments/production.rb
create config/environments/development.rb
create config/environments/test.rb
create script/about
create script/console
create script/dbconsole
create script/destroy
create script/generate
create script/performance/benchmarker
create script/performance/profiler
create script/performance/request
create script/process/reaper
create script/process/spawner
create script/process/inspector
create script/runner
create script/server
create script/plugin
create public/dispatch.rb
create public/dispatch.cgi
create public/dispatch.fcgi
create public/404.html
create public/422.html
create public/500.html
create public/index.html
create public/favicon.ico
create public/robots.txt
create public/images/rails.png
create public/javascripts/prototype.js
create public/javascripts/effects.js
create public/javascripts/dragdrop.js
create public/javascripts/controls.js
create public/javascripts/application.js
create doc/README_FOR_APP
create log/server.log
create log/production.log
create log/development.log
create log/test.log

The one command creates the complete working application, sweet. Now how do I run this?

Running the rails application

Apparently running the application is just as easy:

bruce$ cd helloWorld
bruce$ script/server
=> Booting Mongrel (use 'script/server webrick' to force WEBrick)
=> Rails 2.1.2 application starting on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
** Starting Mongrel listening at 0.0.0.0:3000
** Starting Rails with development environment...
** Rails loaded.
** Loading any Rails specific GemPlugins
** Signals ready. TERM => stop. USR2 => restart. INT => stop (no restart).
** Rails signals registered. HUP => reload (without restart). It might not work well.
** Mongrel 1.1.4 available at 0.0.0.0:3000
** Use CTRL-C to stop.

Conclusion

So after getting my feet wet, I am definitely keen to have a deeper look in to Rails, so apparently it is time to learn Ruby. And what the heck, I might play around with Watir on the way, just to see how close it’s cousin WatiN really is.

3:45 They are showing the Brian the build bunny video. Details are here http://www.woodwardweb.com/gadgets/000434.html

3:48 Back to the flotzam loop

3:49 Win an XBox competition slide … again. (Wasn’t this supposed to start at 3:30 )

3:50 Windows Azure Full Armour case study video

3:55 Another Windows Azure video … oh joy

3:57 Finally the stage … Norbert is giving the introduction

Ok I am betting that this will just be a 1 hour Azure marketing event …

3:59 Norbert is still giving the introduction … and outlining the 3 hour long agenda

4:00 Win an XBox competition slide … again.

4:01 Steve is on stage. Apparently he is excited to be here. That is very not like Steve !

4:02 Developers ! Developers ! Developers ! There is the catch phrase.

Stevebalmer.gif

4:05 Steve is outlining the updated vision statement that talks about the magic of software

4:07 He is pointing out how old he is and about the “old weirdo mainframe programmers” he used to hire

4:08 Now moved on to the glory days of the “super cool” PC programs that followed the mainframe era, pre web.

4:09 Outlining the how the web was a push back towards the mainframe. And the importance of seamless experiences and S+S

4:10 Key goals: Rich Client, Cloud services, plus simple programming.

4:12 Talking about the importance of good user experiences and the social web.

4:13 “Every time there is a new trend, we write a new operating system.”

4:15 Azure is designed to “liberate” developers from operational issues …

4:17 Azure is designed to allow you to run arbitrary code in the cloud.

Yep … looks like a 3 hour long Windows Azure sales event …

4:24 “Outlook is the best email client in the world”

4:27 Announcing Bizspark program for startup companies

4:31 Outlining that you should choose development as a career

Q&A time … scripted questions …Nick Weinholt is first

Q: “What are the most exciting new products that isn’t windows 7 or Azure”

A: “Windows Mobile 7, Live v.next … sharepoint”

Q: “In todays world talented developers and designers are being pulled into non MS platforms i.e. iPhone, android etc. Is there going to be a MS portal so developers can make money”

A: “Everyone likes to make money. There is some good work with Facebook and the iPhone which makes it easier to expose your application. There is more Microsoft can do. The aren’t going to disclose at this point but they are hard at work.”

Q: Hoe does the cloud platform encorporate Australia which does not have high speed internet”

A: Laughs, and expects to get in trouble. The world is going to move, but not overnight in the business side. The best thing in the world is to be somewhere you can get HIGH speed internet at a reasonable rate. There is a debate going on, between government, telcos, blah blah blah. Australia is first world and they need to get on with it. I don’t know what that means.”

Q: Can you explain why IE is still relevant when there are open souce rendering engines which are much better.

A: Cheeky. Good quesiton. What does the future of the browser look like. If all browsers are going to is be standards compliant with no innovation then that is true. However it is important there is a browser that allows you to innovate. Apple’s use of the open source webkit is interesting, but we have a great team.

If you want to follow up, he is steveb@microsoft.com.

Runs off stage …

Norbert is asking people not to leave … Sorry I am. It’s been fun. See ya.

“See ya George, and don’t let the door hit you on the ass on the way out” – Paul McDermott on Good News Week. Amen to that.

Next time you disagree with how I have triaged a bug, you might want to keep these photos in mind.

Terminator Terminator

The next next project I will be working on is called skynet. This was for a halloween party last night.