Summer of Code 2007

From XiphWiki
Jump to navigation Jump to search

Application

Google Summer of Code has a formal application process for mentoring applications this year. The window is March 5-12. This section is for development of our joint application with Annodex.

Here are the questions the GSoC faq says we must address:

Describe your organization

Xiph.org is an open source project and non-profit corporation dedicated to providing open and free-to-implement multimedia technology as a foundation for an interoperable, level playing field on the internet and other digital distribution networks. Over the past 8 years we have hosted development for all the major patent-free audio and video codec development, including the Vorbis, Speex, FLAC and Theora, the Ogg streaming format, and the icecast streaming media server.

This year we are also coordinating projects for the Annodex association under our umbrella. The Annodex project is developing a set of open specifications and open source software to allow the creation of hyperlinked Webs of audio and video integrated with the text-based view of the current Web. Toward this goal, Annodex has done a great deal of work developing tools, browswer plugins and convenience libraries to facilitate adoption of Xiph.org's lower-level technology. As such the two projects have largely aligned goals, but focus on different levels in the stack.

Why is your organization applying to participate in GSoC 2007? What do you hope to gain by participating?

Did your organization participate in GSoC 2005 or 2006? If so, please summarize your involvement and the successes and failures of your student projects.

Xiph.org was invited to participate in GSoc 2006, and informally mentored annodex-related projects as well.

We were granted funding for 6 slots. One we weren't able to fill because our chosen students picked (or were assigned to) other projects.

Two were successful: One, a hardware implementation of a theora decoder. This project produced HDL implementation of the major decoder components, to be used with a general purpose CPU, such as the open source LEON sparc implementation. Real time playback of SD content was achieved using the proprietary Nagios cpu design. Two, implentation of OggSkeleton support in various tools. We have maintained contact with the two successful students since the program finished, but neither has contributed significant code outside the GSoC term.

The remaining three were unsuccessful through lack of necessary skills, health complications, insufficient motivation, or some combination of all of these.

We enjoyed our participation last year. It energized our project and improved our connections to the rest of the open source community. We learned some lessons about mentoring and especially about applicant screening and would appreciate a chance to apply them in a second round.

If your organization has not previously participated in GSoC, have you applied in the past? If so, for what year(s)?

We did not apply outside of our invitation in 2006.

Who will your organization administrator be? Please include Google Account information.

Ralph Giles: google account giles@xiph.org

What license does your project use?

In general, we use a modified-BSD style license for our libraries, to enable the widest possible uses of our formats and reference implementations.

Our applications are generally GPL but LGPL or (GPL-compatible) modified BSD is also acceptable.

What is the URL for your ideas page?

This wiki page contains our current suggestions: (updates needed for 2007):

http://wiki.xiph.org/index.php/Summer_of_Code

What is the main development mailing list for your organization?

We don't have a single central mailing list for all of Xiph.Org. Instead, we have per-project mailing lists; of these the most active is vorbis-dev@xiph.org. A complete listing of our lists is available at:

http://lists.xiph.org/mailman/listinfo/

What is the main IRC channel for your organization?

We use freenode (irc.freenode.net), with a number of channels. #xiph is the main organisation-wide one, but we also have project channels: #vorbis, #theora, #icecast and #annodex are the major ones.

Does your organization have an application template you would like to see students use? If so, please provide it now.

http://wiki.xiph.org/index.php/Summer_of_Code_Applications

Who will be your backup organization administrator? Please include Google Account information.

Michael Smith: google account mlrsmith@gmail.com

Who will your mentors be? Please include Google Account Information.

Mike Smith: google account mlrsmith@gmail.com

Mike Smith has been involved with Xiph.Org and multimedia development since 2000 and remains one of our most involved core members. He helped write major portions of the vorbis-tools suite and the icecast streaming media server. He currently works as a developer at Fluendo.com on the GStreamer multimedia framework, flumotion (a streaming media server), and other multimedia software.

Ralph Giles: google account giles@xiph.org

Ralph Giles has been involved with Xiph.org and multimedia development since 2000. He has contributed to tool development and the theora video codec. He handles much of the coordination and adminstrative work for Xiph.org. He mentored the successful "Hardware implementation of Theora decoding" project in GSoC 2006 and acted as an administrator.

Silvia Pfeiffer: google account silviapfeiffer1@gmail.com

Silvia Pfeiffer is the founder of the Annodex project and chair of the Annodex Association. She is the principle author of most of the annodex specifications, RFC 3533 and RFC 3534 describing the Ogg media format, and is heavily involved as an organizer in both the Xiph and Annodex projects. Most recently she organized the FOMS developer summit and media recording for LCA 2007. She helped mentor the successful "OggSkeleton support" project in GSoC 2006 and acted as an administrator during the application process.

Christopher Montgomery: google account xiphmont@gmail.com

Christopher "Monty" Mongomery is the founder of Xiph.org, architect and lead developer of the Ogg Vorbis general purpose audio compression format. He has been doing open source development under the Xiph name since 1999. His current work focusses on development of a next-generation audio codec. He helped mentor a project related to this in GSoC 2006.

Timothy Terriberry: google account tterribe@vt.edu

Timothy Terriberry is the author of the Theora video codec specification and the author of the theora-exp implementation. He has been an active contributor since 2003. He mentored a theora-related project in GSoC 2006.

Jan Gerber: google account jan.gerber@gmail.com

Jan is the author of the very widely used ffmpeg2theora transcoding tool, and maintainer of the v2v.cc syndication website, used largely for art and academic video site. He has been a project contributor since 2002.

Conrad Parker: google account conrad@metadecks.org

Conrad Parker is the author of the liboggz and libfishsound convenience libraries and the sweep audio editor. He is heavily involved in the Annodex project and mentored the successful "OggSkeleton support" project in GSoC 2006.

Jean-Marc Valin: google account jmvalin@gmail.com

Jean-Marc Valin is the architect and lead developer of the Speex voice codec. He mentored an audio codec research project in GSoC 2006.

What criteria did you use to select these individuals as mentors? Please be as specific as possible.

We selected our mentors from the 'core' developers and contributors within Xiph. Mentors were selected based on how well they know the code area they're volunteering to mentor, how long they've been part of Xiph, how well they interact with others (particularly in terms of building community around our projects).

The majority of the mentors we've selected are core developers on the various Xiph.Org sub-projects that they've volunteered to mentor for. They have been contributing to Xiph.Org for at least several years, and have shown a persistent interest both in the software we develop, and in helping to create a community around it. We have also made sure that each mentor has sufficient time available to adequately mentor their student(s).

What is your plan for dealing with disappearing students?

Though the details of dealing with students on a day-to-day basis will fall to the individual mentors, we will set some requirements for reporting progress. We expect mentors to be in contact with their students at least several times a week, and ideally daily (during the working week). Back-up mentors will also stay in contact.

We will require students to send a brief summary of their progress to the relevant sub-project mailing list once a week. This is not intended as an onerous requirement: just a sign that progress is being made. Should a student fail to do this, without having negotiated an exemption from their mentor beforehand, we'll send them a (polite) warning, and ask the mentor to take a closer look at what the student is getting done.

Should the student then continue to be absent, we'll be forced to take additional action - up to and including requesting that google withhold payment from them. We hope for none of this to be needed, but our experiences last year indicated that in at least some cases it may well be.

Xiph.Org also holds monthly IRC meetings where we try to get status updates on our various sub-projects, progress, etc. We'll ask that each student attend (unless their timezone makes this prohibitively difficult, in which case we'll ask them for a pre-prepared progress report to give at the meeting).

What is your plan for dealing with disappearing mentors?

Our project-suggestions page has at least two mentors for every project. Should we decide to select a project not listed on that page, we would not do so without finding both a willing mentor and an available backup.

In most cases, the mentors are core developers who have been an active part of Xiph.Org for a number of years, so we think that disappearing mentors are relatively unlikely, but this provides the neccesary backup should a mentor be unable to continue for unforseen reasons.

What steps will you take to encourage students to interact with your project's community before, during and after the program?

Xiph.Org conducts much of its development discussion and community-building on our IRC channels. We'll ask that the students be present there while they're working, where adequate network access makes that possible. We hope to make them feel that they're an important part of our community; that their contributions are really making a difference towards the goals of Xiph.

We intend to be open to their contributions - whilst we're aware that initially their work may not be of a quality sufficient to go into our core codebase immediately, we'll give them write access to our repository to work on a branch. We'll ask them to be open in discussing and designing their contributions on irc and our mailing lists. Our application template welcomes them to come and ask us questions when they're trying to write up their application. We hope that some, or even all, of the students will continue to be part of the Xiph community after SoC concludes. For those students who have not previously contributed to open source software, we'll teach them about how important community building is for the ongoing health of such projects.

What will you do to ensure that your accepted students stick with the project after GSoC concludes?