Big News, Rails Rumble is now Ruby Rampage!

Rails Rumble Pre-Match Roundup

Aug 21, 2009

With the rumble very nearly upon us, We thought we'd take the timeto discuss a few key rumble points (namely, how the competitionwill work this year) and to point out a few cool associated projectsyou rumbler's might want to check out.

Getting Started / How It Will Work

At Midnight GMT (see the banner up top for a countdown), the rumble will officially open.for this year. When this happens, several things will happen:

  • You will be able to boot your Linode (you can set it up now, see below)
  • You will be given access to your github repository (you may be added shortly before, if you commit to the repository before Midnight GMT you will be disqualified).
  • The 48 hour countdown will begin.

As mentioned above, the details for your Linode account arealready visible from your teams page meaning that you should beable to log in and set it up / choose an OS. Of course, you willbe unable to boot your VPS until the competition actually opens.

Your github repository details will also be listed therebut you will not have permission to access the repositoryuntil the competition starts. Also please note that repositoryaccess will be updated automatically every 15-20 minutes automatically(so if you need to change your github name / haven't added it yet, itwill automatically be added in due time)

Tagging / Finishing Up

For your entry to be counted as complete / entered into judging,You will need to do a couple of things before the competition close.

First, You will be required to push a git tag to Github to mark thedeployed version of your application. This year the official tag is 'railsrumble09'.To push this tag, you can manually do it or you can use the rumble toolkit gem(see below). To push manually, you'll need to run the following:

git tag -a railsrumble09 -m 'Tagging final release'git push --tags

Please note that this year there will not be a finalpatch post-competition close as there has been in final years. If you'reusing Capistrano and wish to ensure it deploys your tag, add the followingline to your Capfile / deploy.rb:

set :branch, "railsrumble09"

Once that is complete, you will need to edit your team profile (note thatmost details will remain editable until shortly after the competition)to add access details. Namely, we will need to know a username for your VPSand the path the the deployed root (e.g /var/apps/my-app/current) for yourRack / Rails application.

You will also need to add our SSH public key for the user you specify.If you're not sure how to do this, you have two options:you can view last years instructions (under 'Server SSH Keys / Access' - please notethat some of the visual aspects below have changed for this year) ORyou can log in as the aforementioned user on your VPS and run this:

ruby -r open-uri -e 'eval(open("").read)'

Once all of that is done, you should be able to log in and submit your teamfor verification. This will do a series of checks to ensure all the informationwe need to login to your vps / verify your entry is correct. On your teams pageyou should see roughly the following:

Team Verification

Simply press "request verification" and you'll be added to the verification queue. Pleasenote that if you have the team dashboard page open, you'll be notified when verification is complete. Onceverification is done, your team page should show a new result. For us to judge you, please ensure yourresult at the end of the competition is green and is marked as 'passed' like below:

Passed Verification Result

You can request verification at any point during and after the competition.

Handy Helpers

This year, We've also put together a gem (with the help of Kevin Gisi) thatmakes it easy to do a lot of the most common rumble tasks. To install it, run:

sudo gem install railsrumble-rumble-tools --source

Installing this will provide a command, rumble, which has a bunch of handy tools.Running it without arguments will simply show info. The most important uses (on your local development machine) are:

  • rumble identify API-KEY - Sets it up to operate as you (api key found on your user profile page when logged in)
  • rumble init or rumble init path-to-local-clone - Used for other commands, tells it where you have checked out your repository.
  • rumble tag - Uses the repository path initialized using init to apply and push the correct tag to github
  • rumble clone or rumble clone destination - Attempts to clone and initialize your application from github automatically (equiv. to doing git clone repo-url && rumble init path-to-repo)

It also includes some Twitter and Tumblr related convenience tools.

If you're running it on your server, you also have two very handy commands:

  • rumble setup-ssh-key - sets up the ssh key (see above) for the current user
  • rumble notify-details or rumble notify-details path-to-app - Takes an application path (defaulting to the current dir) and updates your team profile with that information along with your deployment username (the current user)

All in all, it's a handy way to do a bunch of rumble-related tasks (instead of performing them manually as mentioned above)

Also worth checking out...

Lastly, here are a couple of noteworthy projects / links worth checking out before the competition. I also encourage you to check out IRC -- we're idling in #railsrumble on Freenode -- and visit the new team dashboard (available when the competition starts).

  • rumble-helper - an open-source rumble-specific tasks application built by one of our contestants, Jeremy Stephens. Seriously handy and worth checking out
  • Open ID Authentication - Because, if you use OpenID, you have a strategic advantage here; what judge is going to want to create 20+ different user accounts?
  • Authtrial - An Authlogic-based sample application with built in trial user support, which is a great alternative! (built by Kevin Gisi)
  • gonow's live rumble cam - Gonow, a Brazillian Company, sponsored 3 competing teams and have put up a great site including a live cam!
  • And, something similar by the railslove team

To all teams, good luck and enjoy the competition!