daily-log
2026年4月9日の開発日記
Excel講座の演習移行とUI改善に大半の時間を投下し、並行してEDINET APIの財務データをTurso DBに流し込む仕組みを一から構築した。セッション12件、コミット数も二桁に届いた。
今日やったこと
1. Excel講座コンテンツ移行(eurekapu-nuxt4)
演習コンポーネント4種(ChatBox、ExcelDownloader、ExerciseRenderer、TheaterViewer exercise対応)を新規作成し、旧演習23件を変換・移行した。演習を関数チャプターから独立させてtocExcelにも登録。Part 2/3/4(わかりやすいExcelの作り方、NG集、命名ルール)もデータファイル→TOC→ページファイルまで一気に通した。
主な成果:
- 演習Phase 1-4完了(VLOOKUP5件、INDEX-MATCH5件、総合演習4件、実務演習6件ほか)
- SVGチャート33件を一括生成(配色ルール、数値表示のNG/Good対比など)
- WordPressのCDN URL → Cloudflare R2に完全移行(MP4 13件、GIF 14件、SVG 35件ほか)
- Excelショートカット講座を旧59ページ→8ページのMiller Columnに集約して独立移行
- UIレイアウト改善多数(ChatBoxアバター統合、横並びグリッド、theater-articleモード、ブラウザ履歴連動)
詳細: Excel講座の演習移行・SVG33件一括生成・R2メディア完全移行の作業記録
2. EDINET API + Turso DB構築
EDINET APIで会計ソフトAの財務データを取得し、Turso DB(東京リージョン)に格納するPythonスクリプトを新規作成した。libsqlパッケージの選定で三転四転し、Turso CLIのインストールでもPowerShell→ZIP→WSL→Webダッシュボードと迷走した末に着地。
主な成果:
store_to_turso.py新規作成、冪等なINSERT OR REPLACE方式- Embedded Replicaの動作検証(ローカル読み取りμs vs HTTP経由ms)
- 全6エンドポイントからデータ取得、Chart.jsで36チャートのダッシュボードHTML生成
- FY2022の販管費急増の原因分析(CM広告40億、M&A、無形資産の積み上がり)
詳細: EDINET APIで取得した財務データをTurso DBに格納するPythonスクリプトを構築した
今日の試行錯誤
| # | テーマ | 試したこと | 結果 | 気づき |
|---|---|---|---|---|
| 1 | libsqlパッケージ選定 | libsql-experimental → libsql-client → libsql | 成功 | 旧名→新名のリネームでprebuilt wheelが提供されていた |
| 2 | Turso CLIインストール | PowerShellスクリプト → ZIPダウンロード → WSL | 成功 | tursodb.exeはDB本体でCLI管理ツールではなかった。Webダッシュボードで全操作可能 |
| 3 | SVGのContent-Type | R2にアップロードしたSVGが表示されない | 成功 | Content-Type: image/svg+xmlを明示的に設定する必要があった。CDNキャッシュが古い値を返す問題も |
| 4 | CSP設定 | R2画像が読み込まれない | 成功 | img-srcにR2ドメインが未登録だった。media-srcには入っていたので動画は通っていた |
| 5 | theaterスクロール | コンテンツが独立スクロール領域に閉じ込められる | 成功 | .theater-stageのoverflowとmax-heightを段階的に除去。3回やり直した |
| 6 | APIキー更新 | .envを更新しても403が出続ける | 成功 | load_dotenv()がキャッシュした古い値を読んでいた。override=Trueで解決 |
| 7 | Excelショートカット講座の混同 | Excel基礎講座のショートカットセクションと混同して作業 | 失敗→修正 | 旧プロジェクトでは別URLの独立講座。別セッションに引き継いで再実施 |
今日の学び
- Tursoの無料枠は500DB・9GB・月10億行読み取りで、個人プロジェクトにはかなり太い。Auth Tokenなしではアクセスできないセキュリティモデルも堅い
- R2へのファイルアップロード時はContent-Typeを明示指定しないと、ブラウザがSVGをレンダリングしない
- CSPの
img-srcとmedia-srcは別ディレクティブなので、動画が通っても画像が通るとは限らない load_dotenv()はデフォルトで既存の環境変数を上書きしない。.envを更新したらプロセス再起動が確実