Summer of Code Mentoring
Xiph.Org Application as a mentoring organization
We need to apply for consideration as a mentoring organization 2008 March 3-12. Google lists the following questions in their faq. Our work-in-progress answers are inline.
Describe your organization.
The Xiph.Org Foundation is a 501(c)(3) non-profit organization 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 developed most of the major patent-free and royalty-free audio and video codecs currently in use, including Vorbis, Speex, FLAC and Theora, as well as developing the Ogg streaming format, and the Icecast streaming media server. Xiph hosted libraries like liboggplay and liboggz power the underling html5 video support in Mozilla Firefox.
This year we are also coordinating projects for the Annodex association under our umbrella. The Annodex projects develop standards and software for timed metadata and temporal media reference compatible with the existing web ecosystem. The Annodex streaming media server is used on sites such as wikipedia and archive.org to facilitate improved video seeking, inter-archive interoperability, and temporal media referencing via URLs
Why is your organization applying to participate in GSoC 2008? What do you hope to gain by participating?
We believe that the Xiph.Org Foundation has a wide-ranging set of projects that are both challenging and educational for students. Furthermore, they are important/useful goals for the wider technology community, and especially users of open source software.
We believe that Xiph's mandate to develop multimedia standards and software is an important one, but as a small non-profit with no official staff we—of course—have limited resources. We hope that the results of GSoC will include the direct benefit of new software development, but also help grow the number of active participants in a long-term manner. Most of our core developers started as students, but have since moved on from their student days. Attracting and retaining students is essential to the health and sustainability of our project and is an important goal for all of us.
Did your organization participate in past GSoCs? If so, please summarize your involvement and the successes and challenges of your participation.
The Xiph.Org Foundation was invited to participate in GSoc in both 2006 and 2007, and informally mentored Annodex-related projects as well.
In 2006, 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 demonstrated using these components in combination with the proprietary Nagios CPU design. Two, implementation of OggSkeleton support in various tools. We have maintained contact with the two successful students since the program finished. One has continued to contribute code outside the GSoC term, continuing related work.
The remaining three were unsuccessful through lack of necessary skills, health complications, insufficient motivation, or some combination of all of these.
In 2007, we were given 2 project slots. One was an extension of the hardware decoder effort from last year. The other was helping to do R&D on Xiph's next-generation audio codec, Ghost. Both were marginally successful — the students reached the minimum goals set, but little more, and did not maintain contact with Xiph after the program.
We enjoyed our participation over the last two years. It provided needed external input, energizing our project and improving our connections to the rest of the open source community. We think we've learnt a lot about how to mentor new and upcoming contributors, and how to best screen the applications we do receive.
If your organization has not previously participated in GSoC, have you applied in the past? If so, for what year(s)?
We have participated previously, in 2006 and 2007.
Who will your organization administrator be? Please include Google Account information.
Michael Smith has volunteered to be the primary admin this year. Google account firstname.lastname@example.org.
What license(s) does your project use?
In general, we use the revised 3-clause BSD 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?
What is the main development mailing list or forum for your organization?
We don't have a single central mailing list for all of the Foundation. Instead, we have project-specific mailing lists; of these the most active is email@example.com. A complete listing of our lists is available at:
The primary contact of the Annodex projects is firstname.lastname@example.org
What is the main IRC channel for your organization?
Our main channel is #xiph on irc.freenode.net. We also have project-specific channels: #vorbis, #theora, #icecast, #speex 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.
Who will be your backup organization administrator? Please include Google Account information.
Ralph Giles will be the backup admin if no one else volunteers. Google account email@example.com.
Who will your mentors be? Please include Google Account information.
- Michael Smith: google account firstname.lastname@example.org
- Ralph Giles: google account email@example.com
- Silvia Pfeiffer: google account firstname.lastname@example.org
- Christopher Montgomery: google account email@example.com
- Timothy Terriberry: google account firstname.lastname@example.org
- Jean-Marc Valin: google account email@example.com
- Arek Korbik: google account firstname.lastname@example.org
- Michael Dale: google account email@example.com
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 sub-projects that they've volunteered to mentor for. They have been contributing to the Xiph.Org Foundation 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).
Michael Smith has been involved with the Xiph.Org Foundation 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 has been involved with the Xiph.Org Foundation and multimedia development since 2000. He has contributed to tool development and the Theora video codec. He handles much of the coordination and administrative work for the Xiph.Org Foundation. He mentored the successful "Hardware implementation of Theora decoding" project in GSoC 2006 and acted as an administrator.
Silvia Pfeiffer is the founder of the Annodex project and president of the Annodex Association. She is the principle author of most of the Annodex specifications, RFC 3533 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 "Monty" Montgomery is the founder of the Xiph.Org Foundation, 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 focuses on development of a next-generation audio codec and a new Theora encoder. He helped mentor a project related to this in GSoC 2006.
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.
Jean-Marc Valin is the architect and lead developer of the Speex voice codec. He has been involved in the Xiph.Org Founation since 2002. He mentored an audio codec research project in GSoC 2006.
Arek Korbik is the author of the Xiph QuickTime Components. He has been a project contributor since 2005.
Michael Dale is the author of the MetaVidWiki project which implements many of the Annodex and Xiph technologies as an extension to MediaWiki.
What is your plan for dealing with disappearing students?
Our first goal will be to provide necessary support from the community such that our students do not want to suddenly vanish. We want our students to become real members of the community, with ongoing contributions. That said, we're well aware of the possibility of a student disappearing.
We intend to be reasonably strict with requiring students to keep in touch - whilst we're quite happy for them to be absent for a while if they let us know in advance, we will intend to get at least twice-weekly updates from each student.
The mentors will have primary responsibility for their students, but the admins (Mike Smith and Ralph Giles) are also going to ensure that the mentors are indeed keeping track of what their students are up to. We'll ask our students to provide means for us to get in touch beyond email, where possible - phone, etc - in case we need to get in touch urgently.
What is your plan for dealing with disappearing mentors?
Our mentors are all people who are major contributors to the Xiph projects - and have generally been contributing for many years. So, we think it's pretty unlikely that a mentor will disappear. However, we do have more mentors available than we expect to eventually have students (based on past years), so we're well able to take up the slack if a mentor becomes unavailable for any reason.
Our admins will ensure that the mentors are keeping up with the students appropriately, and should it be absolutely necessary, we will either find another appropriate mentor, or the admins (Michael and Ralph) will take over mentoring the students directly.
What steps will you take to encourage students to interact with your project's community before, during and after the program?
The Xiph.Org Founation 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?
We hope that the mentoring process and the experiences they have as part of GSoC will make the students interested in remaining part of Xiph, continuing development on the software they've been working on, and perhaps nurturing their patches towards inclusion in an actual release.
A very important part of GSoC is for us to make them active members of the community, in particular on the irc channels and the mailing lists. Past experience tells that once they have become part of that community, they will stick around for longer.
We will encourage them not to consider this just "a summer job", but as being part of a real community — and doing something that is both interesting, and useful to the wider world.