日常

ケ・セラ・セラ

年が明けてしまったな。

あけましておめでとうございます。

もう 1/5 ですね。はー。出社が近づくと共に、見る夢が悪いものになってきている気がしないでもない。

それはまあいいとして、ここ数年書いていた気がする一年まとめ的な記事を今年はまったく書く余裕なくまとめられていなかったので、簡単にそういうのをやろうと思って今書いてみているわけです。しかし色々とやることが終わっていなくて、あまり日本語を書いている暇がない。

去年書いた、2018 年のまとめはこれですね。なんか色々やってるけど、とりあえず 2019 年も生きられてよかったです。でも 2019 年は、 2018 年よりも生きるのが大変になった気がします。2020 年は残念ながら、もっと大変になる気がします。そろそろ難易度をコントロールできないといけません。

at284km.hatenablog.com

上の記事の続きからいきますなにやっていたかというと、2019 年はけっこう簡単に説明がついて、前半(主に RubyKaigi 前後まで) ruby/csv の改善と、ほぼまるっと一年、Charty の開発や、開発者を増やす目的の活動、それと、まるっと一年、通常の業務もちゃんとやっていたよ。

  • 1月
    • Ruby Grant 中間報告 (Charty の開発)と、Ruby2.6 の csv の bug fix
    • RubyKaigi の proposal とか 1 月だったかな?
  • 2月
    • Grant 後半過程の Charty の開発 と ruby/csv
  • 3月
    • Grant 最終報告。と csv。あと Railsdm 登壇とか。登壇については、後でまとまった資料のリンクを下に貼る予定なので、書かなくていっか。
  • 4月
    • RubyKaigi 2019 福岡よかった。もつ鍋を食べられなかったけど、2020 年、フクオカRuby大賞のおかげで再び福岡に行けるチャンスを得られたので今度こそ。
  • 5月 - 9月
    • このあたりは、Charty の開発をしながら名古屋、台湾、タイとかで発表をしたり Charty 開発者が増えたり。をしていた。うまくいったと思うしよかった。
  • 10月
    • Grant の成果報告をした。うまくいったので 2019 年から続いていたひとつの期間の区切りがここ。という感じ。
  • 11月 - 12月
    • この辺のことはまた今書いても仕方がない感じで、2020 年春以降に成果として公に報告するのでその時まとめようと思う。
    • 10 月以降は仕事ではほぼ python(PySpark) のコードを書くようになった。

こんな感じかなぁ。

今年特徴的だったのが、ついに英語でのコミュニケーション能力の必要に迫られたということかなぁ。 基本的に学習は遅延評価とか言っているので、仕事や上にあげたような開発とかをしながら最低限必要レベルにでも能力を間に合わせるというのが大変だった。だいたい忙しい時でもわりと暇という特性のおかげで時間が捻出できたんだと思う。間に合ったとは言っていないが、僕は楽しく過ごして来ることができた程度にOK。この点は今年も続けるでしょう。

2019 年のけっこう多くを占めた Charty の開発については、ちょうどよい機会が最近あって、Charty の意味だったり、ここまでのまとめ的な資料ができたのでこれを眺めるとだいたいここまで。って感じになった。便利そうである。

https://gist.github.com/284km/e6edf58f9f160b7c5065250341ffd048

あとは、年も開けてしまったしついでに冬休み的にどんなことをしていたかというと、本当にやらなければいけないことがある中、趣味の C コンパイラの実装が進んだ。最近というか 2019 年はそんなに時間がなくて、2018 年まではそれなりにやっていた作ってみた系のものが全然できていなかったので、こういうのは結構久しぶりに着手しておもしろかった。しかし本当にやらなければいけないことは別にあり、時間の使い方に少し後悔したりもしている。必ずしもこうなることが分かっていなかったわけではない。難しい。

C コンパイラは、最近だと rui ueyama さんの 9cc があり非常に親切な感じに commit を追うことができるのでそこから学習もしやすいという感覚で、ありがたい。 実は突然 C コンパイラの実装を始めたわけではなく経緯があり、一年ちょっと前のこれまたクソいそがしかった時期に、CPU(物理) とか作ってみたいなあー。2019 年に作れるといいなぁー。とか言っていたことがあって、そうきっと半分は現実逃避です。色々本業をやりながらもそれなりにぼちぼちだらだらと並行して CPU を作るための準備を進めていて、結局 CPU(物理) を作るところまではいけなかったのだけれど、FPGA 評価ボード上で CPU を動作させるところまでできた。けっこう難しくて、回路の復習と、アセンブラをもうちょっとまともに覚える(覚えるというか命令コード表と突き合わせながらなら理解できるようにする)のが必要知識という感じで、それをやっていた知識があったので、C コンパイラ、簡単な部分だけなら出来るな。と思って全然予定していなかったのだけれど知識が繋がったのでちょっとやってみたという感じだ。アセンブラをもっと知らなかったら、やろうってならなかった気がする。他にも、GraalVMコードリーディングで kmizu さんに、僕がこのまま GraalVM のコードを読み続けるとしたら JVM の知識としてそもそも足りていなそうな部分などをなんとなく教えてもらったことがきっかけで、The Java® Virtual Machine Specification を読んだこととかからも繋がっているかな。たぶん相互に想像がしやすくなった部分が無くはない。最近はこういった辺りに興味があったということなんでしょう。ほぼ無だった知識が少しは溜まってきたので、2020 年は実装が進むといいな。

こんな感じか。

それで、2020 年は、フクオカRuby大賞の本審査と、RubyKaigi の proposal 提出からです。 2020 年もちゃんと生きられるといいよね。