daily-log
2026年1月29日の開発日記
今日は株主総会タイムラインの可視化、モールス信号アプリの開発、ビルド時間の大幅な最適化、テンバガーシミュレーションの改善など、多岐にわたる開発作業を行った。
今日やったこと
1. 株主総会タイムラインのインタラクティブ可視化
書籍の株主総会スケジュールデータ(JSON)を3つの表示形式で可視化した。
- 縦型テーブルタイムライン: 3列テーブル + SVG矢印 + ホバーハイライト
- 日次ガントチャート: Excel的な1日1マスの日次ベース表示
- 横型タイムライン: 階段状レイアウト
JSON→TypeScript変換(HMR即時反映対応)、左右分割レイアウト(タイムライン2/3 + 参照パネル1/3)、スキーマ定義の3分割も実施。決算短信と会計監査の実務的な関係についても議論した。
主な成果:
- 3種類の可視化ページを完成
- 書籍の図に忠実な矢印スタイル(丸ドット→垂直線→L字→三角矢印)
- クリックで参照解説を右パネル表示
2. モールス信号アプリの開発
モールス符号の二分木構造を視覚化する学習アプリを開発した。
- 英語(A-Z, 0-9)と日本語(ひらがな)のツリー切替表示
- 文字選択→音声再生→ツリー上のパス追跡アニメーション
- フレーズ再生機能(SOS, CQ CQ等のプリセット)
父親がアマチュア無線家(JA6OLU)で「CQ CQ」をよく使っていたエピソードも。和文モールスは実務では使われずローマ字が主流という知識も記事に追加した。
主な成果:
- 二分木ビジュアライザーの完成
- リアルタイムパス追跡アニメーション
- PC向けコクピットレイアウト
詳細: モールス信号アプリ開発記
3. Nuxtビルド時間の最適化(47%削減)
デプロイが遅くなっていた問題を調査・改善した。
- 対策1:
/searchページのプリレンダリング除外 → Server Build 48%削減 - 対策2: 未使用の
nuxt-og-imageモジュール削除 → さらに短縮 - 対策3: content/ディレクトリのデータファイル(JSON/TS)をapp/data/に移動
- 結果: 7.32分 → 3.90分(47%削減)
/searchページの_payload.jsonが20MBだったことが主原因。nuxt-og-imageはdefineOgImage()を一度も呼んでおらず不要だった。
主な成果:
- ビルド時間を約半分に短縮
- 不要モジュールの発見・削除
詳細: 既存記事 ビルド最適化ログ 参照
4. テンバガー・モンテカルロシミュレーションの改善
JSXからVueページへの変換とCodexレビューによる品質改善を実施した。
- PRNG → Mulberry32(高品質乱数生成器)
- ブートストラップの統計的妥当性を改善
- ヒストリカル/ブートストラップのシミュレーションモード切替追加
- Codex 3回のレビュー(実装バグ → 統計的妥当性 → 本質論)
シミュレーションの目的は、良い銘柄を選んでいても短期売買を繰り返すことで、長期保有リターンを取り逃がしている仮説の検証。
主な成果:
- 統計的に妥当なモンテカルロシミュレーション
- シミュレーションモード選択UI
詳細: 既存記事 テンバガーシミュレーション 参照
5. コンテンツ管理: slug重複問題の解決
frontmatterのpath設定で重複slug問題を発見・解決した。
diary.mdが18ファイルで同じslugに →/{date}-diary形式のpathをfrontmatterで設定update-paths.mjsスクリプトに重複検出+自動修正機能を追加--checkモード: path未設定、重複、予約語衝突をチェック/make-diaryコマンドに最終ステップとしてリンター実行を追加
主な成果:
- slug重複の自動検出・修正スクリプト
- 今後のmake-diaryで同じ問題が起きない仕組み
6. その他の作業
- morseページのOG画像設定:
usePageOgSignatureでWorker URLを生成 - 税理士AI戦略記事の修正: AI×税理士の価値は「社長の相棒」としてのコンサル領域。企業再生の具体例を追加
- 月シミュレーターのバグ修正: 太陽位置に対する月の位相表示を修正
- tax-assistant スラッシュコマンドビューア: FastAPI + Vue 3カラムレイアウトで実装完了
今日の学び
- ViteのHMRでJSONの変更が即時反映されない場合、TypeScriptに変換すると解決する
nuxt-og-imageのように使っていないモジュールでもビルド時間に大きく影響する- slug重複はファイル名ではなくfrontmatterのpathで解決するのが正しいアプローチ
- モールス信号は英語の頻度最適化で設計されており、和文は実務で使われない
- 決算短信は監査完了前に出す適時開示で、数字の乖離がないよう実務で調整している
明日やること
- 検索ページの高速化(全記事事前ロードからAPI検索への切替)
- ビルド時間のさらなる改善(サーバーモジュール最適化)
- 月シミュレーターの追加検証