Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Steel City 2012

Steel City 2012

F29327647a9cff5c69618bae420792ea?s=128

Aaron Patterson

March 03, 2015
Tweet

Transcript

  1. None
  2. Aaron Patterson @tenderlove

  3. About Me

  4. WWFMD

  5. Amateur Charcutier

  6. ruby-core rails-core

  7. None
  8. Job Title: Corey Haines

  9. None
  10. Gorbachev Puff-Puff Thunderhorse

  11. @gorbypuff

  12. AT&T, AT&T logo and all AT&T related marks are trademarks

    of AT&T Intellectual Property and/or AT&T affiliated companies.
  13. Giving Back A practical guide to OSS contributions

  14. Your OSS Career BEGINNER ADVANCED OMG!

  15. OSS Skills Project Knowledge Help Yourself Help Others

  16. Advantageous

  17. Practice.

  18. Your Job.

  19. It feels good.

  20. Beginner

  21. Where do I start?

  22. Choose a project.

  23. Candidates ❤ Something that’s fun ❤ Something for work ❤

    Something that’s painful
  24. Something you use.

  25. Contributing starts with using.

  26. Ask Questions. (publicly)

  27. Asking ❤ When I do X ❤ It does Y

    ❤ But I expected Z
  28. Keep it short.

  29. Keep it simple.

  30. Respond with the answer.

  31. Say “thank you”

  32. Troubleshooting ❤ Appropriate forum? ❤ Has enough time passed? ❤

    Wide enough audience?
  33. Ask Questions. (in person)

  34. Report Bugs. (publicly)

  35. Reporting ❤ When I do X ❤ It does Y

    ❤ But I expected Z
  36. Read the patch.

  37. Answer Questions.

  38. Advanced Bug Reporting.

  39. Try to diagnose the problem.

  40. Incomplete patches are OK

  41. Help Yourself

  42. Advanced

  43. Identification

  44. None
  45. Rakefile

  46. Rakefile Jeweler::Tasks Hoe.spec Jeweler Hoe

  47. Gemfile name.gemspec

  48. Dependencies ❤ Rakefile (extra_dev_deps) ❤ gemspec (extra_dev_deps) ❤ Gemfile

  49. Bundler $ bundle

  50. Hoe $ rake newb

  51. Jeweler $ gem install a b c

  52. Tests

  53. test/* (probably minitest or test/unit)

  54. rake test

  55. spec/* (probably rspec)

  56. rake spec

  57. C / C++

  58. $ ls . autoconf configure Makefile src/somefile.c somefile.cpp $ C

    / C++
  59. $ autoconf $ ./configure $ make C / C++ Building

  60. Dependencies C / C++

  61. LOL! C / C++

  62. C / C++ 1.Run configure 2.Did it work? Goto 4

    3.Install stuff. Goto 1 4.Run make 5.Did it work? Goto 7 6.Install stuff. Goto 4. 7.Have a cookie!
  63. Tests C / C++

  64. LOL! C / C++

  65. Read the README C / C++

  66. C / C++ $ ls test # tests are in

    here $ make test # language features $ make test-all # lang + stdlib $ make test-all TESTS=test/test_foo.rb $ make rubyspec # ruby spec MRI
  67. Providing Patches

  68. Keep it short.

  69. Keep it simple.

  70. Keep it relevant.

  71. Provide tests.

  72. Try to fit in.

  73. Troubleshooting

  74. It’s OKAY to be wrong.

  75. It’s about learning.

  76. It’s about building a relationship.

  77. Take more responsibility.

  78. Project Knowledge

  79. OMG! (ZOMG)

  80. Joining the team.

  81. Abandoned project.

  82. Specific needs.

  83. War of attrition. (poor @bitsweat)

  84. What next?

  85. Stay the course.

  86. Limit your time.

  87. Remember your past.

  88. Start training your replacement.

  89. Help Others

  90. Things to remember.

  91. I am not my code.

  92. Try to relate.

  93. MINASWAN

  94. We are nice because we are nice

  95. Ask a question.

  96. Send a patch.

  97. Take over my job.

  98. Thanks!