今更ですが。
id:akiym、id:hitode909 と即興パフォーマンス2024(仮)というチームで出た。結果は26位で、初めて30位以内に入ることができた。
このチームで出たのは2回目で、今回は僕が初めにakiymさんを誘って、せっかくなら前に出たチームで出ようという話になったのでhitode909さんを誘って実現した。前回の様子は↓
前回とはそれぞれ状況が変わっていて、事前に集まって準備するとかそういうのは少し難しかったのもあり、当日集まってぶっつけ本番でやるということになった。実際本当にそんなに準備してなくて、前日になってcosenseのチームのプロジェクトを作ったり、当日朝にこれまでやったことをちょっと集めたりしたくらい。 どの言語で参加するか、というのも集まってから、というか始まった後に各言語の参考実装を眺めた後に決めた。3人が共通して読み書きできるのがPerlとNode.jsとGoで、ざっと眺めた時に把握しやすそうなのはNode.jsだよね、となってNodeに決まった。
初動の準備は自然と分担して、ログ設定を仕込んだり、デプロイする方法を準備したり、ドキュメントを眺めたりできた。それぞれそんな難しいことはしていない。たとえばログは、nginxにalpで集計可能なフォーマットでログを吐き出す設定を入れるとか、デプロイは手元からrsyncだよね、とかそれくらい。そのあとは合流して、ベンチマークを一度走らせた上でアクセスログを集計して様子を見るとか、ベンチマークの出力を見たりして作戦を立てたりした。ベンチマークの出力を見たところ、ユーザーの満足度が低く、というか誰も満足していませんみたいな状態だったのでそこを改善していきましょう、となった。というか基本的にはベンチマークの出力を見て作戦を立て続けていた気がする。どういうことをやっていたかはhitodeさんのブログを見てもらうといい。
当日はほぼ3人でモブプロしてるかペアプロしてるかみたいな状態だった。完全に分担して作業したのは最初の1時間くらいだったと思う。これは結構よかった。実装だけではなく、ログを仕込んで、ベンチを回しているときにログが流れる様子を見てこれいいじゃんとかこれ変じゃんとか話しながら作業していた。これはかなり良かったと思うし、何より一日すごく楽しかった。
hitodeさんも書いているけど、リーダーボードを全く見なかったのも結果としてはよかった。あとでわかったのだけど、リーダーボードが隠れる前の順位も30位周辺だったらしく、仮にそれを知ったら残り1時間でRedis入れようぜとか言い出していた可能性が高い。ちなみに残り1時間のところでSSEやりはじめたのだけど、結局うまくいかなかった(Failするようになってしまった)ので最後にやめた。SSEやったきっかけ自体が「他のチームは絶対SSEやっているはずで、やらなかったら後の感想戦で寂しい思いをするはず」とかだったので、当初の目的は達成できたと言える。
普通の日記レベルの振り返りになったけど、まあとにかく楽しかった。30位以内に入れたのが初めてだったのも理由だけど、hitode909さん / akiymさんと久しぶりに一緒に何かできたのも楽しかった。問題もとても丁寧に作られていて面白かったし、楽しい一日を過ごせたと思う。関係者の皆さんお疲れ様でした & ありがとうございました。