2020年も色々あったので振り返りたいと思う。
目次
学業
色々あったが、修士論文を書いて大学院を修了した。指導教員には感謝しても仕切れない。
数学は趣味で続けている……と言えればよかったのだが、あまり続けられていない。
修論絡みで書いていた(?)数学PDFを公開しようとちょいちょい手を加えているが、まだ未完成だ:
数学をやるにあたって、大学院を出てしまったことで文献へのアクセスの難易度が上がったのが地味に痛い。新型コロナウイルスがなければ卒業生として大学の図書館を使うこともできたかもしれないが、キャンパスは関係者以外立ち入り禁止の状態が続いている。自腹で論文を読む方法としては買い切りの他にDeepDyveとかいう論文サブスクサービスがあるらしいが、手を出すには至っていない。
就業
去年(2019年)の10月ごろからとある会社でプログラミングのアルバイトをしていたのが、修論で忙しくしているうちに新型コロナの煽りを受けて手伝っていた仕事が吹き飛んでしまった。
それで4月から晴れて無職をやっていたのだが、9月ごろに大学のサークルの知人から連絡を頂いて、彼の会社で(当面はインターンとして)働くことになった。私のメンタル等にも配慮していただいている。
業種は、Pythonを使って微分したり最適化したりする系のアレで、NVIDIAのGPUを持っていると高速化するやつである。自宅のデスクトップ機にGTX 1050が挿さっていて本当に良かった(メモリが2GBなので大きなアレはできないけども)。しかしHaskellが恋しい。
住居
2月に引っ越しをしたが、引っ越し先が
- 自転車置き場がない(これは下調べが足りなかった。物件探しと修論の時期が被ったのが悪い)
- 下の階の住人との関係がよろしくない(これはどうにもならん)
というもので、つまり長居したくない物件であった。
とはいえ無職の間は「引っ越し先の審査に通るのか、引っ越し資金は捻出できるのか」などの問題があった。が、10月以降は一応働けている(?)のでまあなんとかなるだろう。再度の引っ越しは面倒くさいことこの上ないが、やるしかない。
同人活動
今年は「だめぽラボ」として技術書典9と技術書典10に参加した。技術書典9では「Haskellで戦う競技プログラミング」の改訂版を出したのと、新刊「浮動小数点数小話」を出した。技術書典10は忙しくて新刊も改訂版も出せなかった。
アウトドア
思うほどできていない。
アパートに自転車置き場がなくて自転車は室内に置いているのだが、自転車を持って階段を上り下りするのが億劫&下の階の人に目撃されたくない、なので、引っ越してからは1回しか自転車を使っていない。
登山の方は、新型コロナウイルスのアレで夏ぐらいまで自粛していた。テント泊なら感染のリスクは少ないだろうが、万が一の際に救助の人に感染させたりさせられたりするとまずい。とは言いつつ、秋頃から自粛に耐えられなくなっていくつか低山には登った。
ブログには過去の登山の話を書いた。
OSS活動
今年前半ぐらいには「GHCへの貢献をしよう」とか考えていたが、いまいちである。バグ報告とかはしたがパッチを投げるには至っていない。
ClutTeXは2月にバージョン0.5をリリースした。BibTeX周りで既知の問題があるので修正したいが、Luaという型なし言語での開発の限界を感じている。
電子工作
今年は久しぶりに電子工作をちょいちょいやった。Raspberry Pi 4……はあまり電子工作という感じではない。電子工作らしいものと言えば、M5Stackを買ってちょいちょい遊んだ。
- M5Stack関連の記事
この他、ブログには書いていないが、「HDMI切り替え器のリモコン受信部を挿げ替えてワンタッチで目的の入力に切り替えられるようにする」物体を作った。
浮動小数点数
今年はやたら浮動小数点数に詳しくなった一年だった。昔から浮動小数点数には一定の興味があり、記事もいくつか書いているし、IEEEの規格書も在学中にダウンロードしていた。丸め方向を制御するやつもやっていた。
じゃあ今年はどこに詳しくなったのかというと、様々な環境での浮動小数点数の扱いを学んだのと、浮動小数点例外やNaNの扱いなどの細かいところまで勉強したことだろう。記事もたくさん書いた。
- 浮動小数点数の演算の丸めモードを制御する(1月31日)
- 浮動小数点数の min / max(5月27日)
- 浮動小数点数オタクが AtCoder Beginner Contest 169 のC問題をガチで解説してみる(6月1日)
- AtCoderのコンテストでの話題に乗っかって書いた記事である。浮動小数点数絡みでは3月14日のコンテストに出た「C – Sqrt Inequality」も人々の心に傷を残しているようだ。
- AtCoderの話題性はものすごく、現在までに640LGTMを頂いた。
- long doubleの話(6月30日)
- 本当は _Float128 の話も書きたかったが、まだ書けていない。
- 浮動小数点数の16進表記(8月9日)
- FMA (fused multiply-add) の話(8月17日)
- 浮動小数点数の足し算と掛け算は可換か(8月19日)
- 同人誌:浮動小数点数小話
- Javaの strictfp が実際に意味を持つ環境を用意する(10月21日)
- x87 FPUの呪い(11月18日)
- あるいは、Javaのstrictfpは何のために存在するのか。
- IEEE 754のドラフト段階から存在し、64ビットへの以降で見かけることは少なくなった(が、一応生き残っている)x87 FPUについて。
- 十余年前ならいさ知らず、2020年にしても懐古趣味にしかならない。だがそれでも書く価値はあると思った。
- ArmにあるというJavaScript専用命令とは何か、あるいは浮動小数点数を整数に変換する方法について(11月30日)
- Twitterで話題になっていた「Apple Siliconの速さの秘訣」みたいな話に乗っかって書いた記事である。
- ちなみに、この命令はまだCortex系には実装されていない(なのでスナドラを搭載するスマホやSurface Pro Xでは使えないはず)ので、「Apple専用命令」と呼ぶのは当たらずとも遠からずである。(サーバー向けだと多分実装されてたりするので現時点でもApple専用ではない、はず)
- Haskell/GHCでの浮動小数点数の扱い(12月9日)
- Haskell Advent Calendarがスカスカだったので入れてみた。内容は今年筆者が浮動小数点数をやっていたのでHaskellでのその扱い、ということにした。
集大成というわけではないが、数日前に、「Haskellに(ほぼ)IEEE 754-2019準拠な演算を提供する」ことを目的としたライブラリー fp-ieee をリリースした。
先ほど「大学院を出たことで論文へのアクセスが悪くなった」と書いたが、浮動小数点数周りも読みたい論文を読めない、という事態に陥った。どうしたものか。
今年できなかったことと来年やりたいこと
プログラミング的な観点では、今年は浮動小数点数の重箱の隅を突いて終わってしまった感がある。来年は新しいことをやりたい。
- 数値計算
- 自分の興味というのは、数学とコンピューターの交差するところにある。例えば、「週刊 代数的実数を作る」では計算機代数のさわりをやった。
- 今年は浮動小数点数に詳しくなったし(?)、そろそろ数値計算に手を出すべきではないか。
- VR
- 今年はOculus Quest(初代)を買ったがいまいち活用できていない。VRでアニメ(2次元)やホームスターVRを見るぐらいしかやっていない。
- 来年は自分でプログラムを書いて何かやってみたい。
それから、今年できなかった既存の課題もどうにかしたい。
- TeX周り:ClutTeX等
- OSS貢献
- 数学:復帰したい
初心に帰りたい
ここ最近、自省することが増えた。大学院を出て、インターン先も見つかって、自分の人生について改めて考えている。
何かを決めるということは、それ以外の可能性を切り捨てるということだ。周囲には大学に残って研究者の道を進む友人がいる中、自分は大学院を出て「学者にはならない」(というか、なれない)という決断をした。
趣味についても、世の中を見渡せば自分より凄い、その道を極めた人がいるだろう。そうした人たちがいる中、自分がそれをやる理由は?
子供の頃は多分無邪気で、他人と比較するようなこともなく、いろんなことに好奇心を持っていただろう。しかし大人になって「自分の選んだ道」以外への興味を切り捨てていってしまっているのをこの数年感じている。余裕がないというか。
「自分は数学を専門にするんだから」「〇〇についてはもっと凄い人たちがいるから」……そうして切り捨てて、「専門」を究める道も辞めた時、自分に何が残っているだろう?
取り戻したい。昔持っていたはずの情熱、ロマン、ワクワク。そういうものを取り戻したい。少しずつでもいいから。
他人は他人、自分は自分だ。比較しすぎるのはよくない。自分は自分のペースでやっていけばいい。
来年は、初心に帰って数学やその他趣味をやっていくことを目指したい。