Opw2010 Gsoc

  • 421 views
Uploaded on

My talk about Google Summer of Code

My talk about Google Summer of Code

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
421
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
4
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. How To Debianize a CPAN Dist By Dylan Hardison
  • 2. JUST KIDDING.
  • 3. Google: A Summer of Code
  • 4. Duder. (Intro)
  • 5. What?
    • Google Summer of Code
      • What 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)
  • 6. Who?
    • Who is it for?
      • college students around the world that are qualified. People ranging from sophomores in college to graduate students
      • 7. qualifications include official student transcripts and enrollment documents
  • 8. 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.
  • 9. 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.
  • 10. 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.
  • 11. How?
    • How …
      • To apply?
      • 12. To get accepted?
      • 13. Okay I'm accepted, how do I shake this terror I'm experiencing?
      • 14. 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.
      • 15. You're not alone!
  • 16. The Book
    • “So...I got this little (green|blue|red) book...
      • What in God's name do I do with this thing?
      • 17. Mine's green. What color did you get?
      • 18. I filled mine up with pictures of stick figure gladiators battling to the death!
  • 19. The First Checkout
    • SVN – a hate/hate affair
      • Initial checkout
      • 20. Preliminary glancing over the code
      • 21. Realizing you have no clue what 90% of it does or is for
      • 22. Sobbing quietly while you try to rock yourself to sleep
  • 23. You're out of your element
  • 24. You might be entering a world of pain.
  • 25. Fear not! Your Mentor, and community, will have your back and support you.
  • 26. Development
    • Starting to Develop on the codebase (sorta)
      • Yak shaving.
      • 27. Testing to make sure your yak shaving didn't break anything
      • 28. More yak shaving.
      • 29. Testing the new yak shaving to make sure it does what the old yak shaving code did and implements the newer features.
      • 30. Testing again, just because we're all OCD
  • 31. Tests Pass!
    • Wait, you mean my code actually works?
      • Alright! Way to go Donny!
      • 32. Taking a moment to feel good about yourself
      • 33. Phase 2 (of a million, now with more testing!)
  • 34. Design Chats
    • Okay...so what's next?
      • “ So wait, you want the doodad to go and talk to the thingy? Right?”
      • 35. Getting it right
      • 36. Prototypes
      • 37. Iterative Development
      • 38. RFC
        • Some feedback, mostly “Wow, we got no feedback.”
  • 39. Design Chats (Cont'd)
    • Committing to one direction
      • Finalizing this portion's API
      • 40. Reviews
      • 41. ...TESTS!
  • 42. An Epiphany
    • Wow! I've learned a lot already!
  • 43. Midterms
    • Midpoint mentor evaluations/checkins
      • “How do you feel about the code?”
      • 44. “How much progress do you feel you've made?”
      • 45. “Are you at, below, or above where you expected to be progress-wise at this point?”
      • 46. “How much do you feel you've gained, and how have I been as a mentor?”
      • 47. Chatting up the list about their progress
  • 48. And back at square one
    • New Phase!
      • New feature set to deal with
      • 49. More tests to write! Wahoo! I sure love tests!
      • 50. Test failures, obscure errors, like last phase but much hairier and meaner.
      • 51. Current project cycle:
        • write some code, test, test, test. write some code, test, test, test
        • 52. Oh, and occasionally fix stuff that's broken for others.
  • 53. Patchwork, and Merging
    • When the hell did I switch the -p switch to -l, and WHY?
      • Tracking down obscure but incredibly annoying bugs
      • 54. Tying up loose ends in anticipation for merging into the main codebase
      • 55. MOAR TESTS!!!!!111!!!!111oneoneoneeleven
        • Google Summer of Tests?
  • 56. Homestretch
    • Only a few weeks left
      • Yes. Of course. You have to write more tests.
      • 57. Really putting your nose to the grindstone
        • Caffeine levels dangerously low
      • Am I going to pass?
      • 58. Oh no! X, y and z aren't going to be fully implemented by the deadline!
  • 59. Triage
    • We have days left.
      • Finalizing test coverage
      • 60. Deciding what to wrap up and include for the merge
      • 61. Putting together the Google Code sample tarball
      • 62. Hoping, praying all this work and testing has been enough to pass
  • 63. Final Evaluations
    • Mentor Evaluations
      • Mentor 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)
  • 64. Final Evaluations (cont'd)
    • Student Evaluations
      • Students 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.
  • 65. Code Submission
    • Submitting your code to Google
      • Students 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.
  • 66. 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.
      • 67. Again, the mentors are there for you. They won't throw you under the bus unless you deserve it.
  • 68. Conclusion
    • What does this all amount to?
      • Massive knowledge increase
      • 69. Professional Level Experience/Field Work
      • 70. Networking!
      • 71. $4500 cold, hard cash straight from the Googleplex
      • 72. 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.
  • 73. Conclusion (Cont'd)
    • Looking back
      • You've learned a lot. You may not have met 100% of your goals, but you've learned a lot
      • 74. You've given your community a great base of code to work off of in the future
      • 75. You're used to being yelled at by now, so that's a plus.
      • 76. Good Software is Never Complete
      • 77. mtfnpy!
  • 78. Fin