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
Speeding up Instance Variables in Ruby 3.3
tenderlove
2
320
[Feature #20425] Speeding up delegate methods
tenderlove
3
200
RailsConf 2023
tenderlove
29
940
Don't @ Me! Faster Instance Variables with Object Shapes
tenderlove
1
400
RailsConf 2022 Keynote
tenderlove
2
500
Some Assembly Required
tenderlove
1
510
HexDevs 2021
tenderlove
1
380
Compacting GC for MRI
tenderlove
60
4.4k
But At What Cost?
tenderlove
9
14k
Other Decks in Technology
See All in Technology
Work as an App Engineer
lycorp_recruit_jp
0
370
多様なメトリックとシステムの健全性維持
masaaki_k
0
120
TSKaigi 2024 の登壇から広がったコミュニティ活動について
tsukuha
0
170
いまからでも遅くないコンテナ座学
nomu
0
130
TypeScript開発にモジュラーモノリスを持ち込む
sansantech
PRO
2
690
Google Cloud で始める Cloud Run 〜AWSとの比較と実例デモで解説〜
risatube
PRO
0
120
[Oracle TechNight#85] Oracle Autonomous Databaseを使ったAI活用入門
oracle4engineer
PRO
1
140
成果を出しながら成長する、アウトプット駆動のキャッチアップ術 / Output-driven catch-up techniques to grow while producing results
aiandrox
0
390
ゼロから創る横断SREチーム 挑戦と進化の軌跡
rvirus0817
3
320
3年でバックエンドエンジニアが5倍に増えても破綻しなかったアーキテクチャ そして、これから / Software architecture that scales even with a 5x increase in backend engineers in 3 years
euglena1215
9
3.7k
Opcodeを読んでいたら何故かphp-srcを読んでいた話
murashotaro
0
320
【re:Invent 2024 アプデ】 Prompt Routing の紹介
champ
0
160
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
44
13k
Designing for humans not robots
tammielis
250
25k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Reflections from 52 weeks, 52 projects
jeffersonlam
347
20k
A Tale of Four Properties
chriscoyier
157
23k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.9k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Code Review Best Practice
trishagee
65
17k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Fireside Chat
paigeccino
34
3.1k
Faster Mobile Websites
deanohume
305
30k
Making the Leap to Tech Lead
cromwellryan
133
9k
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!