Skip to content

Google Summer of Code 2021 Application

Pjotr Prins edited this page Feb 20, 2021 · 8 revisions

Organization Application

Org Name

Ruby Science Foundation

Website URL

http://sciruby.com/

Tagline

Tools for Scientific Computing in Ruby

Logo

Primary Open Source License

BSD-3

Org Category

Scientific Computing

Technology Tags

Ruby, C, C++, cuda, JAVA

Topic Tags

Visualization, Artificial intelligence, Parallel algorithms, Data science, GPU computing, Linear algebra, Numerical computing.

Ideas List

https://github.com/SciRuby/sciruby/wiki/Google-Summer-of-Code-2021-Ideas

Short Description (180 char)

SciRuby's purpose is providing science, numerical, machine learning, and visualization infrastructure for the Ruby Programming Language.

Long Description (2000 char)

The SciRuby project is oriented towards providing computational research infrastructure for the exciting Ruby Programming Language. SciRuby consists of a fairly large number of gems, including statsample, statsample-glm, statsample-timeseries, distribution, minimization, integration, rubyvis, plotrb, Nyaplot, MDArray, Publisci, Ruby-Band, daru, rubex, arrayfire-rb, rbcuda, and NMatrix.

NMatrix has been awarded grants by the Ruby Association in 2012 and 2015, and has a goal of supplying Ruby with a robust, versatile linear algebra library with support for both dense and sparse matrices. Statsample and its related packages aim to provide Ruby with statistical analysis packages, while daru, nyaplot and gnuplotrb take care of data analysis and visualization. Nyaplot was awarded the Ruby Association Grant in 2014, Rubex and tensorflow.rb received it in 2016 and RbCUDA in 2017.

NMatrix has been recently reimplemented with backend purely in C with the aim to have efficient and more readable and maintainable code. Ruby-Sparse and RubyPlot are projects with good community support and high utility for scientific community.

Working on SciRuby is a chance to get involved at the ground floor on a project which is viewed as critical by many Rubyists, including Ruby's creator, Matz. In fact, all the grants issued by the Ruby Association (which is headed by Matz) in 2016 (and most in 2017) have gone to scientific projects.

SciRuby is a growth organization. SciRuby students become mentors and SciRuby mentors become org-admins. Students might get to see their code go into orbit and the code might get used to save lives in biomedical research.

Application Instructions

https://github.com/SciRuby/sciruby/wiki/Google-Summer-of-Code-2021-Student-Application

Proposal Tags

Contact Methods

Chat:

Mailing List: https://groups.google.com/g/sciruby-dev

General Email:

Links

Twitter: https://twitter.com/sciruby

Blog: http://sciruby.com/blog/

Organization Application

Why does your org want to participate in Google Summer of Code?

Our organization consists mostly of working scientists and engineers, who — as with nearly anyone who contributes to open source software — are often more focused on their own research projects' short-term needs than on contributing to scientific computing infrastructure. Scientists tend to write one-off code for their research — code which will never, or can never, be used for any other project. SciRuby's existence facilitates contributions to the common infrastructure by those who have the interest; as with any community, it creates opportunities for collaborations.

Google Summer of Code acts as a catalyst for both student and non-student contributors. By seeking out "sometimes" contributors and convincing them to commit to mentoring, we transform our sometimes contributors into regular contributors. Most mentors and students stick around between summers. Interestingly, many of our potential mentors this year, including the GSOC admin, have been students with SciRuby previously.

What would your org consider to be a successful summer?

Our aim is to have students from diverse backgrounds, be it computer science, biology, researchers. We expect students to take interest in scientific computing and to share their approaches to projects ideas. We expect them to share their recent learnings with the community, especially with fellow students. By the end of summer, we expect them to have confidence in their work and possibly to take initiative to stay involved in the community and help guide upcoming students.

How many potential mentors have agreed to mentor this year?

6-8

How will you keep mentors engaged with their students?

Our plan has always been to ensure that we have more than one mentor lined up for each project. We expect our mentors to provide a minimum level of investment — such as providing a write-up for an idea that individual can mentor on our ideas page — and those who do not provide that investment are not assigned as primary mentors for students (they may participate in backup mentoring roles). We would rather accept fewer students than assign students to absentee mentors, and we have given some slots away every year we participated. So far, this strategy has proved successful, and we have never lost a primary mentor.

Historically, our mentors in any given year have either mentored with us in prior years, or have been deeply involved with the projects that they will now be mentoring — a trend that continues in 2018. This year, at least three of our mentors are previous GSOC students who have now chosen to mentor and enhance the projects they had started previously.

How will you help your students stay on schedule to complete their projects?

Incomplete projects have only once been a problem for us. We have had some cases where there was friction between students and mentors, and have worked successfully to resolve them. In general, we've found that rather than having a short checklist where every item must be met, it is beneficial to expect students to meet most of a slightly longer checklist (coding is a must). Students may thus work independently and don't feel over-managed.

Another problem is with students who incorrectly say they don't have other commitments during GSoC. Instead of general queries about other commitments, we pose specific questions about summer classes, vacations or internships. Asking these questions avoids difficult situations and ensures a level field. More importantly, it keeps us from having to make tough decisions about failing students who may have mistaken the rules due to language barriers; it's fairer to simply not accept a student than to fail one once accepted.

How will you get your students involved in your community during GSoC?

Google Group and IRC participation and blogging are mandatory for students and mentors. We require that all students submit pull requests (including code, documentation is a bonus), and find that this mandate ensures applicants are fully engaged. We provide many simple issues (https://goo.gl/PkI5eZ) in our trackers, which students may use as starting points. Greater consideration is given to students who participate consistently for months over those who show up closer to the application period, but our primary goal is to gauge whether students can sit and crank out code. Regular blogging is also required.

We encourage Google Group discussions rather than private emails. The goal is to eliminate appearances of favoritism and allow students to collaborate on proposals. Accepted students have often gotten some great ideas from discussions with other applicants (https://goo.gl/CTpKRP, https://goo.gl/7CJPZv). Those unwilling to collaborate are generally seen as unfit for our community.

How will you keep students involved with your community after GSoC?

Clearly, one of the hardest parts of running a volunteer-based project is ensuring continued participation. It is particularly difficult — psychologically speaking — to enable students to find intrinsic motivations to participate once they have been provided with an extrinsic motivation (money).

As such, we never treat money as the carrot, nor the withholding of money as the stick; the reward is the experience. If students enjoy their time with us, they are likely to come back in the future and contribute — or participate in other projects. Our community has greatly expanded since GSOC 2016 and we now have the Ruby Association and various private companies providing funding and mentorship for SciRuby projects.

Proof of our student retention methods paying off can be seen in the fact that many of our current mentors, including the org admin, are past students. These results show that SciRuby is able to use GSoC as an effective catalyst for transforming students into full participants.

Has your org been accepted as a mentor org in Google Summer of Code before?

Yes. Years participated: 2013, 2014, 2015, 2016, 2017, 2018, 2019.

What year was your project started?

2012

Where does your source code live?

https://github.com/SciRuby

For each year your organization has participated, provide the counts of successful and total students.

  • 2013: (5/5) Monica Dragan (with PhyloSoC), Alberto Arrigoni, Ankur Goel, Will Strinz, Wan Zuhao
  • 2014: (4/4) Nishida Naoki, Rajat Kapoor, Magdalen Berns, Lahiru Lasundun
  • 2015: (5/5) Alexej Gossman, Will Levine, Ivan Evgrafov, Abinash Meher, Sameer Deshmukh
  • 2016: (4/4) Prasun Anand, Gaurav Tamba, Lokesh Sharma, Rajith Vidanaarachchi
  • 2017: (3/3) Prasun Anand, Atithya Kumar, Shekhar Prasad Rajak
  • 2018: (4/5) Arafat Khan, Prakriti Gupta, Pranav Garg, Nilay Pochhi
  • 2019: (2/2) Alish Dipani, Udit Gulati

Is your organization part of any government?

No

Anything else we should know (optional)? (500 chars)

We support diversity. We filter applicants by asking a specific "bonus" question (http://bit.ly/3clDVc4). If applicants make a joke, we use it as an opportunity for dialogue. Students who might create a hostile environment for others are rejected. We have a code of conduct similar to software carpentry.

We believe our low failure rate derives from our application and mentoring systems. With only one exception (involving extenuating circumstances), every student has achieved their major goals.

Clone this wiki locally