Archive for December, 2010

Weekend at Bocoup

Posted in open source, webmademovies on December 6, 2010 by scottdowne

Edit: I hope my point was not misinterpreted, but in no way did I mean to say I felt the people in Boston were greater to surround myself with than Toronto. I consider Seneca to be the best thing to happen to me, and David Humphrey to be the best teacher to happen to me, and CDOT to be the accumulation of both. I am gathering as much as I can from as many sources as I can, and mixing that up is huge in getting multiple perspectives. I am already surrounded by greatness, I am just expanding that greatness and making the most of it. Greatness is non linear. It is not a simple stack that is from 1 and up, but multiple stacks of varying types which should all be explored with an open mind. Only when a full understanding is obtained can an opinion be created.

I just got back from Boston, with me and Anna spending the weekend working with Al, Boaz and Rick of Bocoup on Popcorn.js.

Before I get into the specifics of what we were working on, I have to thank them for their hospitality, and the opportunity to work with them. I was watching them pretty closely, and I specifically want to mention Rick. There are moments in every career path, when you get a glimpse of “the next level”. This is the way I thought of Rick’s code, and in order to reach that level, I must first experience it. I kept thinking “You must surround yourself with great people in order to become great.”

I also have to thank David Humphrey and Brett Gaylor for their help in putting this weekend together.

Anyway, on to Popcorn.

We were working with them on refactoring Popcorn.js into a plugin architecture so it can be used be an authoring tool they will be creating. The main advantage for this is that we now have a clear line between film maker and web developer. One of the previous problems have been where to draw this line, or how to support both equally. We tried using XML as a sort of middle ground. Something filmmakers and web developers alike can use, but we quickly found out that it might be easy for both to understand, but neither like to write XML, and no one should write XML, it should be machine generated, but if we are going to be generating it from JavaScript, we might as well generate something that IS JavaScript, which is not XML. So the parser is gone, it is not needed anymore. We are now left with four main components.

First part: We have an authoring tool which will be used by filmmakers to create plugins, and develop a page that will be used to display their content with the plugins. This is an option tool and is not needed to make things work, but also is a stand alone tool as nothing else it needed to make the tool work. The previous popcorn had nothing like this.

Second part: We have plugins. These are created by the authoring tool, or by writing JavaScript by a web developer. The previous popcorn called these “commands”. They were created internally, maintained internally, and everyone had their own idea of how each command should work. Now commands are plugins, they are maintained by the author, and held externally from the popcorn internals.

Third part: This is the plugin registration framework. This is where a plugins go form being individual templates written in JavaScript, to a cohesive unit that. The plugin framework knows how to register a plugin, create commands form it, and attaches them to a target video.

The fourth and final part: This is the internal timing mechanism, and to me, the core of what popcorn is. This is what interacts with the video and knows how to use registered commands. We are pretty much able to plug in the old popcorn timing code, into the new. Al took a close look at this code, found a small bug, and offered some collaboration to make it better.

To me this method is much cleaner, and technically, isn’t much of a library anymore, but it is still a powerful JavaScript tool worthy of the name library. It is going to be much much easier for filmmakers to use, and less of a headache for developers to maintain and more familiar for them to use.

Follow

Get every new post delivered to your Inbox.