GSoC 2014 application: Difference between revisions

Add categories.
(Add categories.)
 
(20 intermediate revisions by 3 users not shown)
Line 3: Line 3:
Octave's application for GSoC 2014.
Octave's application for GSoC 2014.


=== Organization description ===
=== Organization ID ===
 
Octave
 
=== Organization name ===
 
GNU Octave
 
=== Description ===


GNU Octave (http://www.gnu.org/software/octave/) is a free numerical computing
GNU Octave (http://www.gnu.org/software/octave/) is a free numerical computing
environment largely compatible with Matlab. It was started in
environment largely compatible with Matlab. [[User:jwe|John W. Eaton]] began the project in 1992 and remains the primary maintainer.  Development is quite active with more than 20 volunteers currently involved.  Octave is also widely used in teaching, industry, and research.  It has gained attention as the recommended tool for a number of distributed online courses such as Stanford's machine learning course (https://www.coursera.org/course/ml).
1992 by [[John W. Eaton]] and is used by hundreds of thousands of people worldwide
as a free alternative to Matlab.


GNU Octave has an extensive core of functions useful for numerical computations
GNU Octave has an extensive core of functions useful for computations
in several fields, such as numerical analysis, optimisation, signal and image
in several fields, such as numerical analysis, optimisation, signal and image
processing, and control theory. Its sister project, Octave Forge
processing, and control theory. Its sister project, Octave Forge
(http://octave.sourceforge.net/), helps in speeding up development, increase user
(http://octave.sourceforge.net/), helps in speeding up development, increasing user
contributions and test code before it is included in GNU Octave's core set of
contributions, and testing code before it is included in GNU Octave's core set of
functions.
functions.


Recent and ongoing improvements include a GUI and just-in-time compilation capabilities.
Recent and ongoing improvements include a GUI and just-in-time compilation capabilities, both of which started as GSoC projects.
 
=== Tags ===
 
c++, mathematics, math, numerical, matlab, mercurial, scientific, computing


=== Organization home page url ===
=== Organization home page url ===


http://www.octave.org
http://www.octave.org
Logo: http://hg.savannah.gnu.org/hgweb/octave/raw-file/155d8e90ee1f/doc/icons/octave-logo.png
Blog: http://planet.octave.org/
Feed: http://planet.octave.org/atom.xml


=== Main organization license ===
=== Main organization license ===
Line 41: Line 57:
=== If you chose "new" in the dropdown above, have you applied in the past? If so, for what year(s)? ===
=== If you chose "new" in the dropdown above, have you applied in the past? If so, for what year(s)? ===


Yes (2012 and 2013).
Yes (2011-2013). In those 3 years, we were told that rather than a separate project, we would instead be accepted under the umbrella of the GNU project and in the post-session, advised to still apply for independent organization in upcoming years.


=== Why is your organization applying to participate in Google Summer of Code 2013? What do you hope to gain by participating? ===
=== Why is your organization applying to participate in Google Summer of Code? What do you hope to gain by participating? ===


Octave has participated during the last two years with four students under the
Octave has participated during the last three years as part of the GNU project. Due to the success of those experiences, where many
auspices of the GNU project. Due to the success of those experiences, where many
members of the Octave community helped mentor the students, we are trying again to enter GSoC as a participating organization.
members of the Octave community helped mentor the students, we are trying again.


We hope to get good code from interested students and ideally establish a line
We hope to establish collaborations with talented new contributors. We also want to raise awareness of
of collaboration with them for the future. We also want to raise awareness of
Octave in the free software community.
Octave in the free software community.


Google Summer of Code represents a unique opportunity to improve both core Octave and domain-specific functionality. We believe the interaction with fresh minds will bring not only new code to Octave but also will augment the developers group.
Google Summer of Code represents a unique opportunity to bring new perspectives to the Octave community.  As a somewhat older project, we benefit from having new and younger contributors among our developers. Our past record of retaining GSoC participants as contributors to the Octave project is mixed but we hope to improve in the future by engaging more effectively with students during both the application and mentoring processes, setting clear standards for what is required for acceptance, and maintaining those standards throughout the project.


=== Did your organization participate in past Google Summer of Codes? If so, please summarize your involvement and the successes and challenges of your participation. ===
=== Did your organization participate in past Google Summer of Codes? If so, please summarize your involvement and the successes and challenges of your participation. ===


Yes, we participated in GSoC each year since 2011 under GNU. Additionally, we have been a mentoring organization for the European Space Agency (ESA) Summer of Code in Space (http://sophia.estec.esa.int/socis2013/).
Yes, we participated in GSoC each year since 2011 under GNU and in these last 3 years, 9 students have contributed to the Octave project through GSoC. Additionally, we have been a mentoring organization for the European Space Agency (ESA) Summer of Code in Space (http://sophia.estec.esa.int/socis2013/) through which we had 3 more other students. Students working with us have made valuable contributions all of which is live and in our main source tree. These contributions covered many different areas, improving Octave's usability in functionality, undertaking such tasks as adding just-in-time compilation support, geometric integration algorithms, and finite element modeling capabilities.


The challenges are managing very diverse problem domains and finding
The challenges are managing very diverse problem domains and finding
Line 63: Line 77:
students interested, although we have seen lulls in their productive output a few
students interested, although we have seen lulls in their productive output a few
times, which were always thankfully remedied with a little prodding.
times, which were always thankfully remedied with a little prodding.
Summarizing, we have previously mentored a total number of 12 students through different programs, all of them a successful experience which created useful code for the project and community. Because of this, we believe that Octave is a suitable project, capable to mentor students.


=== What is the URL for your Ideas page? ===
=== What is the URL for your Ideas page? ===
Line 70: Line 86:
=== What is the main development mailing list for your organization? ===
=== What is the main development mailing list for your organization? ===


maintainers@octave.org
maintainers@octave.org (https://mailman.cae.wisc.edu/listinfo/octave-maintainers)


=== What is the main IRC channel for your organization? ===
=== What is the main IRC channel for your organization? ===


<tt>#octave</tt> in Freenode
irc://irc.freenode.net/octave


=== What criteria did you use to select your mentors for this year's program? Please be as specific as possible. ===
=== How many potential mentors do you have for this year's program? What criteria did you use to select them? ===


Each project includes at least one core Octave developer as mentor. These
We have about 10 contributors have mentored previous summer projects and continue to be active participants in the Octave community
 
Each project will include at least one core Octave developer as mentor. These
are proven, veteran members of the project, active in its development, and familiar
are proven, veteran members of the project, active in its development, and familiar
with the code base.
with the code base.
Line 91: Line 109:


First, make all reasonable efforts to accommodate the student and make them feel
First, make all reasonable efforts to accommodate the student and make them feel
welcome. We will engage the students frequenty by email and IRC, provide prompt response to student queries,
welcome. We will engage the students frequently by email and IRC, provide prompt response to student queries,
and expect periodic status reports from mentors about the project status. We will also
and expect periodic status reports from mentors about the project status. We will also
encourage the student to participate in the public mailing list and IRC channel,
encourage the student to participate in the public mailing list and IRC channel,
with or without the mentor. Their progress should be regularly applied to our source
with or without the mentor. Their progress should be regularly applied to our source
tree, if necessary, in a feature branch. All of these have shown to be effective
tree, if necessary in a feature branch. All of these have shown to be effective
with all students in previous years.
with students in previous years.


Should this fail and the student disappears for unforeseen reasons (which we
Should this fail and the student disappears for unforeseen reasons (which we
Line 114: Line 132:


This situation should be infrequent and we hope to prevent it by selecting
This situation should be infrequent and we hope to prevent it by selecting
mentors with proven involvement in Octave or other free software projects. We are also
mentors with proven involvement in Octave or other free software projects. The vast
pairing new mentors with more experienced ones.
majority of our mentors have been involved in Octave development
for several years, and new mentors with be paired with more experienced ones.


=== What steps will you take to encourage students to interact with your project's community before and during the program? ===
=== What steps will you take to encourage students to interact with your project's community before and during the program? ===
Line 121: Line 140:
We will encourage them to join us on our IRC channel and mailing list.  We will set clear expectations on the minimum frequency of email
We will encourage them to join us on our IRC channel and mailing list.  We will set clear expectations on the minimum frequency of email
progress updates of every two to three days. Longer updates should be done on a
progress updates of every two to three days. Longer updates should be done on a
blog and aggregated at http://planet.octave.org.
blog and aggregated at http://planet.octave.org


Everything should be completely open. Almost all interactions with the student should
Everything should be completely open. Almost all interactions with the student should
be public, e.g. contacting the mentor should happen in the public IRC
be public, e.g. contacting the mentor should happen in the public IRC
channel or CC the maintainers mailing list.
channel or CC the maintainers mailing list.
Our annual conference, OctConf, will be held in the summer. Students will be invited to attend and present on their work. Last year's OctConf had several such student presenters.


For some projects, there may be way to bridge them directly into industry
For some projects, there may be way to bridge them directly into industry
projects. We hope that we can increase the student's participation this way.
projects. We hope that we can increase student participation this way.


=== What will you do to encourage that your accepted students stick with the project after Google Summer of Code concludes? ===
=== What will you do to encourage that your accepted students stick with the project after Google Summer of Code concludes? ===
Line 134: Line 155:
We will constantly merge their code into our codebase, and GNU Octave is a
We will constantly merge their code into our codebase, and GNU Octave is a
project with many test users that give constant feedback on new features and bug
project with many test users that give constant feedback on new features and bug
reports. We will forward these to the students so they get the feeling of doing
reports. As participants in the mailing lists and bug tracker, students get the feeling of doing
something that is being used by others, and that is useful to the community from
something that is being used by others, and that is useful to the community from
the very start.
the very start.


In addition, students are likely required to use Octave during their academic
In addition, many GSoC students will likely use Octave during their academic
year and even during their professional careers. As such, they are prone to
year and in during their professional careers. As such, they are prone to
stay involved with its development, even if at a lower lever than during the
stay involved with its development, even if at a lower lever than during the
summer.
summer.
Finally, we organize a developers' summit during the summer and have in previous
years provided help for GSoC students to attend. This strengthens the
relationships between community members and the new students. While only one of
the previous GSoC students is currently a core developer, several continued with
occasional contributions and most remain available to help us with any problems related to the code they wrote for the project.


=== Are you a new organization who has a Googler or other organization to vouch for you? If so, please list their name(s) here. ===
=== Are you a new organization who has a Googler or other organization to vouch for you? If so, please list their name(s) here. ===
Line 150: Line 177:


No.
No.
[[Category:Summer of Code]]
[[Category:2014]]