Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Steel City 2012
Search
Aaron Patterson
March 03, 2015
Technology
3
110
Steel City 2012
Aaron Patterson
March 03, 2015
Tweet
Share
More Decks by Aaron Patterson
See All by Aaron Patterson
[Feature #20425] Speeding up delegate methods
tenderlove
1
35
RailsConf 2023
tenderlove
9
590
Don't @ Me! Faster Instance Variables with Object Shapes
tenderlove
0
200
RailsConf 2022 Keynote
tenderlove
1
350
Some Assembly Required
tenderlove
0
400
HexDevs 2021
tenderlove
0
300
Compacting GC for MRI
tenderlove
59
4.3k
But At What Cost?
tenderlove
8
14k
Compacting GC in MRI v2
tenderlove
1
610
Other Decks in Technology
See All in Technology
試作とデモンストレーション / Prototyping and Demonstrations
ks91
PRO
0
170
OpenID Foundation updates
fujie
0
220
パフォーマンス最適化のベストプラクティス
databricksjapan
0
210
汎用ポリシー言語Rego + OPAと認可・検証事例の紹介 / Introduction Rego & OPA for authorization and validation
mizutani
1
170
Domain-driven Design: A Complete Example
ewolff
2
260
サービス開発におけるVue3とTypeScriptの親和性について
tsukuha
10
1.8k
Databricksの生成AI戦略
taka_aki
1
380
My road to OSEE Part1
yunolay
0
120
AWS アーキテクチャ作図入門/aws-architecture-diagram-101
ma2shita
16
6.7k
LINEヤフーのウェブアクセシビリティ
lycorptech_jp
PRO
3
200
日本が誇るイタリアのダンスミュージック!? ユーロビートって何??
minorun365
PRO
2
230
Google Cloud Next '24 Recap in ZOZO AIにより変わる開発 運用/Development and operation changed by AI
gachimuchiengineer
0
210
Featured
See All Featured
Bash Introduction
62gerente
605
210k
Typedesign – Prime Four
hannesfritz
36
2.1k
The Invisible Customer
myddelton
114
12k
What’s in a name? Adding method to the madness
productmarketing
PRO
17
2.7k
Thoughts on Productivity
jonyablonski
60
3.9k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
23
1.7k
4 Signs Your Business is Dying
shpigford
176
21k
Side Projects
sachag
451
41k
Design by the Numbers
sachag
274
18k
Designing Experiences People Love
moore
136
23k
Mobile First: as difficult as doing things right
swwweet
217
8.6k
Git: the NoSQL Database
bkeepers
PRO
423
63k
Transcript
None
Aaron Patterson @tenderlove
About Me
WWFMD
Amateur Charcutier
ruby-core rails-core
None
Job Title: Corey Haines
None
Gorbachev Puff-Puff Thunderhorse
@gorbypuff
AT&T, AT&T logo and all AT&T related marks are trademarks
of AT&T Intellectual Property and/or AT&T affiliated companies.
Giving Back A practical guide to OSS contributions
Your OSS Career BEGINNER ADVANCED OMG!
OSS Skills Project Knowledge Help Yourself Help Others
Advantageous
Practice.
Your Job.
It feels good.
Beginner
Where do I start?
Choose a project.
Candidates ❤ Something that’s fun ❤ Something for work ❤
Something that’s painful
Something you use.
Contributing starts with using.
Ask Questions. (publicly)
Asking ❤ When I do X ❤ It does Y
❤ But I expected Z
Keep it short.
Keep it simple.
Respond with the answer.
Say “thank you”
Troubleshooting ❤ Appropriate forum? ❤ Has enough time passed? ❤
Wide enough audience?
Ask Questions. (in person)
Report Bugs. (publicly)
Reporting ❤ When I do X ❤ It does Y
❤ But I expected Z
Read the patch.
Answer Questions.
Advanced Bug Reporting.
Try to diagnose the problem.
Incomplete patches are OK
Help Yourself
Advanced
Identification
None
Rakefile
Rakefile Jeweler::Tasks Hoe.spec Jeweler Hoe
Gemfile name.gemspec
Dependencies ❤ Rakefile (extra_dev_deps) ❤ gemspec (extra_dev_deps) ❤ Gemfile
Bundler $ bundle
Hoe $ rake newb
Jeweler $ gem install a b c
Tests
test/* (probably minitest or test/unit)
rake test
spec/* (probably rspec)
rake spec
C / C++
$ ls . autoconf configure Makefile src/somefile.c somefile.cpp $ C
/ C++
$ autoconf $ ./configure $ make C / C++ Building
Dependencies C / C++
LOL! C / C++
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!
Tests C / C++
LOL! C / C++
Read the README C / C++
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
Providing Patches
Keep it short.
Keep it simple.
Keep it relevant.
Provide tests.
Try to fit in.
Troubleshooting
It’s OKAY to be wrong.
It’s about learning.
It’s about building a relationship.
Take more responsibility.
Project Knowledge
OMG! (ZOMG)
Joining the team.
Abandoned project.
Specific needs.
War of attrition. (poor @bitsweat)
What next?
Stay the course.
Limit your time.
Remember your past.
Start training your replacement.
Help Others
Things to remember.
I am not my code.
Try to relate.
MINASWAN
We are nice because we are nice
Ask a question.
Send a patch.
Take over my job.
Thanks!