Posted by on Oct 3, 2012 in Programming | 0 comments

We had a few extra monitors kicking around the office and, rather than just letting them sit there, I decided it would be good to use them as dashboards to communicate important information to the rest of the company. I figured that if live production stats were broadcast throughout the office it would help focus people’s efforts while at the same time building a sense of unity.

Four low profile VESA monitor mounts ordered off of Amazon, some HDMI to DVI cables and mini display port to HDMI adapters off Monoprice, and a pair of Radeon 6950’s I had from Bitcoin mining last year and I was all set. Setting up Google Analtyics Real Time stats on the first screen was pretty easy, unfortunately I couldn’t automate everything easily, like navigating to the correct tab. Starting x11vnc on each display solved the problem as it allowed me to connect to the UI and change what I needed to after boot. The Display Wall plug-in for Jenkins provides a simple build status metric.

Img_20120929_154850

Testing with fake data

Img_20120929_155227

View from office

After getting the displays plugged in the correct order, always harder than it seems, I sorted out a few scripts that execute when the dashboard user logs in on boot.

At first I thought about adding an RSS feed to fetch stats from production but that would require clients to poll for new information. Using something closer to realtime would allow the playing of audible alerts. Some people in the office don’t have a direct view to the monitors and in reality people will only glance at them once and awhile anyway. I thought playing a subtle sound, like a heartbeat, when an activity such as a signup occured would be a good way to give people a feel of how the running system is performing without having to stare at the screen. A quick Node.js app using Webaudio.js and Socket.io and I was done.

twitterlinkedin