すべての記事
PySide6 実践講座 #5 トレイ常駐とリマインダー — 閉じても死なないアプリ
習慣トラッカーを本物の道具にする条件、常駐を実装します。QSystemTrayIcon でシステムトレイにアイコンとメニューを出す方法、ウィンドウを閉じる操作を終了ではなく非表示に変える closeEvent の処理とその UX 論争、QTimer で毎日決まった時刻にリマインダー通知を送る方法、トレイ通知の限界と OS ごとの違い、そしてアプリが 2 つ立ち上がってしまうのを防ぐ単一インスタンス処理まで扱います。
GitHub Actions 講座 #8 セルフホストランナー — 導入基準、登録、セキュリティ原則
ホストランナーでは足りなくなる 3 つの状況、内部ネットワークへのアクセス、コスト、特殊ハードウェアを導入基準として整理し、ランナーの登録手順とラベルでジョブをルーティングする方法を扱います。パブリックリポジトリでセルフホストランナーを使ってはいけない理由とエフェメラルランナーの運用原則、Kubernetes でランナーを自動スケールする actions-runner-controller まで押さえます。
PySide6 実践講座 #4 統計画面 — QPainter で草むらヒートマップを描く
既製ウィジェットのない画面を自分で描きます。達成率計算や連続記録といった統計ロジックを Qt のない core 層に置いてテスト可能にする方法、paintEvent と QPainter で GitHub の草スタイルのヒートマップウィジェットを描く方法、座標計算とサイズ対応(sizeHint)、マウス位置のセルを特定してツールチップを出すヒットテスト、そして再描画は update() の呼び出しで依頼するというカスタムウィジェットのルールまで扱います。
GitHub Actions 講座 #7 AWS デプロイと OIDC — アクセスキーなしの資格情報
アクセスキーを secrets に保存する方式が抱える流出とローテーションの問題を整理し、ワークフローが短期トークンで AWS のロールを引き受ける OIDC 連携の動作原理を、トークン交換の流れで説明します。AWS 側の信頼構成と sub クレームの制限、configure-aws-credentials アクションと id-token 権限の設定、S3 静的サイトのデプロイ例まで完成させ、デプロイパイプラインの資格情報問題を片付けます。
PySide6 実践講座 #3 今日画面 — カスタムモデルとチェックのトグル
アプリ最初の本物の画面を作ります。リストウィジェットに直接アイテムを入れる方式が実戦ですぐ限界に達する理由、QAbstractListModel を継承してリポジトリをビューにつなぐカスタムモデル、ロール(role)でデータの複数の顔を公開する方法、チェック状態のトグルがモデルを経て DB まで流れる経路、dataChanged シグナルでビューを正確に更新する方法、習慣追加ダイアログまで扱います。
GitHub Actions 講座 #6 Docker ビルドと GHCR プッシュ — タグ戦略とビルドキャッシュ
コンテナイメージをビルドして GitHub Container Registry にプッシュする標準パイプラインを組み立てます。GITHUB_TOKEN だけで完了する GHCR ログイン、metadata-action がイベントに応じてタグを自動決定する仕組み、build-push-action と gha キャッシュでビルド時間を短縮する設定まで扱い、ブランチ・タグ・SHA 別のタグ戦略の実務的な基本形を整理します。
PySide6 実践講座 #2 SQLite データ層 — リポジトリパターンとマイグレーション
アプリの記憶を担うデータ層を作ります。デスクトップアプリで SQLite がデフォルトである理由、OS ごとに違うアプリデータフォルダを正しく見つける方法、習慣とチェック記録のスキーマ設計、SQL を一か所に閉じ込めるリポジトリパターン、そしてアプリの更新後もユーザーデータが壊れないようにする user_version ベースの超シンプルなマイグレーションまで扱います。
GitHub Actions 講座 #5 再利用 — composite action と reusable workflow
複数のワークフローとリポジトリに繰り返されるステップの塊を部品にする 2 つの方法を扱います。ステップのまとまりを包む composite action の action.yml の書き方、ジョブ単位をまるごと呼び出す reusable workflow の workflow_call と inputs、secrets の渡し方、2 つの方式の選択基準と、組織レベルで共有リポジトリに標準化するパターンまで整理します。
PySide6 実践講座 #1 プロジェクト設計 — 習慣トラッカーを作りながら学ぶアプリ構造
PySide6 入門を終えた人が、実際のアプリひとつを完成まで持っていく実践シリーズの第 1 回です。何を作るのか(ローカルの習慣トラッカー)となぜこの題材なのか、機能要件を画面単位に分解する方法、UI・コア・データの 3 層にコードを分ける構造とその理由、uv ベースのプロジェクトセットアップ、そしてこの先 8 回を支えるメインウィンドウの骨組みまで作ります。
GitHub Actions 講座 #4 マトリックス・キャッシュ・アーティファクト — 組み合わせ実行と時間・コスト削減
1 つのジョブ定義を複数バージョンと OS の組み合わせに増やすマトリックス戦略を include、exclude、fail-fast オプションと合わせて扱い、依存関係のインストール時間を減らす actions/cache の key と restore-keys の設計、setup 系アクションの内蔵キャッシュオプションを整理します。ジョブ間でファイルを渡すアーティファクトのアップロードとダウンロード、保存期間の設定まで、実行時間とランナーのコストを減らす観点でまとめます。
REST vs GraphQL vs tRPC — API スタイルの選択基準
新しいプロジェクトの API を何で作るかを決める基準を整理します。リソースと HTTP のセマンティクスの上に立つ REST の強みとオーバーフェッチ問題、クライアントが必要なデータをクエリで宣言する GraphQL が解決するものと新たに抱えるコスト、TypeScript のモノレポで型を端から端までつなぐ tRPC の魅力と明確な適用限界、そして公開の有無・クライアントの多様性・チーム構造という 3 つの軸で分かれる選択基準まで扱います。
eBPF 整理 — カーネルを再コンパイルせずに拡張する技術
可観測性・ネットワーキング・セキュリティツールの基盤技術になった eBPF を整理します。カーネルモジュールの危険とユーザースペースの限界の間に eBPF が開く第三の道、検証器が無限ループと不正なメモリアクセスを遮断する安全モデル、kprobe・tracepoint・XDP といったフック地点、bpftrace のワンライナーから bcc、libbpf へ上がる道具のはしご、Cilium・Falco といった代表的な活用先、そしてカーネルバージョンと権限という現実的な制約まで扱います。