ml5.js という機械学習のJSライブラリのことを調べていて、機能が足りないと思ったので Pull Request を送っていたところ、先ほどマージされた。
» Show the version number of the library. by champierre · Pull Request #283 · ml5js/ml5-library
ml5.return とWebコンソール画面に入力すれば、今現在使っているml5.jsのバージョンを返してくれるというごく簡単なものなんだが、シンプルな実装方法で提案できたので、なんだか褒められていてうれしい。
1つ目のコメントをくれている Daniell Shiffman 先生はThe Nature of CodeというProcessingの本を書かれていたり、The Coding Trainという人気のプログラミング学習動画シリーズを続けられていて、僕はちょっとしたファンだったので、有名人に会えたみたいなうれしさだ。
僕のオープンソースプロジェクトに対する貢献はそれほど多くはない。
今では、たいていの種類のソフトウェアはオープンソースになっていて、ソースコードが手に入ります。ソースコードを見て、ある機能に興味があったとき、自分が実現するとしたらどう実現するかを知る。そうした「知る」ための能力は、エンジニアの武器になります。優秀なソフトウェア開発者は、だいたいソースを読むことが好きだったり得意だったりします。
» 「オープンソースへの取り組みはエンジニアにとって強力な「武器」になる」(後編)Ruby言語開発者 まつもとゆきひろ 氏 |ギークアカデミー より
とあり、僕はWebサービスやプロダクトを作ることは好きなのだが、ソースを読む方はあまり得意ではないので、優秀なソフトウエア開発者でないことは自覚している。
でも、サラリーマンからプログラマーそしてフリーランスのエンジニアに転身していくきっかけを与えてくれたのはオープンソースプロジェクトへの貢献だった。
2003年にPOPFileというオープンソースの迷惑メールフィルターの日本語化に貢献し、プログラマーになりたいと強く思うようになった。
» POPFile 関連のエントリー
その後、スタートアップのウノウに転職し、そのウノウからPOPFileの製品版であるクイックPOPFileを出すことにもなった。
先に紹介した 「オープンソースへの取り組みはエンジニアにとって強力な「武器」になる」(後編)Ruby言語開発者 まつもとゆきひろ 氏 |ギークアカデミー にはこう書かれている。
例えばですが、Rubyのプロジェクトに参加してメジャーコントリビュータになれば、有名になって、上司からの扱いが変わる可能性もありますよね。転職もできる。
今までは、仕事は会社から与えられるもので、面白い仕事が当たればラッキーだけどそうじゃない場合もあったわけです。ところが、オープンソースの活動で自分の名前が表に出れば、今までとは違って「武器」を手に入れることができる。
POPFile への貢献は、30を過ぎ経験がない僕でもプログラマーとしてスタートアップでやっていけるんじゃないかという自信を与えてくれたし、何よりプログラミングの楽しさを教えてくれた。
POPFile のときは、SourceForge にホスティングされているcvsでバージョン管理されたプロジェクトにパッチを送るという方法で、今は GitHub のレポジトリに Pull Request を送るという洗練された方法に変わったが、自分が書いたコードがマージされたときの喜びは何ら変わっていない。
GitHub にホスティングされているオープンソースのプロジェクトに参加する方法は以下のQiitaの記事に良くまとまっているので、興味がある人はこれを読んでOSSの開発にぜひ参加してみてください。僕のように人生が変わるかもしれません :)
» 意外ととっつきやすいOSS開発参加方法まとめ