Initial Project Plan for Soda.js: an interface extention to Popcorn.js

Soda

I have chosen to create Soda.js, an interface extension to Popcorn.js this semester. Popcorn.js is establishing a programmatic way to play and access information on HTML5‘s audio and video elements. Soda.js will provide innovative and non-standard user interfaces for commonly needed web video controls (ie. visual timelines, play, pause, volume control, etc.).

Background

The interface features implemented in Soda.js are specially aimed at the needs of the Global Lives Project. The Global Lives Project documents a full 24 hours in the lives of 10 people who represent the diversity of the world population. They have filmed well over 240 hours of video and have thousands of hours of volunteer work put into their project. The mission of the Global Lives Project is to collaboratively build a video library of human life experiences, and to reshape how people think of other cultures, nations and people outside of their own communities.

Currently, the Global Lives Project functions as exhibit that tours around the world, but they are looking to put this project up on the web. This is where Soda.js comes in. The Global Lives Project is looking for an interface that can control and manipulate more than one video at a time, and the mock ups they have come up with look very interesting. They want to enable a more convenient way for their viewers to watch and navigate their video library. Once the interface controls are created in Soda.js, they will be available for other people to use as well.

I chose this project because it looked like a lot of fun to me. I’m very excited to be working with HTML5 and I look forward to learning advanced JavaScript. I also really liked what I saw in the Global Lives Project and I am very happy to be working on something to contribute to their project.

Follow this Project

I have created a wiki page for the Soda.js project. This page will stay up-to-date on project news, contributions and detailed specs. To follow this project as I proceed, please stay tuned to my blog and/or view updates on the wiki page.

The Time Line for this Project:

0.1 Release – Oct 22, 2010
0.2 Release – Nov 16, 2010
0.3 Release – Dec 7, 2010

Actually, I remember something about a competition mentioned in class – the latest entry deadline is Dec 9. I’ll get more info on that and update when I do. If there is some kind of competition, my time line may need to modified for earlier releases.

Release 0.1

For my Release 0.1, I would like to have 2 or 3 controls working. The Soda.js description listed on the CDOT wiki mentions “visual time lines, play/pause, changing the volume, etc.” I’ll take these controls for my release 0.1 until I have talked to Joel and find out what other features are wanted or planned for Soda.js.

I will measure my success by each properly working user interface control. As long as the control works and does what it’s supposed to do, I’ll be happy.

Releases 0.2 and 0.3

I’ll have to update this after speaking to Joel.

The success of release 0.2 and 0.3 will be measured the same way release 0.1 is measured. The controls need to work, and hopefully by this time, I should have some feedback to consider for 0.2 and 0.3.

Technologies I’ll need to Learn

The technologies needed for this project are JavaScript, <video>, <canvas> and HTML5. I will need to brush up on my JavaScript, and get to know the video and canvas elements. My only experience with canvas is what I saw while testing the Chrome Experiments. I can say I was definitely impressed and I look forward to starting some research.

My plan is to locate and utilize tutorials. I’ve learned in the past that reading is nice, but actually working with the stuff (aka. just jumping right in) is a lot more effective.

Resources:

I think these are nice places to get started.

Contacts

So far, I have contacted Humph about the work on this project. He has given me links to the Global Lives Project and sent me a few interface mock ups. Humph has also introduced me to Anna Sobiepanek (the main Seneca/Popcorn.js developer) and is trying to connect me with Joel Young (the main developer for the video wrapper and user interface work for the Global Lives Project). I have yet to meet Brett Gaylor, a filmmaker who works for the Mozilla Foundation, whom I believe I might find in #drumbeat on Moznet.

Collaboration and Contribution Opportunities

A great way for people to get involved with Soda.js is to test the user interface controls as they come out with each release. Users and feedback will be much needed.

I also hope to contribute to other projects this semester. As I will be working with JavaScript, <video>, <canvas> and HTML5 for this project, I would like to contribute to other projects that utilize these technologies. I know some of my colleagues will be using these same technologies and I look forward to following their blogs.

Barriers

Last time, I had a few barriers. This time I only have one. I’m afraid that this project will end up like the ANTLR one and not be completed. Last time, I got stuck and I gave up. Given how often you’re supposed to get stuck when working in Open Source, I have a feeling this threat is going to loom over my head the entire semester.

I suppose the looming is a good thing because, so far, it has kept me going coming back – to test the Chrome Experiments, file some bugs, and research the soda.js project. I keep reminding myself that (I’m quoting Humph) 1) “the norm is to feel lost” and 2) “Try to answer your own question. When you really get stuck, ask IRC, don’t give up”. I think, this semester, all of the looming and the determination to not let Soda go down the same path as my ANTLR project are going to get the Soda releases out and on time.

Advertisement

One thought on “Initial Project Plan for Soda.js: an interface extention to Popcorn.js

  1. aSydiK says:

    Feel free to give me a shout if you get a little lost. I can try to give you some direction.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.