• #日記
  • #株主総会
  • #モールス信号
  • #ビルド最適化
  • #Nuxt3
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-imagedefineOgImage()を一度も呼んでおらず不要だった。

主な成果:

  • ビルド時間を約半分に短縮
  • 不要モジュールの発見・削除

詳細: 既存記事 ビルド最適化ログ 参照


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検索への切替)
  • ビルド時間のさらなる改善(サーバーモジュール最適化)
  • 月シミュレーターの追加検証

関連記事