日記(5/3)

起きてごはんを食べたらすぐに課題のe-learningをした.丁寧な暮らし.

Twitterを眺めていたらこんな記事が流れてきた.

beza1e1.tuxen.de

ある男性が車でスーパーに行ってアイスを買うのだが,他の味のアイスでは問題ないのにバニラアイスを買ったときだけ車が発進しないという奇妙な不具合が発生するという話.一見論理的ではない事象だが,その車の製造元のエンジニアが実際にその車でアイスを買いに行って実験してみると意外な原因が明らかになる.
そのスーパーではバニラアイスは店に入ってすぐの場所に陳列されており,他の味のアイスを買いに行くよりも速く買い物を済ませることができる.その結果バニラアイスだけを買ったときはエンジンが十分に冷却されず,Vapor lockという不具合が起きて発進不能になるらしい.
こういう奇妙な話はなんらかのものやシステムを作っているとときどき起こる.自分はコンパイラを書いているときに,生成したアセンブリが予期せぬ場所を書き換えていたりスタックがこわれたりするということを体験したことがある.疎結合なモジュールに分割したり副作用を極力減らしたりするのはこういうエラーを減らすことにも繋がるんだろうなぁと思った.

それから家にあった世界史の本を軽く読んだ.「2時間でわかる」みたいなやつなのでそんなに内容は濃くない.オリエントのところを読んだけど全然頭に入っていない.やっぱりテストするか自分でまとめるかしないと覚えられないのかな...

F#を書いていた.パーサコンビネータが徐々にそろってきた.途中からこのサイトを参考にしている:

fsharpforfunandprofit.com

コンビネータがそろってくると,歯車が噛み合ってからくりが動くかんじがして楽しい.

ABC166に出た.4完.Dは雑に全探索すれば通るのにごちゃごちゃと式をいじって時間を溶かしてしまった.
一方でEは式変形ゲーなのに最後のほうまで式変形をせずにうんうんうなって時間を溶かしてしまった.かなしい.

昼間もずっと頭を使っていたので頭のパフォーマンスが悪かったかもしれない.言い訳ではなく.コンテストのある日の昼間は本を読むとか映画を観るとかして頭を休ませておいた方がよさそう.