hitode909の日記

趣味はマリンスポーツですの日記です

ISUCON10予選敗退した

ISUCON10の予選にid:mangano-itoid:mizdraと出て予選敗退してきた。
二人はISUCONに出たことないとのことだったので、ISUCONに出たことある人類を増やすのは良い考えだ、というのと、普段からリモートでペアプロしてるので、息のあったメンバーと出てチームビルドのコストを下げよう、という作戦。
全員別拠点で、リモートでの参加なので、コミュニケーションツールをいろいろ用意していた。予選敗退したのであまり参考にならないとは思うけど書いておく。

Discordの音声通話を繋ぎっぱなしにする、常に画面を共有する

リモートで無言だと何やってるかわからなくなるので、常にお互い進捗を共有しよう、と、Discordの音声通話を1日中つないでいた。考えたことは何でもしゃべるようにしていて、思いついたあとに、やっぱり違う、と思ったときでもとりあえず口に出していた。Krispのノイズキャンセルがよくできていて、しゃべっていても疲れない。
あとは、練習で無料アカウントで画面を送ってみたらぼんやりした画質だったので、それぞれDiscordに課金して、1080pで映像を送れるようにした。もう使わないので課金止めようと思う。

事前の調査やストック情報置き場はScrapbox

当日使いそうなリンク集とか、コマンドのメモとか、過去の事例とかは事前にScrapboxにまとめておいた。DiscordのWebhookには/slackというパスがあって、Slack互換のWebhookを受け入れてくれる、というのがウケた。
scrapbox.io

当日の作戦とかTODO置き場はmiro

miroはオンラインホワイトボード。考えながらお絵かきしたいときに大活躍で、思いついたことはふせんに貼っていったり、サーバー3台で誰がどこで作業しているかメモしたり、最後の15分くらいは、できるやることがなくなったので、もうKPT会をやって終わりにしよう、と振り返りを済ませた。

f:id:hitode909:20200913115229j:plain
miroの様子

去年までのコードをisucon8-qualifyブランチなどにpushしてしまう

isucon10用のリポジトリにisucon8-qualify、isucon8-final、isucon9-qualifyブランチをpushしてしまった。複数台構成やりたい!というときに、この年の予選でやっていた、とか、デプロイスクリプトがほしい!みたいなときに、昨年までのコードをチームメンバーにシュッと紹介できて便利だった。
アプリケーションのデプロイ、ミドルウェアのデプロイ、ベンチマーク実行前にログをどかす、など、細々とやることがある。

VSCode Live Shareでペアプロする

VSCode Live ShareはVSCode上で複数人で同時にコードを書ける拡張。画面越しに「そこの変数名がおかしいです」とか叫ぶのではなくて、直接書き換えてしまえる。
今回なぜか僕のPCからはサーバーにSSHできず、問題の切り分け始めると1日終わりそうだったのでサーバーへのSSHは諦めることにした。そこで、mizdraさんのVSCode上のターミナルもシェアしてもらって、そこからデプロイをしたり、サーバーにSSHしてログを見たりと、他人のPCから参戦していた。say helloとか実行するとmizdraさんのMacが喋りだすので危険。
まずサーバーの80番をmizdraさんのPCにSSHでポートフォワードしてアプリケーションを見えるようにして、その後VSCode Live Shareのポート共有機能を使って僕の手元からも見えるようにする、ということができて、動作確認もできたのでありがたかった。

感想

書き出してみると様々なツールを使い分けている。これをいきなりぶっつけ本番でやると、それぞれのツールの使い方などで苦労していただろうけど、普段からリモートペアプロでやっていることなので、特に苦労することなく動けた。
僕はペアプロ係ということで、二人どちらかと常におしゃべりしていて、詰まった方にすぐさまかけつける、という動きで、変にハマる時間を軽減できたのもよかった。しかし一日しゃべっていたら喉が痛くなった。来年に向けては発声練習していきたい。。