講到 .NET 解析 CSV,我習慣用 ServiceStack.Text CsvSerializer 處理,功能與效能都沒啥問題,也就一直沿用至今。今天在 FB 看到相關討論,發現有個我錯過的 CSV 程式庫 - CsvHelper (感謝網友許智涵分享),保哥之前寫過文章分享(參考:使用 C# ...

密碼仍是當代最常用的身分識別方式,但密碼也是使用者跟系統管理的痛苦來源之一。密碼太短太簡單容易被猜中,太長太複雜記不住,忘記了要重設自己煩客服也煩;對系統管理者,密碼如燙手山芋,儲存得加鹽並慎選雜湊演算法才安全(延伸閱讀:密碼要怎麼儲存才安全?該加多少鹽?-科普角度)(當然隨便雜湊加密湊數,甚至直接...

.NET 8.0 已於 11/14 發佈,.NET 8 為 LTS (長期支援版,單數版號如 .NET 7 為 STS,支援週期只有 18 個月 ) 較符合企業應用需求。最近便試著將 .NET 6.0 專案升到 .NET 8.0,原以為可無痛升級,但連續踩坑搞到灰頭土臉,這裡先分享多建構式型別的 D...

後知後覺發現 Bing Chat 加入了 DALL-E 3 支援(繪圖品質跟前一版 DALL-E 又提升了一個檔次),也跟 ChatGPT 一樣可以上傳照片請它識別,請它用 DALL-E 3 產生影像,最重要的是,這些都免費! Bing App 也同步加入這些功能,可以實現手機拍照上傳讓它識別,用語...

前陣子專頁有篇貼文談到 WebAPI 出錯時,是否必須必須透過 HTTP Status 反映執行結果,例如:找不到時吐 404、系統出錯時回應 500?,得到不少回響,我也獲了新體悟。 我一直認為 WebAPI 是種 Contract,服務端與客戶端約定好,雙方都覺得 OK 就好。即便執行結果出錯,...

寫 Side Project 時踩到一個問題。某物件使用 System.Text.Json 序列化成 JSON,試著用 Json.NET 解析時冒出 "The input is not a valid Base-64 string as it contains a non-base 64 ...

相較於 CSV (Comma-Separated Values),我更愛用 TSV (Tab-Separated Values) 格式,字串值包含 Tab 符號的機率遠低於逗號,通常用 Split('\t') 就夠了,不需加入例外解析邏輯。 Console.WriteLine() 輸出 TSV 時,...

近年來,我日常寫 ASP.NET Core 網站的起手式都是先開 Minimal API 專案,功能不太複雜的話,單一 Program.cs 不到 200 行程式把功能寫完,用最少資源搞定,不含半點贅肉,符合我追求的極簡精神。 不過,當程式愈寫愈複雜,就得朝向前後端分離,建個 wwwroot 資料夾...

用 C#/PowerShell 呼叫 .exe 程式,透過 StandardOuput、StandardError 讀取程式輸出算是 .NET 基本技巧 (參考:命令列工具的 stdout, stderr 輸出與 .NET 整合應用),理論上要整合各式 CLI 程式都不成問題。今天踢到一塊鐵板,才知...

前陣子買到一批便宜的 ST-LINK 偵錯器(55 元有找,比珍奶還便宜),又燒錄了兩支土砲版 USB 實體金鑰: 過程有個小插曲。這批外型看似與先前買的一致,但腳位居然不同! 上一批按鈕焊接的 CLK 跟 5V 接點在電路板兩端,滑鼠拆下來的歐姆龍微動開關焊上去尺寸剛剛好。而這次買的版本 5V ...

TOYOTA 臉書粉專的一則貼文引起討論。 我們都知道圓形綠燈時,若無其他標誌、標線禁制或指示下,准許車輛直行或左、右轉,那如果車道有左轉箭頭,圓形綠燈時可以左轉嗎? 貼文舉了幾個例子: 同時標示直行跟左轉箭頭,可左轉沒什麼爭議 標示左轉箭頭的雙白線車道,不能直行理所當然 但,標示左轉箭頭的白...

解救自己的小工具,部分遠端環境不能使用複製貼上功能,有些是系統不支援,有些基於安全原則(例如:Windows RDP 可透過群組原則 Do not allow Clipboard redirection 停用)或需要特別設定,伺服器非我方管理,無計可施。 此一限制造成不少困擾,像是筆記裡的超長指令,...

學會 Markdown 後愈來愈不愛開 Word,習慣 CLI 後愈來愈不想滑滑鼠,是我這些年的寫照。 我除了 Blog 用 Markdown 寫,技術相關文件也試著改用 Markdown 寫,VSCode 配合相關套件,基本上的功能已能滿足,畢竟技術文件的核心在於文字、圖例本體,使用 VSCode...