電影流水帳(2012/2/15~2012/2/24)

3 IdiotsAshley Judd, movie actress

  • Flypaper (IMDB, Wikipedia),中譯:捕蠅紙。1990年也有部同名的Flypaper,然後裡面的演員有劉玉玲,真是讓我驚訝了一下,世界真是小,不過我不知道1990年的故事是否跟現在的一樣。這部片的故事,是講銀行同時被兩幫搶匪搶了,由於搶匪都沒預期到有另外一票人,所以很混亂。混亂的同時,有中情局的人死了。無法集中精神,可以同時注意很多事情的Tripp擔起偵探的角色,在銀行這個密室裡,試圖找出誰殺了中情局的人,在找出凶手的過程中,又死了一些人,最後還出人意料之外,結局不能說,說了就破梗了(是說,我也常破梗,這次就算了…)。整個故事有抽絲剝繭的推理,也不會拖泥帶水,節奏明快,真的不錯看。中間有一段,女主角Kaitlin強吻了Tripp,然後Tripp整個在地上打滾說我快死了那段,蠻有趣的,讓我印象很深刻啊。
  • 3 idiots (IMDB, Wikipedia),中譯:3個傻瓜。很多人大推的片,的確很好看,就不多說了。故事的表達跟某些情結是有點誇張了,但他想表達的東西很值得人去好好思考。然後裡面有印度的歌舞穿插,很好看!還有最後不知道是在哪裡取景的(Ladakh是真的有這麼漂亮嗎?),風景很漂亮!

電影流水帳(2012/2/8~2012/2/14)

Kat DenningsThor真的是不怎麼樣的片,圖左是我覺得台詞很搶戲的女配角Kat Dennings,不算是很漂亮,但她在電影裡的獨特知性美吸引了我的目光。

  • Thor(IMDB, Wikipedia),中譯:雷神索爾。長不怎麼樣的片,感覺上跟「美國隊長」一樣,就是為了要幫「復仇者聯盟」鋪梗,Ironman2裡有一段發現大坑的,就是接到這裡,那個坑是雷神之鎚掉下來所出現的洞。Thor是北歐神話裡的雷神,小時候有看過,所以裡面講的一些神還算是熟悉,不過其實也只要知道Loki、Odin跟Thor就夠了。Marvel的Thor基本上就是延伸北歐神話,所以故事大致上就是這樣發展,只是加上Thor三不五時會到地球溜達。故事大致是這樣子的,Thor是個臭屁又驕傲,不會聽人講話的人,準備要登基接奧丁王位的時候,冰雪巨人來亂,雖然沒事,可是Thor就很衝動,說要殺到冰雪巨人那邊去,奧丁不准。後來就自己帶親信跑去,要不是奧丁去救,差點就沒命。奧丁把他的超能都拿走,放逐到地球去。丟到地球時,就遇到女主角一行人救了他。女主角一行人因為不小心撞到他,良心不安,就把他帶回去。這裡有一幕,Thor邊穿衣服,邊講話,秀出他壯碩的肌肉,是真的很讚。後來就帶到Loki,Loki是奧丁撿回來養的,他很不爽,不爽奧丁都不重視他,所以才會放冰雪巨人進來偷暴風之匣。然後他跟奧丁吵起來,奧丁因此昏倒,長眠不起。Loki暫時接任王位,並且跟冰雪巨人達成協議,要消滅Thor。Thor的同伴因為Loki掌權,又不讓他哥哥回來,不是很爽,就跑去地球找Thor。冰雪巨人剛巧也在這個時候去拜訪Thor,然後就是一場大戰,Thor因為沒有神力就很廢,被打趴,然後突然因為Thor改變了心境,就回復神力,雷神之鎚也回到他手上,喔喔喔!!一下子就把冰雪巨人幹掉,然後回到Asgard,跟他弟弟打起來。這裡很不合理的是,Thor突然同情起冰雪巨人,也不願意打Loki。為了阻止Loki毀了Jothuheim,他用雷神之鎚把彩虹橋打斷,也因此回不了地球。然後Thor跟Odin打到差點掉下去,Odin突然甦醒,救了他們兩人,可是Loki卻自己放手掉下去。片尾帶到Dr. Selvig去參觀神盾局,鏡子裡冒出Loki的身影,顯示還有後續的故事。
  • Underworld(IMDB, Wikipedia),中譯:決戰異世界。回味老片,趁第3集上映,趕緊看一下。狼人跟吸血鬼是世仇,吸血鬼Selene發現狼人怪怪的,就去調查,發現了狼人在找Michael Corvin,也發現了暫時攝政的Kraven跟狼人Lucian勾搭,要篡位。於是她就請出了Viktor,可是Viktor不是很相信她。之後真的確定了Kraven跟Lucian有勾結,Viktor就親率人要去把狼人幹掉,而Selene為了保護Michael也去救人,然後就打的亂七八糟,一踏糊塗。真相就隨之而出,狼人跟吸血鬼世仇,是因為Lucian愛上Viktor的女兒,可是Viktor不允許,就把他女兒給處刑解決掉了。而Kraven則告訴Selene,說她的父母並不是被狼人殺掉,而是被Viktor殺掉。Michael也陷入危機,他即將死去,Lucian告訴Selene趕緊咬他,讓他變成超越吸血鬼跟狼人的新品種,就可以救他。Michael被咬之後,就變成了新人種,跟Viktor展開決戰,最後在Selene跟Michael的聯手之下,Viktor被幹掉。

signalStrength.getGsmBitErrorRate() always return -1

用 PhoneStateListener.onSignalStrengthChanged() 來接signalStrength,就可以呼叫到signalStrength.getGsmBitErrorRate(),試了兩三台手機,都只拿到-1。上網查,很多人回報他的手機也是如此。查Android developer reference,這個要看 27.007 8.5,看了以後知道-1是不正常的值,也知道對Modem那邊是下AT+CSQ。

請同事幫忙看,他說直接對 Modem 下 AT+CSQ 有傳回值:”14,99″,這就怪了,所以就看了 Framework 層這邊,處理回來的 AT+CSQ 的地方是在 GsmServiceStateTracker.onSignalStrengthResult() ,這邊繞了一堆路,簡單的說,就只解析了第一個參數,存到 signalStrength 裡以後,就通知上面了,剛巧,signalStrength 裡 bit error rate 的預設值就是 -1,所以才會一直都拿到 -1。因此這邊加上解析第二個參數的程式以後,就可以順利取得99。

回頭再看 27.007 8.5,99 其實是 not known or not detectable,這還是沒辦法用,再加上 8.5 對 AT+CSQ 的說明是說 optional,不一定要實作完全,因此這就只能回頭問提供 modem 晶片的廠商了。

看原始碼的利器-gj

好像是在看推還看噗的時候看到的,fcamel 大自己刻的工具gj,今天才在試,發現很方便,找關鍵字很快。使用方法很簡單,先安裝 id-utils (sudo apt-get install id-utils),然後在你要看原始碼的目錄下,輸入 mkid 先建立資料庫,之後就可以用gj keyword 列出有keyword的檔案並讓你選擇要看哪個檔案。如果你用 gj keyword keyword2 就表示要在有 keyword 的檔案裡再去找看有沒有 keyword2,依此類推。

預設是用 vi 去編輯檔案,要改的話,就稍微改一下 gj 即可,gj 是用python寫的喔~

 

電影流水帳(2012/1/27~2012/2/7)

E3 2010 Megamind demo area

  • Megamind(IMDB, Wikipedia),台譯:麥克邁-超能壞蛋。卡通片,還可以,當初要上片時,還有跟Zynga的Farmville合作打廣告,所以農場裡就有大大的Megamind雕像。Megamind跟Metroman從小就是宿敵,一直打到長大,一直打打打,打到有一天,Metroman不想玩了,就假藉一場爆炸逃走。Megamind接掌了城市,卻發現沒有了對手,生活失去意義,所以他就利用Metroman的DNA做出藥劑,並且不小心把女記者的攝影師變成了新的超人。在這段時間裡,他也不小心變成另外一個人跟女記者交往,一段時間下來,他們愛上了彼此。新的超人得到新的力量,發現事情跟他想的不一樣,沒有辦法順心如意,就決心為惡,然後跟Megamind槓了起來。Megamind被打的落花流水,去找了假死的Metroman,Metroman拒絕出來。後來Megamind就運用他的智慧跟手段,最終打敗了新的超人,成為新的真正的英雄。
  • Captain America(IMDB, Wikipedia),台譯:美國隊長。好莫名其妙然後理所當然的就結束了。Rogers 很希望從軍,無奈就是太瘦小。後來碰到神秘的博士,為了實驗品為了他的善良把他找進來。找進來觀察了一陣子,發現真不錯,就幫他注射了。噹噹,成功變成大隻佬,變身以後,並不是立刻投身戰場,而是被當作吉祥物來募款用。直到後來到了歐洲,他發現自己不受歡迎,然後自己朋友又被抓了,就毅然決然單身匹馬進去救人,一陣亂砍之後,救出了一堆人,跟紅骷髏結下樑子。接下來就是一陣亂打,最後知道紅骷髏要去轟炸美國各大城市了,就來個總決戰,不過沒有很歡樂的結局,紅骷髏被強大的力量轟碎,Rogers跟飛機一起掉到北極當冰粽子。到了現代,神盾局的人發現了他,就把他救了起來,準備成立復仇者聯盟。令我最有印象的地方是,Rogers、女主角跟Chester(Tommy Lee Jones)一起開車去追紅骷髏,Rogers要跳上飛機前,女主角跟Rogers親吻,然後Rogers再看著Chester,Chester說了一句很妙的話:「I’m not kissing you.」

Harbour Project – Hello world

The Harbour Project is a Free Open Source Software effort to build a multiplatform Clipper language compiler. Harbour consists of the xBase language compiler and the runtime libraries with different terminal plugins and different databases (not just DBF).

Harbour is a cross-platform compiler and is known to compile and run on MS-DOS, Windows (32 & 64), Windows CE, Pocket PC, OS/2, GNU/Linux and Mac OS X.

簡單的說,Harbour是Clipper的替代品,目前可以運行在很多平台上,雖然說跟Clipper/VFP同是xBase類的語言,但是還是有很大的差異,這些差異可以從文件裡看出來。不過Harbour有相當大的優勢,就是速度跟平台,它會先把 prg 轉譯為 C 語言,再編譯出執行檔,再者,它可以裝到很多平台上。對被拋棄的xBase語言的開發者來說,是可以考慮看看的。

Linux 上的安裝很簡單,就去Harbour下載網頁找到你的Linux版本,點進去,找到檔案下載即可,我是用Ubuntu,就到binaries-linux-ubuntu下,下載 .deb 檔案。下載以後,執行sudo dpkg -i harbour_3.0.0-1_i386_ubu_10.04-2.deb 就安裝好了。

接下來就寫程式,副檔名是.prg,就建立一個hello.prg,內容就像這樣

&& Output "hello world"
? "Hello world"

&& Create table,沒有VFP的create table,還真的有痛苦到。
local aDbf := {}
AADD(aDbf, { "Fld1", "N", 3, 0 })
AADD(aDbf, { "Fld2", "C", 4, 0 })
AADD(aDbf, { "Fld3", "C", 20, 0 })
DBCREATE("table1",aDbf)

use table1
browse()  && browse 不再是指令,而變成函式了。
close all

執行 hbrun hello.prg 就可以直接執行,看到結果。使用 hbmk2 hello.prg 就可以編譯出執行檔 hello,輸入 ./hello 就可以執行。

pip freeze與還原

用virtualenv,除了可以建出一個開發環境之外,也不會因為distribution不支援而扼腕,然後也可以輕易地安裝、搜索跟反安裝。另外一個好處就是可以輕易的把整份環境給凍結起來。用 pip freeze > requirement_file 可以把開發環境中有安裝的package都列出來,然後再用 pip install -r requirement_file 就可以裝回去。

dateutil.parser解析日期時間字串出現”iter() returned non-iterator of type ‘_timelex'”

之前用python-dateutil的parse在解析字串是沒問題的,結果今天用的時候,卻出現 “iter() returned non-iterator of type ‘_timelex'” 的錯誤,仔細看過,發現之前用的是1.5,而目前用的卻是2.0。上官方網站去看,發現1.5是for Python2,而2.0是for Python3,為什麼不能相容呢?一時之間也無法解決,乾脆就降級用回1.5了,還好用virtualenv跟pip,還蠻簡單的,就先 pip uninstall python-dateutil 再 pip install python-dateutil==1.5 就行了。