重力に縋るな

千種夜羽です

Google Summer of Code 2020に採択された

Google Summer of Code 2020(以下GSoC)に出していたProposalが採択されました. やったぜ.

記録と来年以降GSoCに申し込む人のために書いておきます. 僕も先人のブログにめちゃめちゃ助けられましたしね.

GSoCって何

Google Summer of Code. よくGSoCとも呼ばれます.

GSoCは端的に言うと,「学生の人,夏休み暇でしょ?メンターからの指導を受けつつオープンソースプロジェクトにcommitしてみない?ちなみにGoogleから金も貰えるんだが」というかんじのイベント(?)です.

summerofcode.withgoogle.com

Google Summer of Code is a global program focused on bringing more student developers into open source software development. Students work with an open source organization on a 3 month programming project during their break from school.

僕は周囲の参加してるオタクとか,しゅううせんせーのブログとかで存在を知った覚えがあります.

syuu1228.hatenablog.com

夏休みと書きましたが,これはもちろん海の向こう側の話なので我々日本の民が参加する際は注意が必要です. 思いっきり期間中に大学の試験期間がありますからね. その点で言えばCOVID-19で世の中や大学が混乱してる時期にできるのはアドかもしれないなあと思ったり. 1限の試験とかやりながら他のことモリモリやるとか僕には無理です. まあ全部リモートになっても1限は無理なんですけど.

なにやるの

summerofcode.withgoogle.com

じゃあお前はGSoCで何やるねんということなんですが, emboxという組み込みOSをMAiX BiTに移植します.したい.

github.com

emboxは簡単に言うとPOSIXなアプリケーションが動く組み込みOSです. 色々な「それ絶対組み込みで動かんやろ」みたいなやつがなんかシュッと移植されて動いたりする.

なんかQtがSTM32で動いたりするらしいです.マジかよ...

Porting Qt to STM32 / Embox Blog / Sudo Null IT News

で,このemboxなんですが,かなり色々なプラットフォームで動きます. アーキテクチャも色々あるしなんなら普通のx86アプリケーションとしても動いたりする. 比較的最近になってみんな大好きRISC-Vにも対応しました. といってもHiFiveだけだけど.

でもHiFiveって高いじゃないですか.いやまああの値段でRISC-Vなマイコンが買えるならって思うとそんなにってかんじだとは思いますが. とはいえしがない学生からするとマイコンにスッと6000円とか出すのはまあまあ厳しいものがありますよね. まあ今まで積んできた本やらマイコンやらの合計金額確認ゲフンゲフン.

それでもRISC-Vを実機で触ってみたい. どうにかしたいですよね. そして最近はそんな夢を叶えるべく(?), sipeedが超パワーでお財布に優しいRISC-Vマイコンをぽんぽん出してくれているわけです.

その1つが今回のターゲットのMAiX BiTです.

www.switch-science.com

3500円でRISC-V 64bitデュアルコアかつ色々なアクセラレータも載ってるマイコンが買えるのヤバくないですか?ヤバい. やべーっつってアキバのShigezoneで買ってMicroPythonとPlatformIOでちょっと遊んだ後積んでました*1. そして,Proposalどうしようかな〜と悩んでいるときに,ふと「これに移植できたら面白いのでは...?」と思ったので,なんかそんなかんじのProposalを書いて送ってみたら通ったってかんじです.

申し込み

申し込みにあたっては,先人たちのブログ記事がめちゃくちゃ参考になりました.ありがたや.

hakatashi.hatenadiary.com

yamaguchi-1024.hatenablog.com

n-yoshikawa.hatenablog.com

Organizationが発表*2されたら,まずは公式サイトを見て面白そうなプロジェクトを見繕います. Organizationはかなりたくさんあります.

summerofcode.withgoogle.com

LLVMとかNeoVimとか,いつも使ってるビッグネームが並んでいてすごい. その一方で,今まで知らなかった面白OSSもかなりあってこの一覧を見るだけでも面白かったです. 今回僕が応募したemboxもここで始めて知りました.

一応僕が見ていておもしろそ〜と思ったOrganizationのリストを載せておきます. メモはかなり雑なのであんまり気にしないでください.

hackmd.io

プロジェクトを見定めたら,メンター候補の人に連絡を取ってみましょう. たぶんどのプロジェクトでもメールアドレスが書いてあると思います. というかGSoCのページにまずはメールしろ!と書いてあるプロジェクトも多いんじゃないですかね. その後の対応はプロジェクトによってかなり違うんじゃないかなという気がしますが, なんやかんやあった後はちょっとcontributeするかんじになると思います.

emboxの場合は"goot first issue"ラベルの付いたIssueが量産されていたので, 「これやりてえ!」ってコメントしてアサインしてもらってからプルリク送るとええ,ってかんじでした.

github.com

というわけで僕はこんなかんじのプルリクを送って無事マージされました. OSSにプルリクを送ったのは多分これが始めてだと思います. プルリクがマージされるとえらいきもちがええんじゃ.

その後,"Student Application Period"が始まったら登録ができるようになります. そうしたら後は適当なGoogleアカウントを登録して, 自分が学生だということを証明したりProposalをガシガシ書いたりするだけです.

学生の証明は学生証をスキャンしてPDFとかにして送りつけるだけです. ただし,学生証が日本語の場合ダメで〜す!wと言われるので, 後で書いてある内容を英訳したものを送る必要があります.

Proposal

これらの諸々ができたら,あとはProposalを書いて送りつけるだけです.簡単だね!(ぇ)

基本的にはOrganizationのGSoCのページに「idea list」があるので, その中から面白そうなものを選んで,GSoCの期間中にそれをどう実装していくかを書くことになります.

ですが,大体そのidea listの一番下とかに「お前のアイデアを送りつけてもいいぜ!」みたいなことが書いてあります. さすがにいきなり独自アイデアをブチ込む勇気は僕には無かったんですが,idea listにあったネタでProposalを書いていて「いや全然わからん...何からどう実装したらいいのかわからんしそのスケジュールとか立てられん...」となったので,本当にふと思いついたネタで特攻したというわけです. まさか選ばれるとは...

ProposalはまずdraftをGoogle Documentとかで書いて早めに出して,中の人からコメントを貰ってからPDFをGSoCのダッシュボードから提出します. 僕はGoogle Documentがあんまり好きではなかったので*3どうしようかなと思ったんですが, 中の人がコメントできるならURL貼っ付けていいよ,みたいなことが書いてあったのでGistに書いて出しました. emboxはGitHub上で開発されててメンター全員100%GitHubアカウントありますしね. 実際普通にコメント来たので大丈夫だったっぽいです. まあGistくらいならOSSバリバリやってる人には大丈夫でしょ!wと思いますが, 普通は無難にGoogle Documentに書いた方が良いと思います.たぶん.

ちなみに,Final Proposalは期限まであと数日というところで, 唐突にSATySFiで書くか!wっつってSATySFiで書いて送りました. SATySFiで文章書くのはこれが始めてでした(なんで?) 色々教えてくれた丼のオタク,ありがとうね...

あと,自分の中では数日前のつもりだったんですけど, 今確認したら3/30の真夜中にSATySFiわからんとかトゥートしてたので, 正確には1日前っぽいです.バカなの?

可能性がある.知らんけど.

慣れたらかなり良さげっぽいなあとは思ったので,ちょいちょいやっていきたいですね.SATySFi.

というわけで僕は結局期限の数時間前くらいに提出したと思うんですが(記憶がない)91分前に出してたんですが, もっと早めに出した方がいいです. タイムゾーンも違うしね...

まあタイムゾーンに関しては案内にもかなり口酸っぱく書いてありますし, 直前にダッシュボードにアクセスするとご丁寧にJSTでの期限と残り時間が表示されていたので任意の提出物ギリギリ提出オタク各位はダッシュボードとにらめっこするとよいです.

あと,ギリギリ提出オタク各位向け有用情報としては,PDFはいくらでも再登録できるので, ある程度書けたと思ったらとりあえず登録しておいて,少し直したら登録しなおす,というのをやると最悪の事態は避けられます. また,直前に慣れてないもので書こうとか思わない方がいいです.いやそれは普通か...

mstdn.maud.io

さいごに

自分の過去のProposal見せてくれたり,僕のdraftに色々ケチつけてくれたり,SATySFiのこと教えてくれたりした末代各位,ありがとうございました.

あと,今年は全てのEvaluationを通すと$5400貰えるらしいです.ヤバい*4

developers.google.com

ちゃんとEvaluation通せるように頑張っていきたい.

*1:正確には積んでいたのはMaixduinoで,色々弄るにはMAiX BiTの方が良いよと丼のオタクに勧められたのでProposal書きながらMAiX BiTを買った

*2:今年の場合は2/21

*3:あと,G Suiteのアカウントでやろうとしたらワーニングが出たというのもある

*4:VR環境とか整えたいですね(取らぬ狸の皮算用)