旅する情報系大学院生

旅と留学とプログラミング

GSoCに採択された話

Google Summer of Code 2017でLLVMに出していたbash-completion for clangというプロジェクトが採択されました!プロジェクトの詳細はこれからいくらでも書く機会があると思うので、今回の話は「どうやったらGSoCに通るの?」という事に焦点を当てたいと思います。日本からは毎年数人しか受かってないはずなので日本語の文献はとてもとても少ないので、来年応募したいなと思う人の参考になればと思います。

最初に、そもそもGSoCの存在を教えてくれてその後も色々相談にのってくれたhakatashiさん、パッチの投げ方からproposalの内容まで始めから今まで本当に沢山のアドバイスをくれたメンターのRaphaelさん、Vassilさん、ありとあらゆる相談に乗っていただきLLVMのノウハウを沢山教えてくださったRui Ueyamaさん本当にありがとうございました!この人々がいなかったら応募していたかも怪しいです。

Organizationを選ぶ

OrganizationをLLVMにした理由としては、Freebsd, Openbsd, LLVM, GNUなどを見ていてピンときたプロジェクトがLLVMにあったことと、成長著しい有名オープンソースという感じでかっこいい!と思ったという単純な理由です。コンピューターを速くしたいという私の思想にも合っていたのでとりあえずメーリスにメールを送ってみたのが始まりです。一日くらいでpotential mentorのRaphaelさんとRuiさんからメールをいただき応募に向けての活動が始まりました。
これはhakatashiさんにも言われたことなのですが、下手な鉄砲を数打っても当たらないので完璧なproposalを一つのorganizationに出すのが良いのかなぁという気がします。

First Contact & proposalの準備

Proposalを書き始める前にメンターのRaphaelさんに実力を示す意味でもclangにパッチを投げてみたらどうかと提案していただき、3月中旬から環境構築を始めていました。コンパイラのビルドというのはものすごいリソースを使うので環境構築が本当に大変で、ノートパソコンでは動かないのでデスクトップPCを買ったりなど頑張りました。
一番最初に提案してもらったバグがなかなかトリッキーで時間がかかり、別のパッチをはじめてコードレビューに投げたのがproposal締め切りの1日前とかだった気がします。
f:id:yamaguchi_1024:20170506005000j:plain
メンターさんとのメールです。たくさんやり取りをしました・・。
応募前にcommit historyが必要なのかどうかはorganizationによるかと思いますが、普通に考えてあった方が良いとは思います。

Proposal

3月下旬からはproposalを書き始め、100を優に越えるくらいのコメントを頂きました。LLVMのディベロッパーの方々はもちろん、先輩やネイティブの友達に文法をチェックしてもらったり意見をもらったりなど本当にありとあらゆる人の力を借りました。
docs.google.com
これが実際のproposalです(CVは個人情報が載っているので消しました)。右上のコメントというところをクリックしてみるとわかる通り、本当にたくさんコメントをいただきました。コメントを頂けるということは関心を持ってもらえているということなのでとても良いことかなと思います。

Proposalを提出した後

4月になりproposalを提出した後もパッチを投げ続け、これは単純に趣味でやったことですが結果的には選考に有利に働いたと思います。コミッタにもなれて嬉しかったです。

最後に・・・。

自分には技術力が足りないんじゃないかと思う人に一言。これは持論ですが、プロの開発者は本当にすごいので我々学生の技術なんて等しくゴミレベルにきっと見えていて、多少の技術力の差なんて圧倒的プロの前では無に等しいのでそんなことを気にするよりも成長曲線の微分係数の大きさをアピールする方がいいと思います。


これは始まりでしかないのでマージされるように頑張ってデスマしていきたいと思います。応援よろしくお願いします!