評 Programming in Python 3: A Complete Introduction to the Python Language (2nd Edition)

Programming in Python 3: A Complete Introduction to the Python Language (2nd Edition)

這本一些基本觀念講得還滿詳細清楚的

不過程式碼不是很好,像開檔案沒有用 with 也沒有 close,不是好習慣

講自訂 class 的部分有一個地方明明要做 immutable 但 &= 實作改了 private value,但 __eq__ 根據那個 private value,__hash__ 卻是根據 id(),完全是有問題的寫法,果然一個小測試就會錯了:

>>> from FuzzyBool import FuzzyBool
>>> g = FuzzyBool(.5)
>>> g
FuzzyBool(0.5)
>>> id(g)
4306629328
>>> x = { g: 1 }
>>> x
{FuzzyBool(0.5): 1}
>>> g&=FuzzyBool(.1)
>>> g
FuzzyBool(0.1)
>>> id(g)
4306629328
>>> x[g]
1
>>> h = FuzzyBool(.1)
>>> h
FuzzyBool(0.1)
>>> id(h)
4301064016
>>> x[h]
Traceback (most recent call last):

如過 FuzzyBool 的地方換成 Python 的 int,最後那行是完全不會有問題的

所以這種很硬底子的地方講得又不夠清楚

不過還算值得一讀就是了,重要的東西和 library 都有介紹到

評 Head First Python

快速翻完,覺得這本不是很優,沒有非常適合給入門用

Python 基礎講得很少,然後後半本開始扯到 web, app

我覺得很容教壞新手,因為它提的那些做法都不是真正 production 等級的做法

所以後半本是浪費時間,前半本則是二百多頁內容,其實根本一篇文章就可以講完,也是浪費時間….

解決 IE11 不被 Windows Server 2003 的 .Net 認得問題

IE 每一版都要整人….

IE11 上 asp.net 網站,postback 都失效

之前解決類似的問題是 iOS 的 Chrome,那時在 site project 加了一個 App_Browsers 目錄然後放了一個 Chrome 的定義

結果 IE11 這樣做竟然沒效,搜尋到有人說裝微軟 hotfix 可以解決,結果裝了好幾個一樣沒效(因為是 Windows Server 2003,所以也沒辦法上 .Net 4.5)

最後直接去動 .Net 目錄總算解決了,步驟貼在這 http://stackoverflow.com/a/19855256/1297563

自己翻譯一下:

  1. 編輯 C:WINDOWSMicrosoft.NETFrameworkv4.0.30319ConfigBrowsers 把這篇提到的瀏覽器定義加進去 http://stackoverflow.com/a/19203518/1297563
  2. 執行 c:WINDOWSMicrosoft.NETFrameworkv4.0.30319aspnet_regbrowsers.exe -i
  3. 重新啟動 IIS

使用 RazorEngine 要小心的事情

RazorEngine – http://razorengine.codeplex.com/

小心不要一直呼叫 Razor.Parse() 每次它都會動態編譯東西到記憶體裡面,而且是不會被 GC 掉的

參考:http://stackoverflow.com/questions/12301515/razorengine-memory-usage

但是解法也不難,不需要升級版本到 3 就可以解

就是用 Precompiling Templates 的作法做

http://razorengine.codeplex.com/wikipage?title=Quick%20Start%20Guide&referringTitle=Documentation

看了點 JavaScript MVC Framework 的感想

若我規劃新網站大概會這樣做

傳統的 server side MVC 的 V 統統產出 JSON 取代,client 端用 JavaScript MVC Framework 處理頁面呈現

我覺得這樣 server 端程式可以跟 view 切得更乾淨

而且前端不管要用 responsive design 或者另外做 mobile web site 或者弄成 app(從 HTML, JavaScript app 到 native app)都可以直接銜接同一套 server 端程式

還有 JavaScript MVC 做出來的頁面互動性非常好,也是一大優點

DbVisualizer 的 SQL Server Auto Completion

一直以為 DbVisualizer 編輯 SQL Server 的 SQL 是不會有 table 和 column 的 auto completion

原來是有的,只要 driver 選擇使用 Microsoft 的 JDBC Driver 不要用 jTDS 就可以了
另外快速鍵預設是 Ctrl + Space 也需要改一下,auto completion 快速鍵設定是在 Key Bindings 裡面 All Bindings > Main Menu > SQL Commander > Show Auto Completion