[{"data":1,"prerenderedAt":608},["ShallowReactive",2],{"content-/2026-10-14-diary":3,"all-pages-for-dir":590,"related-/2026-10-14-diary":591,"og-image-/2026-10-14-diary":607},{"id":4,"title":5,"body":6,"category":570,"concepts":571,"description":572,"extension":573,"meta":574,"navigation":493,"ogImage":571,"path":575,"project_name":576,"published":577,"publishedAt":578,"seo":579,"source":580,"stem":581,"tags":582,"todo":571,"unpublished":577,"updatedAt":571,"__hash__":589},"pages/2026-10/2026-10-14/diary-2026-10-14.md","2026年10月14日の開発日記 - 講座18講の台本完成、Cloudflare課金の点検、ランドマーク地図を公開の手前まで",{"type":7,"value":8,"toc":552},"minimark",[9,14,18,22,29,32,37,40,46,56,67,76,79,83,86,90,98,106,108,112,115,119,130,138,140,144,147,151,162,170,172,176,179,183,191,199,201,205,208,212,225,233,235,238,458,460,463,477,479,482,514,516,519],[10,11,13],"h1",{"id":12},"_2026年10月14日の開発日記","2026年10月14日の開発日記",[15,16,17],"p",{},"朝いちばんに気になったのは、Cloudflare の従量課金で高額請求を受けた人の話だった。\n自分の「月10ドル」の設定は上限のつもりでいた。\n点検させてみると、それはメールで知らせるだけの予算アラートで、使用量は止めない。\nこの取り違えに気づいたところから1日が始まり、夕方には、デプロイしても本番では404のままになる公開スイッチを、ランドマークの地図ページに付けていた。\n止める線をどこに引くかを、場面を変えて何度も決め直した日だった。",[19,20,21],"h2",{"id":21},"今日のタイムライン",[15,23,24],{},[25,26],"img",{"alt":27,"src":28},"タイムライン","/2026-10/2026-10-14/timeline-2026-10-14.png",[19,30,31],{"id":31},"今日やったこと",[33,34,36],"h3",{"id":35},"_1-cloudflare-の課金設定の点検","1. Cloudflare の課金設定の点検",[15,38,39],{},"従量課金の契約は R2 Paid だけで、「月10ドル」は通知だけの予算アラートだった（自動で作られていた）。\n点検結果に、R2 のバケットの1つで r2.dev の公開URLが有効という項目があった。\n危険だと判断して止めさせ、r2.dev が401、独自ドメインが200を返すことも確かめさせた。\n無料プランの上限はエラーで止まる線であり、有料プランに入るとその線から先が課金に変わる、と理解した。",[15,41,42],{},[43,44,45],"strong",{},"主な成果:",[47,48,49,53],"ul",{},[50,51,52],"li",{},"高額請求のパターン（有料の従量課金製品の6事例）を調べさせ、公開記事にまとめた",[50,54,55],{},"個人開発のマネタイズを相談するXのスレッドについて、返信を集めたまとめを下書きした（前提を2回訂正）",[15,57,58,61,62],{},[43,59,60],{},"詳細:"," ",[63,64,66],"a",{"href":65},"/cloudflare-free-plan-billing-cap-self-check","Cloudflareの無料プランは青天井にならないのか：自分のアカウントの課金設定を点検した記録",[15,68,69,61,72],{},[43,70,71],{},"同じ日に書いた公開記事:",[63,73,75],{"href":74},"/cloudflare-usage-billing-runaway-patterns","Cloudflareの従量課金で高額請求が起きるパターン",[77,78],"hr",{},[33,80,82],{"id":81},"_2-d1-にトークを保存し続ける-line-bot","2. D1 にトークを保存し続ける LINE Bot",[15,84,85],{},"記事を見て、Claude Code に Bot を1個作らせ、テスト用のグループで試した。\n記録用の公式アカウントの作成からデプロイ、Webhook URL の登録までは Claude Code が進め、自分が手で行ったのはログインだけだった。\n1通目は「Webhookの利用」をオンにする直前に送ったため D1 は0件で、2通目で1行保存された。",[15,87,88],{},[43,89,45],{},[47,91,92,95],{},[50,93,94],{},"「取引先とのトークにこちらから Bot を入れると、相手は断りづらい」と整理した。成り立つのは、連絡を受ける側が自分から Bot を入れたいと頼む場面くらいである",[50,96,97],{},"今の構成は D1 に溜めるだけで、Mac から読む手段がないことも分かった",[15,99,100,61,102],{},[43,101,60],{},[63,103,105],{"href":104},"/line-bot-d1-message-logger","Cloudflare D1 にトークを保存し続ける LINE Bot を作って試した記録と、Bot を入れてよい場面の線引き",[77,107],{},[33,109,111],{"id":110},"_3-コンピュータのしくみ講座を動画講座に作り替える","3. コンピュータのしくみ講座を動画講座に作り替える",[15,113,114],{},"18講、88セクション、シミュレーター22個の講座を、簿記講座と同じストーリーボード形式の動画講座にする計画を Claude Code に頼んだ。\n決裁6件のうち5件は推奨どおりにし、試作する講だけは推奨と違う第12講を選んだ。\n台本はサブエージェント5体に並べて書かせ、途中でコンテキストが89%まで埋まったので引き継ぎを挟んだ。",[15,116,117],{},[43,118,45],{},[47,120,121,124,127],{},[50,122,123],{},"全18講の台本がそろい、シミュレーター22種の移植も終えた",[50,125,126],{},"残りの音声は、Mac の合成が20時20分ごろに終わる見込みだったので、続きを明日にすると決めた",[50,128,129],{},"管理者閲覧用の本番デプロイは、1回目が R2 の点検で止まり、流し直しで完了した",[15,131,132,61,134],{},[43,133,60],{},[63,135,137],{"href":136},"/computer-course-storyboard-video-conversion","コンピュータのしくみ講座18講を動画講座に作り替えた1日：計画書、5体並列の台本づくり、Macの音声待ち",[77,139],{},[33,141,143],{"id":142},"_4-簿記教材のストーリー版に書籍の図を差し込む","4. 簿記教材のストーリー版に書籍の図を差し込む",[15,145,146],{},"Mac への音声合成の依頼は、LAN 上で受信サーバーを名乗る機械が2台あり、どちらも登録済みの機器番号と一致しなかったため、Claude Code が送信を止めた。\n宛先を明示して送り直すと依頼は届いた。\nIllustrator の一括書き出しはメモリ不足で3度止まり、最後は立ち上がらなくなったので、41本中29本で中断すると決めた。",[15,148,149],{},[43,150,45],{},[47,152,153,156,159],{},[50,154,155],{},"書籍のコマを全章に差し込み、5つの調査役による食い違いの洗い出し（18件）に対応した",[50,157,158],{},"伝票の章の画像9枚は CDN に古い404が残っていたので、確認のうえ9件の URL だけキャッシュを消してもらった",[50,160,161],{},"夕方に623コマを差し替えたあと、並びの違いに自分で気づいた。調べさせると、全67章中30章、34節で並び順がずれていた",[15,163,164,61,166],{},[43,165,60],{},[63,167,169],{"href":168},"/bookkeeping-story-notes-illustrator-crop","簿記教材のストーリー版に書籍の図を差し込む。Illustratorの一括書き出し、メモリ不足、Macが見つからない問題",[77,171],{},[33,173,175],{"id":174},"_5-会計講座の動画シーンにフィードバックを反映","5. 会計講座の動画シーンにフィードバックを反映",[15,177,178],{},"Excel 講座の動画で IB の文字色を描画エンジンの既定に入れさせたら、日付まで青になった。\n「色を付けるのは数字だけ、日付は基本黒」と伝えると、ルールファイルはもともとそう書いてあり、外れていたのは実装のほうだった。\n財務諸表講座では一度横長を選んだが、見比べページで B（左に縦の画、右に台本の文）を見て B に切り替えた。",[15,180,181],{},[43,182,45],{},[47,184,185,188],{},[50,186,187],{},"演習 Excel は146本を処理して130本を書き換え、R2 で差し替えた",[50,189,190],{},"PL の当期純利益が SS へつながる場面は、⑥ を縦いっぱいに映すようカメラの計算を直させ、36回すべてを開いて確かめた",[15,192,193,61,195],{},[43,194,60],{},[63,196,198],{"href":197},"/accounting-course-scene-feedback-ib-color-fs-layout","会計講座の動画にフィードバックを反映した記録：IB配色は数字だけに、財務諸表講座は縦の画と台本の横並びへ",[77,200],{},[33,202,204],{"id":203},"_6-世界のランドマーク996体の地図ページと公開スイッチ","6. 世界のランドマーク996体の地図ページと公開スイッチ",[15,206,207],{},"Google Drive で受け取ったランドマークの3Dモデルは、3Dモデルを R2 の非公開バケット、ページを mdx-playground に分けて置くことにした。\n圧縮版だけを上げると決め、Claude Code に1,993件をアップロードさせ、d3-geo と topojson-client、world-atlas で世界地図をめぐる旅のページも作らせた。\n途中で空きメモリが1.8GBまで減ったので、前日から残っていた dev サーバーと DevTools MCP を止めて7.4GBに戻した。",[15,209,210],{},[43,211,45],{},[47,213,214,222],{},[50,215,216,217,221],{},"公開スイッチ ",[218,219,220],"code",{},"LANDMARKS_PUBLISHED"," が false の間は、3ページとも本番で404になる。普通にデプロイしても公開されない",[50,223,224],{},"公開手順を計画書の Phase 3 に書き直させ、公開の手前で止めた",[15,226,227,61,229],{},[43,228,60],{},[63,230,232],{"href":231},"/world-landmarks-3d-travel-map-publish-switch","世界のランドマーク996体の3Dビューアと地図の旅ページを作り、公開スイッチで本番を404に留めた",[77,234],{},[19,236,237],{"id":237},"今日の試行錯誤",[239,240,241,263],"table",{},[242,243,244],"thead",{},[245,246,247,251,254,257,260],"tr",{},[248,249,250],"th",{},"#",[248,252,253],{},"テーマ",[248,255,256],{},"試したこと",[248,258,259],{},"結果",[248,261,262],{},"気づき",[264,265,266,284,301,318,339,356,373,390,407,424,441],"tbody",{},[245,267,268,272,275,278,281],{},[269,270,271],"td",{},"1",[269,273,274],{},"Cloudflare（07:12）",[269,276,277],{},"Durable Objects と Queues で課金されうるか聞き返した",[269,279,280],{},"前の回答は誤解を招くとして訂正された。どちらも無料プランのまま使え、使うだけでは課金されない",[269,282,283],{},"青天井かどうかは、使う機能ではなく契約で決まる",[245,285,286,289,292,295,298],{},[269,287,288],{},"2",[269,290,291],{},"マネタイズのまとめ（07:25）",[269,293,294],{},"まとめ記事の前提を直させた",[269,296,297],{},"訂正は2回。前の報告はローカルのコードの初期値だけを見ていた",[269,299,300],{},"変更が本番で効いているかは本番で確かめる",[245,302,303,306,309,312,315],{},[269,304,305],{},"3",[269,307,308],{},"LINE Bot（07:30）",[269,310,311],{},"1通目を送って D1 を確かめた",[269,313,314],{},"0件。Webhook をオンにする前だった。2通目は保存された",[269,316,317],{},"0件のときは、まず送った時刻と設定の順番を見る",[245,319,320,323,326,329,336],{},[269,321,322],{},"4",[269,324,325],{},"講座の動画化（08:16）",[269,327,328],{},"計画書を Codex でレビューし、第12講で試作した",[269,330,331,332,335],{},"1回目に致命的な指摘1件（",[218,333,334],{},"\u003Cp>"," だけの抽出では箇条書きや表が落ちる）。直して2回目は「着手可」",[269,337,338],{},"抽出の取りこぼしは、試作の前に計画の段階で見つかった",[245,340,341,344,347,350,353],{},[269,342,343],{},"5",[269,345,346],{},"講座の動画化（10:12）",[269,348,349],{},"サブエージェント5体で台本を書かせた",[269,351,352],{},"修正コミットは Codex のゲートで2回止まった。検査数字の指摘は独立に検算させて誤検知と分かった",[269,354,355],{},"正しい指摘と誤検知が同じ日に混ざる",[245,357,358,361,364,367,370],{},[269,359,360],{},"6",[269,362,363],{},"簿記教材（08:32）",[269,365,366],{},"Illustrator の一括書き出し",[269,368,369],{},"メモリ不足で3度止まり、41本中29本で中断",[269,371,372],{},"ファイルを閉じてもメモリが戻らないようだ",[245,374,375,378,381,384,387],{},[269,376,377],{},"7",[269,379,380],{},"簿記教材（16:42）",[269,382,383],{},"画像9枚を R2 に上げた",[269,385,386],{},"配信 URL が404。古い404が CDN に残っていた。9件だけキャッシュを消して200",[269,388,389],{},"Upload complete でも配信側を確かめる",[245,391,392,395,398,401,404],{},[269,393,394],{},"8",[269,396,397],{},"簿記教材（16:45）",[269,399,400],{},"29本分を反映し623コマを差し替えた",[269,402,403],{},"欠けは0になったが、30章、34節で並び順がずれていた",[269,405,406],{},"差し込みは原本の並びを基準にする",[245,408,409,412,415,418,421],{},[269,410,411],{},"9",[269,413,414],{},"会計講座（13:28）",[269,416,417],{},"IB の文字色をエンジンの既定にした",[269,419,420],{},"日付まで青になった。表示形式で日付を見分けて黒に直した",[269,422,423],{},"ルールが正しくても、実装が日付を通し番号で持っていた",[245,425,426,429,432,435,438],{},[269,427,428],{},"10",[269,430,431],{},"会計講座（14:16）",[269,433,434],{},"36回の全数確認",[269,436,437],{},"スクリプトがタイムアウトしたので、同じページで「次へ」をたどる方法に変え、36回すべて開いた",[269,439,440],{},"見せ方は実物を並べて決める",[245,442,443,446,449,452,455],{},[269,444,445],{},"11",[269,447,448],{},"ランドマーク（16:59）",[269,450,451],{},"dev サーバーの動作中に地図のライブラリを入れた",[269,453,454],{},"全ページが500になった",[269,456,457],{},"依存パッケージは dev サーバーを止めてから入れる",[77,459],{},[19,461,462],{"id":462},"今日の学び",[47,464,465,468,471,474],{},[50,466,467],{},"「月10ドル」の予算アラートは通知だけで、使用量を止めない。止まるかどうかは契約で決まる",[50,469,470],{},"公開スイッチを false にしておけば、デプロイしても本番は404のままになる。デプロイと公開を別の操作に分けると、公開の判断を最後まで手元に残せる",[50,472,473],{},"書籍のコマを節の後ろにまとめて足すと、並びが崩れる。差し込みは原本の並びを基準にする",[50,475,476],{},"Bot が入っていない人同士の LINE のトークは、LINE の公式説明ではサーバー側でも本文を読めない。Bot を入れると、そのトークの本文は Bot 側に届いて読める状態になる。それを使ってよいかは、相手の同意の問題として別に残る",[77,478],{},[19,480,481],{"id":481},"明日やること",[47,483,486,496,502,508],{"className":484},[485],"contains-task-list",[50,487,490,495],{"className":488},[489],"task-list-item",[491,492],"input",{"disabled":493,"type":494},true,"checkbox"," Mac の音声合成の結果を受け取り、コンピュータのしくみ講座の残りの音声を入れる",[50,497,499,501],{"className":498},[489],[491,500],{"disabled":493,"type":494}," 簿記教材の並び順のずれ（30章、34節）を、2点の確認に答えてから直させる",[50,503,505,507],{"className":504},[489],[491,506],{"disabled":493,"type":494}," 財務諸表講座の音声を「公開する4回分だけ」上げるか「36回分すべて」上げるかを決める",[50,509,511,513],{"className":510},[489],[491,512],{"disabled":493,"type":494}," ランドマークのページを公開するかどうか、計画書の Phase 3 を読んで判断する",[77,515],{},[19,517,518],{"id":518},"関連記事",[47,520,521,525,529,533,538,543,548],{},[50,522,523],{},[63,524,66],{"href":65},[50,526,527],{},[63,528,75],{"href":74},[50,530,531],{},[63,532,105],{"href":104},[50,534,535],{},[63,536,537],{"href":136},"コンピュータのしくみ講座18講を動画講座に作り替えた1日",[50,539,540],{},[63,541,542],{"href":168},"簿記教材のストーリー版に書籍の図を差し込む",[50,544,545],{},[63,546,547],{"href":197},"会計講座の動画にフィードバックを反映した記録",[50,549,550],{},[63,551,232],{"href":231},{"title":553,"searchDepth":554,"depth":554,"links":555},"",2,[556,557,566,567,568,569],{"id":21,"depth":554,"text":21},{"id":31,"depth":554,"text":31,"children":558},[559,561,562,563,564,565],{"id":35,"depth":560,"text":36},3,{"id":81,"depth":560,"text":82},{"id":110,"depth":560,"text":111},{"id":142,"depth":560,"text":143},{"id":174,"depth":560,"text":175},{"id":203,"depth":560,"text":204},{"id":237,"depth":554,"text":237},{"id":462,"depth":554,"text":462},{"id":481,"depth":554,"text":481},{"id":518,"depth":554,"text":518},"diary",null,"コンピュータのしくみ講座18講の動画化で台本がそろい、簿記教材と会計講座の動画も直した。Cloudflareの課金設定を点検し、LINE BotとD1の記録を試し、ランドマーク996体の地図ページを公開スイッチの手前で止めた。","md",{},"/2026-10-14-diary","daily-log",false,"2026-10-14T00:00:00.000Z",{"title":5,"description":572},"make-diary","2026-10/2026-10-14/diary-2026-10-14",[583,584,585,586,587,588],"日記","動画講座","Cloudflare","LINE Bot","R2","3Dモデル","i6y0P8Ava11vU04K6E10PYj5LDquE6JW5PwUBDBPwKk",[],[592,596,597,599,603],{"title":593,"path":594,"publishedAt":595},"2026年10月15日の開発日記 - R2のWAV 4,127件の削除、囲碁のルール講座、財務諸表講座の動画を直す","/2026-10-15-diary","2026-10-15T00:00:00.000Z",{"title":66,"path":65,"publishedAt":578},{"title":598,"path":74,"publishedAt":578},"Cloudflareの従量課金で高額請求が起きるパターン：2026年の6事例と、予算アラートが上限にならない理由",{"title":600,"path":601,"publishedAt":602},"2026年10月10日の開発日記 - 講座3本の制作を引き継ぎファイルでつなぎ、Actionsの枠切れの原因を突き止めた","/2026-10-10-diary","2026-10-10T00:00:00.000Z",{"title":604,"path":605,"publishedAt":606},"2026年9月29日の開発日記 - Excel講座の読み上げ区間を画面再現へ、TikTok予約投稿のスキル化、cf CLIの導入","/2026-09-29-diary","2026-09-29T00:00:00.000Z","https://log.eurekapu.com/og/blog/2026-10-14-diary.png?v=2026-10-14T00%3A00%3A00.000Z&title=2026%E5%B9%B410%E6%9C%8814%E6%97%A5%E3%81%AE%E9%96%8B%E7%99%BA%E6%97%A5%E8%A8%98%20-%20%E8%AC%9B%E5%BA%A718%E8%AC%9B%E3%81%AE%E5%8F%B0%E6%9C%AC%E5%AE%8C%E6%88%90%E3%80%81Cloudflare%E8%AA%B2%E9%87%91%E3%81%AE%E7%82%B9%E6%A4%9C%E3%80%81%E3%83%A9%E3%83%B3%E3%83%89%E3%83%9E%E3%83%BC%E3%82%AF%E5%9C%B0%E5%9B%B3%E3%82%92%E5%85%AC%E9%96%8B%E3%81%AE%E6%89%8B%E5%89%8D%E3%81%BE%E3%81%A7&author=Kei%20Komatsu&sig=ae551ea58bad7543",1792550156407]