Xtreme feedback devices can really help to introduce the concept of continous integration to a team of programmers.
At a customer's site, I installed three colored lamps in the form of cute gummibears (about 40cm in height) hooked up to Ethernet-controlled power sockets. The lamps are placed on a widely visible shelf.
See the movie! Hudson Bear Lamps on YouTube!
First we followed the official blue-yellow-red "Hudson signature color scheme" with the following meaning of the colors:
While in theory this corresponds nicely with the on-screen display of Hudson, in practice it drives programmers nuts, having blinking bears in their field of view for minutes (depening on the build duration).
So we came up with a more conservative "traffic light" scheme without blinking bears:
Yes, this slightly differs from the official blue-yellow-red "Hudson signature colors" - but the "traffic light" scheme is understood almost intuitively.
No matter who sees the bears for the first time: The reaction identifies him or her either as gal, guy, or geek.
O.k. You've read so far. So you qualified as geek and deserve answers.
Ethernet-controlled power sockets are power sockets with typically 2-8 outlets and an embedded web server running on an own IP address. Usually the sockets offer some sort of CGI-based control options. For example, the following URLs switch on/off a specific power outlet (the actual parameters vary from manufacturer to manufacturer):
If you are more software inclined than a hardware geek, the nice thing about these ready-made power sockets is that you can buy them safety-certified. Then you don't have to worry about burning down your house when running your unit tests and switching high voltage currents...
Is there a specific "bears plugin" needed for Hudson? Not at all! Hooking up Hudson is actually the simplest part. While Hudson exposes the outcome of terminated builds (successful or not) as RSS feed, it also offers an XML-based API for status information out of the box. Basically you just append /api/xml to the URL of the page you are viewing in your browser. Then you get the same information in an XML-based, machine-processable format.
For example, the following URL will return you the dashboard as XML file:
All you have to do, is to get this URL periodically, scan for status colors and send the corresponding command URLs to your Ethernet-controlled socket. We use an extended version of the short PHP script below that runs continously on the Hudson server (we added logging and error handling in the real thing - but to get the idea, a shorter example serves better).