This is probably the busiest year in Panic’s history.

This is good. But a lot of things happening means a high chance that I, the man who lives and breathes Panic and has a giant status board in my head, might not properly explain everything to everyone. Steve and I realized it was high time we made this Cabel Status Board public… using technology!

So, with partial inspiration, Neven, Steve and I built the Panic Status Board. Take a secret, sneek peek:

What’s on the board?

The idea quickly grew beyond “Project Status”, and has become a hub of all sorts of internal Panic information. What you’re actually looking at is an internal-only webpage that updates frequently using AJAX which shows:

E-Mail Queue — number of messages / number of days.

Project Status — sorry for the heavy censorship — you know how it is!

Important Countdowns

Revenue — comparing yesterday to the day before, not so insightful (yet).

Live Tri-Met Bus Arrivals — when it’s time to go home!

The Panic Calendar

Employee Twitter Messages

Any @Panic Twitter Messages — i.e., be nice! They go on our screen!

Instant Pay-Off

Les, one of our support guys, said it best after a week: “That board is like magic.” Our support turnaround time is faster than it’s ever been. Just the simple act of “publicizing” those numbers — not in a cruel way, but a “where are we at as a group?” way — has kept the support process on-task and, I think, made it a bit more like a video game. (It helps that when all the boxes are at “zero”, a virtual bottle of champagne appears on-screen, and a physical one is likely removed from the fridge.)

We can’t wait to add more data in the future. Open bugs?

Implementation Notes

For the truly curious. Display: I picked the Samsung 460UXN-2 professional display for the thin bezel and lack of branding, airport-style. To my surprise, it had a built-in Windows XP Embedded computer (boo), which meant we didn’t have to waste a machine to drive the display (yay). We loaded Chrome on it, since it has a nice full-screen view — sadly, that meant we had to lose Safari’s beautiful text anti-aliasing. Display Mount: Hard to find a vertical mount! Wound up with the Premier Mounts RFM, and like it. Support Queue: I’m weird, and PHP IMAP libraries felt too heavy for just getting message counts, so I decided to do raw IMAP protocol calls over a socket. Bus Arrivals: this is using the fantastic Tri-Met real-time REST API. Calendar: Steve used the PHP iCalendar library to parse our group Mac OS X Server calendar. Twitter: feeds use Twitter’s simple (little-known?) blogger JSON service. HTML/CSS: Neven says, “This baby is all WebKit candy. The only images here are the icons. The rounded corners, the gradients, the animation – all CSS. Learn -webkit-transform and love it! Oh, I tried using Google Chart for the support graph, but it wasn’t flexible enough. Our little graph is infinitely scalable and stretchable.”

From start to finish, this was about a three-week project.

And no, it didn’t slow down development on [insert the app you want the most here]. Check the board!

PS: For one full year I’ve been promising a blog about the “new” office. If you can believe this, we’re still waiting on a guy to finish processing a couple of nice QTVR’s of the office under construction. With any luck, he’ll be done soon, and I’ll start writing…