RSA 非對稱金鑰加解密與數位簽章筆記
用 .NET 加解密已是老生常談,.NET 內建 MD5、SHA1、RSA、AES、DES... 等雜湊及加密演算法,寫來易如反掌,網路上的文章也很多。但沒有自己整理過一次,每回要用都要爬文找半天。有些基本功不能省就是不能省,所以,我的 RSA 私房筆記來了。程式範例 1 包含:產生隨機 RSA...
View Article2017 台北馬
告別 2017 的最後一場馬拉松 - 2017 台北馬。大家都知道我挑選馬拉松比賽的原則是「鍾情小而美,不愛大拜拜」,會跑台北馬自己也意外。一來是上回參加已是 3 年前,去年改了賽道加繞中正紀念堂、總統府、南門、西門,聽說變得頗不一樣,很有城市味值得一試;二來則是台北馬要抽籤,隨手登記抽中正取,原以為 7000 個名額沒啥好搶,卻驚聞不少人想跑卻抽不中,莫名覺得到嘴肥肉不能放,腦波一弱就......
View Article除蟲筆記 – Thread 執行時機與 Closure
同事的 .NET 程式抓到一隻有趣的 Bug。以範例程式重現如下:staticvoid DoProcess(int idx){while (StartFlag) { Thread.Sleep(1000); Console.WriteLine( $"{DateTime.Now:mm:ss} Thread {idx} is running."); }} staticvoid Main(string[]...
View Article全文檢索筆記–Windows Search SQL經驗談
因應專案需要,先前研究過 Lucene.Net。Lucene.Net 功能強大效能佳,又提供極高客製彈性,但缺點是得自己處理從 PDF、Word/Excel/PowerPoint 檔提取文字、管理索引排程,瑣碎工作不少。最後,我選擇到超市買牛奶而不自己養牛,決定借用 Windows Search 功能實作網站內容全文檢索,建個目錄把檔案放進去(txt、html、pdf、docx、xlsx、pptx...
View ArticleASP.NET 眼中的 ".\Blah.sqlite" 在哪裡?
同事報案,在ASP.NET 存取 SQLite 資料庫,路徑誤用 ".\Blah.sqlite" (一般多使用 Server.MapPath("~\App_Data\Blah.sqlite"),參考:App_Data的隱身特性 ),程式可以運作,以為 Blah.sqlite 檔案會出現在 bin 目錄但沒有,使用 Everything 搜尋也找不到蹤跡。這裡有個迷思,依直覺 ASP.NET...
View Article【茶包射手日記】TypeScript 出現大量 is not assignable to 錯誤
同事報案,在沒動 TypeScript 的情況下,專案爆出大量 TypeScript 錯誤導無法編譯。 錯誤訊息滿是各式各樣的 A is not assignable to parameter of type B。目擊證人指出,問題出現在 VS2017 安裝更新後,VS 更新成為最大嫌疑犯。深入調查後案情逆轉,發現 TypeScript 2.3 版本被移除,專案屬性設定 TypeScript 原指定...
View ArticleVS2017 還原 NuGet 失敗:The given key was not present in the dictionary.
由 Github 抓回開源專案研究,用 Visual Studio 2017 編譯出現錯誤,貌似還原 NuGet Package 出錯導致,錯誤訊息為 "The given key was not present in the dictionary":Restoring NuGet packages... To prevent NuGet from restoring packages during...
View Article【茶包射手日記】Win10 IIS 無法啟用 32 位元模式(HTTP 503)
在工作機 IIS 測試 ASP.NET 網站,得到「An attempt was made to load a program with an incorrect format /試圖載入格式錯誤的程式」,這是經典問題,一看訊息就知是 32/64 位元版本不對,好發於在 x64 Windows 使用 32 位元 Oracle Client 的情境。基本上只需在 IIS AppPool 進階設定啟用...
View Article閱讀筆記:人工智慧簡史
讀到保哥推薦的好文章: 從人工智慧、機器學習到深度學習,你不容錯過的人工智慧簡史 - INSIDE 硬塞的網路趨勢觀察這一年來,人工智慧、機器學習、深度學習等名詞無所不在,一直開啟慈禧太后模式視若無睹充耳不聞也不是辦法,身為連院子都沒踏進的門外漢,讀完這篇文章算是有了概念摸到電鈴,未來聽人豪洨提及這些名詞不再一臉茫然。簡單摘要如下:「人工智慧」( Artificial Intelligence,...
View Article2017 歲末雜記
2017 最後一天,聊點風花雪月生活瑣事當作句點。馬口魚去年底拿塑膠收納箱搞起生態池,種水草養螺不過癮,元旦跑去溪邊撈了小魚回家養。由於裝備業餘技巧拙劣,能抓到的盡是 1 到 1.5 公分不等的幼幼魚,回家爬文依其特徵判斷為馬口魚(之前曾在 FB 亮相)。不知不覺己整整養了一年,留下一尾「藍波」,身長約十公分。生態池僅能俯拍加上魚兒動作敏捷,只拍到模糊照片充數!...
View Article【茶包射手日記】用 USB 安裝 Win10 找不到媒體驅動程式
2018 開春第一砲包。元旦在家當工具人,幫小閃光的 Toshiba 小筆電重灌 OS。Windows 10 1709 的 ISO 檔超過 4.8 GB 燒不進 DVD... (登楞) 被逼著第一次體驗用 USB 行動碟裝機。製作開機 USB 有個超好用的工具...
View Article閱讀筆記:Intel CPU 漏洞問題
整理一下這兩天的超大條資訊新聞 – Intel 這十年來製造的 CPU 都存在一個漏洞,可能讓攻擊者偷走存在記憶體裡的機密資料,不管你是用 Windows、Mac 還是 Linux 都會中獎,當今之計是靠更新作業系統補救,但要付出電腦變慢 5% – 30% 的代價。Google Project Zero 團隊發現當今 CPU 採用的「推測執行」(speculative...
View Article野人獻曝 - 極簡風格 .NET Stopwatch 計時法
在 .NET 要測量執行時間,Stopwatch 是最簡單直覺的做法,像這樣:Stopwatch sw = new...
View ArticleRequest.Url.Host 偽造實驗
我有個 IIS 網站同時繫結多個 IP,想做到依據連上的伺服器 IP 授與不同權限,例如: 有些功能開放外網 IP 連入使用,某些功能限定內網及 localhost IP 才能用。設立兩個站台繫結不同 IP 及 Port 但共用同一份 ASP.NET 程式碼是一種解法,但我貪圖共用 Process 及靜態物件的便利性,因此要研究正確識別 Request 伺服器來源 IP...
View ArticleTIPS - C# 讀取 Oracle dbms_output.put_line 輸出資訊
使用 dbms_output.put_line() 列印執行資訊是常用的 Oracle Stored Procedure 偵錯技巧,以下 Procedure 範例在DELETE 及 INSERT 後透過 dbms_output.put_line() 印出影響資料筆數,概念跟在程式碼裡塞入一堆 Debug.Print、MsgBox、alert() 差不多,是執行期間追查問題的重要線索:createor...
View ArticleC# 讀取 dbms_output 效能強化版
前文介紹過使用 C# 讀取 dbms_output 寫入內容,範例留了一個小尾巴,跑迴圈連資料庫犯了效能大忌,應改成一次執行或查詢取回才上道。dbms_output.get_lines()允許一次取得多筆訊息,但傳回型別為 TYPE DBMSOUTPUT_LINESARRAY IS VARRAY(2147483647) OF VARCHAR2(32767); 讀取要費點手腳,Oracle...
View Article2018 烏來峽谷馬拉松(Y拖初馬)
大概是去年把跑馬運氣用完了,今年的馬拉松行程在 16 度冷雨中揭開序幕 - 烏來峽谷馬。氣象預報下雨機率 100% 心頭涼了半截,下雨天的山路馬對我根本是黑指甲保證班呀! 跑完第一件事就是檢查腳趾,然後開始「紅腫 -> 黑青 -> 指甲剝離 -> 脫落換新」的循環。去年跑完扶輪馬後入手江湖傳說很好跑的母子鱷魚氣墊夾腳拖鞋,俗稱「Y...
View ArticleASP.NET MVC 回傳 HTTP 400 Bad Request 並附加錯誤訊息
同事的專案遇到以下需求:依規格實作 WebAPI (考量開發彈性,使用 ASP.NET MVC Controller,未走 ApiController ),規格定義遇到某些狀況需抛回 HTTP 400 Bad Rquest 並以 JSON 格式回傳錯誤訊息。一開始的寫法如下:public ActionResult BadRequestFail() {...
View ArticleIIS HTML 檔 Cache 行為觀察
跟同事討論到:「IIS 在靜態檔案更新時會強制瀏覽器讀取新版本嗎?」HTTP Header 有不少與 Cache 管理有關,協助瀏覽器用 Cache 減少網路傳輸量,例如:Cache-Control、If-Modified-Since、ETag… 等。要了解這些技術細節,推薦幾篇文章:循序漸進理解 HTTP Cache 機制 - TechBridge 技術共筆部落格HTTP 快取 - Web -...
View Article【茶包射手日記】Safari 回上頁時無法停用 Cache
使用者報案,專案網站使用 Safari 檢視,在切換頁面時殘留載入中訊息,但使用 Chrome/IE 則一切正常。專案網站有個主目錄網頁,點選切換其他功能網頁前會 $.blockUI 顯示"網頁載入中,請稍侯..."訊息,由於頁面很快會被新網頁取代,故沒必要關閉載入中訊息。而網頁有加 <meta http-equiv="cache-control" content="no-cache">...
View Article