TypeScript列舉型別
列舉(Enumerate)是我愛用的TypeScript特性之一,它能嚴格限制數值範圍,較數字或字串安全,不慎打錯字在編譯時就會被揪出來,對於錯字成習甚至已發展成個人特色的我來說,節省了可觀的Debug時間,並大幅降低氣到想刴手指的風險,功德無量。(手指頭:謝謝你,TypeScript!)TypeScript列舉轉換到JavaScript端的設計得挺巧妙,花了點時間才熟悉,順手整理筆記供大家參考。T...
View Article【茶包射手日記】Visual Studio編譯成功的專案在IIS發生組件版本不合
將原本運作正常的ASP.NET MVC專案,複製到新的Solution改版開發,出現Visual Studio編譯正常,在IIS Express執行冒出編譯錯誤的狀況:Could not load file or assembly 'Newtonsoft.Json' or one of its dependencies. The located assembly's manifest...
View Article我的(偽)白帽駭客經驗
或許有些人不知道,一般人口中的「駭客」,還細分成幾類:白帽駭客(White Hat) 有能力破壞電腦安全但不具惡意目的的駭客。白帽子一般有清楚的定義道德規範並常常試圖同企業合作改善被發現的安全弱點。 黑帽駭客(Black Hat)...
View ArticleKO範例31 - 也來寫野生官網好了
市長候選人柯P的競選團隊前幾天做了一件有趣的事(只有程式魔人覺得有趣),突發奇想地將官網內容透過Web API方式提供,歡迎開發人員自行開發野生官網。昨天,保哥瞬間變出AngularJS版,好不神奇!...
View Article【笨問題】ASP.NET Script打包之debug.js/min.js處理原則
程式上線到UAT環境,因knockout.mapping未載入出錯,但在測試環境是好的。經過一番測試比對,發現犯了一個低級錯誤: bundles.Add(new ScriptBundle("~/bundles/ko").Include("~/Scripts/knockout-3.0.0.js","~/Scripts/knockout.mapping-latest.debug.js"...
View Article【笨問題】TF14010合併衝突
為了把現有Web專案的JavaScript升級成TypeScript,用TFS另外切出Branch改寫。第一次使用TypeScript開發缺乏經驗,一開始三步一踩雷五步一摔坑,爆炸聲與慘叫不絕於耳,慘烈程度不在話下… 不過很快抓到訣竅,上手後就挺順利的。最近TypeScript版通過測試,準備Merge回主流。Merge時遇到以下問題:TF14010: 無法合併至...
View Article筆記-使用VS2013解開.NET程式CPU衝高謎團
前幾天,幫同事追查 .NET 程式 CPU 衝高問題,才發現 Visual Studio 2013 效能分析工具真是威力強大,特筆記備忘順便分享。原本想拿實務案例說明,但考量太多無關細節會失焦,所以我弄了一個簡單程式當靶機練習射擊:using System;using System.Collections.Generic;using System.Linq;using...
View Article【茶包射手日記】WebATM回報Smart Card服務未啟動
開啟某銀行 WebATM 網站,裝好 ActiveX 元件,接妥讀卡機,插入金融卡,網頁卻彈出 Smart Card 服務未啟動訊息。網站貼心地將我導到 FAQ,教導如何開啟 Smart Card 服務… 我確認 Windows 8 上的Smart Card 服務處於開啟狀態,但銀行 WebATM 元件就是一口咬定服務沒開。明明要轉帳,一回神,已捲好袖子準備射茶包… orz由網站 JavaSript...
View Article【茶包射手日記】Web Deployment Project自動部署出現型別重複錯誤
接獲報案,Web Site Project 配合 Web Deployment Project 編譯,使用 CruiseControl.NET自動部署,於本機編譯測試正常,但部署後出現物件重複出現在兩個 DLL的錯誤訊息:Compiler Error Message: CS0433: The type 'UserContrl_HeadInfo' exists in both...
View ArticleKO的逆襲-HTML自訂元素上場
先看展示:這是一個很簡單的 MVVM 繫結示範,模擬網頁常見「給幾顆星」的評分機制。上方透過 click 事件修改observable,同時繫結到下拉選單及Score=文字顯示。同一 observable 繫結到兩個 UI 元素的情境對KO來說是小菜一碟,不足掛齒,但 HTML 裡有玄機:<div><star-ratingparams="value:...
View Article【茶包射手日記】相同專案在另一台機器出現元件版本不合錯誤
先說明遇到的狀況:我修改了單元測試專案Check In TFS,同事取回編譯測試時,出現NLog版本不合錯誤!專案需要3.1版,但實際卻是2.1版。經初步檢查,疑點重重:同一.sln還有其他專案,部分專案仍採用NLog 2.1版,出問題的單元測試專案使用NLog 3.1,但app.config有bindingRedirect設定要求全部改用3.1:...
View ArticleKO範例32-pureComputed
KO 3.2版險了美妙的HTML自訂元素,還有一項小革新 - pureComputed。依據官方文件,pureComputed 的 pure 借用自 Pure Function,其主要設計理念在於:計算 computed observable 時不應產生任何副作用。 computed observable 結果不因估算次數或其他「隱藏」資訊而不同,只與其他 observable 值相關,對應到...
View Article關於Gmail五百萬筆密碼洩漏傳聞與資安提醒
在網路上看到 Gmail 密碼外洩消息,我「震驚」了…由於與個人資安切身相關,當然要深入了解,便找了資料來讀,順便整理分享。本週二,有人在俄羅斯 Bitcom 論壇貼了一份 493 萬筆 Gmail 帳號密碼清單,被俄羅斯媒體 CNews 報導後,隨即在網路「瘋傳」(咳… 可以不要玩這些哏了嗎?)。論壇管理者事後移除清單裡的密碼,只留下帳號,而貼出清單的原PO則再跑出來聲稱其中 60%...
View ArticleTechDays 2014筆記
【Kanban看板及Lean精實的技巧在大型軟體開發專案】by Ruddy & FranmaRuddy 老師的課一定會有主題電影,這次是露西!Kanban(看板) 源自豐田式管理,由 David J. Anderson (看板方法之父),將其轉化為 Kanban Method (看板方法)應用於敏捷開發。(推薦書藉:Anderson 的著作 - 看板方法:科技企業漸進變革成功之道,另一本...
View Article【茶包射手日記】Chrome偵錯導致Window.Open失敗
使用 Chrome 偵錯網頁時,意外出現 window.open 失效的狀況。吊詭的是-偵錯是為了抓其他問題,與 window.open 無關,而該網頁運作已久,若 window.open 有問題,根本無法使用,不可能沒被發現。測試過程,window.open 並不是每次都出錯,出錯後重新啟動 Chrome 就會正常,一度讓我懷疑這是 Chrome 的...
View Article2014光橋夜跑
第18馬,第三屆光橋夜跑。第一屆慢跑變溯溪的經驗刻骨銘心!去年起,大會爭取到高架道路路權,忘記為了什麼理由失之交臂,今年毫不猶疑報了名。光橋,我又來了。大會會場在光復橋下。 提早到會場,便四處亂逛,看到成排獎盃,幻想到自己有一天也站凸台… 我的計劃是:反正已經沒法再跑更快,就努力維持目前成績,等自己由男丙組、男乙組、男甲組一直升到男子長青組,應該就有機會拿下分組名次了,哇哈哈哈~ 賽前的大鼓表演。...
View Article【茶包射手日記】硬碟燈長亮無法開機
週日想將光橋夜跑 GPS 資料上傳到家裡的桌上型電腦,發現原本應處於睡眠狀態的電源燈閃爍不見了,原以為跳電導致關機不以為意,直接按下電源開關,電源燈與硬碟燈長亮,螢幕毫無反應,硬碟燈未出現正常開機應有的熄滅閃爍。事情大條,電腦壞了~拆開機殼,確認主機板的上的電力指示 LED 會發亮,按下電源開關,CPU...
View Article善用Selenium擴充,測試更加得心應手
講到網頁自動測試,一哥地位非 Selenium 莫屬(參考)。雖然 Selenium IDE 支援錄製網頁操作產生測試腳本,但錄製產生的指令常依賴元素的位置順序定位,配置稍有更動立刻破功。依實務經驗,開發者依據設計邏輯手工撰寫還是較可靠的作法,測試指令也較簡潔有效率。Selenium 本身提供好幾種定位器,包含:ID、Name、DOM、XPATH、CSS Selector…等。習慣 jQuery...
View Article再談TypeScript的this
前陣子談過 TypeScript 使用 this常遇到的問題,經網友提醒,我才發現 TypeScript 對 () => { … } (Arrow Function Expression,箭頭函式表示式,索性簡稱「箭函式」XD )加了魔法:自動宣告 var _this = this ,並將 () => { … } 裡的 this 自動換成 _this。前陣子重整一個中型網站,將...
View Article我的TypeScript新手村心得
前陣子將一個中型網站的 JavaScript 翻寫成 TypeScript,轉換完數千行程式。身為 TypeScript 魯雞(Rookie),少不了一段步步踩雷、天天摔坑的日子,接著就漸入佳境,轉換後體驗到按 F2 立即更名、-調介面便知哪些地方要改的便利,令人感動不已。這段時間累積了一些心得,整理如下,供其他也要挑戰 JavaScript 轉 TypeScript 的朋友參考:重要觀念:左手...
View Article