Google Summer of Code Organization Application 2009
Link ID: puredata
Group Name: Pure Data (aka Pd)
Home Page URL: http://puredata.info
Public Email: firstname.lastname@example.org
Pd (aka Pure Data) is a real-time graphical programming environment for audio, video, and graphical processing. The graphic dataflow nature of the language allows programs to be always running, even while editing. This combined with visual boxes and lines makes programming an almost physical experience, and much more intuitive for many people.
It has been used to make music; build audio/visual performance interfaces, using sensor data and controllers; create networked client/server software, process and generate video; create 3D graphics; control robots; run a sound engine for video games like Spore, and more. Pd was written to be multi-platform and therefore is quite portable; versions exist for Win32, IRIX, GNU/Linux, BSD, and MacOS X running on anything from a PocketPC to an old Mac to a brand new PC. It is the third major branch of the family of patcher programming languages known as Max (Max/FTS, ISPW Max, Max/MSP, jMax, etc.) originally developed by Miller Puckette and company at IRCAM in the late eighties. The core of Pd is written and maintained by Miller Puckette and includes the work of many developers, making the whole package very much a community effort.
The main community distribution is known as Pd-extended, and it includes the work of at least 100 different people. Most of the code for Pure Data is organized into libraries, mostly known as "externals", which build upon the core functionality of the language itself.
Why is your group applying to participate? What do you hope to gain by participating?
Right now, we have a lot of people using Pd who want to get more involved in the development of Pd itself. We think that the Google's sponsorship will provide people with the time to focus on getting up to speed and through the hardest part of the steep learning curve. Part of this learning curve is related to Pd's nature: it is an intuitive programming language implemented in C and Tcl. Therefore many Pd programmers want to improve the core and the GUI but feel that they could not learn C or Tcl. By having a distinct project with a mentor and a stipend, this allows contributors to focus more on the initial challenges. We have found that once people get past the first wall of the learning curve, they are much more likely to stay involved and get more deeply involved. Indeed, Pd has triggered a number of people to switch from Windows to GNU/Linux and start programming in a range of languages.
Additionally, the main developers often get stuck in ruts of thinking about what needs doing and how they should be done. By giving new people the chance to dive in and come up with new features and new solutions to existing problems both users and developers benefit. The old time developers tend to focus on the issues that they directly experience. Since they have already learned their way thru the initial technical details, most of the experienced developers forget about those initial humps and how they might be improved. Bringing in people who have recently experienced this initial experience and teaching them to be Pd developers hhopefully will lead to a lot of those initial barriers to fixed or removed.
What is the main public mailing list for your group?
Where is the main IRC channel for your group?
What criteria do you use to select the members of your group? Please be as specific as possible.
The mentors were chosen because they all have been informal mentors within the Pd (aka Pure Data) community, and have a proven record of success in that regard. We know each other personally. Half of the mentors have been to the Pd Convention, either in Graz, Montreal or both. All have met other mentors at other workshops, conferences, and similar events. Additionally, here are some other criteria for choosing mentors:
active community member for at least 2-3 years
strong knowledge in at least one area of Pd
demonstrated willingness to help others on mailing list, forums, IRC
regularly shares code and creates examples for others to learn from
The administrators, Hans and Georg are both long time active community members, have been to both Pd Conventions, and know many of the developers personally. Following the spirit of the Pd community, we both decided to take on getting this application together since we think it would be a very valuable stimulus for Pd. The application process has already stimulated a lot of discussion, and we have gotten far more project ideas and mentors than we initially expected.
Has your group participated previously? If so, please summarize your involvement and any past successes and failures.
We participated in 2007, but we were listed as the Institute of Electronic Music (IEM). The IEM is a university center that is the major institutional supporter of Pure Data, including hosting the website and mailing lists. While "Pure Data" as a organization was not included in 2007, the IEM was in effect applying as "Pure Data" since all of the IEM GSoC projects were part of Pure Data, and all of the people involved in the IEM GSoC effort last year were Pure Data developers and community members.
We had two sponsored projects in 2007, Porting FTM to Pd and VideoIO Library. The core parts of both were completed successfully, but both ended up being much larger projects that originally intended. This means that not every goal of the projects were meet. With the FTM project, that is now in use. With the VideoIO project, it ended up serving to figure out how the whole video I/O problem should be tackled. With the remaining relevant parts, they have been laid out into chunks which can then be handled by other developers or also future GSoC contributors.
From this experience, we learned that we should accept either compact projects, or for larger projects, they need to be in a form that the work can be completed in steps. If it turns out to be more work than is possible for the summer the contributor can still achieve useful goals. That base can then be built upon by the community. We have carefully rated the projects that we have listed, and also aimed to create a number of simpler, though still useful, projects so that we can bring in people with a broader range of skils.
If your group has not previously participated, have you applied in the past? If so, for what sort of participation?
We applied in 2008 but were not selected.
What license does your organization use?
The current code uses BSD for the core, most of the libraries are GPL with the rest being BSD-like. The preferred licenses are either the GPL or a BSD-like license. In other projects that we contribute to that have been initiated by others, we use the existing license, as long as it is free.
8. URL for your ideas page
9. What is the main development mailing list for your organization?
What is the application template you would like contributors to your organization to use.
What is your plan for dealing with disappearing contributors?
First and foremost, at the beginning, the mentors and the community will discuss directly with the contributors to make clear they are making a real contribution to the community and such contributions by others have allowed them to do what they are doing currently with free software. The mentors will work with the contributors to set regular milestones that make sense for both parties. This gives both contributor and mentor a basis to track the progress of the project. These milestones will also serve as a means to get recognition for the contributors. Positive reinforcement is by far the most effective means of keeping people involved.
At the beginning of the project, we will help the contributors get over any possible shyness about communication and get them in the habit of regular communications. This will also make the community more involved in the progress of the contributor.
If a contributor disappears, they will be fully expected to catch up to those milestones if and when they reappear. If they disappear for good, we will try to communicate with them through the methods at hand. If all else fails, we would be forced to give a negative review and withhold payment.
What is your plan for dealing with disappearing members?
The mentors will also be expected to regularly communicate the progress of the project. Since all of the mentors are longstanding active community members, we know where to find each other in case one is falling behind.
Following the example of the Drupal project, we will assign each project with a second, backup mentor. Then worst comes to worst, we'll have someone in place to take over if a mentor disappears. This backup mentor will keep track of the progress of the project through the regular posts on the mailing lists that we expect contributors to do.
What steps will you take to encourage contributors to interact with your community before, during, and after the program?
The Pd community is known for being quite supportive and it is something we pride ourselves on. Contributors will be encouraged to introduce themselves to the related communities as soon as possible, and explain in their own words what they are working on. The contributors will also be encouraged to provide regular status reports and test releases to engage the community and get feedback.
The next step is integrating the contributors work into the standard channels. For example, as the code becomes usable, we will help the contributor get his code into the main distribution, Pd-extended, so that it will have an automatic wide audience.
There are many meetings all over the world for community members, and the accepted contributors would be encouraged to attend any meeting that is close to where they live. While mailing lists, forums, and IRC are the main means of communication for our project, we believe that face-to-face meetings are very effective, and people are much more likely to feel like they are part of a community if they have met face to face. In fact, the pd-list has served as a source of accomodation for a many a Pder when visiting a foreign city.
Of course there are always trolls, but the trolls are all well known to the mentors, and part of the role of the mentors is to educate the contributors not to worry about the trolls, as they are well known to the community. Additionally, the mentors are expected to defend the contributors in particularly egregious cases of trolling.
What will you do to ensure that your accepted contributors stick with the project after the program concludes?
What is most likely to make a contributor remain an active contributor is the quality of their experience, their interactions with the community, and the level of recognition that they get for their work. There is already an vibrant Pd community that is quick to recognize new contributions, and there is already some excitement in the community about the GSoC projects. This translates into recognition and support for the contributor projects.
Also, there has to be a match between project, mentor, and contributor. A contributor interested in working on a given project needs to demonstrate some level of prior interest and hopefully also some experience in the related fields. A Summer of Code project does not seem like the right place to start as a complete newbie. If the contributor was already interested in the the subject matter beforehand, they are much more likely to remain interested after the summer funding dries up.
We have had 20 developers sign up to be mentors, so we have a good pool to work with so that we can more easily find the best match between contributor, mentor, and project.
Who is the Organization Administrator?
Please select your backup group administrator.
Georg Holzmann grh AA mur.at
2. Who will your mentors be? Please enter their Google Account address separated by commas. If your organization is accepted we will email each mentor to invite them to take part. (optional)
Georg Holzmann grh AA mur.at
IOhannes m zmoelnig umlaeute AA gmail.com
Hans-Christoph Steiner pdgsocmentor AA gmail.com
Martin Peach chakekatzil AA gmail.com
Darsha Hewitt darsha.h AA gmail.com
Bryan Jurish moocow.bovine AA gmail.com
Dan Wilcox danomatika AA gmail.com
Thomas Grill grrrr.org AA gmail.com
Derek Holzer macumbista AA gmail.com
Chris Clepper cgclepper AA gmail.com
Roman Haefeli roman.haefeli AA gmail.com
Alejandra Perez amarianoise AA gmail.com
Chris McCormick mccormix AA gmail.com
Andy Farnell padawan.gsoc2009 AA gmail.com
Jamie Bullock jamie.b.bullock AA googlemail.com
Matt Davey hard.off AA gmail.com
Enrique Erne enrique.erne AA gmail.com
Lluis Gómez i Bigordà lluisbigorda AA gmail.com
Luke Iannini lukexi+gsoc2009 AA gmail.com
Ben Bogart p314159265358978 AA gmail.com
Gunter Geiger guenter.geiger AA gmail.com
- Google Summer of Code Ideas 2009
- Pure PD Filters
- Organisation and Categorisation of Pd-Extended Externals
- Hid for Windows
- Integra modules
- Pd DataViz