[{"data":1,"prerenderedAt":676},["ShallowReactive",2],{"content-/2026-06-19-diary":3,"all-pages-for-dir":674,"og-image-/2026-06-19-diary":675},{"id":4,"title":5,"body":6,"category":655,"description":656,"extension":657,"meta":658,"navigation":563,"ogImage":659,"path":660,"project_name":661,"published":662,"publishedAt":663,"seo":664,"stem":665,"tags":666,"todo":659,"unpublished":662,"updatedAt":659,"__hash__":673},"pages/2026-06/2026-06-19/diary-2026-06-19.md","2026年6月19日の開発日記 - Kindle取り込みパイプライン構築とNVIDIAセグメント可視化",{"type":7,"value":8,"toc":633},"minimark",[9,14,18,22,29,32,37,53,65,68,72,78,86,88,92,103,111,113,117,120,128,130,134,137,145,147,151,154,158,171,173,177,180,188,190,194,205,213,215,219,242,244,248,253,261,263,266,501,503,506,547,549,552,596,598,601],[10,11,13],"h1",{"id":12},"_2026年6月19日の開発日記","2026年6月19日の開発日記",[15,16,17],"p",{},"今日は Kindle 軸での蔵書整備とフロント可視化を行き来した1日。早朝に書棚 UI を整え、会計書籍10冊を OCR バッチで流し、午後は NVIDIA の新セグメントを memory-makers に追加した。並行して会計ソフトA の内部 API ハンズオン教材、Cloudflare Workers の連載記事、OpenAI 財務リークの SVG ウォーターフォールも作った。",[19,20,21],"h2",{"id":21},"今日のタイムライン",[15,23,24],{},[25,26],"img",{"alt":27,"src":28},"タイムライン","/2026-06/2026-06-19/timeline-2026-06-19.png",[19,30,31],{"id":31},"今日やったこと",[33,34,36],"h3",{"id":35},"_1-書棚-ui-の-kindle-識別と漫画フィルタ整備","1. 書棚 UI の Kindle 識別と漫画フィルタ整備",[15,38,39,40,44,45,48,49,52],{},"shelf ページに Kindle 蔵書識別バッジを足し、シリーズもの集約のモーダル展開を入れ、漫画タグで初期非表示にできるフィルタを追加した。BLOODY MONDAY のシリーズ集約が ",[41,42,43],"code",{},"\\s+"," regex の取りこぼしで効いていなかった件と、紙本のチ。が ",[41,46,47],{},"kindle_library"," に1行も入っていないので入口にすら立っていなかった件を直した。仕上げに ",[41,50,51],{},"/books"," 一覧を Kindle 取り込みとその他で上下2セクションに分割した。",[15,54,55,59,60],{},[56,57,58],"strong",{},"詳細:"," ",[61,62,64],"a",{"href":63},"/kindle-bookshelf-ui-improvements","書棚のKindle蔵書識別と漫画フィルタを整える",[66,67],"hr",{},[33,69,71],{"id":70},"_2-会計書籍10冊を一括ocrdb投入","2. 会計書籍10冊を一括OCR→DB投入",[15,73,74,77],{},[41,75,76],{},"/import-batch"," で会計5thバッチ10冊を回した。05:40 着手 → 07:50 コミットの2時間で OCR 1時間40分・DB 取り込み20分。最大の罠は「ファイル名と Amazon タイトルが食い違う紛らわしい3冊」で、PDF 実体を先に確認したら別書籍と判明し、重複ではなく別 book_id で進められた。中間 jpg 自動削除を OCR スクリプトに組み込んだのでディスクは 94GB 空きで安定した。",[15,79,80,59,82],{},[56,81,58],{},[61,83,85],{"href":84},"/kaikei-5th-batch-import","会計書籍10冊を /import-batch で一括取り込み",[66,87],{},[33,89,91],{"id":90},"_3-yomitoku-kindle-で-kindle-5冊を並列パイプライン処理","3. /yomitoku-kindle で Kindle 5冊を並列パイプライン処理",[15,93,94,95,98,99,102],{},"午後に Kindle Cloud Reader から5冊を撮影 → OCR → DB 投入 → restructure まで一気通貫で回した。1冊目は「Kindle App is Required」でスキップ、残り4冊は撮影と OCR と DB 投入を並列にして1時間5分で完走。途中で ",[41,96,97],{},"&ref_=kwl_kr_iv_rec_2"," パラメータの仕様、",[41,100,101],{},"Tabs cannot be edited"," エラー、content.js の文字化けに出くわし、その都度スラッシュコマンド側に挙動を固定した。restructure はサブエージェントで非同期並列化した。",[15,104,105,59,107],{},[56,106,58],{},[61,108,110],{"href":109},"/yomitoku-kindle-batch-import","/yomitoku-kindle で Kindle 4冊を並列パイプラインで取り込む",[66,112],{},[33,114,116],{"id":115},"_4-kindle-蔵書521冊を優先順位付きで進捗管理","4. Kindle 蔵書521冊を優先順位付きで進捗管理",[15,118,119],{},"最初に書いた計画書が「個別の取り込み手順」になっていて、本意の「Kindle 全件をどう優先順位付けして進めるか」とズレていた。書き直して、Python ヒューリスティック分類スクリプトで521冊全件を15カテゴリに振り分け、チェックボックスで進捗管理できる67KB / 625行の Markdown を生成した。漫画157件は除外、未OCR 464冊が対象。ファイル冒頭に「次セッションクイックスタート」を追加して、明日からそのまま着手できる状態にした。",[15,121,122,59,124],{},[56,123,58],{},[61,125,127],{"href":126},"/kindle-priority-import-plan","Kindle 蔵書521冊の優先順位計画書を整える",[66,129],{},[33,131,133],{"id":132},"_5-nvidia-個別ページを-hyperscaleacieedge-セグメントで作成","5. NVIDIA 個別ページを Hyperscale/ACIE/Edge セグメントで作成",[15,135,136],{},"NVIDIA のセグメントが Hyperscale / ACIE / Edge の3層に変わったことを受けて、micron.vue と同じパターンで nvidia.vue を立ち上げた。売上 QoQ の赤い折れ線とセグメント別 QoQ の subchart を上下に並べ、stacked SVG には各バー内に数値ラベルを足した。ACIE 内訳カードでは Neo Cloud と Sovereign AI を青の点線で上下分割した。Palantir や Anduril などモデル中立な顧客の話、Anthropic × Palantir × ペンタゴンの揉め事、Vera Rubin の Q3 量産時期も書き込んだ。全チャートは ExpandableChart 汎用コンポーネントでクリック拡大対応にした。",[15,138,139,59,141],{},[56,140,58],{},[61,142,144],{"href":143},"/nvidia-memory-makers-segments","NVIDIA 個別ページを memory-makers に追加する",[66,146],{},[33,148,150],{"id":149},"_6-会計ソフトa-内部-api-のハンズオン教材を作成","6. 会計ソフトA 内部 API のハンズオン教材を作成",[15,152,153],{},"Chrome 拡張で会計ソフトA の内部 API を叩いて未登録明細を取得する仕組みを、教材化した。最初はエクスポート編・インポート編の2記事を書いたが「コードの説明よりも、叩いたら何が返ってきて次にどう繋がるか」が知りたい、という再依頼があって DevTools Console ハンズオン編を別途追加した。mermaid 図はクリックでモーダル拡大できるようにし、3記事とも個人 ID（暗号化済みではあるが）が混じっているので一旦 unpublished に切り替えた。",[15,155,156],{},[56,157,58],{},[159,160,161,165,168],"ul",{},[162,163,164],"li",{},"会計ソフトA 内部 API ハンズオン編（DevTools Console で実機を触る）— unpublished",[162,166,167],{},"会計ソフトA 内部 API：未登録明細エクスポート編 — unpublished",[162,169,170],{},"会計ソフトA 内部 API：仕訳インポート編 — unpublished",[66,172],{},[33,174,176],{"id":175},"_7-cloudflare-workers-でエージェント基盤を作る連載記事","7. Cloudflare Workers でエージェント基盤を作る連載記事",[15,178,179],{},"和田卓人さんの「Cloudflare で AI エージェント基盤」ポストへの呼応として、Hono 作者 yusukebe さんの「3秒以内に200を返す Webhook を Workers の前段で受けて Queue に積む」構成を起点に、Wrangler 〜 Agents SDK までを順に書く連載構成にした。ユースケース4案を洗ったら B/C/D は Claude Code で十分間に合うと気づいて、結局「外部トリガーが Claude Code に届かない場合のみエージェント化が効く」「定額の Claude Code が使える間は経済合理性的に動かさないのが正解」という注意書きを冒頭に足し、todo は条件付き積み残しに切り替えた。",[15,181,182,59,184],{},[56,183,58],{},[61,185,187],{"href":186},"/cloudflare-agent-foundation-4-steps","Cloudflare で AI エージェント基盤を作る 4ステップ",[66,189],{},[33,191,193],{"id":192},"_8-openai-財務リークを-svg-ウォーターフォールで可視化","8. OpenAI 財務リークを SVG ウォーターフォールで可視化",[15,195,196,197,200,201,204],{},"夜に wheresyoured.at の OpenAI 財務リーク記事を見て、米国公的書類で裏が取れるかを並行で調べた（結論：信頼度は高いが、現時点で公的書類では確認不可）。SVG でウォーターフォールチャートを作って記事化し、svg-diagram スキルの規律（viewBox 720、12カラム、グレースケール+マゼンタ、塗りのみで分離、タイトル=結論文）に合わせて全面書き直した。コンポーネント名 ",[41,198,199],{},"OpenAIFinancialsWaterfallChart.vue"," が MDC のケース正規化で ",[41,202,203],{},"OpenAiFinancialsWaterfallChart"," として解決され空要素になっていたのに気付いて修正した。",[15,206,207,59,209],{},[56,208,58],{},[61,210,212],{"href":211},"/openai-financials-leak-2025","OpenAI 財務リーク記事を SVG ウォーターフォールで読み解く",[66,214],{},[33,216,218],{"id":217},"_9-make-diary-とタスクスケジューラの重複実行を解消","9. /make-diary とタスクスケジューラの重複実行を解消",[15,220,221,222,225,226,229,230,233,234,237,238,241],{},"昨朝、",[41,223,224],{},"/make-diary"," で日記を生成したあと7時に Windows タスクスケジューラから ",[41,227,228],{},"update-portfolio"," がもう一度走り、LINE プッシュが2回送られた。",[41,231,232],{},"run-update-portfolio.cmd"," に ",[41,235,236],{},"--skip-if-today-success"," フラグを1行足し、",[41,239,240],{},".last-success-date"," を見て同日成功実行があればスキップするように直した。明日以降は1日1回で固定される。",[66,243],{},[33,245,247],{"id":246},"_10-earnings-beat-scan-自動チェーン","10. earnings-beat-scan 自動チェーン",[15,249,250,252],{},[41,251,224],{}," の決算チェーンで SWBI（+57% EPS / +15% 売上ビート）が検出された。6/19 は Juneteenth（米連邦祝日・休場）で対象は6/18 AMC 発表分のみ、SWBI は beat-monitoring 未登録なので自動更新対象なし。記事化のみ実施。",[15,254,255,59,257],{},[56,256,58],{},[61,258,260],{"href":259},"/earnings-beats-2026-06-18","earnings beats 2026-06-18",[66,262],{},[19,264,265],{"id":265},"今日の試行錯誤",[267,268,269,291],"table",{},[270,271,272],"thead",{},[273,274,275,279,282,285,288],"tr",{},[276,277,278],"th",{},"#",[276,280,281],{},"テーマ",[276,283,284],{},"試したこと",[276,286,287],{},"結果",[276,289,290],{},"気づき",[292,293,294,322,346,363,385,405,422,439,461,478],"tbody",{},[273,295,296,300,303,309,312],{},[297,298,299],"td",{},"1",[297,301,302],{},"漫画シリーズ集約",[297,304,305,306,308],{},"巻数除去 regex の先頭を ",[41,307,43],{}," で書いた",[297,310,311],{},"BLOODY MONDAY が取りこぼされて別カードのまま",[297,313,314,317,318,321],{},[41,315,316],{},"【】"," で先に文字を消すと巻数がスペース無しで直結するので ",[41,319,320],{},"\\s*"," に直す必要があった",[273,323,324,327,330,336,339],{},[297,325,326],{},"2",[297,328,329],{},"紙本の漫画判定",[297,331,332,335],{},[41,333,334],{},"kindle_library.tags"," だけで判断",[297,337,338],{},"紙本の「チ。」が漫画扱いされず棚に残った",[297,340,341,342,345],{},"API 側で ",[41,343,344],{},"amazon_metadata.title"," パターンマッチも併用する二段構えに変更",[273,347,348,351,354,357,360],{},[297,349,350],{},"3",[297,352,353],{},"紛らわしい書籍",[297,355,356],{},"重複と思った3冊を統合しようとした",[297,358,359],{},"PDF 実体を確認したら別書籍",[297,361,362],{},"ファイル名と Amazon タイトルが食い違うときは実体を先に見る",[273,364,365,368,371,377,380],{},[297,366,367],{},"4",[297,369,370],{},"Kindle Cloud Reader",[297,372,373,376],{},[41,374,375],{},"read.amazon.co.jp/?asin=..."," だけで開いた",[297,378,379],{},"ライブラリにリダイレクトされた",[297,381,382,384],{},[41,383,97],{}," パラメータが必要",[273,386,387,390,393,396,402],{},[297,388,389],{},"5",[297,391,392],{},"Kindle 撮影並列化",[297,394,395],{},"OCR 中に別タブで次の本を開いた",[297,397,398,399,401],{},"4冊目で ",[41,400,101],{}," エラー",[297,403,404],{},"撮影中に他の本の new_page をしない、と運用ルール化",[273,406,407,410,413,416,419],{},[297,408,409],{},"6",[297,411,412],{},"restructure 並列化",[297,414,415],{},"チャンク→セクション統合をメインで回した",[297,417,418],{},"1冊あたり5〜10分で直列だと長い",[297,420,421],{},"サブエージェントで非同期並列化、スラッシュコマンドにも反映",[273,423,424,427,430,433,436],{},[297,425,426],{},"7",[297,428,429],{},"NVIDIA セグメント図",[297,431,432],{},"stacked SVG だけで売上を見せた",[297,434,435],{},"各バーの数値が読めない",[297,437,438],{},"バー内に数値ラベル（緑/紫は白、橙は黒）を追加",[273,440,441,444,447,452,455],{},[297,442,443],{},"8",[297,445,446],{},"Vue コンポーネント解決",[297,448,449,451],{},[41,450,199],{}," という名前で作った",[297,453,454],{},"MDC ケース正規化で空要素に化けた",[297,456,457,458,460],{},"ファイル名と markdown 参照を ",[41,459,203],{}," に揃える",[273,462,463,466,469,472,475],{},[297,464,465],{},"9",[297,467,468],{},"計画書の意図",[297,470,471],{},"個別取り込み手順を書いた",[297,473,474],{},"ユーザーの本意は「全件の優先順位戦略」だった",[297,476,477],{},"計画書は「粒度」と「視座」の2軸で考える。同じ単語でも意味が違う",[273,479,480,483,486,489,492],{},[297,481,482],{},"10",[297,484,485],{},"/make-diary 重複",[297,487,488],{},"LINE プッシュが7時に追加で来た",[297,490,491],{},"タスクスケジューラ側が無条件で走っていた",[297,493,494,496,497,500],{},[41,495,236],{}," を ",[41,498,499],{},".cmd"," に1行足して解消",[66,502],{},[19,504,505],{"id":505},"今日の学び",[159,507,508,517,520,523,526,529],{},[162,509,510,511,513,514,516],{},"regex の前段で文字を削るパイプラインは、後段のマッチ条件が前段の削り方に依存する。",[41,512,43],{}," と ",[41,515,320],{}," の1文字差で挙動が真逆になる",[162,518,519],{},"フラグ名と実体が乖離してきたら一度立ち止まる。「漫画フィルタ」は実質「初期表示から外したい本のフラグ」に育っていた",[162,521,522],{},"OCR と DB 投入は並列化できる。撮影中だけ排他制御すれば残りは独立タスクなので、サブエージェント不要で並列パイプラインが組める",[162,524,525],{},"Kindle Cloud Reader は URL パラメータの仕様で挙動が変わる。気付いたら即スラッシュコマンドに固定して、次回の自分が同じ罠に踏み込まないようにする",[162,527,528],{},"計画書を書くときは「個別手順」か「戦略ロードマップ」かを最初に確定する。粒度を間違えると書き直しコストが大きい",[162,530,531,532,535,536,539,540,535,543,546],{},"Vue/Nuxt のコンポーネント自動インポートは MDC のケース正規化と相性が悪い。",[41,533,534],{},"AI","・",[41,537,538],{},"API"," のような連続大文字は ",[41,541,542],{},"Ai",[41,544,545],{},"Api"," 扱いになる",[66,548],{},[19,550,551],{"id":551},"明日やること",[159,553,556,570,576,586],{"className":554},[555],"contains-task-list",[162,557,560,565,566,569],{"className":558},[559],"task-list-item",[561,562],"input",{"checked":563,"disabled":563,"type":564},true,"checkbox"," Kindle 優先順位計画の上から進める（カテゴリ別に着手） — 6/21 に経営KU4冊＋午後4冊で計8冊取込完了（",[61,567,568],{"href":568},"/kindle-import-8books-parallel-pipeline","）",[162,571,573,575],{"className":572},[559],[561,574],{"disabled":563,"type":564}," 税務3rd（残15冊）バッチを走らせる — Kindle優先のため未着手、繰越",[162,577,579,581,582,585],{"className":578},[559],[561,580],{"disabled":563,"type":564}," NVIDIA ページに ACIE 内訳テーブルの追加データソース確認 — 未着手、",[41,583,584],{},"nvidia.vue"," の sources は初版3件のまま、繰越",[162,587,589,591,592,595],{"className":588},[559],[561,590],{"checked":563,"disabled":563,"type":564}," /make-diary の1日1回固定が実際に効くか明朝確認 — 6/20・6/21・6/22 の朝に LINE 重複プッシュなく ",[41,593,594],{},"timeline-*.png"," も毎朝定時生成されており、1日1回固定が効いていることを実機で確認",[66,597],{},[19,599,600],{"id":600},"関連記事",[159,602,603,607,611,615,619,623,625,629],{},[162,604,605],{},[61,606,64],{"href":63},[162,608,609],{},[61,610,110],{"href":109},[162,612,613],{},[61,614,85],{"href":84},[162,616,617],{},[61,618,127],{"href":126},[162,620,621],{},[61,622,144],{"href":143},[162,624,164],{},[162,626,627],{},[61,628,187],{"href":186},[162,630,631],{},[61,632,212],{"href":211},{"title":634,"searchDepth":635,"depth":635,"links":636},"",2,[637,638,651,652,653,654],{"id":21,"depth":635,"text":21},{"id":31,"depth":635,"text":31,"children":639},[640,642,643,644,645,646,647,648,649,650],{"id":35,"depth":641,"text":36},3,{"id":70,"depth":641,"text":71},{"id":90,"depth":641,"text":91},{"id":115,"depth":641,"text":116},{"id":132,"depth":641,"text":133},{"id":149,"depth":641,"text":150},{"id":175,"depth":641,"text":176},{"id":192,"depth":641,"text":193},{"id":217,"depth":641,"text":218},{"id":246,"depth":641,"text":247},{"id":265,"depth":635,"text":265},{"id":505,"depth":635,"text":505},{"id":551,"depth":635,"text":551},{"id":600,"depth":635,"text":600},"diary","Kindle蔵書のUI改善・/yomitoku-kindle で4冊一気通貫・会計書籍10冊一括取り込み・521冊の優先順位計画・NVIDIA Hyperscale/ACIE/Edge ページ追加・会計ソフトA内部APIハンズオン教材・Cloudflare Workers連載・OpenAI財務SVGウォーターフォール。Kindle軸の蔵書整備とフロント可視化を交互に進めた1日。","md",{},null,"/2026-06-19-diary","daily-log",false,"2026-06-19T00:00:00.000Z",{"title":5,"description":656},"2026-06/2026-06-19/diary-2026-06-19",[667,668,669,670,671,672],"日記","Kindle","OCR","NVIDIA","Cloudflare","SVG","k5UbEoWoIAnSoY5b-81JJIZt6EP2DFuaboRfnz77s6g",[],"https://log.eurekapu.com/og/blog/2026-06-19-diary.png?v=2026-06-19T00%3A00%3A00.000Z&title=2026%E5%B9%B46%E6%9C%8819%E6%97%A5%E3%81%AE%E9%96%8B%E7%99%BA%E6%97%A5%E8%A8%98%20-%20Kindle%E5%8F%96%E3%82%8A%E8%BE%BC%E3%81%BF%E3%83%91%E3%82%A4%E3%83%97%E3%83%A9%E3%82%A4%E3%83%B3%E6%A7%8B%E7%AF%89%E3%81%A8NVIDIA%E3%82%BB%E3%82%B0%E3%83%A1%E3%83%B3%E3%83%88%E5%8F%AF%E8%A6%96%E5%8C%96&author=Kei%20Komatsu&sig=d20cf6ca5dccdae8",1782176331116]