Github: https://github.com/gophergala/blinky_light_display

Contributors

  • Christopher Agocs
    • South Side Hackerspace: Chicago
    • github.com/agocs
  • Derek Beaver
    • Pumping Station One
    • github.com/loansindi

Live demo: http://agocs.org:3030/ Configuration link: http://agocs.org:3030/config.html

A brief story

Derek and I have been looking for digital signage solutions for our respective hackerspaces for a while. We've also been been hacking on Go for a while. When I showed him the Gopher Gala, he suggested we put together a digital signage server.

Digital Signage

In our hackerspaces, we wanted digital signage so that we could set up one or more computer screens and have them flip between pieces of relevant information: calendars of events, weather, bus trackers, etc. There are no good, free solutions that we were able to find, so we decided to roll our own.

Hacking

Derek and I talked about the idea for a few days leading up to the hackathon. Originally, I thought he wanted to drive LEDs, but he set me straight. Derek and I decided on an MVP we'd work toward: a web browser rotating between a bunch of static web pages. We figured the best way to do this would be to set up a Go server that serves one of a set of URLs, then use Javascript to load that url into an iframe in the browser.

Derek got a start on Friday night, and I came in on Saturday morning to keep going. Neither Derek nor I know Javascript, so making the browser part of the system work was a learning experience for us. We had a solid MVP working by Saturday afternoon, so we decided we'd see where we could take it.

We decided that we could define a domain specific language for laying out several different web sites in iframes on one page. Derek started drawing a layout using "crappy ascii art", and I took that drawing and used it to define a DSL. I hacked away at the server to get it serving up JSON objects on Saturday night, and on Sunday made the display work.

Target users:

Because of how much configuration this thing takes, we'd be targeting other hackers / makers / people tolerant of non-turnkey solutions. Anyone who needs to be able to set up a display that rotates between informational slides / websites can use this.

Features we're proud of:

The layout language is probably the coolest thing we put together. Parsing is really messy and non-fault-tolerant, but it works really well when you get the layout right. I taught Derek about looping through arrays when we were putting together the display portion of it, and we both learned a lot about jquery.

Built With

Share this project:

Updates