Opw2010 Gsoc

  • 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