Probability Tree

The personal site of Joseph Agreda

Filtering by Tag: UT

Digital Signage

One of the first tasks assigned to me at my new job, was to build a digital signage system for the main library on campus. They had already secured and spent their funding on several Mac minis, some Apple 30" Cinema Displays and a 55" Samsung TV. They had found a software solution that they wanted to use, Billboard CE, an offshoot of Billboard which is NC State's digital signage system. The one problem though, was that Billboard CE was mostly an unfinished port from their source and wasn't really ready for us to deploy, so my job now became to either find an alternative, or to build some software glue to tie this all together.

Some caveats. First, this was about a year ago, and the money had been spent much earlier, so the Mac minis were of the previous generation, which for our purposes means that they lack the graphics power of the most recent minis. We didn't have much more money to spend. We didn't want to BootCamp all of these to run an off-the-shelf solution, and this needed to be done quickly.


Before I dive into the software side, a few notes about our hardware implementation. Doing this all over again would be considerably easier with current hardware, but I digress. Each installation with one exception is comprised of a Mac mini and a 30" Apple Cinema Display, the exception being the main entrance setup on the second floor which has the large Samsung TV. Two components doesn't sound that bad, but then you have to take into account that the old Mac mini has a large external power supply, as does the cinema display, and the mini requires the use of a DisplayPort to dual-link DVI adapter to output to the 30" display. Also add in some wake from sleep and reboot issues with the dial-link DVI adapters, and so to be safe, we're powering them off of an independent USB power supply. Contrast this to using current equipment, where the current Mac mini employs an internal power supply, as does the 27" LED Cinema Display, and since the 27" LED Cinema Display has a mini DisplayPort cable to start with, no messy adapters to fiddle with.


My background in programming is a weird and long story that I'll get to someday, but the important part is that my recent experience in web development has largely centered around Django, a powerful Python framework. The systems department in the library is a mixed bag of programming experience, with plenty of very competent programmers with experience in say, Perl, PHP or Fortran. They've deployed a couple of WordPress installs to deal with certain parts of their main web site, but all-in-all, there isn't really an institutional standard here. So I jumped around and built some basic signage apps with Django, and toyed with a Rails apps that could accomplish the same thing. The basic requirements being that the app run in a fullscreen web browser, such a Plainview, and have the ability to rotate through what more or less amount to slides.

The design was pretty straightforward but took a lot of mocking up and some testing to get to a point where I felt comfortable with the visuals. I went through what books the library had, and did some reading online, but found surprisingly few definitive resources regard digital signage. The most useful book I found was written primarily for physical and static architectural signage. It was helpful primarily in font consideration, both for type faces, weights, and knowing when you need diversity. For the digital side, my best friend was the WCAG (Web Content Accessibility Guidelines) published by the W3C. I looked to the WCAG primarily for guidance regarding colors, contrast and color brightness. The WCAG also had some good advice regarding font selection, but for my purposes was mostly a mirror of what I found in print, which was to avoid scripted fonts.

As for what I ended up with, we have a clock and date in the upper right, set in Lucida Grande, and other titles and text are set in Helvetica Neue. There's something about times, dates and email addresses set in Lucida Grande that I like and find very readable. The overall theme is dark for a couple of reasons, the most obvious reason is to allow the slides to stand out. It's also dark to contend with the lighting conditions in the stacks, which is relatively dark to begin with.I want the displays to be as bright as possible without blinding our patrons. The perfectionist in me isn't satisfied with the design, so I'm continually making small adjustments and changes here and there. All of these changes will culminate in a new and hopefully more balanced font layout in the near future.

I've got an app more or less ready to go. Mission accomplished. Except for this minor matter of maintainability.

Problems of Maintenance

I was hired using federal stimulus funds, so my job is expected to exist for around two years. No one in my department has any experience with Django, and very very minimal experience with Python, to say nothing of Rails or Ruby. Crap.

Some discussions and a few meetings later, it becomes clear that if I'm going to be a Good Programmer™ and deploy something that they can fix and update themselves, it's going to at least have to be in PHP and ideally, based on WordPress. I've toyed with WordPress plenty of times, and I've set up several sites and blogs using it as a base, but I wouldn't have called myself a PHP programmer. It's not a terribly difficult language to pick up and use though, so it wasn't a big deal to replicate the core functionality of my Django app. Blend in a little mix of WordPress plugins, some template hacking, and now we have a functional digital signage system. It's not perfect, and can't be modified and extended in quite the same way as my Django app could, but it gets the job done, and will be able to stay alive without my continued presence.

Afterthoughts and Looking Ahead

Never underestimate the need for maintainability. This is a hard lesson I've been learning over the years. Even if it isn't asked for up front it's foolish to design without it in mind. The less someone asks about maintainability, the more screwed they'll most likely be a couple years down the road, and if you're out working somewhere else by then, it'll come back to haunt you. This encompasses everything from the frameworks and languages you use, to how you document your code. You do document all of your code, right?

This was just under a year ago and quite a few things have changed. I've made several modifications to the design since it was deployed, and continue to make more changes, especially on the front end. The hours display has always bothered me so along with another initiative to consolidate the way we hand hours information, that display will only display today and tomorrow's operating hours, leaving some more room for other bits of information. We may be getting another sign installation with actual professional-line digital signage monitors and a newer Mac mini.

Overall, I'm happy with how things turned out on the technical side. It's a stable solution that gets the job done, and is pretty easily managed. As always, things could be better given more ideal circumstances with regard to time, money and environment. But somtimes, you just have to go with what works.

Public Conversations on JEM

We had another journalism event last week. It was put together by Dr. Jim Stovall and the Tennessee Journalist, with a helping hand from Scripps. The Beacon naturally neglected to mention the Tennessee Journalist bit, but oh well. I liked the format of this one. Kept things pretty simple and put the focus on getting students face-to-face time with local media professionals. The feedback I got was that it was helpful to get the perspectives of practitioners in the field, and to get some advice on getting a job in this climate. My brother was in attendance and spoke to a number of very interesting students. There were a lot of other familiar faces including Bob Benz, Lauren Spuhler, Patrick Beeson, Jack Lail and Chad Parizman. I got to rotate around and chat with a few of them before they left, but most of them know me by now anyway. I've been doing this college thing for five years now and am almost done. My only gripe was that the whole event made me feel a little old. Most of the journalism students in the room were completely new to me, save for a few who have been working with TNJN this semester. I suppose my time has come, but I still never thought it would feel quite like this.

Long story short, I'm getting old, it's time for me to graduate, these kids need to learn the ropes and become better programmers as well as journalists, and Knoxville is brimming with talent.

By the way, Patrick wrote up a great bit on his blog about his conversations with students, and I agree with him on every point, I'd recommend reading it, it's quick and to the point. I even left a (hopefully) helpful comment.

Spring 2008, and then some.

Hooray! So we’re off to another great year here at the University of Tennessee and I’m one more semester close to graduation. I’ve decided to go ahead and go for the minor in Information Sciences. If we had a major I would have switched to that long ago, but since that isn’t available this will have to do.

On that note, IS 102, the introduction to the IS minor is interesting. I won’t lie, it’s far too basic for me. We’re starting on what computers are and not going too terribly far from that. Computer Science 102 and 160 both taught me more than this class can, but the context is certainly different which makes it not a complete waste of time. In either case it’s unavoidable at this point in time since the professor responsible for the minor left but a few months ago. We’ll make this interesting however. As versed as I am in Django, I have not had a chance to fiddle with Drupal. So I’ll be taking some class related time in the coming weeks to develop some Drupalie stuff. Good times.

JEM 222 - Intro to Online Reporting isn’t bad either. We have a great person stepping in for Staci Wolfe and while the class isn’t exactly the most computer literate bunch in the school I have high hopes that they will be in short time. More importantly, I think we can easily recruit some of these sharp souls into TNJN as staff reporters. While I’ve already completed JEM 422 (the last in the online reporting series) I am confident that I will learn something out of this course.

JEM 457 - Media and Society essentially boils down to a social sciences class. Here we’re focusing on how (surprise) media affects society and various theories behind those effects. This one is going to prove extremely interesting. So far so good, solid dialog going on in the class, I’m not afraid to debate anything we’re talking about, I should be able to get a lot out of this.

The other two classes are simply GenEd filler, both fun, but also time consuming. I’m not worried about them, I just wish I could be taking some spare CS or IS classes instead. Second summer session is the plan there. My sights are set on WWDC ‘08. But for now, there is MWSF and all the wonders therein.

© Joseph Agreda 2008-2015