NuGet packages目錄舊檔大掃除
NuGet已是開Visual Studio寫專案的必備工具,用關鍵字找到項目就能安裝,有新版本點一下就更新,非常方便。我們遇到一項困擾:NuGet在升級程式套件前會移除專案的舊版DLL,至於packages目錄下的舊版檔案若已無其他專案參照,也會一併刪除,理論上不會累積。依NuGet 文件說明,packages目錄之檔案移除原則如下:Files in the solution folder. The...
View Article新裝備入手-Nokia N1
陪伴兩年多的Nexus 7最近很不乖,常發生觸控沒反應或點擊位置誤差,尤以右上角最嚴重。最討厭的狀況是想關Chrome分頁關不掉,變成新増分頁,分頁愈關愈多令人光火;有時則是手指沒摸到螢幕,卻像有無形的手指亂點,畫面不斷放大縮小抖動不停,好氣又好笑。爬文在Mobile01上找到不少類似症狀的討論,觸控失靈貌似Nexus...
View Article系統升級導致Android App閃退
新到手的Nokia N1設定好後收到升級通知,Adroid系統由5.0.2升級到5.1.1。重開機後立即冒出「Goolge書報攤」當機訊息,接著陸續發現Google圖書、萌典、Garmin Connect Mobile等App都無法使用,一啟動就閃退。心中暗叫不妙,是升級過程出了問題還是碰上機王?一度懷疑是App不支援Nokia N1所致(先前用Google...
View Article將複合字串拆成多欄位-以ORACLE及SQL為例
先說說我的需求。某資料表使用複合欄位當Primary Key,例如:由OrgId、DeptId、UserId三欄組成唯一鍵值。當要查詢特定資料,理論上應寫成WHERE OrgId='…' AND DeptId = '…' AND UserId =...
View Article2016雙溪櫻花馬
路跑熱潮稍退,賽事報名不再場場秒殺,硬得要命的櫻花馬卻依然搶手。心知不一定搶得到,報名當天只想碰碰運氣,哪知忙起來整個忘光,等回神已錯過報名開始,報名網站早被眾人殺到暈頭轉向,怎麼喴都沒回應,混亂間看到「已額滿」訊息,心想大勢已去,罷了。幾分鐘後接獲線報,馬拉松LDS搭檔忠孝哥傳來還有名額的消息,雖然一下額滿一下可報有失誠信,但我完全不計較,再報一馬。為配合火車時刻,櫻花馬照往例遲至8:30起跑,氣...
View ArticleT-SQL使用逗號分隔字串當作WHERE IN條件
寫Stored Procedure時有一個麻煩情境是由外界傳入參數當作WHERE IN條件,由於參數數量不定,難以事先寫成WHERE … IN (@val1, @val2, @val3),開發者往往會走上用傳入參數組裝SQL指令的險路,稍有不慎就搞出SQL Injection,導致難以想像的災難。(是的,SQL...
View Article無法使用Windows帳號登入防火牆內的SQL Server
要穿過防火牆連上一台SQL(1433 Port有開,網路芳鄰NETBIOS封閉),發現用SQL帳號登入(SQL Authentication)可成功登入,若用AD帳號(Windows Authentication)則會出錯。錯誤訊息為:已超過連接逾時的設定。在嘗試使用登入前的信號交換確認時超過逾時等待的時間。這可能是登入前的信號交換發生失敗,或伺服器無法及時回應所造成。 Connection...
View Article【茶包射手日記】Java內嵌IE網頁疑案
接獲報案:某支Java開發的程式以內嵌IE方式顯示特定網頁,在特定機器執行時網頁出現異常。初步蒐集情報如下:於問題機器單獨使用IE或Chrome可正常顯示該網頁 問題機器之IE版本為IE11 問題僅出現在特定機器,同一Java程式於其他機器執行正常 於異常網頁按右鍵檢視HTML原始碼完整,異常部分推測為JavaScript出錯導致 IE在內嵌模式下無法使用F12開發者工具,偵錯困難...
View Article對付SQL Injection,換掉單引號到底夠不夠?
雖然現在遇到使用者輸入條件查詢DB,我一律都用參數化查詢(順推超好用的Dapper)不再偷懶組裝SQL指令,但關於SQL Injection,我心中始終藏著一個疑問:流傳千古的… WHERE Col = '" + input.Replace("'", "''") +...
View ArticleTFS Build Queue卡單排除經驗一則
今早使用TFS Build Service建置部署時,建置作業卡在Queue裡遲遲不開始,等了五分鐘感到不對勁,展開調查。狀態顯示我排在第二順位,似乎在等待其他建置執行完畢,但超過5分鐘頗為異常,決定查查前面的烏龜車是哪一台。登楞!整個Queue裡只有我一人。夾緊擴約肌在廁所門口苦等十分鐘,忍不住破門想抓出是誰著佔茅坑,結果沒人?推測是TFS Build...
View Article開啟TFS Build Service Log
前天提過的TFS Build Queue卡單今天再度上演,一樣又是重啟TFS Build Service才解決,由於已非偶發罕例,決定展開調查。由事件檢視器查到一筆發生在卡單前一刻的可疑錯誤,Build 1257號,正好是被卡住1258號的前一筆,訊息為An error occurred while calling tracking participants causing the instance...
View ArticleChrome的Button Click行為差異
同事報案網頁在IE與Chrome表現不同,依稀記得遇過,但沒寫成沒找到明確記錄,花了時間回想、研究、實驗,得到結論後才恍然憶起,從HipChat對談翻出以前的辦案記錄。明明是前科犯還重啟調查,記憶力壞掉好可怕,也懊悔浪費了時間。由此得一結論-「勿以茶包小而不記,永遠別信任中年人的記憶力」,故寫此文。用範例程式說明如下: Live...
View Article讓Windows輾轉難眠的臉書
在Windows,你為什麼不睡覺?一文中,我學到播放影片軟體會佔用音效裝置,導致Windows閒置自動睡眠設定失效,而powercfg /requests指令則可用來快速查詢資源是否處於使用中。此後,每次讓電腦睡眠前,我會特別關掉播放中的影片,避免半夜Windows自動更新或其他排程甦醒後不再自動睡眠,平白空轉一整天。前幾天接連兩次,電腦半夜醒來後一直醒著,用powercfg...
View Article【茶包射手日記】解決舊作業系統檔案無法刪除問題
問題情境如下:整理原屬舊作業系統碟的硬碟,在刪除檔案時常遇到系統檔被設定只有TrustedInstaller等系統帳號才能刪除的狀況,此時需修改NTFS進階安全設定克服。如下圖所示,檔案被設成TrustedInstaller才能完全控制權限,連Administrators都無法修改權限。唯一解法是先將檔案擁有者設成自己再加入修改及刪除權限。手工調整成千上萬個檔案讓人發狂,上網爬文找到批次指令:警告:...
View ArticleVisual Studio編譯小技巧:工具程式一檔搞定
我經常寫小工具程式,不用安裝程式,單一EXE檔隨Copy隨用是最理想的部署設計。不過,程式稍稍複雜就難免依功能屬性拆分多個專案,有時需用到跨專案的共享程式庫,至於引用Json.NET、Dapper、NLog等必備套件的情況更是普遍。例如以下專案,Tool為Console...
View Article2016鳳梨馬(八卦山台地馬拉松)
清明時節,返鄉掃墓兼跑馬的時刻又到了,連續第三年的鳳梨馬。今年安排較充實的行程,前一天去了台灣地理中心碑、埔里酒廠跟紙教堂。行前功課沒做足,對於哪個才是「台灣地理中心碑」有點迷惘,先在山下看到一個感覺不夠威,加上Fenix 3高度計顯示的海拔與資料上的555公尺差約100公尺,爬階攻上山頂找到另一座呈現魔法陣概念的石柱群,海拔吻合顯然才是真正的地理中心。...
View Article改良式GetCachableData可快取查詢函式
多年前發展過一種可快取查詢:呼叫GetCachableData函式時傳入Cache Key、查詢或產生資料Callback函式、Cache保留期限(或指定閒置未用多久自動清除)三個參數,GetCachableData會依「若Cache有資料就直接沿用;若Cache無資料則當場產生並存入Cache」原則聰明處理,從此不需操心何時該查資料何時用Cache,應用起來挺方便的。using...
View Article關於IIS整合式Windows驗證的冷知識
在企業內部寫ASP.NET的人都用過整合式Windows驗證吧?來個小測驗:沒加入網域的PC可以用AD帳號登入隸屬該網域的IIS嗎? 在測試環境建立一測試網域,與公司正式AD網域間無信任關係。正式網域PC是否可以用測試網域帳號登入測試網域的IIS? 承上,正式網域PC需將DNS指向測試網域DC才能用測試網域帳號登入嗎?...
View Article