Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

Aaron Patterson @tenderlove

Slide 3

Slide 3 text

About Me

Slide 4

Slide 4 text

WWFMD

Slide 5

Slide 5 text

Amateur Charcutier

Slide 6

Slide 6 text

ruby-core rails-core

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

Job Title: Corey Haines

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

Gorbachev Puff-Puff Thunderhorse

Slide 11

Slide 11 text

@gorbypuff

Slide 12

Slide 12 text

AT&T, AT&T logo and all AT&T related marks are trademarks of AT&T Intellectual Property and/or AT&T affiliated companies.

Slide 13

Slide 13 text

Giving Back A practical guide to OSS contributions

Slide 14

Slide 14 text

Your OSS Career BEGINNER ADVANCED OMG!

Slide 15

Slide 15 text

OSS Skills Project Knowledge Help Yourself Help Others

Slide 16

Slide 16 text

Advantageous

Slide 17

Slide 17 text

Practice.

Slide 18

Slide 18 text

Your Job.

Slide 19

Slide 19 text

It feels good.

Slide 20

Slide 20 text

Beginner

Slide 21

Slide 21 text

Where do I start?

Slide 22

Slide 22 text

Choose a project.

Slide 23

Slide 23 text

Candidates ❤ Something that’s fun ❤ Something for work ❤ Something that’s painful

Slide 24

Slide 24 text

Something you use.

Slide 25

Slide 25 text

Contributing starts with using.

Slide 26

Slide 26 text

Ask Questions. (publicly)

Slide 27

Slide 27 text

Asking ❤ When I do X ❤ It does Y ❤ But I expected Z

Slide 28

Slide 28 text

Keep it short.

Slide 29

Slide 29 text

Keep it simple.

Slide 30

Slide 30 text

Respond with the answer.

Slide 31

Slide 31 text

Say “thank you”

Slide 32

Slide 32 text

Troubleshooting ❤ Appropriate forum? ❤ Has enough time passed? ❤ Wide enough audience?

Slide 33

Slide 33 text

Ask Questions. (in person)

Slide 34

Slide 34 text

Report Bugs. (publicly)

Slide 35

Slide 35 text

Reporting ❤ When I do X ❤ It does Y ❤ But I expected Z

Slide 36

Slide 36 text

Read the patch.

Slide 37

Slide 37 text

Answer Questions.

Slide 38

Slide 38 text

Advanced Bug Reporting.

Slide 39

Slide 39 text

Try to diagnose the problem.

Slide 40

Slide 40 text

Incomplete patches are OK

Slide 41

Slide 41 text

Help Yourself

Slide 42

Slide 42 text

Advanced

Slide 43

Slide 43 text

Identification

Slide 44

Slide 44 text

No content

Slide 45

Slide 45 text

Rakefile

Slide 46

Slide 46 text

Rakefile Jeweler::Tasks Hoe.spec Jeweler Hoe

Slide 47

Slide 47 text

Gemfile name.gemspec

Slide 48

Slide 48 text

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

Slide 49

Slide 49 text

Bundler $ bundle

Slide 50

Slide 50 text

Hoe $ rake newb

Slide 51

Slide 51 text

Jeweler $ gem install a b c

Slide 52

Slide 52 text

Tests

Slide 53

Slide 53 text

test/* (probably minitest or test/unit)

Slide 54

Slide 54 text

rake test

Slide 55

Slide 55 text

spec/* (probably rspec)

Slide 56

Slide 56 text

rake spec

Slide 57

Slide 57 text

C / C++

Slide 58

Slide 58 text

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

Slide 59

Slide 59 text

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

Slide 60

Slide 60 text

Dependencies C / C++

Slide 61

Slide 61 text

LOL! C / C++

Slide 62

Slide 62 text

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!

Slide 63

Slide 63 text

Tests C / C++

Slide 64

Slide 64 text

LOL! C / C++

Slide 65

Slide 65 text

Read the README C / C++

Slide 66

Slide 66 text

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

Slide 67

Slide 67 text

Providing Patches

Slide 68

Slide 68 text

Keep it short.

Slide 69

Slide 69 text

Keep it simple.

Slide 70

Slide 70 text

Keep it relevant.

Slide 71

Slide 71 text

Provide tests.

Slide 72

Slide 72 text

Try to fit in.

Slide 73

Slide 73 text

Troubleshooting

Slide 74

Slide 74 text

It’s OKAY to be wrong.

Slide 75

Slide 75 text

It’s about learning.

Slide 76

Slide 76 text

It’s about building a relationship.

Slide 77

Slide 77 text

Take more responsibility.

Slide 78

Slide 78 text

Project Knowledge

Slide 79

Slide 79 text

OMG! (ZOMG)

Slide 80

Slide 80 text

Joining the team.

Slide 81

Slide 81 text

Abandoned project.

Slide 82

Slide 82 text

Specific needs.

Slide 83

Slide 83 text

War of attrition. (poor @bitsweat)

Slide 84

Slide 84 text

What next?

Slide 85

Slide 85 text

Stay the course.

Slide 86

Slide 86 text

Limit your time.

Slide 87

Slide 87 text

Remember your past.

Slide 88

Slide 88 text

Start training your replacement.

Slide 89

Slide 89 text

Help Others

Slide 90

Slide 90 text

Things to remember.

Slide 91

Slide 91 text

I am not my code.

Slide 92

Slide 92 text

Try to relate.

Slide 93

Slide 93 text

MINASWAN

Slide 94

Slide 94 text

We are nice because we are nice

Slide 95

Slide 95 text

Ask a question.

Slide 96

Slide 96 text

Send a patch.

Slide 97

Slide 97 text

Take over my job.

Slide 98

Slide 98 text

Thanks!