演算法漫談 - Padding 填充如何表示原始資料長度?
在演算法中常有將原始資料補到固定長度的需求,例如:Base64 編碼是將三個 Byte 資料轉成四位英數字加 +、/ 符號(大寫x26 + 小寫x26 + 數字x10 + 符號x2 = 64 = 26,四個字元 4 x 26 == 3 x 28 三個Byte),若資料 Byte 數非 3 的倍數就要... Read More
View Article【答客問】ODP.NET 安裝程式到底會不會自動註冊 GAC?
讀者 UG 提了一個好問題: 在 ASP.NET /bin 組件載入跟你想的不一樣文章曾提到「"安裝 Oracle Client 時會一併安裝 ODP.NET 到 GAC,故實務上 ASP.NET 會使用裝在 GAC 的組件,並不需要部署 /bin/Oracle.DataAccess.d... Read More
View Article介紹 Github 學生大禮包 - Developer Pack 與魔法武器 Github Copilot
如果你是在學學生,平日會寫到程式但還沒體驗過神奇的 Github Copilot,那這篇值得看一下,錯過可惜。 有許多同學還不知道在學學生可以免費申請 Github Copilot,讓你寫程式如有神助,避免被 AI 的時代巨輪碾壓(還是那句老話:你不會被 AI 取代,而是被會用 AI 的人取代),這... Read More
View ArticleWindows 2019+ 之檔案總管視窗邊框消失問題
Windows 2019/2022 有個糟糕設計 - 目前正在操作的檔案總管視窗邊框會消失! 如下圖,開啟兩個檔案總管,焦點在較上層的檔案總管,原本淺灰邊框消失,與下方視窗融為一體,要點選位於邊邊角角的選單或縮放關閉鈕時常點錯。 聽同事在抱怨,發現原來不只我有困擾,噗。查了一下,有個簡單解法:開啟... Read More
View ArticleCoding4Fun - 自製網站 TLS 憑證 CLI 快速檢視工具
要調查網站 TLS 憑證無效問題,最直接做法是從瀏覽器安全連線圖示逐步點開檢視憑證內容: 憑證檢視器會顯示憑證信任鏈,可查看根憑證、中繼憑證及伺服器憑證的詳細資料,但要知道憑證的主體(Subject)、簽署者(Issuer)、有效期間、指紋等資訊,需逐一點開才能看到。 今天處理一個案例,需要比對... Read More
View Article網站 TLS 憑證 CLI 檢視工具 PowerShell 版 ft. Github Copilot Labs
昨天寫好的網站 TLS 憑證 CLI 快速檢視工具只算是原型機,在工作環境 EXE 檔使用前需先部署,易有病毒木馬疑慮,應用阻力較大。相形之下,腳本形式的 PowerShell 傳送方便(可以貼在 Word 或 Email 裡),程式為明文可直接審閱,從管理稽查角度較易接受,是更可行的方案。因此 P... Read More
View ArticlePowerShell 小工具 - 列舉傾聽的 TCP Port 與其對應程式
想寫這個工具很久了,因緣成熟,花了點時間做出來。 遇到 Windows 在 Listen 某個 Port,若想知道是哪支程式使用中,簡單做法是 netstat -ano | findstr /i "listening" 得到 Process Id (PID),再用 PID 去查程... Read More
View Article【茶包射手日記】詭異的 TLS 憑證數位簽章無效問題
之前處理過不少 TLS 憑證無效問題,這回遇上一枚絕對新鮮的罕見茶包。 狀況如上圖所示(純屬模擬示意,非實際狀況),瀏覽器警示網站不安全,檢視憑證信任鏈,根憑證(TWCA Global Root CA)、中繼憑證(TWCA Global EVSSL Certification Authority)... Read More
View Articlelog4net 依日期分檔設定
工作環境有些祖傳專案是用 log4net 寫 Log (後來的專案大多以 NLog 為主 參考 ),前人慣用 RollingFileAppender 的兩種設定方式,第一種是固定檔名,依指定大小分檔(rollingStyle="Size"),舊檔附加 .1、.2 順序編號,類似這... Read More
View Article【笨問題】機車鑰匙末端的奇怪形狀是做什麼用的?
騎機車資歷超過三十年,但還是要持續補充常識才能跟上時代。 小木頭喜牽新車,身為資深騎士當然要把握機會,擺出老鳥架勢提點兩句,教導他如何駕御座騎。 萬萬沒想到,才介紹到鑰匙孔就卡住了... (登楞) 新車的鑰匙頭有個上方突起一塊,半圓加半個八角形結合的奇怪形狀,與右側有個凹糟形狀相符,看來可以插進去旋... Read More
View Article為檔案總管右鍵選單加入 Word 檔轉 PDF 功能
生活中有不少用 Word 撰寫文件,但交件格式限定 PDF 的需求。Word 很早已內建另存 PDF 功能,所以我都是用 Word 編輯修改,最後再另存轉 PDF。 但我有個壞習慣,寫文章寫文件喜歡反覆琢磨補充潤飾,總覺得還可以改得更好。所以寫完交卷前我會存成 PDF 先擱一陣子,確保萬一想到新點子... Read More
View Article【茶包射手日記】有深度的 ASP.NET WebForm Web Site Project 編譯錯誤
接獲報案,某運作多年 ASP.NET WebForm 專案(Web Site Project),專案成員忽然都無法成功編譯 .wdrpoj 部署專案,會出現「並未將物件參考設定為物件的執行個體錯誤 / Object reference not set to an instance of an obj... Read More
View ArticleT5 日光燈故障案例 - 點亮三秒後兩支燈管一起熄滅
廚房的日光燈,四年前學到 T5 燈管比 T8 省電、壽命長後就由 T8 兩尺雙管換成 T5 四尺雙管,耗電雖由 40W (20Wx2) 上升到 56W (28Wx2) 增加 16 瓦,但理論亮度由 3200 流明(80lm/W x 40W)提高到 5768 (103lm/W x 56W),廚房從此大... Read More
View ArticleCoding4Fun - 將 PDF 逐頁轉成圖檔(使用 PDFiumCore)
突發奇想閃過念頭,想把 PDF 投影片逐頁轉成圖檔,索性當成 .NET 練習題伸展暖身,說做就做。 .NET PDF 元件選擇不少,但好用的多是商用軟體,開源專案如 iTextSharp、QuestPDF 新版也改成商業授權,而轉存圖檔不同於編譯修改文件,訴求重點不同,順便趁機認識不同的程式庫。 這... Read More
View ArticleCLI 小技巧 - 文字檔搜尋關鍵字並顯示前後文(grep / PowerShell Select-String)
最近有個小需求,想從 cmdkey /list 記憶密碼清單找出用某帳號登入的伺服器對象,例如想查出 jeffrey 被用來登入 TERMSRV/RemoteSvr、RemoteSvr(Domain)、TERMSRV/172.28.1.1。 上圖項目不多,直接用眼睛看即可。我的實際案例包含 git... Read More
View Article大砲打小鳥之 ChatGPT 翻譯鳳梨酥 LINE Bot
身為程序員,一直把「增進人類全體之生活」當成使命,沒能力為人類產生貢獻,能「增進家人之生活」也好。 長輩請了外籍看護,國語跟英文只到勉強溝通,最後 LINE 加翻譯軟體竟是目前效果最好的溝通方式。結果我做了件「用大砲打小鳥」的事 - 用 ASP.NET Core 寫 LINE Bot 接 ChatG... Read More
View Article「網站執行 Stored Procedure 爆慢,移到 SSMS 跑卻飛快」問題之徹底研究
一個常見問題:SQL 上某個 Stored Procedure (以下簡稱 SP),從網站應用程式執行超慢,甚至等到逾時報錯;將同樣的 SP 及呼叫參數拿到 SSMS (SQL Server Management Studio) 執行卻瞬間完成;或是 SP 慢到無法忍受,將其中語法邏輯 Copy 出... Read More
View Article【茶包射手日記】ASP.NET WebForm 出現 System.Web.AspNetHostingPermission 安全錯誤
接獲報案,ASP.NET WebForm 站台更新 DLL 元件後出現安全錯誤,訊息如下: Security Exception Description: The application attempted to perform an operation not allowed by the se... Read More
View Article深入 SQL Parameter Sniffing 與執行計劃效能問題
【前言】關於 SQL 執行計劃如何影響查詢效能議題很久之前研究過了(SQL筆記:Index Scan vs Index Seek、SQL筆記:Literal, Variable與Parameter),昨天研究 網站執行 Stored Procedure 爆慢,在 SSMS 秒回問題找到 SQL Se... Read More
View Article「機碼用在特定狀態時無效」錯誤與 Windows 無腦加密冷知識
我寫了個 PowerShell 小工具,用 ConvertTo-SecureString/ConvertFrom-SecureString 加密保存資料,背後是靠 Windows DPAPI (Data Protection API) 運作,一套 Windows 內建,與使用者帳號與所在主機整合的加... Read More
View Article