2 Posts tagged with caboose
RailsConf '07 Roundup
David Heinemeier Hansson, by James Duncan Davidson. Creative Commons BY-NC-ND
I spent the past several days in Portland, OR, for RailsConf, the yearly gathering of the vibrant Ruby on Rails community. O’Reilly Media and Ruby Central put on an incredible conference. My only disappointment was that I couldn’t attend all of the presentations. Luckily, most of the presentation slides are online (some with accompanying code!!):
But by far, the most valuable part of the whole event was the time I spent in the hallways and around Portland with other Rails developers. In the two years I’ve been working with Rails, I’ve networked and collaborated with dozens if not hundreds of Rails developers online. It was great to finally be able to associate faces and voices with their respective names, blogs, and chat handles.
I also wrangled Erik Kastner and Charles Brian Quinn into the Capazon project while in Portland – look for some updates on that front in the near future.
A special thanks to the following folks for making my RailsConf an especially great time:
Updates to Marshmallow, the Campfire bot
At work, we’ve been using Campfire, the wonderful web-based group chat application from 37signals for a while now, and have found it essential in our virtual environment.
I recently discovered Marshmallow, the unofficial Campfire API, and setup deploy notifications, and couple other little hacks to keep the virtual office up to speed. However, Marshmallow was missing a critical feature (in my mind): the ability to watch and process others’ messages in the room. So, I spent a couple minutes this morning and added a new watch method:

I also added a new topic method to set the current room’s topic – we use it to match Basecamp project numbers and put the project URL in the topic.
The SVN server for Marshmallow seems to be down, and I can’t seem to get in touch with court3nay, so I figured I’d just let this loose. Without further ado, here’s Marshmallow 0.3.
Example Usage
#!/usr/local/bin/ruby
require 'marshmallow'
bot = Marshmallow.new(:domain => 'yoursubdomain')
bot.login :method => :login, :username => "email@you.com", :password => "secret", :room => "34567"
while(true)
bot.watch do |m|
bot.say("Hello, #{m[:person]}") if m[:message].match(/^(hello|hi|hey)$/i)
end
sleep 3
end