Posts Tagged ‘railsrumble’

My First Plugin

Posted Sunday, July 19th, 2009 by Youssef Chaker

Working at a small company like OSC allows for group bonding “work” activities such as RailsRumble, which create a good working environment and helps develop our skills. If you don’t know what RailsRumble is, it’s a competition where teams of 1 up to 4 members develop a Ruby on Rails application in 48 hours from scratch. If you don’t know what Ruby on Rails is, you can’t be saved :P . The competition is fun, or at least the OSC team is fun (no bias what so ever) because you get together with a group of people, sometimes teams share office space, and work your brain until you pass out. One of the things this competition teaches us is managing time. What you can do in 48 hours might vary from person to person, but it’s still 48 hours people!

Our entry for 2008, see blog posts here and here, used a SMS service called Zeep Mobile. We needed to be able to communicate with our users, specially those who would be using our app on the go, and texting was the best solution. We came up with the idea for our app the day the competition started, so we didn’t have time to do a lot of research on providers and available APIs for such a service. In retrospect, Zeep Mobile still seems the best free solution there. The one problem with this service is that the learning curve turned out to be too steep for the 48 hours we had.

One of my teammates was charged with handling the integration between Zeep Mobile and our application. That task took about a day, half the time we had to build EVERYTHING! That is too much time. So a light bulb lit above my head. I always wanted to contribute to the rails community but have never had the way to do it. I have no experience building plugins or gems, so this was a good project to learn. Unfortunately, I discovered what my teammate had a year ago, how hard it is to integrate Zeep Mobile!!!

No Worries! ZeepIt is here to help :D

My first plugin, ZeepIt, is designed to get your app ready to go with Zeep Mobile. All you have to do is install the plugin and you automatically have a URL for Zeep Mobile to forward SMS to and a way to parse those texts. The plugin uses the zeep/messaging gem provided by Zeep Mobile to provide a the MVC structure needed to leverage the service.

The plugin is available on GitHub: http://github.com/ychaker/zeep_it/tree/master
Documentation is available on Rdoc.info: http://rdoc.info/projects/ychaker/zeep_it
References:

If you have any comments, questions or concerns please feel free to contact me which ever way you like. I would love to hear your feedback. ZeepIt is also on twitter @ZeepIt. (by the way, as I said, it’s my first plugin, so be gentle)

Azimuth Treasure Hunt App: Release the Hounds!

Posted Tuesday, October 21st, 2008 by Arin Sime

As Eric already indicated in a previous post, this past weekend 4 members of the OpenSource Connections team competed in Rails Rumble 2008.  We built a Ruby on Rails app in less than 48 hours, which we called Azimuth and you can see it online here.

Azimuth is a fun little app that allows you to create “treasure hunts” for your friends, where they get SMS text messages indicating what the next clue is.  They have to go find the “treasure” related to that clue, and then text back to Azimuth that they found it.  To prove they found it, they have to either text back the latitude and longitude of the treasure, or text back a “key” word, which presumably the person who organized the hunt would have left at the site of the treasure.

It was a lot of fun building the app, and although it was an intense weekend, I think we all really enjoyed it.

But to put Azimuth to the test, I decided on Monday night to setup a treasure hunt for my sons and some neighborhood kids.  I hid five post it notes around my house, each with a “key” written on it.  I opted to go for keys instead of lat/lng coordinates since I was doing everything in a limited geographic area, and I don’t have a gps device.  But for wider hunts, you could also use lat/lng.

Then I got my sons and a few of their friends together, gave them my cell phone, and told them how it worked (in case you’re wondering, yes, my son is wearing a box in the picture.  he does own clothes, he’s just building his own halloween costume and likes to wear it!).  My sons haven’t texted much before, but two of the girls from the neighborhood who were over at our house already know all about texting.  So they had no trouble with my phone.

It was great watching the kids as the ran from one part of the house to another trying to figure out the current clue.  After they found it, they would text back to azimuth a message like “azimuth1 piano”. This indicated that they had found the blue post-it note I hid on the piano, which used the “treasure” keyword piano.  The “azimuth1″ prefix on the message is required for all messages. This allows the free SMS toolkit we used, Zeepmobile, to know what software app to send the message to.  Our code then receives the text message on a landing page and processes it.  If the code determines that the key the kids typed was correct, then our website immediately sends them a follow up text with the next clue.  If they mistyped the key (which they did at one point), then a text message gets sent back letting them know to try again.

The kids absolutely loved the game, and I’m probably going to get in trouble with their parents because they went home asking to borrow Mom and Dad’s cell phone and play another game.

My oldest son really likes the whole idea, and so he immediately went about setting up his own treasure hunt.  He and I typed the clues into the azimuth website, and then sent the kids on another hunt around the house.

Regardless of whether or not we rank well in the Rails Rumble contest, I hope we will be able to continue hosting this site somewhere and begin to more actively promote it, since I think a lot of people would enjoy it.  The code isn’t bug free right now, but I think it’s actually pretty impressive how close we came to a bug free solution in only 48 hours.  That says a lot about the ease of Ruby on Rails, as well as the quality of my teammates.

Speaking of my teammates (who rock), here’s a photo of the team having a toast at the end of the celebration.

From left to right:  Arin, Michael, Youssef, Ashish, and Eric.  And just for the record, Michael wasn’t actually part of the Rumble team, he was there working on another project for the weekend (Rumble teams are only allowed four members).  Don’t we kind of look like the power rangers in our multicolored shirts?

To wrap up, is Azimuth just for kids treasure hunts?  Heck no!  I can see all kinds of people having fun with Azimuth: college fraternities or sororities, high school kids, scout groups, co-workers, pretty much any group of people looking for a fun twist on scavenger hunts.  You can setup a hunt around your house like I did, or around your town, or even around the world!  There’s pretty much no limit to the fun you can have with this.  My wife is already planning a neighborhood treasure hunt for the next block party.

Oh, and please vote for our app in the Rails Rumble contest!  Youssef really wants to win.  Seriously.  The guy woke us all up early Sunday morning saying “I want to win!”  He must want that kung fu lesson with Chuck Norris.

Let’s Get Ready to Rumble!!!! Again!!!!!

Posted Friday, October 17th, 2008 by Eric Pugh

RailsRumble is back, and this year we’ve got a great team, made up of some returners, and new folks. We’re feeling really optimistic that one of us will be walking around with a new belt.

Returning from last years competition, are Eric Pugh and Ashish Tonse. Joining us are first timers Arin Sime and Youssef Chaker. Michael Herndon, who was on last years team is hanging out for the weekend as well, but working on other stuff. But he is here in spirit!

Our entry this year really ties into our evolving “Business Tags“. It’s a location aware application that integrates disparate datasources, and in the true Web 2.0 fashion mashes up multiple data streams.

Oh, and we’re using our OpenApproach, but instead of 3 week sprints we are doing 3 hours sprints. The first one, themed “Git Started” runs from 9:45 PM till 12:45 AM!