筆記 - SonarQube Docker 安裝與 .NET 6+ 專案掃瞄
SonarQube 是一套程式碼品質掃瞄工具,可以分析你的程式的寫法是否存在 Bug、漏洞或不好的寫法(Code Smell)。 這篇簡單記錄我如何在 Linux 主機上安裝 SonarQube Docker,並用它在 Linux 掃瞄 .NET 專案。 安裝步驟我主要參考這篇:於 Ubuntu 透... Read More
View Article源碼檢測軟體冷門選擇 - PVS-Studio
PVS-Studio 是一套源碼檢測軟體(小知識:專業術語叫 SCA,(Static Code Analysis 靜態程式分析),知名度遠不及 Fortify、Checkmarx 或 SonarQube,不過,PVS-Studio 專注於 C、C#、C++、Java 四種語言,且有給學生及開源專案免... Read More
View ArticleAI 共筆 - 台灣本土版語言模型 - Taiwan LLM 是怎麼煉成的?
2024 新年第一天,拜年文就由 AI 打頭陣吧! 跟風附上 AI 生成圖,祝大家在新的一年神采飛揚,龍光煥發! 在訓練大型語言模型有多燒錢?一文學到:標榜最有台灣味的 Taiwan-LLM 語言模型,是以 Meta LLaMA 2 為基礎的全參數微調模型,大幅提升繁體中文能力並融入台灣文化。Ta... Read More
View ArticleCoding4Fun - 實現 -2 * 1/3 + 3/4 = 1/12 分數運算
.NET 內建的數字型別裡有整數、浮點數,但如果我們計算 -2 * 1/3 + 3/4 想得到 1/12 而不是 0.08333333333,該怎麼做? 就來寫個可以加減乘除的自訂分數型別吧。就像下面這樣,是不是很酷? Frac g = -2 * (Frac)"1/3" + ne... Read More
View Article小試前端 REST 資料庫 - Supabase
最近玩了自架 ChatGPT 網站的開源專案 Chatbot UI,網站以 React 前端程式為核心,1.0 原以 localStorage 儲存資料,基於安全疑慮、大小限制、無法跨機器共用等因素,改版時將資料改存到後端,用了一個我沒看過的資料庫 - Supabase。 Supabase是一個開源... Read More
View ArticleCoding4Fun - 高斯消去法解聯立方程式
用電腦解聯立方程式,一般會使用高斯消去法用矩陣求解: 在 .NET 做矩陣運算,Math.NET Numerics 程式庫是首選。 Math.Net Numerics 是個開源數學程式庫,囊括矩陣、線性代數求解、機率、線性回歸、積分、傅立葉轉換... 等各種你想得到的數學運算,且被學術論文和期刊廣... Read More
View Article前端小技巧 - 在網頁 Ctrl-V 貼圖片上傳檔案
在很多網站看過一種方便設計 - 從別處選取圖片複製到剪貼簿,在網頁空白處按 Ctrl-V,便會將圖片上傳到網站。 總想著,改天我要為自己的網站也加上這個酷功能,就今天吧! 在 IE 退役及Edge 改用 Chromium 引擎後,瀏覽器回到大一統的和平局面(令人想起當年 IE 市佔 95% 的時光)... Read More
View ArticleIIS AlwaysRunning 深入研究 - 幽靈排程與自動啟動行為
之前研究過確保網站永遠處於執行狀態的 IIS 設定方式,最近遇上網站停用但網站背景排程照跑的靈異事件,發現事情跟我想的不一樣,自己對 IIS 站台 Process 模式及 AlwaysRunning 行為有些誤解,寫篇筆記備忘。 我們都知道 IIS 管理員站台有組控制鈕,可以重新啟動、啟動或停止站台... Read More
View Article【打破砂鍋】IIS 6 起就不該使用的 IISRESET,結果我用了 21 年?
同事分享冷知識一枚,依據微軟官方建議,我平時順手就來一發的 IISREST,是 IIS 5.0 時代的產物,IIS 6.0 後已不建議使用,登楞!! 原文是這麼寫的: IISReset.exe is a command-line utility that was introduced in IIS... Read More
View Article【茶包射手日記】鬼問題 - YouTube 影片不停播放暫停
發現我的電腦沒法正常播放 YouTube 影片,播放斷斷續續,播放操作區不斷出現消失,進一步觀察問題出在播放器不斷切換暫停跟播放狀態,永無止境: 故障展示 首先想到是鍵盤故障,一直按著空白格也會造成類似結果,但拔除鍵盤故障依舊,加上其他軟體使用一切正常,裁定鍵盤無保請回。 莫非瀏覽器有問題?試了 C... Read More
View ArticleCoding4Fun - 計算百分位數
百分位數 (Percentile) 跟 PR (Percentile Rank 百分等級) 是統計學常用參考值,年輕同學應該很不陌生(我們那個年代聯考比較簡單,直接用分數比大小,沒這麼多名堂),用考試分數比喻的話,百分位數是要在一百個等級中勝過幾個等級需要考幾分,或是位於某百分等級的人分數是幾分;... Read More
View Article分析 Log 計算平均、標準差、95 百分位數並繪製圖表 - 從 C# 到 Python
資料庫 INSERT 測試產生了一堆 Log 記錄檔,每一個檔 50 萬筆,每筆格式為序號: 耗時ms: ... 9997242: 0ms 9997243: 29ms 9997244: 0ms 9997245: 1ms 9997246: 0ms 9997247: 0ms 9997248: 1ms 9... Read More
View ArticleGUID 叢集索引測試 1 - 偶發寫入逾時之三千萬筆實測
我們都知道,資料庫使用 GUID 作為叢集索引易造成索引碎片化影響效能。若要用 GUID 作為 Primary Key,應另設自動跳號數字欄位當叢集索引。(註:不熟悉此議題的同學可先看這篇:GUID Primary Key 資料庫避雷守則) 近期在古蹟專案遇到偶發 INSERT 逾時錯誤(SqlCo... Read More
View ArticleGUID 叢集索引測試 2:索引碎片化分析與資料表虛胖問題
上篇我們觀察到用 GUID 做為叢集索引,INSERT 耗時較久且偶發慢到 4 ~ 6 秒的狀況。 依直覺索引碎片化的影響主要在於讀寫效能不佳(要走過更多資料分頁),但觀察容量計時我發現另一件有趣的事,同樣是一千萬筆資料,IntClustIdx 比 GuidClustIdx 多一個 BIGINT 欄... Read More
View Article取得部署 IIS 之 ASP.NET Core HTTP 500 錯誤細節
ASP.NET Core 有個預設行為,開發測試階段會顯示錯誤細節,包含錯誤訊息、Stack Trace 等資訊;當部署到 IIS 後,就只會顯示告知狀態碼為 HTTP ERROR 500,以避免程式資訊外洩形成資安風險: 嚴譯的系統會設計 Log 機制補捉及記錄錯誤,提供介面查詢或是後送 ELK... Read More
View ArticleGUID 叢集索引測試 3 - 觀察索引重組與索引重建對寫入動作的影響
接連兩篇談完 GUID 叢集索引會造成 INSERT 變慢以及資料表虛胖,簡單有效解決是另建 BIGINT 或 INT 自動跳號欄位當叢集索引,GUID 仍可做為 Primary Key。(參考:GUID Primary Key 資料庫避雷守則) 對上線運轉多年的現有系統來說,Schema 很難說改... Read More
View ArticleObsidian 匯出 PDF 之程式區塊顏色調整
Obsidian 內建程式區塊 Syntax Highlight 顯示: 但匯出 PDF 時有些文字顏色偏淺(例如:WriteLine、GetPercentile、JSON 的屬性名稱),對比不明顯,程式區塊的背景也淡了點: 研究了一下,PDF 輸出樣式可在 <vault-folder&g... Read More
View Article使用 .NET Git 程式庫 LibGit2Sharp 檔案不落地生成異動對照表
遇到一個小需求,想用 .NET 出一份檔案修改前後對照表,我心中最理想的方案是用 git diff + diff2html 產生 HTML 報表,省時省力又好看。 git diff 指令跟產生 diff2html 網頁技能是現成的,最不花腦的解決方法是用 .NET 將修改前後檔案雙雙寫成檔案,呼叫... Read More
View Article【茶包射手日記】FB 無法產生網頁預覽 (HTTP 418 - 我是一個茶壺)
幫忙查了一個 FB 相關問題。 一般我們在 FB 貼文輸入網址時,FB 會擷取網頁資訊帶出標題、摘要、預覽圖,這些資訊來自網頁 HTML 所埋的 og 標籤,例如: <meta property=og:type content=article> <meta property... Read More
View Article冷知識 - Window 資料夾「唯讀」屬性怎麼用?
同事問起 Windows 資料夾的唯讀屬性。經驗裡我只改過檔案的唯讀屬性解決無法覆寫問題,從沒想過去管資料夾唯讀與否,但檔案總管看資料夾確實有個唯讀設定,它是做什麼用的?有什麼效果? 經過實測,使用 attr +r 指令,設定唯讀後,資料夾照樣可以新增、覆寫及刪除檔案: 不過我注意到,檔案總管上的... Read More
View Article