In python, you can use ctype (dl is deprecated now) to load dynamic link library. In 10.4 and 10.5 it may work fine, but it may occur errors in 10.6, such as
/Library/Frameworks/dummy.framework/dummy: no matching architecture in universal wrapper
Since the python in Snow Leopard is 64-bit in default, for those libraries which does not support 64-bit. You can test your library by
% file /Library/Frameworks/dummy.framework/Versions/Current/dummy
If you library is i386 only, you may need to handle it in this way.
% export VERSIONER_PYTHON_PREFER_32_BIT=yes
% python your_script.py
ericsk has also mentioned this for wxPython in his plurk
For more information, you can read the man page in your Snow Leopard.

可能因為我們用錯了模式,所以那看出去的風景才是黑色的。給自己,還有每個陷在情緒以及苦難中的人。
上帝必與我們同在。
我也忘了什麼時候開始習慣作 unit testing 了,可能是前一個專案在 Xcode 上就開始學著寫一點測試了。
這次在閱讀 Writing Testable Code 對於 6. Static methods: (or living in a procedural world),格外有感覺。
尤其是修改別人的程式碼的時候,如果他總是直接呼叫 static method,不讓你用 mock object 把 implementation 換掉的話,這樣在測試起來就顯得麻煩的多。舉例來說,有一個 class method 會呼叫 SSHHelper.execute_ssh 這個指令去遠端執行一些東西,但這對 unit testing 而言就是一種外部的 dependency,你絕對不希望他真的在測試的時候跑出個 ssh 真的連過去執行些什麼吧。
剛好這次用 MiniMock 作我們的 mock library,因為他的因素,你就可以這樣作
minimock.mock('SSHHelper.execute_ssh', returns=ssh_output)
如此一來,execute_ssh 這個 method 的結果就可以簡單的換成你預期的 ssh_output。
如果是本來就有比較好的設計的話,你也可以用 minimock.Mock (注意大小寫),去產生一個 mock object 出來。
mock_fs = minimock.Mock('MockFileSystem')
mock_fs.size.mock_returns = 1
mytools.fs_imp = mock_fs
如此一來 mock 就顯得簡單多了……
話說回來,之前想寫的 objective-c 跟 DTrace 的 topic 真的都忘的差不多了,算了,以後再說吧,也許之後把 python 的 Exception Chaining and Embedded Tracebacks 的想法整理一下再丟出來吧。
Firefox 3.6 開始可以隱藏 Menu Bar 了,所以這樣再搭配上 Tree Style Tab,整個可視範圍就大了起來!不過,也因為這樣,這次主打的 Pesonas 在這種環境下就顯得很無奈了,能妝點的範圍太有限了……。

接著等著看,HTML 5 能改變世界多少,看什麼時候會真的有 File API 的服務出來。
其實我的正職跟網頁一點關係都沒有(爆)
moodle Certificate Module 是一個讓 moodle 可以做出結業證書的 module,不過以原本的狀況而言,沒辦法很正確的生出中文的 pdf,這時候就需要動一些手腳。
Read more…
原本的網站(不是這個 blog)放在國內某家知名的主機商,因為每個月都在付超流費,再加上曾經傳出客戶資料外流的問題,所以我們就決定把現在的網站搬到 Media Temple。流量跟 storage 一次到 1000GB 跟 100GB,一年刷下來 200 美金,乾脆省事。
從 9 月底租到現在,大概也差不多三個月了,覺得他還算穩定,還可以讓我用 SSH 連進去,再用 rsync 去 deploy 一些東西(也方便用 rsnapshot 去備份)。再加上可以依照 domain 開不同的帳號,讓我們把 admin 帳號跟 domain 帳號隔開,對於現在的使用上其實也很方便。
不過最近爆出來的一些 security issue 讓人覺得很無言,像是官方 blog 的這兩個 issue
#1047 Cluster.05 Storage Segment 1
#1026 (gs) Security Advisory
Twitter 也有爆出來
http://twitter.com/macgillavry/status/6497221013
http://twitter.com/mdravnieks/status/6491481100
然後因為放在美國的關係,過去大概也要 150ms,對於 response time 來說是蠻高的,就現在來說,我也只能對 YSlow 有的東西修一修,支援一下 deflate,把 expire 設定起來,然後 CMS 能做 cache 的先上一下,要 compress 的 js 跟 css 丟給 Closure 看看會不會好一點。
不過最近 web 偶爾就給我連不上,不知道是怎麼樣,也許弄個 mtr 跟 httping 來監控看看吧。
現在我們把影音的流量也分一部分到 vimeo 上,也許一年之後再評估看看,到底哪邊比較適合我們吧。
沒多久,全德國都要在公共場所禁煙了。所以,在禁煙的做為上,香港和德國是一樣的。但是我注意到一個根本的差別,那就是,在德國,公共場所禁煙令下來之前,社會有歷時很長、翻天覆地的辯論。香港卻沒有,政府基本可以說做就做,而且,香港政府好像有一種特異功能,只要是它想做的事情,都可以把它塑造成「萬眾一心」的樣子。香港政府簡直是個所向無敵的鐵金剛。
最近開始讀龍應台這本《親愛的安德烈》,個人覺得這本書相當有意思,先不論親子間的互動性,他的主題總是有趣的、豐富的,也經常提醒我過去想過的一些問題,像是社會、自我價值、親子關係、文化差異等等。有幾個同事在 plurk 說這本書讀起來並不輕鬆,但我常常把他當成睡前讀物、廁所讀物,就把他跟村上春樹、田中芳樹,或者其他作品一起讀著。
只是,最近讀這本書的時候格外有感觸,安德烈所說的香港政府,讓我想起這些日子馬政府的種種作為。
某個週日,我爸氣急敗壞地說著「馬政府決議開放美國帶骨牛肉」的事情,那時我只是冷冷的說:「是不是有配套措施,或者已經証明美國牛肉能免除狂牛症的危險?」然後繼續我就繼續做著自己的事情,直到我發現這政策的草率與影響的嚴重性。
就算是這樣,這段時間我也只是專心工作,偶爾看著人來人往的言論,自己並沒有提出些什麼特別的意見。不過,我也很訝異居然會有這種言論
司徒文說:『去年台灣2300萬人口中,1034人因為機車事故死亡,你看風險性,從統計上來看,並沒有任何狂牛症引發的病例,或許民眾應停止騎摩托車,因為摩托車事故風險更高。』
那我是不是該說
「我騎日本機車跟國產機車可能會出車禍,但是為什麼我要騎一台可能會爆炸的美國機車?」
我想我是幸運的,至少生在這個時代,因為網路、報紙、民主,所有的政策與思維都能公開地攤在檯面下重新進行審視與質疑。先不論所謂開放之後「選擇的自由」吧!只是在這個當下,人民絕對有權質疑政策的「正當性」與其決策「過程」,並以言論去表達對於政策本身、或是其過程的不滿與爭議。撇開政黨不提,過去我們終於爭取到權益,能以站上街頭、報紙投書提出那理性的訴求。今日也許我們可以再次看看,台灣今日的民主,政府是像是「無敵鐵金剛」高舉鐵腕,還是能側耳傾聽,回到以民意為依歸的民主。
政府的手可以伸多長?現在我不知道了

(旁邊那個跳出來的攝影大哥,你時間點抓的真好)
雖然今年是孤鸞年,但我今年還是接到了幾個紅色炸彈,每次想紅包上的賀詞該寫些什麼,最後我好像都會老掉牙的寫下「永結同心」四個字。沒有特別的理由,可能就單單覺得兩個人在一起,彼此能同心合一地走到最後是一件很美的事情吧。
上禮拜參加高中同學的婚禮,又再之前參加了國防役同梯的婚禮。格外有感覺的是,這兩對看彼此的眼神總帶有一種真切、篤定、與溫暖,可能在一起的時間不是特別長,又或者是已經愛情長跑了好多年,那兩人眼神透露出的就好像是一種對於未來的期盼,還有對於彼此的信任感。
看到這樣的新人,心中總會很雀躍的。
我想起托爾斯泰說:「選擇你所喜愛的,愛你所選擇的」。希望這兩對新人能長長久久,也許應該這樣說,祝福你們「永結同心」吧!
因為覺得 dprintf 出現的次數實在太多了,我會希望在 exception 就可以包好 __FILE__ 跟 __LINE__,又可以把 std::wstring 包在 exception 一起丟出去,在 catch 的時候再印出來就好。
所以試著寫了這樣一個例子,結果寫的四不像,跟原本想的東西完全部不同了,而且我對於那個 BUFSIZ 相當不滿啊。其實原本希望可以用 ##__VA_ARGS__ 這種 macro 直接吃進來變成一個 boost::any[],然後再想辦法轉成 boost::format 可以用的格式,中間還可以透過 BOOST_FOREACH 來玩的,不過我徹底失敗了,所以最後的成果大家笑笑就好了。 Read more…
Recent Comments