電影流水帳(2013/7/3~2013/7/9)

Heather Graham截至目前為止,已經看了 43 部電影,加上這次的兩部,就 45 部了。照片裡是 Hangover III 裡飾演曾經在第1集跟 Stu 有過一夜情的女生,第3集裡,她已經脫離特種行業,並且第1集裡的小孩已經長大了。

  • 結婚那件事(IMDB, Wikipedia):偉傑是個窮小子,卻誤打誤撞遇到了富家女芷欣,很幸運地追到手,然後要結婚了。偉傑打腫臉充胖子,結婚花了超多的錢,不願意向有錢的太太跟自己的親戚求救,又遇到兩家不和,整個就是背。婚後來是結好了,但還不出喜宴的錢,被朋友慫恿去賭錢也失敗,新婚的老婆因為被欺騙,也跟偉傑吵架,眼看就要以分手作終。在這個時候發生了兩個逆轉點,第一個就是偉傑的好友去向芷欣以及她的家人說出真相,第二個就是偉傑的父親發生車禍。透過要修好父親的女錶,知道了當初為什麼父親沒來的及回來看母親最後一面的經過,這件事情讓兩家修好、父子盡釋前嫌、原本因為外遇而老是吵架的芷欣父母也和好,偉傑跟芷欣也很感動,最後父親順利脫離險境,一個快樂大結局。這部電影還算不錯看,有笑有淚,也可以看馬來西亞跟新加坡的社經環境。
  • The Hangover Part III (IMDB, Wikipedia),中譯:醉後大丈夫3。沒看過 2 ,直接跳到 3。這次是因為 Alan 的行徑已經讓大家受不了,再加上 Alan 父親被氣死,所以大家決定送他去療養院,想當然爾,還是原班人馬陪他去。老周從曼谷的監獄逃出,回到美國。跟老周有過節的 Marshall 想要找他,經過調查,Marshall 發現 Alan 還有跟他連絡,就趁這次護送 Alan 去療養院的機會,攔住他們,要他們說出老周的下落,他們當然是抵死否認,Marshall 就把 Doug 帶走,要剩下的三人去找。透過 Alan 的手機,他們找到老周,但卻被老周騙去偷 Marshall 的金塊,老周帶金塊逃之夭夭。Marshall 再次放過他們,讓他們去找老周,在找的時候,Alan 碰到真愛,然後找到老周,跟老周纏鬥了好一陣子,終於抓到老周,帶去見 Marshall。老周一再求情,在要碰面的時候,Alan 的一念之間,讓老周有了機會,就突然跳出來開槍殺了 Marshall 跟他的同夥,拿到金塊。最終,算是跟老周和平的分手,Alan 也突然開竅的似的,後來跟在當舖遇到的女子結了婚。說實在話,沒有第1集好笑,但是最後一幕有一種看著小孩長大結婚的感覺,還蠻奇妙的。

gitlab on Ubuntu 12.04

基本安裝指南是參考 gitlab 上的文件:https://github.com/gitlabhq/gitlabhq/blob/master/doc/install/installation.md

  1. Packages/Dependencies:提到的套件之前都安裝過了,寄送郵件的 SMTP server,文件裡是說要用 postfix,我是用 ssmtp。
  2. System Users:原本是先處理 Ruby,因為我想用 rvm,所以就先處理 System Users,這邊就建立 git 使用者,由於後續的 rvm 會需要用到 sudo,所以也順便把 git 加入 sudo 群組。
  3. Ruby:我是用 rvm 來安裝,所以就不移除原來系統的 ruby。這邊安裝稍微麻煩一些:
    1. cd /home/git
    2. curl -L https://get.rvm.io | sudo -u git -H bash -s stable –ruby=1.9.3
    3. sudo -u git -H vim .gemrc :填入 gem: –no-ri –no-rdoc
    4. sudo -u git -H mkdir bin
    5. sudo -u git -H vim bin/rvm:因為不知為什麼 bash 沒去讀 .bash_profile,所以就弄了一個 script 來含括環境變數,內容請參考這裡,做完以後,要用 sudo -u git -H chmod +x bin/rvm 變更其權限。
    6. sudo -u git -H bash -c “\$HOME/bin/rvm all do gem install bundler”
  4. GitLab shell:這邊照步驟做,最後的 Do setup 時,要改用 sudo -u git -H bash -c “\$HOME/bin/rvm all do ruby \$HOME/gitlab-shell/bin/install” ,強制用 rvm 的 ruby 來安裝。
  5. Database:照步驟做。
  6. GitLab:這也是照步驟做,但要注意使用 gem/bundle/rake 的指令,要改變為 sudo -u git -H bash -c “\$HOME/bin/rvm all do gem 跟 sudo -u git -H bash -c “\$HOME/bin/rvm all do bundle 跟 sudo -u git -H bash -c “\$HOME/bin/rvm all do rake

至此,大致就完成了。

實際上在測試的時候,發生一些問題,我遇到的問題跟解:

  1. 我用預設的帳號 admin@local.host 跟密碼 5iveL!fe 無法登入:後來找到文件,是說用 sudo -u git -H bash -c “\$HOME/bin/rvm all do bundle exec rake gitlab:setup RAILS_ENV=production” 重新執行,我發現我這個步驟有錯誤訊息,就修正以後,再執行一次,就可以登入了。主要是修正 gitlab-shell/config.yml 裡的 repos_path 跟 gitlab/config/gitlab.yml 裡的 repos_path ,這兩者要一致,我是設定為 /var/git/repositories ,之前照設定做的時候,漏了一個。
  2. 建立專案以後,無法 clone/push,這有兩種情況:
    1. gitlab-shell 用了錯誤的 ruby 版本:我是笨笨的去把 gitlab-shell/bin 下所有 script 的第1行修改為 /home/git/.rvm/bin/ruby ,後來有找到 gitlab 的 trouble shooting guide,他是把 PATH 寫到 /home/git/.ssh/environment,然後在 /etc/ssh/sshd_config 裡增加 PermitUserEnvironment yes。
    2. gitlab-shell config.yml 設定錯:我讓 gitlab 執行在 port 81 上,所以 config.yml 裡的 gitlab_url 也應該要調整為 http://localhost:81/ 才對。(來源:GitLab: Could not read from remote repository)
  3. git 版本需要 1.7.10 以上,就找了 git 的 ppa 來源安裝:sudo add-apt-repository ppa:git-core/ppa && sudo apt-get update && sudo apt-get upgrade

整個都確定完成才寫這篇,我想應該是沒漏掉吧。

除了官方的安裝文件之外,ArchLinux wiki 上的安裝指南也寫的很棒,不妨參考看看。

在 kernel module 裡參考 /proc/cmdline 裡的字串

基本上是不行,沒辦法取得。那在 u-boot 裡指定參數以後,又是誰收到?

所以我就參考 Documentation/kernel-parameters.txt,然後以 acpi_backlight 當例子去找。在 drivers/acpi/video_detect.c 的最後有看到宣告 static init __init acpi_backlight(char* str) {},這邊看起來是在處理字串,然後做處理;緊接其後則是 __setup(“acpi_backlight=”, acpi_backlight); ,而這行看起來就是 kernel 會有一個地方去 parse cmdline ,如果有符合 acpi_backlight,就把之後的字串丟給 acpi_backlight 函式去處理。

因此,就應該可以依樣畫葫蘆。在 u-boot 傳參數給 kernel,而 kernel 的 module 則用類似 acpi_backlight 的方式去處理,就可以解析到需要的字串。

電影流水帳(2013/6/25~2013/7/2)

Emily Blunt

  • Looper (IMDB, Wikipedia),中譯:迴路殺手。台灣片商好像沒引進這部電影,故事的題材是時間,相當簡單。Looper 是在過去的殺手,未來會把該殺的人送回到過去,Looper 就只要在指定的時間跟地點開槍,殺人以後滅屍即可;那如果未來送過來的是 30 年後的自己,那就一樣殺掉,然後好好享受自己的這 30 年。故事往往就是打破這樣的循環,主角 Joe 沒殺掉未來的自己,於是 Joe 所屬的黑幫開始追殺 Joe,而 Joe 一心想殺掉未來的自己,讓自己能快樂的過完這 30 年。等到跟未來的自己碰面,才知道這三十年發生了什麼事情。Joe 在殺掉未來的自己以後,他遇到了一個可以相互信賴的伴侶,結果卻遇到 Rain Maker 開始解決一個個的 Looper,於是他痛失摯愛,在痛失摯愛之前,他得知了一個關於 Rain Maker 的情報,為了要阻止 Rain Maker,他決定回到過去,殺掉 Rain Maker,改變自己的命運。Joe 無法理解未來 Joe 痛失摯愛的感覺,他只想好好享受這 30 年,於是爭執之後,兩人分道揚鑣。Joe 依據未來 Joe 的紙片得知其中一個可能是 Rain Maker 的住處,就到了那兒。Sara 跟他的兒子住在那裡,Joe 跟 Sara 不打不相識以後,認識了彼此,而未來的 Joe 則真的跑去殺掉另外兩個可能是 Rain Maker 的小孩。黑幫並沒有就此歇手,分別追查到 Joe 跟未來 Joe 的下落,派人追殺。Joe 那邊,因為意外,發現 Sara 的兒子真的就是 Rain Maker。而未來 Joe 被黑幫抓到以後,反而幹掉了黑幫的一票人,也透過兩人的記憶連繫,知道了真正 Rain Maker 的下落,於是就去追殺 Sara 跟他的兒子。決定性的場景出現了,如果未來 Joe 殺了 Sara 而 Joe 又殺了未來的 Joe,那麼就導致 Rain Maker 對 Looper 心懷怨恨,使得 Rain Maker 在三十年後執行 Looper 滅口計劃,同樣的事情會再發生一次。Joe 突然認清了這一點,於是就在未來 Joe 正要扣下板機時,他自殺,打斷了這個循環。這篇[短影評]迴路殺手 Looper的最後有一張圖交代了這件事情。我覺得還蠻好看的,像牽涉到時間的電影,常常都會讓人搞不清楚因果,這部電影不會讓人搞不懂。男主角 Joseph Gordon-Levitt 的臉改變了不少,我差點以為這是他哥哥或弟弟演的電影。
  • Measuring the world(IMDB, Wikipedia),中譯:測量世界。這是高斯跟洪堡的傳記電影,改編自同名小說,我覺得蠻好看的,只是一般人看可能會覺得小悶。故事大致就是如維基百科上的高斯洪堡所說的。高斯從小就很聰明,數學的天份被發掘,被宮廷栽培為一個數學家,幫忙國家測量、發現了很多數學的算法。而洪堡則是遊歷於美洲、亞洲各地,去發現許多植物、生物。故事的最後讓他們兩人遇到一起,並且經歷牢獄之災以後,結成好友,相互幫忙。電影裏面有不少女性裸露的鏡頭,但都拍的很美、很自然。

教育部電子辭典轉星際譯典(stardict)字典檔心得

大約在4月底的時候,在 http://3du.tw 上看到還文於民的活動,就認領了轉換字典檔為 stardict 字典檔的工作。

首要的工作就是瞭解字典檔的格式,stardict 字典檔可以從很多格式轉換,像是 XML、Tabfile 等等的。轉換的工具已經有提供了,安裝 stardict-tools 套件以後,就有一堆工具放在 /usr/lib/stardict-tools 下,也有提供 GUI 工具 (stardict-editor)。

我最早是想用 XML 格式 (Textual Dictionary File Format),所以我就利用工具將現有的字典檔轉換為 XML,並且參考文件,來寫程式產出檔案,結果並不順利。即便是一個只有一個詞的檔案,轉換為字典檔以後,stardict 也無法辨識到。

後來就使用最容易,而且網路上最多人分享的 Tab file format。格式很簡單,詞與說明用 Tab 字元分隔,說明裡如果有需要換行或是做排版,可以用 \n  \t 等逸出字元來排。

程式則是用 python 來撰寫,主要使用 jinja2 來配合模版產出詞與說明,用 multiprocessing 模組善用 CPU 資源,程式放在 https://github.com/elleryq/moe2stardict 。以下記錄一下我有遇到的問題跟解決方法:

  • 使用 multiprocessing 時無法使用 profiling,上網 Google 的結果,都是建議要先在單一 process 的情況下去 profiling ,解決問題以後,再來搭配 multiprocessing。
  • 在執行程式時,所花費的時間一直很長。我是等到完成的都差不多時,才看這問題。用 profiling 去查看,才發現問題出在 jinja2 上,我把初始化模版的程序放在迴圈裡了,導致每處理一個詞都要初始化一次,非常浪費時間,大約要十分鐘以上。當我把這初始化的程序移出迴圈以後,速度提昇了超過十倍以上,不到一分鐘就執行完畢。
  • 同理,我也把 regular expression 的 compile 移到程式的一開始就執行,避免在會被多次呼叫的函式裡去 compile。
  • http://3du.tw 所提供的 json 原始檔裡有些像 {[8e41]} 的字元,沒有顯示出字來,發信件到 g0v.tw 聊天室問,唐鳳回應說,直接把這些字先忽略掉就好,這些字是異體字。所以我就把這些忽略掉了,非常謝謝她的回應。

目前我只有做國語辭典的轉換,其他還有客語、台語、成語的部分,就看之後有沒有人認領了,或者是等有空的時候再來弄。不過說真的,現在用 stardict 的人應該不多了吧,stardict 專案開發進度在原作者 hu zheng 失蹤後,僅在今年初有釋出 3.0.4,修正幅度不大,也沒有新功能。很多都建議轉用 goldendict,幸好 goldendict 也吃 stardict 字典檔,所以我這不算是做白工。

電影流水帳(2013/6/15~2013/6/24)

yuliya-snigir-wide
這是 Die Hard 5 的女主角 Yuliya Snigir,片子最後為了父仇,開著直昇機去撞 McClane 父子,結果當然是…失敗…

  • A Good Day to Die Hard (IMDB, Wikipedia),中譯:終極警探5-跨國救援。John 有好幾年沒看到兒子了,突然接到兒子在俄羅斯被抓去關的消息,於是決定去莫斯科。John 才剛到莫斯科法院門口,就發現不對勁,沒多久就發生爆炸,他的兒子 Jack 帶著 Komarov 逃出。原來 Komarov 是個政治犯,拒絕交出秘密檔案,CIA 判斷他有危險,就組織了搜救行動,讓 Jack 被關,以便救援。Jack 出了法院看到父親,這一個當下,就錯失了好的時機,導致 Jack 跟 Komarov 沒能順利逃出,只好採取第2方案逃到 Safe house。在逃到 Safe house 途中,持續被追殺,John 持續的幫忙,終於順利逃到 Safe house。到了 Safe house 以後,原本以為可以鬆一口氣,想不到仍然被追殺,Safe house 毀了。Jack 決定繼續完成這個行動,就說服 Komarov 交出秘密檔案,Komarov 說只要也帶女兒逃出俄羅斯,就願意交出來,於是就打電話跟女兒 Irina 約好地點。到了約定的地點以後,發生了出乎意料的情況,Irina 投奔了 Komarov 的政敵陣營,帶走了 Komarov,John 跟 Jack 陷入危機。陷入危機的二人差點死去,Jack 接下來不知道該怎麼辦了。John 鼓舞了 Jack ,依照莫名其妙的邏輯判斷之後,認為他們接著會去車諾堡,就去偷了車子跟槍枝,往車諾堡去。Komarov 被帶到車諾堡,打開秘密房間,正要取出秘密文件時,這時候又發生出乎意料的情況。父女原來是假裝反目成仇,要利用政敵的力量來幫助他們取得藏在庫房裡的鈾來變賣。政敵被 Komarov 埋伏在其身邊的人幹掉,接著,John/Jack 來到車諾堡,發現了真相,展開一場火拼。John 父子當然不負 Die Hard 家族之名,順利幹掉 Komarov 父女,故事結束。故事到後面有點不太合理,但是有轉折,讓人小驚奇;另外也讓 John 父子二人和好,還算不錯看。
  • Jack the Giant Slayer (IMDB, Wikpedia),中譯:傑克-巨人戰記。傑克與魔豆的故事,之前鞋貓劍客也借用了一樣的故事,但這部電影拍的比較接近原來的故事,我覺得蠻不錯的。大致的故事就跟原來的故事一樣,不同點在於鋪了一個傳說。很多年前,僧侶製造了魔豆,想看看天上是否有上帝,結果卻連接到巨人族所居在的地方,巨人族很開心的到地上吃吃喝喝 (吃人),人類怎麼都抵擋不了。後來,人類藉著僧侶打造的皇冠,控制巨人,讓他們乖乖回到天上,接著把皇冠跟魔豆都藏了起來。經過許多年之後,出現了主角 Jack,Jack 苦哈哈地帶著老馬去市場,結果跟僧侶換了魔豆。這個僧侶其實是好人,他從想篡位的 Roderick 手裡偷到魔豆,想避免 Roderick 號令巨人以稱王。想自己決定命運的公主 Isabelle 逃出去,正巧遇到 Jack,又很湊巧的,豆子遇到水,把房子帶到天上。沒跟上的 Jack 加入國王組織的搜救隊到天上去,一上去,魔豆就被 Roderick 拿走,Jack 只保留了一顆。在 Roderick 有意的剷除搜救隊跟巨人的夾擊之下,搜救隊長 Elmont 跟公主 Isabelle 被抓走,Roderick 則利用皇冠控制了巨人。Jack 趁亂救出 Elmont 跟 Isabelle,Elmont 在送走 Jack 跟 Isabelle 後,埋伏在豆藤附近,想要奪回 Roderick 的皇冠。到了隔天的早晨,Roderick 率領巨人族到了豆藤,Elmont 衝出來跟 Roderick 一陣扭打,幹掉了 Roderick,但皇冠被巨人 Fallon 奪走。在下面的國王認知到以前的傳說是真的以後,就忍痛下令砍斷豆藤。Jack 跟 Isabelle 快到地面時,豆藤就斷了,靠著 Jack 的機警,兩人順利落地。Elmont 在豆藤要倒時,上了豆藤,也幸運地降落在城堡的護城河。巨人族痛失到地面的機會,可是,幸運地發現了 Roderick 的魔豆,於是種下魔豆,大舉進攻地面。人類靠著城堡對抗巨人的侵襲,一邊抵抗的同時,掉入護城河的巨人 Fallon 潛入城堡,追擊要去燒狼煙通知鄰國的 Jack 與 Isabelle。這兩人當然是打不過巨人,就在 Jack 要被巨人吃掉的時候,Jack 把僅存的一顆魔豆丟到巨人嘴裏,急速成長的魔豆將巨人絞碎,Jack 取得可以控制巨人的皇冠。接下來,就是 Jack 用皇冠將巨人再次趕回天上,跟公主過著幸福快樂的生活了。

PySide – Custom Label

自訂 QT Widget 的練習,網路上關於 PySide 的教學文不多,所以是找 C++ 範例文章來試著轉換為 PySide 看看。基本上還蠻簡單的,就是一些函式要去查查 QT 文件。

不囉唆,直接貼 code。

電影流水帳(2013/6/1~2013/6/14)

Maggie Grace
這位就是 Taken 裡飾演女兒的 Maggie Grace,很漂亮。

  • The Penguins of Madagascar (IMDB, Wikipedia)。這個不是電影,是在電視上演的卡通,有蠻多個故事的。我一直就覺得馬達加斯加電影裡的四隻企鵝很有戲,很高興製作公司把這四隻企鵝的故事做成卡通。
  • Parker (IMDB, Wikipedia),中譯:偷天派克。派克是個很厲害的竊賊,一開始跟準岳父的人合作去偷錢,等偷到錢以後,合夥的4個人問他要不要參加下一攤,派克不想,結果就被滅口丟在路邊了。派克運氣很好,被人救了,沒有死,就決定報仇。派克就開始打聽,得知了這4個人在佛羅里達,要偷更大筆的珠寶。在這個時候,Jennifer Lopez 飾演的瀕臨破產的房屋地產經紀人 Leslie 來跟他接洽,在逛了不少房子以後,Leslie 去調查了 Parker 的背景,判定他根本不想買房子,就直接跟他攤牌說,我可以幫你,只要到時候分我一些甜頭。Parker 在確定她的誠意以後,決定讓她幫忙。合夥的四人這時也知道 Parker 沒死來尋仇了,所以也找了殺手要幹掉 Parker。Parker 跟殺手打的難分難解,打到全身重傷才把殺手幹掉。重傷之餘,他跑去找 Leslie 幫忙打電話給他的未婚妻,然後他的未婚妻就來幫忙包紮。在這樣的重傷情況下,他仍然決議復仇,於是他埋伏在那四人的巢穴,Leslie 不放心,也跟了過去。就在那四人搶到珠寶,回到巢穴以後,這幾個人就展開一場惡鬥,Parker 最終把這四人幹掉,也救出被綁架的 Leslie。最後在分開前就講好,怎麼分贓,在一年以後,Leslie 收到鉅款,還清了她所有債務。
  • Taken 2 (IMDB, Wikipedia),中譯:即刻救援2。這集的劇情更簡單。前妻婚姻遇到困境,爸爸提議說,要不要來我這邊。於是爸爸去伊斯坦堡出差,前妻跟女兒也去了伊斯坦堡一起度假。第1集死去反派的父親矢志復仇,在掌握情資之後,就在伊斯坦堡埋伏。女兒故意讓爸爸跟媽媽一起出去,想製造機會讓他們復合,就在出去走走的時候被綁架了。這時候爸爸就發揮神一般的本領,細心聆聽跟計算自己所在的位置,等到了反派的巢穴,被關的時候,就趕緊打電話給女兒,指示女兒該怎麼做。之後女兒就依照指示躲避,甚至還去救爸爸。整個過程蠻驚險的,總之最後就帶女兒去了美國領事館,再單槍匹馬救出媽媽。我覺得裡面最神的一段是爸爸利用音速與車速再加上女兒丟手榴彈的爆炸去計算自己所在位置的橋段,這真的是太厲害了。

電影流水帳(2013/5/18~2013/5/31)

Amber Kuo's Signature ver.A

  • 大尾鱸鰻(IMDB, Wikipedia)。故事本身是一個大鎔爐,向很多故事取經。大尾是個攝影師帶著女兒到台北討生活,誤打誤撞變成了最大尾的流氓。經過十年以後,小奇大從國外回來討回地盤,但大尾不理他。之後大尾聽信乩童之言,找了跟自己很像的老賀來當替身,豈料老賀卻被小奇大作掉。老賀的兒子小賀一直想當個超級英雄,這邊就有點像是特攻聯盟的翻版,在救了大尾的女兒小芹以後,失去痛的感覺,住院。出院以後發現了自己的父親突然變成了大尾,得知自己父親往生,就決定要報仇。大尾為了奪回自己地盤,也決定幫助小賀。小芹原本也是為了報仇,但發現自己父親未死,為了要多一點時間跟父親相處,也一起加入報仇行列。最後就是報仇成功,小奇大被捕入獄,大尾後來放棄繼續當流氓,跟小賀與小芹回到家鄉過著恬淡的日子。整部片子還蠻歡樂的,用了很多台語諧音的笑話,也直接演出部分網路笑話,我個人覺得最好笑還是在最後的片尾花絮。
  • ヱヴァンゲリヲン新劇場版:Q (IMDB, Wikipedia),中譯:福音戰士新劇場版:Q。故事拉到十多年後,看起來當時的補完計畫並沒有成功。一開始是 2 號機與 8 號機要消滅使徒,在即將失敗的情況下,突然被在盒子裡的碇真嗣救了,而真嗣也脫離了該盒子。之後真嗣清醒過來,然後搞不清楚狀況自己所在的環境與時間點。經過十多年以後,世界分為 WILL-E 與 NERV 兩方,WILL-E 致力於阻撓 NERV 的補完計畫,美里跟律子是領導人物,而 NERV 的領導人仍舊是真嗣的父親-源堂,初號機此時已經被改裝為 WILL-E 戰艦 AAAヴンダー。真嗣在搞不清楚的情況下,突然聽到凌波零的聲音,接著就被零帶走到 NERV 方。真嗣其實一直還是搞不清楚狀況,在 NERV 這邊,父親一樣不理他,只有渚薰願意陪著他,理解他 (說真的,這邊真的很 BL),渚薰後來告訴了真嗣目前的狀況,並告訴他要改變現況,就得到 Lilith 那邊拿兩把矛。所以過了沒多久,他們就搭上雙核機與凌波零一起下到地底去拿矛。到了地底的時候,渚薰覺得怪怪的,就停止了行動,但是真嗣繼續行動,並排除了 WILL-E 方 2 號機與 8 號機的阻撓,拿到了矛,就在這個時候,發生了第四次衝擊。第四次衝擊在渚薰的自我毀滅與真嗣插入栓被強制拔出以後而解除,接下來就帶到明日香、真嗣與凌波零三人走在夕陽下的畫面而告終。這次的故事還蠻難懂的,我邊看的時候,還邊找文章來看,總算是能大致理解在講些什麼,看這部動畫真的是很辛苦。

PyCon 2013 Day 2 記錄

5/25 因為大公子要登記入學,二公子學校有活動的情況下,就直接放棄了,聽朋友說,第一天的晚宴跟 Lighting talk 很歡樂。

行前一直在想要怎麼過去南港,想了很久,決定還是走以前去南港的路,走寶橋路到木柵路,左轉往焚化爐的路,到崇德公墓,再走研究院路,經過中華科技大學,然後到胡適公園。快到胡適公園的時候就一直在看停車場跟側門,還真的被我看到。側門的對面就是胡適公園,再往前一點有停車場,機車停車場沒管制,所以我就大剌剌停進去,從側門步行進入。

在中研院區往人文會館的路上,我看到有人在拍鳥,我抬頭看看,想知道鳥是什麼樣子,看了一下,就繼續往前走。想不到突然頭皮一陣劇痛,有翅膀拍擊的聲音,是鳥!! 我摸摸頭,加快腳步,經過愛鳥攝影師時,他說,可能是因為我經過鳥巢,它感到危險,才攻擊我。唉,只能當作是好兆頭囉。繼續往前時,就看到有會眾往人文會館,就跟著走。

登記完,領到袋子跟東西,就往前天已經想好要去的 R1 會議室走,早上就都待在 R1。中研院的會議廳設備很不錯,有有線網路也有無線網路,網路都很暢通,位子旁邊也有插座。如果說真的要抱怨什麼的話,大概就是沒有飲料紙杯,下次如果要再去,我會記得帶杯子去的。

第1場的 Allen Downey 是 Thinking Python, Thinking Stats … 等書的作者,他分享他用 Python 以後的一些心得,主要是說他的思考模式慢慢 Python 化,像是統計等等的,可以當作虛擬碼來用,而且可以執行,很方便。在 R1 沒辦法播放投影片,工作人員有來通知說,無法播放投影片,有需要同時看投影片的人,可以移動到 R0 去。我後來就把筆電丟著,跑到 R0 去了。這次只要是這種3個會議室同步轉播的情況,都有一些問題。

第2場是「CPython 程式碼解析」,講者是高國棟。主要是 Python 源碼入門,一開始是介紹 C 如何做物件導向,然後帶到 Python 源碼裡的 PyObject、PyVarObject,PyObject 是一切物件的基礎,而 PyVarObject 則是表示該類型的物件是可變長度特性的物件。然後再帶到 PyInt、PyString、PyList … 等等,很可惜的是 PyList 沒講完,後面明顯還有十幾頁投影片。

第3場是「天元突破, 鑽開 python 的限制」,講者是魏澤人。這一場比較偏向於 Hacking,講者先講他對於 Hacking 的看法,然後就開始介紹他怎麼去 Hacking CheckIO 這個網站。介紹完接著介紹一個好玩的檔案,這個檔案可以被 Python, Perl, Ruby 執行,也可以當作 HTML/JavaScript, Jar, Gif 來用,講解他怎麼做出這個特殊的檔案。簡報在隔天,也就是今天釋出。

第4場是「駭客看 Django」,講者是之前受到好評的 Orange。大致上就是講 Djano 還蠻值得信賴的,歷年來的漏洞很少,比 Rails 還少。接著就是講要注意哪些地方,除了一般該注意的之外,就是要注意 3rd party module 的使用。這邊提到一個 XXE/XEE,跟 XML entity 相關的漏洞,要注意到 XML Library 有沒有把 Entity 濾掉或是做檢查。

中午找到之前認識的朋友,一起吃便當,下午決定都在 R2。

第5場是 David Crammer 的 Building to Scale ,從 IRC 聊天室裡得知之前這個議題有在別的 Conference 分享過的樣子。也托了有在別的 Conf 分享過的福,在投影機杯具的情況下,可以直接連到該網址去看簡報,簡報跟這個場次講的有些微不同。這個場次蠻多人因為投影機杯具而移動了。

第5場結束有蠻長的一段休息時間,到了快結束時,才從 IRC 知道樓上有點心可用。接著的 R2 很多人想聽,所以人數爆滿。

第6場是「Big data analysis in Python」,講者是賴弘哲。講者有點緊張,到後面漸入佳境。主要是分享他在撈資料、分析資料所用到的一些 module,從 scrapy 到儲存用的 mongo 到分詞、搜索到可視化等等的,都有帶到。

第7場是「The life of an Ubuntu Developer」,講者是王榮祥。主要是介紹 Ubuntu 的 LaunchPad 跟 Bazaar,坦白說,跟 Python 比較沒關係一點。這邊我學到一些以前不知道的指令,像是 gpg –fingerprint 可以顯示自己的 key、gpg –keyserver keyserver.ubuntu.com –send-keys xxxxxxxx 可以送 key 到 keyserver、dch 指令可以維護 changelog 檔案等等。

第8場是「當 Python 遇上魔術方塊」,講者是戴嘉駿。這個議題比我想像中還有意思,講者先介紹魔術方塊的解法,然後介紹他怎麼用 Python 去寫求解程序,並且視覺化解題過程,很有意思。他的源碼放在 bitbucket 上,有用到 SimpleCV 去拍照判別魔術方塊顏色,以及用 property() 這個函數去動態換掉物件的 getter/setter。

議程結束後就是抽獎了,抽獎的程式很有意思,是像小蜜蜂那樣的射擊程式,但卻是以聲音來控制。由於人數不到 1000,程式又是以打到3個號碼來決定,常常打到 9xx、8xx、6xx 等號碼,所以抽獎的過程相當漫長,蠻多人受不了而離去。下次還是應該要以有來參加的人的號碼當作母體來抽獎,這樣會比較精準,也比較不會浪費時間。

最後是大合照,天公不作美,開始下起雨來,就在飄著小雨的情況,完成合照。回家的時候,想了想,在天色不黑的情況下,還是不走南港那邊,走原路回家。如果天色黑了的話,我可能就會走南港、八德路、基隆路回去,晚上走公墓那兒,還是有點毛毛的。