- Man of Steel (IMDB, Wikipedia),中譯:鋼鐵英雄。雖然以前看過超人,可是唯一的印象就是超人為了救 Lois 用超越光速的速度去改變地球的旋轉來時光倒流,以便救回 Lois。當然在看過史蒂芬.霍金的書以後,仔細想起來,這個舉動實在不太科學。
好吧,鋼鐵英雄其實是重拍的作品,交代了超人為什麼會來到地球、被地球人收養、認識 Lois 又為什麼會害怕氪星石頭。害怕氪星石頭這件事情,簡單說,應該算是一種過敏或不適應吧。電影最後跟薩德亂打時,有莫名的違和感,畢竟這種近乎無敵的打鬥,怎麼打都打不死還真的是很奇怪。
個人不是那麼喜歡超人,不過這部重拍的還不錯啦,可以看看。 - The Hobbit-The Desolation of Smaug (IMDB, Wikipedia),中譯:哈比人:荒谷惡龍。接續上集,繼續矮人們的旅程。大概的經過就是矮人跟哈比人遇到了另外一群只求自身安全的精靈,逃出去之後,又到了 Lake-town ,應驗了當地的預言,最後即時上了山,到山洞裡找到 Arkenstone,並看到 Smaug 巨龍。片子的結尾是巨龍見笑轉生氣,要去毀滅 Lake-town。
電影的支線是灰袍巫師與褐袍巫師發現了戒靈與半獸人再起,然後巫師受困這樣。
這集裡我覺得有三個比較精彩的人,第一個是女精靈 Tauriel,她違抗命令,與 Legolas 跟 Kili 的感情若有若無的,頗值得推敲,後面應該有不少戲份。看過一些電影花絮,說這個角色是新創出來的。第二個是 Bard,在許久以前他的祖先曾經持有能射穿龍皮膚的黑箭,並與 Smaug 大戰過。他一直相信自己的祖先有射穿過 Smaug ,但鎮民不相信。Bilbo 在近距離接觸 Smaug 時,確定 Smaug 有被黑箭射中,至於為什麼沒死,可能要下集才會知道了。會覺得不錯,是因為他撫養蠻多小孩,而且他扮演著算是先知的防禦者角色,一方面他想起預言,知道矮人的到來將會帶來 Lake-town 的滅亡,一方面他也持有最後的黑箭,期望能為祖先雪恥。第三個是 Thorin,派 Bilbo 進去山裡後的情緒轉折,很值得玩味。
大致來說,不錯看,有一就有二囉。
Grub symbol ‘grub_term_highlight_color’ not found
把筆電的 Ubuntu 13.10 升級到 14.04,想不到卻中了招,重開機時,出現 symbol ‘grub_term_highlight_color’ not found 的錯誤。
13.10 升級到 14.04 失敗,此問題在 launchpad 上已經有人回報 pic.twitter.com/YSqb1gXyiQ
— Yan-ren Tsai (@elleryq) May 3, 2014
網路上一找,果然 launchpad 上已經有人回報了,網路上也有不少人分享解法。大致上有兩類解法:
- 設法用 livecd/liveusb 重新 chroot 進去,然後用 grub-install 重新安裝 grub
- 用 livecd/liveusb 開機,安裝 boot-repair ,利用 boot-repair 來解。
這兩類解法對我都無效,後來是在 launchpad 的那篇裡,看到 downgrade grub ,就想說來試試看。主要的步驟,還是 boot-repair,所以先用 Ubuntu 14.04 的 liveusb 開機,安裝 boot-repair,執行 boot-repair 。boot-repair 的過程裡,會有一些提示,以及需要手動下指令的部份,第一次會是要移除 grub 以及相關的套件;到了第二次時,會要你重新安裝 grub,這邊的指令要改變一下,先裝指定版本的 grub,再執行 boot-repair 提供的指令:sudo apt-get install grub-common=2.00-19ubuntu2 grub-efi-amd64=2.00-19ubuntu2 grub-efi-amd64-bin=2.00-19ubuntu2 grub-efi-amd64-signed=1.22+2.00-19ubuntu2 grub2-common=2.00-19ubuntu2
接著就是讓 boot-repair 做完就可以了。
備註:
- 如果你不知道有哪些版本可以用,要找某 package 之前的版本,可以用 apt-cache show package | grep Version 來看。
- 用 LiveCD/LiveUSB 開進去以後,自行掛載並 chroot 的方法,就是先用 sudo parted -l 或 sudo fdisk -l 確認分割區,接著做掛載的動作,大致是這樣 (分割區請自行替換,不要照抄):
sudo mount /dev/sda5 /mnt sudo mount /dev/sda4 /mnt/boot sudo mount /dev/sda7 /mnt/home for i in /dev /dev/pts /sys /proc /run; do sudo mount $i /mnt$i; done sudo chroot /mnt hostname your_host export HOME=/root
電影流水帳(2014/4/24~2014/5/2)
這是飾演 Batman begins 裡 Rachel 的 Katie Holmes,也就是後來嫁給 Tom Cruise 又離婚的那個。
而這是 The Dark knight 裡的 Rachel,由 Maggie Gyllenhaal 飾演,她是 Jake Gyllenhaal 的姊姊喔~ 今天寫文時,才發現她也有點像星際大戰裡的莉亞公主。
兩個人看起來還蠻相似的。不知道為什麼,之前沒看 Nolan 拍的 Batman begins,明明我就很愛看啊…
這次其實又重看了一次 The Dark knight,印象深刻了許多,像是 Joker 的名言 「If you are good at something, never do it for free!」跟「You complete me.」接著要來找機會再看一次 The dark knight rises 。
- Batman Begins (IMDB, Wikipedia),中譯:蝙蝠俠-開戰時刻。2005 年的電影了,大家應該都耳熟能詳。
Bruce 小時候父母在他眼前死去,對此,他心裡一直有個陰影存在。求學回來以後,Bruce 原本打算在兇手聽證會後,要開槍報仇,想不到卻搶先被黑幫的人幹掉。Bruce 被 Rachel 刺激,跑去找黑幫,反而被羞辱。於是 Bruce 痛下決心,遠遁別處,並且做了許多以前他不可能做的事情,最後到了西藏,追隨忍者大師學習忍道,以克服心裡的陰影。
Bruce 通過了忍者大師的修業考試,但接下來的任務卻是要 Bruce 去摧毀 Gotham ,Bruce 不肯,進行反抗,整個山城都被摧毀。在打鬥之餘,Bruce 救出他的師傅,然後隻身回到 Gotham。在 Gotham ,他受到 Rachel 跟 Alfred 感召,決定以另外一種面貌挺身出來對抗罪惡,透過 Fox 的幫忙,蝙蝠俠誕生了。
追查黑幫毒品的過程裡,Bruce 發現了稻草人的毒氣,循線追查後,更發現了他的師傅沒死,還帶了人來與稻草人合作要毀滅 Gotham。於是就展開大戰,最後順利解決,並且打響 Batman 的知名度。 - RocknRolla (IMDB, Wikipedia),中譯:搖滾黑幫。這故事蠻有趣的,是講倫敦黑幫老大 Lenny 的故事。故事從 One Two 帶起,One Two 本來想炒地皮,去找 Lenny 幫忙,Lenny 看似幫忙,背地裡是在扯後腿。因為 Lenny 既想要這塊地皮,也想要 One Two 跟他借的錢與利息,於是 One Two 就糗了。這時俄國的一個富翁 Uri 也來找 Lenny 幫忙,還借畫給 Lenny,但是錢在運送時出了錯,被劫走。這筆錢是被 Uri 的會計師 Stella 給算計了,她知道消息後,找了 One Two 跟 Mumbles 來劫走這筆錢,所以 One Two 有錢還給 Lenny 了。Lenny 沒收到 Uri 的錢,而 Uri 借給 Lenny 的畫則被 Lenny 兒子 Johnny 拿走了,Lenny 不敢逼 Uri 太緊,只能摸摸鼻子寬限幾天。之後,Uri 再送一次錢,錢又再次消失,Uri 準備跟 Lenny 槓起來。Lenny 這一陣子則找了 Archy 去追他兒子,想把畫拿回來。最後,Lenny 被 Uri 打傷,而 Archy 則把劫走錢的 One Two 與 Handsome Bob 與 Johnny 都抓回來,這時候 One Two 亮出了內幕資料透露 Lenny 其實是洩漏消息的內賊,Lenny 出賣了所有人,讓所有人都坐過牢。Lenny 就被 Archy 清算掉了,Johnny 去戒了毒,戒完毒以後,Archy 來接他,Johnny 就立志要接班這樣。
這部片找來不少不錯的演員,有 Ocean Eleven 的感覺。裏面有一幕戲,我覺得特別有趣。Bob 即將入獄,One Two 幫他開了個 Party ,找了脫衣舞女郎來狂歡。在開車去 Party 的路上,One Two 很開心的講著等等的脫衣舞女很棒之類的,結果 Bob 說:「我只要你」,One Two 立馬停車,然後很激動的跟 Bob 說,我認識你五年,你這樣一個帥哥,竟然是同志,以下省略抱怨以及種種髒話。講完以後,One Two 稍微冷靜下來了,誠心跟 Bob 道歉。之後的事情,則是在電影的最後有交代,請務必把電影看到最後。
電影流水帳(2014/4/15~2014/4/23)
本來想貼 Kim Basinger 的,但在 flickr 裡沒找到合適的照片,所以後來就放棄,改用 Natalie Portman 的照片了。
- Grudge Match (IMDB, Wikipedia),中譯:進擊的大佬。這部電影是兩個老拳擊手 Razor 跟 Kid 的故事,在三十年前兩人較量,雙方各勝一場,但之後隨著 Razor 的隱退,雙方算是未分勝負,在彼此心中都留下遺憾。三十年後,當年主辦拳賽的人的兒子出面邀約,Razor 迫於生活壓力接受了,而 Kid 為了分出勝負也欣然同意。兩人因為這場拳賽,重新訓練自己,並且把當年的事情弄清楚。最後這場拳賽以 Razor 獲勝告終,但兩人心裡的誤會與種種也都釋然,算是完美的結局。
片尾有意外的花絮,非常有趣。就是主辦者因為拳賽辦的很成功,就再次找了 Mike Tyson 跟 Evander Holyfield 來談,這兩人也曾經對戰了兩次,並發生了有名的咬耳朵事件。三人談了許久,Evander 都不答應,最後主辦人說,我安排你在「醉後大丈夫 4」裡尬一角,Evander 才勉為其難考慮並答應。如果你看過「醉後大丈夫」的話,就會知道這是因為 Mike 在「醉後大丈夫」有尬一角的關係,這一幕還蠻逗趣的。
史特龍有演過有名的「洛基」系列電影,這我知道,但我就不知道勞勃迪尼洛有演過拳擊電影了,這演員的組合很有意思。再加上美魔女 – Kim Basinger 跟老牌演員 Alan Arkin,整部電影相當不錯,還蠻好看的。 - Ice Soldiers (IMDB, Wikipedia)。這部電影在臺灣好像沒上片的樣子,我是因為搞混了 Ice Soldiers 跟 Winter Soldiers 才會看這部電影。
1960 年左右,蘇聯人研發出三個基因改造過的士兵,就用飛機打算載到美國去進行破壞,但天候不佳,飛機墜落在北極圈裡 (大約是加拿大跟阿拉斯加附近) ,駐扎在那附近的美軍發現了他們,就把士兵弄回來,結果士兵展開屠殺,滅了基地裡的所有男人,並玷污了一個女人,只有她生還。
四十幾年後,又有勘探隊來到這基地,名義是要開採石油,實際上,是博士 Malraux 透過種種關係而來到這裡。對,Malraux 就是那個女人的兒子,為了調查那三個士兵而來到這裡。總之就是在大風雪裡進行搜尋,然後找到那三個被冰起來的士兵;這三個基因改造過的士兵身體強壯,再次復甦展開殺戮。Malraux 逃過一劫,循線去追那三個人。在路上遇到一個獵人,跟他一起去追並且把他們消滅,大概就這樣子。
電影的場景都在冰天雪地裡,風景壯闊,只是我一直在想,他們為什麼都沒戴太陽眼鏡,這樣不會雪盲嗎?我看電影看的都快瞎了。飾演 Malraux 的男主角就是演 Prison Break 的 Dominic Purcell ,現在每次看到他就會想起 Prison Break,雖然我沒把 Prison Break 給追完。 - Thor: The dark world (IMDB, Wikipedia),中譯:雷神索爾2-黑暗世界。我對雷神索爾的故事比較沒興趣,可能是因為故事缺乏心理層面的因素吧。為了 Marvel 埋的線索,還是看了。
這次故事是因為九星彙集的時空混亂,導致遠古與 Asgardian 爭戰的 Dark Elf 的秘密武器被釋放出來,而這個武器又不巧地被 Jane 帶走。於是 Dark Elf 的倖存者就去找 Jane,Jane 這時又不巧地被 Thor 帶到 Asgard,於是整個 Asgard 被 Dark Elf 入侵,陷入混亂,疼愛 Loki 的母后也掛了,後來 Dark Elf 不敵索爾逃走了。Thor 跟父王 Odin 的意見再次不合,Odin 想在 Asgard 決戰,但 Thor 卻想在境外決戰,就違抗命令,跟牢裡的 Loki 聯手,Thor、Jane、Loki 三人就靠著同伴的幫助,出了 Asgard。
事情果然沒有 Thor 想的簡單,Jane 身上的武器被 Dark Elf 吸走,Loki 在此也死去。Thor 不知道該怎麼回去,跟 Jane 走到一個山洞,Jane 發現這裡有些不屬於這裡的東西,就進了時空裂縫回到地球 (這也太巧了)。在知道 Dark Elf 要做什麼之後,Jane 跟 Dr. Eric 剛好也在研究九星的現象,知道怎麼阻止 Dark Elf,於是就在地球展開決戰,最後阻止了 Dark Elf。
我覺得比較奇怪的是那個武器 – Aether ,在 Jane 這樣搞一搞之後就可以阻止 Dark Elf?? 有點不太合理。然後,Darcy 還是一樣風趣,Loki 並沒有真的死掉,反而回到 Asgard 取代了 Odin,Odin 的生死則未明。最後的片尾透露出奇妙的線索,有人說,兩個戰士交給收藏家的就是 Aether 。
用 mutt 閱讀 Thunderbird 郵件
上網找了不少資料,終於試出來方法:
- 安裝 mutt
- 將目前目錄切換到 $HOME/.thunderbird/xxxx.default/Mail 下
- 輸入 mutt -R -f Inbox 即可。如果你在 Thunderbird 裡有多個資料夾,你會發現在目前的目錄下就有對應的檔案或資料夾,將 Inbox 替換為你要閱讀的資料夾名稱即可。用 -f 是指定檔案;用 -R 是表示以唯讀開啟,如果不用 -R,像是刪除或修改什麼的,mutt 是會真的去處理的。
有附件時,按 v 會讓你選擇檔案,這時就可以選 s 另存新檔,或是按 enter 以 mailcap 來顯示。用 mailcap 的話,可以在 $HOME/.mailcap 裡定義 content type 與其對應的處理。但是在命令列模式下,mailcap 能做的有限就是。
PDF 的話,可以用 pdftotext/pdftohtml 來處理,如果轉成 html 的話,就可以再用 w3m 來顯示。老話一句,在命令列下,像這種很需要圖形介面的,能做的真的有限。
電影流水帳(2014/4/2~2014/4/14)
她是寂寞拍賣師的女主角 Sylvia Hoeks,在片中飾演一個有人群恐懼症的女人,讓人憐愛,也因此主角 Virgil 才會上勾。
- The best offer / La migliore offerta (IMDB, Wikipedia),中譯:寂寞拍賣師。Virgil 是個知名的拍賣師,某天他接到了神祕女子 Claire 打來的電話,要請他去大宅裡估價。幾次電話下來,他被勾起了好奇心,於是前往一探究竟。幾次交手下來,他慢慢的愛上了 Claire。再加上機械人的組件與工匠 Robert 的推波助瀾,他成功的讓有人群恐懼症的 Claire 擺脫了恐懼,決定兩人廝守。換言之,他無可自拔地陷入了這場愛情騙局。同居以後,他去倫敦進行最後一次的拍賣,回來卻是人去樓空,他珍藏的畫不見了,心也跟著死了。我覺得最後的這段劇情雖然都沒有說話,但是很清楚的表達了 Virgil 心裡的那種空洞感、失落感與被欺騙的心痛。
男主角是由 Geoffry Rush 飾演的,跟之前 The book thief 的感覺又是截然不同。看完這部電影最大的感想就是要多陪陪獨居的長輩,免得他們不小心因為寂寞而受騙。寫著寫著,我不知怎麼地想起之前李安拍的飲食男女裡的一場戲,老朱最後也是宣佈結婚,豈料對象竟是錦榮,而非年紀相當的梁媽媽,當場讓梁媽媽氣的暈倒。 - Saving Mr. Banks (IMDB, Wikipedia),中譯:大夢想家。嚴格來說,這應該是 Mrs. Travers 的故事才是,Disney 只是配角。話說,Disney 想用 Mrs. Travers 筆下的 Mary Poppins 故事來拍電影,前前後後花了二十年時間,終於請到 Mrs. Travers 來到 Disney 公司討論劇本並希望能簽下合同。然而,Mrs. Travers 打的卻不是這個主意,她來到美國 Disney 公司,是想要讓他們碰軟釘子,自己知難而退。之後,Mrs. Travers 撕破臉打道回倫敦,Disney 鍥而不捨追到倫敦,終於以誠意說服了 Mrs. Travers 簽下合同,順利拍出 Mary Poppins 這部電影。
飾演主角 Mrs. Travers 的 Emma Thompson 演技非常的令人注目,讓其他演員相形失色,幸好飾演 Disney 的 Tom Hanks 能與之抗衡,要不然可能就是她唱獨角戲了。電影裡交錯著 Mrs. Travers 的童年,讓人能理解為什麼他會寫出 Mary Poppins 的故事以及最後在戲院痛哭的原因,劇情很圓滿。電影的最後有播出 Mrs. Travers 與劇本小組討論的錄音,那個口音乍聽之下會讓人以為是戲裡的 Emma Thompson 在講話,真的是佩服 Emma Thompson,不過或許這也是故意找有英國口音的 Emma Thompson 來演的原因吧。
小試 LXC
開始試試看 LXC,LXC 是輕量級的虛擬環境,沒有摹擬硬體層,硬體層是跟 Host 共用,最大的好處就是建一個 container 的成本遠比用 VirtualBox/VMWare 建 VM 來的低。
Ubuntu 12.04 上預裝好的 LXC 是 0.75 版,現在已經是 1.0 了,要使用最新的版本,可以用這個 PPA:ppa:ubuntu-lxc/stable 。在 0.75 時,只要安裝 lxc 即可;到了 1.0 版,拆成兩包:lxc 跟 lxc-templates ,所以安裝時要用 sudo apt-get install lxc lxc-templates 。
主要的操作,ls /usr/bin/lxc-* 就可以看到,這裡講一下比較入門的指令 (其實是我現在也只有用到這些):
- 建立 container :sudo lxc-create -n container_name ,加 -t 可以指定要使用的 template,template 可以想作是 distribution,前面提到的 lxc-templates 裡面就是放已經客製好的 template,也可以自己做。所以你可以建 archlinux 的 container 或是 opensuse 的 container 來練習。
- 刪除 container :sudo lxc-destroy -n container_name
- 啟動 container :sudo lxc-start -n container_name ,執行完,終端機會馬上被 container 接手,輸入預設的帳號跟密碼 ubuntu/ubuntu 就可以登入。如果不想被 container 接手,可以加上 -d 。
- 停止 container :sudo lxc-stop -n container_name
- 列出現有的 container: sudo lxc-ls -f
- 連上已經啟動的 container :sudo lxc-console -n container_name
- 連上已經啟動的 container 並執行指定指令:sudo lxc-attach -n container_name command
大致上就這樣,現在還有 docker ,其實它就根植在 LXC 上,主要是簡化自動化操作,大部分都用來測試,晚點再來看看怎麼用。
參考資料:
- https://linuxcontainers.org/
- linux虛擬環境LXC
- LXC, Docker, Security :這篇是討論 LXC 安全問題的,有交代一下 LXC 與 Docker 的關係,蠻值得一看。
- Ubuntu Server Guide – LXC
- Gentoo guide: http://wiki.gentoo.org/wiki/LXC
- Arch guide: https://wiki.archlinux.org/index.php/Linux_Containers
- 解釋原理的 http://www.slideshare.net/BodenRussell/realizing-linux-containerslxc
PHP Cannot create references to/from string offsets
之前在自家的 wordpress 上用了 muki-tag-cloud ,在翻 apache log 時,發現常會出現這錯誤:
PHP Fatal error: Cannot create references to/from string offsets nor overloaded objects in wp-content/plugins/muki-tag-cloud/widget.php on line 230
今天發狠找出原因了,首先還是要先瞭解 PHP 的 reference 是幹嘛的,我覺得這篇 PHP Reference 測試 不錯,裡面沒什麼解說,就是幾個範例與執行結果,看完大概可以了解到 PHP 的 reference 的行為是什麼。
接著就是試著寫小程式複製出錯誤。
可以複製出來之後,就知道問題在哪裡了 (好吧,我知道 log 的訊息其實很清楚,但我對 PHP 不熟,所以…),PHP 不允許建立字串中字元的參考。知道問題了,就可以解決了,後來就簡單加上判斷,如果發現 $widget[‘callback’] 是字串的話,就跳過,不建立 $widget[‘callback’][0] 的參考,如此一來就解決問題了。
順手發了 pull request 給作者,希望是會改,要不然每次更新這 plugin 時,都要再改一次。
awk 的 pipe
之前都很笨,用 awk 處理完,還是都先用 printf 輸出到檔案,再用 sh 去執行。今天終於去查了 awk script 裡是否有類似 system() 的用法,果然 awk manual 裡就有提到 system() ,不過該小節建議了更好的做法,就是直接用 | 把輸出的指令 pipe 到 sh 去。
作法大致是這樣:
awk '{printf("cp %s /media/usbdisk%s\n", $1, $1) | "/bin/sh" }' files-list.txt
loopback device
要掛載一個 image,就得利用到 loopback device,一般來說只要在 mount 時,指定 -o loop 跟 image 檔名就可以了,例如:sudo mount -o loop your_image /mnt
但是,我遇到 image 檔案無法掛載的情況。用 file 指令去看,發現到 image 檔裡有多個 partition 。
precise-desktop.img: x86 boot sector; partition 1: ID=0xc, active, starthead 1, startsector 32, 147424 sectors; partition 2: ID=0x83, starthead 45, startsector 147456, 4864000 sectors, code offset 0x0
後來想起多年前看過的 losetup,就看了一下 losetup 的使用說明,裏面提到 -o 這個參數,這是用來指定 offset 的,也就是說,可以把 image 檔案裡從指定 offset 開始的地方指派到某個 loopback device 去。於是根據 file 的資訊,算出 offset 是 147456*512 = 75497472,然後用 sudo losetup -o 75497472 /dev/loop0 precise-desktop.img 去指定,這樣 /dev/loop0 就對應到 precise-desktop.img 檔案裡的第二個 partition ,最後就可以用 sudo mount /dev/loop0 /mnt 掛載了。
反過來,也可以對一個檔案做 fdisk。這時要先預先用 dd 幫檔案配置空間,例如要配置一個 512M 的檔案:dd if=/dev/zero of=my.img bs=1M count=512 。接著一樣用 losetup 把 image 檔指派到 loopback device:sudo losetup /dev/loop1 my.img ,最後就可以用 fdisk 來分割了。
