Firebug 1.0 Beta Screencast

Just a couple days ago Firebug 1.0 Beta was released, with loads and loads of new features. Roger Johansson calls it the web developer tool of the year:

With the recent release of Firebug 1.0 (beta – the old kind of beta, not a Web 2.0 eternal beta), this extension went from “great” to absolutely marvelous. A must have that no Web developer should do without. I’m serious – you need Firebug.

I absolutely agree. In the short time since it’s been released, I’ve used it to track down an obscure bug with Rails AJAX auto-completion helpers, debug the CSS on this blog, and inspect the AJAX behavior of Campfire to add new features to Marshmallow, the unofficial ruby Campfire API (look for a gem release soon!).

So, this morning, I did a short screencast demoing some of my favorite features of Firebug – some new in 1.0 Beta, and some there since the beginning. Here it is:

This is my first screencast, so go easy on me. :) Hope you enjoy!

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