MogLog

日記 兼 備忘録

ISUCON10予選にチームモツ鍋として参加した

事前準備 当日朝 予選開始 Botからのリクエストの遮断 MySQLサーバを分離 indexの追加 POST /api/estate/nazotte の効率化 レプリケーションの設定 アプリケーションサーバの複数構成化 バルクインサート 残り数分 全体を通しての感想 2020年9月12日に開催さ…

コードリーディング:DraperのDecorator探索ロジックを追う

想定する状況 最初に結論 コードリーディング Draper::Decoratable#decorate Draper::Decoratable#decorator_class Draper::Decoratable::ClassMethods#decorator_class 感想 Draper が、具体的にどういったロジックでDecoratorクラスを探索するかを調べた。…

instance_doubleとinstance_spyの使い分け

環境・バージョン #instance_double と #instance_spy の違い・共通点 Verifying Doubles as_null_object 存在するメソッドを自動でスタブするか否か APIドキュメントの説明を見る 使い分けの方針 その他参考資料 RSpecの #instance_double と #instance_spy…

IIJmioひかりのインターネットが遅くなってきたので、ルータを変えて接続方式もIPoEに変えたらかなり速くなった

自分はインターネット接続サービスとして IIJmioひかり を使っているのだが、ここ最近どうも速度が遅いなぁと感じていた。特に夕方以降は遅い。 以下は、インターネット回線の速度テストができる fast.com で計測した結果である。 速度には様々な変数が関わ…

git resetをちゃんと理解する

git

はじめに git reset コマンドは何をするのか HEADとは何か git reset [mode] [commit] git reset --soft HEAD^ git reset --mixed HEAD^ git reset --hard HEAD^ おまけ:ファイルパスを指定したgit reset 参考URL はじめに 過去を振り返ってみて、gitの理解…

【Rails】ActiveRecordでJOIN先のテーブルのカラムで絞り込む

#includes や #joins でテーブルをJOINしたときに、軸となるテーブルではなくJOIN先のテーブルのカラムで絞り込む方法について。 例として、デッキとカードという2つのモデルがありデッキがカードをN個持つ関係にあるとする。 app/models/deck.rb class Deck …

AWSアカウントとIAMユーザ

AWSのアカウントとかユーザといった概念をちゃんと理解できていなかったので調べてポイントになりそうなところだけ整理した。 AWSアカウント、ルートユーザ 「AWSを使うぞ」となったらまずアカウント登録が必要になるが、このとき最初に作成するアカウントが…

aws-sdk-s3 for Rubyを使ってみた

今更感があるが、Rubyのaws-sdk-s3 gemを使ってS3と戯れた記録を残す。 事前準備 Gemとしては aws-sdk-s3 だけ使えれば良いので、これをGemfileに書く。 # ./Gemfile source "https://rubygems.org" git_source(:github) {|repo_name| "https://github.com/#…

Rails6で導入されたinsert_all、insert_all!、upsert_allを使ってみる

環境 insert_all, insert_all! upsert_all その他のメモ Rails6にて insert_all, insert_all!, upsert_all という一括作成・更新の機能が導入された。 railsguides.jp これらのメソッドを、公式のAPIドキュメントを読みつつ手元の環境で実際に使ってみた記録…

【Ruby】rescueした例外のmessageを上書きしてre-raiseする

rescueした例外のmessageを上書きしてre-raiseしたい場合、Exception#exception を使うとスッキリ書ける。 https://docs.ruby-lang.org/ja/latest/method/Exception/i/exception.html 引数を指定しない場合は self を返します。 引数を指定した場合 自身のコ…