Google Summer Of Code

Hello everyone. Firstly, let me quickly introduce myself. My name is Shourya Singh Gupta and last year I did my GSoC with digiKam on this project. In this blog I will be giving some tips to get selected for GSoC. This will be helpful to those guys who are going to try to participate in GSoC this year and in the upcoming years.

If you are reading this blog, then probably you are already aware of what GSoC is. But if not, I will give a very short info about what GSoC is. The Google Summer of Code is an annual program in which Google awards stipends (of US$5,500, as of 2014) to all students who successfully complete a requested free and open source software coding project during the summer. The program invites students who meet their eligibility criteria to post applications that detail the software-coding project they wish to perform. These applications are then evaluated by the corresponding mentoring organization. Every participating organization must provide mentors for each of the project ideas received, if the organization is of the opinion that the project would benefit from them. The mentors then rank the applications and decide among themselves which proposals to accept.

Now having given a summary of GSoC, lets get back to the main problem and that is, “how to do it ?”. So the first step towards participating in GSoC and a very crucial one I suppose is selecting an organization to work with. For this you can open last year’s website of GSoC and look for organizations that require the same skill set that you possess. Here when comparing your skill set with that required by the org, its best if you have all the skills that is required by the org, but in case you have most of the skills and not all of them then do not just rule out that org. If you think you can quickly acquire those remaining skills before starting to contribute in the org, then do take that org into consideration. This is actually one of those phases in GSoC where you get to learn those tools and technologies that you do not know yet. Now after you have shortlisted the organizations that require the same skill set that you possess, its time to select that one org in which you are going to contribute and hopefully do your GSoC with. Here different people have different views, some say its better to keep contributing in different organizations because that increases your chance to getting selected in GSoC, but I personally believe that its better to channelize your entire energy into working with one org rather than trying your hands on too many things. So do not try be jack of many rather be a master of one. One more thing that you could keep in mind while finalizing your org is to check whether that org is a regular participant in GSoC or not. Some organizations are not regular participants in GSoC. So if you want to play it safe, try to choose an org that has been regularly participating in GSoC since past few years.

After having selected the org, its time to move to the second step. Now you need to download the code base of the software that you need to work on and build and install it. I am explicitly mentioning this because if the procedure to build and install your software is complex you might get various unresolved dependency errors which takes a little while to solve. I have seen people quit preparing for GSoC because they were stuck for a long time in this step and got frustated. So if you are stuck somewhere do not get disheartened. Keep trying. If you are really not able to solve it, you can also ask the lead developers of the software about how to solve the problem. They will surely help you out.

Having done this, its time to move to the third step, which is solving bugs in software and establishing a good rapport with the lead developers(your potential GSoC mentors) of the software. This is actually the step that will determine to a great extent whether you will be selected or not. So firstly, join IRC/mailing list of the software on which you are working. This will be the medium of communication between you and the lead developers of the software. You need to prove to those guys that you have the potential to successfully complete the GSoC project if its assigned to you and the best way to prove this is by fixing bugs in software. The more bugs you solve, the more confident they get about you. Also, if you get stuck somewhere while solving a bug then do not hesitate to ask them. They are not going to think that you are a fool or anything. They understand that it takes time for a beginner to get accustomed to a large code base. But ask intelligent doubts. Do your own research before asking any doubt.

By Feb end or 1st week of March, you should choose a project on which you would like to work on, from the list of ideas proposed by the organization. This is the fourth step. You need to discuss in great depth the technical details of the project with your mentor and then you need to write a proposal stating how you are going to work on this project and the timeline that you are going to follow. You should really know the details of the project in and out. This not only improves the standard of proposal you write but in fact helps you a lot when you are are actually coding in the summer for your project.

Now the fifth step is to simply sit back and relax till the results are announced 😛 . Whether you get selected or not is another story. I think you should be proud of yourself if you have even come this far. I am pretty sure you might have gained a lot of experience by this time, which will be of great use to you. And if you are selected, then Congratulations !!! I can guarantee you one thing, seeing your name, after working so hard for it, in the list of selected students will be one of the best moments of your life. And if that’s not enough for you, you are going to get $5,500 in the next few months (I guess that’s good enough reason for any person to be overwhelmed with happiness 😛 ) ,plus a t-shirt and some cool goodies.

And lastly just a word of caution. Please do not make the mistake of not working on your project after getting selected for GSoC. There will 2 evaluations during the coding period and you need to pass both the evaluations to get the certificate of completion and the total $5,500.

So best of luck to all the aspirants !!
May the force be with you !! 😛

Advertisements

Google Summer Of Code

Hi, my name is Saurabh Patel and I’ll share my experience about Google summer of code in this post.

Google organizes a “Google summer of code” program every year and it allows open source organizations to present their details of projects and it sponsors few of those projects. This program is related to FOSS development and increasing craze for open source among students. Open source is something in which you make some softwares and allow other people to make changes and improve it. There are few huge organizations like KDE, GNOME and Mozilla which get sponsored for 40-60 projects. Google doesn’t directly contact the students but communication happens through the organizations so we have to contact organizations and show them our work and make them believe that “Yes, I can work on your project and complete it”.

I worked with GNOME organization. In December’13, I started looking for organizations which were good fit for my areas of interest and started looking for their projects to find some interesting project. I almost looked up to 20 organizations and finally I thought of working with GNOME which got 40 projects selected this year and one of them is mine. I choose GNOME because it was a good fit as I was familiar with the languages that are used in software development in GNOME. I was working on “Gnome-clocks” initially which was proposed in gsoc’13 and it seemed little interesting to work on. But it was not proposed for gsoc’14. I solved few bugs in gnome-clocks and added some features in it. The maintainer of that software was happy with my work. Initially it was very tough as I didn’t have any experience of working with professional people and following their convention. Every organization has different convention to follow to make changes in source code and many other conventions.

So basically you should start looking for open source organization now and select the one that suits you the most. If you get too confused between too many organizations then ask the developers on the IRC channel about the programming languages that they use in software development and according to that choose one organization. I’d suggest that it is better to stick to only one organization.

By February end, you should start working on any of the projects from the ideas list proposed by the organization and if the list is not disclosed by now then start working on any project of that organization which interests you the most or was proposed previously. As I started working on gnome-clocks initially and it was not proposed so I switched to gnome-weather project which shares a library with gnome-clocks so I was familiar with that library. If the project that you’re working on is not proposed then find another project from the ideas list which might be having some common libraries with the project that you’ve been working on. Don’t wait for the ideas list to come out.

Now I’ll write about how to approach a mentor or a maintainer to start working on project. First of all download the source code of the software and do little hacking and after getting yourself little familiar with the source code, write a mail to the maintainer that you’re interested in working on that project and ask him if he/she wants you to solve some specific bugs or normal bugs. I followed this workflow: On one side I kept discussing about the project changes that were proposed for gsoc’14 and on the other side I kept solving other bugs which might be related to the proposed changes or might not be related to it. Start submitting patches for the bugs and keep learning about the convention and getting familiar with the environment of the organization. I used to ask a lot doubts on IRC. People on IRC are really helpful and they’re always ready to motivate you for your work. Don’t pretend to be someone who knows everything, if you’ve any doubts then just ask it. It will not leave any impression like you don’t know anything etc. Plus if someone is asking some doubt and you know the solution then you should help him/her out.

Here also I’d suggest you to stick to one project unless the mentor asks you to switch to another project. I guess you can submit maximum 5 proposals but I’d suggest you to work on one project and dedicate yourself to that project.

You’ll find many sample proposals and you’ll have to mention timeline also in your proposal. Proposal won’t be a big deal if you’ve worked too hard and your mentor is convinced with your work. It is a good idea to get your proposal reviewed by your mentor.

After proposal is submitted, when the results come out and if you’re selected then talk to you mentor about it and cheer it up !! Keep working on your project according to the timeline and keep learning new things. There will be 2 evaluations: One is around June ending that is midterm evaluation and the other one is around mid August that is final evaluation. If you pass both of them then you’re considered a gsocer !! 😛

Plus you’ll get T-shirt from Google, 5500$ and a welcome package. That is a really awesome feeling. So start working if you really want to be a part of such an awesome journey. You’ll definately learn a lot.

Happy Hacking !!!!!!!!!  🙂

Here is the link for basic details for Gsoc’15: http://www.google-melange.com/gsoc/homepage/google/gsoc2015