Skip to main content

Mobomo webinars-now on demand! | learn more.

To start, I really want to say thanks to the Rails Rumble organizers; this event gave us an opportunity to practice using Rails 3 and to bring into reality some of the ideas floating around in our minds. It was also a great chance to work with people whom we don't always get to work with.

Unless you are a solo contestant in the Rails Rumble you have some teammates that you'll need to collaborate with. If you're lucky enough, your team members may live close to you, which means that maybe you get to work face to face, coding together, fleshing out ideas together, maybe even eating together. But I think many of the teams are distributed, like ours was. We were each in different places, different cities, and even different countries.

Communication Options

The efficiency and quality of communication becomes an extremely important matter in a 48-hour competition like the Rails Rumble. Since my Rumble team was distributed, we talked beforehand about how we would handle communication during the competition. We considered several communication tools:

  • Email
    Although email was a practical tool to exchange ideas before the competition, it would not have been the best tool during the competition. Email isn't quite instant enough when you need immediate and interactive feedback from teammates. Additionally, using email as a main source of communication means that you have to check your inbox frequently, which is a distraction in and of itself. Sifting through other unrelated emails from friends, family and colleagues would have interfered with our focused attention on the Rumble.
  • IM
    We did consider using an instant messaging service like Skype to build a chat group. Although IM communication is instant, it still was not interactive enough for our needs. Sharing mockups, screenshots and files is a cumbersome task through IM; each time you send a file, everyone has to click to receive it and if someone is away from the desktop at the moment, he/she may miss this file. Moreover, as your conversations get longer over the course of 48 hours, you may find the chat logs are going to be a mess. It becomes difficult to identify which messages are replying to which questions. And there will be times when you really want to go dark and focus on your work. The IM alert notifications can start to drive you crazy, but if you close the IM, you'll probably miss out on important information from you team.

Why did we use Present.ly?

We chose to use Present.ly as our communication tool during the Rumble. Present.ly is a private micro blogging system. It uses XMPP like most IM services use, so it's instant. But unlike IM, the messages are well organized thanks to the way it uses threading to display message replies. Plus, there are no messy chat logs to sift through! We use Present.ly at Intridea every day as our main tool for collaboration and communication across projects, so we were already comfortable with the application and knew how well it would support our unique needs as a distributed Rumble team.

Present.ly In Action

At the beginning of the competition we created a new private group under our Intridea Present.ly account. We stayed on our group's page during the 48 hour event so that we would not be distracted by messages from the main corporate stream and so that our conversation wouldn't interrupt other work going on at the same time.

Personally, I like using Present.ly in Fluid, because Present.ly supports the sound and Growl notification alerts specifically for Fluid. This feature was very useful when I was waiting for time-sensitive answers from my team. But when I didn't want to be disturbed, pressing the 'Mute' button on the page turned off the notification alerts.

Present.ly also enabled us to collaborate efficiently as programmers: we set a post-commit hook, which sent messages to our Present.ly group after each commit. Using the commit notifications ensured that everyone was as synchronized as possible during the competition.

Let me show you some of our real examples during the Rumble:

Here is the post-commit file:

 #!/usr/bin/perl  # change your username and password, then copy this file as .git/hooks/post-commit # then 'chmod +x .git/hooks/post-commit' # it'll run every time you commit (not push, mind you)  $username=''; $password=''; $git_text = `git log -n1 --pretty=format:"#commit (%h) %s"`; $git_long_text = `git log -n1 --stat`; chomp $git_text; chomp $git_long_text; `curl -k "https://intridea.presently.com/api/twitter/statuses/update.xml" -u $username:$password -d status="d imgateway $git_text" -d paste_text="$git_long_text"`;

Here is example of the commit message on presently:

Commit message

Here is an example of the threading view:

Threading view:

Here is an example of file sharing:

Filesharing:

There are a lot of communication and collaboration tools out there. But Present.ly was built by a development team at Intridea that understands the specific needs of real-time communication. So why not give it a try in next Rumble? And if you're not already using it for collaboration in your company, I recommend using it for that as well. It's a free and robust tool that helps to bring the power of real-time communication to teams of all sizes. I'm sure you will love it!

Categories
Author

This weekend was the fourth annual Rails Rumble event; a software contest among Rails developers, in which smalls teams of coders bring an app to life in just 48 hours. In the week following the Rumble, the apps are judged by an expert panel of judges, winners are selected, and honor is won.

Intridea is no stranger to the Rumble. We've sponsored the event for the last three years, and we've had teams participating since the event was jump-started in 2007. Intrideans have created some interesting applications, like Run1Mile, Lyricist, Love+Loathe, Thingivore, Celebrity Passage, and Smacksale - a deal aggregator that's still collecting data and publishing the hottest sales, even today!

This year we have a notable presence at the festivities. Not only do we have several teams competing, but our Senior Partners Chris Selmer and Yoshi Maisami are on the expert judge panel. Additionally, Kevin Gisi, an engineer and open source advocate at Intridea is one of the Rumble organizers. We love supporting the Rails Rumble because it's a healthy competition that inspires innovation, and exemplifies the power of Ruby and Ruby on Rails.

Here's an overview of the smart apps coming from the Intridea teams this year!

RailsWizard

A Rocket-Fueled Kick in the App

Team: The Lonely Intridean

  • Michael Bleigh

Veteran Rails developer and open source evangelist, Michael Bleigh, came up with RailsWizard, a web-based rails application template wizard to help you get up and running even faster with your Rails app. Keeping true to the Ruby and Rails spirit of making the developer's life easier, and to keep you from continually reinventing the wheel, Michael delivers a bright solution to circumvent the often tedious first steps of creating a Rails app. The application is open-source is available for forking on Github.

tldr.it

a.d.d. approved news reading

Team: My Other Car Is Your Face

  • Jeremy McAnally

TLDR.it is an essential tool for the aspiring content minimalists on the web! With the overwhelming number of RSS feeds we all subscribe to, news sites that we frequent, and blogs that we love to read, it can be cumbersome to sort through all of the cruft to pinpoint the articles that we find immediately relevant. TLDR.it intelligently summarizes the content in a targeted article and gives you the short-winded version of the content, allowing you to browse more (and hopefully more relevant) chunks of data in a shorter span of time. To see the awesomeness for yourself, try it out with NYTimes, FoxNews or CNN.

IM Gateway

Team: This We Can Have

  • Dingding Ye
  • Daniel LV
  • Terry Tai
  • David Potsiadlo

IM Gateway is a super useful notification service that allows you to communicate with your application users in real-time. Using the IM Gateway API, you will be able to harness this powerful collaboration innovation and contact users from their own web applications. It acts as the IM gateway service that allows users to register their accounts with GTalk, MSN, Yahoo!, AIM, and Jabber in order to send messages to their contacts that are logged in to the site.

It's really easy to integrate IM Gateway into your application. Now, you'll never have a gap between IM notification and your web application. Just register on IMGateway and you and your users are ready to communicate!

Twazinga

Team: ZOMG Hungry

  • Jon Kinney
  • Matt Margolis (mrmargolis)
  • Chris Johnson (johnsonch)
  • Andrew Kaempf

Jon Kinney worked with his friends to create Twazinga - a purely fun app that provides entertainment by allowing users to mashup tweets and photos from Flickr. On the site you can search for anything on Twitter, target keywords from your search, and then use those keywords to search Flickr for related images. Then, Twazinga pairs those up in a pretty interface and allows users to vote the mashups up/down. Jon Kinney says, "It's all random (and hopefully hilarious) public information, but the twist is that it's guided by you! The hope is that we can create a more generic icanhascheezburger type site that allows users to create the hilarity themselves. If a friend posts a particularly funny overheard on Twitter, hit up Twazinga to pair a funny image with it and reply to them or share it with your own followers. If you don't like the image that was returned you can hit "regenerate" to search Flickr again with the same keywords. Or if you are in desperate need of a laugh but the tweet you want to mash up with is missing a little something... you can use the "Extra weird?" checkbox to pepper in some hidden keywords and no one will be the wiser!" As more mashups are made, the Top 10 will be crowded with hilarious pairings of tweets and correlating images.

Categories
Author

The Rails Rumble event is entering its fourth year, and here at Intridea, we're very excited. Registration has just opened, and we're looking forward to some friendly competition!

The Rails Rumble is a 48-hour competition where teams of one to four developers design, develop, and deploy a web application in (you guessed it!) a 48-hour time period. After that, the submissions are examined and then weeded down by a panel of experts, and the top submissions go to public voting. Then, prizes!

The Rumble is a great way to kickstart your experience with Ruby on Rails (or any Rack-based framework), but it's also a great way to get noticed. Several Rails Rumble projects were eventually sold, or picked up investors, so don't rule it out!

Last year, Intridea was a heavyweight sponsor, and team members created some really cool projects, including SmackSale, CelebrityPassage, and Thingivore (read Michael Bleigh's post on his experience last year, as well as some tips for making the most out of the 48 hours).

Among Michael's tips were: leverage gems and plugins, have a general plan, avoid implementing changes at the last minute, and definitely socialize with other Rumblers!

This year, Intridea is also stepping up as a heavyweight sponsor, in addition to contributing the logo for this year, thanks to our awesome designer, David Potsiadlo.

Intridea has already signed up several teams - and you should too! Head on over to http://railsrumble.com to get registered, and we'll see you in October!

Categories
Author

Thingivore.com

The time has come and gone: the 2009 Rails Rumble is over (from a code perspective, anyway). This year myself and the other members of my team (Brent Collier, Dave Naffis, and Ping Yu) put together Thingivore, a place to show off your collection of movies, games, and books online. As one might expect from a 48-hour marathon application development experience, it was a mixed bag of elation, frustration, fist-pumping and head-hanging as the hours drew to a close. I wanted to take some time to document some of my “lessons learned” so to speak for future Rumblers and app developers in general.

Good Idea: Have a Server Configuration Guru

While the Rumble is primarily a coding contest, it’s important to note that someone on your team needs to be able to get that Linode server up and running. By having someone who can configure centos servers in their sleep on your team, you don’t have to sweat bullets at the prospect of “just getting it running.” In fact, Dave Naffis (Intridea co-founder and Rails deployment genius) came in and 45 minutes later said “OK, just hit cap deploy deploy:migrate” whenever you want to update the server. This is including setting up DNS for thingivore.com, getting Ruby, Rails, Apache, Passenger, MySQL, and CouchDB all running and probably all other manner of dark magic I can’t comprehend.

Maybe it’s because I’m not a server configuration guy, but that’s exactly the point: I didn’t have to worry about it and could focus on the design and development instead of worrying about whether or not we were going to get it running on the competition machines.

Bad Idea: “Let’s Try Something New!”

For some crazy reason, I decided that I wanted to use the Rumble as a way to experiment with new technologies (primarily CouchDB). Do not do this. The Rumble is a time to take the skills you know like the back of your hand and apply them with laser-beam focus to build something awesome and complete in 48 hours. While I’m happy with our product, there are reams of features that were cut while I scrambled to understand some of the complexities of complex sorts and other issues with CouchRest and CouchDB.

Of course, it was also fun to learn a new technology and use it in a “trial by fire” circumstance, but ultimately if you want to build something that can win the competition it’s probably better to stick to your guns.

Good Idea: As Many Plugins As You Can Actually Use

Ruby and Rails provide some of the most powerful collections of reliable code that you could hope for. We were originally planning to go 100% with CouchDB for the project, but when it became apparent that we would have to roll our own OpenID authentication we decided to slap MySQL in as well (only for user models) so that we could make use of AuthLogic and its OpenID extension. This saved us who-knows-how-many hours of work.

We also used some powerful Javascript libraries to achieve some impressive visual effects quickly and without too much pain. When planning your app, think about what technologies you’re using and make sure that there is sufficient library support to get you where you need to be in 48 hours.

Bad Idea: Plans Are For Sissies

This one is somewhat obvious, but it’s a good idea to have a strong game plan heading into something as time-limited as the Rumble. It was unavoidable in our case as I was on my honeymoon in Paris until (literally) the day before the competition, but planning in advance would have meant that every team member was utilized every moment they were available instead of spending time figuring out who should be doing what.

That being said, I think there is also value in not planning too much. During the competition there will be times when you see things that work and you need to let the application grow organically instead of mechanistically sticking to your original gameplan.

Good Idea: Hang Out In IRC

The #railsrumble IRC channel was a good place to be throughout the competition. You get direct access to a couple hundred other competitors as well as the organizers of the competition. If GitHub goes down, if there’s confusion about the rules, you’ll get your answers in a couple minutes.

It’s also just fun to feel the energy of the competition and everything from “Got it deployed!” to “so much left to do and so little time zomg”. I wasn’t able to physically be in the same area as any Rumblers, but I still had a great time and lots of comraderie on the IRC channel.

Bad Idea: Last-Minute Anything

You will have things to do until the last minute. Do not do them. You will have features you want to implement in the last 2 hours. Do not implement them. You will want to tweak the style, tweak a view, tweak something that seems important (but isn’t app-crashing) in the last 20 minutes. Do not do it. Last-minute changes that aren’t to address specific, serious bugs are a terrible idea when you won’t have a chance to fix new problems you introduce.

Next year I am going to try to force myself to spend the last 2-3 hours of the competition doing nothing but finding showstoppers on the production site and fixing only those things. Our OpenID flow was damaged in the last hour of the competition (for registration, not login) and we didn’t catch it until after pencils down. Never again!

Best Idea: Compete in the Rumble!

All in all, you can’t go wrong joining in the Rails Rumble. While your family and non-developer friends probably won’t quite understand what’s wrong with you (“You work 40 hours, over a weekend, and don’t get paid?”) you will have a blast and will learn a lot about how to build things inside a pressure cooker. I know that I plan to be back for next year’s Rumble, and my thanks go out to my team and everyone who made it possible!

Update: I forgot one more bad idea because I didn’t realize it until later…Bad Idea: Forget to Add Google Analytics to Your Site. You know that you will be curious about your visitors as the judging spins up, but if you forget to add analytics (as I did) you won’t have much information at your disposal!

Categories
Author
1
Subscribe to Rumble