最近在準備開發教學投影片,有大量從Visual Studio剪貼程式碼範例到PowerPoint的需求,遇到一個大問題:從Visual Studio複製程式碼再貼到PowerPoint時,語法顏色有被保留,但換行消失,排版全亂,讓人極度困擾。 想起VS2010推出時也有類似的剪貼簿亂碼問題...

前情提要 第二本「行為的藝術」讀書筆記來了。相較於「思考的藝術」聚焦於邏輯,這本書較偏心理學層次,原本不太引起我的興趣,沒想到讀來驚喜連連,常有「對耶,好像真的是這様」「慘,完全被說中」的感嘆。人類有許多古怪的行為習慣(有些說是劣根性也不為過),不少來自遠古以來的物種演化,由於不具某些「劣根性」...

前陣子跟同事聊到邏輯謬誤,同事提到德國作家的相似作品,談非受迫性的思考邏輯錯誤及行為偏誤,邏輯控對這些知識沒什麼抵抗力,趁著剛好拿到博客來Coupon就入手了,下單隔天書就送抵小七門市,效率令人驚喜。(線上書店品項完整折扣多再加上交貨神速,實體書店只剩能深入試閱及可搭訕知性正妹等優勢,這場仗註定...

前陣子跟同事討論到LINQ查詢寫法。 記得在LINQ剛推出時以「可以在C#裡寫SQL語法查資料」為號召,範例裡常看到這種長得有點像SQL語法的LINQ查詢運算式(LINQ Query Expression,我習慣叫它「類SQL查詢語法」): IEnumerable<int&g...

CSS 的 text-overflow: ellipsis 刪節號效果可讓長度不一的文字等寬顯示,遇到版面空間有限又必須整齊排列時很好用,但套用刪節號樣式後看不到完整文字,尤其遇上文字前半截相同時更是難以區別,是一大困擾。為此,我的慣用解法是為套用 ellipsis 的文字元素加上 title ...

寫網站時有時需要產生暫存檔,過去我慣用的做法是透過System.IO.Path.GetTempPath(),將暫存檔寫入Windows系統暫存資料夾,如意算盤是暫存資料夾本來就是放暫存檔的地方,而Windows有機制可在磁碟空間不足時刪除暫存檔釋放空間,如果檔案沒有機密或敏感性,放在暫存資料夾基...

上週看到以程序員生活為題材的漫畫作者西喬的創作:「年会上的程序员们……」,改編自一個「CTO覺得抽獎程式有點問題,程式作者被迫在旺年會場接受上千人Code Review」的奇妙真實故事,令人不禁莞爾。 很巧地,看到漫畫的前一天剛好才參加完資訊部門尾牙,而永遠的重頭戲-摸彩,自然是跑程式...

用Visual Studio 2015開啟最近每天在寫的解決方案,突然卡在「解決方案呈現載入中(loading…),多個專案處於初始化中(initializing…)」狀態,Visual Studio 2015 UI也凍結無回應,只能從工作管理員強行砍掉devenv.exe重新啟動,再次開啟問題...

【聲明】該不該用GUID當Primary Key是可以讓開發人員大戰三百回合的好題材,由標題可知我屬於GUID陣營,這篇文章不打算花時間論證該不該用GUID PK,假設讀者已接受使用GUID當PK,只聚焦如何避免GUID PK導致資料庫效能悲劇。 故事源起MVP James最近寫的幾篇GUID...

攝氏4度。 曾以為這是跑東京馬或京都馬才有幸體驗的跑馬溫度,今天我們終於能驕傲地說:台灣,做到了!(補聲暗) 報名渣打馬原本期望靠著路平天冷好催速,振作起來挑戰PB。天曉得遇上44年難得一見的霸王級寒流(專業名詞是負北極振盪),全台處處雪花飄,台北市不只陽明山,連木柵附近的猴山岳、阿柔洋...

公司有一台主機連續兩天出現異象。剛上班的尖峰時間出現IIS網站無回應,使用遠端桌面登入觀察到桌面反應遲緩,但幾個系統服務與網路磁碟機功能正常,IISRESET後問題仍未消除。進一步用 telnet 127.0.0.1 80 測試,得到的結果是TCP連線一建立就被切斷,主機上有另一個走8080 P...

前一篇文章介紹用CTE實現SQL一對多關聯欄位合併的方法,找資料期間曾發現另一個替代做法,利用SQL Server的FOR XML PATH('')技巧,可將多筆資料轉成單一字串(參考),看來也相當簡潔。但當下覺得子查詢加FOR XML轉換的做法有效能疑慮,理應不如CTE(事實不然!),加上搞C...

一對多關聯是常見的資料庫應用情境,有時我會遇到將多筆關聯資料特定欄立合併成逗號分隔字串的需求。聽起來有點抽象,用個實例說明。 假設有兩個資料表,應用系統清單及負責該系統的工程師名字,用以下指令建立模擬資料: CREATE TABLE AppSystem ( Name VARCHAR...

NuGet已經是Visual Studio寫專案時的柴米油鹽醬醋茶了,但有些人可能沒發現在解決方案(.sln,Solution)層也可以開啟NuGet Manager。如下圖,在Solution Explorer的.sln開右鍵選單,有一個「Manage NuGet Packages for S...

使用TypeScript處理AJAX呼叫時,常需要在前端定義與C#物件屬性一致的TypeScript型別,以便將後端傳來的JSON資料還原成強型別物件。針對較正式的資料模型,我會用CodeGen方式同步C#與TypeScript端的型別定義(順便處理多語系問題)。但蠻多時候處理對象只是零散的小型...