Continuous Integration is all about rapidly establishing code quality by building and testing each source code submission, and getting the results back in the hands of the developer who made the commit. This reduces the risk of bugs being compounded by weeks of untested development and – in theory – serves to keep teams relatively nimble.
Looking after a number of projects can potentially mean wading through many build results spread across multiple emails or web pages, meaning broken builds can go unnoticed longer than they should. The common solution to this is what's jingoistically known as an 'Information Radiator': a coarse-grained, highly-visible, status indicator which provides a summary of all builds.
Inspired by Last.fm's bears, we set out to build our own 'Information Radiator'. Bears, however, are old-news, so we enlisted the help of three Maneki Neko – the slightly strange beckoning cats you find in Japanese and Chinese restaurants.
The cats themselves required only a minor modification – cutting the battery cables and extending them outside the body. USB switching was achieved with a 'DLP-IOR4 USB-Based Latching Relay Module' which exposes a serial-over-USB interface and a simple protocol for latching 4 relays. Integration with Hudson is via little Python script knocked up by one of our interns.