はてぶ・Qiita・Zennのトレンド記事を紹介
Rails + OTel + AWS X-Ray で実現するリクエストの構造化トレース 🔖 1
Rails 8.1アプリケーションにOpenTelemetry(OTel)の自動計装を導入すると、HTTPリクエストの処理がController、DBクエリ、View描画といったSpan単位で構造化され、AWS X-Rayのタイムラインでボトルネックを一目で特定できるようになりま
Web Push APIはなぜ外部サービスなしで通知を届けられるのか — 仕組みとRails実装 🔖 2
Web Push APIはW3C/IETF標準のプロトコルであり、FCMやOneSignalといった外部サービスのアカウント登録やAPIキー取得なしに、サーバーからブラウザへプッシュ通知を送信できます。アプリサーバー、プッシュサービス、ブラウザの3者間で、VAPID認証による身元
RubyLLMで始めるLLM Agentプログラミング — 構成要素の理解から実装まで 🔖 2
LLM Agentは「Agent定義」「Tool Calling」「構造化出力」「マルチエージェントワークフロー」の4つの構成要素に分解できます。Anthropic、OpenAI、Googleが公開しているエージェント設計ガイドでも、表現は異なるものの「LLM + ツール + オ
Kamalは常にHEADをビルドする — リリースタグとpre-buildフックで本番デプロイを制御する
Kamal v2はVERSION環境変数を指定しない場合、HEADのコミットSHAをDockerイメージのタグ名に使います。ではVERSIONにタグ名やコミットIDを指定すれば、そのコミットがビルド・デプロイされるのでしょうか?されません。VERSIONはイメージのタグ名を決める
Rails enum のカラム型、integer・string・PostgreSQL native enum をどう選ぶか
Rails の ActiveRecord::Enum で、カラム型に integer・string・PostgreSQL native enum のどれを選ぶべきか。多くのケースでは string 型 + CHECK 制約が最適です。本記事では3つの選択肢のトレードオフを整理し、
Dev ContainerでClaude Codeのプラグインマーケットプレイスのプラグインを読み込めなくなる問題を解決する
Dev Container環境でホストのClaude Code設定をバインドマウントで共有すると、プラグインマーケットプレイスからインストールしたプラグインをコンテナ内で読み込めなくなります。バインドマウント先をホストと同じパスに変更し、CLAUDE_CONFIG_DIR環境変数
RailsアプリにLLMオブザーバビリティを導入する — Langfuse + langfuse-rb gem
!この記事の執筆にあたり、AIによる支援(レビュー、文章の整形、ファクトチェック)を受けています。内容の正確性については可能な限り筆者が確認していますが、もしも誤りを見つけた場合はコメントでお知らせ頂けると嬉しいです。RailsアプリケーションでLLMを活用する際、プロンプ
Dockerのuserns-remapが有効な環境でボリュームマウントの書き込みに失敗する
TL;DR現象: コンテナ内でrootなのにマウントしたボリュームに書き込めない原因: userns-remapによりコンテナ内のUID=0がホスト上では別のUID(例: 165536)にマッピングされている解決策: ホストディレクトリの所有者をマッピング後のUID
Rails Engine で tailwindcss-rails を使う方法 🔖 1
はじめにRails Engineを使ったモジュラーモノリス構成において、各Engine独立したTailwindCSSの管理方法について、tailwindcss-rails gemを用いた実装方法を詳しく解説します。https://railsguides.jp/engines.
Claude Code で作業プロファイル機能を実装して効率的にAI活用する
はじめにAI エージェントを活用した開発では、適切なコンテキスト設定が作業効率を大きく左右します。Claude Code では、 CLAUDE.md にコンテキストとして必要な指示や説明を記載することで、プロジェクト固有の事情にも対応することができます。本記事では、私が開発プ
Sentry Logsで実現するRailsアプリの構造化ロギング 🔖 1
はじめにRailsアプリケーションの運用において、ログの管理は問題発生時のデバッグやサービス監視のために重要な構成要素です。しかし、従来のテキストベースのログでは、エラー発生時に複数のツールを行き来しながらログを検索し、原因を特定する必要がありました。この記事では、Sentr