[{"data":1,"prerenderedAt":423},["ShallowReactive",2],{"content-/2026-09-26-diary":3,"all-pages-for-dir":404,"related-/2026-09-26-diary":405,"og-image-/2026-09-26-diary":422},{"id":4,"title":5,"body":6,"category":385,"concepts":386,"description":387,"extension":388,"meta":389,"navigation":337,"ogImage":386,"path":390,"project_name":391,"published":392,"publishedAt":393,"seo":394,"source":395,"stem":396,"tags":397,"todo":386,"unpublished":392,"updatedAt":386,"__hash__":403},"pages/2026-09/2026-09-26/diary-2026-09-26.md","2026年9月26日の開発日記 - 再現動画のレビュー画面づくりと、メモリで落ちるdevサーバー",{"type":7,"value":8,"toc":369},"minimark",[9,14,18,21,25,32,35,40,43,49,62,73,76,80,83,87,98,106,108,112,115,123,125,129,147,149,152,305,307,310,321,323,326,346,348,351],[10,11,13],"h1",{"id":12},"_2026年9月26日の開発日記","2026年9月26日の開発日記",[15,16,17],"p",{},"朝いちばんに開いたのは、Googleドライブの通知だった。\n更新した覚えがないのに、顧問先の共有ドライブに「更新」の表示が出ている。\n気持ち悪いので Claude Code に調べさせたところ、誰もファイルを触っていなかった。",[15,19,20],{},"そこから先は、ほぼ一日じゅう Excel講座の画面再現動画に張り付いていた。\n表示を直させている最中に、:3200 の dev サーバーが heap out of memory で落ちた。\n犯人は、見ていたページではなかった。",[22,23,24],"h2",{"id":24},"今日のタイムライン",[15,26,27],{},[28,29],"img",{"alt":30,"src":31},"タイムライン","/2026-09/2026-09-26/timeline-2026-09-26.png",[22,33,34],{"id":34},"今日やったこと",[36,37,39],"h3",{"id":38},"_1-画面再現動画をレビューしやすくする","1. 画面再現動画をレビューしやすくする",[15,41,42],{},"Google タスクに残っていた「表が全部入る動画はズームをやめてカメラを固定する」を Claude Code に渡した。\n関数の活用36本でカメラを固定させ、固定した36本を検査させると、操作セルが画面外に出る場面は5,889件中0件だった。\nそのうえで、数式バーの段をカメラのタイムラインに足し、その山の高さを行のへこみとそろえる（round-compare の 0:28 でどちらも 15.5）よう頼んだ。\n確認済みの印とフィードバックは、ローカルだけでなく Cloudflare の D1 に保存させた。",[15,44,45],{},[46,47,48],"strong",{},"主な成果:",[50,51,52,56,59],"ul",{},[53,54,55],"li",{},"カメラ欄を左右2列に組み替えさせ、高さを 505px から 219px に縮めた",[53,57,58],{},"「完了」が付いた22本を最終版 MP4 として動画制作ページへ移させ、本番デプロイまで進めた",[53,60,61],{},"xlookup でカメラ欄が出なかったのは、カメラの設定ではなく画面ごと 500 で落ちていたからだった",[15,63,64,67,68],{},[46,65,66],{},"詳細:"," ",[69,70,72],"a",{"href":71},"/excel-scene-review-ui-tuning","Excel講座の画面再現動画をレビューしやすくする：カメラ固定、数式バーの可視化、確認済みステータスのCloudflare保存",[74,75],"hr",{},[36,77,79],{"id":78},"_2-devサーバーのメモリ落ちとシーン分割読み込み","2. devサーバーのメモリ落ちとシーン分割読み込み",[15,81,82],{},"期日切れの「Excel基礎講座 章2」のタスクを片付けようとした朝、Claude Code が立てた :3200 の dev サーバーは、起動から約2分で heap out of memory（上限4GB）で落ちていた。\n原因は、並行セッションが台本を保存するたびに、dev サーバーが読み込みと組み立てをやり直していたことだった。\n計画書を Codex にレビューさせてから第一弾の対策を入れ、続く Step 2（開いたシーンの分だけ読み込む）で、初回表示時のメモリの山を3.0GBから2.0GBに下げた。",[15,84,85],{},[46,86,48],{},[50,88,89,92,95],{},[53,90,91],{},"15分で終わらなかった回帰テストは、固まっていたのではなく、もともと数十分かかる重いテストだと分かった",[53,93,94],{},"章2は R2 に25件を上げて本番にデプロイし、Google Tasks も完了にした",[53,96,97],{},"Codex の認証エラーは手元の設定ではなく、OpenAI 側の障害（「Codex down due to 401 backend key error」）だった",[15,99,100,67,102],{},[46,101,66],{},[69,103,105],{"href":104},"/excel-scene-dev-memory-split-loading","Nuxtのdevサーバーがheap out of memoryで落ちた原因：再現動画のシーン分割読み込みと終わらない回帰テスト",[74,107],{},[36,109,111],{"id":110},"_3-googleドライブの更新通知の正体","3. Googleドライブの「更新」通知の正体",[15,113,114],{},"更新した覚えがないのに通知が出るので、原因を Claude Code に調べてもらった。\n判定の閾値は「変更500件」で、通知は7月17日、7月31日、9月14日、9月16日、9月25日に、別々の顧問先の共有ドライブで出ていた。\nローカルのメタデータDBのコピーを解析させると、共有ドライブAの中身は2026年3月13日以降一度も更新されておらず、削除もゴミ箱行きも0件だった。\nデスクトップ版 Google ドライブが自分で数えている「変更件数」から出た通知で、誰もファイルを更新していないと見てよい、というのが Claude Code の結論である。",[15,116,117,67,119],{},[46,118,66],{},[69,120,122],{"href":121},"/google-drive-desktop-change-notification","デスクトップ版Googleドライブで身に覚えのない「更新」通知が出る原因を調べた：共有ドライブの変更件数と500件の閾値",[74,124],{},[36,126,128],{"id":127},"_4-記事化と小さな調べもの","4. 記事化と小さな調べもの",[50,130,131,138,141,144],{},[53,132,133,134],{},"貼り付けた金利の論考（米10年債利回りが2007年夏以来の水準にある、という話）を公開記事にまとめてもらった: ",[69,135,137],{"href":136},"/fed-rate-hike-ai-capex-inflation-spiral","FRBの利上げはAI投資ブームの下で逆効果なのか。「利上げがインフレを生む」説を検証する",[53,139,140],{},"前に記事にした気がした楽天リーベイツは、記事にも memo にも git 履歴にも見つからなかった",[53,142,143],{},"「macOS なら Kindle をローカルでプレーンテキストにできる」という話が本当か聞いた。答えは「本当。ただし実際はスクリーンショットを自動で撮って macOS 標準の OCR にかける方法がほとんどで、DRM を外す方法は法的にかなり危うい」。Web で最新情報は確かめていない回答なので、規約違反かどうかはまだ分からない",[53,145,146],{},"朝の /make-diary で、前日分の日記を回した",[74,148],{},[22,150,151],{"id":151},"今日の試行錯誤",[153,154,155,177],"table",{},[156,157,158],"thead",{},[159,160,161,165,168,171,174],"tr",{},[162,163,164],"th",{},"#",[162,166,167],{},"テーマ",[162,169,170],{},"試したこと",[162,172,173],{},"結果",[162,175,176],{},"気づき",[178,179,180,198,215,232,249,266,288],"tbody",{},[159,181,182,186,189,192,195],{},[183,184,185],"td",{},"1",[183,187,188],{},"音が出ない（07:11）",[183,190,191],{},"round-compare で音が出ない原因を調べさせた",[183,193,194],{},"play() が pause() に割り込まれていた。1行の修正で解消",[183,196,197],{},"症状は音でも、原因は再生の順序だった",[159,199,200,203,206,209,212],{},[183,201,202],{},"2",[183,204,205],{},"カメラ欄の幅（08:24）",[183,207,208],{},"列と行のゲージを半分にさせた",[183,210,211],{},"半分では動画がまだはみ出し、左右2列に組み替えてようやく収まった",[183,213,214],{},"幅を削るより、並べ方を変えるほうが効いた",[159,216,217,220,223,226,229],{},[183,218,219],{},"3",[183,221,222],{},"xlookup の台本（08:24）",[183,224,225],{},"Enter の間隔を 0.06→0.08 にずらした",[183,227,228],{},"0.04 秒しか稼げず失敗。打つ動きを 0.35→0.30 秒に縮めて解消",[183,230,231],{},"間隔ではなく、動きの長さのほうに余地があった",[159,233,234,237,240,243,246],{},[183,235,236],{},"4",[183,238,239],{},"devのメモリ（07:13）",[183,241,242],{},"計画書を書かせて Codex にレビューさせ、第一弾の対策を入れた",[183,244,245],{},"台本を保存してもメモリがほぼ増えなくなった（42457103）",[183,247,248],{},"落ちた瞬間に開いていたページより、ファイルを書き換えているものを先に見る",[159,250,251,254,257,260,263],{},[183,252,253],{},"5",[183,255,256],{},"回帰テストの遅さ（07:13）",[183,258,259],{},"cfws-step1 の1本だけを単独で測らせた",[183,261,262],{},"変更前30.5秒、変更後32.0秒で約5%のぶれの範囲。「31.2秒→43.5秒」は2つのテストが同時に走って出た数字だった",[183,264,265],{},"遅くなったように見える数字は、並走が作ることがある",[159,267,268,271,274,282,285],{},[183,269,270],{},"6",[183,272,273],{},"Codex の認証（07:11）",[183,275,276,277,281],{},"自分で ",[278,279,280],"code",{},"codex login"," を打ち、PowerShell 経由でログインし直した。そのあと Claude Code に mise、資格情報マネージャー、codex doctor を順に疑わせた",[183,283,284],{},"どれも原因ではなく、OpenAI 側の障害だった",[183,286,287],{},"手元を疑う前に、公式の稼働状況ページを見る",[159,289,290,293,296,299,302],{},[183,291,292],{},"7",[183,294,295],{},"ドライブの通知（06:42）",[183,297,298],{},"ドライブのログとメタデータDBのコピーを解析させ、途中で解析スクリプトを直して再実行した",[183,300,301],{},"中身の更新は3月13日以降なし、削除もゴミ箱行きも0件",[183,303,304],{},"通知とファイルの更新は別物だった",[74,306],{},[22,308,309],{"id":309},"今日の学び",[50,311,312,315,318],{},[53,313,314],{},"「計算で全本確かめた」と「画面で見た」は別物だった。基本的に問題ないかと聞いたとき、Claude Code は1本しか画面で見ていないことを理由に言い切らなかった。そのあと、5,889件の検査で0件を確かめた。",[53,316,317],{},"dev サーバーが落ちた原因は、見ていた章2のページではなく、並行セッションの台本保存だった。",[53,319,320],{},"Googleドライブの通知がなぜ毎回ドライブの起動直後に出るのかは、まだ確かめていない。",[74,322],{},[22,324,325],{"id":325},"明日やること",[50,327,330,340],{"className":328},[329],"contains-task-list",[53,331,334,339],{"className":332},[333],"task-list-item",[335,336],"input",{"disabled":337,"type":338},true,"checkbox"," 画面再現のカメラの倍率上限（maxScale 1.6）をどうするか決める",[53,341,343,345],{"className":342},[333],[335,344],{"disabled":337,"type":338}," 関数の活用 段⑥の残り（19本のプレビュー確認）を進める",[74,347],{},[22,349,350],{"id":350},"関連記事",[50,352,353,357,361,365],{},[53,354,355],{},[69,356,72],{"href":71},[53,358,359],{},[69,360,105],{"href":104},[53,362,363],{},[69,364,122],{"href":121},[53,366,367],{},[69,368,137],{"href":136},{"title":370,"searchDepth":371,"depth":371,"links":372},"",2,[373,374,381,382,383,384],{"id":24,"depth":371,"text":24},{"id":34,"depth":371,"text":34,"children":375},[376,378,379,380],{"id":38,"depth":377,"text":39},3,{"id":78,"depth":377,"text":79},{"id":110,"depth":377,"text":111},{"id":127,"depth":377,"text":128},{"id":151,"depth":371,"text":151},{"id":309,"depth":371,"text":309},{"id":325,"depth":371,"text":325},{"id":350,"depth":371,"text":350},"diary",null,"Excel講座の画面再現動画をカメラ固定と確認済みステータスでレビューしやすくし、並行セッションの台本保存でdevサーバーが落ちる件をシーン分割読み込みで抑えた一日。Googleドライブの身に覚えのない更新通知も調べた。","md",{},"/2026-09-26-diary","daily-log",false,"2026-09-26T00:00:00.000Z",{"title":5,"description":387},"make-diary","2026-09/2026-09-26/diary-2026-09-26",[398,399,400,401,402],"日記","Excel講座","Nuxt","Claude Code","Codex","RSSeb5hK276JcqGS76jYkR99iHE4zy0GAyDpcU5YeaE",[],[406,407,411,415,419],{"title":105,"path":104,"publishedAt":393},{"title":408,"path":409,"publishedAt":410},"2026年9月25日の開発日記 - 並行セッションがメモリを取り合い、関数の章をMacへ送った","/2026-09-25-diary","2026-09-25T00:00:00.000Z",{"title":412,"path":413,"publishedAt":414},"2026年9月24日の開発日記 - Excel講座とCF精算表の動画化を並列セッションで進め、TTSの読みを台本側で決めた","/2026-09-24-diary","2026-09-24T00:00:00.000Z",{"title":416,"path":417,"publishedAt":418},"2026年9月23日の開発日記 - Excel講座の台本を耳でレビューし、円換算のずれをウォンのレートまでたどる","/2026-09-23-diary","2026-09-23T00:00:00.000Z",{"title":420,"path":421,"publishedAt":418},"Codex を GPT-6 Sol へ上げ、ステータスラインにエフォートを出し、yt-dlp の JS ランタイム警告を deno で直した","/codex-gpt6-sol-statusline-effort-ytdlp-deno","https://log.eurekapu.com/og/blog/2026-09-26-diary.png?v=2026-09-26T00%3A00%3A00.000Z&title=2026%E5%B9%B49%E6%9C%8826%E6%97%A5%E3%81%AE%E9%96%8B%E7%99%BA%E6%97%A5%E8%A8%98%20-%20%E5%86%8D%E7%8F%BE%E5%8B%95%E7%94%BB%E3%81%AE%E3%83%AC%E3%83%93%E3%83%A5%E3%83%BC%E7%94%BB%E9%9D%A2%E3%81%A5%E3%81%8F%E3%82%8A%E3%81%A8%E3%80%81%E3%83%A1%E3%83%A2%E3%83%AA%E3%81%A7%E8%90%BD%E3%81%A1%E3%82%8Bdev%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC&author=Kei%20Komatsu&sig=5546fff6cb0d2fa0",1790469281834]