As part of our build management and continuous integration server, we have everything automated (including versioning, branching, Perforce and Jira integration, automated release notes, built in automated unit tests, etc. etc. etc.), and integrated with our existing platforms. And that’s just what we’ve setup so far, and when managing a codebase that is used globally, this makes our lives much easier. However, one thing we were missing was simpler notification, and more…how should I say this…”in your face” notification of when a build or unit test fails.

The solution we found for that was nabaztag, which we discovered would work quite nicely with the setup we are using. Sure, we could have gone with a flashing siren (and we do have email/IM notification as well), but the nabaztag lights up, its ears move, and it talks. And the nabaztag is hooked up to its own overpowered speaker system. So now we have soothing voices from Britannia telling us what was broken and by whom, automagically. And it has just the right edgy tone of a schoolmaster chiding a whiny, petulant engineer who is probably hopped up on caffeine and belly flops. There’s also the hint of a Joshua from Wargames just eager to launch some thermonuclear missiles if this doesn’t get sorted out right away. Motivation.

By the way, we named our Nabaztag “High Prince Ernesto McCleod of the Clan McCleod, Guardian of the Build, Defender of All That Is Good and Just.” And he is an immortal. (Thanks to Jeff for the unboxing pics)

Of course, once we had this system in place, we started figuring out what else we could do to it (break it, hack it, etc.). There are a few iPhone apps that can integrate with Nabaztag, but the one we settled on was My Bunny (iTunes App Store link). Namely because it was free. And also possibly the worst reviewed app on the store right now, but it does exactly what we want (that being letting us abuse the vocal powers of nabaztag while simmering in meetings), and, once again, it was free. So well done there, My Bunner creator(s).

However, one often wants a bit more speed when using a nabaztag for evil while sitting at one’s desk, instead of pulling up the iphone and going through all that interface. And considering we have so much fun around the office using Terminal’s built-in say command via Quicksilver (which is the best software ever written, only rivaled by Beyond Compare), I cooked up a Quicksilver Action which allows us to make nabaztag do the talking for us.



What it does:

Allows any text to be sent to nabaztag, and thus spoken aloud by nabaztag, via Quicksilver on Mac OS X. Nabaztag can also play MP3s, and we’re playing with that (hello mosquito ringtone!), and I may offer this one up as another Action later as well, though it is a simple change if you are daring:

Change this line:

set url_target to quoted form of ("" & nabaz_sn & "&token=" & nabaz_tk & "&tts=" & nabaz_text & "&voice=UK-Leonard"

To this:

this set url_target to quoted form of ("" & nabaz_sn & "&token=" & nabaz_tk & "&urlList=" & nabaz_text

Why do I want this?


Feature list:

Now, to infer this Quicksilver Action is feature-rich enough to warrant a features list is a bit over the top, but I’m going to do it anyway.

  • Integrated growl support, for both success and error messages
  • Built in Applescript
  • Integrated text/urlencoding for the message, since nabaztag’s API seems a bit touchy
  • Configurable Serial Number and Token, since these are unique and you’ll need to change them to use them with your specific bunny
  • Right now it defaults to use the “UK Leonard” voice, because that is one cool sounding cat, and this can be changed in the script, but there is no support to dynamically select a voice

How to use:

  • Clearly, this is for OS X only.
  • Drop the scpt file into your Quicksilver Actions library (~/Library/Application Support/Quicksilver/Actions). This is your user Library (/user/username/Library/), not the global Library. If you do not have an Actions folder, you can go ahead and create one and then drop the file in there.
  • Update the nabaz_sn and nabaz_tk variables to your Nabaztag’s Serial Numbers and Tokens respectively (which you can get from your nabaztag account). The script will not work without these, and chances are if you run into any errors it is likely due to an incorrect Serial Number or Token or both.
  • You may need to restart/refresh Quicksilver for it to recognize the new script
  • Bring up Quicksilver (CTRL+SPACE, by default), hit . to enter text mode and start typing your message
  • Tab over to the Actions and start typing “nabaz” (without quotes, Quicksilver will filter as it finds matches)
  • Hit enter to send the message
  • After a few seconds, you should see a Growl notification (if installed) saying the message was sent, or that the message failed. If the message failed, ensure your Token and Serial Numbers for your nabaztag are correct, and that they are all upper case (I noticed fails when even a single letter wasn’t upper-cased, but that may have just been a hiccup).
  • Nabaztag should have spoken your message. If not, ensure your Token and Serial Number are correct, and that any letters present in either are upper case.


Come on, really? You need support on this dinky little applescript? FINE! As mentioned before, if it isn’t working then you either aren’t using the correct Token or Serial Number, have entered them incorrectly, or your nabaztag isn’t connected (one has to allow other things to send messages to it, which is a configurable option in your nabaztag account). I can make no guarantees, but drop a note in the comments and I’ll see if I can help out.