u16suzuの blog

日々学んだことのメモブログです。

今日読んだもの

github.com

rubocopのcopを全て有効にしています。 そのままだと全て落ちてしまうので、全てのRubyファイルの先頭に # rubocop:todo all をつけてチェックをしないようにしています。 あとは個別のファイルごとにrubocopに対応して # rubocop:todo all を削除していけば良いとのこと。

github.com

システムのread/write権限を持つユーザがmongodbのシステムコレクションのデータを変更できる件を指摘、修正しています。

今日かいたもの

github.com

WIPでmongoidにPRを出してみた。しかし、evergreenで許可を得ないとパッチを出せないみたいで止まっている。

今日読んだもの

Expand arrays in queries https://github.com/mongodb/mongoid/pull/5601

mongoidに対してActiveRecordの挙動に依存するサードパーティgemが動くようにするため、ARの挙動と同じくする提案がなされている。 変更内容は以下のように、要素が1個の配列が与えられたとき、自動で1個の要素に展開されるようになるというもの。

# 9.x behavior
Person.where(name: ['Kate']).selector # { 'name' => 'Kate' }

# 8.x behavior
Person.where(name: ['Kate']).selector # { 'name' => [ 'Kate' ] }

例えば、array typeのフィールドに対してのクエリが影響を受けてしまう。これはBC。 この変換を無効にするフラグ expand_single_element_arrays_in_query も用意されてはいる。 この変更は device が期待通りに動かないことに対する修正のようで、あまり入れて欲しくはない変更である。 https://jira.mongodb.org/browse/MONGOID-5554

この提案はまだ Draft の段階。

2022/11/8(wed)の日記

社内勉強会が50回目の開催だった

4月ごろに前任者の方から引き継いで、自分が社内のバックエンド勉強会を運営をしている。 私の開催分は数えてみると20回くらいだった。議事録を眺めてみると、運営の担当メンバーは何回か代替わりをしている。 毎回、これの発表をしてくれる人を探すのはひと苦労で、初めの頃はなかなかプレッシャーを感じていた。 でも、最近は慣れたもので、ちょっと気楽に運営できるようになった。 多分、他のエンジニアメンバーにリアルで会って親交を深めると、より、気楽になっていくのだろう。

あと、今日は rspecのdoubleの使い方を少し調べた。

今朝冬の匂いを感じた

今朝、ドアを開けたら乾いた空気の匂いを感じた。 どこかで焚き火をしているかのような、かすかに煙ったい匂いだった。 うちは住宅地の中なので焚き火などしているはずはない。 小学生の時のお祭りの記憶がふとよみがえった。

ランチにラーメンを食べに行った

普段あまり行かないラーメン屋に、ふらっと足が向いたので行ってみた。 昔ながらの中華そばが美味しかった。 家から少し離れているので、どうかな?と思って行っていなかったが、いざ自転車で行ってみると、結構余裕な時間で帰ってくることができた。 何事も、一度そのアクションにどれくらいの時間がかかるか?を計測できていると、次からの予定が立てやすくなる。見積もりの話だ。 これからは気軽にこのラーメン屋に行こう。

2022/11/5(sat)の日記

家族でカフェに行った

自転車で近くのカフェにみんなで行った。途中、くねくねした道で迷ったがなんとかついた。 近さを優先してわかりづらい道をいくよりも、多少遠くても大通りを経由したほうがハラハラしなくて好ましく思う。 公園の周りだと割とオシャレなカフェがあって、この辺だと住みやすそうだな〜と思う。

オーブントースターが活躍している

ガスコンロがちょっと使いづらいこともあり、最近はもっぱらオーブントースターで料理をしている。 サワラ、タイ、サンマなんかの切り身を買ってきて塩を振ったりオリーブオイルをまぶして5分ほど焼けば、手軽においしい魚をとれる。 自分はレアな焼き加減が好きなようで、ふわふわの前のとろとろのレベルのお魚を楽しんでいる。

吉田戦車の逃避飯を再読した

東京に住んでいたとき妻が図書館で借りてきた本。とても気に入り、その後Kindleでも買っていた。 仕事の合間の息抜きに料理をしたい、というヨシダサンにとても共感できる。 私の場合は仕事中は集中したいので、上がった後の深夜の開放感の中で一人で台所でゴソゴソしたい派。

amzn.asia

2022/11/7(mon)の日記

菊の蕾

息子が捕まえたバッタをこっそり逃した

年をとったせいか、子育てをしているせいか、最近は生き物の殺生が心苦しい。

夜中に食事をとると内臓に負担がかかる

遅い時間のアルコールや食事が翌日のパフォーマンス悪化につながることが多くなってきた。 最近は意図的に粗食をとるようにしている。 朝食に毎日飲んでいたレッドブルをやめて、オートミールにした。 昼食にはストレス発散の意味合いを込めてガッツリしたものを取っていたが、血糖値スパイクによるパフォーマンス低下が気になってきたので、パンなど軽食で済ませている。 昨晩、久しぶりに夜中にクリームパンを食べたら今日の胃の調子が悪かった。

仕事でカメラで顔出しをするようになった

何かの本で、顔を出すと心理的負荷が高まると読んだので、結構な割合でオフにしていた。 しかしながら、これが逆に自分がうなずいたりするリアクション表現のひとつを削ることになっており、 逆にストレスになっていることに気づいたため、有効にするようにしてみた。 人間、何かしらの自己表現をすると、ストレス発散になる気がする。

奥さんが作ってくれたご飯が美味しかった

平野レミさんのレシピから、豚眠菜園。味がしっかりめでよかった。

www.kyounoryouri.jp

ハンターハンター37巻を読んだ

字が多い。という感想。ほんとんど流し読み。 そして話を結構忘れてしまっている。

2022/11/6(sun)の日記

WEB+DB vol.122 の作って学ぶRDBMSのしくみを読んだ

システムプログラミングに興味があるので、2章まで読んだ。 Rustのカニ本を読んでおいたので、理解が早かった気がする。 技術書を読むときは、概要をざっとつかんでからあとはコードを読むほうが早い気がする。 書いてあることが想像つく部分は、読み飛ばすようになった。

仕事で使う資料を作った

仕事で仕様を決めるMTGに使う資料を作成した。図を作る際にkeynoteを使おうとしたがうまくいかず、結局いつも通りSkitchを使って作成した。 図を作るといっても、スクショをとってそこに矢印やコメントを追加する程度なので、Skitchでじゅうぶんなのであった。 オンラインMTGメインの働き方になり、文章化が大事なのはそうだが、理解を促進する図も適度に入っているほうが好みだ。

雰囲気で使わずきちんと理解する!整理してOAuth2.0を使うためのチュートリアルガイド を読んだ

仕事で使うので読んだ。今までOAuthを雰囲気で使っていたので、あらためて読んだ。 図に書きながら読み進めたら理解がはかどった。リフレッシュトークンそういうことだったのか。

雰囲気で使わずきちんと理解する!整理してOAuth2.0を使うためのチュートリアルガイド (技術の泉シリーズ(NextPublishing)) | Auth屋 | 工学 | Kindleストア | Amazon

家族で近所の公園に行った

家族でパン屋でランチをとった後、自転車に乗って公園に行った。 大きな森がある公園で、チェアリングをした。 息子はBurleyが出しているロードバイクに牽引するやつに乗せていったのだが、大きくなったのかちょっと窮屈そうだった。 調べたら耐荷重量 45kgまでなので、まだまだ楽しめそう。 その後はひとり時間をもらい、自転車で近くのカフェに行ってアイスコーヒーを飲みつつ読書をした。

ISUCON11 に出場した

ISUCON11に一人チーム「カフェでまったり」で出場した。 スコアは8300で予選敗退だった。言語は一番手に馴染んでいるRubyを使った。 本戦出場チームの9割がgoを使っていたので、来年からgoに鞍替えするかもしれない。

今回、初参加だったが、準備を全くせずに、ぶっつけ本番だった。

以下、つまずいたポイント。

  1. 初めから入っていたMariaDBのままだと、降順(DESC)のindexを貼れないことに気づかなかった。
  2. GUIツールで直接Indexを貼ってもデプロイすると、Indexが消えてる。 => 0_Schema.sql の最初で DROP TABLE されているので、その後で ADD INDEX する必要があった。
  3. slow log が出なくて、見れなかった。 => 設定ファイルにログの設定を書かなかったことが原因

よかった点は、今回 TablePlus を導入してDBのテーブル構成をスッと確認できたこと。 これのおかげでIndexが貼れてないことにすぐ気づけた。

今回、初めてISUCONに参加することができた。 一人チームでもOKだったので、気軽に参加することができてありがたかった。 ISUCONの良いところは、知っているだけの知識を強制的に実践する場を提供してくれるところだ。 好むと好まざるとにかかわらず、歳をとっていくと自分の思考が井の中の蛙になっていくので、 自分のコンフォートゾーンから出ていく動きを積極的にやって精進していきたい。