石頭

昨天晚上S來我家檢查濾水器並送濾心過來給我,他是老何介紹給我的,幫我裝的濾水器已經用3年了,那時候大公子還不到一歲的樣子,時間真的很快。
檢查完濾出來的水並確認沒有問題以後,他給我看一顆黑色的小石頭,叫我洗一洗,洗完放到裝了開水的杯子裡。
S:”我們來做一個實驗喔~你手機在旁邊嗎?”
我:”手機在旁邊”
S接著用手機打了通電話到我的手機,旋即掛斷。
S:”好~你單腳站好,兩手往左右伸直,和身體呈90度。”
我照做了,左腳縮了起來,用右腳站。
S:”我要按你的左手臂囉~準備好了嗎?”
我:”好了”
S輕輕一按,我就不平衡,身體往左傾,我趕緊把左腳放下站好。
S:”好,你喝剛剛的水,喝完再用剛剛的姿勢站好。”
我喝完水,站好以後,說:”好了”
這次S按的比剛剛用力,可是我卻沒有像剛剛那麼的不平衡。
很玄…
S:”剛剛打手機的時候,手機的電磁波破壞了你的場,所以你會不平衡。這顆石頭泡過的水可以讓你恢復你的場,你喝完以後就不會不平衡了。”
我心裡暗想,鬼扯,這怎麼可能!
S:”我們再試一次,可以嗎?”
可惡,這次實驗結果居然一樣,接了手機就會不平衡,喝完水,就不會。
S:”這公司新產品,濾水器裡有這石頭,以後有機會,你再參考這產品看看。另外這小石頭就送給你吧~你可以放在杯子、水壺或熱水瓶裡,但要小心不要喝到肚子裡去囉~”
跟他道別、送他出門之後,我在想這石頭真有這麼神奇嗎?
隔天,就今天早上騎車的時候,我就在研究要怎麼驗證這個實驗的真實性。首先要排除人類心理因素,如果知道有這麼一顆石頭,就很難不受到它的影響,另外也要避免讓實驗者知道他正在做實驗,這很重要。根據組織行為課本裡介紹的一個實驗(好像是霍桑做的?),當工廠工人知道他們在做實驗,就因為覺得自己受到重視,而表現的較好。然後,我想應該也要排除掉手機,要想辦法讓實驗者不知道手機的存在,請他等一下,在這個等一下的過程裡去打電話,等完之後,再讓他做那姿勢,並用手壓他的手臂。壓完之後,請他喝水(杯子裡不能有石頭,也不能讓他知道水哪裡來的),再讓他做那姿勢,再壓一次。嗯~這樣應該就可以實驗出那顆石頭是否真的有功效了。
我個人是覺得這跟那顆石頭或手機一點關係都沒有,等之後有空來試試看。

GAE應用程式在哪裡執行

判斷Google Appengine應用程式是在GAE服務上或是本地端,可以這樣用:

from google.appengine.api import conf
app_version, current_config_version, development = conf._inspect_environment()
if development:
print("development")
else:
print("production")

電影流水帳(2011/4/27~2011/5/25)

整整一個月就這樣過去了…

  • Love and other drugs(IMDB, Wikipedia),中譯:愛情藥不藥。這部片蠻感人的,雖然有點芭樂。Jamie出生於醫學世家,可是卻跑去當了藥廠的業務員,賣起藥來。賣藥的過程裡,遇見了Maggie,一見鍾情,也在床上一見如故,就像是遇見100%的女孩,並過了依段快樂的時光~可是,Maggie有帕金森氏症,他們因為這個而爭吵甚至分開,分開一陣子以後,Jamie發現他不能沒有Maggie,就趕緊去告白,然後復合。這部片子裡有不少裸露畫面,但很自然,Hathaway在這部片子裡看起來超有魅力的說~
  • Hero(IMDB, Wikipedia)。上英文課時,老師讓我們看的,是一部批判媒體的片子,除了劇情不錯以外,飾演主角的演員也都是一時之選,相當好看。Bernie是一個自私自利的人,他離婚了,而且被法律訴訟給困住。某天下著雨的晚上,他正要帶兒子去看電影的路上,還沒接到兒子,就遇到飛機失事。飛機快要爆炸了,他幫忙打開機艙,機艙裡的乘客紛紛逃出,裏面有個小孩要求他幫忙救出他的父親,他看到這個小孩,動了惻隱之心,就進去救了好多人,之後就離去。救人的過程裡,他順手牽了女記者的皮包。當然,就跟他兒子爽約了,他想要跟他兒子解釋,可是被他前妻給轟了出去。女記者找到爆點,就趕緊大肆報導,想找到這個救人的人,後來有個流浪漢出來冒認了,想不到卻以假亂真。這個流浪漢心裡很掙扎,他想說只是出來冒充,卻一夕成名,媒體報導成這樣,想下台也很難下台。後來就想自殺,此時女記者已經找到Bernie,他以為Bernie是那個轉手流浪漢皮包然後威脅流浪漢的人,就帶去,結果Bernie卻跟要跳樓的流浪漢聊開了,並達成協議,讓流浪漢繼續行善,Bernie拿錢。女記者之後也認出了Bernie就是救她的人,之後也沒有再重新報導,就這樣各取所需,算是一個快樂的結局。
  • 127 hours(IMDB, Wikipedia),中譯:127小時。這部片是一個獨自去爬山健行的人的故事,出發前都沒跟任何人講,結果途中失足,被石頭壓到手,獨自在荒郊野外過了127小時,後來自己把手給弄斷才脫困的故事。故事很簡單,看完以後覺得手真的是超痛的啊!!怎麼會有人能把自己手弄斷而不昏倒的,超厲害的。

pixnetalbummaker(3)

承蒙jnlingslin二位pixnet開發者的幫忙,現在連後端都不用刻了,只要搞定前台的javascript就可以去PIXNET album撈圖。就用jQuery.getScript()與PIXNET API 吐jsonp就可以達成。
然後也參考這篇Asynchronous Image Loading with jQuery,為圖片加上了動態載入的效果。目前比較傷腦筋的問題就排版問題,發生的情況有以下幾個:一個是當圖寬高值過大時,一個是當圖片數目過多時。這再想辦法好了。
之後可能會來看OAuth吧,看可不可以自動去 PIXNET blog 、blogger、facebook 貼文,就不用手動複製然後貼上了。
對了,網址是http://pixnetalbummaker.appspot.com

jsonp

前兩年有使用過,可是最近想起來時,卻發現什麼記憶都不剩,只記得好像是解決 cross domain 的方案。上網找了一下,終於讓我給想起來了,下面用我懂的話來寫,這樣下次又忘記時,可以很快想起來。
在利用 xmlhttp(或form) post/get 時,目標的網址(action)跟目前網頁的網址必須是在同一個網域上,否則會無法post/get。該怎麼解決呢?就要利用所謂的 jsonp。jsonp 是利用動態安插 script tag 的方式來繞過 cross domain 的限制,script tag 裡的 src 不受 cross domain 的限制,一般來說,src 裡的網址會多加一個參數 callback (當然,不一定要叫作callback),也就是說,後端收到這個 request 時,會去進行處理(一般會處理為json資料),最後輸出時,會輸出 javascript ,並且將 json 資料傳入你指定的 callback並執行,這樣就完成了。
本來以為 PIXNET API 可以直接利用 jsonp,就不需要另外刻後台來拉資料,結果今天去看時,發現沒有,大概是之前眼花了吧…

pixnetalbummaker(2)

GAEO 0.5 beta用的不順,再加上開發已經停止,所以還是用回文件相對比較多的0.3版。

之前從trunkly-python抄來的代碼不太適用於PIXNET API,所以稍做了改動,原本是這樣使用的:

print( pixnet.get_users_elleryq() )
print( pixnet.get_album_sets( {'user': 'elleryq' }) )

現在得這樣用:

print( pixnet.get_users( "elleryq", {} ) )
print( pixnet.get_album_sets( parameters={'user': 'elleryq' }) )

是說,應該要好好來研究一下cross domain的xmlhttp,這樣根本就不用寫後台了,直接呼叫PIXNET API就好~

歡樂智多星的機率隨想

歡樂智多星是胡瓜在衛視中文台主持的節目,遊戲的規則是,參加的人有30萬,每關有3個選擇,然後可以選擇全部押在一個答案上,或是分散,只要過了五關,剩下的錢就你的。
先不考慮最低的押注是1萬的這個規則。最早的規則是可以把錢分散在3個答案上,所以這樣子的機率是 (1/3) ^ 5 = 1/243,最近看的時候,發現節目修改規則了,變成你只能把錢分散在兩個答案上,看起來過關機率降低了,但是實際上,只要排除掉不可能的那個答案,然後平均分散押注在另外兩個答案的話,這樣子機率是 (1/2) ^ 5 = 1/32,反而提高了!!
現在在加上最低押注是一萬的規則。如果把錢分散在3個答案上,押注金額較多的又剛好過關,那麼,

  1. 10萬:10萬:10萬
  2. 4萬:3萬:3萬
  3. 2萬:1萬:1萬
  4. 孤注一擲
  5. 孤注一擲

同樣的情況,但只能把錢分散在兩個答案上,這邊再加上一個都會過關的假定:

  1. 15萬:15萬:0
  2. 8萬:7萬:0
  3. 4萬:4萬:0
  4. 2萬:2萬:0
  5. 1萬:1萬:0

從上面的分析看來,參賽者不再一定需要知道正確答案,也就是你可以什麼都不知道,在此情況時,嚴格執行排除最不可能的答案,並且把錢平均分散在其他兩個答案上,這樣最後至少可以得到一萬元。相較之前的規則,在第四次以後就只能孤注一擲的情況來說,節目的新規則把勝率提高許多。

pixnetalbummaker(1)

我環境是ubuntu 10.04,依照GAEO文件,以easy_install安裝gaeo,可以順利安裝。
但在產生專案時,卻會出現:”OSError: [Errno 2] No such file or directory: ‘/usr/local/lib/python2.6/dist-packages/gaeo-0.5-py2.6.egg/oildrum/static'” 的錯誤。
此錯誤應該與easy_install的EGG有關係,原因是因為少檔案,下載官方的 zip 檔案可以發現以 easy_install 安裝以後的 oildrum 跟 zip 裡的 oildrum 檔案數目並不一樣,也就是說少安裝了。解決方法也很簡單,就把 zip 檔案裡的 oildrum 複製過去即可。

電影流水帳(2011/4/8~2011/4/26)

等後半年有特休的時候,看能不能消化掉比較多的電影債…最近啟動原始碼的片名source code蠻有梗的,例如:
Dilbert: I watched source code yesterday. (我昨天看了source code)
Dogbert: Linux kernel or Android? (是Linux kernel的還是Android的?)
不過 watch 跟 read 在英文上的意思差很多,只要一亮出動詞,就又沒梗了…

  • TRON(IMDB, Wikipedia),中譯:創:光速戰記。這是1982年Tron的復刻板本,單就劇情來看,在1982年那個時候,真的是很創新的題材,很令人驚訝的,除了人能進到電腦世界以外,很多部份都還蠻寫實的。但是同樣的劇情放到現在,除了特效之外,好像就沒什麼了…劇情是小男孩的父親在小男孩小時候消失了,一直都沒回來。長大以後去老爸工作的地方看,才知道他真的到電腦世界裡去了,於是就進去看看。進去以後才知道他的父親沒有晃點他,只是因為他創造的程式反叛了他才沒辦法回來,一待之下就待了十幾年。要出來,就要改變,故事就是在講這個,最後當然是出來了,還多帶了一個女人出來,真的是很神奇,讓我想到桂正和的電影少女啊…
  • Detective Dee and the Mystery of the Phantom Flame(IMDB, Wikipedia),中譯:通天神探狄仁傑。放中譯的原因是因為大陸那邊的譯名跟台灣不一樣,然後英文片名也頗有趣味。其實故事比較像是推理小說,跟當時的時代背景什麼的,沒什麼太大關係,有應用到的梗,一個就是武則天跟李唐的一些糾葛,一個就是人名。故事編的還蠻好看的,國師真的是跟武則天有很奇妙的關係,兇手竟然是自己的好朋友,最後頗有柳暗花明的感覺,不錯看的電影。

編譯DLR debug version

因為 Pro DLR 有介紹編譯Dynamic Language Runtime debug version的部份,如此一來就可以利用Visual studio來追蹤DLR內部的運作。
下載位置在這兒,目前是1.0版。
假設你是用 Visual studio 2010/Visual studio express 2010的話:

  • 如果要在 .Net 4 下debug,開啟 Src 下的 Codeplex-DLR-Dev10.sln。
  • 如果要在 .Net 2 (3.5也算)下debug,開啟 Src 下的Codeplex-DLR.sln 或 Codeplex-DLR-VSExpress.sln,開啟以後,會說要轉換。

編譯以後,就可以在 Bin 目錄下找到檔案。
本來想說真不妙,竟然得一個個Project去改Target framework,還去找了人家寫好的Visual studio macro來做,可以是後來發現reference也要改,就暈了。幸好早就有提供.Net 2.0版本的solution檔案了。