2011年6月10日 星期五

解決Emerald在Ubuntu 11.04 Natty底下Segmentation fault的問題

11.04出到現在也有一段時間了,用Ubuntu的大家應該也都陸陸續續升級到11.04了吧?我是從10.04升上來的,不過當我升上來的時候遇到了一個問題,有用Emerald的人應該都會遇到視窗的邊框已經變回gtk的樣式了,Emerald的華麗視窗裝飾怎麼樣也無法啟動。

2011年6月6日 星期一

從一個簡單的Haskell範例學習如何定義型態

這是我在網路上找到一個小小的範例,可以學習到在Haskell中如何簡單的定義一個型別,希望可以拯救大家的Programming Language作業。

(注意:這篇文章假設你已經裝好了haskell的撰寫環境,如果你還沒準備好,先去找Google大神求救)

更新:修復版範例檔clite.hs

2011年6月4日 星期六

判斷App Engine的Session是在Online或是Development server

有時候我們可能因為在線上和dev server上面環境的不同,所以造成部分設定值有些差異,舉個例子好了:我用App Engine寫個Facebook應用程式,大家都知道Facebook應用程式的開發是鎖domain URL的,如果每次都要一直去改domain的設定,豈不是很麻煩?我原本是用這招:申請兩個Facebook應用程式,一個當做正式上線用,另一個則作為開發實驗用的testbed,所以我就有兩組app id, api key, app secret,只要切換這兩組我就不需要一直去改Facebook那邊的設定,不過每次deploy之前還必須要把這兩組變數的註解toggle,也是有點麻煩。(而且要是不小心忘記就又要重新deploy一次,真麻煩!)

後來發現其實Google有提供一個method去檢視現在執行的程式是在App Engine上面還是dev server上,這隻method的位置在google.appengine.api.conf裡面,叫做_inspect_environment(),這支函式的spec是這樣:(摘錄Source中的註解)