Summer of Code 2012



            Kathiravelu Pradeeban
            AbiWord
Contents
➢   Why GSoC?
➢   Before you begin..
➢   Right Project?
➢   Shout!
➢   Apply.
➢   Code.
➢   Conclude/Continue.
                                2
➢   What Else?
Google Summer of Code (GSoC)
   Code for your preferred open source
    organization for 3 months.
   University students of age 18 and more.
   Google coordinates and rewards you!
    – 3 milestones.
             • Getting Accepted.
             • Mid-Evaluations.
             • Final Evaluations.
                      – A certificate, an awesome t-shirt, and gifts!
                                                                        3
                      – {500, 2250, 2250} USD.
Some statistics of 2011
   175 Organizations
    – 2096 mentors and co-mentors.
   Submitted
    – 3,731 students, from 97 countries.
    – 5,651 proposals.
   Accepted
    – 1115 students/projects
             • 68 countries.
             • 595 universities.           4
Success Rate..
                     is pretty high!

   Passed the mid evaluations
    – Success rate up to mid – 90%+
   Passed the final evaluations
    – Success rate – 88%




                                       5
Why Google Summer of Code?




                             6
What do you need?

♥


                        7
Timeline (2012)

    Feb 4th : Program Announced.
           th          th

    Feb 27 – March 9 : Organizations apply.
                th

    March 16 : List of Accepted Organizations.

    March 17th – 25th : Students discussing project
    ideas.

    March 26th – April 6th : Students application
    period.
                                                    8
Timeline..
                    After getting accepted


    April 23rd : Accepted Students announced.
    – Community Bonding Period Begins.
               st

    May 21 : Coding Begins.
          th            rd

    July 9 – July 13 : Mid Evaluations.

    Aug 13rd : Suggested Pencils Down.
    – Tests, Documentation improvements, etc.


                                                9
Timeline..
                     Concluding


    Aug 20th : Firm Pencils Down.
    – Stop Work!
           th

    Aug 24 : Final Evaluation Deadline.
           th

    Aug 29 : Final Results.

    Aug 31st : Begin Code Submission to Google.



                                              10
Before you begin..
   Google Summer of Code is all about being
    Open Source.
   Get your basics and motives right.
   Netiquettes.
   Sign up to the lists.
   Join the relevant channel.

                                               11
Technologies..
   Version Control Systems
    – SVN, CVS, GIT, Mercurial, ..
   Build Tools
    – Ant, Maven, ..
   IDEs (Integrated Development Environments)
    – IntelliJ IDEA, Eclipse, ..
    – Microsoft Visual Studio, Anjuta, ..
   Issue Tracker
    – Bugzilla, Jira, Trac, ..                12
Communicating with the team..
             and the mentor, over the Internet

   Mailing Lists
    – Dev, User, Commit lists, sub-groups, ..
   Internet Relay Chat (IRC)
   Issue Tracker
   Forums and wiki
   Blogs
   Skype, Personal Mails, gtalk, conference
    calls, .. [with the mentors, if that is preferred.] 13
Network Etiquettes
   Be Specific and clear.
   Research (google.. ;)) before asking.
   Be helpful to others.
   Be ethical; respect.
   NO CAPS! (UNLESS YOU ARE SHOUTING!)
   Don't take messages personally.
   Dn't snd ur sms msgs to thrds or lsts.
                                             14
   Language/English
Proper Addressing..
                      over the lists/irc/..

   Address the devs and users properly.
    – First Name or Preferred calling name.
    – NO Sir, Madam, bro, sis, pal..
              • Even if you know them, personally.
    – No Mr., Dr., or Prof. either.
    – Be gender neutral.
              • “Folks” over “Guys and Girls”.
    – Not too personal.
              • Use “Hi”, instead of “Dear”.
                                                     15
Mailing lists
   Post only to the relevant list.
   Check the mail archives first.
   Avoid HTML mails.
   No [URGENT]/[IMPORTANT] tags.
   No unnecessary attachments.
   No Cross Posting.
   Don't hijack threads.
                                      16
   Don't post off-topic.
IRC Etiquettes
   Be an observer first.
   Refer to others using their irc nick.
   Don't expect immediate replies; wait.
   Don't post bulk of text into irc.
    – Post error logs to http://pastebin.com/ or
      http://paste.ubuntu.com/ and share the url instead.


                                                        17
Find a mentoring organization..
   Have a look at the list of GSoC2011.
   175 Last year!
   New Organizations.
   Google as the mentoring organization.
   Introduce GSoC to an organization (Sounds
    Smart!).

                                                18
Find THE right project..
   Go through the organizations' projects list.
    – Some organizations publish pretty soon.
    – Refer to the projects list of 2011 of the
      organizations till the GSoC 2012 is announced.
             •   AbiWord
             •   PhpMyAdmin
             •   Kubuntu
             •   DocBook Wiki


                                                       19
Get to know more..
                     about the projects

   Talk to the mentor(s)
    – Assigned by the organization
    – for each project idea.
   Mailing lists and archives.
   Issue Tracker
    – Open issues or tickets
             • New features/enhancements (RFE)
             • Bugs (easy/difficult and normal/critical)
                                                           20
What makes you
                        special?

   Experience
    – Being a great user doesn't mean that you can be a
      good developer.
   Your interests and motivation
    – Pick something you really enjoy doing.
    – Being a great developer doesn't mean that you
      can be a good contributor.
   Opportunities
    – What makes you the right person?                21
Are you willing
                   to contribute further?

   Willingness
    – To contribute to the community
    – Beyond the time frame of GsoC.

   We want committers and long time
    volunteers!
    – Not just students!

                                            22
Experience
   Language
    – Java, C++, C, ..
    – Not much time to learn a new language (?)
   Prove It!
    – Patches.
    – Assist other students!!!
    – Project expertise
                • Bug reports and fixes.
                • Go through the archives, wikis, and web sites.   23
Opportunities..
   Project that matches your previous work
    experience.
   Choose the right project.
   Timezone Difference
    – Use it effectively
    – e.g., For Sri Lanka,GMT + 0530.
   Multiple Applications (20!)
   Preferences!                              24
Shout!
   Communicate early.
   Communicate often.
   Ask questions.
   Most importantly,
    Answer others' questions!

   Mentor is your friend!
                                25
     (respect)
Be Known..
   Be heard!
   Be visible!
   Be responsive!
   Be quick!




                               26
Apply
   Register as a student for GSoC.
   Use the project's wiki for draft proposal
    – if applicable.
   Apply on Google's melange.
    – Can edit later, till the last minute!
    – Get the mentors' opinions and improve.
   Check often for the mentors' comments
    – attend to them.                           27
Propose.. ♡
   How to impress..
    – the mentor/developers?
   Stick to the organization's template.
   Abstract.
   Introduce yourself properly.
    – Focus on the relevant facts.
    – Why do you fit? Your skill sets.
    – List of the patches (if any) you have submitted.   28
Propose..
   Project Goals
    – Proves you got them correct.
   Deliverables
    – Code, Documentation, test cases, ..
   Description
    – Benefits to the organization and other projects.
    – Can also be given along with the timeline.

                                                         29
Propose..
   Timeline
    –   Finer details.
    –   Break upto periods of 3 - 4 days.
    –   Testing takes time.
    –   Don't be over-optimistic.
    –   Some organizations require considerable work
        hrs/week (40 ?).
   Links
    – References and additional details.               30
Application Template
   Name:
   Email:
   Project Title:
   Synopsis:
    – A short description of your project.
   Benefits to the organization/project
    – and/or other project(s):
   Deliverables:
    – Quantifiable results.                  31
• e.g.: “At the end of my project, AbiWord’s piece
                  table will be 50 times faster.”
   Project Details:
    – A more detailed description of your project:
   Project Schedule:
    – How long will the project take?
    – When can you begin work?
    – Do you know of any planned absences or other
      major conflicts
                                                               32
              • summer classes, vacations, etc.
   Bio:
    – Who are you?
    – What makes you the best person to work on this
      project?
   Additional Requirements:
    – Patches / Specific requirements for the project.
   Further Related Information:

                                                         33
After the submission..
   Don't go invisible!
    – Evaluation is still going on.. ;)
   You may be asked to provide
    – additional information.
              • Patches.
              • Screenshots.
   Start coding on your project.
    – only if you didn't apply for multiple projects.
   Be motivated.                                       34
Got Selected? yay/
   Don't Panic.
   You have one more month
    – just to mingle with the developers and the code
      base.
   Mentors are there to help you!
   Keep touch with the developers.
   Users.
                                                        35
Community Bonding Period
   Learn the project
    – Go through the code base
    – Documentation.
             • Coding styles and coding guide lines.
   Communicate often
   Understand the project idea more.
    – Come up with a design.
    – Start with simple hacks.
                                                       36
Coding..
                   Easiest task of all.. ;)

   Commit often, if given committership.
    – Send daily patches otherwise.
    – Meaningful Commit messages.
   Get feedback from the mentor(s).
   Keep the community updated
    – Daily (?).
   Plan for the mid and final evaluations early,
    with the mentor.
                                                    37
Conclude/Continue..
   Pencils Down Date
   Firm Pencils Down Date
    – GSoC Coding ends here.
   Get a tarball of all the diff files to submit to
    Google.
   Focus on becoming a committer
    – if not already given committership.
   Keep contributing.                                 38
What else?
   More FOSS?
   Annual?
   Stipend?
   Student?
   Country/Location?



                              39
More Open Source
                        programs/contests..

   OpenOffice.org Internship
   Ubiquiti RouterStation UI/Firmware
   Wesnoth Summer Art Scholarship
   Umit Summer of Code (USoC)
   Season of KDE (SoK)
   The OpenMRS Internship Program (OIP)
   Joomla! Student Outreach Program
   Ruby Summer of Code
   Fedora Summer Coding
    – http://fedoraproject.org/wiki/Summer_Coding_2010
                                                                    40
    – https://fedoraproject.org/wiki/Summer_coding_ideas_for_2011
Some links.. ;)
   GSoC-2011 FAQ
   GSoC-2011 Accepted Organizations
   GSoC Student Guide
   Google Open Source Blog on GSoC
   Proposal [Pradeeban] - GSoC 2009 AbiWord
   Proposal [Pradeeban] -
    GSoC 2010 OMII-UK/OGSA-DAI
                                               41
Are you ready?
   Have a look at the successful projects.
    – Proposals available online - Wikis, blogs, ..
   Apache Software Foundation
    – More slots and more choices.
              • Tomcat, Derby, Axis2, and more ..
   Join the projects' mailing lists and IRC.
    – AbiWord
              • abiword-dev@abisource.com
              • abiword-user@abisource.com
                                                      42
              • #abiword at irc.gnome.org
For more Information ..
   Join your local GSoC Google Group
    – For e.g., Group for Sri Lankan students:
      http://groups.google.com/group/gsoc-srilanka
   Local GSoC IRC channel
    – For e.g., Sri Lanka - #gsoc-lk at irc.freenode.net.
   Drop me a line. ;)
    – kk.pradeeban@gmail.com | kkpradeeban.blogspot.com



                                                                                                                            43
    Logos used in the presentation are owned by the respective open source organizations or the individuals, and used for the
    particular non - commercial informative purpose only.
Questions?..




               44
Wish you all the best..




                     45

Google summer of code

  • 1.
    Summer of Code2012 Kathiravelu Pradeeban AbiWord
  • 2.
    Contents ➢ Why GSoC? ➢ Before you begin.. ➢ Right Project? ➢ Shout! ➢ Apply. ➢ Code. ➢ Conclude/Continue. 2 ➢ What Else?
  • 3.
    Google Summer ofCode (GSoC)  Code for your preferred open source organization for 3 months.  University students of age 18 and more.  Google coordinates and rewards you! – 3 milestones. • Getting Accepted. • Mid-Evaluations. • Final Evaluations. – A certificate, an awesome t-shirt, and gifts! 3 – {500, 2250, 2250} USD.
  • 4.
    Some statistics of2011  175 Organizations – 2096 mentors and co-mentors.  Submitted – 3,731 students, from 97 countries. – 5,651 proposals.  Accepted – 1115 students/projects • 68 countries. • 595 universities. 4
  • 5.
    Success Rate.. is pretty high!  Passed the mid evaluations – Success rate up to mid – 90%+  Passed the final evaluations – Success rate – 88% 5
  • 6.
  • 7.
    What do youneed? ♥ 7
  • 8.
    Timeline (2012)  Feb 4th : Program Announced. th th  Feb 27 – March 9 : Organizations apply. th  March 16 : List of Accepted Organizations.  March 17th – 25th : Students discussing project ideas.  March 26th – April 6th : Students application period. 8
  • 9.
    Timeline.. After getting accepted  April 23rd : Accepted Students announced. – Community Bonding Period Begins. st  May 21 : Coding Begins. th rd  July 9 – July 13 : Mid Evaluations.  Aug 13rd : Suggested Pencils Down. – Tests, Documentation improvements, etc. 9
  • 10.
    Timeline.. Concluding  Aug 20th : Firm Pencils Down. – Stop Work! th  Aug 24 : Final Evaluation Deadline. th  Aug 29 : Final Results.  Aug 31st : Begin Code Submission to Google. 10
  • 11.
    Before you begin..  Google Summer of Code is all about being Open Source.  Get your basics and motives right.  Netiquettes.  Sign up to the lists.  Join the relevant channel. 11
  • 12.
    Technologies..  Version Control Systems – SVN, CVS, GIT, Mercurial, ..  Build Tools – Ant, Maven, ..  IDEs (Integrated Development Environments) – IntelliJ IDEA, Eclipse, .. – Microsoft Visual Studio, Anjuta, ..  Issue Tracker – Bugzilla, Jira, Trac, .. 12
  • 13.
    Communicating with theteam.. and the mentor, over the Internet  Mailing Lists – Dev, User, Commit lists, sub-groups, ..  Internet Relay Chat (IRC)  Issue Tracker  Forums and wiki  Blogs  Skype, Personal Mails, gtalk, conference calls, .. [with the mentors, if that is preferred.] 13
  • 14.
    Network Etiquettes  Be Specific and clear.  Research (google.. ;)) before asking.  Be helpful to others.  Be ethical; respect.  NO CAPS! (UNLESS YOU ARE SHOUTING!)  Don't take messages personally.  Dn't snd ur sms msgs to thrds or lsts. 14  Language/English
  • 15.
    Proper Addressing.. over the lists/irc/..  Address the devs and users properly. – First Name or Preferred calling name. – NO Sir, Madam, bro, sis, pal.. • Even if you know them, personally. – No Mr., Dr., or Prof. either. – Be gender neutral. • “Folks” over “Guys and Girls”. – Not too personal. • Use “Hi”, instead of “Dear”. 15
  • 16.
    Mailing lists  Post only to the relevant list.  Check the mail archives first.  Avoid HTML mails.  No [URGENT]/[IMPORTANT] tags.  No unnecessary attachments.  No Cross Posting.  Don't hijack threads. 16  Don't post off-topic.
  • 17.
    IRC Etiquettes  Be an observer first.  Refer to others using their irc nick.  Don't expect immediate replies; wait.  Don't post bulk of text into irc. – Post error logs to http://pastebin.com/ or http://paste.ubuntu.com/ and share the url instead. 17
  • 18.
    Find a mentoringorganization..  Have a look at the list of GSoC2011.  175 Last year!  New Organizations.  Google as the mentoring organization.  Introduce GSoC to an organization (Sounds Smart!). 18
  • 19.
    Find THE rightproject..  Go through the organizations' projects list. – Some organizations publish pretty soon. – Refer to the projects list of 2011 of the organizations till the GSoC 2012 is announced. • AbiWord • PhpMyAdmin • Kubuntu • DocBook Wiki 19
  • 20.
    Get to knowmore.. about the projects  Talk to the mentor(s) – Assigned by the organization – for each project idea.  Mailing lists and archives.  Issue Tracker – Open issues or tickets • New features/enhancements (RFE) • Bugs (easy/difficult and normal/critical) 20
  • 21.
    What makes you special?  Experience – Being a great user doesn't mean that you can be a good developer.  Your interests and motivation – Pick something you really enjoy doing. – Being a great developer doesn't mean that you can be a good contributor.  Opportunities – What makes you the right person? 21
  • 22.
    Are you willing to contribute further?  Willingness – To contribute to the community – Beyond the time frame of GsoC.  We want committers and long time volunteers! – Not just students! 22
  • 23.
    Experience  Language – Java, C++, C, .. – Not much time to learn a new language (?)  Prove It! – Patches. – Assist other students!!! – Project expertise • Bug reports and fixes. • Go through the archives, wikis, and web sites. 23
  • 24.
    Opportunities..  Project that matches your previous work experience.  Choose the right project.  Timezone Difference – Use it effectively – e.g., For Sri Lanka,GMT + 0530.  Multiple Applications (20!)  Preferences! 24
  • 25.
    Shout!  Communicate early.  Communicate often.  Ask questions.  Most importantly, Answer others' questions!  Mentor is your friend! 25 (respect)
  • 26.
    Be Known..  Be heard!  Be visible!  Be responsive!  Be quick! 26
  • 27.
    Apply  Register as a student for GSoC.  Use the project's wiki for draft proposal – if applicable.  Apply on Google's melange. – Can edit later, till the last minute! – Get the mentors' opinions and improve.  Check often for the mentors' comments – attend to them. 27
  • 28.
    Propose.. ♡  How to impress.. – the mentor/developers?  Stick to the organization's template.  Abstract.  Introduce yourself properly. – Focus on the relevant facts. – Why do you fit? Your skill sets. – List of the patches (if any) you have submitted. 28
  • 29.
    Propose..  Project Goals – Proves you got them correct.  Deliverables – Code, Documentation, test cases, ..  Description – Benefits to the organization and other projects. – Can also be given along with the timeline. 29
  • 30.
    Propose..  Timeline – Finer details. – Break upto periods of 3 - 4 days. – Testing takes time. – Don't be over-optimistic. – Some organizations require considerable work hrs/week (40 ?).  Links – References and additional details. 30
  • 31.
    Application Template  Name:  Email:  Project Title:  Synopsis: – A short description of your project.  Benefits to the organization/project – and/or other project(s):  Deliverables: – Quantifiable results. 31
  • 32.
    • e.g.: “Atthe end of my project, AbiWord’s piece table will be 50 times faster.”  Project Details: – A more detailed description of your project:  Project Schedule: – How long will the project take? – When can you begin work? – Do you know of any planned absences or other major conflicts 32 • summer classes, vacations, etc.
  • 33.
    Bio: – Who are you? – What makes you the best person to work on this project?  Additional Requirements: – Patches / Specific requirements for the project.  Further Related Information: 33
  • 34.
    After the submission..  Don't go invisible! – Evaluation is still going on.. ;)  You may be asked to provide – additional information. • Patches. • Screenshots.  Start coding on your project. – only if you didn't apply for multiple projects.  Be motivated. 34
  • 35.
    Got Selected? yay/  Don't Panic.  You have one more month – just to mingle with the developers and the code base.  Mentors are there to help you!  Keep touch with the developers.  Users. 35
  • 36.
    Community Bonding Period  Learn the project – Go through the code base – Documentation. • Coding styles and coding guide lines.  Communicate often  Understand the project idea more. – Come up with a design. – Start with simple hacks. 36
  • 37.
    Coding.. Easiest task of all.. ;)  Commit often, if given committership. – Send daily patches otherwise. – Meaningful Commit messages.  Get feedback from the mentor(s).  Keep the community updated – Daily (?).  Plan for the mid and final evaluations early, with the mentor. 37
  • 38.
    Conclude/Continue..  Pencils Down Date  Firm Pencils Down Date – GSoC Coding ends here.  Get a tarball of all the diff files to submit to Google.  Focus on becoming a committer – if not already given committership.  Keep contributing. 38
  • 39.
    What else?  More FOSS?  Annual?  Stipend?  Student?  Country/Location? 39
  • 40.
    More Open Source programs/contests..  OpenOffice.org Internship  Ubiquiti RouterStation UI/Firmware  Wesnoth Summer Art Scholarship  Umit Summer of Code (USoC)  Season of KDE (SoK)  The OpenMRS Internship Program (OIP)  Joomla! Student Outreach Program  Ruby Summer of Code  Fedora Summer Coding – http://fedoraproject.org/wiki/Summer_Coding_2010 40 – https://fedoraproject.org/wiki/Summer_coding_ideas_for_2011
  • 41.
    Some links.. ;)  GSoC-2011 FAQ  GSoC-2011 Accepted Organizations  GSoC Student Guide  Google Open Source Blog on GSoC  Proposal [Pradeeban] - GSoC 2009 AbiWord  Proposal [Pradeeban] - GSoC 2010 OMII-UK/OGSA-DAI 41
  • 42.
    Are you ready?  Have a look at the successful projects. – Proposals available online - Wikis, blogs, ..  Apache Software Foundation – More slots and more choices. • Tomcat, Derby, Axis2, and more ..  Join the projects' mailing lists and IRC. – AbiWord • abiword-dev@abisource.com • abiword-user@abisource.com 42 • #abiword at irc.gnome.org
  • 43.
    For more Information..  Join your local GSoC Google Group – For e.g., Group for Sri Lankan students: http://groups.google.com/group/gsoc-srilanka  Local GSoC IRC channel – For e.g., Sri Lanka - #gsoc-lk at irc.freenode.net.  Drop me a line. ;) – kk.pradeeban@gmail.com | kkpradeeban.blogspot.com 43 Logos used in the presentation are owned by the respective open source organizations or the individuals, and used for the particular non - commercial informative purpose only.
  • 44.
  • 45.
    Wish you allthe best.. 45