Windows 10/11 安裝小技巧 - 使用離線帳戶
過去在安裝 Windows 10 時,我們可以選擇使用 Hotmail/Outlook 等 Microsoft 帳號登入,或在本機建立離線帳戶。傳說某版 Windows 10 之後乃至於 Windows 11,只要安裝期間有連上 Internet,安裝介面便會強迫你登入有效的 Microsoft 帳... Read More
View Article新手機 - S21 FE 與手機換機小記
入手 3C 裝備要發文已成傳統,舉凡 GPS 錶 (GH-625M、Cadio 40H、Fenix 3)、迷你電腦(無風扇小主機、nuc)、筆電(VAIO TG13、小黑 T470p)、手機(Lumia 920、2019 購入的三星 S9 沒寫到是少數例外)都要來一篇,日後要查保固期跟使用年限查一下... Read More
View ArticlePowerShell .ps1 檔 UTF-8 編碼問題之變形錯誤
身分證影本加浮水印文章接到讀者回報奇怪錯誤,說 $resized.Save([IO.Path]::ChangeExtension($imgPath, "Watermark.jpg"), [System.Drawing.Imaging.ImageFormat]::Jpeg) 這段會... Read More
View ArticleASP.NET 小技巧 - 非公開網站隱身術
上回介紹 IP 界的 Whoscall - AbuseIPDB 時有提到,網站只要掛上 Internet 就一定會被機器人騷擾,跑來網站東看西看,找漏洞鑽。這堆機器人有些屬亂槍打鳥,走海巡路線,先試探網站是否有回應,若有就用常見攻擊手法掃一輪,找到漏洞就算賺到,沒掃到就浪費幾個封包。如果網站本身沒有... Read More
View Article.NET 無腦加解密 API - ProtectedData
前陣子研究某個開源專案的密碼保存做法,想確認加密方法是否安全,學到一招很方便的 .NET 無腦加解密寫法,筆記備忘。 之前介紹過 PowerShell 有個 SecureString,可呼叫 Windows DPAPI (Data Protection API) 用不同機器不同登入身分專屬的金鑰加解... Read More
View ArticleCmder PowerShell 視窗隱形字元地雷與 VSCode 新功能
對,我又踩到隱形字元的坑! 同樣是 D:\,一個說目錄不存在,一個說存在是什麼鬼。 將有問題的 "D:" 貼到中文編碼解析工具,茶包立刻現形,是常見的地雷隱形字元 - Zero Width Space 0x200b。 踩到隱形字元不是新鮮事,怎麼冒出來的比較值得追究。經驗中這... Read More
View Article子目錄 web.config 修改後會立即生效?會導致 AppPool 重啟嗎?
ASP.NET/IIS 用了 20 年 (ASP.NET 1.0 誕生於 2002 年 1 月,到今年 20 歲了),仍有不少我不確定答案的疑惑。 我們都知道,同一網站的 web.config 有繼承關係,網站根目錄 /wwwroot/web.config 設定套用全站,/wwwroot/subdi... Read More
View ArticlePowerShell XML 查詢練習
書到用時方恨少,臨時有個需求要從 XML 查詢特定一筆資料,打算用 PowerShell 快速秒殺,卻卡住不知該怎麼寫,只能開了 Visual Studio 用 C# 搞定。 事後檢討,武功招式要能活用,得捲起袖子實際操演熟練,沒有看完教學上場就能出招制敵的好事兒,至少,我不是那種武學奇才,所以有了... Read More
View Article善用 yield return 省時省 CPU 省 RAM,打造高效率程式
雖然有學過 IEnumerable 跟 yield return,遇到需要傳回集合或陣列的場合,我慣用的寫法還是一次將資料整理好,傳回 IList<T> 或 T[],很少想到用 IEnumerable 跟 yield return。大部分情況,兩種做法差異不大,但前陣子研究數百萬個檔案之... Read More
View ArticleSSD、USB 行動碟擺很久沒用資料會消失?
我有個迷思 - USB/SSD 這類快閃記憶體儲存媒體,體積小資料密度高,不像硬碟有機械結構故障的風險,也不像光碟有塗料變質問題,是長期儲存資料的絕佳選擇。 但這兩天我才知道,SSD/USB 行動碟沒插電一直放著,時間太久資料是會消失的! 並不適用以年為單位長期保存資料。換言之,SSD 速度快、效能... Read More
View Article在 ASP.NET Core ApiController 加入多個 HttpGet/HttpPost Action
過去 ASP.NET MVC 時代,我偏好用一般的 MVC Controller 寫 WebAPI,而非走 RESTful 風格的 ApiController。但 RESTful WebAPI 畢竟是當前主流,ASP.NET Core 的內建支援與緊密整合實在太香,於是,要在 ASP.NET Cor... Read More
View ArticleASP.NET Core IAsyncEnumerable 與 yield return 實測
前幾天提到 yield return 具有即時性高、省 RAM 省 CPU 的優點,更是串接出生產線模式的重要技術。我想起在 .NET 6 亮點快速巡覽提到 System.Text.Json 新增搭配 IAsyncEnumerable 應用的非同步串流解析功能。IAsyncEnumerable 不是... Read More
View ArticleChrome/Edge Service Worker 用了一堆 Cache,可以清掉嗎?
人生最常後悔的事之一 - SSD 買太小。 256G SSD C 槽剩不到 10GB 亮起了紅燈,看到系統碟空間不足我就會焦慮,開始動手清廢棄檔。上回學到比 WinDirStat 快 N 倍又能反映真實佔用空間的 WizTree,個人使用免費,是分析磁碟空間不足的首選。 查詢沒發現不合理大檔,就這裡... Read More
View ArticleIE DOMParser F12 地雷
IE 從 IE9 開始支援 DOMParser,是解析 XML、HTML、SVG 的首選。 同事在 IE 用 DOMParser 處理 XML,硬生生踩到地雷。 用以下兩行程式即可重現問題: var xml="<rows><row><id>TEST1&l... Read More
View ArticleASP.NET Core Docker 單兵徒手基本教練
ASP.NET Core 配合 Docker 是我目前自己架網站的主要做法,主流開發工具已有支援,像是 VSCode 有 Remote - Containers 延伸模組,Visual Studio 也內建 Docker 支援,但我學新東西習慣先嘗試不用工具徒手完成,藉此了解運作原理,之後再用工具省... Read More
View ArticleASP.NET Core Docker 時區設定問題
昨天介紹的 ASP.NET Core Docker 做法有個小問題 - 若程式有用到本地時間,在本機執行與在 Docker 容器的結果會不同。原因是 Docker Image 的預設時區為 UTC,與本機不同。 用一小段範例重現問題。在 Program.cs 加入一個 timezone-check ... Read More
View Article備份與還原資料夾 NTFS 權限設定 - 使用 icacls
在 Windows 要完整備份跟還原資料夾很簡單,整個資料夾壓縮成 .zip 或 .7z 就好了。當資料毁損或遺失,解壓覆寫檔案即可還原。但解壓縮只能還原資料夾結構與檔案,不包含原本的 NTFS 權限設定,那權限有沒有辦法備份還原呢? 前幾天查資料時意外學到一招 - Windows 內建工具 - i... Read More
View Article遠端桌面貼上檔案內容錯亂
遇上一個偶發錯誤,問題雖小(而且要很雖小才會遇到吧)也很快被修正,但細思極恐,令人發毛。 Windows 遠端桌面連線(Remote Desktop)的跨機複製貼上功能相信大家都有用過,你可以在本機複製文字、圖片,甚至檔案,在遠端主機按 Ctrl-V 或透過滑鼠右鍵選單貼上,達到跨主機傳遞資料的目標... Read More
View ArticleHeroku 替代方案 - Fly.io 平台之 ASP.NET Core 部署筆記
好用的 Heroku 平台即將取消免費方案,今年 11/28 後會關閉免費 Heroku Dyno,逐水草而居的免費仔們得尋覓新家囉。我在 Heroku 有個 LINE 機器人,雖屬好玩性質可有可無,想想還是為它找個落腳處,順便見識其他平台。上週看到 Cash 大分享一個可取代 Heroku 的好選... Read More
View ArticleWindows 遠端桌面傳檔小技巧
前幾天分享了一起在遠端桌面貼上檔案內容被加料的可怕案例,由讀者朋友們回響,發現不少人都遇過,發生機率沒想像中低。而爬文的心得:RDP 並非可靠的檔案傳輸協定,檔案內容封包會跟畫面顯示、滑鼠鍵盤訊息交錯,蠻容易出錯。包含微軟的人都建議用本機資源形式分享本機磁碟機,再以 \\TSCLIENT\DRIVE... Read More
View Article