Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
lestrrat
PDF, PPTX
69,448 views
OSSの敵になるのもいいじゃない
On being the enemy of open source
Technology
◦
Read more
19
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 53
2
/ 53
3
/ 53
4
/ 53
5
/ 53
6
/ 53
7
/ 53
8
/ 53
9
/ 53
10
/ 53
11
/ 53
12
/ 53
13
/ 53
14
/ 53
15
/ 53
16
/ 53
17
/ 53
18
/ 53
19
/ 53
20
/ 53
21
/ 53
22
/ 53
23
/ 53
24
/ 53
25
/ 53
26
/ 53
27
/ 53
28
/ 53
29
/ 53
30
/ 53
31
/ 53
32
/ 53
33
/ 53
34
/ 53
35
/ 53
36
/ 53
37
/ 53
38
/ 53
39
/ 53
40
/ 53
41
/ 53
42
/ 53
43
/ 53
44
/ 53
45
/ 53
46
/ 53
47
/ 53
48
/ 53
49
/ 53
50
/ 53
51
/ 53
52
/ 53
53
/ 53
More Related Content
PDF
いまさら聞けないselectあれこれ
by
lestrrat
PPTX
Git svnではじめる忍者のごとく潜むgit
by
Kazuki Sato
ODP
LKFT作ってみた
by
sirrow
PDF
scheme処理系の実装
by
bobuhiro11
PDF
Gitを使ったRoute53の管理
by
Sugawara Genki
PDF
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
by
洋史 東平
PDF
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
by
Kenichiro MATOHARA
PDF
mrubyのfiberを試してみた
by
Kindai University
いまさら聞けないselectあれこれ
by
lestrrat
Git svnではじめる忍者のごとく潜むgit
by
Kazuki Sato
LKFT作ってみた
by
sirrow
scheme処理系の実装
by
bobuhiro11
Gitを使ったRoute53の管理
by
Sugawara Genki
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
by
洋史 東平
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
by
Kenichiro MATOHARA
mrubyのfiberを試してみた
by
Kindai University
What's hot
PPTX
DateTimeX::Moment
by
karupanerura
PDF
Rx入門
by
Takaaki Suzuki
PDF
マニアックなRuby 2.7新機能紹介
by
mametter
PDF
Githubを使ったタスク管理
by
kugi
PPTX
当番をランダムに割り当ててみる ~ on-dutyTable.py ~
by
genroku
PPTX
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
by
genroku
PPTX
TIme::Moment+Time::Strptime=
by
karupanerura
PDF
Nbug201503
by
Kenji Aoyama
PPTX
RubyでGitHubをもうちょっと便利にする
by
nomlab
PDF
Rustのタスクモデルについて
by
zigen
PPTX
RubyでGitHubをちょっと便利にする
by
nomlab
PDF
最近のRust関連の活動
by
Hattori Hideo
PDF
Ruby 3.0.0 コネタ集
by
Kazuhiro Nishiyama
PDF
Omochi-Renderer2@レイトレ合宿3!!! - お餅
by
omochi64
PDF
Rubyで実はwritev(2) が使われているはなし
by
Masaki Matsushita
PDF
#readghc なう
by
Kiwamu Okabe
PDF
Shib: WebUI tool provides crossover of Hive and MPP
by
SATOSHI TAGOMORI
PDF
Ebisu.rb#15LT「turnipいいよturnip」
by
Tsutomu Chikuba
PPTX
100311 Dev Fest2010
by
Kensaku Komatsu
PDF
Rx Showcase
by
Takaaki Suzuki
DateTimeX::Moment
by
karupanerura
Rx入門
by
Takaaki Suzuki
マニアックなRuby 2.7新機能紹介
by
mametter
Githubを使ったタスク管理
by
kugi
当番をランダムに割り当ててみる ~ on-dutyTable.py ~
by
genroku
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
by
genroku
TIme::Moment+Time::Strptime=
by
karupanerura
Nbug201503
by
Kenji Aoyama
RubyでGitHubをもうちょっと便利にする
by
nomlab
Rustのタスクモデルについて
by
zigen
RubyでGitHubをちょっと便利にする
by
nomlab
最近のRust関連の活動
by
Hattori Hideo
Ruby 3.0.0 コネタ集
by
Kazuhiro Nishiyama
Omochi-Renderer2@レイトレ合宿3!!! - お餅
by
omochi64
Rubyで実はwritev(2) が使われているはなし
by
Masaki Matsushita
#readghc なう
by
Kiwamu Okabe
Shib: WebUI tool provides crossover of Hive and MPP
by
SATOSHI TAGOMORI
Ebisu.rb#15LT「turnipいいよturnip」
by
Tsutomu Chikuba
100311 Dev Fest2010
by
Kensaku Komatsu
Rx Showcase
by
Takaaki Suzuki
More from lestrrat
PDF
Future of Tech "Conferences"
by
lestrrat
PDF
ONIの世界 - ONIcon 2019 Winter
by
lestrrat
PDF
Slicing, Dicing, And Linting OpenAPI
by
lestrrat
PDF
Oxygen Not Includedをやるべき4つの理由
by
lestrrat
PDF
Rejectcon 2018
by
lestrrat
PDF
Builderscon tokyo 2018 speaker dinner
by
lestrrat
PDF
GoらしいAPIを求める旅路 (Go Conference 2018 Spring)
by
lestrrat
PDF
Google container builderと友だちになるまで
by
lestrrat
PDF
筋肉によるGoコードジェネレーション
by
lestrrat
PDF
iosdc 2017
by
lestrrat
PDF
シュラスコの食べ方 超入門
by
lestrrat
PDF
Coding in the context era
by
lestrrat
PDF
Kubernetes in 30 minutes (2017/03/10)
by
lestrrat
PDF
Opening: builderscon tokyo 2016
by
lestrrat
PDF
Kubernetes in 20 minutes - HDE Monthly Technical Session 24
by
lestrrat
PDF
小規模でもGKE - DevFest Tokyo 2016
by
lestrrat
PDF
Don't Use Reflect - Go 1.7 release party 2016
by
lestrrat
PDF
How To Think In Go
by
lestrrat
PDF
On internationalcommunityrelations
by
lestrrat
PDF
Yapceu 2015 yapc asia tokyo behind the scenes (w/o notes)
by
lestrrat
Future of Tech "Conferences"
by
lestrrat
ONIの世界 - ONIcon 2019 Winter
by
lestrrat
Slicing, Dicing, And Linting OpenAPI
by
lestrrat
Oxygen Not Includedをやるべき4つの理由
by
lestrrat
Rejectcon 2018
by
lestrrat
Builderscon tokyo 2018 speaker dinner
by
lestrrat
GoらしいAPIを求める旅路 (Go Conference 2018 Spring)
by
lestrrat
Google container builderと友だちになるまで
by
lestrrat
筋肉によるGoコードジェネレーション
by
lestrrat
iosdc 2017
by
lestrrat
シュラスコの食べ方 超入門
by
lestrrat
Coding in the context era
by
lestrrat
Kubernetes in 30 minutes (2017/03/10)
by
lestrrat
Opening: builderscon tokyo 2016
by
lestrrat
Kubernetes in 20 minutes - HDE Monthly Technical Session 24
by
lestrrat
小規模でもGKE - DevFest Tokyo 2016
by
lestrrat
Don't Use Reflect - Go 1.7 release party 2016
by
lestrrat
How To Think In Go
by
lestrrat
On internationalcommunityrelations
by
lestrrat
Yapceu 2015 yapc asia tokyo behind the scenes (w/o notes)
by
lestrrat
OSSの敵になるのもいいじゃない
1.
OSSの敵に なっちゃうのもいいじゃない y8spring: May 27,
2017 Daisuke Maki (@lestrrat)
2.
• @lestrrat • Perl/Go
hacker, author, father • Author of github.com/peco/peco • Organizer for builderscon
3.
応募してくれ! https://builderscon.io/tokyo/2017/cfp
4.
ピンチヒッターなのでお手柔らかに…
5.
(最近まわりの若手プログラマを 見てて思った、ふわっとした話です)
6.
最近のGithubでの活動
7.
(全部Goです)
8.
github.com/lestrrat/go-slack fork of github.com/nlopes/slack
9.
github.com/lestrrat/go-fluent-client rewrite of github.com/fluent/fluent-logger-golang
10.
github.com/lestrrat/go-msgpack fork of gopkg.in/vmihailenco/msgpack.v2
11.
github.com/lestrrat/go-gettext fork of github.com/leonelquinteros/gotext
12.
github.com/lestrrat/go-packasset rewrite of github.com/jteeuwen/go-bindata
13.
Q: PR送らないの?
14.
A: 送らない
15.
A: 送らない
16.
もちつけ
17.
共通する理由
18.
APIが気に入らねぇ
19.
Q: だから〜、PR送らないの?
20.
A: 送らない
21.
OSSに変更提案を送る際の 最初のルール 「APIを変えたい」は ほぼ100%却下される
22.
APIを変える=影響範囲が デカい
23.
APIさえ変えないで すぐ済むならPRする → 既存のAPIの中身を変える → 新規APIを追加する
24.
エンドユーザー全員に影響: かなりの強い理由が必要
25.
理由を説明する努力が必要
26.
説明するには現在の 実装への理解が必要
27.
「あれ、一旦自分で書いたほうが (説明するためにも)早くね?」
28.
そうだ、forkしよう
29.
fluent.Shutdown(context.Context) が欲しかった 最近の具体例(1) (アプリがexitした時点でバッファが空かどうかの保証されてないのが気持ち悪かった)
30.
→ 「あれ、バッファのフラッシュを明示的に待てないぞ」 → 「PR書こう」 →
「あれ、これいれると他のAPIも変わるな…」 → 「あれ、これ、もう違うライブラリだよね…」 → 「forkしよ」 最近の具体例(1)
32.
エラーを握りつぶしてるのを どうにかしたかった 最近の具体例(2) (“func hoge()”を”func hoge()
error”にしたかった)
33.
→ 「あれ、このライブラリ、エラーがあっても全部無視してる…」 → 「あとで泣くの、おれだぞ。エラー返すPR書こう」 →
「あれ、そもそも戻り値に一切”error”が定義されてないからAPIが変 わっちゃう…」 → 「書き直ししよ」 最近の具体例(2)
34.
最近の具体例(2)
35.
なんかもっと調整したいんだけど、 そもそもmsgpackの仕様がわからん… 最近の具体例(3)
36.
→ 「なんか、これもっとencoding/jsonみたいにしたほうがいいのでは…」 → 「PR書こう」 →
「む、すぱげt… 難しいコードだな」 → 「ひょっとして実装した人じゃないとわからない深淵なる理由あるのか な?」 → 「プロトコルを知らないのにAPIについていちゃもんつけられない」 → 「forkしてプロトコルから実装しなおしてみよ」 最近の具体例(3)
37.
微妙
38.
気に入らない事はたくさんあるけど、 相当作り込まれてるので もっと強烈な理由がないと変更提案は 難しそうなのはわかった
39.
やってみて感想
40.
自分で書いた事により 実装の仕組みやプロトコルを 理解した
41.
一度書いたコード が存在している
42.
元のプロダクトにコメント・PRを送る にも、机上の空論ではない、触れるモ ノが存在する → 議論もそれをベースに行える
43.
変更提案が拒否されても、 手元にはそれを実装した 実績・経験・自信が残る
44.
注意事項 * 戦略を考えてからforkしよう * 最終的にfork元に還元したいのか? *
自分が最後まで看取るつもりで別の道を歩むのか? * 勉強のためにやっていて、終わったら消すつもりなのか? * それforkする必要ある? * API 変わらないならPRを作る苦労をしたほうがいいよ!
45.
それでも、 forkを恐れるべきではない!
46.
自分で書いてみるのを 恐れて欲しくない (特に経験の浅い人達)
47.
ソースコード読むのもいいけど、APIデザインは 実装しないとわからない事の方が多い ※ 個人の感想です
48.
自分で入れた変更がたいした効果を生めなかったら そこから何かを学ぼう
49.
この職業は(天才以外)は 1行でも多く書いた人の勝ち ※ 個人の感想です
50.
OSSの敵に なっちゃうのもいいじゃない
51.
そんなことより たくさん コード書け!
52.
END
53.
応募してくれ! https://builderscon.io/tokyo/2017/cfp
Download