すべての記事

Python パッケージング #1 仮想環境 — 環境が壊れる仕組みと venv
読了 5分

Python パッケージング #1 仮想環境 — 環境が壊れる仕組みと venv

Python 環境が壊れる構造的な原因から整理します。import がパッケージを探す順序と site-packages が 1 つしかないことで生まれる衝突、システム Python に触ってはいけない理由と PEP 668 エラーの意味、venv でプロジェクトごとに環境を分離する方法、activate の正体が PATH の操作にすぎないことまで扱います。

CDN が速度を上げる方法 — キャッシュヒットから動的コンテンツまで
読了 5分

CDN が速度を上げる方法 — キャッシュヒットから動的コンテンツまで

実務者の観点で CDN の動作を整理します。距離(RTT)を縮めるエッジの構造、キャッシュヒット率を決める Cache-Control とキャッシュキー、無効化とデプロイの戦略、キャッシュできない動的コンテンツまで CDN が助ける仕組み(TLS 終端・コネクション再利用)、そしてヒット率を削るよくある間違いを扱います。

NAT Gateway 料金の削減 — 時間単価ではなくデータ処理料金が本体です
読了 6分

NAT Gateway 料金の削減 — 時間単価ではなくデータ処理料金が本体です

NAT Gateway の請求書を分解し、削減の順序を整理します。時間あたり・データ処理・インターネット転送が重なる 3 層の課金構造、ダウンロードにも処理料金がかかる見落とし、無料のゲートウェイエンドポイントからインターフェイスエンドポイント、IPv6、NAT インスタンスまで続く迂回ルートごとの損益、トラフィックの主犯を見つける診断方法、マルチ AZ 配置のコスト構造まで扱います。

PySide6でデスクトップアプリを作る #4 Qt DesignerとUIファイル — 画面を描いて読み込む
読了 8分

PySide6でデスクトップアプリを作る #4 Qt DesignerとUIファイル — 画面を描いて読み込む

PySide6に同梱されるQt Designerで画面を描き、.uiファイルをpyside6-uicとQUiLoaderの2つの方式で読み込む方法を整理します。コードと画面を分離するワークフローをToDoアプリのフォームで実習します。

DynamoDB vs RDS — AWS データベースの選択基準
読了 6分

DynamoDB vs RDS — AWS データベースの選択基準

DynamoDB と RDS を分ける実務基準を整理します。キーバリューとリレーショナルというデータモデルの違い、リクエスト単位課金とインスタンス時間課金が分ける請求書の構造、アクセスパターンを先に設計する必要がある DynamoDB の制約、GSI が書き込みコストを倍数にする落とし穴、トラフィックパターンで分ける判断の手順と両方を併用する構成まで扱います。

PySide6でデスクトップアプリを作る #3 シグナルとスロット — イベント処理の核心
読了 6分

PySide6でデスクトップアプリを作る #3 シグナルとスロット — イベント処理の核心

Qtのイベント処理の中心であるシグナルとスロットのモデルを整理します。clicked.connectから引数つきシグナル、Signalで宣言するカスタムシグナルまで学び、ToDoアプリに実際の動作をつなぎます。

Redis が速い理由 — メモリ、シングルスレッド、データ構造
読了 5分

Redis が速い理由 — メモリ、シングルスレッド、データ構造

Redis が毎秒数十万リクエストを処理する構造的な理由を整理します。ディスクのないメモリアクセス、ロックの要らないシングルスレッドのイベントループ、目的に合わせて実装されたデータ構造という三本の柱と、シングルスレッドの罠(遅いコマンド一つが全体を止める構造)、そして Redis が遅くなるケースまで扱います。

MCP(Model Context Protocol)整理 — AI がツールを使う標準
読了 6分

MCP(Model Context Protocol)整理 — AI がツールを使う標準

AI エージェントの記事のたびに登場する MCP を 1 本で整理します。ツール連携の N×M 問題を標準インターフェースで解く構造、Function Calling との関係、ホスト・クライアント・サーバーと tools・resources・prompts のプリミティブ、2026 年現在の採用状況と財団への移管、サードパーティサーバーの信頼やプロンプトインジェクションといったセキュリティの注意点、導入が必要な場合とそうでない場合まで扱います。

PySide6でデスクトップアプリを作る #2 ウィジェットとレイアウト — 画面を組み立てる
読了 6分

PySide6でデスクトップアプリを作る #2 ウィジェットとレイアウト — 画面を組み立てる

よく使うウィジェットをカタログとして整理し、QVBoxLayoutとQHBoxLayoutを入れ子にして実戦的な画面を組み立てます。シリーズを通して拡張していくToDoアプリの画面の骨組みを立てます。

データベースのインデックスがやっていること — B-tree、検索コスト、書き込みのコスト
読了 5分

データベースのインデックスがやっていること — B-tree、検索コスト、書き込みのコスト

インデックスが検索を速くする原理を B-tree の構造から解きほぐします。フルスキャンとのコストの差、複合インデックスとカラムの順序、インデックスがただではない理由(書き込みコスト・保存領域)、どのカラムにインデックスを作り、どのカラムには作らないかの実務基準まで整理します。

PySide6でデスクトップアプリを作る #1 PySide6とは — QtとPythonでデスクトップアプリ
読了 7分

PySide6でデスクトップアプリを作る #1 PySide6とは — QtとPythonでデスクトップアプリ

Pythonでデスクトップアプリを作る選択肢を比較し、Qt公式バインディングであるPySide6を選ぶ理由を整理します。インストールから最初のウィンドウを表示し、イベントループの意味を理解するところまで進めます。

RAG vs ファインチューニング vs ロングコンテキスト — LLM に知識を入れる方法の選択
読了 6分

RAG vs ファインチューニング vs ロングコンテキスト — LLM に知識を入れる方法の選択

LLM に自社データを入れる 3 つの方法を分ける実務基準を整理します。検索して注入する RAG、重みを変えるファインチューニング、丸ごと入れてキャッシュするロングコンテキストの構造の違い、ファインチューニングは知識ではなく振る舞いを教える道具だという境界、更新頻度と知識のサイズで分ける判断の手順、3 つを組み合わせる実戦構成まで扱います。