iT邦幫忙

2026 iThome 鐵人賽

DAY 30
0
Modern Web

教練看不到的那六天|從 FIT 檔到 3D 軌跡,馬拉松訓練資料 Dashboard系列 第 30

Day 30|訓練 Dashboard 我練得如何:打開它,問它第一天的那個問題

  • 分享至 

  • xImage
  •  

Day 1 我們提到:在最後一天,這套系統要能完整回答那個問題:自己的訓練如何。

今天沒有新功能了,今天要來打開它,問它這個問題。


它怎麼說

打開的是本機版,不是 Day 29 上線的那個,因為要回答這個問題的資料,全部在那三個本地的檔案裡。

上週練了什麼。 9/7 到 9/13 一共四次:兩次跑步、兩次重訓。9/9 到 9/12 四天沒跑,那幾天比較忙碌,只在飯店健身房練了一次上肢,這是 Day 8 那份 JSON 直接算出來的,我自己回想的話,大概也有個底「那幾天沒怎麼練」。

課表達成率。 9/8 那天的課表是 400m×6,教練開五區,1A 的配速表是 1:28 ±2 秒,也就是 86 到 90 秒一趟。六趟跑下來:

1:27.6  1:26.6  1:25.0  1:26.0  1:25.7  1:27.3

Day 15 提到達成率要兩把尺,這裡兩把尺給的答案不一樣,用教練那張表,4/6,第三趟和第五趟太快,跑進 85 秒了,用我當天在 Garmin 活動名稱寫的「採用 86 秒」,區間 84 到 88,6/6

兩個數字都對,但它們的角度不同:教練的表說我有兩趟衝過頭,而自己的表說這六趟還行,Day 15 那個「跑太快也不算達標」的規則,這天抓到了。

負荷 ,Day 17 的 TRIMP 模型,9/13 長跑一百分鐘前後:

2026-09-12  trimp   0.0   atl 27.4  ctl 33.1  tsb  +5.6
2026-09-13  trimp 203.8   atl 52.6  ctl 37.1  tsb −15.5
2026-09-14  trimp   0.0   atl 45.1  ctl 36.3  tsb  −8.8

沒跑的那四天 TSB 一路爬到 +5.6,Day 17 提到這種「假的體能爬升」:不是變強了,是 ATL 掉得比 CTL 快,然後一場長跑把它打回 −15.5,休一天回到 −8.8,CTL 36.3 這個數字,是接下來九十幾天要往上推的東西。

Garmin 的預測 ,Day 26 的結論是它只能看趨勢,這一週的趨勢:

日期 全馬預測
9/7 3:30:57
9/12(沒跑的第四天) 3:31:37
9/13(長跑當天) 3:31:13
9/14(休息) 3:31:22

四天沒跑,慢了 40 秒;一場長跑,回來 24 秒;休一天,又慢 9 秒。這個「動」是有意義的,那個「3:31」本身依 Day 26 六場的紀錄要加上二十幾分鐘 ,所以這裡不寫它預測我會跑多少。


它回答不了什麼

同一個畫面上,有三樣東西是空的或不準的。

重訓不在負荷裡。 上週兩次重訓,CTL 看不到,Day 17 講過是結構性的,沒戴錶就沒有心率,所以「CTL 36.3」是跑步的 36.3,不是全部狀態的 36.3。

體重四筆。 Day 6 花了一整天讓瀏覽器讀到體重機,結果三十天量了四次,最後一筆是 8/31 的 72.8 公斤,Day 9 的常駐監聽有裝,站上去就會多一筆,但這個月沒有量很多次^^a。

它看不到我的跑姿。 400m×6 那天心率最高到 184,第三趟開始都在 180 以上,數字看得到心率,看不到我後半段是不是又開始塌腰,或是肩膀太緊。那是教練一週見我一次時看的東西,這套系統從第一天就說了不做這件事。

所以「我練得如何」,它回答了一半。跑了什麼、跑得準不準、累積了多少,這些它答得比我自己記得清楚。另一半要問教練,而它做的是把前一半整理好,讓教練那三十秒可以只看後一半。

這是 Day 1 說的橋樑,三十天後,橋是通的,但還是可以再調整優化。


三十天,錯的形狀都一樣

Day 20 我列過第二階段每一篇的「我以為」和「實際」,今天把三個階段一起列。

Day 我以為 實際
3 官方 API 申請下來就有資料 非官方套件,而且登入就卡關
6 體重機在廣播,瀏覽器聽得到 聽不到廣播,得主動連線去要
8 自己寫的紀錄自己解得出來 三個月前的自己,沒替今天著想
9 全部排程,資料自己會新 只有最後一段能排程,前面都要人
14 餵好資料就能有好助教 輸出的可信度上限,就是輸入的可信度
17 資料不夠,要再等 資料一直都在,是沒主動使用
18 週報就是儀表板多開一頁 教練打不開網址,而且那頁下週會變下週
22 跑最快那場心率最穩 跑最快那場,脫鉤的數字反而偏高
24 回放要用 WebSocket 推播 沒有任何東西需要推播
27 FIT 檔裡有一條海拔 有兩條,而且會漂
29 部署十分鐘的事 先撞到一包 707 KB,再撞到 gitignore 不擋 deploy

十一行,形狀是同一個:我以為的事實,其實都只是我的預設。 每一次都是在錯誤中調整。

如果這三十天只能留下一句話,是這句。


沒做到的

誠實盤點,正文裡留過的承諾:

  1. 重訓不在負荷曲線裡(Day 17、18、20)。結構性的,三十天內沒有解法。
  2. 教練課表還是人工搬運(Day 13、20)。存圖、轉傳到 Telegram,這兩步沒有自動化的可能。
  3. 儀表板上線了,但總覽頁教練看不到(Day 29)。那頁的資料不能上網,教練看的還是週報。
  4. 助教人設的來源標註(Day 14)。說要補每一條規則的出處,三十天後只補了一條。
  5. 完整逐秒資料按需載入(Day 21)。「先載壓過的版本」做了,「要看細節再抓完整的」沒做。

96 天後

12 月 20 日,臺北馬,從今天算起 96 天。

Day 19 禁止助教預測成績,Day 25 的計算機不預測臺北馬,Day 26 說 Garmin 的數字只能看趨勢,所以這裡也不會有一個數字,Day 1 說的「心中多少有一些目標成績」,還是在心中。

能寫的是接下來這套系統要怎麼用:

  • 回到 1A 的配速表。 最近有幾天跑的是 1B,達成率的兩把尺會把這件事記下來,不會把它四捨五入成達標。
  • CTL 要往上。 36.3 是四天沒跑加一場長跑之後的數字。Day 17 講過這條線不會告訴我該做什麼,但它會告訴我有沒有在做。
  • 每週給教練一份週報。 Day 18 的單檔 HTML,Day 20 教練看過一次給了回饋。這件事要變成每週的事,不是系列裡的一次。
  • 體重機站上去。 不用做任何事,站上去就好。

那才是 Day 1 說的「我準備得怎麼樣」,不是一個預測的時間,是每一週都答得出來「這週練了什麼、狀態怎麼樣」。


鳴謝

謝謝教練,一週只見一次,但那三十秒的回饋是這三十天最有用的資料,還有謝謝跑跑的朋朋們!

謝謝看到這裡的你,三十天連發,準備跑步的馬拉松,也參與了程式的馬拉松^0^

謝謝 AI 工具,很難想像以前沒有 AI 的大神是怎麼度過這 30 天的,

縱使有工具,但每天還是花了很多時間在review,

這是一個持續提出問題,修正問題,迭代出方向跟答案的過程,真的不容易,但我會想念這個月的!

系統在這:https://training.superbeeee.com,看得到六場全馬、東京馬的 3D 軌跡、配速計算機,看不到總覽那頁,那頁只有我和教練看得到。



上一篇
Day 29|拆 bundle 上線:把 Three.js 從首屏拿掉之後
系列文
教練看不到的那六天|從 FIT 檔到 3D 軌跡,馬拉松訓練資料 Dashboard30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言