Skip to content

Instantly share code, notes, and snippets.

View snaga's full-sized avatar

Satoshi Nagayasu snaga

View GitHub Profile
@snaga
snaga / pocket2 サーバーレス移行完了報告書.md
Last active November 7, 2026 06:13
🚀 AWS Lambda Web Functions × DynamoDB への全面リアーキテクチャとコスト99%削減の実証

🚀 AWS Lambda Web Functions × DynamoDB への全面リアーキテクチャとコスト99%削減の実証

  • 作成日: 2026年11月7日
  • プロジェクト: パーソナルインテリジェントブックマーク管理システム (pocket2)

1. エグゼクティブサマリー (Executive Summary)

本プロジェクトでは、従来常時稼働の単一 EC2 インスタンス(Amazon Linux, SQLite, FastAPI)上で稼働していたパーソナルインテリジェントブックマーク管理システムを、AWS の最新サーバーレス機能である AWS Lambda Web Functions (Node.js 24 Arm64)、Amazon DynamoDB (Single-Table Design)、DynamoDB Streams、および Amazon CloudFront を組み合わせた「完全サーバーレスアーキテクチャ」へと全面刷新した。

@snaga
snaga / 世論調査における統計誤差と前回比較の数理的限界.md
Created November 3, 2026 01:42
世論調査における統計誤差と前回比較の数理的限界

世論調査における統計誤差と前回比較の数理的限界

メディア各社が定期的に報じる内閣支持率や政党支持率の世論調査において、「前回調査から 2.1 ポイント下落」「支持率が 1.5 ポイント微増」といった微小な変動が大きく政治ニュースの見出しを飾ることが多い。

しかし、標本調査(サンプリング調査)の数理モデルと、独立した2時点間の差の検定(分散の加法性)を厳密に計算すると、「数ポイント程度の増減は統計的なサンプリング誤差の範囲内にすぎず、世論が動いた証拠とは言えない」 という冷厳な数学的事実が浮き彫りになる。

本稿では、JNN(TBS系)が実施したRDD電話世論調査の実データをベースに、単一調査における標本誤差、時系列(前回比較)で誤差が拡大するメカニズム、およびデータリテラシーとしての解釈指針を数理的に整理する。


@snaga
snaga / 形式手法を活用したシステム開発と品質管理.md
Created October 31, 2026 09:56
形式手法を活用したシステム開発と品質管理(Formal Methods in Modern SE & QA)

形式手法を活用したシステム開発と品質管理(Formal Methods in Modern SE & QA)

1. エグゼクティブサマリ&設計思想

1.1 なぜいま形式手法なのか

「テストはバグが存在することを示せても、バグが存在しないことは示せない」――Edsger W. Dijkstraが遺したこの警鐘は、半世紀を経た現代の分散クラウドやAIエージェント時代において、かつてない現実味を帯びて開発現場に突き刺さっている。

どれほど単体テストや結合テストのカバレッジを90%以上に引き上げても、非同期処理の偶発的なインターリーブ、ネットワーク分断時の状態不整合、境界値の組み合わせ爆発を人間がテストコードだけで網羅することは物理的に不可能である。特に24時間365日稼働を要求されるエンタープライズシステムや金融基盤では、「100万回に1回しか起きない競合バグ」が本番環境で数億円規模の障害を引き起こす。

@snaga
snaga / AIエージェント_Pi_エコシステムと拡張アーキテクチャ徹底調査.md
Created October 31, 2026 02:39
AIエージェント「Pi」エコシステムと拡張アーキテクチャ徹底調査

AIエージェント「Pi」エコシステムと拡張アーキテクチャ徹底調査

1. エグゼクティブサマリ:なぜ今、Pi(π)なのか

Mario Zechner(libGDX作者)と Armin Ronacher(Flask / Rye / Sentry作者)率いる Earendil チームが開発する Pi(@earendil-works/pi-coding-agent) は、既存の巨大・モノリシックなAIコーディングエージェント(Claude Code、Cursor、Aider等)に対するアンチテーゼとして設計されたオープンソースエージェントである。

                    ┌─────────────────────────────────────────┐
                    │            User / TUI / RPC             │
@snaga
snaga / Understanding Ownership - The Rust Programming Language_JA.md
Last active October 24, 2026 10:15
Understanding Ownership - The Rust Programming Language_JA

Understanding Ownership - The Rust Programming Language

Understanding Ownership

所有権(Ownership)はRustの最もユニークな機能であり、言語の残りの部分すべてに深い影響を及ぼしている。ガベージコレクタを必要とせずにメモリ安全性を保証できるのはこの機能のおかげであり、所有権がどのように機能するかを理解することは絶対に欠かせない。本章では、所有権に加えて、関連するいくつかの機能である借用(borrowing)、スライス(slices)、そしてRustがメモリ上にデータをどのように配置するかについて解説する。

What Is Ownership?

*所有権(Ownership)*とは、Rustプログラムがメモリをどのように管理するかを統制する一連の規則である。すべてのプログラムは、実行中にコンピュータのメモリをどのように使用するかを管理しなければならない。一部の言語には、プログラムの実行中に不要になったメモリを定期的に探索するガベージコレクション(GC)が存在する。また別の言語では、プログラマが明示的にメモリを割り当てて解放しなければならない。Rustは第3のアプローチを採用している。メモリは、コンパイラがチェックする一連の規則を備えた所有権システムを通じて管理される。これらの規則のいずれかに違反した場合、プログラムはコンパイルを通過しない。所有権のどの機能も、プログラムの実行速度を低下させることはない。

@snaga
snaga / Rustチュートリアル_Module04_疑問点とハマりどころ徹底解説.md
Created October 24, 2026 09:07
Rustチュートリアル Module 04 疑問点とハマりどころ徹底解説

Rustチュートリアル Module 04 疑問点とハマりどころ徹底解説

本書は、Rustチュートリアル Module 04(エラーハンドリングの流儀とthiserror・anyhow)の実装・写経過程において、C/C++、Go、Java、Python、TypeScript等のバックグラウンドを持つシニアエンジニアが実際に直面した疑問点、ハマりどころ、コンパイルエラー、および設計判断を体系的にまとめた技術ノートである。

特に、**「なぜRustの文法は記号密度が高く読みにくいのか」という構文論から、「Rustは文(Statement)ではなく式(Expression)の言語である」**という根本的なメンタルモデルの転換まで、実務で躓きやすいポイントを物理挙動レベルで深掘りする。


目次

@snaga
snaga / Rustチュートリアル_Module04_エラーハンドリングの流儀とthiserror・anyhow.md
Created October 24, 2026 09:06
Module 04: エラーハンドリングの流儀とthiserror・anyhow

Module 04: エラーハンドリングの流儀とthiserror・anyhow

ようこそ第4モジュールへ! このモジュールでは、Rustを実務で書く上で避けて通れない エラーハンドリングの哲学とエコシステム をマスターします。

Javaのチェック例外(Checked Exceptions)、Goの if err != nil の多重反復、Pythonの try-except 暗黙伝播――これらと一線を画す、型安全で表現力豊かな Result<T, E> と ? 演算子のエレガントな世界に飛び込みます。


🏛️ 1. アーキテクチャ解説:パニックとResultの境界線

@snaga
snaga / Rustチュートリアル_Module03_疑問点とハマりどころ徹底解説.md
Created October 17, 2026 10:20
Rustチュートリアル Module 03 疑問点とハマりどころ徹底解説

Rustチュートリアル Module 03 疑問点とハマりどころ徹底解説

本書は、Rustチュートリアル Module 03(構造体・Enum・パターンマッチ・ドメイン型設計)の実装過程において実際に生じた疑問点、コンパイルエラー、設計上の迷い、およびその解決策をシニアエンジニア向けに体系的にまとめた技術ノートである。

他言語(C++、Go、Java、TypeScript等)のメンタルモデルとRustの厳格な型システム・所有権モデルの間に横たわるギャップを浮き彫りにし、実務で安全なドメインモデルを構築するための指針を提供する。


目次

@snaga
snaga / Rustチュートリアル_Module03_構造体・Enum・パターンマッチによるドメイン型設計.md
Created October 17, 2026 10:18
Module 03: 構造体・Enum・パターンマッチによるドメイン型設計

Module 03: 構造体・Enum・パターンマッチによるドメイン型設計

ようこそ第3モジュールへ! このモジュールでは、Rustを「単なるCの代替」から「世界で最も堅牢なドメインモデリング言語」へと昇華させる 代数データ型(Algebraic Data Types: ADT)とパターンマッチ を学びます。

関数型言語(OCaml/Haskell)の表現力と、システムプログラミング言語のゼロオーバーヘッド性能が融合したRustの型システム。その神髄である 「Make Illegal States Unrepresentable(不正な状態を型で表現不可能にする)」 設計哲学を体得します。


🏛️ 1. アーキテクチャ解説:代数データ型とメモリ配置

@snaga
snaga / arXiv論文図表クリッピングのアーキテクチャ比較:現行PyMuPDFとJev1.14ハイブリッド構想.md
Created October 15, 2026 13:26
arXiv論文図表クリッピングのアーキテクチャ比較:現行PyMuPDF/VLMとJev 1.14マルチモーダル・ハイブリッド構想

arXiv論文図表クリッピングのアーキテクチャ比較:現行PyMuPDF/VLMとJev 1.14マルチモーダル・ハイブリッド構想

📌 概要

arXiv論文サマライズ(arxiv-research-summarizer スキル)における図表(Figure / Table)の抽出・クリッピングタスクについて、従来の 「PyMuPDFベクター解析 + 生成VLM(Gemini/Claude)目視アタリ」 方式と、TypeSafe Jev 1.14.0 マルチモーダル機能(box & noul) のフィージビリティを実測検証した。

本ノートでは、現行ワークフローとJev単体置換、および両者の強みを統合した 「Jevフィルタリング + PyMuPDFベクタースナップ」ハイブリッド構成案 を多面的に比較し、今後の実装指針を定義する。