Submit Search
Upload
OSSの敵になるのもいいじゃない
•
19 likes
•
69,421 views
L
lestrrat
Follow
On being the enemy of open source
Read less
Read more
Technology
Report
Share
Report
Share
1 of 53
Download now
Download to read offline
Recommended
いまさら聞けないselectあれこれ
いまさら聞けないselectあれこれ
lestrrat
Git svnではじめる忍者のごとく潜むgit
Git svnではじめる忍者のごとく潜むgit
Kazuki Sato
LKFT作ってみた
LKFT作ってみた
sirrow
scheme処理系の実装
scheme処理系の実装
bobuhiro11
Gitを使ったRoute53の管理
Gitを使ったRoute53の管理
Sugawara Genki
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
洋史 東平
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
Kenichiro MATOHARA
mrubyのfiberを試してみた
mrubyのfiberを試してみた
Kindai University
Recommended
いまさら聞けないselectあれこれ
いまさら聞けないselectあれこれ
lestrrat
Git svnではじめる忍者のごとく潜むgit
Git svnではじめる忍者のごとく潜むgit
Kazuki Sato
LKFT作ってみた
LKFT作ってみた
sirrow
scheme処理系の実装
scheme処理系の実装
bobuhiro11
Gitを使ったRoute53の管理
Gitを使ったRoute53の管理
Sugawara Genki
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
洋史 東平
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
Kenichiro MATOHARA
mrubyのfiberを試してみた
mrubyのfiberを試してみた
Kindai University
DateTimeX::Moment
DateTimeX::Moment
karupanerura
Rx入門
Rx入門
Takaaki Suzuki
マニアックなRuby 2.7新機能紹介
マニアックなRuby 2.7新機能紹介
mametter
Githubを使ったタスク管理
Githubを使ったタスク管理
kugi
当番をランダムに割り当ててみる ~ on-dutyTable.py ~
当番をランダムに割り当ててみる ~ on-dutyTable.py ~
genroku
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
genroku
TIme::Moment+Time::Strptime=
TIme::Moment+Time::Strptime=
karupanerura
Nbug201503
Nbug201503
Kenji Aoyama
RubyでGitHubをもうちょっと便利にする
RubyでGitHubをもうちょっと便利にする
nomlab
Rustのタスクモデルについて
Rustのタスクモデルについて
zigen
RubyでGitHubをちょっと便利にする
RubyでGitHubをちょっと便利にする
nomlab
最近のRust関連の活動
最近のRust関連の活動
Hattori Hideo
Ruby 3.0.0 コネタ集
Ruby 3.0.0 コネタ集
Kazuhiro Nishiyama
Omochi-Renderer2@レイトレ合宿3!!! - お餅
Omochi-Renderer2@レイトレ合宿3!!! - お餅
omochi64
Rubyで実はwritev(2) が使われているはなし
Rubyで実はwritev(2) が使われているはなし
Masaki Matsushita
#readghc なう
#readghc なう
Kiwamu Okabe
Shib: WebUI tool provides crossover of Hive and MPP
Shib: WebUI tool provides crossover of Hive and MPP
SATOSHI TAGOMORI
Ebisu.rb#15LT「turnipいいよturnip」
Ebisu.rb#15LT「turnipいいよturnip」
Tsutomu Chikuba
100311 Dev Fest2010
100311 Dev Fest2010
Kensaku Komatsu
Rx Showcase
Rx Showcase
Takaaki Suzuki
Metahub for github
Metahub for github
Suguru Oho
HiRoshimaR6_ExplodingBoxplot
HiRoshimaR6_ExplodingBoxplot
SAKAUE, Tatsuya
More Related Content
What's hot
DateTimeX::Moment
DateTimeX::Moment
karupanerura
Rx入門
Rx入門
Takaaki Suzuki
マニアックなRuby 2.7新機能紹介
マニアックなRuby 2.7新機能紹介
mametter
Githubを使ったタスク管理
Githubを使ったタスク管理
kugi
当番をランダムに割り当ててみる ~ on-dutyTable.py ~
当番をランダムに割り当ててみる ~ on-dutyTable.py ~
genroku
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
genroku
TIme::Moment+Time::Strptime=
TIme::Moment+Time::Strptime=
karupanerura
Nbug201503
Nbug201503
Kenji Aoyama
RubyでGitHubをもうちょっと便利にする
RubyでGitHubをもうちょっと便利にする
nomlab
Rustのタスクモデルについて
Rustのタスクモデルについて
zigen
RubyでGitHubをちょっと便利にする
RubyでGitHubをちょっと便利にする
nomlab
最近のRust関連の活動
最近のRust関連の活動
Hattori Hideo
Ruby 3.0.0 コネタ集
Ruby 3.0.0 コネタ集
Kazuhiro Nishiyama
Omochi-Renderer2@レイトレ合宿3!!! - お餅
Omochi-Renderer2@レイトレ合宿3!!! - お餅
omochi64
Rubyで実はwritev(2) が使われているはなし
Rubyで実はwritev(2) が使われているはなし
Masaki Matsushita
#readghc なう
#readghc なう
Kiwamu Okabe
Shib: WebUI tool provides crossover of Hive and MPP
Shib: WebUI tool provides crossover of Hive and MPP
SATOSHI TAGOMORI
Ebisu.rb#15LT「turnipいいよturnip」
Ebisu.rb#15LT「turnipいいよturnip」
Tsutomu Chikuba
100311 Dev Fest2010
100311 Dev Fest2010
Kensaku Komatsu
Rx Showcase
Rx Showcase
Takaaki Suzuki
What's hot
(20)
DateTimeX::Moment
DateTimeX::Moment
Rx入門
Rx入門
マニアックなRuby 2.7新機能紹介
マニアックなRuby 2.7新機能紹介
Githubを使ったタスク管理
Githubを使ったタスク管理
当番をランダムに割り当ててみる ~ on-dutyTable.py ~
当番をランダムに割り当ててみる ~ on-dutyTable.py ~
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
TIme::Moment+Time::Strptime=
TIme::Moment+Time::Strptime=
Nbug201503
Nbug201503
RubyでGitHubをもうちょっと便利にする
RubyでGitHubをもうちょっと便利にする
Rustのタスクモデルについて
Rustのタスクモデルについて
RubyでGitHubをちょっと便利にする
RubyでGitHubをちょっと便利にする
最近のRust関連の活動
最近のRust関連の活動
Ruby 3.0.0 コネタ集
Ruby 3.0.0 コネタ集
Omochi-Renderer2@レイトレ合宿3!!! - お餅
Omochi-Renderer2@レイトレ合宿3!!! - お餅
Rubyで実はwritev(2) が使われているはなし
Rubyで実はwritev(2) が使われているはなし
#readghc なう
#readghc なう
Shib: WebUI tool provides crossover of Hive and MPP
Shib: WebUI tool provides crossover of Hive and MPP
Ebisu.rb#15LT「turnipいいよturnip」
Ebisu.rb#15LT「turnipいいよturnip」
100311 Dev Fest2010
100311 Dev Fest2010
Rx Showcase
Rx Showcase
Similar to OSSの敵になるのもいいじゃない
Metahub for github
Metahub for github
Suguru Oho
HiRoshimaR6_ExplodingBoxplot
HiRoshimaR6_ExplodingBoxplot
SAKAUE, Tatsuya
Goodby Hatena, hello Sphinx
Goodby Hatena, hello Sphinx
Kouhei Maeda
Shizudev git hub宿題
Shizudev git hub宿題
Tadahiro Ishisaka
20150709 青学 空間情報システム入門i_0709
20150709 青学 空間情報システム入門i_0709
Taichi Furuhashi
20150709 青学 空間情報システム入門i_0709
20150709 青学 空間情報システム入門i_0709
Taichi Furuhashi
Goにおける静的解析と製品開発への応用
Goにおける静的解析と製品開発への応用
Takuya Ueda
スッとGoを取り入れる
スッとGoを取り入れる
Yusuke Wada
デザイナー、フロントエンジニア向けgithub勉強会ワークショップ資料
デザイナー、フロントエンジニア向けgithub勉強会ワークショップ資料
ichikaway
OSC・シェルのプロが語る『make を使ったデータ処理。』 【make 教】 - OSC2015 Tokyo/Spring 発表資料
OSC・シェルのプロが語る『make を使ったデータ処理。』 【make 教】 - OSC2015 Tokyo/Spring 発表資料
博文 斉藤
Gitの紹介
Gitの紹介
Shoot Morii
ROSチュートリアル ROBOMECH2018
ROSチュートリアル ROBOMECH2018
Ryuichi Ueda
オープンセミナー香川2012 LT
オープンセミナー香川2012 LT
Kouta Imanaka
gitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみました
Takako Miyagawa
Let’s translate FuelPHP docs! [RELOADED]
Let’s translate FuelPHP docs! [RELOADED]
Sho A
Building Static Website With Github And Jekyll
Building Static Website With Github And Jekyll
Yoji Shidara
Pelicanによる www.python.jpの構築
Pelicanによる www.python.jpの構築
Atsuo Ishimoto
gitその2 rebaseとrebase -iを理解してgit-flowをやりやすくする
gitその2 rebaseとrebase -iを理解してgit-flowをやりやすくする
Study Group by SciencePark Corp.
筋肉によるGoコードジェネレーション
筋肉によるGoコードジェネレーション
lestrrat
mbedではじめる組み込みHaskellプログラミング
mbedではじめる組み込みHaskellプログラミング
Kiwamu Okabe
Similar to OSSの敵になるのもいいじゃない
(20)
Metahub for github
Metahub for github
HiRoshimaR6_ExplodingBoxplot
HiRoshimaR6_ExplodingBoxplot
Goodby Hatena, hello Sphinx
Goodby Hatena, hello Sphinx
Shizudev git hub宿題
Shizudev git hub宿題
20150709 青学 空間情報システム入門i_0709
20150709 青学 空間情報システム入門i_0709
20150709 青学 空間情報システム入門i_0709
20150709 青学 空間情報システム入門i_0709
Goにおける静的解析と製品開発への応用
Goにおける静的解析と製品開発への応用
スッとGoを取り入れる
スッとGoを取り入れる
デザイナー、フロントエンジニア向けgithub勉強会ワークショップ資料
デザイナー、フロントエンジニア向けgithub勉強会ワークショップ資料
OSC・シェルのプロが語る『make を使ったデータ処理。』 【make 教】 - OSC2015 Tokyo/Spring 発表資料
OSC・シェルのプロが語る『make を使ったデータ処理。』 【make 教】 - OSC2015 Tokyo/Spring 発表資料
Gitの紹介
Gitの紹介
ROSチュートリアル ROBOMECH2018
ROSチュートリアル ROBOMECH2018
オープンセミナー香川2012 LT
オープンセミナー香川2012 LT
gitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみました
Let’s translate FuelPHP docs! [RELOADED]
Let’s translate FuelPHP docs! [RELOADED]
Building Static Website With Github And Jekyll
Building Static Website With Github And Jekyll
Pelicanによる www.python.jpの構築
Pelicanによる www.python.jpの構築
gitその2 rebaseとrebase -iを理解してgit-flowをやりやすくする
gitその2 rebaseとrebase -iを理解してgit-flowをやりやすくする
筋肉によるGoコードジェネレーション
筋肉によるGoコードジェネレーション
mbedではじめる組み込みHaskellプログラミング
mbedではじめる組み込みHaskellプログラミング
More from lestrrat
Future of Tech "Conferences"
Future of Tech "Conferences"
lestrrat
ONIの世界 - ONIcon 2019 Winter
ONIの世界 - ONIcon 2019 Winter
lestrrat
Slicing, Dicing, And Linting OpenAPI
Slicing, Dicing, And Linting OpenAPI
lestrrat
Oxygen Not Includedをやるべき4つの理由
Oxygen Not Includedをやるべき4つの理由
lestrrat
Rejectcon 2018
Rejectcon 2018
lestrrat
Builderscon tokyo 2018 speaker dinner
Builderscon tokyo 2018 speaker dinner
lestrrat
GoらしいAPIを求める旅路 (Go Conference 2018 Spring)
GoらしいAPIを求める旅路 (Go Conference 2018 Spring)
lestrrat
Google container builderと友だちになるまで
Google container builderと友だちになるまで
lestrrat
iosdc 2017
iosdc 2017
lestrrat
シュラスコの食べ方 超入門
シュラスコの食べ方 超入門
lestrrat
Coding in the context era
Coding in the context era
lestrrat
Kubernetes in 30 minutes (2017/03/10)
Kubernetes in 30 minutes (2017/03/10)
lestrrat
Opening: builderscon tokyo 2016
Opening: builderscon tokyo 2016
lestrrat
Kubernetes in 20 minutes - HDE Monthly Technical Session 24
Kubernetes in 20 minutes - HDE Monthly Technical Session 24
lestrrat
小規模でもGKE - DevFest Tokyo 2016
小規模でもGKE - DevFest Tokyo 2016
lestrrat
Don't Use Reflect - Go 1.7 release party 2016
Don't Use Reflect - Go 1.7 release party 2016
lestrrat
How To Think In Go
How To Think In Go
lestrrat
On internationalcommunityrelations
On internationalcommunityrelations
lestrrat
Yapceu 2015 yapc asia tokyo behind the scenes (w/o notes)
Yapceu 2015 yapc asia tokyo behind the scenes (w/o notes)
lestrrat
YAPC::Asia Tokyo 2012 Closing
YAPC::Asia Tokyo 2012 Closing
lestrrat
More from lestrrat
(20)
Future of Tech "Conferences"
Future of Tech "Conferences"
ONIの世界 - ONIcon 2019 Winter
ONIの世界 - ONIcon 2019 Winter
Slicing, Dicing, And Linting OpenAPI
Slicing, Dicing, And Linting OpenAPI
Oxygen Not Includedをやるべき4つの理由
Oxygen Not Includedをやるべき4つの理由
Rejectcon 2018
Rejectcon 2018
Builderscon tokyo 2018 speaker dinner
Builderscon tokyo 2018 speaker dinner
GoらしいAPIを求める旅路 (Go Conference 2018 Spring)
GoらしいAPIを求める旅路 (Go Conference 2018 Spring)
Google container builderと友だちになるまで
Google container builderと友だちになるまで
iosdc 2017
iosdc 2017
シュラスコの食べ方 超入門
シュラスコの食べ方 超入門
Coding in the context era
Coding in the context era
Kubernetes in 30 minutes (2017/03/10)
Kubernetes in 30 minutes (2017/03/10)
Opening: builderscon tokyo 2016
Opening: builderscon tokyo 2016
Kubernetes in 20 minutes - HDE Monthly Technical Session 24
Kubernetes in 20 minutes - HDE Monthly Technical Session 24
小規模でもGKE - DevFest Tokyo 2016
小規模でもGKE - DevFest Tokyo 2016
Don't Use Reflect - Go 1.7 release party 2016
Don't Use Reflect - Go 1.7 release party 2016
How To Think In Go
How To Think In Go
On internationalcommunityrelations
On internationalcommunityrelations
Yapceu 2015 yapc asia tokyo behind the scenes (w/o notes)
Yapceu 2015 yapc asia tokyo behind the scenes (w/o notes)
YAPC::Asia Tokyo 2012 Closing
YAPC::Asia Tokyo 2012 Closing
Recently uploaded
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
Recently uploaded
(10)
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
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)
31.
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 now