2026/02/03 是圓圓過世後的第 240 天,今天在台北上班,有鑒於上週五有發了一個 Topic 問北歐工程師問題出在哪後,對方在週六有給我一個回覆,今天是時候驗證對方給的東西到底有沒有問題了,心情很兩難,一方面知道不會很順利,另一方面也總想著要樂觀,昨天因為開車去公司臨停有跟警衛打招呼,現在警衛看到我都會很熱情打招呼,我到公司後就還是先看看股票,然後跟交大女博士聊聊天,她就說她最近有點仇女,其實完全可以理解,單位上其他女碩士靠實力的大概一個吧,其他都是沒什屁用的,但是很知道怎麼應付好色主管,所以混得挺不賴,念到博士的人自然看不起這種人,剛好我也是這種人,所以就很聊得來,大概聊四十分鐘吧,我就展開今天的工作了,我先 VPN 進去遠端環境,然後把 Automation Script 修好看一點,再多增加一些 Debug Information 註解,最重要的是把上週六人家跟我說的解法打成程式,都修好之後就來跑跑看吧,結果一按下去完全沒動靜,我想說糟了,程式改壞了,我就開始找哪裡出錯,但是越找越奇怪 (我找了一小時),沒理由程式一開始就壞啊,是北歐 AI 平台壞掉了,我馬上去翻信,一個月前他們有告知要維修,但是從歐洲時間換算過來,理當修好了勒,除非又延長幾個小時,這時候我什麼事都做不了,只能坐著看股票,大概 11:30 左右,我就同樣程式再跑跑看,這下就可以動了,大約兩分鐘後,跳一個 Error,跟上週一樣的問題,我整個昏倒在椅子上,後來我就睜大眼睛拿著我週六做的表格,再對照一次程式,我發現是我白癡,我把 API Body 的 JSON Key 的英文打錯了,人家是大寫的 C,我打成小寫 c,這樣一改就可以動了,這時候差不多 12:06,我就開心去吃飯。

2026/02/03 好喝的湯

2026/02/03 雞腿很嫩
吃完飯之後就先來睡個覺,總覺得好累喔,今天睡一個小時左右,到兩點半起床,我就先來研究下一個議題,既然程式可以動了,我怎麼知道它如我預期動作呢,以往這不是什麼問題,但是現在平台是北歐人的,自然不可能讓我隨便看,所以我就要研究怎麼看,我看 Tutorial 裡面說有個 Log Viewer,但是我找不到噎,我就每個地方都按按看,大概三十分鐘後,叮咚,被我找到了,我就把我程式名稱打上去,讓系統檢索我的 Log,結果空無一物,我也是很懊惱,不知為何,我腦中閃過一個念頭,在八個 Security Arguments 當中,有兩個是 Platform 有關的 Security Items,而北歐工程師二號給的欄位很 General,他叫我輸入和我的程式名稱無關的一串 String,反觀北歐工程師一號給的資訊是很 Specific for My Code Name,所以我猜測北歐工程師二號是要幫我 Debug,所以把問題簡化,而北歐工程師一號給的才是我專屬的 Secrets,為了讓我程式被北歐平台看懂並記錄我專屬的 Log,自然要帶入我程式名稱專屬的 Platform Security,我是這樣猜測的,我就做個實驗試試看,我把 Automation Script 改成適用於北歐工程師一號的 Arguments,歷經兩分鐘後,程式執行無誤,而 Log Viewer 也確實出現我要看的程式紀錄,這樣就所有問題都解決了,只是還有一個很問號的點是,這設備似乎很爛,我收集十筆 Performance Measurement 資料中,只拿得到一筆資料噎,這樣要做 AI 我也是很問號,不過這三年我也有所成長,更爛的設備是沒資料,主管也說要做 AI,我也是想辦法生出 AI Output。
整理一下北歐平台的日誌:
- 早上順利寫程式 Access Token,下午請假 (2026/01/09)
- Upload Package (2026/01/13 未解,2026/01/14 開始寫 Automation Script 並發現是 Onboarding 誤寫成 Onboardding,至此顯示有上傳)
- Query Status = OnBoarding (2026/01/15 發現偶然會出現上傳 Fail,最後釐清是檔名不能一樣,所以重做一個 ppap 壓縮檔)
- Query Status = OnBoarded (2026/01/15)
- Do Initialization (2026/01/16 實作,但是因為 JSON Input & Output Header 打錯,導致花很多時間 Debug)
- Query Status = Initializing (2026/01/16)
- Query Status = Initialized (2026/01/16)
- Enable Functionality (2026/01/16)
- 完成 App Instantiation,此外發現 Instantiation 後無法刪除,所以又寫一個 Delete App 的腳本 (2026/01/20)
- 寫好 Deploy 腳本,但是缺乏 Security Components,只能找 System Administrator 要 (2026/01/21)
- 找到關鍵 Curl 指令拿到 Configure Measurement,搭配 Filter 能篩選出我要的設備 ID 欄位 (2026/01/22)
- 嘗試各種指令都拿不到 Performance Measurement,最後發現要寫程式進行 Subscribe,搭配 Kafka 拿資料,關鍵訂閱欄位在 OtherDefinition 的 JSON 文件中 (2026/01/23)
- 因為沒有 Security Arguments 不能做 Deploy,所以我去研究 AutoGet PM 的程式,而且是從頭做 Code-Tracing,目前追蹤到:Logger 設定、配置各種 Cert、Key 等 Security Components、Configuration API 配置、上述返回的 ID 整理 (2026/01/27)
- 終於拿到 Security Arguments 了,步驟 1 到步驟 10 的程式要全部改寫,以納入最新拿到的 Key 與 Cert,此外我也從北歐工程師回信找到如何觀察 Kubernetes Services、Pods、Cluster 等等關鍵字中間夾雜的字串是 NameSpace,這在 Deploy 的 curl 指令中需要指定,如果設錯會跳 Error,但是目前仍然顯示 Pod 無法啟動 (2026/01/28)
- 因為 Automation Script 程式太長,DeployStatusCheck 到後期會出現 Token 過期狀況,因此改寫 Automation Script 使得 Deploy 處重新再取一次 Token,開始懷疑 Code 1 的 Tutorial 程式寫錯,所以我著手 Deploy Code 2 程式,但是 Ubuntu 沒有 Update,以至於 Code 2 的 Dockerfile 那關過不了 (2026/01/29)
- 解決 Code 2 的 Dockerfile 那關,但是 Deploy 時發現我缺乏 Kafka Security Key,所以我又回去 Debug Code 1 的程式,發現環境變數堆疊的 Docker Image Name 會出問題,這會觸發 Docker Compose 回歸預設取資料夾名稱當做 Docker Image Name 的窘境,修好這問題後,仍出現 Pod 起不來的狀況,所以我又去搞 Code 2,然後我偷看別公司的 Kafka Security Key,判斷和公司名稱無關,所以我直接拿來用,結果沒出現缺乏 Kafka Security 問題,這關過了,但是還是出現和 Code 1 類似狀況,Pod 起不來,我就直接匯整狀況發一個 Topic 給北歐,此外我還偷看到別的公司怎麼設定 LogEndPoint,我也直接照抄 (2026/01/30)
- 2026/01/31 時北歐工程師有回我,叫我設定另一組 Security Secret Config,2026/02/03 早上平台維修,我等到十一點半左右才能做事,Automation Script 使用週六這組 Config 還是不能跑,最後發現是我 API Body 的 JSON Key 應該是 CaCert 打成 caCert,這修正後就能 Status = Deployed 了,下午時發現 Log Viewer 找不到我的程式運作紀錄,我改成北歐工程師一號給的專屬 Secret 就可以了(2026/02/03)















