BAVC Days 1 & 2

Since my last post ( which was regrettably 3 weeks ago ) the Popcorn Maker team and I have been sprinting on getting Popcorn Maker in a usable state for BAVC ( the Bay Area Video Coalition ).  There was a ton of man hours put in by everyone and we came out with a nice 0.1 ish piece of software.  In general, Bobby Richter completed the core of the Popcorn Maker API, while Scott Downe, Chris DeCairos and I all worked on separate modules that would hook into the core and perform specific functionality.  Mohammed Buttu worked on creating a Final Cut Pro plugin for Popcorn Maker, in which it would allow users to create track events filled with data within final cut pro, and then export this data and display it on a native mac app of Popcorn Maker. We were also worked closely with Brian Chrils, who was responsible for creating custom event editors for the various groups a BAVC, as well as Ben Moskowitz and Brett Gaylor who oversaw the whole project and were there to provide invaluable ideas and help us tackle any issues that arose.

On Monday, Mohammed, Scott, Chris, Bobby and I flew out to Berkeley California in order to attend a week long workshop with highschool students at BAVC.  The students here were creating short films about various different things, ranging from a video about the Black Panthers and what they stood for, to a video outlining a center where mentally disabled children could go to develop there artistic abilities.  The idea was that we would help each of the groups create a popcornized version of there videos in order to better showcase them as well as create a whole new interactive experience with their viewers.  This was an exciting opportunity as it would be the first time the new Butter, now known as Popcorn Maker, would be used by someone other than its developers.  We would be on hand all week to provide help and insight into how the projects could be integrated into the web, teach them how to use Popcorn Maker and its functionality, and fix any bugs or problems that arose.

On Monday the 5 of us arrived in California and met up with Brett and Ben an headed over to the house where they were staying in order to have lunch and talk over the state of Popcorn Maker.  We outlined some of the issues that were still left and also discovered some more as we continued tinkering with it.  We divided up the tasks and began hacking.  Bobby and I worked on issues in the previewer and timeline that recently came to be from the newly developed custom editors and layouts that Brian Chirls had been developing.  The issue here was that we originally went with the idea that layouts would be simple html pages, with little to no javascript in them, especially no instances of Popcorn.  This turned out not to be the case.  Brian wanted to create layouts where Popcorn lived in his page in order to provide the user with a richer experience and really enable him to custom tailor the experience that each of the different groups would receive.  This wasn't a bad thing, in fact it was an amazing thing that Brian put so much effort into creating such amazing layouts and editors, but the problem was that we were not prepared for this.  Bobby and I began hacking away at all of the different areas that would be affected by this change, which turned out to be quite a bit.  We ran into a ton of small issues and had to rearrange a lot of code in order to get the desired functionality.  We ended the night without ever actually finishing all of the bugs that arose, but left it in a decent state.  Chris and Scott continued hacking on their respective modules, adding in more features and fixing any bugs that we discussed.  By the end of the night we were all swamped and jet lagged from our flight and decided to call it around 11:00pm California time.  We went back to the hotel and got some much needed rest.

The next day we headed over to BAVC in order to meet all of the groups and see the videos that they created.  We got there around 10:00am and sat down for a small round of introductions and got to know everyone a bit better.  We then proceeded to watch each of the groups videos, which were ~5 minutes in length each.  After seeing each of the videos I have to saw that I was nothing but impressed.  I created an idea in my head that the videos that we were going to be working with would be something that your typical high school student would make in his free time, something that we have all made on our parents camcorders and such.  This was not the case.  It turns out they all put in a ridiculous amount of time and effort into creating truly amazing videos.  They looked professionally cut and edited and if I wasn't told before hand that these videos were made by highschool students, I wouldnt have believed it.  The videos and the groups were as follows:

City Slickers - A video outlining a small program developed within the community of Oakland where a small group of city members created a small gardening area in order to provide fresh fruit & vegetables for sale as well as brighten up the neighbourhood.  It gave members of the community an opportunity to participate if they wanted and really allowed everyone to be involved with something that benefited everyone in the community.  There Popcornized version consisted of having the video fill the whole entire screen, and then have a semi transparent googlemap show up at certain points in the video whenever one of the gardens were mentioned.  This map would place a pin where this location was.  If the user moved there mouse around on the video, the map would show again, and hide if the user didnt move it for a set period of time.  After the video was done, their would be the option to play it again, as well as numerous video of other gardens that have been created since, as well as a flickr stream of pictures of these gardens.

Black Panthers - Was a video about the upstart of the black panthers and provided insight into everything that the group stood for and the values that they were standing up for.  The popcornized version of this consisted of an audio file, rather than a video, playing and triggering popcorn events.  This audio clip was cool in the fact that it was hosted on soundcloud, which allowed users to comment on certain points in the audio clip and have them show up in the video, which is awesome for something like this.  The audio clip outlined different places that the black panthers were prevalent, and these locations would be shown as a googlemap streetview on the screen, allowing the user to move the streetview around and take a look for themselves.  They also had a small side panel where the user would be able to see relevant images related to the video.  There was also a small footnote below the googlemap in order to provide the viewer with some useful data about what was being talked about.

Creative Growth - Was about a program for mentally challenged children in which they could join and create art.  It was run in order to help them develop there abilities and to show them that they can truly create amazing pieces of art.  The popcornized version involved a video that would be playing in the background and have images slowing zooming in and out over the video.  This involved a custom editor to make this possible and was all possible because of Brian Chirls hard work.

Inspire - Was 4 short videos about youth with mental health issues, such as depression and what not.  They were dramatic videos to show the issues that they dealt with on a daily basis and how they got over there problems.  These videos were created to show them that they are not alone in their fight and that there are similar people out there in which they can communicate with and express how they feel.  The popcornized version would involve a custom webpage that was filled with stick figure-esque figures. These stick figures represented the number of people in america.  It would then highlight a portion of them, signifying that there are many other people out there with issues, and that they are not alone in their fight.  This portion of the stick figures would now fill the screen and be colored differently.  Some would signify a video, a comment, a tweet, as well as stories about other people's fights with mental illness.  Clicking on one of them would display data and allow the user to really connect with the idea that there are people out there like them and these are the kind of issues that they are facing.

We then had lunch and conversed a bit and then sat down with the groups in order to really get a grasp of what they wanted on their pages, and to understand if there was any custom functionality that we needed to create in order for them to be able to create what they envisioned.  We took the rest of the afternoon to do so and reconvened later at Brett, Bobby and Brians place to go over what happened throughout the day. This is when the real hacking began.

We realized at this point that if we wanted to have Popcorn Maker in a fully usable state for the next day that there was a ton of work that still needed to be done.  There were still some glaring issues left to deal with, such as all of the custom layouts/editors still not 100% complete, errors being thrown about instances of popcorn being handled incorrectly in layouts, as well as zooming, playing/pausing, and muting issues.  This was at about 8:00pm on Tuesday night.  Bobby and I continued fixing issues that continued to arise with the custom layouts and instances of Popcorn/Popcorn Maker.  The reason that these issues continued to persist was due to importing mainly.  The previous day we fixed what we thought was the issue, but in reality it was only the tip of the iceberg.  There was a ton of problems still littered throughout the code that didnt become obvious until after you had imported.  One of these main bugs was the fact that listeners were not correctly being destroyed on import. This caused Popcorn Maker to become unresponsively slow after ~3 consecutive imports.  The solution turned out to be that on our removetrackevent listener, we were not correctly handling all of the other listeners that were still active.  Since we were doing an import at this point in time, we were rebuilding the previewer with a new instance of Popcorn, with a new media and so on.  When we were doing this the listeners were re-added, and continued to pile up on each consecutive import.  The fix in this case wasn't too bad and was fixed in not too long.  Some of the other issues we ran into were the result of fixing other issues, which was sort of a bummer as the list of bugs just continued to grow.  These were issues that resulted from us making the previewer even more modular, caring less and less about what you threw at it and still being able to handle it in a sane manner.  Chris worked a lot on fixing app side issues/problems with the event editor as they came in. I know by the end of that night, the popup boxes for event editing were finally resizing properly, which was amazing because I know how crazy it was driving Chris the previous week.  I don't know for certain what exactly Chris did to fix it, but it looks awesome now!

We continued hacking into the morning, and at about 3:30am or so we really began seeing some progress.  Bobby and I had finally figured out pretty much all of the issues that persisted pertaining to instances of Popcorn and it didnt come a minute too soon.  Brian had just finished one of the new custom editors/layouts that he had been working on all night and we finally had the opportunity to give it a good test in Popcorn Maker.  At around the same time Ben finished working on a layout for the Black Panthers group and we were also able to give that a test run.  This was one of those rare moments where stuff just worked, and everyone was ecstatic.  The end for the night was finally in sight and we were feeling good about the state that Popcorn Maker` was in.  We continued working for another 2 hours before heading back to our hotel to catch some sleep before the next day began.

We were able to get a pretty good sleep before hoping on the train to head to BAVC once again.  Once we arrived we began helping the students use Popcorn Maker and trouble shoot any issues that arose.  The awesome part was seeing most of the groups use the Final Cut Pro app that Mohammed had created and to see it coming along nicely.  It was definitely a great idea to make an app that felt native on the mac and comfortable in the hands of film makers, as after all, they were the ones who were going to be using it.  We continued adding a few more features throughout the day, such as some safety measures to ensure no one accidentally closes the page and loses there work, space bar makes the video play, and the left and right arrow keys make an active track event move left and right along the timeline in 0.25 second increments.  It was small fixes like this that made the program feel more and more comfortable to film makers, and really began to put a small amount of what seemed like polish on top of what we had put together the night before.  It was awesome seeing what we had been working on the last 2 months being used by people and seeing the experience that they were getting out of it.  It was amazing how enthusiastic the students were and seeing the effort that they put into their projects really made us want to put that much more into Popcorn Maker to give them that much better of an experience.  The first 2 days had been an amazing experience in everything from what it takes to get software in a usable state, the unthought of issues that arise, and sleep deprivation.

Thursday is going to be a lot more of what Wednesday was, in that we were going to be helping the students use Popcorn Maker and attempt to ensure the best experience possible.  I will hopefully have the opportunity to post some pictures soon of what we have been working on as well as write a few more blog posts before we leave BAVC.  Stay tuned for more updates!