isucon7予選に参加したメモ #isucon

10月21日(土)にisucon7予選に参加した。

ずいぶんと日が経ってしまったが、メモ程度に残しておく。 会社の先輩方と3人チーム。

結果

ベストスコアは10万点を少し超えたあたりだったが、記録なしで終わってしまった悲しい。

開始前

前日までにはあまりちゃんと準備もせず、過去問をちょっと動かしてみたりプロファイリング用のツールをいくつか使ってみたり、程度。

がっつり過去問解く、ということはしてなかった。 やろうとしていたが本番じゃないとやる気が出ない...。

予選1日目当日は運営側のトラブルで開始が13時過ぎからに。 9時頃にオフィスに集まったものの何となく復習したりインターネットサーフィンしてだらだらすごしてた。 連日徹夜をしていたというスタッフさん大変だっただろうな...。 おつかれさまでした。

何をやったか

というところで始まり、Golangを選択。 特に事前には決めていなかったが、何となくの流れでアプリケーション改修を担当。 ちゃんと施策とスコアを保存しておこうと思ったが、だんだん面倒になってほとんど記録残ってなかった。

基本的にはNginxログからalp使ってボトルネックになってそうなエンドポイントを見付けて直す、という作業。 netdataも動かして何となくリソース使いきれてないね、みたいな話をした記憶がある。 地道にSELECT文を見て必要ならDBにindex貼ったり、不要なSQLを発行しないようにしたり、N+1を何とかしたり。

特に、N+1は何箇所か直したが、SQL書くのを面倒くさがって雑なSQL発行してデータがばって取ってからアプリケーション側で加工するという道を選んでしまった。 ここはSQLで出来るところはちゃんとした方がよかったなと後悔。

ある程度直しても劇的な変更は出ず、いっちょRedis動かしてキャッシュしちゃうぞ〜ってゴリゴリ書き換えたものの何故かうまく動かず時間を無駄にしてしまった。

ボトルネックとしてでかかった画像がDBに入ってる問題はチームメンバーに託したので、スコアが10万超えたのはほぼそのおかげ。

終わってみて

反省としては、事前に作戦立てておけばよかった、に尽きる。

ファイルの共有もGitで管理はしたけどあまり有効に使えなかったし、デプロイとかも手元で雑なスクリプト書いてやってしまったりとチームプレーうまくできなかったなぁと。 自分がアプリケーション直すのに集中しすぎたのもある。。

という感想。 来年は絶対決勝に進むぞ!

Scala関西サミット2017で発表してきた #scala_ks

Scala関西サミット2017は以下。

そして、こちらの後日談。

メタプログラミングScala」というタイトルでCFP通ったので発表してきました。
ScalaMatsuriに引き続き僥倖というやつです。

発表資料はこちら。
170ページという長大なアレです。

社外の技術勉強会で40分の発表というのは人生初でした。めっちゃ緊張しました。

最中の様子。

終わった後の感想です。

Scala関西サミットの運営の方々、そして僕の拙い発表を聞いてくださった皆様ありがとうございました。
40分の発表に向けてめっちゃ発表資料用意したのに早口になって言い忘れたこともあって2分余るという悲しさ。 反省点もある発表にはなってしまいましたが、何とかやりきれたかなという感触です。

メタプロやるならコンパイラとかJVMとかに詳しくならないとな…と課題も見えました。
ちょっと準備で疲れたので間を開けて取り組もうかなと。

打ち上げです。

グランフロント大阪にあるさくらインターネットさんでの懇親会。

弊社ではインターン期間中だったにも関わらず、前日入りさせてもらえて非常にありがたかったです。
また、発表者の方々と一緒にAirbnbで前泊することになり、楽しい時間を過ごさせていただきました。
みなさま改めてありがとうございました。

来年も頑張って出るぞ!

Scala関西2017にCFP出した

表題の通り。

summit.scala-kansai.org

コペンハーゲン行ってScalaDaysとTypelevel Summitと参加してテンション上がったので、勢いで出した。

テーマはメタプログラミング
主にscala.metaちょこちょこ触ってみてたので、まとめてアウトプットしたい。

qiita.com

やってみたらそんなに怖いものじゃないって感じたので、それを伝えられたら良いな。
応募しただけなので、当選したら発表頑張ろう。