Open main menu

CDOT Wiki β

Fall 2010 Mozilla Open Source Project List

Revision as of 21:59, 24 September 2010 by Peleaning (talk | contribs) (C3DL Library Core Refactoring)

Introduction

The open source course is a project based course, which puts students in direct contact with the open source community and real-world open source code. Students are encouraged to jump inot something big and unknown, and to do so with the full support of their colleagues, professor, and the open community.

All projects will be done individually, but with collaboration between students and the open source community. Some of the projects below are complicated enough that they can be broken into parts for multiple people. If more than one person is interested in the same project, speak to your professor to figure out if it can be broken into sub-components.

Potential Projects

C3DL Library Core Refactoring

c3dl is a js library that provides higher level functionality for web developers wishing to develop 3D web applications. Currently the library always includes all features c3dl provides, even though they won't be needed in all cases. This adds download size, code complexity, etc. This project will refactor c3dl so that we have a core component, and then all the features can be added to this core and become unbound.

  • Technologies: JavaScript, WebGL, HTML5
  • Contacts: Cathy Leung, Andor Salga
  • Primary choice: Pete Leaning

C3DL Build, Package, and Test Automation

The c3dl library is currently manually packaged and deployed, and does not have a proper automated test suite. This project will create an automated build system that takes care of such tasks as: combining the multiple source files into one, minified file (better for download); port the automated test system from Processing.js to c3dl; and create a way to package various sub-components of c3dl into a single custom version of the library.

  • Technologies: JavaScript, light scripting (python, bash), Makefile, canvas and HTML5
  • Contacts: Cathy Leung, Andor Salga, Dave Humphrey

CSS Checker JetPack Extension

CSS as a standard evolves more slowly than browser vendor implementations, and as such, browser extensions are created. For example: -moz-box-shadow (Mozilla only), -webkit-box-shadow (Chrome/Safari), box-shadow (CSS standard). This extension will allow the user to tell when a a -webkit-* extension is being used for which there is also a -moz-* version. This will help with finding compatibility issues on websites that appear to work in one browser and not another.

  • Technologies: JavaScript, JetPack Extension API, CSS
  • Contacts: Dave Humphrey

Popcorn.js Visual Debug Mode

The Popcorn.js library is a JavaScript library that allows semantic and timeline data to be added to a web video. Currently, it is text-based (xml and json) with no way of visually seeing what is in a Popcorn timeline file. This project will create a 2D canvas based visualization tool, allowing developers to easily turn on debug mode, and have a visual timeline appear at the bottom of the web page, showing various commands and their times. See the recent Github redesign, which added a timeline canvas view for network activity.

  • Technologies: JavaScript, Popcorn.js, canvas and HTML5
  • Contacts: Scott Downe, Brett Gaylor, Dave Humphrey

Video Wrapper for Popcorn.js

The video element provides basic functionality for playing, pausing, seeking video in a web page, and for doing things like changing the volume. However, it is quite limited, and could be enhanced to support multiple overlapping videos, controlling more than 1 video in a page, fetching and displaying thumbnails, better seeking, buffering, etc. This project will create a new programming interface and API for the video element.

  • Technologies: JavaScript, Popcorn.js, video
  • Contacts: Anna Sobiepanek, Joel Young

Create Soda.js: an interface extension to Popcorn.js

Various projects using video on the web need to create innovative and non-standard user interfaces to control things like visual timelines, play, pause, changing the volume, etc. This project will create a library that provides some commonly needed interfaces, specifically aimed at the Global Lives project

  • Technologies: JavaScript, video, canvas, HTML5
  • Contacts: Brett Gaylor, Anna Sobiepanek, Joel Young

Create Candy.js: an effects extension to Popcorn.js

Various projects using video on the web need to create innovative and non-standard effects to transform the video, for example, applying filters, altering the video, using 2D and 3D effects, etc. This project will create a library that provides some commonly needed effects (e.g., colour filters, tilt shifting, etc.). This project will overlap and support the HTML5/Video Comic Book project.

  • Technologies: JavaScript, video, canvas, WebGL, HTML5
  • Contacts: Brett Gaylor, Scott Downe, Anna Sobiepanek, Dave Humphrey

HTML5/Video Comic Book

For the release of Firefox 4, Mozilla is creating a web-based comic book application, which uses video, canvas, and other HTML5 features. This project will help create the back-end JavaScript necessary to make things work with the video and canvas in the page. A professional designer will work on the HTML/CSS with you. This project will overlap and support the Candy.js library project.

NFB Open Video Player

The NFB wishes to start experimenting with the possibilities of HTML5 video. They want to implement and deploy an HTML5 video player on NFB.ca that meets the high quality feature set that we have currently in place with our flash video player. In order to demonstrate how this player would extend the ability of the NFB to create dynamic interactions with page content, this project will also produce several "demos" of the possibilities for educational distribution.

NOTE: This project is large enough for a few people to work on it.

Get Microsoft's WiX MSI toolchain working with Mono

Microsoft has an open source tool written in .NET that can create MSI installable packages. Currently this toolchain runs on Windows using the Microsoft .NET Framework. This project will get this tool to run using Mono (the open source, cross platform .NET runtime) and working on Linux.

  • Technologies: .NET, Windows, Linux, XML
  • Contacts: Mike Hoye