If you can't read please download the document
Upload
dhoss
View
566
Download
0
Embed Size (px)
Citation preview
Blue with Bottom Title
How To Debianize a CPAN DistBy Dylan Hardison
JUST KIDDING.
Google: A Summer of Code
Duder. (Intro)
What?
Google Summer of CodeWhat is it?A grant that Google gives out every summer to selected students for working on an open source project they have chosen (from a list that are Google approved)
Who?
Who is it for?college students around the world that are qualified. People ranging from sophomores in college to graduate students
qualifications include official student transcripts and enrollment documents
Where?
Where does this take place?all over the world. which is part of what makes this such a special program. Students in Norway had the same kinds of interests that students in California (and Colorado) had.
When?
When do I need to fulfill participation requirements by?The final drafts of the student proposals have to be submitted in early April, then the decision is announced mid April, and the project starts at the beginning of May. Interested students should get in touch with the organization of their choice as early as possible and flesh out ideas for the upcoming summer of code.
Why?
Why would I want to do this?A tremendous learning experience. You are thrown into the middle of quite possibly enterprise level codebases, and are literally taught to navigate your way around the fundamental tools and methods that professional programmers use on a day to day basis. Not only are you obtaining new skills, but you are making yourself known in the community, networking with potential employers and if your college accepts such, completing credits for field study.
How?
How To apply?
To get accepted?
Okay I'm accepted, how do I shake this terror I'm experiencing?
Know you'll have support (you're not going to get thrown under the bus wheels. Even if you do, your mentor will dive in after you.
You're not alone!
The Book
So...I got this little (green|blue|red) book...What in God's name do I do with this thing?
Mine's green. What color did you get?
I filled mine up with pictures of stick figure gladiators battling to the death!
The First Checkout
SVN a hate/hate affairInitial checkout
Preliminary glancing over the code
Realizing you have no clue what 90% of it does or is for
Sobbing quietly while you try to rock yourself to sleep
You're out of your element
You might be entering a world of pain.
Fear not!
Your Mentor, and community, will have your back and support you.
Development
Starting to Develop on the codebase (sorta)Yak shaving.
Testing to make sure your yak shaving didn't break anything
More yak shaving.
Testing the new yak shaving to make sure it does what the old yak shaving code did and implements the newer features.
Testing again, just because we're all OCD
Tests Pass!
Wait, you mean my code actually works?Alright! Way to go Donny!
Taking a moment to feel good about yourself
Phase 2 (of a million, now with more testing!)
Design Chats
Okay...so what's next?So wait, you want the doodad to go and talk to the thingy? Right?
Getting it right
Prototypes
Iterative Development
RFCSome feedback, mostly Wow, we got no feedback.
Design Chats (Cont'd)
Committing to one directionFinalizing this portion's API
Reviews
...TESTS!
An Epiphany
Wow! I've learned a lot already!
Midterms
Midpoint mentor evaluations/checkinsHow do you feel about the code?
How much progress do you feel you've made?
Are you at, below, or above where you expected to be progress-wise at this point?
How much do you feel you've gained, and how have I been as a mentor?
Chatting up the list about their progress
And back at square one
New Phase!New feature set to deal with
More tests to write! Wahoo! I sure love tests!
Test failures, obscure errors, like last phase but much hairier and meaner.
Current project cycle:write some code, test, test, test. write some code, test, test, test
Oh, and occasionally fix stuff that's broken for others.
Patchwork, and Merging
When the hell did I switch the -p switch to -l, and WHY?Tracking down obscure but incredibly annoying bugs
Tying up loose ends in anticipation for merging into the main codebase
MOAR TESTS!!!!!111!!!!111oneoneoneelevenGoogle Summer of Tests?
Homestretch
Only a few weeks leftYes. Of course. You have to write more tests.
Really putting your nose to the grindstone Caffeine levels dangerously low
Am I going to pass?
Oh no! X, y and z aren't going to be fully implemented by the deadline!
Triage
We have days left.Finalizing test coverage
Deciding what to wrap up and include for the merge
Putting together the Google Code sample tarball
Hoping, praying all this work and testing has been enough to pass
Final Evaluations
Mentor EvaluationsMentor does an evaluation on you after having a conference with you, and decides how much work you've done, and whether you have met the passing requirements (typically taken straight from the project spec in the proposal you wrote)
Final Evaluations (cont'd)
Student EvaluationsStudents evaluate their mentor based on how much the mentor helped them out, their availability, their expertise and overall how much they learned from their mentor throughout the course of the grant.
Code Submission
Submitting your code to GoogleStudents create a tarball of the code they produced and send it to Google. This is mostly for tax and lawyer purposes, as they (sadly) don't have hundreds of code examining monkies to delve into and evaluate the quality of the students' code.
Final Grades
Did I pass?You can usually ask your mentor how they evaluated you. Most mentors will give you high marks/pass you if you have given your all and produced a good solid, tested, and well thought out code.
Again, the mentors are there for you. They won't throw you under the bus unless you deserve it.
Conclusion
What does this all amount to?Massive knowledge increase
Professional Level Experience/Field Work
Networking!
$4500 cold, hard cash straight from the Googleplex
The feeling, and assurance that you have helped out an open source software community in the best way possible, and learned invaluable concepts, met the best of the best, and really have a footing on career prospects for the future.
Conclusion (Cont'd)
Looking backYou've learned a lot. You may not have met 100% of your goals, but you've learned a lot
You've given your community a great base of code to work off of in the future
You're used to being yelled at by now, so that's a plus.
Good Software is Never Complete
mtfnpy!
Fin