MogLog

日記 兼 備忘録

timecopはどのようにして時を止めているか

最初に結論 想定するケース コードリーディング 規模感の把握 .freeze の定義元へ向かう .send_travel の定義元へ向かう instance を調べる #travel の定義元へ向かう .send_travel を再確認 :thinking_face: time_extensions まとめ timecop というgemがど…

ruby-buildとrbenvのプラグイン機構

ruby-buildとは何か rbenv install コマンドはruby-buildが提供している rbenvはどのようにしてプラグインを読み込むか おまけ:さらに深ぼってみる まとめ 参考 前回の記事 に続いてrbenvネタ。 今回は、ruby-buildとrbenvの関係について。 ruby-buildとは…

rbenv rehashをちゃんと理解する

rbenv rehashとは何か rbenv initがやっていること いつ rbenv rehash を実行すればいいか 実際に試してみた rehashをいつ実行するか?の考察 まとめ 雰囲気で使っているものをちゃんと理解しようという取り組みを時々しており、今回は複数のバージョンのrub…

NERDTree上でファイルの新規作成、リネーム、削除をする

vim

小ネタ。 NERDTree というファイルエクスプローラ用のVimプラグイン上でファイルの新規作成やリネーム、削除をする方法をgif動画付きでご紹介。 ファイルの新規作成 NERDTreeを起動 → m キーでNERDTree menuを開く → a キーで新規作成 ファイルのリネーム NE…

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 …