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 來分割了。

debian package 的相依性圖形

找了半天找不到適當的指令顯示套件的相依套件,想起之前無意找到的 apt-cache dotty,就想說用圖形來看套件的相依性還是最快的。

產生圖形的方法:

  • apt-cache:apt-cache 本身就有提供 dotty command 可以產生,用法是 apt-cache dotty your_package > out.dot
  • debtree:debtree 需要另外安裝,好處是有提供更多額外的參數來產生圖形,用法是 debtree your_package > out.dot

接著就可以利用 dot 指令來產生圖形了,dot 是 graphviz 套件提供的指令,可以根據 dot 語法來產生圖形,用法是 dot -T png -o out.png out.dot。用 apt-cache dotty 產生的 dot 語法,會讓 dot 產生圖形的速度變得非常慢;而 debtree 所產生出來的 dot 語法,就不會如此。我猜想是 debtree 有預先排除掉 libc6, libstdc++6 與 zlib1g 的關係吧。

電影流水帳(2014/3/20~2014/4/1)

pr006 Georgie Henley,飾演納尼亞傳奇裡的 Lucy,從第1集到現在,轉眼也過了5年,每次看這種主角是小女孩的系列電影,都會有「啊~長大了啊」的感嘆。

  • Iron Man 3 (IMDB, Wikipedia),中譯:鋼鐵人3。Tony 閒閒沒事幹,做了好多鋼鐵人。其實 Tony 在復仇者聯盟紐約一戰之後心裡很害怕,開始有恐慌症,這也是為什麼做鋼鐵人的原因。這次的對手是多年前被 Tony 放鴿子的 Aldrich 博士, Aldrich 在被確定放鴿子之後,本來想自殺了,後來想開了,發奮圖強,跟 Maya 一起發明了很威的東西。這次就是 Aldrich 的復仇,他利用電影特效以及一個演員創造了十環幫與神祕的首腦,威脅全世界與 Tony,背地裡,其實是他的武器在威脅世界。Maya 跑去找 Tony 要說出真相,這時 Tony 的房子被攻擊了,Tony 在救出 Pepper 跟 Maya 之後,展開反擊,之後人就不見了。Pepper 帶著 Maya 逃走,並且聽 Maya 說故事,然後 Aldrich 就跑出來把兩人帶走了。Tony 意外掉到某個小鎮,遇到了小男孩,兩人建立起奇妙的友情,Tony 並因此領悟到他其實不需要恐慌,有問題,解決就好了,反正工程師雙手萬能。透過萬能的電腦,Tony 也拼湊出 Aldrich 就是幕後主使者。Aldrich 也趁 Tony 不在的時候綁架了總統,並且收買了副總統,打算掌權。Pepper 被 Aldrich 改造,Tony 為了救他,與 Aldrich 展開決戰。大戰到最後,眼看 Tony 就要落敗,被改造過的 Pepper 大展神威,把 Aldrich 打趴。故事的最後,Pepper 得到醫療,變回原來的樣子;Tony 拿掉了身體裡的碎片,也不再恐慌;鋼鐵人三部曲算是告一個段落。
    這部電影的精彩刺激程度沒有前兩部來的好看,比較偏向於交代鋼鐵人的心病,我覺得這樣很好。超級英雄也是人,人的喜怒哀樂、心情的高低起伏,他們都有,如果完全強調他們強的那一面,那就不好看了。另外一個亮點是馬克 47 號,可以遙控組合真的很酷,但經常性的失靈也很逗趣,為電影增添不少樂趣。
  • The Chronicles of Narnia: The Voyage of the Dawn Treader (IMDB, Wikipedia),中譯:納尼亞傳奇-黎明行者號。哥哥跟姊姊跑去美國了,只剩下弟弟跟妹妹在倫敦,寄住在親戚家裡,跟表弟處的不是很愉快。某天,三人又快要吵起來的時候,牆上畫裡的海水突然動了起來,海上的船也隨著海浪搖搖擺擺,風浪越來越大、越來越大,海水流出了畫框,淹沒了整個房間。這三個人就隨著海水流到了納尼亞去,並且遇到了賈思潘王子。他們就跟著王子航行到了一個島,發現這裡有怪霧會把人帶走。接著就進行調查,在路上遇到一個巫師,好心的跟他們說明了是哪裡有問題,要把七把劍都收集到放到亞斯蘭桌上才能解決,然後就出發跟隨著晨星去冒險了。在航海的途中,表弟變成飛龍,這讓表弟非常沮喪與害怕,但經過老鼠劍士的鼓勵,他們繼續航行。最後終於要對付大魔王了,他們陷入了苦戰,飛龍表弟被打落,但卻意外恢復人形,把所有的劍都放到了亞斯蘭桌上,打敗了大魔王。打敗大魔王之後,他們一起見到了亞斯蘭並且談話,之後,老鼠劍士到了亞斯蘭的國度,賈斯潘認清了自己該做納尼亞的王,而三人則是回到倫敦,結束這場冒險。回到倫敦後,表弟對納尼亞完全改觀,常跟表哥表姊聊起納尼亞的事情。
    就蠻普通,維持跟前兩部一樣的風格。我沒看賈斯潘王子那一集,但看起來似乎沒什麼影響,有機會再來看好了。

電影流水帳(2014/3/4~2014/3/19)

Stars Geoffrey Rush and Sophie Nélisse of "The Book Thief" at the opening reception at the Mill Valley Film Festival在偷書賊裡飾演養父女的 Geoffry Rush 與 Sophie Nélisse,兩人的互動流露出真摯的情感,很難想像 Geoffry Rush 會是神鬼奇航裡那個亦正亦邪的 Barbossa 船長。

  • The book thief (IMDB, Wikipedia),中譯:偷書賊。小說改編的電影,改編的不錯,故事溫馨。但我覺得比較奇妙的是,作者刻意以死神來講述一些段落,讀起來會有刻意的感覺。電影倒是還好,只有在片頭跟片尾才有死神的旁白出來,但在小說裡就很多地方了。
    故事主要是講小女孩 Liesel 的故事,小女孩 Liesel 的母親很窮,只能把 Liesel 跟弟弟送給人收養,在路上,弟弟死去,只剩下 Liesel。到了收養家庭以後,養父很慈愛,養母嘴巴刻薄,鄰居 Rudy 也對她很好,接著就是講 Liesel 的生活點滴了。說她為了想認字,去偷取書來看,在深夜跟養父一起念。生活裡也有遇到不一樣的人,例如被迫害的猶太人 Max。就這樣直到被空襲轟炸為止,在這個時間點,死神到來,並且帶走了所有 Liesel 才剛喜歡上的人與事。Liesel 再次孤單踏上人生的旅程,直到後來又遇上 Max ,最後是死神的旁白以及隱喻的場景,說明 Liesel 到了美國,並且活的很好。
  • I, Frankenstein (IMDB, Wikipedia),中譯:科學怪人-屠魔大戰。我覺得這部電影真的是不怎麼樣,劇情普普通通。
    Adam 被 Frankenstein 製造出來以後,沒多久就跟 Frankenstein 反目,所以就殺了 Frankenstein 的太太,Frankenstein 就追著 Adam 想復仇,後來在極地被冷死。Adam 帶著屍體回來埋葬時,遇到了惡魔,還好 Gargoyle 在附近,救了 Adam。Gargoyle 跟 Adam 解說了惡魔與 Gargoyle 的情況,可是因為 Adam 有感覺到被歧視,選擇離開。Adam 孤身一人生活了兩百多年,直到現代,才決定把所有惡魔都幹掉。於是,惡魔、Gargoyle 跟 Adams 這三方開始進行角力,這次的角力有人類科學家加入,他們是受雇於惡魔,在進行讓死人復活的科學研究。總之,打的亂七八糟之後,最後就是 Adams 跟 Gargoyle 一起把惡魔以及他們的意圖都消滅掉這樣。
  • 僵屍 (IMDB, Wikipedia),英譯:Rigor Mortis。劇情很簡單的鬼片,導演拍的很到位。與其說是鬼片,我覺得導演想拍的是眷念與不捨,梅姨對丈夫的不捨,錢小豪對自己孩子的不捨,九叔對自己身體的眷念,阿鳳對房子的不捨…,這些串起了整部電影。
    錢小豪是過氣的武打明星,搬到這舊大樓去住,才剛搬進去,就遇到了雙生女鬼,差點就沒了命,幸好阿友出手幫忙。後來梅姨的老公冬叔失足跌落而死去,梅姨想冬叔繼續陪她,就請道士九叔幫忙,看是否能讓冬叔復活。豈料九叔居心叵測,幫忙養出僵屍,在連續的死人之後,阿友跟小豪就只能聯手解決僵屍。

MMS 與 SMIL 小記

SMIL 是 MMS 在使用的格式,其實就是類似 HTML/XML 的文字檔案,還蠻容易了解的,比較詳細的介紹可以參考這篇文章:SMIL Guide

  • 在 Android 裡,可以把下列的檔案複製出來,然後用 sqlite3 打開,輸入 select * from part; 就可以看到
    • /data/data/com.android.providers.telephony/databases/mmssms.db
    • /data/data/com.android.providers.telephony/databases/mmssms.db-journal
  • 基本上只要在簡訊裡附加圖片並輸入文字,也就是 MMS ,就可能會使用到 SMIL 。
  • SMIL 的 layout 放在 head tag 裡,也就是說,假若有多個 slide,都會是同一個 layout,因為一份 SMIL 文件只會有一個 head tag。而 body tag 裡的 par tag 代表一張 slide,這裡可以利用 dur attribute 指定播放的時間。slide 可能不只一張,所以可以有多個 par tag。
  • 電信營運商 (Carrier)  的不同有可能會導致送出的 SMIL 與收到的 SMIL 不一樣,目前我有遇到的情況是,營運商是遠傳,送出文字在上、圖片在下的 Slide 以後,收到會是圖片在上、文字在下的 Slide;中華電信的話,就沒問題。
  • 傳送 3gp 的影片,傳送以後,收到時會是一個 GIF 圖片以及一個 AMR 音效檔,Android 並沒有做轉換的工作,轉換是在運營商那邊完成的。

AngularJS 起手式

我是參考這篇教學:Learn to Build Modern Web Apps with the AngularJS Tutorial

教學裡使用的是 yeoman ,這真的有方便。首先要安裝 nodejs 跟 npm,在 Ubuntu 13.10 裡,就用 sudo apt-get install nodejs npm 就行了,如果是 Ubuntu 12.04,得另外裝 chris lea 的 PPA,再 update/install。教學裡的第一步,就是安裝 yeoman,用 sudo npm install -g yo 來安裝,可是我不太喜歡直接裝到 /usr 系統資料夾去,所以找了一下,看能不能像 Python 的 pip install xxx –user 一樣裝到使用者目錄下。

搜尋的結果是可以的,但需要做些設定。設定值大致如下:

這樣就可以不用 sudo,然後用 npm install yo 就可以把相關模組都裝到使用者目錄下了,而且相關的指令也都可以用。

參考資料:

電影流水帳(2014/2/19~2014/3/3)

完全找不到想放的照片,只好放電影海報囉。

  • 私人訂制 (IMDB, Wikipedia)。電影裡有三個故事,還蠻好笑的。
    片頭一開始的年代竟然是年初,一個軍閥抓住一個女孩子,但女孩子寧死不屈,即使有人求情,她都不肯屈服。到後來有人劫大牢,跟她說關卡都打通了,可以救走他,一直到大門,幾乎關關通過,每次小白都說是自己人,結果最後,她說我不走了,既然都是自己人,那幹麼還要逃走。
    說穿了,私人訂製是一個公司,一個可以配合你演出非現實劇情的公司;想當領導,可以;想當有錢人,可以;所以他們可以配合你演戲。甚至你的錢不夠,他們都可以幫忙跟其他人的戲湊到一起,讓你儘可能過足癮。第一段是一個領導的司機想試著當領導看看,看為什麼他之前跟過的領導會頂不住誘惑而被抓去關,他是衝過不少誘惑關卡,但後來還是過不了色關。第二段是個低俗的導演,想要不俗,後來是真的不俗了,結果卻得了高雅過敏症,最後仍是到酒店解決過敏問題。第三段比較溫馨,是讓小馬救命恩人當有錢人,這一天可真的是風光極了,到了晚上,還讓北京城關了燈,說有關燈的地方就是你的物業。
    片子的最後用了一個笑話當收尾,有記者訪問葛優飾演的楊老師,問說你有一千萬捐不捐?捐。有一億捐不捐?捐。到了問有一輛車,你捐不捐的時候,楊老師說不捐了。原因為什麼呢?因為楊老師真的有輛車。
  • Small timers (IMDB),中譯:定時器。真難得,可以找到一個電影是維基百科裡沒有的。小品的喜劇電影,我個人覺得不是那麼好笑,普普通通。不過 IMDB 給 7.5 分是怎麼回事??
    劇情敘述三個笨賊因為失業與金錢的壓力,決定去搶銀行。原本預定是使用麻醉氣體將所有人都麻醉,然後把錢奪走,想不到卻拿到笑氣,於是就在銀行裡的人都在笑的時候,順利把錢拿走了,在這同時,其中一個人也無意拿走了一個公事包,裏面裝的是鑲滿鑽石的情趣玩具。拿到錢以後,他們很開心,結果一打開,卻被防盜漆噴的滿身都是,錢沒辦法用了。另外一個人打開公事包,發現了好東西,於是三人打電話給銀行老闆,要把這情趣玩具拿來換現金。老闆其實就是黑道,開銀行算是副業而已。老闆跟他們三人虛與委蛇,私底下派出殺手。三人講完電話,想說可以拿到現金了,很開心,決定先把漆洗掉。去洗掉漆的時候,殺手來到家中,把情趣玩具取走,並且也綁走三人其中一人的太太。三人回來發現東西沒了,人被綁走,老闆又打電話來,要他們快交出情趣玩具。三人沒辦法,決定潛入老闆家中去救人。最後在老闆家中以皆大歡喜的方式收尾,老闆被指證逮捕,三人也因此免去搶銀行的罪刑。

systemd

最近 Debian 宣佈以後改用 systemd,Canonical 也隨之跟進,所以之後衍生的 distribution 應該也都會跟進。Arch 是已經改用 systemd 了,CentOS/RHEL 應該是到 7 以後才會可能會用 systemd。

看到這兒就想到目前在用的 Ubuntu 12.04 應該也可以改用 systemd 吧~目前先找到這兩篇:

基本上都是要特定 ppa (上面這兩篇提到的 ppa 還都不同,到時候再來看那邊比較新就用哪個),安裝 systemd 以後,然後改 grub ,大概就這樣。可能遇到的問題是 /etc/mtab 問題以及一些服務可能會無法啟動。從 Ubuntu Wiki 對 systemd 的說明裡 看起來缺的東西不少,我想最好是先拿 VM 的機器來試驗,不要拿工作機來試驗,免得把自己搞得焦頭爛額。

電影流水帳(2014/2/14~2014/2/18)

Nylon_Guys_TV- Dianna_Agron-005 Dianna Agron ,飾演 The family 裡的女兒,為愛本來要尋死,後來看到來追殺的人,為了家人,就放棄自殺,回去幫忙了。

  • Frozen (IMDB, Wikipedia),中譯:冰雪奇緣。很棒的動畫片,有十幾年前看迪士尼動畫片的感覺,有劇情,裏面的歌也好聽。
    Elsa 有與生俱來的魔力,跟妹妹 Anna 感情很好,但是在某次玩耍時,出了意外。Elsa 的魔法不小心打到 Anna,後來雖然被矮人救回來,可是 Anna 這部份的記憶被抹去,Elsa 則是被父母告誡,禁止繼續使用魔法,也不能跟 Anna 一起玩。父母有次出外航海的時候,船沈了,雙雙身亡,只留下 Elsa 與 Anna 。時間一天天過去,兩人都長大了,Elsa 繼位為女王,Anna 則是在女王繼位那天認識了一個王子 Hans,並且一見鍾情。兩人跟 Elsa 說要結婚,Elsa 為了保護妹妹,當然是不允許妹妹就這樣跟一個只認識一天的男人結婚。兩人吵起來,Elsa 的魔法隨著 Elsa 的情緒而失控,整個城市變得冰天雪地。Elsa 很害怕繼續傷害到妹妹跟大家,就逃走了。Anna 跟著追去,想要把話說清楚。Elsa 在離開家之後,整個視界開闊了,不再害怕自己的魔法,並且開始試著運用自己的魔法,就在這時唱出 Let it go 這首歌。Anna 在追趕 Elsa 的路上,遇到 Kristoff ,請求他幫忙,展開冒險。經過一番跋涉,Anna 與 Kristoff 滋生出愛苗,也見到了 Elsa,兩人的談話並不順利,Anna 再次意外地被 Elsa 的魔法打到,並被 Elsa 趕走。Hans 發現 Anna 的馬跑回來,就帶著人馬找到 Elsa,經過一番打鬥,成功的將 Elsa 帶回,並關在城堡的大牢裡。Anna 被 Elsa 魔法打到之後,全身冰冷,Kristoff 帶 Anna 去找矮人,想請矮人解救 Anna ,矮人表示沒辦法了,等心冷到底就沒救了,只能以真愛來解決問題。Kristoff 趕緊帶 Anna 回城堡,要讓 Hans 以真愛之吻救 Anna。回到城堡以後,Kristoff 黯然離去,Anna 卻發現了驚人的真相。原來 Hans 是假裝愛上 Anna 的,為的就是要以結婚之名來奪取王國。Elsa 以她的魔法逃出城堡大牢,在漫天風雪裡漫無目的的走著;而 Anna 也透過雪人 Olaf 順利逃出,想要找 Kristoff 求取真愛之吻。Anna 在護城河的冰面上,看到了回頭來找她的 Kristoff,也看到了即將被傾倒的船壓到的 Elsa,這時候 Anna 做出了選擇,她選擇提醒姊姊 Elsa,讓 Elsa 免於傷害。就在這時 Anna 的心冷到了底,全身被冰凍了起來。Kristoff, Elsa 跟 Olaf 看到變成冰塊的 Anna 都非常的悲傷,但是 Disney 的卡通不會讓主角 Anna 就這樣死去,就在此時,Anna 因為她對姊姊的愛,解除了姊姊的冰凍魔法,也讓姊姊了解了「水能載舟亦能覆舟」的道理,於是 Elsa 讓魔法再次升級,解凍了整個王國,以歡樂的喜劇收場。
  • The family (IMDB, Wikipedia),中譯:黑幫追殺令。黑色喜劇,蠻有趣的,但是說很好笑,其實也還好,劇情倒是不會讓人枯燥。一家人的互動倒是很溫馨,像是媽媽會提醒女兒記得帶保險套、嘮叨說不要再講髒話、媽媽希望一家人平平安安、兒子會抱怨為什麼只有老爸可以講髒話…等等的,看的出來家人都會相互關照,兒子跟女兒之後看到殺手來了,也會回家去幫忙。
    故事大概是這樣,就一個紐約黑幫因為出面指控而加入了証人保護計劃,FBI 這一次把他一家人都送到法國諾曼第去,之前已經搬過好幾次家了,每次都是因為他們這一家搞出很多事而被迫搬家。在搬過去以後,這一家很快的融入當地,兒子迅速的在學校發展其勢力;女兒算是低調的了,只是談了師生戀;太太認識了教堂的教父,準備要辦歡迎會;父親意外當了作家,低調的在家裡。之後,女兒為老師獻出第一次,卻被老師拒絕繼續交往,想尋死;父親去參加電影分享會,播放的「教父」勾起黑幫日子的回憶,把自己以前的日子都大嘴巴的講出來;兒子發展黑幫勢力搞得太誇張,再加上投稿意外登上報紙,透露了行蹤。美國紐約的黑幫循蹤而來,展開殺戮。一家人團結起來,再加上 FBI 的幫忙,順利渡過難關,只是又得搬家了。