- Paprika(IMDB, Wikipedia),中譯:盜夢偵探。我只能說超好看!一開始就是一個夢境,在夢裡是 Paprika 的 Chiba 是個曾經罹患憂鬱症的醫師,現在則是使用 DC mini 進入病人夢境以治療病人心理問題,可是 DC mini 卻失竊了。周遭的人都陸續被夢境混淆,於是他們就開始尋找偷走 DC mini 的人,最後卻發現是理事長。故事不會難以理解,看完以後,我真的非常佩服導演,完全善用了卡通來表達夢境與現實之間的穿梭,真的,很好看!
- 歲月神偷(IMDB, Wikipedia)。很簡單的故事,其實就是賣鞋的夫妻有兩個兒子,大兒子很優,樣樣強,小兒子調皮搗蛋。可是大兒子樣樣優的背後,卻得了血癌。已經是很窮苦的一家,在這樣的情況下,仍然盡力救治,最後當然是…走了。這電影在任達華跟吳君如的加持之下,是挺不錯看的,可是說真的,抽離了他們兩個,就會是很平淡的電影了。
- Kamome Diner(IMDB, Wikipedia),中譯:海鷗食堂。在芬蘭開食堂的サチエ,食堂生意非常冷清,這一天她遇到了一個曾經去日本留學的芬蘭年輕人跑進來問他,科學小飛俠(科學忍者隊)的主題曲怎麼唱,她一直想不起來。下班的路上,她遇到了不知道為什麼跑來芬蘭的ミドリ,問到了主題曲,就問她一起來住了。之後又遇到マサコ,發生了一些溫馨的事情。怎麼說呢?這是相當平淡,但是又有點溫馨的故事,我覺得是挺好看的。一開始的科學小飛俠主題曲真的是很歡樂,然後看完,會有想去芬蘭的衝動!
Android 的多國語言
一般抓下來 build,應該就會有多國語言了,如果沒有的話,就檢查 AndroidProduct.mk 裡的 PRODUCT_LOCALES。
從 T 公司拿到的這一包,裏面正好就只放了 en_US,所以 build 出來就只看到英文,其他國家都沒看到。在 PRODUCT_LOCALES 加上所需的區域代碼以後,重新 build,就可以看到了。
mtab有多重要?
android 裡面沒有提供 mkfs.ext3,雖然 android source code 裡面有e2fsprogs,但沒有 build 出來。
如果使用 android source code 裡提供的 1.40.x 版的e2fsprogs,cross compile 時,要用 LDFLAGS=-static ./configure –host=arm-none-linux-gnueabi –with-cc=arm-none-linux-gnueabi-gcc 才行,只用 –host 的話,是不行的。我試了好一陣子才試出來。
如果你自己下載 1.41.x版的e2fsprogs,編譯指令簡單多了,只要用 LDFLAGS=-static ./configure –host=arm-none-linux-gnueabi 就行了。
為什麼會提到 1.40.x 跟 1.41.x 呢?這是因為我拿 mkfs.ext3 到 android 環境下格式化分割區,在格式化以後卻發現無法 mount,mount 會出現 Invalid argument的錯誤。原本以為是版本的問題,可是試過1.40.8、1.40.9跟1.41.x以後,發現都不行。接著再試 busybox 提供的 mke2fs,也不行。
實在是沒辦法,只好用 dd 來做。不過 dd 速度真的是不快,而且為了要能把 image 放到 sd 卡上,我還用了 gzip 來壓縮。既要在 android 機器上解壓縮,又要做 dd,自然是慢到爆。 (指令是 gunzip -c xxx.img.gz | dd of=/dev/block/mmcblknpn)
最後的最後,終於想到要注意 mke2fs 關於 /etc/mtab 的警告訊息,它一直很盡責的告訴我,沒有 mtab,它沒辦法檢查分割區是否有 mount 起來。所以我在 /etc 加了一個空的 mtab,再去 mke2fs,完成以後再 mount,想不到就可以了耶~
追查 e2fsprogs 的原始碼,發現的確是有檢查 mtab,而且沒有 mtab 的時候,它不會去製作 journaling,換言之,也就是分割區的確格式化了,但是沒有 journaling 訊息,這也導致了無法 mount 的情況。
呼應主題,mtab有多重要呢? 拿 HTML 的 h1~h7 來比喻的話,mtab 大概有 h1 那麼重要!!!
wine的慘事
有用 wine 跑 win32 application 的人都知道,常常會遇到 .dll 缺東缺西的。這一天,我自作聰明地就想,反正裝的是雙系統,如果把 .wine/drive_c/windows 跟 .wine/drive_c/Program files 直接指向 windows 分割區裡的 windows 跟 Program files 資料夾的話,應該就萬無一失了吧~
所以立馬就先把 .wine/drive_c 下的 windows 跟 Program files 更名,做 symbolic link 連到 windows 分割區下的 windows 跟 Program files,接著就跑 excel 試試看。哈哈~我真是太聰明了,果然可以執行,但是有一些錯誤產生,後來想說還是照網路上的教學文件,用 winetricks 裝上必要的元件,然後直接裝 office 2003 好了。所以就把 symbolic link 移除掉,把之前更名的資料夾改回原名,進行安裝。這次就可以順利跑起來了,不過沒有詳細去試。
然後,就想說要回 windows 去收信,結果,悲劇就發生了,Windows 一直重開機、一直重開機…試著用安全模式開進去,不行,也是會重開機。我猜想,應該是某些檔案被覆蓋或被修改了,所以我重回到 Linux 下,把 .wine 更名,然後執行 wine,看 wine 到底在 .wine 下產生了什麼檔案。我根據這些產生的檔案,去另外一台完好的 windows 下把這些檔案複製回來,放到 windows 分割區對應的路徑下。哈,這次可以進安全模式了,可是如果以正常模式開機,還是會一直重開機。既然可以進安全模式了,那麼,系統還原就派上用場,不過,只有一次,因為在windows還活著的時候,我把保留給系統還原的空間砍到最少。不幸的是,還原的結果是….失敗。
啊!!!!!沒辦法了,重灌吧!!!鄉親啊,千萬不要學我這樣子啊!!!
omap36xx的vibrator
我是沒看原來 android 釋出的原始碼,不過按照 TI 釋出的這份code,vibrator 主要是對 /sys/class/timed_output/vibrator/enable 寫入時間,寫入以後,就會開始震動。時間的單位是 ms。
但是 kernel 的 code 就沒有這部份的 driver,唯一會在 /sys 建出這檔案的 driver 是 vib-omap-pwm.c ,可是,這檔案裏面只有操作硬體 timer ,跟震動一點關係都沒有。後來是從 2.6.35 那邊拿原本是 input driver 的 twl4030-vibra.c 來改。
改的時候遇到一點小 trouble,最初的想法是用 timer 來做,但是 kernel 裡的 timer 是用 soft interrupt 完成的,所以在 timer 被觸發的時候,如果用 i2c 去寫的話,會導致 kernel panic (因為i2c 也會利用 soft interrupt 去等),這時候就得利用 workqueue,在 timer 觸發的時候,不要第1時間用 i2c 去寫,而是丟到 workqueue 裡,kernel 會儘快安排時間去執行這部份。
於是,這樣就搞出 vibrator driver 了。
.desktop 的 icon
之前看了 terminator source code 裡的 .desktop 時,想說為什麼沒有寫 Icon 的完整路徑,於是就跳過這段,後來碰到問題,下去看了才知道。
根據 .desktop 的 specification,.desktop 裡的 Icon 不建議放完整路徑的檔名,只要放名稱就可以了,桌面環境會自動去 /usr/share/icons、/usr/share/pixmaps 下找。
所以如果你的程式要有 icon,那麼你應該在這些地方放你的 icon
- /usr/share/icons/hicolor/<size>/apps:
size: 16×16, 22×22, 24×24, 32×32, 48×48, scalable,除 scalable 是 svg 外,其他都是 png/jpg。 - /usr/share/pixmaps/ :這裡也是 png/jpg
照這樣放了以後,.desktop 裡就不需要放完整路徑的檔名,只要放名稱就可以了。
之前還笨笨的寫 sed 去替換說,可是用 sed 替換,在 launchpad build server 上,會遇到一些問題 (因為我是把 sed 這段寫在 setup.py 裡),不得已,回頭看 terminator 研究,才知道來龍去脈。
電影流水帳(2010/9/17~2010/9/30)
9月下半,看了兩部很對我胃口的片,好看!
- 第36個故事(IMDB)。這是朵兒跟薔兒兩姊妹的故事,年初的時候就一直在桂綸鎂的FB上看到介紹,當時並沒有注意到電影的主題是什麼,只是很好奇,怎麼一直在講富錦街的咖啡館。看了以後才知道,原來故事裡是姊姊朵兒開了咖啡館,而故事就發生在這個咖啡館,原本,咖啡館就是很單純的咖啡館,但是妹妹的無心帶來了變化,她讓這咖啡館有了一項特色,就是大家可以到這裡交換東西,但是必須以物易物。後來,張翰帶來了35塊從世界各地來的香皂,想要進行交換,但是香皂有什麼好交換的呢?張翰開始講出香皂背後的故事,而朵兒則把故事畫出來,想把這些香皂推銷出去。末了,在張翰說完第35個故事的時候,他反悔不想賣了,就把香皂跟朵兒的畫帶走。朵兒很失望,在旅行社的人來談合作事宜的時候,她提出了以她的股份來交換35張機票,出去各國旅行。就這樣,這就是第36個故事。這電影真的不錯看,媽媽跟兩姊妹的那個梗從頭穿插到尾,不會太悶。
- 千年女優(IMDB, Wikipedia)。從訪問女優開始,就開始不時穿插千代子的電影片斷以及她的回憶,她是在遇到他之後,才決定演電影的,因為演電影可以到中國東北去,她可以有機會遇到他,也為了讓他有機會找到她,她一直演出電影。這樣的故事表現很有意思,到最後末了,因為始終追尋不到她心目中的他,也擔心讓他看到她老去的模樣,她整個心灰意冷,就決定隱居,一直到他們來訪問,才跟他們見面。最後,要死的時候,她說,”或許我並不是在尋找他,而是在享受尋找他的過程吧~”這句話讓我印象很深刻,真的。