PowerShell 命令加了 -ErrorAction SlientlyContinue 照樣出錯
PowerShell 有個 -ErrorAction SilentlyContinue 參數可在出錯時隱藏錯誤訊息,並繼續執行命令。 今天發現,ErrorAction 參數不是對所有命令都有效,以下是個簡單測試,用 Get-LocalGroup 跟 Get-ADGroup 查詢本機及 AD 群組,故... Read More
View ArticleCoding4Fun - 計算不同密碼長度與複雜度所需暴力破解時間
前陣子參加一個 SHA1 暴力破解挑戰,寫了 .NET 程式用上 Parallel.ForEach 平行處理,幾經調校將嘗試次數推上每秒 300 萬次, 64 顆 CPU 齊上 85% 真是壯觀,是次有趣體驗: 這類大量破解運算用 CPU 跑吃力不討好。但決定入手迷你電腦當工作機的那一刻,便註定跟... Read More
View Article我的密碼會被一秒破解嗎?遇上暴力破解能撐多久?
Have I Been Pwned (HIBP) 是澳洲安全專家 Troy Hunt 在 2013 年建立的外洩密碼查詢平臺,連美國 FBI 跟英國 NCA (國家犯罪調查局)都會將蒐集到的外洩密碼貢獻給 HIBP 收藏 (參考:繼美國之後,英國也加入提供外洩密碼予Have I Been Pwned... Read More
View Article五分鐘排除雷射印表機印出黑點雜線問題
小閃光報案,家裡雷射印表機列印時紙上會出現固定規律的雜點,如下圖,每隔固定距離出現平行的兩個黑點: 我對雷射印表機的研究僅限於換碳粉匣跟處理卡紙,第一次遇到這種狀況還以為是核心組件出了問題,只能送修或買新機。 爬文後再長知識:入門等級印表機的感光鼓(或稱感光滾筒)跟碳粉匣都裝在那個可抽出的組件上,... Read More
View Article馬拉松式射茶包 - Process Monitor 長期監控小技巧
Process Monitor 是調查刁鑽問題的神兵利器,透過觀察程式存取檔案、Registry 行為,往往能在案情膠著之際找出關鍵線索,在我的茶包射手生涯中立功無數,堪稱茶包一哥。 【延伸閱讀】 Process Monitor基本操作教學 Process Monitor 2.0 ProcMon五... Read More
View Article為 js/css 加上自動版本參數防止 Cache 惹禍 - WebForm 版
.js/.css 換版後,想防止網頁讀取 Cache 強迫改用新版,最無敵的做法是在網址加個 ?v=XXX 參數,每次換版一併更新,URL 參數不同讓原 Cache 失效,即可確保萬無一失。 但手工維護 ?v=... 參數意味著每次換版必須叫出所有引用該 .js/.css 的網頁,一一修改 URL ... Read More
View Article再談 js/css 快取控制:Cache-Control vs 版本化網址(雜湊指紋參數)
前幾天說到 WebForm 版 js/css 自帶版本參數元件,讀者 yoyo 提了一好問題:HTTP 針對靜態檔已有 ETag、Last-Modified、If-Modified-Since、If-None-Match 等快取管理機制(延伸閱讀:IIS HTML 檔 Cache 行為觀察,何需自己... Read More
View ArticleHttpClient 多執行緒執行出錯案例
依先前所學,System.Net.HttpClient 的 GetAsync()/PostAsync()/SendAsync() 等方法為 Thread-Safe,建議做法是只建立一份 HttpClient,以 static 方式共用。 今天踩到雷,以下為重現問題的程式範例。網頁使用 Windows... Read More
View ArticleMarkdown 文件寫作實務 - 數學公式、流程圖
學會 Markdown 後愈來愈不愛開 Word,習慣 CLI 後愈來愈不想滑滑鼠,是我這些年的寫照。 我除了 Blog 用 Markdown 寫,技術相關文件也試著改用 Markdown 寫,VSCode 配合相關套件,基本上的功能已能滿足,畢竟技術文件的核心在於文字、圖例本體,使用 VSCode... Read More
View ArticlePowerShell 小工具 - 將複製文字轉為鍵盤輸入
解救自己的小工具,部分遠端環境不能使用複製貼上功能,有些是系統不支援,有些基於安全原則(例如:Windows RDP 可透過群組原則 Do not allow Clipboard redirection 停用)或需要特別設定,伺服器非我方管理,無計可施。 此一限制造成不少困擾,像是筆記裡的超長指令,... Read More
View Article只有左轉箭頭的車道,圓形綠燈可以直行?
TOYOTA 臉書粉專的一則貼文引起討論。 我們都知道圓形綠燈時,若無其他標誌、標線禁制或指示下,准許車軸直行或左、右轉,那如果車道有左轉箭頭,圓形綠燈時可以左轉嗎? 貼文舉了幾個例子: 同時標示直行跟左轉箭頭,可左轉沒什麼爭議 標示左轉箭頭的雙白線車道,只能直行理所當然 但,標示左轉箭頭的白... Read More
View Article按鈕版 Gnuk 實體金鑰燒錄筆記
前陣子買到一批便宜的 ST-LINK 偵錯器(55 元有找,比珍奶還便宜),又燒錄了兩支土砲版 USB 實體金鑰: 過程有個小插曲。這批外型看似與先前買的一致,但腳位居然不同! 上一批按鈕焊接的 CLK 跟 5V 接點在電路板兩端,滑鼠拆下來的歐姆龍微動開關焊上去尺寸剛剛好。而這次買的版本 5V ... Read More
View ArticleStandardOutput/StandardError 抓不到的輸出訊息
用 C#/PowerShell 呼叫 .exe 程式,透過 StandardOuput、StandardError 讀取程式輸出算是 .NET 基本技巧 (參考:命令列工具的 stdout, stderr 輸出與 .NET 整合應用),理論上要整合各式 CLI 程式都不成問題。今天踢到一塊鐵板,才知... Read More
View Article在 ASP.NET Minimal API 啟用 MVC 功能
近年來,我日常寫 ASP.NET Core 網站的起手式都是先開 Minimal API 專案,功能不太複雜的話,單一 Program.cs 不到 200 行程式把功能寫完,用最少資源搞定,不含半點贅肉,符合我追求的極簡精神。 不過,當程式愈寫愈複雜,就得朝向前後端分離,建個 wwwroot 資料夾... Read More
View Article.NET CLI 小技巧 - Tab 分隔字串之表格化顯示
相較於 CSV (Comma-Separated Values),我更愛用 TSV (Tab-Separated Values) 格式,字串值包含 Tab 符號的機率遠低於逗號,通常用 Split('\t') 就夠了,不需加入例外解析邏輯。 Console.WriteLine() 輸出 TSV 時,... Read More
View Article冷知識 - base64url 編碼
寫 Side Project 時踩到一個問題。某物件使用 System.Text.Json 序列化成 JSON,試著用 Json.NET 解析時冒出 "The input is not a valid Base-64 string as it contains a non-base 64 ... Read More
View ArticleSharePoint CSOM 錯誤:Cannot add a role assignment with empty role definition...
SharePoint CSOM (Client-Site Object Model) 的冷門茶包,搞了快兩小時,寫篇筆記留給有緣人。 要授與 SharePoint 清單讀者權限給 Domain\Account,參考官方範例 BreakRoleInheritance()、建立 RoleDefiniti... Read More
View Article解析 WebAPI HTTP 500 回應附帶的 JSON 內容
前陣子專頁有篇貼文談到 WebAPI 出錯時,是否必須必須透過 HTTP Status 反映執行結果,例如:找不到時吐 404、系統出錯時回應 500?,得到不少回響,我也獲了新體悟。 我一直認為 WebAPI 是種 Contract,服務端與客戶端約定好,雙方都覺得 OK 就好。即便執行結果出錯,... Read More
View Article小試手機 Bing Chat - 語音交談、拍照上傳、AI 生圖隨意玩
後知後覺發現 Bing Chat 加入了 DALL-E 3 支援(繪圖品質跟前一版 DALL-E 又提升了一個檔次),也跟 ChatGPT 一樣可以上傳照片請它識別,請它用 DALL-E 3 產生影像,最重要的是,這些都免費! Bing App 也同步加入這些功能,可以實現手機拍照上傳讓它識別,用語... Read More
View Article.NET 8 升級踩坑 - ASP.NET Core DI 多建構式設定失效
.NET 8.0 已於 11/14 發佈,.NET 8 為 LTS (長期支援版,單數版號如 .NET 7 為 STS,支援週期只有 18 個月 ) 較符合企業應用需求。最近便試著將 .NET 6.0 專案升到 .NET 8.0,原以為可無痛升級,但連續踩坑搞到灰頭土臉,這裡先分享多建構式型別的 D... Read More
View Article