Skip to content

Instantly share code, notes, and snippets.

@v0dro
Last active February 26, 2019 07:50
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save v0dro/eeb6889cc4ae641211229941d5ad6fbd to your computer and use it in GitHub Desktop.
Save v0dro/eeb6889cc4ae641211229941d5ad6fbd to your computer and use it in GitHub Desktop.
SciRuby GSOC 2018 guidelines

GSOC guidelines 2018

Dear students,

It's a pleasure to have you onboard this year's Google Summer of Code. The Ruby Science Foundation has been participating successfully in GSOC for the past 5 years with fantastic results. Many of our most popular libraries have been possible as a result of the hard work put in by GSOC students like you. The results are there for all to see. Our role in the Ruby community as a place for people interested in scientific Ruby to discuss and enhance their work has only grown over the past few years. Many of our previous students have gone to achieve significant milestones in academia and industry.

As students, you have the responsibility of executing your projects successfully and keeping all the deadlines. In this gist, I will elaborate on some important details that you must be aware of if you wish to extract the full benefit out of this GSOC. Google Summer of Code is not some coding event meant to pay you for working on open source software. It is a means to an end for achieving something much higher than what you think is currently within your reach. If you do this right, you will experience by the end of the GSOC period a much broadened sense of probem solving and better direction in your career as engineers. Past experience with students has proved this over and over again.

Please read through this document carefully and make sure you follow it throughout the summer.

Reach out to your mentor

The first thing to do, at this point of time, is to reach out to your mentor and work with them to setup any prerequisites that you will need for making your coding period as smooth as possible. Be sure to ask them about any nitty gritties about your project and clear any differences of expectation.

Non-negotiable GSOC guidelines

This is important. GSoC soon starts, and here we set a few ground rules for the SciRuby organisation, so we can be very clear about what GSoC/SciRuby is about.

First of all, we do fail students. GSoC has three milestones where the organisation can pass or fail a student. If you don't perform we fail you and you won't get your money. Simple. Of course, we don't want to fail a student, but we have done it before. We expect you to be intrinsically motivated, and if you are there won't be a problem.

You are the one responsible for your own progress. The mentor is there to help, but he is not the one to drive you. In fact, you should drive your mentor. If he/she is not responding within a day, please contact one of us. Your mentor reports to the SciRuby organisation and if there are problems, we'll find someone else!

This is important: you are in the driving seat.

Even if a mentor does not respond, you are expected to continue your work. If your mentor is absent or if there's any problems with him, please send us admins an e-mail and we'll sort it out.

You are also expected by Google to put in 40 hours a week. That is a lot! If you are a genius you may get away with less, but truth is that most of us need that time to make sufficient progress :).

We expect you to put in the full time for work and commit your work every day to github. Note that we are experienced programmers ourselves. We don't get fooled easily. There are no exceptions. If you fail to code, make clear what is happening to your mentor, and the mentor will have to explain to us. Unexpected problems occur all the time; being able to solve them is part of a programmer's job, but be open about it, don't hide it to yourself.

Write to your mentor(s) every day, preferably CCing sciruby-dev. Generating e-mail is good -- everyone benefits! You are expected to blog about progress every week. We will organise meetings between all mentors and students, where we will discuss your project. We will also ask you to review a piece of someone else's code.

The organisation tracks all commits, shared e-mails and blogs. All of this matters.

Not wanting to sound negative: the more you put into GSoC, the more rewarding it will be. We know from experience that you will come out a better programmer. And mentors also learn from you. It is a two-way thing!

Blogging requirements

We expect you to blog about your work every week. We expect a mandatory blog post to the from every student, every week. The weekly blog can be a short description of your project progress so far and some decisions that you had to make regarding the project during that week.

You can post these to your own blogs and post their links on the mailing list. However, before each evaluation period we will need a longer, more detailed blog post from your side that will talk about your work until that point of time in a single post. This post should be posted to the SciRuby blog (you can post on your own if you want to). It should talk about the work you've done so far from a user perspective and also some interesting design decisions that you had to take during the implementation.

SciRuby blog setup

The sciruby blog is an octopress blog hosted at https://github.com/SciRuby/sciruby.com . Here's instructions on how to setup the blog. Its pretty simple once you get used to it:

  1. Run git clone https://github.com/SciRuby/sciruby.com.git.
  2. cd into the sciruby.com directory.
  3. Run bundle install.
  4. CHANGE TO THE source BRANCH (IMPORTANT).

The octopress framework basically allows you to write blogs in markdown and then converts them to HTML for publishing. Its a very simple and programmer-friendly way of writing blog posts. In order to write your first your blog post, do the following:

  1. cd into the directory you've cloned the blog.
  2. Change to source branch (in case its not default).
  3. Run rake new_post["post-name-inside-this-string"].

This will create a .md file in the source/_posts directory. You should edit this file with whatever content you want in your blog post. Once its done, commit your changes to the source branch with an appropriate message and send a pull request to the source branch of the upstream github repo. If we suggest some changes, please make those and recommit your changes.

You should only concern yourself with the source branch in this repo. SciRuby admins will take of publishing your work to the blog and generating HTML from markdown.

You can copy these blog posts to your own blogs if you want.

Community bonding period blogging requirement

During the community bonding period, each student is expected to write one blog post about their project and the expected outcomes.

This will help you in setting up octopress before the coding period, give you familiarity with blogging (if you don't have it already) and help introduce your work to the wider community in a short span of time.

Please send this post through before 30th April 2018.

Discussions about your project

This year, we have setup a Discourse forum here: https://discourse.ruby-data.org/

This forum is competely open to GSOC students and is the recommened method of collaboration for discussions that concern long term planning for your project. Posting to discourse is mandatory for the matplotlib project students (Pranav and Arafat) since they will be working closely together and this is a sane way to monitor communications and provide proper advice.

Unless it is something personal, you should CC the SciRuby mailing list in all communications regarding your project. This will help the admins keep a track of your project and help you out in case you get stuck without much intervention on your part.

Register on discourse ASAP and get familiar with the interface.

Email etiquette

You should not send HTML mail to the mailing list or to your mentors. This is a FOSS community. The mentors use thunderbird/emacs for mail clients and its very annoying when a mail with a ton of HTML suddently shows up in the inbox. Please start using an email client that provides the option for sending non-HTML mail.

SMS language is strongly discouraged. Keep it professional.

Resolving disputes and personal concerns

If you have a dispute about something with your mentor, you can reach out to the admins (Pjotr, John or Sameer) and we will make sure that your dispute is resolved as soon as possible. If you have any personal concerns that you are not comfortable with sharing publicly or with your mentor you can always tell us about it. All communication of such a nature will be kept confidential.

@athityakumar
Copy link

athityakumar commented Apr 25, 2018

Suggestion: Let's have a dedicated thread for each student where they can post their updates every 2-3 days? That definitely helped me with staying on track and preparing in advance for the "tough tasks".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment