10/23/2013
5:50:00 PM 0

Javascript 判斷 property 是否存在

在 Javascript 常有人使用 if(car.engine) 來判斷是 property 是否存在, 雖然方便, 但會有出錯的風險, 因為在使用 if(car.engine) 時, 如果不是 boolean 時, Javascript 內部會做一個自動轉型的動作, 因此 if (car.engine) 就等於 if (Boolean(car.engine)),而 car.engine 是 undified 的狀況下, if 測試會回傳 fasle, 但是當 car.engine 其值為 null, fasle, 0, "" 也都會回傳 false 所以測試 property 是否存在, 比較正確的做法是使用 hasOwnProperty, 使用上要特別注意的是 hasOwnProperty 並不會到 prototype chain 去尋找, 只會檢查本身是否有定義 property > var car = {}; undefined > Boolean(car.engine); false > car.engine =...
5:47:00 PM 0

Javascript null & undefined

1. null 定義 : 基本型別, 不代表任何值 primitive value that represents the intentional absence of any object value null 參與數值運算時會轉成 0 > 123 + null 123 > 123 * null 0 2.undefined 定義 : 基本型別, 宣告後沒有指定值 primitive value used when a variable has not been assigned a value undefined 參與數值結果都是 NaN > 123 + undefined NaN > 123 * undefined NaN 因此在 Javascript 中 null 和 undefined 是不一樣的東西, 使用上要注意 > typeof null "object" //ECMAScript 6 後改成 primitive > typeof undefined "undefined" > null...
10/16/2013
1:37:00 PM 0

Strong-Named Assemblies 簡介

Strong-Named Assemblies 簡介
Strong Name 主要是為 .NET Framework 軟體組件開發者設計的一種機制, 除非是軟體公司, 一般使用者應該不太會用到這個功能 主要概念與使用方式,用故事的方式說明 1.Super軟體公司開發出一個超強函式庫, 並使用 Strong Name Compile 出 Super.dll 如何產生 Strong Name 的組件, 可參考 http://msdn.microsoft.com/en-us/library/8wxf689z.aspx 或在 Visual Studio 使用 Signing 功能 其概念就是利用憑證簽署的方式, 對 Super.dll 做簽署, 最大的好處就是檔案無法竄改 寫 ASP.NET 的開發者在 Web.config 一定有看過類似下面的字串 System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" PublicKeyToken 就是用來識別組件是否有效的一個資訊 另外組件要安裝到...
10/11/2013
4:28:00 PM 0

HTTP basic access authentication

HTTP basic access authentication 是一個很基本的認證方式, 安全性差, 採用 Base64 編碼傳送帳號密碼 認證流程 1.瀏覽器對 Server 端發出請求 2.Server 端檢查該 User 尚未認證, 回應 Status Code 401 和 WWW-Authenticate 資訊在 header 中, 告訴瀏覽器需做基本認證 HTTP/1.0 401 Unauthorised Content-Type: text/html; charset=UTF-8 WWW-Authenticate: Basic realm="TestSite" Connection: Close Content-Length: 24 3.使用者在瀏覽器畫面鍵入 User Name 和 Password 送出請求, 送出的 header 中, 接續在 Authorization: Basic 之後的文字, 就是帳號和密碼的 Base64 編碼 GET / HTTP/1.1 Host: www.example.com User-Agent:...
10/07/2013
3:56:00 PM 0

將 ASP .NET MVC 2 deploy 到 IIS6

將 ASP .NET MVC 2 deploy 到 IIS6
1.首先當然要確認 ASP .NET 版本 2.新增副檔名對應(主目錄頁簽 \ 設定按鈕) 執行檔選擇對應版本的檔案 C:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll 3.設定萬用字元應用程式對應 執行檔選擇對應版本的檔案 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll 確認該檔案是否存在不可打勾 參考 Using ASP.NET MVC with Different Versions of ...
10/01/2013

Amdahl's law

wikipedia => http://zh.wikipedia.org/zh-tw/%E9%98%BF%E5%A7%86%E8%BE%BE%E5%B0%94%E5%AE%9A%E5%BE%8B假設我們用時間來做為評估效能的指標,如果要提升效能,最有效益的方式,就是直接改善執行時間最長的那個部份例如台灣用電的比例工業    52%服務業  19%住宅    18%其它    11%如果要求住宅隨手關燈,購買節能家電,各種節電措施,就算改善了2%,對整體用電的改善,還是遠遠不及佔用電最大比例的工業用電改...