Saturday, November 6, 2010

Drumbeat Open Video Lab - Day 2

So I have to preface my take on Day 2 at Drumbeat in Barcelona with a little background. About ten years ago, I dared to write a book on programming, on Perl and CGI in particular. And although I think one of my strengths as a technical writer is bringing a fresh perspective to complicated topics, and indeed the book was quite successful and helped a lot of people add interactivity to their web sites, it was not well received by Perl purists who painted me as an interloper, a gasp!, non-programmer.

Of course, it was and is true that I am not a programmer. Indeed, my angle, if you can call it that, has always been to make technology more accessible for regular people, people who may not code for a living, but who are willing to roll up their sleeves and dip into the underpinnings of a project and not just accept what commercial software allows them to do.

I'm inspired by the spirit of The Macintosh Bible, one of my first publishing projects ever (in particular the Spanish version of the 3rd edition) in which Arthur Naiman made it clear that “easy is hard” and that if you dug a little, you could find a million tricks that would make your computing life that much easier. The Maker phenomenon is a newer reincarnation of this same spirit: that we don't have to settle for what they give us, we can open it up, and build a better version. I love that.

At the same time, I have a hard time shaking off the feeling that I'm just an outsider looking in, not a real programmer, not a real hacker.

So, I'll admit it was with some trepidation that I returned to the Open Video Lab yesterday morning, knowing that they wanted us to build a real project, and that they were going to depend a lot on Javascript and the popcorn.js library that they had built previously. Even their focus on HTML5, which was a big part of why I showed up, was a little daunting. (Does everyone imagine that everyone else knows ten times more than they do?)

I found the whole process fascinating. I'm used to working completely alone, in my own office, doing every bit of my projects, from concept to outline to examples to illustrations to layout to copyediting alone. When I don't know something, I go quietly searching for information, without having to tell everyone I work with what it is that I don't know.

Drumbeat, in contrast, was all laid wide open. About 10 of us returned from the previous day, along with two or three new folks. Dave Humphrey got us thinking about the projects we had talked about on Thursday and helped us both focus on what the projects consisted and what we were trying to solve, as well as what skill sets the members of the group had to offer. There were a lot of Javascript and HTML coders as well as a few designers and video production people. I was totally intimidated by the idea of writing actual code with these guys, and at the same time didn't want to lose the opportunity of learning what they knew. I was also unsure I had enough to offer myself, though thankfully I wasn't the only one to say this.

We ended up dividing into two groups. The first, led by Brett Gaylor, wanted to create a jazzier, prettier demo of popcorn.js, a Javascript library that allows you to line up data to particular points on a video timeline, and thus create mashups like the one they showed the day before in which people in the video tell where they're from and this information is used to trigger Google Maps and Wikipedia giving more information on that location.

A Javascript library is a bunch of code written in such a way that it can be used not just for the original project for which it was conceived, but also easily leveraged for other projects. It's an integral element of the programming community that attempts to highlight and save the best code so that people don't have to continually reinvent the wheel.

The second group, which I was a part of, wanted to figure out a way to expose existing metadata, like the title, creator, or date a video was produced, that was associated with a video either right in the page (with RDFa), or with an external XML file, so that people watching the video could actually see information about the video with a single click.

We then spent about half an hour, with Dave Humphrey's helpful facilitation and focus, discussing the different parts of the project: where we would get the metadata, how we would parse that data once we had it, how users would reveal the data, and then what the data would look like once revealed. The most curious part for me, was then dividing up into the groups that would work on each section of the project.

One group took on the task of figuring out how to pull the metadata out of the HTML file. Although I didn't follow them as closely, I'm pretty sure they used some existing RDFa Javascript libraries. The second worked on writing the code that would make a button appear and disappear when the user clicked. They too were working mostly in Javascript. I was in the third group that worked on displaying the found information right on top of the video. We were writing a combination of Javascript (both with Jquery, a larger web-page related library and without), HTML, and CSS.

I think the part that most surprised me is how small the individual pieces of the project seemed at first, and how much they all realized that they weren't really that small, and would take the better part of the day to create, even divided up between the participants as they were. It was also interesting seeing how they wrote the code in a way that they could test it separately, but that it could later fit together with the other pieces. I loved how they really drew on the different strengths of this randomly assembled group of people and made it possible to all work together. There was really good energy in the room.

We broke for lunch and I was lucky enough to go off with Mark Boas, who is a web developer who has written a popular Javascript plug-in for dealing with audio called jPlayer. He is based in Italy but also has a Catalan connection, and it was great to talk to him and hear what he's working on.

Back at Drumbeat, we all mostly finished up our individual modules, and then began joining them together. Curiously, that was mostly done via USB stick, as the wifi was intermittent at best. Each time the code was joined, we had to test to make sure that what worked separately now would play nicely with the other person's code. The use of jQuery as well as straight Javascrit was problematic, but not crippling.

Once all the code was together, they connected the last computer to a projector so that we could all see and debug the final project together. At this point, the designer folks jumped in and offered suggestions about positioning and font size. What a collaboration!

There were a few hours left before the Drumbeat-wide presentation of projects at 6pm, so I wandered off to find Nicholas Reville who was talking up Universal Subtitles, which is a great collaborative way to add subtitles to videos to make them more accessible to the hearing impaired and to those who don't speak a given language.

And I also found fellow locals Patrick Davenne and Chris Pinchen who offered me beer and conversation, and we lamented the complete disconnect between the festival and Barcelona itself, among other things.

Then back up to the video lab. Our metadata project was finished but the folks doing the popcorn.js demo were still working furiously. They had taken a video of folks at the conference in five languages, edited and compressed it, translated and added English subtitles with the previously mentioned Universal Subtitles, and then used popcorn.js (I think) to pull in and display tweets from the conference on the page as the video plays. The problematic wifi connection had made it hard for them to stream the video in order to synchronize the subtitles, and I was happy to be useful for a few minutes interpreting so that we could finish up the timing.

Perhaps my favorite moment was when about ten of us were hovering over the person doing the final screencast, trying to figure out why the timecodes were appearing on screen. It was crowd-debugging, and we found the extra space and got it out just in time to finish the capture, and run down to the presentation with USB stick in hand. [link coming soon]

So, I'm still not a programmer, but Drumbeat—and the generous, smart people within—let me have a peek into their world that made it feel that much less intimidating. Sometimes when you don't know how something works you imagine it ten times harder and more complicated than it really is. It's probably time for me to work on sharing that idea—particularly with respect to Javascript—with my readers.


  1. This all sounds like a wonderful experience and important work. I would imagine all of this finding its way into high level tools such as RapidWeaver and tools of that ilk. It should not be the exclusive province of coders.

    The stuff about subtitles is disconcertingly at odds with W3C efforts in the same area, see:

  2. Thanks for helping me at the last minute! The subtitles were getting scary :)


More of my books