Home > The Offive > Archives

Posts Tagged ‘Concerto’:

New Concerto One-Page Handout

November 19th, 2009 by Brian Zaik

Michael Zwack, Grand Marshal of the Student Senate at RPI, just met with Dr. Jackson this morning to discuss student business.  He had asked me to provide a one-page handout to Dr. Jackson that would explain Concerto to her in a nice visually pleasing manner.  I looked over the past documents we have released for general handouts, and realized that the handout has been long overdue for an update.  So last night I updated this document:

New Handout for November 19, 2009

You can download the full PDF here. I used some existing text and images to introduce readers to Concerto and its benefits, but I specifically added information regarding interest we have received from visitors all over the world at Concerto-Signage.com, as well as statistics regarding the use of Concerto at RPI to date (which is up quite a bit from our first year of service).

I will be distributing these handouts tomorrow at a talk I’ll be giving for Dr. Chris Mackie from the Mellon Foundation. I’ll be giving the talk with Brian Michalski about the impetus for Concerto, the growth of the Web Tech Group, and the Concerto Project’s past and future.

Imagine the Possibilities: Concerto and Mass Transit

October 29th, 2009 by Brian Zaik

I’d like you to take a flying leap with me for ten minutes. Concerto in its current form can’t make the vision I’m about to describe happen. But we can build the software. So come on, let’s sit back together and imagine the possibilities.  Think of this as a case study for the future: a hypothetical scenario of how a future version of the Concerto software could be used to add value to a space that is far removed from a college campus.

Enter the Subway Station.

It’s a busy Friday afternoon in a heavily populated city.  People are walking down the main thoroughfares, entering shops, tipping street performers, and talking on mobile phones.  But beneath the busy street is the City Subway, a public mode of transit that has become increasingly popular as the streets became more congested with cars and pedestrians.  The high-speed subway goes from one end of the city to the other.  And at every single station, there are bright digital signs.  Flat panel enclosures hang from above the tracks announcing train arrivals.  Digital signage is pervasive and greatly improved by the city’s recent switch from a closed proprietary system to Concerto.  Concerto – or at least a future branch of the codebase – is the ultimate communications tool, connecting consumers with products and services while generating impressive profits for the city.

The Right Messages for the Right Places

Concerto, by design, allows people and organizations with messages to either reach the entire area serviced by the City Subway system or target messages to specific Subway stations.  Concerto gives the Subway Authority (SA) the ability to customize the look and feel of Concerto displays to give each station a unique and memorable style of its own. But more importantly, Concerto integrates advertising messages with important Subway bulletins in a way that is both intelligent and flexible. For the screens hanging above each train track, the station information (train arrivals, schedules, and important alerts about delays and downtime) is always present in a right sidebar. Yet most of the screen is taken up by graphic ads that promote businesses, services, and organizations in the area surrounding the station.

Suddenly, a train arrives, and the graphics area is replaced by a large, graphic message that announces the train’s arrival for all Subway passengers looking to board. Within twenty seconds, the train is gone and the advertisements are back on all of the screens. And what types of ads are displayed on the hanging screens while passengers are waiting for trains to arrive? Well, let’s jump to the Grand Boulevard station in Downtown.  During the eight minutes he waited for his train to arrive, passenger Daniel was able to see 40 different ads from restaurants and boutiques in a nearby shopping center, a distant commercial plaza, and the other streets in the Downtown district. Each message was up on the screens for about 12 seconds. He discovered a new Japanese noodle bar that just opened up down the street from his work at America Bank, and he was also reminded to follow through with that donation to the Boys and Girls Club.

A Simple Gateway for Advertisers

Lynda works for a well-known ad agency in the city. When it comes to promoting a popular chain of coffee shops to the city populace, the Concerto Ad Panel (CAP) is her best friend. CAP really does it all: it collects flyers from Lynda’s computer in just a few clicks, tracks the number of appearances of her coffee shop ads across the city, and helps her manage her ad campaigns to get the most bang for her client’s buck. And yes, she pays for time on Concerto through CAP. All she needs to do is log into the Panel with her vendor account (given to her by the city), pick out a couple Subway stations where her message should go, select times of the day when the messages should be displayed, and upload a flyer to a category that best matches her intent (“Casual Eateries” works just fine). From there, a person working in the Subway Authority’s Ads office looks over the ad and approves it for Concerto right away.

There’s a new Christmas cookies sale that Lynda wants to announce to the entire city. So she decides to spend a little more of her client’s ad budget to pay for a citywide ad that will run for two weeks. She just fills out a simple form, uploads the message, and sends it off for verification. Within the hour, her message is ready to be shown thousands of times each day on every screen in every Subway station.

She can view daily, weekly, and monthly analytics to track how often her new message is being displayed across the network and in specific stations. CAP gives her a bunch of detailed yet easy-to-read charts that remind her of Google Analytics (software she uses for Internet advertising already).

The Subway Authority also recently added eye tracking cameras (connected to Concerto’s Hardware Devices Layer, which enables integration with web cams, button panels, and lots of other interesting hardware devices) to all of the hanging screens. These eye trackers reveal how often people’s eyes are actually looking at Lynda’s advertisements when they play. So she can get accurate statistics to give her an even greater amount of proof that her advertisements are being seen by the public.

Everyone Gets Involved

Commercial concerns aren’t alone in their use of Concerto. The city uses it to keep passengers aware of street cleaning hours, while local not-for-profits put messages up at reduced rates. Plus, Concerto’s Dynamic Text engine automatically searches the City Tribune (the only major print newspaper left in the city) and Google News for noteworthy national and city news tidbits, which are run on certain screens every once in a while to keep passengers informed. The Subway Authority’s small yet capable Ads office maintains the system and sets policies for using Concerto.

A Robust Management Interface

CAP also includes powerful controls for the Subway Authority to manage the network each day. Power settings can be remotely controlled from SA HQ, meaning that if a station needs to close for a period of time, all the screens within a particular station may be powered off at the same time with a couple mouse clicks in the Panel. CAP allows them to manage the entire system from a mile-high view and hone in on specific locations and screens, which can be customized in design in many different ways. Screens may be grouped together and managed together for simplicity’s sake. Concerto’s unique and powerful method of balancing feeds with different weights also works well here – the SA’s screen moderators can rank different feeds according to the interests of their passengers. If those interests change, a couple weight changes can quickly change Concerto’s behavior.

Convergent Cohesion

The City Subway Concerto network transcends devices to become truly pervasive. Because Concerto software is on the Web, it can easily appear on every device with a display and a connection to the Internet. In the Concerto world, the size, shape, resolution, operating system, and aspect ratio are all just screen parameters, useful for pumping the best possible picture out to the public. But they aren’t barriers.

In addition to the hanging monitors beside each train track, larger wallscreens run full-screen Concerto messages (along with useful, interactive web applications, such as a multi-touch enabled Subway map). Whereas the hanging screens can be run off of one single multiplexed computer, these wall screens are controlled by inexpensive machines that allow them to have layouts and mixes of content completely independent of what’s on those hanging displays. Yet they all access the same pool of messages, meaning that an advertising agency in a nearby suburb only needs to upload each one of their messages just once for it to potentially be shown all across the greater metropolitan area.

Furthermore, Concerto can also be integrated with websites and mobile applications for iPhone, Blackberry, and other platforms. So the SA’s cross-platform SubwayTravel app can also draw from this same database to direct riders to places of interest they may wish to include in their fun day of activities around the metropolitan area. There are many other web applications and social networks useful in getting the word out there – Facebook, Yelp!, and others. But Concerto fits into this ecosystem as the in-person broadcast medium for everything important on the Web.

Low Switching Costs, Large Rewards

Since moving from a supremely expensive commercial solution, the city has realized enormous gains from Concerto. The costs associated with switching over the 32 City Subway stations were relatively low, since the stations already had digital displays hanging over the train tracks. Metro Rail was already nearly equipped for Concerto. Over the course of several weeks, inexpensive display computers were added to each station. The Subway Authority purchased a powerful Concerto Content Server to power the whole network over the Internet.

And now, due to Concerto, the City Subway is generating impressive advertising revenues. These revenues come from local businesses and organizations, and they help to offset the costs associated with station upgrades and other municipal programs. Now, instead of fare or tax increases, the city is equipped with an extremely potent form of revenue generation that greatly improves citywide communications. Concerto has become a true asset for them.


NOTE: A WTG blog entry “The Right Messages for the Right Places” posted in August, 2009, described a hypothetical deployment of a digital signage system based on Concerto. The article used the Los Angeles County Metropolitan Transit Authority, the LA MTA, as a fictional backdrop. It has come to our attention that some readers may have misinterpreted the article as a factual account of a real use of Concerto. This was never our intent. Concerto is not used by the LA MTA in any way, and we apologize for anyone who found our blog misleading in this regard.

Windows Sidebar Widget

October 13th, 2009 by Brian Michalski

I spent a few days last week re-acquainting myself with Windows Sidebar, a widget engine introduced in Windows Vista and carried over into Windows 7.  My goal was to create a Concerto widget similar in functionality to the screensaver so people who don’t use a screensaver as much could still get some Concerto content delivered locally.  While Windows Sidebar doesn’t support Windows XP natively,  having native support for Vista & 7 should be sufficient for now.

Luckily, there is no secret sauce behind widgets… not on Windows, not on OS X… they’re all just HTML which is really convenient for a web-based system like Concerto.  I started with a really simple design, copying almost all of the code to rotate content from Concerto mini-screen we introduced in our 1.9 update.  I had to tweak the javascript slightly to pull the XML/JSON from a different domain.  For some reason, jQuery’s AJAX methods couldn’t handle the cross-domain request so I had to switch to the manual method: Internet Explorer’s XMLHttpRequest.  It wasn’t very painful to substitute in for the .ajax call, and I was still able to use jQuery for all my selectors and iterators.

I got the widget working, but it kept freezing up on me in very strange ways.  The text in a div that displayed the content name would keep rotating, but the image above would freeze.  For the life of me I couldn’t figure out why this was happening, especially since the text rotation was setup to be handled when the image rotation had completed.  I decided to pull out my watch and see if the widget kept freezing at the same time, surprisingly it did.  I adjusted the time each image was to be displayed and tested again, measuring the same number of image rotations.  It seemed that after X image rotations the image’s ability to fadeOut, fadeIn, or have it’s src changed were getting stopped by some unknown process.  Time to fire up taskmgr where I could get a slightly better look at what was going on.

The memory used for the widgets (I had multiple open at a time) kept growing and growing which seemed to correlate with the sudden freezing of the image rotation.  I wasn’t totally surprised by the memory issues, the internal workings of jQuery’s chaining and binding have never been very clear to me.  While I don’t know the details, it looks like jQuery was attaching a completely new set of functions to each image when it was loaded.  Since there were functions attached to the image maybe it didn’t get garbage collected out of memory like it should… or maybe the duplicate functions activated some sort of nasty recursion chaining… I really don’t know.  I was a bit surprised we didn’t notice this earlier, since the same code was used on the Concerto mini-screen which was pretty much copy and pasted from the actual javascript used on our screens.  Internet Explorer, Firefox, and Chrome all showed a steady growth in memory when left on the mini-screen for a period of time.  We hadn’t noticed the leak before because all those big web browsers have much higher memory limits per tab, its not nearly as low as the allocation for 1 widget.  I also suspect we didn’t spend time running the mini-screen for a very long time.  The average person stays on that page for only a few seconds before clicking off to login, visit the wall, or download the screensaver, so stability over time wasn’t critical during the design phase.  Upon further inspection. it looks like we left out the line in the JavaScript from our screen code that destroys everything in the field….

Now the widget is ready to be passed off to someone with a bit more graphical design & CSS skill than I.  I suspect my background-color: red; will get stripped away in favor or something that flows better with Concerto.

You can check out the code here: http://dev.studentsenate.rpi.edu/svn/svn-senate/extras/concerto.gadget/

RSS Screensaver & Snow Leopard

August 30th, 2009 by Brian Michalski

A few weeks ago I battled to get Concerto’s RSS output in a format that was friendly to OS X (10.5)’s RSS screensaver.  It turned out the file extension was important to Leopard, so I used mod_rewrite with an .htaccess file to serve images at URL’s like image_1.jpg?select=content&select_id=1.  Clearly the file extension, in that case, is .jpg… everything else (being the select=content&select_id=1) is the querystring.

Snow Leopard was released this week and much to my dismay our RSS feeds were no longer working, the screensaver was reporting that no pictures were available in the feed.

I set off on my mission to make it work again, starting with a flickr feed.  Essentially I pair the feed down to one element and start massaging the different attributes with Concerto content to see if it works.  I ended up discovering that the URL for an image now needs to end in a file extension, so something like http://farm3.static.flickr.com/2498/3869968920_9a53de458a_m.jpg?bananas=4 wouldn’t work (despite being a valid image) while something like this http://farm3.static.flickr.com/2498/3869968920_9a53de458a_m.jpg?bananas=.jpg would.

Since this change is slightly more confusing than a simple bugfix (we have to detect if the image Concerto is about to serve is a jpeg, png, gif?, etc) I committed a new revision to the API.  The important changes to the previous version (008)  start with a comment referencing 10.6 (so using find > 10.6 would bring you right to it).

If I had more time on my hands I would work on an OS X screensaver that didn’t rely on such strange image detection methods.  There are certainly attributes available exposing the mime type if certain file types can’t be shown.  I might be able to understand using the file extension to do some detection, but the last few characters of the query string… I think that’s a little outlandish.

Concerto 1.9 Preview: New Front Page and Concerto Wall

August 7th, 2009 by Brian Zaik

A lot has happened over the past several weeks with Concerto development. We’re gearing up for the start of the semester, and also for a new release of Concerto based on the “experimental” features we’ve been busy toiling away with. I’m pleased to give you a sneak peek at the 1.9 release, which will form the cornerstone for our real undertaking, Concerto 2.

New Front Page

I’ve showed this before, but not a fully working page. The old front page of the Concerto Panel has been in great need of a facelift for a while. The old version sort of failed in the way that it never gave a good indication of what Concerto looks like in motion. So I asked Haris to work on an actual mini screen for web pages that could stream content via the API and rotate through it just like a real screen you might see at RPI. His final product is quite nice, and it forms the centerpiece of the new front page. Even before somebody logs in, they’ll be able to see Concerto in action.

Concerto Wall

And right from the new front page, you’ll be able to view live Concerto content – no login required. This is a step towards one of the core philosophies for the UI behind Concerto 2: put as much public information outside of the login as possible. You don’t even have to log in to browse what’s on the RPI network as far as content goes. Right now, the Wall only lets you view graphical content, but the final version will likely have support for text messages as well. And it’s darn simple – just click the button at the top of the page to pull down a list of feeds, then select the feed you wish to view.

We’ll be launching Version 1.9 in the middle of the month. Stay posted!

Concerto Enters Blogosphere; Gets Free T-Shirt

July 23rd, 2009 by Brian Zaik

Digital Signage Blog Sixteen-Nine

We discovered a couple days back that Dave Haynes from the blog Sixteen-Nine has featured Concerto in a recent post, “Open source DS software starting to bubble up.”  Dave compares us to Xibo, another open source digital signage solution from the UK that’s been around for some years, calling us the “newer, and probably more interesting of the two.”  Thanks for the mention, Dave!  We were pleasantly surprised to see that we made a positive first impression on somebody with a lot of experience in the digital signage space.

Here’s the money quote: “This stuff is really much more about non-commercial efforts, where the IT guys get some time to play in the sandbox. To their credit, the Concerto guys have set up a pretty tidy little box already.”

Concerto-Signage.com is Live

July 20th, 2009 by Brian Zaik

So we’ll be putting out a more official release shortly about the site, but the cat’s out of the bag: Concerto-Signage.com is up and looking snazzy. We hope people like the new site. It’s the product of a couple weeks of work, and we’re extremely proud of the results. This website is the new global home of the Concerto Project, and we intend to build it into the hub for all Concerto-related activities as time goes on. For now, enjoy the site, download the code, try installing it, and check back for more updates soon!

Concerto API Updates

July 15th, 2009 by Brian Michalski

I just wanted to write a quick post to let everyone know about a few recent changes to the Concerto API and, more importantly, how they can take advantage of them.

Concerto has a pretty simple API accessible via HTTP GET/POST requests which exposes content in Concerto that has been approved on one or more feeds.  Lists of content can be accessed by the feed the content is shown on or the user who has uploaded the content.  Individual content items can be accessed by their unique ID numbers in the system.  Don’t worry, its not nearly as scary as it may sound. (The again, I wrote it…)

Recently, we pushed some updates out to clean up the output from the API so its more compliant with the OS X screensaver and we added a JSON-P style callback function to help anyone pull our JSON data into their applications.  Behind the scenes, we’ve spent time working to improve response time for resized images… recognizing that with stronger caching schemes on our end we can provide better experiences for API end users… like people who visit the Union homepage.

Time for an exercise with the API.

The default format for exposing data from the API is RSS but we also support JSON data and two varieties of html to make it easy for everyone.  Let me walk you through a sample query we use pretty regularly at RPI.

I want to get content all the content that is currently showing on screens from the Service & Community feed at RPI, in an RSS format for my feed aggregator.

The first step is to figure out what feed id corresponds to the Service & Community feed.  You can figure this out by checking out the XML document returned by this query: http://concerto.rpi.edu/content/render/?select=system.  Looking at that document, I can tell that feed 1 is the Service & Community feed.

Since we want the content from feed 1 (Service & Community), we’ll be using the select_id=1 option.  Selecting by feed is the default selection type (as controlled by the select parameter), so we don’t have to do anything special to control that.  In addition, RSS is the default format outputted by the system… so no need to mess around with the format parameter either.  This query gets shorter by the second!  Right now were using select_id=1, so our query looks like this: http://concerto.rpi.edu/content/render/?select_id=1.

I want the stuff that was recently submitted up top, so I’m going to add the orderby=submitted option, producing http://concerto.rpi.edu/content/render/?select_id=1&orderby=submitted. Ta Da!  Query generation complete.

If we wanted to be extra stable, we could lock in the API version by adding api=008 leaving us with http://concerto.rpi.edu/content/render/?select_id=1&orderby=submitted&api=008.  This step certainly isn’t necessary, and should probably only be used for a mission critical application or something that you don’t ever want to modify again.  Locking in the API version like this mean that if the Concerto team changes the defaults or the output formats around, I’ll still be getting the same data.

If you’re interested in reading more about the API, check out the documentation on Flagship: http://documents.studentsenate.rpi.edu/documents/show/77.  Also, if you have any suggestions, we’d love to hear them!

Tags: ,
Posted in Concerto | No Comments »

Screensaver Win!

July 13th, 2009 by Brian Zaik

Major props to Mr Michalski tonight for finishing an alpha version of a Windows screensaver using the Concerto API. The screensaver works natively on any modern Windows machine and, according to Brian, caches content locally. Win!

Once we clean up the Windows release, native screensavers will be available for both the Windows and Mac platforms. This is a big part of our strategy with Concerto to increase the number of active and passive methods through which people experience Concerto. Our hope is that doing so will increase the overall value of the entire network, since people at RPI will have more complete access to all of the messages on the system, even when their computers are idle. By having passive displays showing Concerto whenever nobody is using them, we make Concerto more pervasive across campus.

Plus, we seem to have at least a few starting customers…more on this soon. In the meantime, I have a YouTube video of Windows and Mac machines showing their respective screensavers.