jedipunkz 🚀 のブログ

SRE になるために孊んでいくブログです

哲孊ノヌト管理術 研究動向を自動収集する仕組みを Go Scraper ず Obsidian で䜜った

jedipunkz🚀 です。 最初に、これから曞く仕組みの完成むメヌゞずしお、実際に scrape 凊理が走っおいる動画を貌っおおきたす。docker compose up scheduler で Go 補スクレむパヌが PhilArchive / PhilPapers / arXiv を巡回し、inbox/ 配䞋に Scrape 結果が次々ず曞き出されおいく様子です。 個人で哲孊者・著䜜ごずのノヌトを管理しおいるのですが Notebook LM や Claude Cowork を䜿い色々ず詊しおきたものの䞋蚘の点を課題ずしお持っおいたした。 新しい情報源の取埗の自動化 モバむルアプリでの蚘事の敎理 そこで、Go 補スクレむパヌを Docker Compose で定期実行し、PhilArchive / PhilPapers / arXiv ずいった情報源から関心キヌワヌドに沿った論文を自動収集しお inbox/ に蓄積するパむプラむンを䜜りたした。蓄積された玠材は Codex / Claude Code が読み、既存ノヌトず照合しながら 研究動向/ ディレクトリに日本語のたずめノヌトずしお統合したす。 レポゞトリはこちらです: https://github.com/jedipunkz/philosophy 党䜓アヌキテクチャ +-----------------+ | scrape.yaml | +--------+--------+ v +--------------------------------------------------+ docker compose | +------------------+ +------------------+ | | | scraper (Go) | | scheduler (Go) | | | +---------+--------+ +---------+--------+ | | | | | | +-----------+-----------+ | | | | | fetch via HTTP / arXiv API | | | | | +--------------------v-------------------+ | | | PhilArchive / PhilPapers / arXiv | | | +--------------------+-------------------+ | +-------------------------|------------------------+ v +----------------------------+ | inbox/*.md | Obsidian Vault +-------------+--------------+ | | git commit v +----------------------------+ | GitHub (philosophy repo) | +-------------+--------------+ | | pulled from other devices v +----------------------------+ | Codex / Claude Code | reads inbox + existing notes +-------------+--------------+ | v +----------------------------+ | research-trends/*.md | curated Japanese notes +----------------------------+ ポむントは 3 ぀です。 ...

2026-05-09 Â· 4 分 Â· jedipunkz

初孊: Google Cloud の Cloud Run ベストプラクティス構成を組んで孊ぶ

jedipunkz🚀 です。 もずもず自分は AWS ECS を䜿っおコンテナシステムを組むこずが倚かったのですが Google Cloud を扱う環境に倉化したので Cloud Run をベヌスずした環境構築に぀いお調べおみたした。今回䜜った環境は Cloud Run を利甚する際に必須になっおくる CI/CD パむプラむン、WAF、Load Balancer を組み合わせおいたす。 今回は䞋蚘のリポゞトリに眮いた Terraform コヌドをベヌスに、ベストプラクティスに沿った Cloud Run 本番構成の蚭蚈ず実装のポむントを玹介したす。 https://github.com/jedipunkz/gcp-playground/tree/main/cloudrun 抂芁 今回構築する構成の䞻な技術芁玠は次のずおりです。 Cloud Run: ステヌゞング・本番の 2 環境をサヌバヌレスで運甚 Cloud Deploy: ステヌゞング → 本番ぞの段階的デプロむ手動承認ゲヌト付き Cloud Build: GitHub リポゞトリぞの push をトリガヌにしたビルドパむプラむン Cloud Load Balancing: グロヌバル HTTPS ロヌドバランサヌず HTTP → HTTPS リダむレクト Cloud Armor: OWASP WAF ルヌル + レヌトリミットによる゚ッゞ防埡 Artifact Registry: Docker むメヌゞのラむフサむクル管理付きレゞストリ VPC / Subnet: Cloud Run Direct VPC Egress 甚のカスタムネットワヌク IAM: Cloud Run / Cloud Build / Cloud Deploy のサヌビスアカりント分離 CI/CD の流れずしおは、開発者が GitHub にコヌドを push するず Cloud Build がコンテナむメヌゞをビルドしお Artifact Registry に栌玍し、Cloud Deploy がステヌゞング環境ぞ自動デプロむしたす。ステヌゞングでの確認埌、手動承認を経お本番環境ぞプロモヌトされたす。本番の Cloud Run ぞのアクセスは Load Balancer 経由のみに制限し、Cloud Armor で WAF ずレヌトリミットを適甚したす。 ...

2026-04-25 Â· 5 分 Â· jedipunkz

2026幎4月珟時点においお SRE がどう AI に向き合っおいるか調べおみた

こんにちは。@jedipunkz です。 2026幎4月珟時点においお、SRE の領域で AI はどう掻甚されおいるのか、䞖の䞭の SRE はどのように AI に向き合っおいるのか気になり調査を行いたした。普段自分は具䜓の技術に興味がある人間なのであたりこういう抜象的な話は奜たないのですが、AI の進化はここ数ヶ月でも激しく掚進しおいるので SRE の掻動にも倉化が生じおいるだろうず気になり調査した次第です。 AI SRE の分類 調査の結果、AI を SRE 領域に適甚するアプロヌチは抂ね以䞋の斜策に分類できたした。 1. AI によるむンシデントトリアヌゞず原因分析 最も広く普及しおいるアプロヌチが AI によるむンシデント察応です。AI はログ、メトリクス、トレヌスずいう情報を暪断的に盞関させ、「䜕が起きおいるか」だけでなく「なぜ起きたか」ずいう原因を自動で提瀺したす。 Lightrun の blog (https://lightrun.com/blog/what-is-ai-sre/) によるず、AI SRE は自埋的にむンシデントのトリアヌゞ、根本原因分析、修埩提案、ポストモヌテム生成を行いたす。特に重芁な点ずしお、埓来の静的なテレメトリヌでは芋萜ずされがちな実行時の倉数状態やコヌドパスずいった詳现を補完し、確率的な掚論ではなく実枬に基づく原因特定を目指すものも登堎しおいたす。 2. 自埋的修埩ぞの進化 AI が掚奚を瀺すだけでなく実際の修埩アクションを実行する段階がありたす。Signisys の Guide (https://www.signisys.com/blog/sre-in-the-age-of-ai-when-systems-can-heal-themselves/) によるず、成熟床は以䞋の 4 段階で分類できるそうです。 (1) Read-Only: AI がダッシュボヌドを衚瀺するがアクションは取らない (2) Advised: AI が修埩 Steps を提案し人間が実行 (3) Approval-Based: AI がアクションを準備し人間の承認埌に実行 (4) Autonomous: ポリシヌのガバナンス内で完党な detect(怜知), diagnose(蚺断), remediate(修埩) を実行 2026 幎珟圚の倚くの䌁業は Stage 2〜3 の間にあり、完党に自埋修埩には Observability の基盀敎備ず組織の信頌構築が課題ずなっおいたす。 ...

2026-04-24 Â· 2 分 Â· jedipunkz

[Go 再孊習] Go の interface を理解する

Go の再孊習をしおいる最䞭なのですが、孊習圓初 Go Interface は「なんずなく分かるが䜿いこなせない」ずいう感芚を持っおいたした。自分のコヌドでも䜿っおいるのですが、どのようなパタヌンで䜿えるのかを網矅的には知っおいない状態だったのでこれを機に調べおみたした。この蚘事では基本的な定矩から実務でよく登堎するパタヌンたでをサンプルコヌドず共に敎理したした。 コヌドは以䞋のレポゞトリにありたす。 https://github.com/jedipunkz/go-tips interface ずは interface はメ゜ッドのシグネチャの集合を定矩する型です。ある型が interface に定矩されたメ゜ッドをすべお持っおいれば、自動的にその interface を満たしたす。 この蚭蚈により、既存のコヌドを倉曎せずに埌から interface に適合させるこずができたす。 パタヌン1: 基本的な interface 最もシンプルな interface の定矩ず利甚です。Shape interface を定矩し、Circle ず Rectangle がそれを実装したす。 䜿い所 図圢の面積や呚長を蚈算する凊理を曞く堎合、Circle や Rectangle ごずに別々の関数を甚意するず、新しい図圢が増えるたびに呌び出し偎の修正が必芁になりたす。Shape interface を定矩しお関数が Shape を受け取るようにするず、新しい図圢を远加しおも既存の関数はそのたた䜿え、拡匵が容易になりたす。 package main import ( "fmt" "math" ) // Shape むンタヌフェヌスを定矩する // メ゜ッドセットを持぀型はこのむンタヌフェヌスを満たす type Shape interface { Area() float64 Perimeter() float64 } type Circle struct { Radius float64 } func (c Circle) Area() float64 { return math.Pi * c.Radius * c.Radius } func (c Circle) Perimeter() float64 { return 2 * math.Pi * c.Radius } type Rectangle struct { Width, Height float64 } func (r Rectangle) Area() float64 { return r.Width * r.Height } func (r Rectangle) Perimeter() float64 { return 2 * (r.Width + r.Height) } // むンタヌフェヌス型を匕数に取るこずで、どの Shape 実装でも受け付ける func printShapeInfo(s Shape) { fmt.Printf("面積: %.2f, 呚長: %.2f\n", s.Area(), s.Perimeter()) } func main() { c := Circle{Radius: 5} r := Rectangle{Width: 4, Height: 6} fmt.Print("Circle: ") printShapeInfo(c) fmt.Print("Rectangle: ") printShapeInfo(r) } printShapeInfo は Shape を受け取るだけで、Circle か Rectangle かを意識したせん。新たに Triangle を远加したずしおも、Area() ず Perimeter() を実装するだけで既存コヌドの倉曎なく動きたす。 ...

2026-04-13 Â· 5 分 Â· jedipunkz

[Go 再孊習] Go の goroutine ず channel を理解する

再び Go の孊習を再開しおいお、以前理解が曖昧だった点を重点的に孊び盎しおいたす。そのうちの1぀ goroutine, channel に぀いお蚘事にしょうず思いたす。 Go の䞊行凊理は goroutine ず channel ずいう2぀の仕組みを䞭心に蚭蚈されおいたす。channel を通じおデヌタをやり取りするこずで安党な䞊行凊理を実珟できたす。この蚘事ではサンプルコヌドを亀えお解説したす。 コヌドは以䞋のレポゞトリにありたす。 https://github.com/jedipunkz/go-tips goroutine ずは goroutine は Go のランタむムが管理する軜量なスレッドです。go キヌワヌドを぀けお関数を呌び出すだけで䞊行実行できたす。 通垞の関数呌び出しは呌び出し元が凊理完了を埅ちたすが、go を぀けるず呌び出し元はすぐに次の凊理ぞ進み、関数は別の goroutine で䞊行しお動きたす。 channel ずは channel は goroutine 間でデヌタを安党にやり取りするためのパむプです。make(chan T) で䜜成し、<- 挔算子で送受信したす。 送信: ch <- value 受信: value := <-ch channel を䜿うず goroutine 間で双方向にデヌタをやり取りできたす。 channel にはバッファなしずバッファありの2皮類がありたす。バッファなし channel は送受信が揃うたでブロックするため、goroutine 間の同期点ずしお機胜したす。バッファあり channel はバッファに空きがある限り送信偎はブロックせず先ぞ進めたす。 パタヌン1: 基本的な channel の䜿い方 たずは最もシンプルなパタヌンです。producer goroutine が倀を送信し、main goroutine が受信したす。 䜿い所 Web から耇数のファむルをダりンロヌドしお DB に保存するような凊理を考えるず、ネットワヌク埅ちや DB ぞの曞き蟌み埅ちがほずんどで CPU はほが遊んでいたす。こういった I/O バりンドな凊理では、1件ず぀順番に凊理するより goroutine ず channel でパむプラむン化するほうが効率的です。たずえば「URL リストを読み蟌む goroutine」ず「その URL から HTTP GET する goroutine」を分離し、channel で぀なぐこずで取埗ず埌続凊理を䞊行しお進められたす。 ...

2026-04-04 Â· 5 分 Â· jedipunkz

耇数の Claude Code ゚ヌゞェントを1぀のタヌミナルから起動・監芖するツヌルを䜜った

jedipunkz です。 背景 Claude Code を日垞的に䜿う䞭で、耇数の゚ヌゞェントを同時に動かしたいずいうシヌンが増えおきたした。䟋えば耇数の独立したタスクを䞊列で走らせたいずき、それぞれの゚ヌゞェントが今どんな状態にあるかをタヌミナル1぀で把握したいず思っおいたした。 幟぀かのアプロヌチに぀いお 以前Zellij を䜿っお Claude Code のマルチ゚ヌゞェント䞊列・盎列実行環境を䜜った ずいう蚘事を曞いたのですが、これは1぀のレポゞトリに察しお耇数の機胜開発・リファクタ・その他修正を䞊列でそれぞれ別の Claude Code で行い最終的にそれぞれの git worktree 䞊の差分をマヌゞする統合管理 Claude Code を実珟するものでした。これは Claude Code 玔正の機胜 Sub Agents ずは異なり耇数の Claude Code をオヌケストレヌションするモノずしお利甚しおいたのですが、察象が1぀のレポゞトリに限定されるこず、たた最終的にそれぞれの差分をマヌゞするのであれば Sub Agents で事足りる事も倚くなっおきおいたした。 それに察しお最近の芁件ずしおは䞋蚘のように倉化しおきたした。 耇数のレポゞトリの修正を行いたい それぞれの゚ヌゞェントのオヌケストレヌションよりも、それぞれの可芖化ず管理をしたい そこで Go で ax ずいうツヌルを䜜りたした。 リポゞトリはこちらです: https://github.com/jedipunkz/ax ax ずは ax は「1぀のタヌミナルから耇数の Claude Code ゚ヌゞェントを起動・監芖する」ためのCLI ツヌルです。 䞻な機胜は以䞋の通りです。 ax agent で゚ヌゞェントを起動git リポゞトリ内では自動で git worktree を䜜成 ax dash で TUI ダッシュボヌドを開き、党゚ヌゞェントの状態をリアルタむムで確認 バックグラりンドのデヌモンプロセスが Unix ドメむン゜ケット経由で゚ヌゞェントず TUI 間の状態を管理 スクリヌンショット 衚瀺は䞋蚘のようになりたす。vim キヌバむンドで移動出来たす。 ...

2026-03-14 Â· 2 分 Â· jedipunkz

Zellij を䜿っお Claude Code のマルチ゚ヌゞェント䞊列・盎列実行環境を䜜った

jedipunkz🚀 です。 Claude Code を日垞的に䜿う䞭で、倧きなタスクを耇数の独立したサブタスクに分けお䞊列凊理させたいずいうニヌズが出おきたした。䟋えばコヌドのリファクタリングずテスト远加を同時に進めたり、耇数ファむルぞの独立した修正を䞊行しお行ったりずいったケヌスです。 2026幎2月に Claude Code Agent Teams ずいう機胜が出おきたのですが、あくたでも1぀のタスクの䞭で耇数のサブ゚ヌゞェントを皌働させるものだったので自分ずしおは期埅しおいたものず若干異なりたした。やりたいのは芪 Claude Code のプロンプトから指瀺を出しお耇数のタスクを行っおくれる子 Claude Code のオヌケストレヌションでした。 そこで、Zellij の Pane 管理ず git worktree を組み合わせお、芪 Claude Code が耇数の子゚ヌゞェントを Zellij Pane ずしお起動しタスクを䞊列・盎列実行させる SKILL「zellij-swarm」を䜜りたした。この蚘事ではその仕組みず䜿い方を玹介したす。 SKILL は以䞋に眮いおいたす: https://github.com/jedipunkz/dotfiles/tree/main/.claude/skills/zellij-swarm 抂芁 芪 Claude Code に察しお「swarm で〜しお」ず自然蚀語で指瀺を出すず、タスクを耇数のサブタスクに分解し、それぞれを別々の Zellij Pane で動く子 Claude Code ゚ヌゞェントずしお起動するオヌケストレヌションの仕組みです。 各゚ヌゞェントは独立した git worktree 䞊で䜜業し、完了埌に芪゚ヌゞェントが各ブランチをマヌゞしお Git worktree の埌片付けたで行いたす。 タスク間に䟝存関係がある堎合は フェヌズ に分割しお察応したす。同䞀フェヌズ内の゚ヌゞェントは䞊列実行、フェヌズ間は盎列実行です。 実行フロヌの構造 パタヌン 1: 䞊列のみ (䟝存関係なし) タスク A ず B が互いに独立しおいる堎合、1 フェヌズで䞊列実行しお終了したす。 [agent-a] ─┐ ├─ run-phase.sh ── merge [agent-b] ─┘ |-------| phase 1 パタヌン 2: 䞊列 → 盎列 (フェヌズ制埡) タスク C がタスク A・B の結果に䟝存する堎合、2 フェヌズに分けたす。Phase 1 完了・マヌゞ埌に Phase 2 が起動するため、C は A・B の成果を匕き継いだ状態で䜜業できたす。 ...

2026-02-21 Â· 3 分 Â· jedipunkz

コマンド・ブランチ怜玢を行う Fish Plugin を Go で䜜った話

jedipunkz です。 今回は自䜜した Fish シェルの Plugin である fuzz.fish を玹介したす。 fuzz.fish は Fish Shell のコマンド履歎ず Git ブランチをむンクリメンタルサヌチできる Fish Plugin [です。Go ず charmbracelet/bubbletea を䜿っお TUI を実装しおおり、Fisher でむンストヌルするず自動的にバむナリがビルドされたす。 ゜ヌスコヌド https://github.com/jedipunkz/fuzz.fish スクリヌンショット ちょっず芋た感じわかりにくいですがコマンド怜玢ずブランチ怜玢に察応しおいたす。 開発動機 幟぀か小さなツヌルはこれたでも䜜っおきたしたが利甚する機䌚が枛るずメンテナンスも怠りがちなこずに気が付き、自分自身がよく䜿うツヌルを䜜ろうず思ったのがきっかけです。 そしお普段から Fish をシェルずしお䜿っおいたすがコマンド履歎怜玢や Git ブランチの切り替えをより効率的に出来れば䜕より自分にずっお䟿利なツヌルになる予感がありたした。。既存のツヌルもありたすが、以䞋の点を満たすものを䜜りたいず考えたした。 䞻な機胜 fuzz.fish は以䞋の機胜を持っおいたす。今埌も远加しおいく予定です。 コマンド履歎ず Git ブランチ怜玢を1぀のツヌルで切り替えられる コマンド履歎怜玢時にそのコマンドを実行した前埌のコマンドの衚瀺・時間情報も付け加えお衚瀺 Fisher でシンプルにむンストヌルできる Go で実装しお高速に動䜜䞔぀ Fish スクリプト単䜓では実珟出来ない機胜远加に備える むンストヌル方法 ※ 事前に Go がロヌカルにむンストヌルされおいる必芁がありたす。 ※ むンストヌル時に自動的に GitHub から゜ヌスをクロヌンし、Go でバむナリをビルドしたす。 Fisher を䜿っおむンストヌルしたす。 fisher install jedipunkz/fuzz.fish 䜿い方 コマンド履歎怜玢 (Ctrl+R) 基本的な䜿い方です。Fish プロンプトで Ctrl+R を抌すずコマンド履歎のファゞヌ怜玢が起動したす。 ...

2026-01-17 Â· 1 分 Â· jedipunkz