Are you a student? Do you think working for Google is a great way to spend your summer? Want to get paid to code in popular open source projects? Google's Summer of Code (GSoC) program could be for you.
What is Google Summer ofCode?A way to contribute to Free Software:● Free Software Projects apply to participate● Free Software Projects provide mentors● GSOC Students are hired by the Projects● Code for the Summer
What types of projects?Desktop Operating SystemsWeb ApplicationsContent Management SystemsFoundations (e.g. Connexions, SunlightFoundation)
How many participants? last year 175 organizations participated (some organizations will hire multiple students) 1115 Students* participated. *1 Student from the Caribbean Participated
Why do GSOC?ExperienceLearningPerspectiveStipend
Not all projects are EqualTIPS:● Look for Newbie Friendly projects● If it requires a skill that less persons know (and you know it) It might be a good idea● If you have been contributing to a project already see if they will be participating● Find ways to contribute to open source projects
GSOC 2012 TimelineFeb 7 - Mar 9 - Organizations ApplyMar 16 - Accepted OrganizationsAnnouncedMar 17 - Would be students begindiscussions with OrganizationsMar 26 - Apr 6 - Students submitapplicationsApril 20 - Mentors and Students MatchedApril 25 - Students AnnouncedMay 21 - Begin Code!July 13 - Midterm EvaluationAug 20 - Pencils Down view GSOC2012 calendar
What did I do?I worked on the Rhaptos ProjectRhaptos is the project that powers cnx.org ○ a place to view and share user contributed educational material. ○ collaborative edu development ■ modules ■ courses ■ books
What did I do?I worked on the Rhaptos Project Psychic Currency: Tricking out Author Profiles, Content Widget for showing off content, Enhanced Impact Metrics
What did I do?I worked on the Rhaptos ProjectAuthor Profile Widget(see screencast: http://screencast.com/t/ZdTOOxNJqGqG)
What I did ... contdHere are some of my notes: https://trac.rhaptos.org/trac/rhaptos/wiki/GoogleSummerOfCodeAuthorProfilesSpent at least 2 weeks just figuring things outSpent another 2 weeks barking up the wrongtree
What I learntXSLTJSONPEXTJSOther technologies that I used:JQueryJSONPythonPlone
CAUTION:THIS IS A FU LL JOB● PLAN ACC ORDINGLY
Checklist● Prerequisites● Skill and Interest Inventory● Keep a Blog● Open Source Contribution● Identify a project (or two)● Speak to project persons early● Apply early
PrerequisitesWhat you need to sign upYou need to be a student (BSc., Masters, PHd(not sure about diploma))18 years or olderYou dont need to be a computer sciencestudentread all the prerequisites at the GSOC site
BlogKeeping a blog helps to let people know whatyoure interested in.
Open Source ContributionParticipation in the Open Source Community● Bug reports● Documentation● Sample Code (from anywhere, if its useful open source it, share a snippet on your blog)● Code Contributions ○ bug fixes ○ enhancements
Open Source Contribution:How to get involved withPlone1. Join the Plone.org website (get a user account)2. Chat in IRC (http://plone.org/support/chat)3. Use Plone, Learn Plone (try it out, ask questions)4. Submit Bugs via http://dev.plone.org5. Write some code (join Plone Tune-up Days)*6. Read Planet Plone and the Mailing lists.
Identify a Project (or two)● Browse the projects (filter based on your skill and interest)● Select a few and begin to discuss with persons from the project● If you have an idea, also speak to persons in the project● You will need to write a separate application for each project that captures your interest.
Identify a Project (or two):GSOC 2012 Plone IdeasYou can get lots more by chatting in IRC● Collective Theme manager● Improve Zopeskel/Dexterity (code generation and development)● Roundtrip style development for DexterityPersonal Ideas:● A Drag and Drop form builder for YAFOWIL● Placeholder Theming Systemhttp://www.slideshare.net/davisagli/dexterity-in-the-wild-10113312 (end ofpresentation has a list of ways Plone could be improved)
Speak to Project PersonsEarly● If possible, speak to your potential mentor(s)● Speak to users of the software about your idea
Apply Earlyeach project may have variations to theapplication proces... KEEP IN TOUCH withthem● Start filling out the application online (even before you have all your info, the form stays open until the deadline)● Read and re-read the projects specific requirements● Take time to prepare for interviews