Darkthread

黑暗執行緒
  • CODE - C# 推算檔案相對路徑

    最近在資料夾比對工具遇到一個需求:要以某個資料夾為基準推算檔案的相對路徑。例如,若基準資料夾為 C:\Folder,則 C:\Folder\SubFolder\Test.txt 的相對路徑為 SubFolder\Test.txt。 類似需求以前加減寫過,說穿了全是字串比對的功夫,靠將路徑前方相同部分移除取得相對路徑。如果相對路徑需支援 ..\..\Test.txt 這種寫法,邏輯會複雜一些,若還再考慮英文大小寫的話... 總之,計算相對路徑說難不難,自己寫瑣碎細節倒也不少。於是我想起 前幾天 談到的...
  • SQL 最大伺服器記憶體設定值研究

    SQL Server 預設會用光主機所有記憶體(預設上限為 2PB = 2048TB),除非整個資料庫容量小於總記憶體,否則把記憶體當成 Cache 能提升效能、減少磁碟 I/O 耗損,絕對利多於弊。如果同主機有多個資料庫執行個體,或是要與其他應用程式、服務分享記憶體,就必須透過 Max_Server_Memory 設定伺服器可用記憶體上限,保留一部分供其他程式使用。 最近被問到一個問題,針對專屬資料庫用途的 SQL Server 主機,剩餘記憶體的監控警戒值該怎麼抓?若依通用慣例抓 90% ,主機應該...
  • 當心 Request.Url.ToString() 傳回無效 URL

    抓到一個誤用 Request.Url.ToString() 造成的 Bug。 由使用者回報錯誤,追出某段程式擷取 Request.Url.ToString() 加工產生的連結有誤。 原本 URL 參數包含另一頁網址,依規定做了 UrlEncode,如: b=http%3A//blog.darkthread.net%3Fm%3D1%26a%3D456 。ASP.NET 程式抓取 Request.Url.ToString() 修改後串接額外參數"&a=ABC",得到的結果卻是...
  • VS2015 Update 3 TypeScript 語法標示失效

    Visual Studio TypeScript 版本相容問題又來了~ Orz 同事 Visual Studio 2015 Update 3 的 TypeScript 版本仍在 1.8,配合專案要升級到 2.3 ( 相容 2.4 版 需修改程式), 沒留神裝成 TypeScript for Visual Studio 2015 最新版( 2.7.2,應點開 Detail 才能下載歷史版本), 之後發現版本不對再安裝了 TypeScript for Visual Studio 2015 2.3.3...
  • 【茶包射手日記】IE11 localStorage 為 null

    測試一陣子的專案接到回報,某網頁在某台電腦用 IE11 檢視有錯,用 Chrome 或其他電腦的 IE 則無問題。 起初懷疑是 IE 相容模式問題,幸好使用者在同一辦公室,得以親自借用電腦開 F12 查案,追出關鍵點在於問題 IE 的 localStorage 不知何故為 null,而網頁裡的 JavaScript 程式假設網頁會在 IE9+ 或 Chrome 執行,未考慮瀏覽器不支援 localStorage 出錯。 依我所知,IE8+ 即支援 localStorage,而 爬文得知 ,IE 遇...
  • TIPS - 限定 Visual Studio 使用的 C# 語言版本

    同事通報:無法編譯簽入的 C# 專案,部分程式碼存在語法錯誤,細查發現是 Visual Studio 2015 Update 3 不認得以下寫法: public string Id { get => RawId.ToString(); set => RawId.Parse( value ) } 原以為這是 C# 6 語法,VS2015 理應支援,進一步確認是 C# 7 才有的新功能 (Expression Body Property Accessor),難怪 VS2015 不認得。(其實專案安裝...
  • 元件開箱:Managed ODP.NET for Linux

    .NET Core 版本已推進到 2.0,但對我而言,相關元件、程式庫的支援度才是能否用於工作的關鍵。最近有則好消息 – Oracle 在這個月推出 ODP.NET Core 12.2 Beta ,感覺在工作專案使用 .NET Core 的日子又更近了~ 工作環境常會存取 Oracle 資料庫,.NET Core 再好用,連不上資料庫也是白搭。ODP.NET Core 補上這塊拼圖,背後的另一層意義是 Oracle 也已正式將 .NET Core 納入支援平台!(雖然 Oracle 支援 .NET...
  • 捉鬼記 - Google 搜尋結果被穿插廣告

    近來在筆電用 Chrome Google 查東西怪怪的,搜尋結果出現後一兩秒,最上方會冒出幾則 AdSense 廣告,廣告項目的樣式偽裝成一般查詢結果,還會隨機插穿於正常結果之間,閱讀結果時得自行剔除還常不小心點到,讓人肚爛到極點。 一度懷疑是 Google 網站改版想藉此增加廣告營收,但經過分析很快排除此一可能,理由如下: 搜尋結果先出現,廣告是被疊加上去的。有時還會先看到標準 AdSense 廣告框出現在最上方,接著廣告框消失,裡面的廣告項目改變 CSS 樣式混入正常的查詢結果中,事後加工痕跡超級明顯...
  • 【茶包射手日記】VS2017 錯誤清單出現 TypeScript 版本相關錯誤卻可編譯

    之前處理過 VS2017 更新導致 TypeScript 出現大量 is not assignable to 錯誤 問題,若暫時不打算改寫 TypeScript 升級 2.4+,確保專案 TypeScript 版本設定維持在舊版即可。但實際使用發現有個困擾:雖然編輯及使用都正常,但 VS2017 的錯誤清單視窗(Error List)冒出大量 is not assignable to 錯誤,一片紅通通很礙眼,其他程式有錯要查訊息如同大海撈針。 研究一陣子不得其解,不經意看到最下方兩則 Warning...
  • IIS HTTP 強制轉 HTTPS 簡易做法

    再遇到老題目:在 IIS 上如何將 HTTP 請求強制導向 HTTPS? 之前試過顯示說明網頁,倒數後透過 JavaScript location.href 轉向 HTTPS 的做法 - 設計賓至如歸的HTTPS強制導向網頁 。 但這有個缺點,如果不需要顯示導向提示,則先 HTTP 200 送回正常網頁再由瀏覽器另外發出請求連上 HTTPS 多耗費一次往返,不如直接回傳 HTTP 301/302 導向有效率,而連上 HTTP 時回應 HTTP 200 還可能會被搜尋引擎誤判為有效網址。 網路建議的解法多是使用...
  • 實戰小技巧 - .NET Exception Message、InnerException 與 ToString()

    前篇文章 提到 try catch 時若只保留 Exception.Message,可能遺失 InnerException 及 StackTrace 錯失破案重要線索。文章迴響顯示這是個值得介紹的實戰技巧,故再補充一篇。 在某些應用情境我們會選擇使用 try … catch 達成特定目的,例如:(註:Exception 的官方翻譯為例外狀況,這裡容我用較口語化的「錯誤」取代) 捕捉可預期錯誤,進行補救並繼續執行程式 例如:發現作業失敗時,Rollback 交易、寫 Log、通知管理員、退回前一步驟請使用者再試一次...
  • 【茶包射手日記】老 Bug 新感受之 ODP.NET 版本問題

    同事報案。某個使用 Managed ODP.NET 的測試網站吐出以下錯誤 Error: The type initializer for 'OracleInternal.Common.ProviderConfig' threw an exception. 同事一度懷疑跟 ODP.NET 版本有關,但依經驗,如為版本問題錯誤訊息會確指出所需元件全名、版號等資訊。為調查問題,我直接在 IIS主機 現場撰寫 Tets.aspx 偵錯 ,測試程式一用到 new Oracel.ManagedDataAccess...
  • TIPS–7-Zip 壓縮時略過特定目錄或檔案

    這是我常遇到的困擾 - 壓縮打包 .NET 專案時,packages、bin、obj 等目錄下的 DLL 檔常讓檔案大小暴增數十倍,而這些檔案可透過 NuGet Restore 或重新編譯產生,基本上不需要保留。如果能在壓縮時略過這些資料夾,預期可省下可觀的體積。 平時我都用免費且開源的 7-Zip 壓縮解壓縮(題外話,如果你己經「免費試用」 試用期只有 40 天 的 WinRAR 了十幾年,可考慮改用 7-Zip),認真查了,7-Zip GUI 在壓縮時雖然有個 Parameters 欄位: 官方說明...
  • 使用 Razor 產生客製化 Email 內容

    多年下來,寫程式發 Email 通知的需求做過 N 回,其中寄給客戶的通知為求美觀常需採用 HTML 格式,而客戶姓名、通知內容等要隨客戶動態改變,嚴格來說也是一種套表。過去我慣用一套自己發明的「特別註記+Replace」做法,例如: var tmpl = "<span>[$Name$]</span> 您好,您的等侯順位為<span>[$SeqNo$]</span>" ; var dict = new Dictionary<...
  • 【笨問題】在 Windows 檔案總管切換音樂/相片資料夾之詳細資料檢視

    在使用 Windows 檔案總管我常遇到以下狀況 – 遇到滿載 MP3 或 JPG 檔的資料夾,選擇「詳細資料」檢視時檔案總管會自動切成音樂或照片專用的檢視,像是這樣: 遇到音樂顯示標題、演出者、專輯名稱,遇到照片可以帶出拍攝日期、尺寸,對一般消費者來說是很貼心的設計,可依據媒體特性方便排序管理。但對想靠檔案日期及大小查問題的茶包射手來說,這些預設欄位沒半個有用。過去我常用的解決方法是在欄位標題按右鍵新增修改日期、大小欄位: 最近學到一招,其實可以要求 Windows 將這個資料夾切回成一般檔案的詳細檢視...
更多文章 « 上一頁 - 下一頁 »
Powered by Community Server (Non-Commercial Edition), by Telligent Systems