Text
Page: 1
OSS開発者を
増やしたい!
須藤功平
クリアコード
Speee Cafe Meetup #02
2016-09-01
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 2
ここでいうOSS開発
✓ 1から独自で開発だけでなく
✓ 既存OSSの開発も含む
✓ 例:要望提案
✓ 例:バグレポート
✓ 例:pull request
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 3
OSSを開発する動機
人それぞれ
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 4
動機例
✓ 反応が欲しい・注目されたい
✓ 転職活動で使える材料が欲しい
✓ 技術力向上
✓ ○○機能が欲しい
✓ コミュニティーで活動したい
✓ 使ってばかりじゃ申し訳ない
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 5
OSSを開発する動機
✓ 独りよがりがいい
✓ 他人の損得は気にしなくていい
✓ 自分が割に合うと思うか?がいい
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 6
利用OSSにバグがあった!
どうする?
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 7
昨日の実例:Vagrant
CentOS 5のVMにsshできない…
% vagrant up centos-5-i386
...
centos-5-i386: Key inserted! Disconnecting ...
centos-5-i386: Warning: Authentication failure. Retrying...
centos-5-i386: Warning: Authentication failure. Retrying...
...
PGroongaのRPMをビルドしようとしていた
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 8
利用OSSにバグがあった!
✓ どうする?
a. とりあえずツイート?
b. ググる?
c. 最新バージョンを確認?
d. 違うOSSに乗り換え?
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 9
私の場合
よく使っているOSSの場合は…
✓ 調べて
✓ 直して
✓ 報告
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 10
ググった
http://qiita.com/cock1doodledoo/items/b32382776f76fb2d627c
↓で直ると書いている
少し違う現象っぽいが
config.ssh.insert_key = false
回避策っぽい…調べよう
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 11
調べて
パスワードではログインできた
% vagrant ssh centos-5-i386
vagrant@127.0.0.1's password: (vagrant)
[vagrant@localhost ~]$
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 12
調べて…
ログを確認
[vagrant@localhost ~]$ sudo less /var/log/secure
...
... sshd[3750]: Authentication refused: bad ownership
or modes for file /home/vagrant/.ssh/authorized_keys
...
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 13
調べて……
パーミッションを直すと
公開鍵でログインできた
[vagrant@localhost ~]$ chmod go-rwx ~/.ssh/authorized_keys
[vagrant@localhost ~]$ exit
% vagrant ssh centos-5-i386
[vagrant@localhost ~]$
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 14
調べて………
authorized_keysでgrep
% grep authorized_keys /usr/share/vagrant
.../plugins/guests/bsd/cap/public_key.rb:...
...
.../plugins/guests/linux/cap/public_key.rb:...
...
.../plugins/guests/solaris/...
...
.../plugins/guests/solaris11/...
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 15
調べて…………
GNU/Linuxなので↓を確認
.../plugins/guests/linux/cap/public_key.rb
chmod忘れを発見
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 16
直して
--- .../linux/cap/public_key.rb.orig
...
+++ .../linux/cap/public_key.rb ...
@@ -54,6 +54,7 @@
if test -f ~/.ssh/authorized_keys; then
grep ... > ~/.ssh/authorized_keys.tmp
mv ~/.ssh/authorized_keys{.tmp,}
+
chmod 0600 ~/.ssh/authorized_keys
fi
rm -f '#{remote_path}'
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 17
報告
✓ masterを確認
✓ https://github.com/mitchellh/vagrant/blob/master/
plugins/guests/linux/cap/public_key.rb#L57
✓ 同じchmodがすでにある!
✓ 手元で修正して元の作業を継続
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 18
ふりかえり
✓ 最初から最新バージョンを確認
すればよかった?
✓ 今回は調べた方でよかったかも
✓ 10分位だしVagrantの事がわかったし
(最新バージョンの用意は手間だった)
✓ ↑自分が割りに合ったか基準
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 19
なぜ報告するのか
✓ 自分が何度も回避するのが面倒
✓ ↑自分が割に合うか基準
✓ よく使うOSSなら違うマシンでも遭遇
しやすい
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 20
類似の事例
✓ mrubyがクラッシュするので修正
✓ #2732, #2867, #3087, #3090, #3129
✓ 自分がパッチを管理するのが面倒
✓ PostgreSQL 9.6beta1の
DROP ACCESS METHOD IF EXISTS
が動かないので修正
✓ 本体で直らないと自分の実装が手間
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 21
OSSを開発する動機
✓ 独りよがりがいい
✓ 自分が割に合うならやるといい
✓ OSSを開発する敷居が高いと
なかなか割に合わない!
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 22
OSS Gate
OSS開発の
敷居を下げる
取り組み
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 23
Gate == 門
境界にあるもの
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 24
扱う境界
OSS 開
発
活発
自信ない
未参加者
参加者
興味あり
興味なし
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 25
ターゲット
OSS 開
発
活発
自信ない
未参加者
参加者
興味あり
興味なし
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 26
やりたいこと
OSS 開
発
活発
自信ない
未参加者
参加者
興味あり
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 27
未参加者→参加者
OSS 開
発
活発
自信ない
未参加者
参加者
興味あり
ワークショップで実現
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 28
ワークショップの内容
✓ 未参加者の後押し
✓ すでに興味はある!
✓ どう後押せば…?
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 29
未参加の理由?
1. やり方がわからない
2. なんとなく不安
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 30
ワークショップの内容
1. やり方を1つ教える
✓ やり方がわかると参加できる!
2. OSSの開発に実際に参加する
✓ 不安なのは未経験だから
✓ ワークショップで経験しよう!
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 31
門をくぐる
OSS 開
発
活発
自信ない
なんか不安だな…
未参加者
参加者
興味あり
OSS開発者を増やしたい!
くぐってしまえば
別になんてことはなかった!
Powered by Rabbit 2.2.0
Page: 32
よりくぐりやすく
OSS 開
発
サポート 活発
自信ない
未参加者
参加者
興味あり
OSS開発者を増やしたい!
大丈夫だよー
Powered by Rabbit 2.2.0
Page: 33
募集中!
募集中!
OSS 開
発
活発
自信ない
未参加者
参加者
興味あり
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 34
OSS Gateワークショップ
✓ ターゲット:未参加者→参加者
✓ 奇数月の最終土曜に開催中!
✓ 次回9/24
✓ 次々回11/26
oss-gate.doorkeeper.jp
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 35
組織としてOSS開発
✓ 個人
✓ 自分が割に合うと思うときに開発
✓ 組織
✓ 「OSS開発する方針だからやろう」?
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 36
組織とOSS開発
多くの組織にとって
OSS開発は
目的でなく手段
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 37
組織としてOSS開発する動機
OSSを開発する結果として…
✓ 技術力アップ
✓ 開発効率アップ
✓ 知名度アップ
↑こっちが目的
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 38
技術力アップ
✓ 既存OSSの開発
✓ 社外のコード・やり方から学ぶ
✓ 新規OSSの開発
✓ 1ソフトウェアのすべてを経験できる
✓ 設計判断・告知・ユーザー対応…
✓ 経験から得られるものはたくさん
✓ 社内で不足している機会を提供
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 39
開発効率アップ
✓ 独自修正の管理より
開発元に修正を提供
✓ アップデートの難易度を下げる
✓ メンテナンスするものを減らす
OSSを開発
(開発元に修正を提供)
する方が割に合う
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 40
知名度アップ
✓ 技術者に技術でアピールできる
✓ 「あの○○さんがいる会社」
✓ 「○○が得意な会社」
✓ 求心力アップ・広告効果
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 41
組織としてOSS開発する動機
OSSを開発する結果として…
✓ 技術力アップ
✓ 開発効率アップ
✓ 知名度アップ
↑こっちが目的
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 42
組織としてOSS開発
✓ ×
✓ 「OSS開発する方針だからやろう!」
✓ ○
✓ 「このケースは○○だからOSS開発は
あなたの割に合うんじゃない?」
✓ 例:Railsの独自修正を抱えるよりも開発元に
提供した方があなたが開発しやすくなるんじ
ゃない?組織はそのための時間を確保する
よ。
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0
Page: 43
OSS開発支援
✓ 企業向けサポート
✓ Speeeさんにも
提供中
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0