去年
今年も雑に振り返る&来年の目標を宣言する
続きを読むISUCON8に出場して予選で散りました。
@kazeburoさんと@masartzさんとそたぶろるっつという名前のチームで一緒に出場しました。ありがとうございました!
後半、少し追い上げるも予選突破ラインに遠く及ばず…。
fail地獄がつらかった。
私は主にアプリケーションを見た。つらつらと。言語はNode.jsを選択しました。
sheets
テーブルを見てるところをハードコード
rank
とnum
カラムがわかればsheet_id
がわかるし、rank
とsheet_id
がわかればnum
がわかるデータ構造になってたのでそこを参照したりJOINしてるところをつぶしたgetEvents
でアプリでpublic_flg
のfilterをかけてるものをflag見てSQLを変えるよう分岐getEvent
呼び出し部分を単一のSQLに変更
getEvent
内はいろいろやっているが読んでみるとシンプルなSELECT文で置き換えられる場所がいくつかあったORDER BY RAND()
をやめる
SELECT sheet_id FROM reservations WHERE event_id = ? AND canceled_at IS NULL
rank
がわかればsheet_id
のrangeがわかるのでその範囲だけでループを回すその他、チームメンバーには
getEvents
のN+1撲滅をひたすらやってもらってた
仮にもハイトラフィックなアプリのBackendを1年半やっての敗北なので強い気持ちで1年間修行します。
来年のISUCON予選突破するまでビール禁止します
— きりん (@sota1235) September 16, 2018
ユニットテストをmocha + power-assert + TypeScriptで書く際、espower-typescriptを導入したのだけど、その際にハマったのでメモ。
mochaでテストを実行するとローカルの型定義ファイル(.d.ts
)を読み込まず、エラーになった。
エラーメッセージ
いろいろ調べるとespower-typescriptが依存しているts-nodeが原因っぽい。
このts-nodeのversionsが7.0.0からデフォルトの挙動でローカルのtsconfig.jsonの読み込みをスキップするようになった。
これを有効にするにはCLI実行時であれば--files
オプションを渡すだけなのだが、espower-typescriptにラップされてる上にコードを読んだ感じoptionで渡す方法も無いのでPRを出してoptionを渡せる or --files
オプションが有効になるよう書き換えるしかない。
と、面倒だなぁと悶々としていたら環境変数を指定することでオプション指定ができることに気づいた。
--files Load files from tsconfig.json on startup (TS_NODE_FILES, default: false)
なので以下のようにコマンド実行すればespower-typescript内部のts-nodeの--files
オプションが有効になった状態でテストを実行できる。
TS_NODE_FILES=true mocha -r espower-typescript/guess src/**/*.test.ts
後半のコマンドはよしなに、大事なのはTS_NODE_FILES=true
をつけることです。
お医者さんと話してていくつか大事な要素があった。
ヘルニアになっても保存療法を行えば半年で7, 8割は自然治癒するらしい。
また、手術も基本的には発症してから1ヶ月間は様子を見ましょう、というのが業界のガイドライン(要出典)で定められており基本は保存療法から入る。
あと具体的に言われたのは手術をしてもしなくても10年後の健康状態は変わらない、つまり手術をしても早く治る可能性があるというだけで根本的に一生治るというわけではない。
まずはそもそも治らないかもしれない、というリスク。
私のように足に痛みが出たのは「結果」であって、この結果に対して直接的に治療をするわけではない。
この結果の原因であろうヘルニアを取る手術をするので、ヘルニアが無くなると同時に痛みが100%無くなるとは言い切れない。
特に私の例だと、そもそもヘルニアが2つあってそのうちどちらが足に来てるかを特定できない(特定する方法はあるのだが、神経に針を刺すというものなので断念した)ので様々な検査で特にひどいと思われる方の対処をした。つまり今回処置したほうが原因でないなら症状は改善しないことになる、ということ。
どうせ切るのだから両方取ればいいじゃないかという話もあるが痛みが出てないヘルニアを下手にいじって別の症状が出るリスクの方が大きい、という説明をされたので素直に医師を信頼し症状がひどい方のみ、手を入れることにした。
※余談だが、病院内の記事にヘルニアには痛みがたまたま出てないだけでヘルニアになってるパターンとそうでないパターンが有るらしい。MRI取ったら実はヘルニアだった、なんてことは誰でもありえる
次に再発のリスク。
術後にもし症状が改善されてもまたヘルニアになって全く同じ症状に陥る、もしくは違う症状が出る可能性もあるしその可能性は生きてる限りついて回る。
1つ目は1年間、保存療法で様子を見ても症状が全く改善されなかったこと。
2つ目にこの痛みにあと何年耐えればいいのかわからない、という状況が嫌でリスクを取ってでも可能性に治る可能性にかけたいと思ったこと。
基本的な日常生活を送ることはできていたがずっとコルセットを巻きっぱなしは不便だし、何時間でも散歩したいし、ハチャメチャに痛いわけではないのに右足を引きずって歩いてることを時たま指摘されたりしてて、ただでさえ短い貴重な人生をこの状態で過ごすのは素直に嫌だった。
流れはこんな感じ
総じて、特に不自由はなかった、と思う。(入院したことないので普通はもっと苦しい、とかもっと楽、とか言えない)
体を動かせるようになってからは腰に負担をかけない起き方とか姿勢を教わって、ずっと同じ姿勢だと負担がかかるので1時間ごとに寝っ転がったり座ったり歩いたりして過ごしてた。
看護師さんも言ってたけどメインイベントは手術なのでそれ以外の時間は本当にすることがない。のでひたすら本を読んでた。
おかげで技術書2冊と小説2冊消化してしまった。あとの時間はコード書いたり寝てたりしてた。
手術前の時間はさすがに手術失敗とか植物人間とか不要な妄想が頭を駆け巡りそうになったのではたらく細胞を見て「頼んだお前ら」と祈ってた。
入院中に見るはたらく細胞、趣深すぎる
— きりん (@sota1235) August 15, 2018
何回でもexcuseしておくと私の場合はこうだった、というだけで他の人が全く同じ経路をたどって同じ結果になるかはその人の症状次第だしそのあたりは本当、プロのお医者さんに相談してください。
私の場合、手術後にもともとあった右足の痛み、痺れは無くなりました。
ただ、まだ完全になくなったと言い切るのは早くて
という感じです。
ただ、術前よりも確実によくなってるので今後はまず再発防止のために当分は徹底的に腰に負担をかけない生活をおくることとストレッチや筋トレによるリハビリをする生活になりそうです。
あと支払い済ませて終わり…3ヶ月間は慎ましく健康に過ごしすしお酒も控えるので各位よろしくどうぞ
— きりん (@sota1235) August 20, 2018
メルカリに入社して1年半くらい経ったのだけど、7月から1年近くいたチームから別のチームに移ることになった。
かなりドラスティックに組織を変えていく文化の中で1年間同じチームにいたのは社内でも稀有な経験だったこと、前職でも1年間同じチームにいたことはなかったことから自分にとって大きめの節目なので、転職するときの意志として強かった「自分の手で人に自慢できる機能を世に出したい」ということがどれくらいできたか勝手に振り返ってみる。
細々した機能から大きめの機能まであるけど全部語れないのでいくつかメモしておく。
試しに入社してから今日までにmergeされたPRの数を数えたら408個だった。土日含めて一日0.7個のPRをリリースしてる計算らしい。
続きを読む