GSoC 2015 application: Difference between revisions

From Octave
Jump to navigation Jump to search
(Add categories.)
 
(37 intermediate revisions by 3 users not shown)
Line 5: Line 5:
=== Organization ID ===
=== Organization ID ===


Octave
octave


=== Organization name ===
=== Organization name ===
Line 13: Line 13:
=== Description ===
=== Description ===


GNU Octave (http://www.gnu.org/software/octave/) is a free numerical computing
[http://www.gnu.org/software/octave/ GNU Octave] is a free numerical computing
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).
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 [https://www.coursera.org/course/ml Stanford's machine learning course].


GNU Octave has an extensive core of functions useful for 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, [http://octave.sourceforge.net/ Octave Forge],
(http://octave.sourceforge.net/), helps in speeding up development, increasing user
develops and releases packages with even more specialized functions.
In addition, it helps in speeding up development, increasing user
contributions, and testing 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, both of which started as GSoC projects.
Recent and ongoing improvements include a GUI and just-in-time
compilation capabilities, both of which started as GSoC projects.


=== Tags ===
=== Tags ===


c++, mathematics, math, numerical, matlab, mercurial, scientific, computing
c++, mathematics, math, numerical, matlab, scientific, computing


=== Organization home page url ===
=== Organization home page url ===
Line 33: Line 35:
http://www.octave.org
http://www.octave.org


Logo: http://hg.savannah.gnu.org/hgweb/octave/raw-file/155d8e90ee1f/doc/icons/octave-logo.png
Logo: http://hg.savannah.gnu.org/hgweb/octave/raw-file/155d8e90ee1f/doc/icons/octave-logo.svg (generate 256x256 PNG with Gimp)


Blog: http://planet.octave.org/
Blog: http://planet.octave.org/
Line 51: Line 53:
JordiGH
JordiGH


=== If you chose "veteran" in the dropdown above, please summarize your involvement and the successes and challenges of your participation. Please also list your pass/fail rate for each year. ===
=== If you chose "veteran" in the checkbox, please summarize your involvement in Google Summer of Code and the successes and challenges of your participation. Please also list your pass/fail rate for each year. ===


Our first year in GSoC as an independent organization was 2014. We had 3 participating students, who pursued work in approximate matrix factorization, efficient handling of sparse matrices, and finite element methods for solving partial differential equations. While there were some challenges related to mentor availability in one case, all 3 of the students passed and made contributions which have been incorporated into Octave. We also had one student enrolled under SOCiS who successfully improved Octave's ordinary differential equation solvers.
Our first year in GSoC as an independent organization was 2014 and we had 3 participating students, who pursued work in approximate matrix factorization, efficient handling of sparse matrices, and finite element methods for solving partial differential equations. While there were some challenges related to mentor availability in one case, all 3 of the students passed and made contributions which have been incorporated into Octave. We also had one student enrolled under [http://sophia.estec.esa.int/socis/ ESA Summer of Code in Space (SoCiS)] who successfully improved Octave's ordinary differential equation solvers.


=== If you chose "new" in the dropdown above, have you applied in the past? If so, for what year(s)? ===
In addition, we also mentored GSoC and SoCiS students on the years 2011, 2012, and 2013 under the umbrella of the GNU project. In total, counting both GSoC and SoCiS, we have mentored a total of 16 students. Students working with us have made valuable contributions which are live and in our main source tree. These contributions improving Octave's usability and functionality in many different areas, from low-level instrument control and just-in-time compilation, to new algorithms for processing N dimensional images and least-squares spectral analysis. The Octave GUI started as a GSoC project and its further refinement has been the major feature of the last Octave release. Several of the students continued their involvement with the project and the community, four have become core developers, and two have become mentors for new students.


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.
The challenges include managing very diverse problem domains and finding people who are competent in all of them. We have not had trouble keeping students interested, although we have seen lulls in their productive output at times, which were always thankfully remedied with a little prodding.


=== Why is your organization applying to participate in Google Summer of Code? What do you hope to gain by participating? ===
Summarizing, we have previously mentored a total of 16 summer students, all of them having educational experiences which created useful code for the project and community. Because of this, we believe that Octave is a suitable organization for GSoC with the capability to mentor students and benefit from their contribution.


Octave has participated during the last three years as part of the GNU project. Due to the success of those experiences, where many
=== If you chose "new" in the dropdown above, have you applied in the past? If so, for what year(s)? ===
members of the Octave community helped mentor the students, we are trying again to enter GSoC as a participating organization.


We hope to establish collaborations with talented new contributors.  We also want to raise awareness of
N/A
Octave in the free software community.


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.
=== Why is your organization applying to participate in Google Summer of Code? What do you hope to gain by participating? ===
 
=== 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 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
We hope to establish collaborations with talented new contributors.  We also want to raise awareness of Octave in the free software community.
people who are competent in all of them.  We have not had trouble keeping
students interested, although we have seen lulls in their productive output a few
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.
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.  We have been able to retain several GSoC participants as contributors to the Octave project and 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.


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


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


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


irc://irc.freenode.net/octave
irc://irc.freenode.net/octave [url: https://webchat.freenode.net/?channels=#octave ]


=== How many potential mentors do you have for this year's program? What criteria did you use to select them? ===
=== How many potential mentors do you have for this year's program? What criteria did you use to select them? ===


We have about 10 contributors have mentored previous summer projects and continue to be active participants in the Octave community
We have about 10 contributors who are potential mentors. They have participated in previous
SoC projects, either as students or mentors, and are all active participants in the Octave community. All
have previously contributed code, have commit access to either the Octave or
Octave Forge source tree, and are active in the mailing lists. Many also keep a
constant presence in the IRC channel.


Each project will include at least one core Octave developer as mentor. These
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. Also, GNU Octave is a project with applications in very diverse domains so each
 
project should include mentors with expertise in the relevant field.
GNU Octave is a project with applications in very diverse domains so each
project also includes mentors with expertise in the related field. All of these
have previously contributed with code, have commit access to either Octave or
Octave Forge source tree, and are active in the mailing lists. Most also keep a
constant presence in the IRC channel.


=== What is your plan for dealing with disappearing students? ===
=== What is your plan for dealing with disappearing students? ===


First, make all reasonable efforts to accommodate the student and make them feel
Disappearing students haven't been a problem for us in previous years. To prevent disappearances, we aim to make all reasonable efforts to accommodate students and make them feel
welcome. We will engage the students frequently by email and IRC, provide prompt response to student queries,
welcome. We will engage 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 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 students to participate on 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 side branch. All of these have shown to be effective
with students in previous years.
with students.


Should this fail and the student disappears for unforeseen reasons (which we
Should this fail and a student disappears (which we
hope will be very unlikely, since it has never happened before and nobody
hope will be very unlikely, since it has never happened before and nobody
vanishes without good reason), make
vanishes without good reason), make
reasonable attempts to contact them via alternative channels up to a private
reasonable attempts to contact them via alternative channels up to a private
phone number. If more than 2 weeks have passed without a response, we will
phone number. If more than 2 weeks have passed without a response, we will consider the student as having dropped out and
analyse the code submitted thus far, and prepare it for integration into our
analyse the code submitted thus far for integration into our
source tree.
source tree.


=== What is your plan for dealing with disappearing mentors? ===
=== What is your plan for dealing with disappearing mentors? ===


Distribute the workload among the remaining mentors. The mailing list is
Distribute the workload among the remaining mentors. The mailing list is active enough and questions almost never go unanswered. Reassign the student to a backup mentor. In the worst case, the project admin can become a mentor for the student until another mentor is found.
active enough and questions almost never go unanswered. Reassign the student to
a backup mentor. In the worst case, the project admin can become a mentor for
the student until another backup mentor is found.


This situation should be infrequent and we hope to prevent it by selecting
This situation has been infrequent, and we hope to make it even less likely by selecting mentors with proven involvement in Octave and free software and by aligning project topics with the priorities of the core developer team. The vast majority of our mentors have been involved in Octave development for several years, and new mentors will be paired with more experienced ones.
mentors with proven involvement in Octave or other free software projects. The vast
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? ===


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. Students also set up a blog for longer updates which is aggregated at http://planet.octave.org
progress updates of every two to three days. Longer updates should be done on a
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 channel or copy the maintainers mailing list.
be public, e.g. contacting the mentor should happen in the public IRC
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.
Our annual conference, OctConf, is held in the summer. Students will be invited to attend and present on their work. Previous OctConfs had several such student presenters.


For some projects, there may be way to bridge them directly into industry
For some projects, there may be a way to bridge directly with industry interests. We hope that we can increase student 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? ===


We will constantly merge their code into our codebase, and GNU Octave is a
We will constantly merge their code into our codebase. GNU Octave is a
project with many test users that give constant feedback on new features and bug
project with many tester-users who give constant feedback on new features and report bugs. As participants in the mailing lists and bug tracker, students 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, many GSoC students will likely use Octave during their academic
In addition, many GSoC students will likely use Octave during their academic
year and in during their professional careers. As such, they are prone to
year and in 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 level than during the
summer.
summer.


Finally, we organize a developers' summit during the summer and have in previous
Finally, we organize a developers' summit during the summer and have in previous
years provided help for GSoC students to attend. This strengthens the
years provided support for GSoC students to attend. This strengthens
relationships between community members and the new students. While only one of
relationships between community members and the new students. In fact, several previous SoC students have continued with
the previous GSoC students is currently a core developer, several continued with
regular contributions to GNU Octave, and most remain available to help us with any problems related to the code they wrote for the project.
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 177: Line 156:


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

Latest revision as of 06:40, 21 January 2021


Octave's application for GSoC 2015.

Organization ID[edit]

octave

Organization name[edit]

GNU Octave

Description[edit]

GNU Octave is a free numerical computing environment largely compatible with Matlab. 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.

GNU Octave has an extensive core of functions useful for computations in several fields, such as numerical analysis, optimisation, signal and image processing, and control theory. Its sister project, Octave Forge, develops and releases packages with even more specialized functions. In addition, it helps in speeding up development, increasing user contributions, and testing code before it is included in GNU Octave's core set of functions.

Recent and ongoing improvements include a GUI and just-in-time compilation capabilities, both of which started as GSoC projects.

Tags[edit]

c++, mathematics, math, numerical, matlab, scientific, computing

Organization home page url[edit]

http://www.octave.org

Logo: http://hg.savannah.gnu.org/hgweb/octave/raw-file/155d8e90ee1f/doc/icons/octave-logo.svg (generate 256x256 PNG with Gimp)

Blog: http://planet.octave.org/

Feed: http://planet.octave.org/atom.xml

Main organization license[edit]

GPLv3

Veteran/new[edit]

Veteran

Backup admin[edit]

JordiGH

If you chose "veteran" in the checkbox, please summarize your involvement in Google Summer of Code and the successes and challenges of your participation. Please also list your pass/fail rate for each year.[edit]

Our first year in GSoC as an independent organization was 2014 and we had 3 participating students, who pursued work in approximate matrix factorization, efficient handling of sparse matrices, and finite element methods for solving partial differential equations. While there were some challenges related to mentor availability in one case, all 3 of the students passed and made contributions which have been incorporated into Octave. We also had one student enrolled under ESA Summer of Code in Space (SoCiS) who successfully improved Octave's ordinary differential equation solvers.

In addition, we also mentored GSoC and SoCiS students on the years 2011, 2012, and 2013 under the umbrella of the GNU project. In total, counting both GSoC and SoCiS, we have mentored a total of 16 students. Students working with us have made valuable contributions which are live and in our main source tree. These contributions improving Octave's usability and functionality in many different areas, from low-level instrument control and just-in-time compilation, to new algorithms for processing N dimensional images and least-squares spectral analysis. The Octave GUI started as a GSoC project and its further refinement has been the major feature of the last Octave release. Several of the students continued their involvement with the project and the community, four have become core developers, and two have become mentors for new students.

The challenges include managing very diverse problem domains and finding people who are competent in all of them. We have not had trouble keeping students interested, although we have seen lulls in their productive output at times, which were always thankfully remedied with a little prodding.

Summarizing, we have previously mentored a total of 16 summer students, all of them having educational experiences which created useful code for the project and community. Because of this, we believe that Octave is a suitable organization for GSoC with the capability to mentor students and benefit from their contribution.

If you chose "new" in the dropdown above, have you applied in the past? If so, for what year(s)?[edit]

N/A

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

We hope to establish collaborations with talented new contributors. We also want to raise awareness of Octave in the free software community.

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. We have been able to retain several GSoC participants as contributors to the Octave project and 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.

What is the URL for your Ideas page?[edit]

http://wiki.octave.org/Summer_of_Code_Project_Ideas

What is the main development mailing list for your organization?[edit]

octave-maintainers@gnu.org (https://lists.gnu.org/mailman/listinfo/octave-maintainers)

What is the main IRC channel for your organization?[edit]

irc://irc.freenode.net/octave [url: https://webchat.freenode.net/?channels=#octave ]

How many potential mentors do you have for this year's program? What criteria did you use to select them?[edit]

We have about 10 contributors who are potential mentors. They have participated in previous SoC projects, either as students or mentors, and are all active participants in the Octave community. All have previously contributed code, have commit access to either the Octave or Octave Forge source tree, and are active in the mailing lists. Many also keep a constant presence in the IRC channel.

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 with the code base. Also, GNU Octave is a project with applications in very diverse domains so each project should include mentors with expertise in the relevant field.

What is your plan for dealing with disappearing students?[edit]

Disappearing students haven't been a problem for us in previous years. To prevent disappearances, we aim to make all reasonable efforts to accommodate students and make them feel welcome. We will engage students frequently by email and IRC, provide prompt response to student queries, and expect periodic reports from mentors about the project status. We will also encourage the students to participate on the public mailing list and IRC channel, with or without the mentor. Their progress should be regularly applied to our source tree, if necessary in a side branch. All of these have shown to be effective with students.

Should this fail and a student disappears (which we hope will be very unlikely, since it has never happened before and nobody vanishes without good reason), make reasonable attempts to contact them via alternative channels up to a private phone number. If more than 2 weeks have passed without a response, we will consider the student as having dropped out and analyse the code submitted thus far for integration into our source tree.

What is your plan for dealing with disappearing mentors?[edit]

Distribute the workload among the remaining mentors. The mailing list is active enough and questions almost never go unanswered. Reassign the student to a backup mentor. In the worst case, the project admin can become a mentor for the student until another mentor is found.

This situation has been infrequent, and we hope to make it even less likely by selecting mentors with proven involvement in Octave and free software and by aligning project topics with the priorities of the core developer team. The vast majority of our mentors have been involved in Octave development for several years, and new mentors will 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?[edit]

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. Students also set up a blog for longer updates which is aggregated at http://planet.octave.org

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 channel or copy the maintainers mailing list.

Our annual conference, OctConf, is held in the summer. Students will be invited to attend and present on their work. Previous OctConfs had several such student presenters.

For some projects, there may be a way to bridge directly with industry interests. 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?[edit]

We will constantly merge their code into our codebase. GNU Octave is a project with many tester-users who give constant feedback on new features and report bugs. 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 the very start.

In addition, many GSoC students will likely use Octave during their academic year and in their professional careers. As such, they are prone to stay involved with its development, even if at a lower level than during the summer.

Finally, we organize a developers' summit during the summer and have in previous years provided support for GSoC students to attend. This strengthens relationships between community members and the new students. In fact, several previous SoC students have continued with regular contributions to GNU Octave, 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.[edit]

Yes, GNU can vouch for us.

Are you an established or larger organization who would like to vouch for a new organization applying this year? If so, please list their name(s) here.[edit]

No.