Multiple Build Monitors on a 3D Rotating Cube

In my current project we have two builds. The fast build compiles all the code and runs unit tests only, to quickly check that we haven't forgotten to commit all the files associated with a change. The slow build compiles and packages the entire system, runs unit tests of classes that interact with databases and message brokers, and then deploys the system into a production-like environment and runs end-to-end tests through it.

We visualise the state of both builds with two Piazza build monitors. Unfortunately, we only have one physical build monitor.

Rather than make Piazza automatically switch between build monitors, we came up with a cunning hack to do the same, and which looks much more flashy at the same time. We run the two build monitors in full-screen mode on different virtual desktops of our (Ubuntu) build server and then run a script that switches between the two desktops every few seconds. The script uses the xsendkeys command to send the appropriate key combination for "next desktop" or "previous desktop" to the window manager. It's all very "scrapheap challenge".

When the compositing window manager is running (aka Desktop Effects in Ubuntu), the build monitors appear to be on the faces of a rotating cube, which looks very impressive.

Update: it's inconvenient that cycling between build monitors like this interferes with the desktop interface. If you can live without the spinning cube effect you can use the FullerScreen and Tab Slideshow Firefox extensions to cycle between full-screen views within Firefox without disrupting the desktop.

Copyright © 2007 Nat Pryce. Posted 2007-07-03. Share it.