Tech Hotoke Blog

IT観音とは私のことです。

CodeBuildを使用したビルドエラー解決方法

これは何? AWS CodeBuildを使用して、Reactのソースコードをビルドしていた。エラーが発生したため、その対処方法のメモ。 前提 ランタイム Node.js: 18 Tips error [Container] 2024/04/17 01:24:29.689519 Running command n 18 && rm -rf /tmp/* install…

で、結局preload, eager_load, includesのどれを使うのがよろしいの? #Ruby on Rails #ActiveRecord

これは何? preload, eager_load, includesを見かけるたびに、あれ、これってどういう挙動をするんだっけ?と調べているのでメモ。 前提 Ruby 3.03 Rails 7.04 Tips 結論 eager_load 1対1あるいはN対1のアソシエーションをJOINする場合に使う preload 多対多…

RFC 2397に定義されたデータURLスキームを読んでみた。

これは何? AntD Reactの実装中にImageコンポーネントを使った。 その際に、srcのフォーマットについて調べてみた。 Tips base64に変換されたPDFファイルの場合、Imageコンポーネントのsrcプロパティには、以下のような値を渡す必要がある。 data:applicatio…

#ReactQuery フェッチタイミングの制御Tips #invalidateQueries #resetQueries

これは何? ReactQueryのフェッチタイミングの制御とかを触った。毎回調べている感じがするので、メモ。 前提 React: 18系 TypeScript: 4系 TanStack Query: 4系 Tips const { data } = usePlaylistAutoProgram(playlist?.playlistUid) useEffect(() => { if…

チリも積もれば山となる。パフォーマンスを測定してわかったリファクタリングの効果 #Ruby #Rails

これは何? コードのリファクタリングの際に、パフォーマンスの計測まで行ってみたら結構な差が出てきたので、メモ。 前提 Ruby 3.2 Rails 7.0.4 Tips mapを使っていた箇所をpluckを使ってリファクタリングしてみた before user_ids =Pls.where(pl_id: pl.id…

AWS SESの通知ステータスを環境別に振り分ける方法 #AWS #SES #Lambda #Ruby #技術メモ

これは何? STG/PRD環境で、AWSアカウントを共有している時、AWS SESの通知ステータスを環境別に振り分ける場合の対処法の一つをメモ 前提 Ruby 3.2 AWS SES, SNS, SQS, Lambda Tips 要件 STG/PRD環境で、AWSアカウントを共有している SESで配信されたメール…

#Lambdaレイヤー導入メモ #Ruby #AWS

これは何? Lambdaのレイヤーを使用したので、操作手順などの備忘録 前提 ランタイム: Ruby3.2 アーキテクチャ:x86_64 Tips Lambdaレイヤーはどんなときに使う? デプロイパッケージのサイズを小さくするため。関数の依存関係を関数から切り離せるので。 …

#RSpec Mock: 引数に応じて返り値を変える方法 #Ruby

これは何? RSpecを書くときの小技メモ。 前提 RSpec 3.12.0 Tips RSpecで特定のメソッドをMockする Mockするメソッドはテストの中で流用されている 引数などの条件によって返り値を変えたい どうする? A: receiveメソッドにはブロックが渡せるので、ブロ…

スッキリ!Rubyコード改善術: おしゃれにHashを追加してみた #Ruby #Ruby on Rails #Rails

これは何? 条件によってHashにプロパティを追加したい場合に、一行一行追加する記述が冗長だったので、もう少しRubyっぽく書けないか施工錯誤したメモ。 結論はtapを使うといい感じだった。(サンプルの例がダサいコードの方がスッキリ見えてしまい申し訳な…

デバッグ方法:AWS ECSタスク更新時のトラブルシューティング

これは何? AWS ECSのタスクがデプロイ時に正常に更新されなかった場合のデバッグ方法のメモ 前提 AWS Pipeline, CodeBuild, ECSを使用していること Tips Pipeline・CodeBuildともにステータスに異常はない ECSのタスクを確認すると、タスクが更新されていな…

useEffect × ReactQueryを使った、処理実行順序の制御

これは何? カスタムフックの処理が実行される前に、useEffectの処理を先に行いたいケースが出てきた。その際にすぐに解決方法がわからなかったので備忘録として書く。 前提 React18 TypeScript: 4.7.4 ReactQuery ReactHookForm Tips ケース 画面遷移時にus…

AWS Lambda 入門

これは何? AWS Lamdaを触ることになった。とりあえず、なんとなくの雰囲気で実装してみたところ、かなり初歩の段階でエラーが発生した。 この機会なので、学習を兼ねて、まずはちゃんとドキュメントを読んでからエラーの解消にあたって行こうと思い書いてま…

AWS IAM インラインポリシーの設定方法

これは何? インラインポリシーの設定方法を忘れてしまった AND 検索してもすぐに見つからなかったので備忘録として 設定方法 任意のロールを作成する 任意のロールを選択する 許可タグの許可ポリシーから、インラインポリシーを作成を選択 任意のポリシーを…

AWS SNSとSQSの連携についての学習メモ

これは何? AWS SNSって何? A2Aメッセージング A2P(aplication-to-person)通知 標準および FIFO トピック メッセージの耐久性 デッドレターキュー メッセージのアーカイブ、リプレイ、および分析 メッセージ属性 メッセージのフィルター処理 メッセージセキ…

【Cypress】cy.get()とcy.contains()の違い

前提 Cypress: 13.0.2 以下のコードの違いは何でしょうか? cy.get('tr:contains(User 1)') cy.contains('tr', 'User 1') こんな違いがある cy.get()は一つ以上のDOM Elementを取得する cy.contians()は一つのDOM Elementを取得する つまり、以下のようにな…

【ネットワーク】SessionとCookieについて

What is this? Sessionと Cookieについて言語化して整理したもの。メモ書き。 assumption HTTP通信における話に焦点が当たりがち Cookie Webブラウザに保存されたデータのこと CookieはサーバーからのHTTPレスポンスのSet-Cookieヘッダーを使用してWebブラウ…

【DB】インデックスについて

What is this? 達人に学ぶDB設計徹底指南書を参考にインデックス、Explainによる実行計画の調査方法などをメモ的にまとめたもの assumption MySQL 5.7 Mac Intel Rails 6 インデックスとは? まず、DBのパフォーマンスを決める要素は主に以下の二つが存在す…

【DB × Rails】トランザクション、排他制御について 時々 Rails

What is this? 一般的なトランザクションと排他制御に関するまとめとそれをRailsで実現するためのメモ書き Assumption RDBSにおける話 Railsを使う前提 トランザクションについて > ITの分野では、取引記録などの意味の他に、ソフトウェアの処理方式の一つで…

【DB】木構造

what is this? テーブル設計の際に、木構造のデータを表現する方法をメモとしてまとめたもの assumption Mysql 5.7.37 木構造とは? こんなやつ ノード 木の結節点 ルートノード 木の始点となるノード(treeはルートノードを一つしか持たない) リーフノード…

【DB】正規化について

正規化の目的 データの冗長性の排除し、データの一貫性の担保、更新時などの効率上げること 正規化について 基本的に第三正規化まで原則として行う 第四正規化以降は高次正規化と呼ばれる 検索パフォーマンスとデータ生合成のトレードオフ 引用:達人に学ぶD…

【Rails】Railsアプリケーションの国際化対応

目的 環境 i18nとは? アプリケーションの「国際化」 Railsにおける国際化 リクエスト間でロケールを管理する around_actionについて ロケールファイルの作成 参考 目的 Railsアプリケーション国際化対応の備忘録として 環境 Rails 6.1.5 Ruby 3.1.1 Mac Cat…

【Ruby】mysql2 gemインストール時のトラブルシュート

目的 トラブルシューティングの備忘録として 環境 OS:Mac Catalina 10.15.7 Intel Ruby:3.0.2 Rails :6.1.4 エラー内容 current directory: /Users/yudai/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/mysql2-0.5.3/ext/mysql2 /Users/yudai/.rbenv/v…

【IntelliJ】コマンドラインからプロジェクトを立ち上げる

経緯 いちいちfinderからプロジェクトのフォルダを選択するのが面倒臭く、VSCodeのようにコマンドラインからプロジェクトを立ち上げることが可能か調べてみた。 環境 Mac OS InteliJ 2021.3.1(Ultimate Edition) 操作 idea <立ち上げたいプロジェクト名>を…

【Git】プルリクエストに含まれる不要なコミットを削除する

Git

目的 Gitをなんとなく使わないようにするために、操作で詰まったこと、やりたいことの対処方法をまとめて、それらを深堀して理解を深めること 前提 Gitがインストールされていること GitHubのアカウントが存在すること GitHubにリポジトリが存在すること IT…

【Linux】さくらVPSにインストールしたサーバーにクライアント側からSSH接続でログインする

目的 環境 前提 作業 管理用ユーザーの作成 SSHの設定を書き換え~接続試行 SSHキーの生成から転送 パスワードなしで接続を可能にする Permission denied (publickey)の解消 補足 参考 目的 表題の作業の手順や注意すべきポイント、 自分のエラーの記録などを…

【Linux】Vimとお友達になりたいドン!~Vimのカスタマイズ~

目的 敬遠されがちなVimと是非ともお近づきになって、テキストエディタ何使ってますか?「Vim」です(ドヤァ)ってなること 前提 Linuxの使用経験があること Linuxの基本的な知識があること Vimが嫌いなこと 環境 Debian11 bash 設定ファイル ~/.vimrc クリ…

【Linux】メモーさくらVPSのVNCコンソールの沼に浸った件ー

環境 OS:Debian11 amd さくらVPS リアルで使用しているキーボード:日本語配列 経緯 さくらVPSのVNCコンソール上で、rootユーザーのパスワード設定、一般ユーザーの設定などを行った後に、シリアルコンソールやクライアントからSSH接続を試みても、認証が通…

【Linux】Linux 再入門

目的 Linuxの基本的な構成などを体系的にまとめること 前提 ローカル環境:Mac OS サーバー環境:Debian11 基本的なLinuxの知識があること Linuxの各コマンドの説明は一部にとどめる Linuとは? カーネル Linux = カーネル(OSの中核的存在)で単体で動作する…

スクラム開発実践入門のまとめ

目的 読者のレベル感 ソフトウェア開発の困難にスクラムで立ち向かう ソフトウェア開発を困難にする要因 スクラムとは? スプリント 役割 スクラムで立ち向かう スクラムにおけるロール プロダクトオーナー 開発チーム スクラムマスター スクラムイベント 目…

さくらVPSにLinuxをインストールする

目的 前提 やること VPSとは? レンタル〜OSインストール パーティショニングとは? SSH接続の設定 目的 学習用のLinux環境をさくらVPS上に構築すること 前提 さくらVPSの会員登録が完了していること 基本的なネットワークの知識があること 基本的なLinuxの…