Compile your go program inside the Docker container

golang 有官方製作的 container:https://hub.docker.com/_/golang/

用 docker pull golang 拉下來以後,切換到 go 專案目錄下 (假定是 $HOME/project),執行:

docker run --rm -v "$PWD":/usr/src/myapp -e GOBIN=/usr/src/myapp -w /usr/src/myapp golang:1.6 bash -c make

就可以在專案目錄下的 bin 裡找到 binary 了。

用 docker container 來 build 的好處,除了可以指定版本之外,也可以 cross compile ,另外就是可以省下處理佈署 golang 開發環境的心思。

電影流水帳(2016/7/8~2016/8/7)

Kate Mara
Kate Mara ,在 The Martian 飾演火星任務裡的一個組員,是一名駭客。

一晃眼一個月就過去了,結果這個月幾乎都在看影集… House M.D.

  • I Am Legend (IMDB, Wikipedia),台譯:我是傳奇。電影是一個孤獨與僵屍的故事,在故事的前半段除了狗、模特兒與僵屍之外,只剩下孤寂。
    Robert 在城市裡與他的狗一同狩獵,就在快要逮到獵物時,手錶的鬧鐘響起,Robert 看看天邊的夕陽,立即收拾手邊的東西,帶著狗兒開車回到家中。Robert 要躲的是夜晚,夜晚有喪屍出沒。接著的生活片段可以看出他是個科學家,在研究著能否讓老鼠恢復正常,他嚴格遵守著時間活動,也確保自己能有足夠的體力可以繼續這樣的生活。交錯的片段,帶出了為什麼會這樣的原因。有科學家發明了可以治癒癌症的病毒,但這個病毒後來卻導致人類變成喪屍,喪屍導致整個城市淪陷;同時也帶出了 Robert 思念的家人與過往。
    某天,Robert 帶回一個女的喪屍做實驗,而喪屍似乎也有感情似的,在隔天,以同樣的手法設下陷阱,Robert 中了陷阱,陷入昏迷。時間到了傍晚,手錶的鬧鐘再次響起,他醒來,趕緊設法逃離陷阱,不過狗狗卻因此被病毒感染,後來死了。Robert 很難過,唯一一個可以陪著他、能稍微了解他的狗狗死了,他崩潰了。他跑去跟喪屍們大幹一場,在危急的時候,一對母子聽到 Robert 之前的廣播,來到這裡找他,卻順便救了他。雖然一行人順利的逃回 Robert 住處,但卻因此讓喪屍追蹤到 Robert 住處,展開一場大戰以後,Robert 發現他製作的血清療癒了那個女僵屍,於是抽取了女僵屍的血液交給那對母子,犧牲自己保護她們逃出去。最終,母子逃到安全的地方去,並且以血液製作出血清救了其他喪屍。
    這部電影上映後沒多久,公佈了第二個結局,我一直都沒看,直到這次看完去查,才知道第二個結局是 Robert 將女性變種人還給變種人首領,並且成功的存活下來。
  • Finding Dory (IMDB, Wikipedia),台譯:海底總動員2-多莉去哪兒。海底總動員故事的兩年後,Dory 意外想起該回家一趟了,Nemo 跟 Marlin 義不容辭地陪她展開這趟旅程。經過一番冒險,當然最後找到了 Dory 的父母,並且找到了老友。
    看這部電影的時候,我流了好幾次淚,特別感人的地方主要是 Dory 的父母,Dory 父母不管孩子的短期失憶症怎麼嚴重,他們還是努力的去教導孩子該怎麼從一些線索去找到回家的路,最終 Dory 也靠著這個找到了他們,回到了家。這鼓勵了我,讓我知道自己要努力的教導孩子。
    補充彩蛋:幕迷影評 | 幕前幕後兩三事:彩蛋集錦之《海底總動員2:多莉去哪兒》
  • 美人魚 (IMDB, Wikipedia)。故事雖然老套,不過細細去看,還是挺溫馨平實的。
    富商劉軒買下了一個港灣,準備要填海開發,所以在港灣外圍加上了強力的音波機器,要把魚兒都趕走。住在那個海灣的人魚們,因為這個音波機器被困在港灣裡,為了脫困,他們決定刺殺這個富商。人魚們派出的誘餌是珊珊,珊珊和劉軒接觸以後,心軟了,而劉軒接觸珊珊以後,心境也發生了奇妙的變化。
    劉軒的生意伙伴若蘭,是個美麗的女人,她原本以為可以憑自己的美色與本事拿下劉軒,哪知劉軒不吃這套,反而倒向珊珊這個不怎麼樣的女人。於是她起了妒心,在查出珊珊與人魚族群以後,派出大批人馬進行獵殺。劉軒發現自己愛上珊珊,以及自己所犯下的錯誤,決意幫助人魚族群。經過一番打鬥以後,終於讓人魚們重返大海,可是自己也受了重傷。
    匆匆數年,劉軒傷癒,放下了房地產事業,將自己的財產捐給海洋研究。某天,有個海洋研究所的學生來訪問,問他是不是在保護人魚,劉軒笑而不答。但訪談間,端出飲料的珊珊卻透露出,劉軒其實已經娶了珊珊,並且過著幸福的生活。
  • The Martian (IMDB, Wikipedia),台譯:絕地救援。電影把故事該交代的都交代了,不過個人覺得小說比較好看,可能是書裡保留的想像空間比較多吧~
    NASA 派了一個小組去火星出任務,可是遇到了沙塵暴,隊長 Melissa 決定撤退,但撤退的時候,Mark 被石頭擊中而暈倒,Melissa 考量整體,毅然決然捨棄 Mark 。Mark 運氣非常的好,被石頭擊中的面罩恰巧地被堵住而沒流失空氣,Mark 醒了之後,趕緊回到小屋去進行更換面罩與療傷。進行簡單的包紮與處理以後,他試著聯絡 NASA ,但無線電設備損壞了,不能進行通訊。於是 Mark 只能就現有的資源進行求生大作戰,他開始運用自己的植物學與 Maker 的知識來種馬鈴薯,開始看地圖找之前 NASA 丟下來的補給品。地球方面,本來已經以為 Mark 已經掛了的,經過一段時間以後,NASA 有人發現了火星的異狀,確定 Mark 仍然活著。NASA 開始展開行動,試著聯絡 Mark ,給予協助,同時也開始召開救援小組思考如何去火星把人救回來。
    經過雙方的努力之後,Mark 發生意外,導致存糧不足。針對這點,NASA 有人想出了可以在 Mark 存糧足夠的時間內回到火星的計劃,火星小組也決定採用這個較為冒險的計劃回頭去火星救援,也就是利用地球的引力加速回到火星救人。Mark 這邊則是照計劃進行長途旅行到預定的位置去改造登陸小艇,以便升空搭上太空船回去。
    最終,運氣很好的,太空船回到火星,Mark 照著計劃回到了太空船,然後回到地球。

docker-hackmd relative url

hackmd 是一個很棒的協作平台,你可以用 markdown 來撰寫文件,graphviz/flowchart 等語法來畫圖…很厲害。

安裝上也蠻簡單的,已經有人做好 Dockerfile :hackmdio/docker-hackmd: docker hackmd image

可是這個 docker image 有個問題,就是沒辦法以 relative url 存在,他預設是在根目錄下運作,有個日本人弄出來了:HackMDをnginxで / 以外のlocationで起動する。 – Qiita ,我參考他的設定,做了調整,加入 nginx 設定與 upstart 設定,放在 elleryq/docker-hackmd: docker hackmd image

大致調整以下東西:

  1. nginx 設定:加入 rewrite,將路徑改寫為 /hackmd,這可以參考 nginx.conf.example
  2. common.js:因為 hackmd 用到 websocket ,common.js 的 urlpath 也要跟著調整,否則會無法運作,裏面的 urlpath 需要修改為 /hackmd。這部份我寫在 hackmd/Dockerfile 裡,在用 git clone 取得 hackmd 原始碼以後,用 sed 去做字串的替換。
  3. upstart:upstart.hackmd.conf 裡是用 docker-compose 啟動 hackmd image ,這邊我預期 docker-compose.yml 是放在 /srv/docker-hackmd ,如果你預期不放在這兒,那麼這邊也要跟著調整。

應該大概就這些,如果有沒提到的,就看原始碼吧~

phpvirtualbox

無意在 /etc/init.d 下看到 vboxweb-service 這個服務,好奇的把名字丟到 google 去找,才知道是 virtualbox 要提供給 phpvirtualbox 使用的服務。

安裝方法不難,不過我還是搞了好一陣子 (大約4個小時吧),以下是我所參考的文件。

我遇到的問題:

  1. nginx + php5-fpm 只為特定 location 啟用 PHP :這部份卡了我好一陣子,後來是找到這篇:php – nginx projects in subfolders,參考裏面的作法去設定。大致是這樣:
    location /wiki {
        root /var/www/wiki/public;
    }
    
    location ~ /wiki/.+\.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_param  SCRIPT_FILENAME /var/www/wiki/public$fastcgi_script_name;
    }
    
  2. 無法啟動 vboxweb-service,出現 “vboxwebsrv: error: failed to initialize COM”:原本以為是沒加 dialout 群組的關係,後來根據某篇討論(網址不小心被我丟了)仔細推敲以後,發現是因為 VBOXWEB_USER 所指定的使用者沒有 HOME 資料夾,幫這個使用者建立 HOME 以後,就可以順利啟動 vboxweb-service 了。
  3. 無法登入 phpvirtualbox:這是我自己搞錯了,原本以為 config.php 裡指定的 username 跟 password 就是用來登入 phpvirtualbox 的帳號跟密碼,但後來才知道這組帳密是讓 phpvirtualbox 與 vboxweb-service 溝通用的,預設的 phpvirtualbox 帳密是 admin/admin。要修改的話,登入以後再變更就可以。
  4. RDP(Remote display) 不能用:這要先查到 virtualbox 的版本號碼,然後到Virtualbox download site下載對應的 .vbox-extpack 檔案,再用 vboxmanage extpack install 安裝。安裝完成以後,要重新啟動 vboxweb-service 與 vboxdrv 這兩個服務。最後用瀏覽器開啟 phpvirtualbox 頁面,去設定指定的 VM,就可以看到 Remote display 可以設定了。啟動 VM 以後,就可以用遠端桌面連線連上並看到這台 VM。連線所指定的 IP 是 host phpvirtualbox 這台機器的 IP,port 則是 3389。

另外,啟動所需要的光碟 ISO 檔案或是已經有打包好的 disk image 無法透過 phpvirtualbox 上傳,必須要事先透過 SSH、FTP 等傳輸協定放到 host 上。

其他參考資料 (與 nginx/php5-fpm 相關的):

Linux GPS 軟體小記

最近比較常在看 GPS 軌跡,紀錄一下 Ubuntu 下有在用的軟體:

  1. gpxviewer :用來看 gpx 檔案軌跡的工具,圖資是用 OpenStreetMap 。
  2. gpsprune:用來裁剪/合併 GPS 軌跡用的工具,用 Java 寫的,圖資一樣是 OpenStreetMap。
  3. gpsbabel/gpsbabel-gui:用來轉換各種軌跡檔案的工具。常見的 gdb ,要選 garmin mapsource (gdb) ,而 gpx 則是 GPX XML。
  4. gpscorrelate:根據 gpx 軌跡檔,在照片的 exif 加入地理座標標籤的工具。這工具蠻貼心的加入了 offset 的功能,也就說 gps logger 的時間跟照片時間有差距也沒關係,可以透過這 offset 去推算。

今天還有找到 garmin-forerunner-tools 跟 garmin-plugin 是可以搭配我那隻 Garmin ForeRunner 手錶的工具,要找時間來試試看。

WordPress 的維護模式

本來以為 wp-cli 提供的 wp 指令應該可以用來指定 wordpress 進入或離開 maintenance mode 才對,結果發現沒提供這功能。原來是因為很簡單的關係:wp cli – wp-cli Enabling Maintainance Mode

只要在 wordpress 安裝目錄下增加或是移除 .maintenance 檔案就可以進入或離開 maintenance mode 了。

電影流水帳(2016/6/14~2016/7/7)

51730554PR118_RiviereMiranda Otto ,飾演魔戒二部曲-雙城奇謀裡的 Eowyn ,一個不小心愛上 Aragorn,卻被 Aragorn 拒絕了。旁邊的男生是 David Wenham ,飾演 Faramir ,差點被老爸燒掉的可憐人。

  • Angry Birds (IMDB, Wikipedia),台譯:忿怒鳥玩電影。Red 是隻脾氣暴躁又不喜歡與人往來的鳥,被法官判去心靈平靜學校上課。在那個學校裡,Red 認識了另外兩個問題人物:Chuck 與 Bomb。沒多久,豬豬們來了,他們以和平的名義,慢慢的讓其他的鳥兒失去戒心。Red 抱持著懷疑的態度,可是自己的尷尬位置又不被鳥兒信任。終於,豬豬們發動了攻擊,將所有的蛋都擄走。眾鳥兒們發現自己的錯誤,回頭向 Red 認錯,並向他求助。Red 教導大家在這種情況下要忿怒取回自己的蛋,在準備完成後,搭乘船隻到豬豬島取回蛋。經過一場大戰,眾鳥兒取回自己的蛋,Red 被大家接受了,順利的劃下句點。
  • Minions (IMDB, Wikipedia),台譯:小小兵。講小小兵怎麼出現在地球上,然後在窮極無聊時,去尋找新主人。先遣隊遇到 Scarlet Overkill ,認為這是一個可以投靠的人,就決定跟隨著 Scarlet Overkill。Scarlet Overkill 派他們去搶奪英國女王的王冠,卻意外加冕為王。於是跟 Scarlet Overkill 撕破臉,在一番大戰以後,意外遇到 Gru 並打敗了 Scarlet Overkill 。之後,就加入 Gru 了。
  • The Lord of the Rings: The Fellowship of the Ring (IMDB, Wikipedia),台譯:魔戒首部曲-魔戒現身。甘道夫來到哈比人的村莊接比爾去精靈那兒,遇到佛羅多等哈比人,在一起參加比爾的離別派對後,各分西東。村子裡的佛羅多繼承了比爾博的魔戒也想跟比爾一樣去外面闖蕩,就偷偷的走了,在走的路上遇到山姆等三個哈比人,於是就一起出發。出去的路上遇到戒靈襲擊,很巧的遇到亞拉崗等人,就被保護著到了精靈那兒。在精靈那兒,由於戒靈的襲擊,眾人得知黑暗魔君索倫將要再起,甘道夫、佛羅多、亞拉崗、精靈等人取得了共識,要保護佛羅多去魔多末日火山那兒銷毀魔戒。冒險正式展開,一行人就出發了。在前往末日火山的路上,魔戒一直在誘惑著遠征隊的其他人,期望能阻止自己被丟到末日火山裡。值此同時,遠征隊也被半獸人追趕著逃入矮人洞穴。後來,損失了甘道夫,眾人逃出洞穴。在河邊,佛羅多決定自己動身去末日火山,山姆隨行,免得有其他人繼續被誘惑,可是半獸人再次來襲,另外兩個哈比人梅里跟皮聘被誤認為佛羅多而被擄走。亞拉崗、勒苟拉斯、金靂則追隨著半獸人腳步,想救回梅里跟皮聘。
  • The Lord of the Rings: The Two Towers (IMDB, Wikipedia),台譯:魔戒二部曲-雙城奇謀。亞拉崗、勒苟拉斯、金靂追蹤了一陣子以後,發現梅里跟皮聘已經脫困了,只是不知道去了哪裡。路上遇到洛汗的騎士們,洛汗的伊歐墨給了他們兩匹馬,後來他們就到洛汗王城去了。洛汗王在蠻久以前就被薩魯曼派來的人給蠱惑了,王國的人都看的出來。亞拉崗一行人沒辦法,只能等待,後來甘道夫出現,讓洛汗王醒了過來。接著甘道夫告知半獸人大軍即將來襲,洛汗王決定舉城躲到王盔谷去。
    梅里跟皮聘則是遇到了樹人,樹人開會之後,決定不參與這場戰爭,梅里跟皮聘則要樹人帶他們去薩魯曼那兒去,樹人到了薩魯曼那兒,發現薩魯曼跟半獸人砍掉很多樹木,整個怒起來,召集了其他的樹人大舉進攻薩魯曼。
    佛羅多跟山姆哥則遇到了咕嚕,佛羅多要咕嚕帶他們去魔多。他們在半路被剛鐸的法拉墨捉到,帶回剛鐸。咕嚕的心境就在此時出現轉折,原本他是很相信並聽從佛羅多的話的,在剛鐸被錯誤的對待而出現對佛羅多的誤解與怨忿。後來,法拉墨還是讓他們去魔多了。
    最後是以王盔谷大戰做結束,洛汗王持續困守了一整夜,就在可能看不到曙光的時候,以前被驅逐出去的伊歐墨率領了外圍的騎兵,裡應外合夾擊了半獸人大軍,再加上老巢-薩魯曼的城堡被摧毀,總算保守了洛汗的人民。
  • The Lord of the Rings: The Return of the King (IMDB, Wikipedia),台譯:魔戒三部曲-王者再臨。亞拉崗、勒苟拉斯、金靂在得知剛鐸要被攻打後,積極的說服洛汗王要過去幫忙,洛汗王在一開始不太願意,後來在考量整個中土大陸的情況後,還是率軍前往剛鐸。甘道夫帶著兩個哈比人梅里跟皮聘前往米那斯提力斯,要剛鐸迪耐瑟開始防守,可是迪耐瑟已經陷入恐懼之中,完全不想抵抗。
    法拉墨所防守的要塞在第二集被戒靈攻擊,在這集裡,抵擋不住半獸人的大軍,退回米那斯提力斯。父親迪耐瑟只愛已經死去的大哥,不喜歡法拉墨,就叫他帶兵去拿回要塞。法拉墨傻傻的以卵擊石,直的出去,躺的回來。父親迪耐瑟超悲觀的,想要燒死法拉墨。就在此時,半獸人大軍也來了,甘道夫、梅里跟皮聘則鼓舞守軍進行抵抗。
    沒多久,洛汗王的大軍也來了,開始一場大戰,打的旗鼓相當。原本和洛汗王一起的亞拉崗,在半路去找了亡靈大軍,說服他們遵守承諾,加入戰局。亡靈大軍的這股力量,導致了半獸人聯軍節節敗退,最終人類聯軍獲勝。
    咕嚕暗懷鬼胎的挑撥佛羅多跟山姆哥,並帶他們去大蜘蛛那兒,想來個借刀殺人。原本已經離開的山姆回頭救了佛羅多,並帶著佛羅多到了末日火山那邊,就在佛羅多猶豫著要不要丟下去的時候,咕嚕出面搶奪,在一場爭奪之後,咕嚕帶著魔戒掉到岩漿裡。此時火山也爆發了,佛羅多跟山姆哥眼看就要被岩漿淹沒時,甘道夫派了大鷹來帶走他們。
    最後,魔戒消滅了,魔多的暗黑勢力也消滅了。亞拉崗成為人皇,伊歐墨成為洛汗王,哈比人回去故鄉,大概就這樣。

電影流水帳(2016/6/9~2016/6/13)

050409 Vivian Hsu "Love recklessly" event徐若瑄,真的是從國中看到現在,最近生孩子去了。

  • Dirty Grandpa (IMDB, Wikipedia),台譯:阿公歐買尬。電影的企圖是想要透過強烈的對比來強調知道自己想要什麼的重要性,不過,平心而論,我覺得這部電影不怎麼成功也不怎麼好笑。
    Dick 是 Jason 的祖父,妻子剛過世,隔天就硬要即將結婚的孫子 Jason 開車帶他去找朋友。在這個過程裡就發生了許多事情,Jason 發現其實他不認識祖父了,祖父的許多事情都出人意料。同時,Jason 也遇到以前學校的女性朋友,開始有了情愫。最後,才發現這一切都是祖父故意安排,主要是讓 Jason 覺醒,找到自己想要什麼,脫離事事都由被父親所安排的情況。
    女配 Aubrey Plaza 演的很不錯,以前看過她主演的 Safety Not Gurantee ,能收能放,不過她演影集比較多,電影比較少。
  • White House Down (IMDB, Wikipedia),台譯:白宮末日。印象中這部電影好像跟 Olympus has fallen 差不多時間一起上映的,題材相近。我覺得還不錯,就爽爽的動作片。
    Cale 跟女兒關係不是很好,但是他很努力,甚至為了女兒去面試白宮的總統護衛。不過應徵過程不是很順利,就在應徵結束後沒多久,恐怖份子裡應外合,襲擊了白宮。Cale 為了女兒,就順便保護了總統,然後跟外面的護衛長連繫,一邊保護總統,一邊找出真正要襲擊白宮的原因。襲擊白宮的原因不是單純的綁架勒索,而是基於對總統決策的不滿所做的攻擊。最後當然是保護了總統,也保護了女兒,同時也拿到這份總統護衛的工作。
  • Kung Fu Panda 3 (IMDB, Wikipedia),台譯:功夫熊貓3。蠻適合闔家觀賞的電影。
    天煞是烏龜的好友,他們一同打仗,在某處被熊貓救起,因而學會氣功,天煞忌妒烏龜學會氣功,大開殺戒,於是被烏龜大義滅親打入靈界。阿波成為神龍大俠以後,師父告訴他已經沒什麼可教的了,自己打算退休,讓阿波繼承成為師父。阿波相當的困惑,不知道該怎麼做。這時候有另外一隻熊貓來到這裡找孩子,想當然爾,就是阿波的老爸。父子重逢,自然是非常的開心,但是阿波的養父有點擔心自己的孩子被搶走。
    這時候天煞吸收了靈界裡其他高手的氣,離開了靈界,來人界尋仇並吸取高手的氣。師父知道了這個消息,找出了手卷,告訴阿波說,你要到教會烏龜氣功的熊貓故鄉,到那邊去學氣功,才能打敗天煞。於是熊貓老爸自告奮勇的帶阿波及養父過去熊貓故鄉。到了那兒,跟熊貓老爸重新學習熊貓的生活。但是到了後來,阿波才知道父親是要帶他避難才來到這裡。此時,悍嬌虎逃到此處,告知阿波其他人的氣都被吸收了的消息。阿波想起師父的教誨,學習當師父,於是他依照每個熊貓的特點開始進行教學。沒過多久,天煞來了,展開一場決戰,後來是有點像元氣玉那樣,熊貓們給了阿波力量,讓阿波打敗了天煞。最後,就一個快樂的大結局這樣。
  • 完美假妻168 (IMDB, Wikipedia)。在第四台轉台時剛好看到,就看了前面跟後面。我覺得還蠻有意思的故事,可惜沒能完整看完。
    Tiffany 從學生起,運氣就一直不太好,直到遇到鄭國富,兩人很快的結婚。過了幾年,鄭國富出差,突然霍克闖進家裡,並且威脅 Tiffany ,要 Tiffany 把他當老公七天,如果不聽話,那麼鄭國富就會死去。Tiffany 為了老公,只好配合。就這樣,發生了許多陰錯陽差的事情,這七天裡,Tiffany 漸漸熟悉了霍克,知道霍克有難言之隱的病,同時在霍克的引導之下,知道了老公鄭國富其實跟她所熟悉的人不一樣,在外面有小三,而且事業有危機。
    在綁架案告一段落之後,霍克逃走,而 Tiffany 使計威脅了鄭國富,讓他簽下離婚同意書。從此 Tiffany 自由了,但是她一直掛念著霍克,於是一直在賣特定狗食的超市打工,期望有一天等到霍克。終於她等到了,他們重新在一起並且過著不錯的生活。