• Subscribe

    Subscribe to This Week In Panospace by eMail.
    Subscribe in a reader
  • License

    Creative Commons License
    This work is © 2008-2012
    by Yuval Levy
    and licensed under a
    Creative Commons License.
  • Entries

    March 2009
    M T W T F S S
    « Feb   Apr »
     1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031  
  • Archives

A Patch, The First Milestone


hugin-logoBefore considering students for the Google Summer of Code, we ask that they provide a patch against the current codebase. Admission to the program is competitive, and some candidates may perceive the patch as part of the competition. It is not. The competition is at the proposal level, but you need a patch for your proposal to be considered. Why do we ask for a patch?

Think of it this way: when you take a taxi ride from the hotel to the airport, you trust somebody you don’t know. However it’s not blind trust: some simple and implicit observations give you good reasons to trust the driver: if he can knock at your door, he must have the vehicle to get there and the skills to drive it. Furthermore, while he’s loading your luggage into the trunk, you get a chance to observe his vehicle and his behavior. By the time you start the journey with him there are still no guarantees that he won’t get lost or have an accident, but at least you know that he has the basic tools (the car) and the basic skills (he drove it up to your door). You have done your due diligence.

Similarly, you need to quickly build the same level of trust with our community. Do you have the tools it takes to hack into the code? and do you know how to use them? When a contributor uploads a patch to our mailing list or to our tracker (preferred, but to make sure you get noticed please post a link on the mailing list too) he builds instantaneously the same level of trust that the unknown cab driver builds with every new customer: he implicitly shows that he has the tools (hardware, operating system, internet connection, coding environment, repository access) and that he can use them for basic operations.

This is just the beginning of the journey, not the destination. It is a task designed to show basic proficiency. We will not choose our student based on this task. We will choose her based on her proposal. But we won’t consider her proposal if this task is not done, because what use is a driver who promises to get us to the airport if he can’t pull up around the corner and park in front of our door?

My recommendations for the patch, at this point:

  • Get yourself the right tools. Ubuntu, Windows, OS X, almost any platform will get you there. Some are easier than others. When in doubt, ask on the mailing list.
  • No inspiration? Check Bruno’s suggestions.
  • Get it done and out of your way quickly, so that you can focus on your proposal in the little time left before the deadline.

What you should not try to do is something like this patch by 2008 student Tim (likely 2009 mentor). It is very nice, but it was done after a Summer of Code, not before. Those who started early like Lukáš have had plenty of time to establish a deeper relationship with the community, and produce some big patches. If you are starting just now, you need to focus. The deadline is April 3. You can impress us between the moment you get the patch done and the application deadline, April 3. And if you need help, ask. We’re here to help you. Good Luck.

8 Responses

  1. […] A Patch, The First Milestone « This week in panospace Similarly, you need to quickly build the same level of trust with our community. Do you have the tools it takes to hack into the code? and do you know how to use them? When a contributor uploads a patch to our mailing list or to our tracker (preferred, but to make sure you get noticed please post a link on the mailing list too) he builds instantaneously the same level of trust that the unknown cab driver builds with every new customer: he implicitly shows that he has the tools (hardware, operating system, internet connection, coding environment, repository access) and that he can use them for basic operations. (tags: gsoc) […]

  2. I think your analogy has some problems. In contrast to the taxi driver show up the patch before is not required to succeed. Some people have an allergy against being tested without strong need and might take that as a reason to leave though they are able to do the job well. Also GSOC is not “students impressing mentors”. It’s the other way around, too. On certain tasks there won’t be more than a single applying person. If there’s some cooler project to work on why waste time with “patch needed to enter”. I can imagine that I missed a few things as well.

  3. @Sebastian: I don’t think I’ve seen you around hugin/panotools? If our selection mechanism does not suit you, it is your right to look elsewhere. It has served us well.

    That said, we’re not rigid about it and we do make the occasional exception to the patch requirement when the student has other convincing ways to show proficiency in the development tools.

    You’re right: mentors are under scrutiny as much as students if not more. Luckily, judging what is cool and what is not is very personal, and it always takes two to tango. I can take it when somebody thinks I am not cool. It is their right. Do you mind if I think that your statements are not cool?

  4. @Sebastian: we had one failed project due to a student not having build environment. A patch means that student has build environment ready. We also like students who are avid users, because that means they will stick to the project and their code will not be dead.

  5. uhm, so, to be accepted for a project to gsoc I have to send in the patch with the project done? brilliant…

  6. @uuhmm: No. The kind of patch that we require takes less than a day to complete. If it takes more, either the student is too ambitious or not skilled enough.

    A project takes three months. If you can get a three months project done in a few days, you can also submit a simpler patch and an application selling your project. Once your application is approved, provide the project and use the rest of the time as you see fit.

    Actually we should consider making the patch requirement more stringent, like x264.

  7. @yuval
    i just remembered this place and my comment. the way i understood your posts offended me and i piss-commented as a reaction. i should have moved along and keep my mouth shut; we seem to disagree about more or less everything. so sorry for the trouble, i’ll try to do better next time.

  8. @Sebastian: how did you understand my posts for them to offend you? It was not my intention. Where did you “piss-comment”? I don’t find any of your above comments offending or otherwise disturbing. They just show that you have a different (and in my opinion legitimate) perspective. We can agree to disagree.

    I don’t claim that our way is the only way. There are many ways that lead to the same goal and I am sure that if your goal is a GSoC project you can find a project / team with whom you have more affinity.

    And even if you disagree with me – disagreement is no reason not to respect each other; and it is no reason not to do business. You own your time and you decide how to use it. I don’t tell you what to do. Our team had the privilege to be assigned five GSoC slots by Google and we decided how to use them. It has worked very well for us. Watch the releases in the next weeks.

    I don’t feel that you have to apologize. You do have to live with the fact that you can’t control our decision making process (and specifically the condition to request a patch). And I do have to live with the fact that maybe because of that condition we missed on your talent.

    We can all try to do better next time. Always. Maybe we can look beyond our disagreements – real or perceived – and find some common ground?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s