Submit Search
OSSの敵になるのもいいじゃない
19 likes
69,442 views
L
lestrrat
On being the enemy of open source
Technology
Read more
1 of 53
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
More Related Content
PDF
いまさら聞けないselectあれこれ
lestrrat
PPTX
Git svnではじめる忍者のごとく潜むgit
Kazuki Sato
ODP
LKFT作ってみた
sirrow
PDF
scheme処理系の実装
bobuhiro11
PDF
Gitを使ったRoute53の管理
Sugawara Genki
PDF
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
洋史 東平
PDF
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
Kenichiro MATOHARA
PDF
mrubyのfiberを試してみた
Kindai University
いまさら聞けないselectあれこれ
lestrrat
Git svnではじめる忍者のごとく潜むgit
Kazuki Sato
LKFT作ってみた
sirrow
scheme処理系の実装
bobuhiro11
Gitを使ったRoute53の管理
Sugawara Genki
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
洋史 東平
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
Kenichiro MATOHARA
mrubyのfiberを試してみた
Kindai University
What's hot
(20)
PPTX
DateTimeX::Moment
karupanerura
PDF
Rx入門
Takaaki Suzuki
PDF
マニアックなRuby 2.7新機能紹介
mametter
PDF
Githubを使ったタスク管理
kugi
PPTX
当番をランダムに割り当ててみる ~ on-dutyTable.py ~
genroku
PPTX
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
genroku
PPTX
TIme::Moment+Time::Strptime=
karupanerura
PDF
Nbug201503
Kenji Aoyama
PPTX
RubyでGitHubをもうちょっと便利にする
nomlab
PDF
Rustのタスクモデルについて
zigen
PPTX
RubyでGitHubをちょっと便利にする
nomlab
PDF
最近のRust関連の活動
Hattori Hideo
PDF
Ruby 3.0.0 コネタ集
Kazuhiro Nishiyama
PDF
Omochi-Renderer2@レイトレ合宿3!!! - お餅
omochi64
PDF
Rubyで実はwritev(2) が使われているはなし
Masaki Matsushita
PDF
#readghc なう
Kiwamu Okabe
PDF
Shib: WebUI tool provides crossover of Hive and MPP
SATOSHI TAGOMORI
PDF
Ebisu.rb#15LT「turnipいいよturnip」
Tsutomu Chikuba
PPTX
100311 Dev Fest2010
Kensaku Komatsu
PDF
Rx Showcase
Takaaki Suzuki
DateTimeX::Moment
karupanerura
Rx入門
Takaaki Suzuki
マニアックなRuby 2.7新機能紹介
mametter
Githubを使ったタスク管理
kugi
当番をランダムに割り当ててみる ~ on-dutyTable.py ~
genroku
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
genroku
TIme::Moment+Time::Strptime=
karupanerura
Nbug201503
Kenji Aoyama
RubyでGitHubをもうちょっと便利にする
nomlab
Rustのタスクモデルについて
zigen
RubyでGitHubをちょっと便利にする
nomlab
最近のRust関連の活動
Hattori Hideo
Ruby 3.0.0 コネタ集
Kazuhiro Nishiyama
Omochi-Renderer2@レイトレ合宿3!!! - お餅
omochi64
Rubyで実はwritev(2) が使われているはなし
Masaki Matsushita
#readghc なう
Kiwamu Okabe
Shib: WebUI tool provides crossover of Hive and MPP
SATOSHI TAGOMORI
Ebisu.rb#15LT「turnipいいよturnip」
Tsutomu Chikuba
100311 Dev Fest2010
Kensaku Komatsu
Rx Showcase
Takaaki Suzuki
Ad
More from lestrrat
(20)
PDF
Future of Tech "Conferences"
lestrrat
PDF
ONIの世界 - ONIcon 2019 Winter
lestrrat
PDF
Slicing, Dicing, And Linting OpenAPI
lestrrat
PDF
Oxygen Not Includedをやるべき4つの理由
lestrrat
PDF
Rejectcon 2018
lestrrat
PDF
Builderscon tokyo 2018 speaker dinner
lestrrat
PDF
GoらしいAPIを求める旅路 (Go Conference 2018 Spring)
lestrrat
PDF
Google container builderと友だちになるまで
lestrrat
PDF
筋肉によるGoコードジェネレーション
lestrrat
PDF
iosdc 2017
lestrrat
PDF
シュラスコの食べ方 超入門
lestrrat
PDF
Coding in the context era
lestrrat
PDF
Kubernetes in 30 minutes (2017/03/10)
lestrrat
PDF
Opening: builderscon tokyo 2016
lestrrat
PDF
Kubernetes in 20 minutes - HDE Monthly Technical Session 24
lestrrat
PDF
小規模でもGKE - DevFest Tokyo 2016
lestrrat
PDF
Don't Use Reflect - Go 1.7 release party 2016
lestrrat
PDF
How To Think In Go
lestrrat
PDF
On internationalcommunityrelations
lestrrat
PDF
Yapceu 2015 yapc asia tokyo behind the scenes (w/o notes)
lestrrat
Future of Tech "Conferences"
lestrrat
ONIの世界 - ONIcon 2019 Winter
lestrrat
Slicing, Dicing, And Linting OpenAPI
lestrrat
Oxygen Not Includedをやるべき4つの理由
lestrrat
Rejectcon 2018
lestrrat
Builderscon tokyo 2018 speaker dinner
lestrrat
GoらしいAPIを求める旅路 (Go Conference 2018 Spring)
lestrrat
Google container builderと友だちになるまで
lestrrat
筋肉によるGoコードジェネレーション
lestrrat
iosdc 2017
lestrrat
シュラスコの食べ方 超入門
lestrrat
Coding in the context era
lestrrat
Kubernetes in 30 minutes (2017/03/10)
lestrrat
Opening: builderscon tokyo 2016
lestrrat
Kubernetes in 20 minutes - HDE Monthly Technical Session 24
lestrrat
小規模でもGKE - DevFest Tokyo 2016
lestrrat
Don't Use Reflect - Go 1.7 release party 2016
lestrrat
How To Think In Go
lestrrat
On internationalcommunityrelations
lestrrat
Yapceu 2015 yapc asia tokyo behind the scenes (w/o notes)
lestrrat
Ad
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