同事分享,這幾天踩到 Chrome/Edge 升級 131 版的雷。 古蹟系統有段用 innerHTML 動態更新 <select> 選項的網頁,在 Chrome/Edge 升級 131 版後壞掉了。 設法重現問題,找了台久未開機的 VM 還有 Edge 130 版測試模擬網頁如下圖,&...

最近在用 Docker 容器跑壓力測試,我想知道每個容器的 CPU、記憶體使用狀況,有無超出 Host 主機承載上限。 爬文查到 docker stats 能顯示當下各容器 CPU、記憶體、網路跟磁碟 IO,既然能拿到這些資料,定期輪詢寫成 Log,後續要出什麼分析報表都不成問題。 不過,查資料時...

先說一下需求情境,假設我用 HTTPS Nginx Docker 之懶人安裝法在 Linux 主機跑了一個 ASP.NET Core Docker / Python 網站 Docker,網站自動套用了 Let's Encrypt TLS 憑證且會自動更新。此時,你想要在這個現成的網站 Docker ...

截至目前為止,我整合 ChatGPT API 的應用限於靠預訓練知識校閱文章、彙整文件或翻譯,頂多整合向量資料庫試玩 RAG。有一種重要應用還沒試過 - 提供自訂函式或功能給 ChatGPT 呼叫! 即便最新版 ChatGPT 已具備上網能力,但有很多時侯我們想整合的資料來企業內部或屬於個人隱私,總...

手邊有個小需求是想在網頁特定元素加上 Tooltip 效果,滑鼠滑過時能顯示補充資訊。 最簡單的做法是是為元素加上 title ,例如:<a href="#" title="黑暗執行緒部落格 https://blog.darkthread.net">...

Python 跑 Flask 的實驗性質小網站丟到 Internet 上跑,由於 Debug 模式會即時顯示每筆 HTTP 存取,我活生生看到一堆噁心的存取記錄: 喵的,這個沒公開的網站,上線沒幾分鐘馬上招來一堆惡意機器人上門,四處翻找想看你是不是有犯什麼低級錯誤,有沒有檔案可以偷回家,有沒有漏洞...

有個實驗性質 Python 小網站想丟上 Linux 執行,手工下指令驗證可行後,延續過去在 Linux 跑 ASP.NET Core 網站的經驗,下一步就想把它包成 Docker 容器,用起來才方便。 ASP.NET Core 要包 Docker 我不陌生,但 Python 網站是頭一回,什麼都新...

故事要從八年前這篇漫談尾牙抽獎程式的公正性說起,我一向支持讓抽獎程式開源,以擺脫長久以來電腦抽獎常被人指責「黑箱」「作弊」卻百口莫辯的悲情。我認為「演算法及程式碼公開,以具公信力且無法操控的方式決定亂數種子,輸入亂數函數產生可預測的亂數決定抽獎結果,並確保演算結果能被反覆驗證」是面對不公質疑的終極解...

遇到用 PowerShell 爬網頁並簡單解析 HTML 取資料的需求,為此研究了做法,筆記備忘。 如果是 PowerShell 5.1,Invoke-WebRequest 背後是用 WebClient,傳回 Response 物件有個 ParsedHtml 屬性 背後是超古老的 IHTMLDocu...

兩年多來,習慣了有 Github Copilot 幫忙寫程式,已回不去以前的全手工寫 Code 日子。 這有點像都是在遊山玩水,但以前是自己查地圖騎自行車,現在則是騎機車開導航,如果最終目標是把握時間多跑些地方開眼界,完全沒理由花時間燒大腿爬坡過山頭啊~ (當然,如果志在健身或成為選手,另當別論) ...

距離上次用 Azure OpenAI SDK 整合 ChatGPT 功能已是一年多前的事。(ChatGPT 聊天程式練習 - 使用 .NET + Azure OpenAI API) 最近的 Side Project 又有整合 ChatGPT 需求,修改過程發現上次用的 .NET 版 Azure.AI...

在我們的認知裡,所謂的資料庫交易(Transaction)必須要做到交易範圍內的所有更新動作,要嘛一起更新,要嘛一起失敗,不允許出現部分更新的狀態,這是最基本的要求。就像轉帳交易,A 帳戶減 100 跟 B 帳戶加 100 必須一起成立(Commit)或全部取消(Rollback),若存在 A 帳戶...

T8 日光燈管壞了直接換成 LED 燈管是近年的趨勢,約略能減少一半的耗電(若以 2 尺 T8 燈管為例,可從 20W 減少到 10W),加上現在 LED 燈管價格日益親民,大廠的 2 尺 T8 LED 也百元有找,跟傳統 T8 螢光燈管五、六十一支相去不遠,考慮 LED 壽命是傳統燈管的數倍,T8...

同事報案,修改程式後用 git status 指令卻怎麼也看不到異動項目。幫忙看了一下,發現同事卡在下圖的指令 [1] 陷入鬼打牆,而我輸入指令 [2] 則順利查到異動內容: 看到這裡,再配上標題,老鳥們應該都知道是怎麼一回事了。 詢問同事,指令來自某份 .txt 備忘錄,而進一步溯源,.txt ...