私が歌川です

@utgwkk が書いている

クックパッドのスプリングインターンに参加した #cookpad_spring_intern

クックパッドのスプリングインターンに参加した。普段から大規模トラフィックをさばく技術に関心を持っています、と言っていたら選考通過した*1

techlife.cookpad.com

クエリのWHEREやORDER BYをグッと見つめてインデックスを貼るとよい、とか、mapの中でクエリ発行したら積み重ねで遅くなる、これがN+1問題ってやつですね、といったことは知っていた。一方で、gRPCという言葉は聞いたことがあったけど、なぜこのような技術が採用されているのか、Railsではどういうふうに実装するのか、とか、ECSを使ってアプリケーションをデプロイしてみましょう、みたいな、普段あまりやらないことを体験できたのがよかった。

Zoomでインストラクションしてもらいつつ、GitHub上の公開リポジトリをforkしてcloneして作業開始、という世界観だった。 参加者ごとに作業用インスタンスが用意されていて、とりあえずubuntuユーザーでSSHしたらログインできるというのは不思議な気がしたけど、よく考えたら https://github.com/utgwkk.keys から公開鍵情報は取得できるので、たしかにという感じがする。 うまくいかなかったらAWSのコンソールから作業用インスタンスに入ってもらって問題解決してもらっていて、リモートでデバッグするの大変だと思うので、こういう選択肢があるのはよいことだと思う。

実際に作業したリポジトリはこちら。gRPCのN+1リクエスト問題を解決しようとして失敗したのでrevertした様子が垣間見れる。こういう実装を短い時間でテストコードなしに完成させるのは難しい。ISUCONだとテスト書いてる時間なんてないのでさっとできるようになりたい。

github.com


以前、クックパッドのサマーインターンに参加したことがあるけど、後半の業務パートに参加できなかったのが今でも心残りで、半ば黒歴史みたいに感じることがある。 あれから3年近く経過したけど、どれくらい成長できたのだろうね。

utgwkk.hateblo.jp


今年はどういう形態でインターンをやっていくのか、とか、そもそも大学の予定はどうなるのか、みたいな話題もあって大変そう。

*1:インデックスとキャッシュが好き

落ち込んだような状態が続いている。いろいろなことが重なった結果こうなっていると思う。もうちょっと、元気になれるような出来事が欲しいのだけれども、果たしてどうしたらいいのか。

カマルのテイクアウトカレーおいしかった。

カマル
〒604-8131 京都府京都市中京区三条東洞院東入ル菱屋町32-1
2,000円(平均)850円(ランチ平均)
r.gnavi.co.jp

www.kamal.asia

インターネット最新情報

インターネット回線の乗り換えが完了した結果、夜中の回線速度が3000倍になった。

utgwkk.hateblo.jp

もともと、マンションにあった、工事不要の回線を契約して過ごしていた。ここ最近はずっと、夜中になると、回線速度が著しく低下するのに悩まされていた。このような状態では息が詰まる、ということで思い切って回線を切り替えることにした。

utgwkk.hateblo.jp

世界はこんなにも新鮮だったのか、という気持ちに近いものを感じている。

時刻を表す要素を強調表示するUserCSS (2)

utgwkk.hateblo.jp

以前このような記事を書いて、時刻を表す要素を強調表示するUserCSSについて紹介した。

しばらく運用してたけど、フォントサイズが大きくなるのでいろいろなサイトのレイアウトが崩れまくるという問題があった。フォントサイズはそのままに、かつ目立たせられないか、ということでCSSアニメーションで書き直した。

やってることは以下の2つ。

  • 時刻を表す文字列の色を白くする
  • 時刻を表す文字列の背景色を、赤→緑→青→赤… と切り替える

これなら、既存のレイアウトを破壊することなく、時刻を効率的に目立たせることができる。どうぞご利用ください。

gyazo.com

time, .article-update, .hdLogoWrap .source, .publish-date {
    color: white !important;
    animation: partyTime 0.5s infinite;
}

@keyframes partyTime {
    0% {
        background-color: red;
    }
    33% {
        background-color: green;
    }
    66% {
        background-color: blue;
    }
    100% {
        background-color: red;
    }
}

CSSアニメーションは @keyframes を適当に指定したらいい感じに補間してくれて便利ですね。