[{"data":1,"prerenderedAt":576},["ShallowReactive",2],{"content-/2026-09-20-diary":3,"all-pages-for-dir":553,"related-/2026-09-20-diary":554,"og-image-/2026-09-20-diary":575},{"id":4,"title":5,"body":6,"category":534,"concepts":535,"description":536,"extension":537,"meta":538,"navigation":460,"ogImage":535,"path":539,"project_name":540,"published":541,"publishedAt":542,"seo":543,"source":544,"stem":545,"tags":546,"todo":535,"unpublished":541,"updatedAt":535,"__hash__":552},"pages/2026-09/2026-09-20/diary-2026-09-20.md","2026年9月20日の開発日記 - 数字が合っても、正しいとは限らなかった",{"type":7,"value":8,"toc":517},"minimark",[9,14,18,21,24,28,35,38,43,51,57,70,81,84,88,91,95,106,114,116,120,123,127,147,155,157,161,164,168,189,197,199,203,206,210,221,229,231,234,419,421,424,444,446,449,469,471,474,496,499],[10,11,13],"h1",{"id":12},"_2026年9月20日の開発日記","2026年9月20日の開発日記",[15,16,17],"p",{},"連結精算表シミュレーターは、持分比率を0%から100%まで101×101通り流しても、貸借が1円も狂わなかった。\nテストも493件すべて通っていた。\nそれでも金額は間違っていた。",[15,19,20],{},"同じ日の朝、まったく別の作業でも数字はきれいに合っている。\n建物の図面から専有面積を積み上げたら、そこに書かれた容積対象床面積とぴたりと一致した。\nその一致に納得した数時間後、出典を探すつもりで図面の赤字を拡大したら、寸法の読み違いが2つ残っていた。",[15,22,23],{},"数字が合うことと、正しいことは別だった。\nそれを1日のうちに、別々の題材で2回踏んだ。",[25,26,27],"h2",{"id":27},"今日のタイムライン",[15,29,30],{},[31,32],"img",{"alt":33,"src":34},"タイムライン","/2026-09/2026-09-20/timeline-2026-09-20.png",[25,36,37],{"id":37},"今日やったこと",[39,40,42],"h3",{"id":41},"_1-連結会計シミュレーターの不具合を16件直した","1. 連結会計シミュレーターの不具合を16件直した",[15,44,45,46,50],{},"午前は、シミュレーターが使っている設例の正解値がどこから来たのかを確かめた。\n蔵書DB（398冊で50,157チャンク）を本文全文で検索させ、データセット19本の出どころが会計実務の専門書2冊の使い分けだったと確定させた。\n午後は計画書の指摘 F1〜F11 を関数実行で1件ずつ再現させ、11件とも再現した。\nCodex のレビューは8件出てきた。重要度は鵜呑みにせず付け直させたうえで決裁を3件に絞り、その過程で F12 を追加した。\n",[47,48,49],"code",{},"it.fails"," の回帰テストを17件先に置いてから、15時51分から17時05分にかけて fix コミット14本で16件を潰した。",[15,52,53],{},[54,55,56],"strong",{},"主な成果:",[58,59,60,64,67],"ul",{},[61,62,63],"li",{},"F1〜F14 と F16、F17 の16件を修正。テストは対象4ファイルで772件成功、失敗0件",[61,65,66],{},"ログを出すだけだったテストを assert に改め、照合を4事例から8事例へ広げた",[61,68,69],{},"F15 と F18 の2件は未了として残した",[15,71,72,75,76],{},[54,73,74],{},"詳細:"," ",[77,78,80],"a",{"href":79},"/consolidation-simulator-dd-fixes","連結会計シミュレーターの不具合を16件直した日：貸借一致とテスト全件通過では見つからない誤り",[82,83],"hr",{},[39,85,87],{"id":86},"_2-図面の数値を建築基準法で全部検算した","2. 図面の数値を建築基準法で全部検算した",[15,89,90],{},"都内の共同住宅の企画図面を写真2枚で渡して、なぜこの建物が5階になるのかを条文から説明させた。\n専有面積を積み上げた282.38㎡が図面の容積対象床面積と一致し、建築面積68.10㎡は基準階の床面積（専有60.49㎡＋共用7.61㎡）と同じだった。\n1階で欠ける20.07㎡は、上階の住戸1戸分とぴったり同じ寸法だった。\n検証記録に図解を2枚描かせて埋め込み、計画書のレビュー規約どおり Codex にかけたところ8件の指摘が出た。\n条文と区の公式資料で1件ずつ確かめてから全件を直し、あわせて既存の宅建テキストの記述も訂正した。",[15,92,93],{},[54,94,56],{},[58,96,97,100,103],{},[61,98,99],{},"計画概要の7項目が条文と計算で説明できる状態になった",[61,101,102],{},"北側斜線の対象を住居系4地域から田園住居地域を含む5地域へ訂正し、日影規制に法56条の2第4項を補った",[61,104,105],{},"出典探しの途中で図面の寸法の読み違いが2つ見つかった",[15,107,108,75,110],{},[54,109,74],{},[77,111,113],{"href":112},"/building-code-check-from-drawings","図面の数値を建築基準法で全部検算したら、専有面積の合計が容積対象床面積と一致した",[82,115],{},[39,117,119],{"id":118},"_3-分子モーターの動画を16本集めて記事2本にした","3. 分子モーターの動画を16本集めて記事2本にした",[15,121,122],{},"Xで流れてきた3本のポストが、どれも同じ1つの装置を指していた。\n関連する動画を16本集め、oEmbed でタイトルとチャンネル名を取得させて1本ずつ実在を確かめた。\n精密CGアニメーション、顕微鏡の実写、研究者本人の講義という3系統に分け、「CGだけ見ると熱ゆらぎを見落とす」を軸にして束ねた。\nあとから「キネシンが小胞を背負って微小管を歩く場面」がどの動画のどこかを実際に開いて確かめさせ、該当シーンが約1分14秒だと特定した。\nそこから「何が観測で何が解釈か」を扱う節が1つ増え、熱力学を厚く書いた2本目は別記事に分けた。",[15,124,125],{},[54,126,56],{},[58,128,129,137,144],{},[61,130,131,132,136],{},"動画16本を3系統に整理した記事を公開（",[77,133,135],{"href":134},"/atp-synthase-motor-videos","ATP合成酵素が回る動画を16本集めた。CGと実写の両方を見ないと熱ゆらぎを見落とす","）",[61,138,139,140,136],{},"熱力学と酸素の役割を扱う2本目を公開（",[77,141,143],{"href":142},"/atp-motor-thermodynamics-oxygen","ATPはどう作られ、どう運ばれるか。熱ゆらぎを味方にする仕組みと、酸素が燃料ではない理由",[61,145,146],{},"SVG図解の書き出しはヒアドキュメントがシェルに弾かれ、ファイル書き込みツールに切り替えた",[15,148,149,75,151],{},[54,150,74],{},[77,152,154],{"href":153},"/molecular-motor-video-curation","分子モーターの動画16本を集めて記事2本にした日。実在確認とSVG図解、キネシンの場面特定",[82,156],{},[39,158,160],{"id":159},"_4-ipから住所までの距離とsnsアカウント50個の原価を調べた","4. IPから住所までの距離と、SNSアカウント50個の原価を調べた",[15,162,163],{},"朝は、匿名の投稿サイトの運営者がなぜ書き込み元のIPを持っているのかを整理した。\nそこから住所に届くまでには3段あり、正規に通すと2段階の法的手続きで通常3〜7か月、費用は30〜60万円かかる。\n話題になっていた2000円という金額は、3段のうち1段目だけを指す裁判外の任意開示だった。\n昼は、Android端末を50台並べてSNSアカウントを回す構想の原価を詰めた。\n律速は端末でもAIでもなく電話番号とIPアドレスで、結論は「50という規模で成立する収益モデルが存在しない」になった。",[15,165,166],{},[54,167,56],{},[58,169,170,177,183,186],{},[61,171,172,176],{},[77,173,175],{"href":174},"/ip-disclosure-to-address","投稿者のIPが運営に見えている理由と、そこから住所に届くまでの距離","を公開",[61,178,179,176],{},[77,180,182],{"href":181},"/sns-50-accounts-cost-analysis","SNSアカウント50個を24時間動かす構想を原価計算する。詰まるのは技術ではなく回線の本人確認だった",[61,184,185],{},"裏取りの途中でXの収益分配が2026年9月7日に終了し、9月8日から新制度へ切り替わっていたと判明し、記事の柱を組み直した",[61,187,188],{},"既存の英語記事2本の日本語版も作った（元の英語ファイルは残した）",[15,190,191,75,193],{},[54,192,74],{},[77,194,196],{"href":195},"/anonymity-and-sns-account-economics","IPから住所に届くまでの距離と、SNSアカウント50個の原価計算を同じ日に書いた",[82,198],{},[39,200,202],{"id":201},"_5-片方の機体にしかない計画メモを探し出した","5. 片方の機体にしかない計画メモを探し出した",[15,204,205],{},"表計算ソフトの基礎講座を動画にする計画メモが「どこかにあるはず」という状態から探し始めた。\nリポジトリ内の検索、Googleカレンダー、Googleタスクを順に当たらせたところ、カレンダーは1ページ目の100件で空振りし、続きのページの9月18日の予定に手がかりが出た。\n計画メモの実体はMac側にあり、Windowsの作業ツリーには無かった。\nMacのセッションは2回とも応答がなかったので、fetch で origin との差だけを見せて止めさせ、そこから指示して pull した。\n取り込んだあとに台本と制作メモを読ませ、動画1本ごとの音声スクリプトが1本も無いと分かった。",[15,207,208],{},[54,209,56],{},[58,211,212,215,218],{},[61,213,214],{},"コミット db3a8529（11ファイルで709行の追加）を fast-forward で取り込み、手元の未コミットの変更2件はそのまま残した",[61,216,217],{},"音声を埋め込んだ40MBのプレビューHTMLは開かせず、台本14KBと制作メモ5KBだけを読ませて棚卸しを終えた",[61,219,220],{},"音声スクリプトの新規作成を、翌9月21日期日のGoogleタスクとして積み残した",[15,222,223,75,225],{},[54,224,74],{},[77,226,228],{"href":227},"/cross-machine-plan-retrieval","2台運用で片方の機体にしかない計画メモを探し出す。カレンダー捜索から git pull まで",[82,230],{},[25,232,233],{"id":233},"今日の試行錯誤",[235,236,237,259],"table",{},[238,239,240],"thead",{},[241,242,243,247,250,253,256],"tr",{},[244,245,246],"th",{},"#",[244,248,249],{},"テーマ",[244,251,252],{},"試したこと",[244,254,255],{},"結果",[244,257,258],{},"気づき",[260,261,262,280,297,314,331,348,365,382,402],"tbody",{},[241,263,264,268,271,274,277],{},[265,266,267],"td",{},"1",[265,269,270],{},"前日分の日記生成",[265,272,273],{},"9月19日分の日記チェーンを回した",[265,275,276],{},"記事3本と統計チェーンまで完走",[265,278,279],{},"毎朝の定常運用はここまで手を離せるようになった",[241,281,282,285,288,291,294],{},[265,283,284],{},"2",[265,286,287],{},"分子モーターの動画",[265,289,290],{},"動画16本を集め、SVG図解をヒアドキュメントで流そうとした",[265,292,293],{},"シェルに弾かれ、ファイル書き込みツールへ切り替え。縦書きテキストのはみ出しを実測で確認し、キネシンの場面を約1分14秒と特定して節を1つ足した",[265,295,296],{},"記憶で答えずに動画を開くと、記事に足りない節が見つかる",[241,298,299,302,305,308,311],{},[265,300,301],{},"3",[265,303,304],{},"図面の建築規制",[265,306,307],{},"写真2枚から計画概要7項目を検算させ、Codex でレビューした",[265,309,310],{},"専有面積の合計282.38㎡が容積対象床面積と一致。指摘8件は条文と区の公式資料で全件確認して修正。出典探しで画像を拡大したら寸法の読み違いが2つ出た",[265,312,313],{},"数字が合った瞬間がいちばん危ない。読み違いを探す動機が消える",[241,315,316,319,322,325,328],{},[265,317,318],{},"4",[265,320,321],{},"IPから住所まで",[265,323,324],{},"運営者がIPを持つ理由と住所に届くまでの3段を調べさせ、公開記事にした",[265,326,327],{},"Chromeで先頭から末尾まで描画を確認し、外部リンク4本が別タブ設定であることまで見た。英語記事2本の日本語版も作った",[265,329,330],{},"話題の2000円は、3段のうち1段目だけの金額だった",[241,332,333,336,339,342,345],{},[265,334,335],{},"5",[265,337,338],{},"設例の出どころ",[265,340,341],{},"蔵書DBを全文検索させ、続けて元ネタの表計算をDropboxから探させた",[265,343,344],{},"出典は会計実務の専門書2冊の使い分けと判明。Dropbox走査は4,766件が開けておらず無効で、最後に「まだ作っていない」ことを思い出した",[265,346,347],{},"クラウドに実体があるファイルはPythonから開けない。走査の0件を、存在しない証拠にしない",[241,349,350,353,356,359,362],{},[265,351,352],{},"6",[265,354,355],{},"devサーバーの停止",[265,357,358],{},"バックグラウンドで動かしていたdevサーバーが落ちた",[265,360,361],{},"システムのメモリ逼迫による停止で、コマンド自体は失敗していなかった",[265,363,364],{},"自分の実装の不具合と誤診しかけた",[241,366,367,370,373,376,379],{},[265,368,369],{},"7",[265,371,372],{},"SNSアカウント50個",[265,374,375],{},"端末50台構想の律速とSIMの壁、収益モデルを詰めて裏を取らせた",[265,377,378],{},"律速は電話番号とIPアドレス。結論は「50という規模で成立する収益モデルが存在しない」。裏取りでXの収益分配が2026年9月7日終了、9月8日新制度と判明して記事の柱を組み直した",[265,380,381],{},"調べている最中に制度が変わっていることがある",[241,383,384,387,390,396,399],{},[265,385,386],{},"8",[265,388,389],{},"連結シミュレーターのDD",[265,391,392,393,395],{},"計画書の指摘F1〜F11を関数実行で再現させ、",[47,394,49],{},"の回帰テストを17件先に置いてから潰させた",[265,397,398],{},"11件とも再現。Codexの8件は自分で判定を付け直して決裁3件に絞り、F12を追加。fixコミット14本で16件を修正し、772件成功、失敗0件。F15とF18は未了",[265,400,401],{},"ログを出すだけのテストは、書いていないのとほぼ同じだった",[241,403,404,407,410,413,416],{},[265,405,406],{},"9",[265,408,409],{},"計画メモの所在",[265,411,412],{},"リポジトリ内、カレンダー、タスクの3経路で探させ、Macへ疎通確認した",[265,414,415],{},"カレンダー1ページ目の100件は空振り、続きのページの9月18日の予定にパスがあった。Macは2回とも応答なし。fetchで差を見せて止めさせ、指示してpullした",[265,417,418],{},"「無い」と言われたら、ローカルの作業ツリーではなくoriginを見る",[82,420],{},[25,422,423],{"id":423},"今日の学び",[58,425,426,429,432,435,438,441],{},[61,427,428],{},"貸借一致は正しさの証明にならない。101×101通りで不一致が0件でも、損益計算書の取込範囲が間違っていれば金額は狂う",[61,430,431],{},"ログを出すだけのテストは、書いていないのとほぼ同じだった。assert に変えて照合を4事例から8事例へ広げた瞬間に、新しい不具合が1件出てきた",[61,433,434],{},"数字が合った瞬間がいちばん危ない。合ったことで、読み違いを探す動機が消える",[61,436,437],{},"レビューの指摘は重要度も含めて自分で判定し直す。計画書レビューの8件は全部妥当だったが、コミット時に出た1件は条文を読めば事実誤認だった",[61,439,440],{},"裏取りは執筆の前工程ではなく、記事の骨組みを決め直す工程だった。9月7日と9月8日を挟んでいたと気づかなければ、古い前提のまま公開していた",[61,442,443],{},"走査結果の0件は、読めなかった件数を数えてからでないと意味を持たない",[82,445],{},[25,447,448],{"id":448},"明日やること",[58,450,453,463],{"className":451},[452],"contains-task-list",[61,454,457,462],{"className":455},[456],"task-list-item",[458,459],"input",{"disabled":460,"type":461},true,"checkbox"," 連結シミュレーターに残した F15 と F18 の2件を潰す",[61,464,466,468],{"className":465},[456],[458,467],{"disabled":460,"type":461}," 動画1本ごとの音声スクリプトを新規に起こす（Googleタスクに9月21日期日で登録済み）",[82,470],{},[25,472,473],{"id":473},"関連記事",[58,475,476,480,484,488,492],{},[61,477,478],{},[77,479,80],{"href":79},[61,481,482],{},[77,483,113],{"href":112},[61,485,486],{},[77,487,154],{"href":153},[61,489,490],{},[77,491,196],{"href":195},[61,493,494],{},[77,495,228],{"href":227},[15,497,498],{},"今日公開した記事:",[58,500,501,505,509,513],{},[61,502,503],{},[77,504,135],{"href":134},[61,506,507],{},[77,508,143],{"href":142},[61,510,511],{},[77,512,175],{"href":174},[61,514,515],{},[77,516,182],{"href":181},{"title":518,"searchDepth":519,"depth":519,"links":520},"",2,[521,522,530,531,532,533],{"id":27,"depth":519,"text":27},{"id":37,"depth":519,"text":37,"children":523},[524,526,527,528,529],{"id":41,"depth":525,"text":42},3,{"id":86,"depth":525,"text":87},{"id":118,"depth":525,"text":119},{"id":159,"depth":525,"text":160},{"id":201,"depth":525,"text":202},{"id":233,"depth":519,"text":233},{"id":423,"depth":519,"text":423},{"id":448,"depth":519,"text":448},{"id":473,"depth":519,"text":473},"diary",null,"連結会計シミュレーターは101×101通りで貸借が1円も狂わないのに金額が誤っていた。建築図面の検算、分子モーターの動画収集、IP開示の調査、2台運用の計画メモ探索まで9セッション分の記録。","md",{},"/2026-09-20-diary","daily-log",false,"2026-09-20T00:00:00.000Z",{"title":5,"description":536},"make-diary","2026-09/2026-09-20/diary-2026-09-20",[547,548,549,550,551],"日記","連結会計","建築基準法","分子モーター","2台運用","rYtmiG_ZLPH-qWrVXNDUHxBV9q1lpyNFRvPY8CQsILk",[],[555,559,563,567,571],{"title":556,"path":557,"publishedAt":558},"2026年5月1日の開発日記 - 連結会計の3部構成モーダルと簿記3級26章HTML一気生成","/2026-05-01-diary","2026-05-01T00:00:00.000Z",{"title":560,"path":561,"publishedAt":562},"2026年4月30日の開発日記 - 連結会計レッスンをVue化し、TAC公認会計士テキスト11冊を取り込んだ日","/2026-04-30-diary","2026-04-30T00:00:00.000Z",{"title":564,"path":565,"publishedAt":566},"2026年2月5日の開発日記 - 連結精算表の大幅拡張と消費税クイズ機能強化","/diary-2026-02-05","2026-02-05T00:00:00.000Z",{"title":568,"path":569,"publishedAt":570},"2026年2月4日の開発日記 - 連結会計エンジン10パターン対応と消費税パターンビューア完成","/diary-2026-02-04","2026-02-04T00:00:00.000Z",{"title":572,"path":573,"publishedAt":574},"2026年2月3日の開発日記 - 連結精算表の一部売却パターン実装","/diary-2026-02-03","2026-02-03T00:00:00.000Z","https://log.eurekapu.com/og/blog/2026-09-20-diary.png?v=2026-09-20T00%3A00%3A00.000Z&title=2026%E5%B9%B49%E6%9C%8820%E6%97%A5%E3%81%AE%E9%96%8B%E7%99%BA%E6%97%A5%E8%A8%98%20-%20%E6%95%B0%E5%AD%97%E3%81%8C%E5%90%88%E3%81%A3%E3%81%A6%E3%82%82%E3%80%81%E6%AD%A3%E3%81%97%E3%81%84%E3%81%A8%E3%81%AF%E9%99%90%E3%82%89%E3%81%AA%E3%81%8B%E3%81%A3%E3%81%9F&author=Kei%20Komatsu&sig=6af155c3e2c742e5",1789949392307]