マッスル・メモリー

筋肉エンジニアのブログ

2023-01-01から1年間の記事一覧

頭のいい人が話す前に考えていること 要約・感想

要約 「知性」と「信頼」を同時のもたらす7つの黄金法則 1.とにかく反応するな 人は怒っている時は頭が悪くなる。 何か言いたくなった時、冷静になるために口を閉じる。 2.頭の良さは他人が決める 人は頭の良い人の話を聞こうとする。 相手が何を求めている…

2023年を振り返る!

昨年に引き続き今年も1年の振り返りをしたいと思います! 2022年を振り返る!(筋肉8割エンジニア2割) - マッスル・メモリー 期間別振り返り 1月-3月 減量、仕事追い込み 毎年同様、昨年の12月頭から減量を開始、過去の減量の経験から比較的順調に進んでい…

【Shell, Linux】特定のディレクトリ内のファイル名でgrepしたい

開発中不要なファイルを削除したいことがよくありますが、そのファイルが他の場所で使用されているかどうかを確認する必要があります。 特に特定のディレクトリ内で一括して調べるには手動で1ファイルずつ調査するのは非効率的です。 そこで、以下のコマンド…

【fnm, node.js】fnmを使ってnode.jsをプロジェクトごとに管理する。

js

Dockerを導入していないプロジェクトがある場合にプロジェクトごとにnodeのバージョンを管理したい。 そんな時はfnmを使用する。 fnmとは、Rustで構築された高速でシンプルなNode.jsバージョンマネージャ。クロスプラットフォームのサポート(macOS、Windows…

【DB, MySQL】経路列挙モデルを用いたテーブル

特徴 メリット デメリット どのような場合に採用するか データの操作 準備 ルートを求める リーフを求める ノードの深さ求める ノードを追加する ノードを削除する 特徴 リレーショナルデータベースでツリー構造のテーブルを表現するための方法の一つ。 ツリ…

【Rails】 count, length, sizeの違いと使い分け案

count キャッシュしない。 毎回sqlのcountを使ってカウントする。 最新の件数を取得できる。 area = Area.first # 毎回sqlが発行される area.sub_areas.count # (0.4ms) SELECT COUNT(*) FROM `sub_areas` WHERE `sub_areas`.`area_id` = 1 # => 1 area.sub_…

【Rails】 N + 1問題の解決法、preload, eager_load, includes, joinsの使い分け案

N+1問題とは ループ処理の中でその都度クエリを発行してしまいパフォーマンスが低下してしまうこと。 解決策の1つは、Eager Loading(積極的な先読み)を使用すること。 Eager Loadingでは、関連するデータを事前にまとめてロードすることで、N回のクエリを…

AWS Application Load Balancerでuser-agentを指定してアクセスを制限

先日業務で運用しているサーバーがAmazonbotというクローラーによる過剰なアクセスでサーバーに負担がかかっていました。 その際にAWS Application Load Balancerでuser-agentを指定してアクセスを制限したのでその方法を書き残したいと思います。 EC2 > ロ…