修改 EXIF 的命令:exiftool

數位相機的日期設定錯了,所以拍出來的照片裡的日期也是錯誤的,就想說不知道有沒有工具可以修正。

找了一下,看到可以用 exiftool:

此外,也可以用 jhead ,視覺化介面可以用 picasa (雖然現在 Google 好像沒繼續開發了)。

修改的指令大致就是這樣子,這是要往後平移兩天的:exiftool “-ExifIFD:CreateDate+=0:0:2 00:00:0” your_photo.jpg

然後也要記得改 -ExifIFD:DateTimeOriginal 跟 -IFD0:ModifyDate 。

要查看目前的 EXIF 資訊,一樣也可以用 exiftool :exiftool -s -a -u -g1 your_photo.jpg

電影流水帳(2015/3/12~2015/3/29)

Jena MaloneJena Malone ,在星火燎原裡飾演 Johanna Mason ,飾演一個有點讓人討厭的角色,能演到讓人討厭,所以我覺得她演得挺好的,以後應該有不錯的發展。

  • KANO (IMDB, Wikipedia)。故事就是近藤教練操練嘉義農林的球員,然後最後進了甲子園打決賽的故事。大體上不錯,有些地方沒交待的很清楚,例如投手吳跟教練的情誼,然後就是嘉南大圳的支線有點突兀。
  • Fast and Furious (IMDB, Wikipedia),中譯:玩命關頭。轉到 HBO 時,剛好看到,之前也沒看過,就把它看完了。
    原來警察臥底是第一集就開始,Brian 奉命去 Dominic 的組織裡臥底,要查卡車行搶案。經過一番功夫 Brian 取得 Dominic 信任,也開始跟 Mia 交往。認識以後,他發現 Dominic 不是壞人,並且誤以為 Dominic 的對頭 Johnny Tran 是搶案主嫌,就回報上去。後來發現 Johnny Tran 不是主嫌,真正的主嫌真的是 Dominic。之後 Jesse 跟 Johnny Tran 比賽賽車,輸了車子,Dominic 為了 Jesse 的車子,決定再次行搶。這次行搶,差點賠上 Vince 性命,好在 Brian 及時趕到,救了 Vince,但他的身份也曝光。最後 Brian 賭上自己的前途,放 Dominic 走。
  • 万能鑑定士Q -モナ・リザの瞳- (IMDB, Wikipedia),中譯:萬能鑑定士Q 蒙娜麗莎之瞳。故事不錯,就一個很厲害的鑑定師Q因為某個機緣,被推薦去法國參加試驗,並且與美沙獲選,成為蒙娜麗莎畫作到日本來時的護衛。
    凜田莉子在法國接受了美沙的邀請一起接受特訓,這個特訓的內容相當奇怪,也造就了後來莉子的失常。記者悠斗從發現莉子到跟訪莉子到莉子的失常,一直都在莉子身邊,為了幫助莉子,悠斗調查了莉子的出身與接受特訓時的事情,結果發現特訓的奇妙之處。不過蒙娜麗莎這個畫作還是被偷走了,莉子靠悠斗的幫忙,重新找回自我並查明了美沙也是被騙,然後找回蒙娜麗莎,並逮捕了真正的犯人。
    說真的,這個特訓真的相當奇妙,會讓人感到奇怪,但你說不上來哪裡怪怪的。
  • The Hunger Games: Catching Fire (IMDB, Wikipedia),中譯:飢餓遊戲-星火燎原。大致就是照原作,說真的,電影跟看完小說相隔有段時間了,所以說不上來哪裡有遺漏什麼的,反而還是靠電影回想起不少片段。
    這集簡單說,就是各區開始有暴動,總統又不滿意上集冠軍的表現,就藉著每 25 年有特別比賽的名義,找回各區參加過的選手來抽籤,然後要這些人再去參加比賽。這次的比賽就別有用心了,原來各區參加過的選手或多或少都有跟第十三區聯絡,打算推翻目前的國家,讓各區恢復自由,於是就透過這次比賽,救出對革命有用的 Katniss 。
    這集除了有已逝的 Philip Seymour Hoffman 之外,也有許多知名演員參與,像雷神索爾弟弟 Liam HemsworthDonald Sutherland … 等等。但裏面比較吸引我的是 Jena Malone ,表現的很機車,可是卻是好人。

nodeschool.io expressworks

最近看到 nodeschool.io ,所以就照著說明來上 expressworks 的課。

首先就是要安裝:npm install -g expressworks workshopper-exercise

接著建立一個目錄,作為練習用,例如 expressworks_practice ,然後在該目錄下安裝 express jade :npm install express jade

最後就可以練習了,要練習,就是輸入 expressworks,就可以看到選單,選定項目後,會有題目的說明。

以下是你可用的指令:

  • 執行程式並自動驗證:expressworks run program.js
  • 執行:node program.js
  • 檢查:expressworks verify program.js
  • 顯示題目說明:expressworks print
  • 顯示選單:expressworks

但要注意的是,expressworks 似乎是用關鍵字來檢查程式,所以有可能用 node 執行時會有錯誤發生,但 expressworks 卻告訴你通過了的情況。

SugarORM

因為想偷懶,之前有看到 Sugar ORM,感覺上很簡單易用,就試試看了。大致上照網頁上的說明,就可以用了,這裡主要提一些比較不清楚的地方。

  1. 使用 Android Studio 的話,compile ‘com.github.satyan:sugar:1.3’ 這行是放在 app/build.gradle 裡的 dependencies {} 裡。
  2. 放在 AndroidManifest.xml 裡的 meta tag 很重要。DOMAIN_PACKAGE_NAME 要跟你 entity class 的 package name 對應到,否則,會沒辦法自動建立資料表格。VERSION 在第一次開發時,是隨便給,但在之後有變動 entity class 以後,要出更新版本時,這裡要記得累加。如果都還沒上架,那倒是沒關係,可先都不變,碰到問題時,先 uninstall 再 install app 就可以了。
  3. 在 app 啟動時,查看 Logcat ,可以看到 SugarORM 輸出的訊息,說建立了什麼資料表格,如果使用上有問題,不妨看看,會有所幫助。
  4. 不支援 1 對多、多對多的關係。1 對多,可以在類別裡建立欄位跟函式來處理:

    至於多對多,也是可以用傳統 RDB 的觀念來炮製。

官方網頁裡還有提到直接 Query 跟 Migration,這邊我就沒試了。

電影流水帳(2015/2/23~2015/3/11)

Helena Bonham Carter
莫名其妙的過了很多天啊…
Helena Bonham Carter ,眾所皆知,怪角色的不二人選,Alice in wonderland 裡的 Red Queen、Harry Potter 裡的 Bellatrix Lestrange … 都是她,只是我不知道她很早就演戲了 (1983),今年已經 48 (1966 年出生)。

  • Fight Club (IMDB, Wikipedia),中譯:鬥陣俱樂部。在前面的一個小時,原本我以為是類似小說發條橘子的故事,兩個傢伙使壞,然後有人良心發現,要阻止另外一個人,但是想不到後面半個小時的劇情急轉直下,轉變為驚悚、出人意料,讓我大呼過癮。這裡不說破,總之很精彩。最後的結局有點令人難以理解,難道 Tyler Durden 這樣就會消失嗎?
    看了維基百科,說這片在上映時,票房不好,然後才後續看漲,跟刺激 1995 一樣。
  • A Walk Among the Tombstones (IMDB, Wikipedia),中譯:鐵血神探。故事改編自勞倫斯·卜洛克的小說。
    偵探接受毒販的委託,尋找其妻子的兇手,查到後來有線索了,但因為一些原因,偵探不想查了。可是毒販朋友的女兒又被抓走,偵探基於救人第一的原則,勉為其難繼續幫忙,最後救出小蘿莉,擊斃了原本是 DEA 的兇手。
    我不知道導演想強調的是偵探跟黑人少年的合作、相知相惜,還是調查過程的撲朔迷離,總之,兩者交代的都不是很好,整體來說算是普普。有機會應該找小說來看看~
  • Night at the Museum: Secret of the Tomb (IMDB, Wikipedia),中譯:博物館驚魂夜3。這次是有魔力的板子似乎開始失去魔力,Larry 為了找出原因,前往倫敦大英博物館詢問 Ahkmenrah 的父母,然後就發生了不少趣事這樣。
    基本上故事延續前兩集的風格,除了原班人馬之外,也找來不少大牌,像 Hugh Jackman、Ben Kingsley …等等來插花。騎士 Lancelot 去 Camelot 戲院遇到 Hugh Jackman 那段我覺得很好笑,應該是裏面最好笑的地方了吧,其他部份就普普。故事的交代上也不是很流暢,導演似乎是想講該放手讓孩子去闖就該放手,但說真的,有些地方太刻意了。
    最讓人惋惜的應該就是 Robin Williams 了,去年 Robin 因為憂鬱症自殺了,這部電影算是他的最後代表作,片尾特別打出了致敬 Robin Williams 的字。對 Robin Williams ,我印象最深的電影就是 Jumanji (野蠻遊戲)了,娛樂性很高的電影,讓人印象深刻。如果不是 Robin Williams ,我大概會跳過驚魂夜 3 吧~

在 shell script 判別發行套件

一般來說,可以用 lsb_release -i ,但是如果沒安裝 lsb-release 的話,就不會有這個指令可以用;uname 只會提供架構、核心版本等資訊;/etc/issues 的話,每個發行套件對這個檔案的內容都不盡相同,難以用規則來解析。

這時候倒是可以利用 /etc/os-release ,我檢查了 Arch Linux、Ubuntu、Raspbian、Debian 幾個發行套件,發現都會有這個檔案。在檔案裡,就有不少資訊可供判別,至少都會有 ID 跟 NAME ,有些則會多了 ID_LIKE 。

  • ID 是標識,以 Ubuntu 為例,ID=ubuntu
  • NAME 是發行套件名稱,以 Ubuntu 為例,NAME=”Ubuntu”
  • ID_LIKE 是描述從哪個發行套件繁衍出來的,以 Ubuntu 為例,ID_LIKE=debian

透過 . /etc/os-release 或 source /etc/os-release ,就可以藉著使用 ID、NAME、ID_LIKE 這些變數來判別發行套件了。

參考自:command line – How to get Ubuntu distribution’s full code name? – Ask Ubuntu

電影流水帳(2015/2/18~2015/2/22)

Kate Upton Kate Upton ,她名字蠻好記的,又漂亮,名字又好記的女星真的不多 (是你沒花心思去記吧!!) ,之前有演過 3D 食人魚 2 ,她身材真的是很讚呢~ 不過很可惜,演出的都是花瓶角色,這次在 The other woman 裡的戲份也不多。

  • 藍色大門 (IMDB, Wikipedia)。張士豪、林月珍與孟克柔三人的故事。
    月珍喜歡士豪,但不敢說。克柔跟月珍是好朋友,喜歡月珍,卻因為性別認同的關係,不敢告白。某天,克柔幫月珍出頭跟士豪說,士豪因此對克柔留下深刻的印象,並且開始有了交流,兩人愈走愈近。但是,克柔始終對於自己的性向感到困惑,想找人親吻來驗證,卻造成老師跟士豪的誤會。後來跟士豪說清楚了,士豪也釋懷,體諒克柔。在此期間,月珍卻誤以為克柔跟士豪在一起,經過一段時間將誤會說開以後,再次要求克柔幫忙介紹,豈料士豪不感興趣,於是月珍對士豪的傾慕消失殆盡。
    最後就士豪跟克柔成為好朋友,並約定以後如果克柔喜歡男生了,要第一個找士豪。其實片尾透露出一絲絲克柔想法已經轉變的感覺,也許是我感覺錯吧。
  • The other woman (IMDB, Wikipedia),中譯:婦仇者聯盟。看過這部電影預告,預期是會蠻好看的,結果跟預期有落差。電影的節奏有點慢,有點叨絮,主要還是交代三個女人的情誼,而不在惡整對付負心漢上。
    大意是女律師 Carly 本來跟男主角 Mark 約好要去找爸爸,結果 Mark 接到電話,就取消了約會,趕回家去說要修理水管。Carly 聽爸爸建議,打扮的很性感,直接殺去 Mark 家裡,想給他驚喜,卻發現他早已經結婚,於是跟他太太 Kate 打過招呼後,就離開了。
    想不到隔天,Kate 卻找上門來,經過一番糾纏,兩人成為好友。然後又發現 Mark 還有另外一個女友 Amber,三人就這樣站到同一陣線上。接著就是三人策劃,反過來利用 Mark 資產都在 Kate 名下的事實,進行復仇。最後就是三人讓 Mark 身敗名裂,Kate 有了事業,Carly 跟 Kate 弟弟有了好姻緣,Amber 則是跟 Carly 爸爸打的火熱,這樣。
  • Taken 3 (IMDB, Wikipedia),中譯:即刻救援 3。這次 Bryan 被利用了。
    Lenore 的現任丈夫 Stuart 因為欠下債務,就幫太太保了險,並栽贓到 Bryan 頭上。Bryan 就逃掉,要自己找出兇手,接著就是查找跟警察鬥智的過程。結果查到後來,又被 Stuart 利用,幹掉他的債主。女兒 Kim 在看資料時,發現 Stuart 才是幕後黑手,要警告爸爸 Bryan 時,卻來不及了,被 Stuart 劫持。最後 Bryan 再次成功的開車攔下飛機,保護了 Kim 。
    還蠻不錯的,如果這是三部曲的話,算是劃下一個句點了,應該不會有 4 了吧?!
  • Forrest Gump (IMDB, Wikipedia),中譯:阿甘正傳。來來回回也看了好多次,這次終於完整的看完了。故事就是阿甘的故事這樣…有點廢話,之前跟同事閒聊時,才知道這也是小說改編的,小說裡的事蹟又更多,電影因為時間的關係,只節錄了幾個重要的。
    結局是,Gump 找到 Jenny,Jenny 跟他說了孩子的事情,並交代了為什麼找他的原因,一起生活了一陣子以後,就死了。Gump 就開始照顧孩子,送孩子上學,以羽毛飄落在 Gump 等公車時開始,以孩子的校車捲走羽毛為終。

電影流水帳(2015/2/10~2015/2/17)

Tina Fey Tina Fey ,This is where I leave you 裡的姊姊 Wendy,演過不少影集,相當能演的一個女演員。Wendy 以前與鄰居的 Horry 是一對,但是後來兩人出了車禍,因為 Horry 病的關係,分手了。但後來 Wendy 結婚以後,發現自己還是深愛著 Horry。

  • This is where I leave you (IMDB, Wikipedia),中譯:愛在頭七天。老爸死掉以後,媽媽假借父親的遺言,要孩子們都回來,在家裡守喪七天。在這七天裡,每個人半強迫地把自己的問題在家人前攤了出來,同時認知到家人是自己最後會挺自己的人,然後勇敢去面對。
    我覺得蠻具有正面意義的故事,而且裏面的演員有不少都是從影集出身的,為故事平添不少娛樂性,不會讓故事太平淡無味。
  • Prince of Persia: The Sands of Time (IMDB, Wikipedia),中譯:波斯王子-時之沙。從電玩改編的故事,Jake Gyllenhaal 難得一見的古裝動作片。
    Dastan 是國王收養的養子,跟國王的另外兩個兒子相處的還不錯。某次要進攻聖城的時候,Dastan 搶了戰功。進入城市以後,發現跟皇叔講的情況不太一樣,心裡有了疑問,但又不敢提出。
    這裡有一段漏掉了,我沒看到。反正後來,Dastan 跟聖城裡的公主帶著聖器,也就是匕首,試圖想警告皇叔跟哥哥們。豈料跟皇叔碰頭以後,才發現皇叔的陰謀,他想利用聖器的力量,回到過去,改寫歷史。也就是皇叔想要他們兩人手上的聖器,兩人一路被皇叔追殺,終於,聖器被奪走了。公主告訴 Dastan 聖器的力量,說如果用聖器釋放了時之沙,雖然可以改變過去,但釋放出太多的沙子,也會導致世界毀滅。Dastan 不放棄,為了世界不被毀滅,再次從皇叔手裡奪回聖器,並讓哥哥相信了他說的話。但哥哥也難逃皇叔的辣手,死了。皇叔成功再次奪回聖器,前往時之沙所在地,然後釋放出時之沙,千鈞一髮之際,Dastan 阻止了皇叔釋出過多的時之沙,時間只回到他們攻入聖城的時間,Dastan 這次勇敢的提出了心裡的質疑,阻止了皇叔的陰謀,改變了杯具的未來。
    看完電影,查飾演公主的演員時,才發現是演「女巫獵人」的葛蕾特,真的是沒能聯想到他們是同一人呢。
  • Gone girl (IMDB, Wikipedia),中譯:控制。簡單的說,故事就是夫妻不合,太太 Amy 又發現了丈夫 Nick 有外遇,超級不爽。作為作家的 Amy 事前做了許多功課,埋下許多線索,並在結婚紀念日那天離家,設下陷阱,讓 Nick 有殺害妻子的嫌疑。
    這之後,Nick 可以說是完全踏入妻子的陷阱裡,Nick 後來找了名律師幫忙,總算是起死回生,慢慢取得反敗為勝的契機。Amy 在躲藏的期間,並不是那麼的順利,住在旅館的時候,錢被鄰居搶走了,她不能報案,只能默默吞下。之後真的沒辦法了,才找以前的男友 Desi 幫忙。Amy 住在 Desi 別墅時,看到了訪問 Nick 的節目,這次的訪問成功的為 Nick 爭取到許多正面的形象。而她發現 Nick 似乎變成她喜愛的人了。
    Amy 再次設下陷阱,埋下許多證據,讓 Desi 成為綁架虐待犯,然後把他殺了,自己則是逃走,以自衛殺人躲過殺人罪嫌。在媒體的聚焦之下,兩人看似重歸舊好,私底下卻早已攤牌、相敬如冰,可是 Nick 發現逃不過 Amy 的手腕,只好選擇屈服,蠻讓人窒息與無奈的結局。
    會想看這部電影,一方面是網路好評,一方面則是因為這篇《控制》的原始文本:「偵探小說之后」失蹤記,文章提到推理女王克莉絲蒂也幹過同樣的事情,但結局並不一樣就是了。跟太太提到故事時,她倒是聯想到「Double Jeopardy」,這部電影是男方設陷阱,讓太太成了殺夫嫌疑人,自己領了保險金,帶著孩子遠走高飛。妻子進監獄以後,從獄友得知了一罪不二罰,就是反正已經殺了丈夫而受罰,所以假若丈夫真的沒死,那麼這次殺了他,就不會再進監獄。後來她順利假釋以後,就開始找孩子跟丈夫,跟飾演假釋官的 Tommy Lee Jones 開始你追我逃的追逐,最後就是找到了孩子這樣。說像,就是陷害枕邊人的部份,故事走向倒是不太相像。

搬家,從 Subverion 到 Git

Git – Git 与 Subversion 整理出來的步驟,Git 本身就有可以從 Subversion 簽出程式的功能:git-svn,應用 git-svn 就可以成功的搬家:

  1. 先到原 svn 專案下,執行 svn log ^/ –xml | grep -P “^<author” | sort -u | perl -pe ‘s/<author>(.*?)<\/author>/$1 = /’ > users.txt ,產生 users.txt,編輯裏面 svn user 跟 git user 的對照。
  2. 接著用 git-svn 重新簽出 svn repository: git svn clone your_svn_url -T trunk -b branches -t tags -s your_project -git -Ausers.txt –no-metadata
    在 Subversion 裡,是以目錄 trunk/branches/tags 來區分主枝、分枝跟標籤,-T, -b, -t 就是告訴 Git 這些事情。
    -Ausers.txt 就是告訴 Git-svn 要參考前個步驟所產生的 users.txt 去做使用者的對照。
    –no-metadata 是處理掉一些 git-svn 加上的附加訊息,這可以用 git log 比較得知,沒有加的話,git log 結果會有 git-svn-id: …. 的訊息。
  3. 如果有 tags 的話,會需要處理:git for-each-ref refs/remotes/tags | cut -d / -f 4- | grep -v @ | while read tagname; do git tag “$tagname” “tags/$tagname”; git branch -r -d “tags/$tagname”; done
  4. 如果有 branch 的話,也需要處理:git for-each-ref refs/remotes | cut -d / -f 3- | grep -v @ | while read branchname; do git branch “$branchname” “refs/remotes/$branchname”; git branch -r -d “$branchname”; done
  5. 接著加入 git remote repository :git remote add origin your_git_remote_repository ,再用 git push origin –all 推上去。
  6. 最後把 tags 也推上去: git push origin –tags