Wednesday, December 4, 2013

評 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 都有介紹到

Thursday, November 28, 2013

評 Head First Python

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

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

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

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

Monday, November 11, 2013

解決 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:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Config\Browsers 把這篇提到的瀏覽器定義加進去 http://stackoverflow.com/a/19203518/1297563
  2. 執行 c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_regbrowsers.exe -i
  3. 重新啟動 IIS

Friday, November 1, 2013

Linq to Entities - join many-to-many 關聯的寫法

http://peter.hahndorf.eu/blog/post/2010/12/31/UsingLinqInManytomanySelectScenarios

不是那麼直覺哦,要寫的是兩個 from

from c in context.Clubs
from p in c.Persons
where p.PersonId == 3
select new { Name = c.Name };

Saturday, October 26, 2013

使用 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


不小心就會被整到 - 在 cygwin 寫 shell script

因為 OS 是 Windows,很自然檔案很容易弄成 Windows 的 \r\n 換行格式

然後字串串街就會串得亂七八糟,沒有串街,反而從開頭取代字元

http://cygwin.com/ml/cygwin/2006-11/msg00221.html

Tuesday, September 24, 2013

Time Machine 會備份程式存在 iCloud 的檔案

因為 iCloud 會在本機存一份,位置在 ~/Library/Mobile Documents/

用 Finder 的前往(或直接按 command+shift+g)功能進去,再進入 Time Machine 就可以回復檔案了

Thursday, April 11, 2013

看了點 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 做出來的頁面互動性非常好,也是一大優點

Sunday, February 24, 2013

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