讓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 ArticleWindows驗證歷程觀察與Kerberos/NTLM判別
昨天談到IIS整合式Windows驗證會優先嘗試Kerberos,不行再改用NTLM,那麼如何得知現在用的驗證方式是哪一種?瀏覽器的F12開發工具雖然有HTTP往來記錄,但不會顯示驗證過程,因此,Fiddler才是最佳觀察工具。為了捕捉標本,我特地用Hyper-V架了AD,還學會用「setspn -a HTTP/機器名稱...
View Article【茶包射手日記】Windows睡眠、關機後風扇續轉
記錄這兩天遇到的鬼問題。【聲明】因處理過程龐瑣且某些操作屬不可逆,無法反覆驗證追出真兇,本文僅整理處理經驗供參。前陣子將家裡的PC升級成SSD,重灌Windows 10後,SATA硬碟傳輸速度有點怪(這是另一則奇妙故事,一言難盡,有機會再寫,此處略過細節避免失焦),主機板Asus P8H67-M...
View ArticleWindows驗證時成群出現的HTTP 401
前面我們介紹了Kerberos/NTLM驗證,也實地觀察過HTTP 401、401、200的歷程。登入網站只輸入一次密碼,想當然爾同一個身分驗證可用來存取後續的css、js、jpg、gif…...
View Article【茶包射手日記】NuGet Package Manager升級3.4.2.830後無法登入私服
同事報案,使用Visual Studio 2015 NuGet連私服時一直彈出帳號登入對話框無法連上(公司的NuGet私服設成Windows驗證),另一位同事與我卻無此問題。比對後發現大家NuGet Package Manager版本不同,出問題的同事是3.4.2.830,我是3.3.0.167,另一位沒問題的同事則是3.4.1。大膽假設:我們的NuGet...
View ArticleTypeScript的this偵錯陷阱
接獲同事報案追查TypeScript問題,二人一起陷入迷霧近20分鐘才恍然大悟…有段TypeScript程式自訂類別,在類別方法用this.PropName="..."修改自身屬性值(註:類似需求我習慣用self大法,寫成self.PropName="…"),偵錯時用瀏覽器F12開發者工具下指令檢查,卻發現this.PropName沒有被正確設定,我建議在程式碼加入console.log(this....
View Article【茶包射手日記】JS Bin的無窮迴圈保護機制
同事報案,用JS Bin跑迴圈計算從1加到n測試效能,發現 for 迴圈次數增加到100萬後加總結果不對,每次執行會得到小於正確值(499999500000)的隨機數字;但若不用for改用lodash _.times(),跑再多次結果也是正確的。為了調查,先將程式碼簡化到可重現問題的最精簡內容:var count = 1000000;var sum = 0;for (var...
View Article從Visual Studio發布NuGet Package的好幫手-NuGet Packager
最近在寫共用元件,打算放在公司的NuGet私服供同事下載安裝,換版時還可自動更新,大大降低管理成本。講到製作NuGet Packet,NuGet Package Explorer雖然方便,但畢竟是GUI工具,我希望修改元件並測試OK後,直接在Visual Studio專案按個鍵就自動上傳到NuGet伺服器。經過評估,找到一個好用套件-NuGet...
View Article安裝NuGet Package時在web.config加入設定
第一次嘗試需要在web.config設定appSettings的共用元件,因此打包NuGet Package時要多加入修改web.config的安裝腳本,其中有些小眉角,我摸索了一陣子才搞定,以下是心得分享。我要做的事是在appSettings裡新増一筆<add key="afa:WebApiUrl" value="Web API測試台網址" />,在NuGet...
View Article2016石碇馬
比起前兩年(2014、2015)搭配六月豔陽35度高溫燒烤,今年石碇馬辦在四月下旬,氣溫低了快十度,總爬升1600公尺又算得了什麼,二話不說又報了!今年氣侯異常,近四月底依然涼爽,氣象預報氣溫為18-26度,不過30%下雨的機率有點討厭,早晨出門還在下雨,但仍稱得上是不錯的跑馬天氣。大會會場在華梵大學,6:06起跑,比預計晚了幾分鐘。與賽人數不多(事後看完賽證明的統計數字,全馬跑者不及900人),是...
View Article【茶包射手日記】勿用UrlEncodeUnicode/escape
寫WebClient.DownloadString()時用了"some.aspx?t=" + HttpUtility.UrlEncodeUnicode("中文")寫法組網址及Query String參,遇到一些問題,學到一些知識,筆記之。先來個範例好說明。為便於測試,我寫了一個超簡單的ChkQueryString.aspx傳回Request.Url.Query檢查URL查詢參數:<%@...
View Article【茶包射手日記】Oracle Client版本與分散式交易
接獲報案,同事欲將測試網站移至新主機,遇到Oracle無法進行分散式交易的情況,得到以下錯誤訊息: Oracle.DataAccess.Client.OracleException Unable to enlist in a distributed transaction...
View Article克服入口網站內嵌其他網站之跨網站存取限制
文章標題有點饒舌難懂,直接說我需求就清楚了。我想在員工入口網站(例如:portal.utopia.com)加入人事、行政、會計、電子表單等現成網站功能,這些應用程式各有自己的網站(例如:webap.utopia.com),最簡單的整合方法是在入口網站放個Iframe將其他網站的網頁內嵌進來,兩分鐘搞定,用膝蓋就能完成。BUT,人生最機X的就是這個BUT!PM/老闆/使用者一定不會這麼簡單放過你,既然...
View Article【茶包射手日記】瀏覽器播影片有聲無影處理經驗一則
家裡的電腦出現奇怪狀況,發現Chrome看臉書影片時聲音、進度條正常,但畫面全黑,重新開機亦無起色。為了對照起見,做了以下測試:Chrome播放YouTube正常 IE播放Facebook影片跟YouTube畫面全黑 Edge播放Facebook影片跟YouTube也畫面全黑...
View Article閒聊-你敢不敢幫請假的同事編譯程式上線?
前幾天,參與的專案遇到緊急狀況,剛改版的系統有一段邏輯因正式台資料與預期不同而出錯,需要緊急換版,負責的同事因故無法即刻救援,改派我代打上陣。有一段時間沒參與,我對最新開發進度有點脫節,本次代打任務形同開發團隊的一次臨時抽考。在我的開發機器開啟Visual Studio,先從TFS版控抓回最新的程式碼版本(Get Latest Version),檢視問題程式的修改歷史(View...
View Article