Visible metrics are the heart of many successful businesses. Setting up a dedicated stats or metrics TV (ours is powered by a mac mini) is a pretty straight forward endeavor – and having everyone rally around the key performance indicators is well worth it. We cycle between optimizely, customer satisfaction (NPS) results, key metrics from RJMetrics, real-time google analytics, live chat metrics, sprint burndown, wufoo form entries, and the occasional cute puppy cam.

Here’s the setup:

  • OSX configured to login at boot
    • Bluetooth Setup Assistant disabled at startup
    • Software updates are disabled
    • Screensaver is disabled
    • Uncheck everything in System Preferences -> Mission Control
    • Disable “Reopen Windows When Logging Back In”
    • Disable crash reporter dialog in terminal:
      defaults write DialogType none
    • The below apple script is used to open chrome in presentation mode at boot (note the 20 second delay between opening chrome and going into presentation mode to allow chrome to load all the tabs:

tell application "Google Chrome"
	tell application "System Events"
		do shell script "sleep 20"
		keystroke tab
		key down {command}
		key down {shift}
		keystroke "f"
		key up {shift}
		key up {command}
	end tell
end tell
    • Setup a cron to reboot the mac every morning at 7:55 am and 8 am to clear memory (using cron because system reboot is graceful and may not actually shutdown the computer). Rebooting twice seems to help avoid issues where applications cancel a reboot.
      • nano
      • 55 7 * * * /sbin/shutdown -r now
        0 8 * * * /sbin/shutdown -r now
      • write out to a file
      • copy the file to the root crontab: sudo crontab -u root /path/to/file
      • verify that the cron exists: sudo crontab -u root -l
  • Chrome is configured to reopen the desired tabs:
    • TabCarousel extension configured to “start automatically”
    • Stylebot extension used to hide/adjust CSS on pages to better fit full-screen (sync enabled)
    • LastPass extension used to remember passwords and auto-login for sites that require it
    • Better Popup Blocker extension used to block focus stealing javascript alerts
    • Tampermonkey extension used to run a greasemonkey scripts (for example, I wrote one that plays a random inspectlet user recording):
// ==UserScript==
// @name        Inspectlet Auto Play
// @namespace
// @include     http*://*
// @version     1
// ==/UserScript==
	var script = document.createElement("script");
	script.type = "application/javascript";
	script.innerHTML = '\
	/*check every second */ \
	setInterval(function(){ \
		/* if we are on the dashboard page, go to the captures page */ \
        if (window.location == ""){ \
            window.location = ""; } \
		/* if we are on the captures page select a new video to watch */ \
		else if (window.location == ""){ \
			/*make all links open in the same window*/ \
			$("a").attr("target","_self"); \
			/*choose a random capture from the list*/ \
			$(".trow a")[Math.floor(Math.random() * $(".trow a").length)].click(); \
		} \
		/* if we have reached the end of the video, redirect back to video listings */ \
		else if ((parseInt($("#pagelist").val()) == $("#pagelist option").length) && $("#stopvideo").hasClass("disabledbutton")){ \
			window.location = "" \
		} \
	}, 1000); \