OnSwipe redirect code

Tuesday, June 5, 2007

My GSoC 2007 Story

I always had this desire to do something big and noticeable in my life as an engineering student. Right from the day I was introduced to C programming I have enjoyed programming like anything and I was pretty sure that if at all I had to do that 'something big' it will be in terms of a major software project. This desire never actually got me to work on or do something. Meaning it never materialized. Around me, I saw many people(seniors and batch mates alike) who were pretty complacent. (There were indeed exceptions). So the desire gradually was subdued by fun, until 6th semester when a friend of mine, Ashwin(Setu), forced me into coming up with a technical paper. We did come up with one on search engines which was not really that technical and hence was not what I actually desired. Then almost at the same time a few people started asking me:
" Hey are you not participating in a coding competition called Google Summer of Code? Vikas GP(A very big open source freak and a real good coder - a big shot in the college)is doing that. He is getting a lot of money for that".

At that time I thought it was just another 2 days or 3 days contest for people with ultimate coding skills who can work out magic, because of which the money appeared inaccessible, and I did not even bother to find out what the program actually was. It was eventually forgotten.

Again in March 2007, few days before the mentoring organizations started registering for SoC 2007, a talk was organized by IBM on open source software, in which it was mentioned that some Google APIs are available out there on the net. I started checking it out at http://code.google.com/ and there I saw this link to Summer of Code and the last year's scenario instantly came back to me. So I started having a look at that as to what this program is all about. When I read the program details completely I was baffled at the magnitude of the program and its quality. (The $5000 really stunned me for some time). At that moment I decided that I need to get into this program and this will be the fulfillment of my long standing desire.

I started looking into various organizations where I can poke my nose and hope to get noticed and eventually be selected. There were very few avenues for me as my open source utilization was very less and  open sourcedevelopment experience was close to nil. The organizations that I shortlisted for me were:

1) KDE - I am big fan of that and I have been using only KDE (no GNOME) for a few years now.

The following because my internship at IBM dealt with these things.

2) Mozilla Foundation (MoFo)
3) Dojo Foundation
4) Eclipse

Of all these places, the only place where I knew a few developers and where I was also a little known was in the Mozilla Foundation and that was the strongest contender.

Then I talked to Vikas GP and told him about my plans to participate in this. He gave me this fantastic idea which he had used. The plan was to catch hold of a mentor outside the program realms and impress him with your idea/code, so that when the applications go for review, we will have already mentioned a mentor's name and that person will pitch in for us. If our mentor is well known and popular in the community then we will surely be selected. :). GP had done this by catching hold of a college senior, an identified GNU developer, whom he knew personally. Now there was only one guy whom I knew properly in the MoFo and that was Mook. Then again I did not have any ideas either and the ones listed on the brainstorming page of the Mozilla wiki were all Greek and Latin to me.

Still I started looking at the ideas proposed at the brainstorming page and there was an idea to implement metalink support for the Firefox Download Manager. I thought of taking it up. In that proposal I found a link to the Firefox feature request page. The list was obviously too long, and metalinks was also listed there. But two other things caught my attention (as I had felt a dire need for those):

1) Implementing download resume across different sessions
2) Reducing the memory consumption for Firefox.

I did not find any material for metalinks and memory reduction, but found a MDC page related to resumable downloads by a person named biesi. I read that and got a small idea as to what all things are involved in implementing resumable downloads.

With this I entered the #mozilla on irc.mozilla.org from where I was directed to #developers by one nice fellow. I put up this proposal of metalinks in #developers and got bad response. Only a couple of people replied and also told me that the actual person who had mentioned it was not known to them. I was surprised and so happy to see biesi amongst the people replying. I was like - "Oh man he is the author of that MDC page and here he is talking to me directly.."
Then with the metalinks idea failing to impress I proposed the download resume idea. This got some good response, but nobody was ready to mentor me. I was pestering biesi but he told me that he is not free and does not have time to mentor me. Then when I was searching for Mook or Mossop (whom I had pestered previously about extension development) amongst the nicknames, when dmose pinged me saying "brahamana, if you are going ahead with download resume then I can mentor you". I was only partly happy as I was not aware of the credibility and popularity of dmose (With all due regards my Master, now I do know), but at least I had someone who was interested in mentoring me. But I was still hoping for biesi, (he was the author of page on MDC man)

Then dmose asked me what were the requirements for a mentor and I told him that he needs to be a respected member of the mozilla developer community and at that point biesi told me that dmose suits that description very much. dmose then told me that he will talk to his boss, mconnor, The Firefox project lead. (Wow man..) I was taken aback. I was like, "Whom was I doubting??!!! This guy talks to Firefox project lead directly in person and he is speaking for me in front of him". I thought this was my Jackpot ;-). But again dmose told me that he still can't promise me anything and will have to find out with mconnor. Well that much was sufficient for me at that time and I was literally jumping in my room (It was around 4 a.m in the morning. Yes, as usual a night out).

Then the killer waiting period started. I pinged dmose the very next night(starting of the day for him). He told me that he has mentioned the idea to mconnor and he is awaiting his response. I was growing very impatient. The last date for submitting the application to google was approaching and there was no response or growth here. I was stuck with two options, submit the application without any reference and prior approval and compete with several others as a normal application or wait for the reply till the last moment and submit it with prior approval so that there will be no competition. But the problem with waiting was that last moment applications are given less value. So that was a risk again. Meanwhile I had read many blogs, previous year's applications and several articles on "How to write a proper SoC application" and even things on "How not to write an application" and "What the mentors actually look for in the application". So with all this gyan I had realized that application has to be sent quickly or it should have a solid reference.

I pinged dmose again few hours later and this time I pissed him off and got scolded. He told me to be a little patient and wait. I was afraid of screwing this up and hence did not bother him anymore. I just hung around at #developers and made my presence felt whenever dmose was active in some discussions. I was reading that MDC page again and again and trying figure out what those terms meant so that I can talk something sensible in the channel. In that course I had discovered quite a few resources and gained some know how on Mozilla and download resume feature. I got impatient again the next day and this time to be safe I emailed dmose. His reply seemed to be calm and I was positive that I am on the right track. He had written that there was no reply from mconnor yet. This process of hanging around at IRC for a major part of the day continued for another day also. Then 3 days after the initial proposal, when I was having a discussion with dmose, biesi and probably Gijs, dmose said this as a very matter of fact thing: "brahmana, BTW mconnor has agreed for the SoC idea and you can go ahead with the project". I was very happy and started immediately asking him what is to be done, so that I could start immediately and make my position still safer. He then asked me to send any of my previous projects so that he can have a look at my coding skills. I did not have any project expect for the two academic ones. The IBM internship carried a lot of weight but no code was available as it was a proprietary thing. But the code was essential for him. And for my bad luck I was not able to find my IDE for C on Linux project anywhere. The computer on which it was stored was formatted and it was gone. It was 7 a.m and I told dmose that the project is in a repository on the college server and that I will get it to him later. Luckily he agreed. Then I was checking my cd collections to find this project and instead found another project which I had submitted. It was 2D Graphics Editor, a paint brush kind of an application written in C. It was a very big one and also a good one, but the problem was that it was not entirely written by me. We(me and my project partner Vikas Patil) had flicked it from a senior. Since I had no other option I sent that one to dmose. I do not know what he actually thought. All that he told me was: "yes, its fine. But here at mozilla you will have to write a lot of comments". Well man, that was not a problem at all. And dmose confirmed my slot. (Thank you dmose very much).

And luckily google had extended the last date for application submission. I built up a nice application from various sources, put in Dan Mosedale (dmose) twice and in a prominent way and submitted it. I was a lot relieved and very happy that the desire is indeed going to be fulfilled and something solid will materialize.

UUUuUOOoooffff... That was one herculean task man and I finally did it.

I told GP and others that a MoCo employee has agreed to mentor me. I showed them Dan's name in about:credits and told them this is the guy who will be mentoring me. It was a matter of pride for me.

Then with Dan's name in the application I did not have any problem in getting selected. No questions asked, no comments. The only notification was when I was selected.

This whole experience was awesome.

Thank you Google for conducting this program.
Thank you Mozilla Community for the guidance.(and also fun)

4 comments:

  1. nice success story indeed.....
    sir i m intrested n open source development dont know how to start wit can get a help from u???
    can u guide me ????????

    ReplyDelete
  2. This comment has been removed by the author.

    ReplyDelete
  3. good work :) how did you get the mentors? How are we supposed to get the mentors.... Its a big question to me.... I hope that you'll help me :)

    ReplyDelete
  4. @ajay,

    It was exactly how I have described in the post. I went through the ideas proposed and features requested, picked a couple and spent a lot of time in the Mozilla IRC channels bouncing those ideas off the heads of developers in the channel. Whenever I said something interesting people would respond back with answers/suggestions.

    You can probably do the same. But before you go and start talking in the IRC, prepare yourself. Read articles, documentation and have some idea (in terms of code or at least design) about what you want to do.

    If the idea is interesting enough and your design is good enough, there will definitely be someone who will be willing to mentor you.

    Also note that these days the system is more organized. Well known seasoned developers propose ideas and also agree to mentor people. So the brainstorming page will give you both ideas and mentors.

    Good luck.

    ReplyDelete