Signing OggCamp

What a weekend! Even Dan, who’s considerably fitter and (as he keeps reminding me) just slightly younger than me was feeling drained on Saturday night – but such is the lot of the conference digital signage tech!

I’m a veteran of last year’s OggCamp (which took place in Wolverhampton) and a long-time listener to Linux Outlaws and the Ubuntu UK Podcast so I put our names in to the hat to help out this time around in Liverpool with some digital signs for the event.

I hoped that Dan and I could use it as a good excuse to start pushing some features in to the 1.1 series with a goal in mind, rather than trudging through Launchpad bugs.

It’s important at this point to make the distinction between the .net client (Windows only) and the python client (currently Linux only). The changes we made here only apply to the python client – at least for now. They’re live in a branch [1] [2] in Launchpad and will ultimately go in to 1.1.1 server and client.

Microblog Search

I posted a couple of weeks ago with some basic information on the Microblog Search media we’ve added. It basically takes tweets/dents from Twitter and/or Identica, de-duplicates them as required and then shows them one after another (optionally with a nice fade transition between them). It caches the responses it gets from the APIs locally so that the output side of the media continues to work in the absence of an internet connection. It’s very similar to the Ticker module in that you enter a search term (instead of a feed URL) and then use a templating system to add fields from the messages and format them appropriately. We also turned on the View Source button in FCKeditor so that it’s possible to use the avatar URL returned from Twitter or Identica to have a persons avatar appear in the box too.

Initially I was using the Twython library to talk to Twitter but unfortunately it doesn’t support talking to Identica yet so instead of making significant changes to the library, I took it apart and found I only actually needed a couple of subroutines to get what I needed, so they’re now included directly in the Pyclient code – with appropriate attribution of course.

When added in to the client you get output that looks like this. The dent shown is by Fabien Scherschel and released under Creative Commons Attribution 3.0 License:

Webpage Media Transparency and Scaling

The main reason for having the digital signs at OggCamp was that, as a barcamp-style event, there’s no schedule of talks published ahead of time. As people arrive they propose a talk they’d like to give and then the OggCamp crew schedule them a timeslot in one of the venues. It’s really helpful then if the schedule can be dynamically updated so everyone has access to the same information – and so late changes can be made quickly.

Xibo doesn’t have any support for entering schedule information directly but the OggCamp team had also been approached by JonTheNiceGuy aka Jon Spriggs with a project he had been working on – CampFireManager – which is an unconference scheduling tool. Jon made a special “Lite” version just for the event and gave us the schedule output as a webpage that self-updated using AJAX. I roped in Andy Pattenden to do the CSS styling work on CFM and a jolly good job he made of it too!

Xibo has always been able to embed webpages onto a layout, however we wanted CampFireManager’s output and Xibo’s to merge seamlessly so that to an OggCamp attendee, it all appeared to be one system. The Python client can embed the Chromium web browser with a truly transparent background (thanks to Awesomium, libbrowsernode and libavg) however the existing WebPage media type doesn’t offer an option to specify that as a preference. We added then a background transparency tick box and a scaling percentage box to give us some flexiblity.

The Gear

We ran one projector in the exhibition area with the full schedule being displayed and several other 19″ screens all driven by Asus eeePCs – the early Celeron 900MHz models. Ordinarily I’d say they were a bit weedy for the python client but they’re small and portable (ideal for temporary setups) and they coped admirably.

The Finished Displays

Here’s the output of Xibo and CampfireManager-Lite running on a projector on the wall in the exhibition area.

Scattered around the venue we had several information point screens showing the schedule and what was coming up next in the rooms local to those displays. Here’s the pair of screens outside the OpenLabs and Stage 3 venues.

Lessons Learned

The guys from LinuxEmporium did a great job of setting up venue-wide wireless and so we were able to hang off of that. Unfortunately there was an issue part way through the first day that meant the clients couldn’t see the Xibo or CampFireManager servers (also on the venue LAN) and so the CampFireManager part of the display stopped working (since it relies on being able to see the server all the time). That was unfortunate but remidied and we had a really reliable system on Sunday.

Going forward, it would probably have been better if we’d taken an iCAL feed from CampFireManager – which we could have cached locally – and then polled the CFM server periodically for changes. Expect this blueprint to get some attention shortly 😀 That would also give alot of flexiblity. You could use something as simple as Google Calendar to schedule a series of talks or something more fully-featured like CampFireManager.

It would also be great to have a wider variety of information available. For example we could have very easily shown maps to the Saturday night party on the displays as people were leaving on Saturday afternoon, or given restaurant recommendations around lunchtime etc. There’s a wealth of possiblities that need to be better explored.