Vim で snake_case を CamelCase に置換する(Visualモード)

概要 APIのレスポンスのキーはsnake_caseだけど、クライアント側でTypeScriptの型のキーに変換したいという場面に遭遇した。 visual mode => 変換!みたいなことがしたかったので、VsCodeのVimモードにて検証した。 手順 1: visualモードで変換したい範囲を…

Workerの処理でActiveRecord::ConnectionNotEstablishedが発生した件

概要 SQSからキューを取って、DBに書き込むWorkerがActiveRecord::ConnectionNotEstablishedで落ちた件について、調査した。 SQSからのキューが一時的に止まる事象が発生して、長時間DBアクセスが起きない時に発生した。DBはMySQLを利用していた。 エラーの…

異なるファイルに対して共通のフローの処理をしたい場合のディレクトリ構造

概要 異なる種類のファイル(hoge_file, foo_file)に対して、以下の共通の処理をしたいケースを考えます。 1: データ抽出 2: フォーマット 3: データ保存 4: データアップロード ファイルごとにディレクトリを分ける ファイルごとに共通な処理がないような場…

SentryのメッセージにドキュメントのURLを表示したい

アラートには対応するドキュメントがつきもの インシデントが発生した時にSentry通知したいことはよくあリます。 そして対応手順をGitHubのWikiだったりQiitaTeamなどにまとめているチームも多いかと思います。 Sentry通知が来てから、対応手順が書かれたド…

Rails6はいつまでにRails7にあげないといけないか?

最低ライン Severe Security Issuesに関して、Rails6.0.Zのサポートが2023年の6月までサポートと宣言されているので、Rails6.1系にあげている場合でも、 このラインを意識しておくと良いかと思いました。 さらばWebpacker Rails7ではWebpackerが利用されなく…

HTMLの差分検知の時間を短縮する方法は?

短い文字列比較の方が高速なのでは?というアイデア クローラーを作成する時に、対象のURLの内容の変更を検知したいことはよくあるかと思います。 そこで単純にHMTL同士を比較するよりも、ハッシュ関数を利用して作成したダイジェストを比較することで、 時…

Amazon RDS DB インスタンスを変更する時にダウンタイムは発生するのか?

結論 ダウンタイムは発生します。 すなはち、アプリケーションとDBの接続は切断されます。 ダウンタイムを短くするために ほとんどのケースでは、Read Replicaは変更予定のインスタンスを用意して、Write ReplicaとRead Replicaを切り替える方法が最適解かも…