boto3 create_instances/run_instances

create_instances 是 boto3.resource(‘ec2’) 提供的,而 run_instances 是 boto3.client(‘ec2’) 提供的。

  • client(‘ec2’): A low-level client representing Amazon Elastic Compute Cloud (EC2)
  • resource(‘ec2’): A resource representing Amazon Elastic Compute Cloud (EC2)

主要不同點:Resources represent an object-oriented interface to Amazon Web Services (AWS). They provide a higher-level abstraction than the raw, low-level calls made by service clients. To use resources, you invoke the resource() method of a Session and pass in a service name。

也就是說實際上 ServiceResource 會去使用 client,簡單的說 ServiceResource 是一個 client wrapper (這可以從 boto3/session.py 看到)。

友情小提示:在閱讀程式碼時,用 function name 去找,會發現都找不到,實際上 boto3 library 會將 function call/parameters 轉換為 AWS API  呼叫送出去。

電影流水帳(2019/01/25~2019/01/31)

Embed from Getty Images
  • Aquaman (IMDB, Wikipedia),台譯:水行俠。
  • GODZILLA 決戦機動増殖都市 (IMDB, Wikipedia),台譯:哥吉拉-決戰機動增殖都市。
  • GODZILLA 星を喰う者 (IMDB, Wikipedia),台譯:哥吉拉-噬星者。
  • Goosebumps (IMDB, Wikipedia),台譯:怪物遊戲。

Aquaman

故事、敘事節奏跟特效都很不錯,難怪票房這麼好。看到 Orm 時,我有點意外,是之前演 Watchman Nite Owl 的 Patrick,不知道是不是特效的關係,變得年輕了。(好吧,其實裏面蠻多人都有變年輕,特效真的很偉大)

除了 Willem Dafoe (飾演 Vulko)跨了 DC 宇宙跟漫威宇宙之外,只有出現在部份片段的 Randall Park 也跨了,他在 Ant-Man and the Wasp 裡,飾演 FBI 探員,在 Aquaman 裡則是飾演了一個博士,在片頭上了電視接受採訪,在片尾彩蛋協助蝠鱝。

故事一開始先帶出 Arthur 的出身,Atlanna 不想政治聯姻,逃出來漂到岸邊,被燈塔看守人救起,於是兩人相戀,生下 Arthur。但好景不常, Atlantis 派人來追捕,Atlanna 只好回去完成政治聯姻。之後雖然 Atlanna 無法到地面上來,但派了謀臣 Vulko 去地面教導、訓練 Arthur。

前事交代完,接下來交代後來發生的事情,時間點是在正義聯盟打敗荒原狼之後,Arthur 繼續保護世界和平。但是在某次救援潛艦任務時,Arthur 跟蝠鱝結仇。然後,Mera 公主得知 Orm 的野心之後,來找他一起阻止 Orm 的野心。要阻止 Orm 的野心,得取得三叉戟來取得 Orm 王位,於是他們一同展開尋找三叉戟的旅程。最後 Arthur 跟 Mera 循著線索到了海溝國,不但找到被放逐到海溝國的 Atlanna ,也順利取得三叉戟。然後他們一同回去打敗 Orm,阻止了他的野心,Arthur 成功的成為 Atlantis 的國王

GODZILLA 決戦機動増殖都市

人類的艦隊實際上是由三個種族組成的,エクシフ (以宗教為主)、ビルサルド(畢德薩魯斯人,崇尚科技)與原來地球上的人類。當初畢德薩魯斯人跟エクシフ來到地球是要協助原生地球人打造機械哥吉拉來打敗哥吉拉的,但是哥吉拉實在太強,還沒來的及完成,就被摧毀大半了,所有人類就只能逃出地球。

接續上集的劇情,晴生被伏加斯族人救起,然後陸續找到其他存活的隊員。屬於畢德薩魯斯人的隊員發現伏加斯族使用的箭簇可以射穿已經變種的地球生物,而這些箭簇所使用的金屬居然是納米金屬。在詢問之下,請伏加斯族人帶他們去。在取得金屬的地方,他們發現了這就是當初打造機械哥吉拉的地方,這個地方經過了兩萬年,已經變成了機械都市。畢德薩魯斯人隊員在跟晴生商量之後,決定利用納米金屬科技來擊殺哥吉拉,於是他們開始備戰。納米金屬非常好用,使用這些金屬打造的武器,像是動力禿鷹裝甲,改裝以後威力非常強大。可是哥吉拉也不是省油的燈,它察覺了異常,提早搜尋,晴生等人被迫提前行動。計劃的前期算是相當順利,三台動力禿鷹裝甲引誘哥吉拉到陷阱裡,用納米金屬困住哥吉拉,並用魚叉刺入哥吉拉,誘發哥吉拉的電磁波異常。可是哥吉拉在電磁波異常後,改為異常的高溫,開始融化附近的金屬。畢德薩魯斯人隊員決定將自己奉獻給納米金屬,利用動力禿鷹裝甲去衝擊哥吉拉,一台不夠,所以也打算讓優子跟晴生奉獻生命給納米金屬,就讓納米金屬入侵二人。晴生因為被伏加斯族人治療過,納米金屬無效,但優子就被入侵了。晴生覺得這樣是不對的,就停止攻擊哥吉拉,並且為了救優子,轉為攻擊機械都市的核心,殺死畢德薩魯斯人隊員。最後,哥吉拉還是活著沒死,優子陷入昏迷,太空船上的人類則是為了晴生功虧一簣的事情陷入了爭執。

GODZILLA 星を喰う者

接續上集的故事,エクシフ這族的人崛起,透過宗教與巧合,他們利用這點,召喚出基多拉。基多拉吞噬了環繞地球的太空船,接著到地面上。哥吉拉感受到威脅醒了過來,與基多拉展開大戰。一開始哥吉拉位於弱勢,防禦無效,攻擊基多拉,卻彷彿打空氣一樣。跟登陸部隊一起登陸的博士發覺到是有人輔助基多拉,基多拉才能攻擊。告知晴生以後,晴生意識到是エクシフ的梅德菲斯搞的鬼,於是跑去阻止梅德菲斯。跟梅德菲斯碰面以後,晴生差點也被梅德菲斯蠱惑,還好有伏加斯族人的幫忙,晴生阻止了梅德菲斯。哥吉拉也開始展開反攻,基多拉實體化之後,哥吉拉的攻擊也有效了,沒多久就打爆了基多拉。

殘存的登陸部隊就跟伏加斯族人一同生活,經過了一段時間之後,甚至也生兒育女了。就在這時候,博士發現有架動力禿鷹裝甲因為納米金屬的作用,慢慢在恢復運作,就告訴晴生說有機會讓文明再次復甦。晴生想了一夜,決定要毀滅這套裝甲,就帶著形同植物人的優子搭上裝甲,去找哥吉拉。哥吉拉非常乾脆的發射出電磁炮,毀滅了動力禿鷹裝甲以及機上的晴生跟優子。故事就這樣收尾了,地球回歸原始狀態,人類與伏加斯人共存於地球上。

故事主軸是在探討文明的善與惡,副線是地球文明與崇尚文明的異星人1與崇尚毀滅的異星人2的思想衝撞,然而文明本身不是錯,人類想要進步也不算錯,那麼錯的是什麼呢?

Goosebumps

在查維基百科的時候,我發現 R. L. Stine 是個知名的作家,這部電影的怪叔叔 Stine 就是寫他本人,而這部電影的劇本也是由他操刀,很有趣。整體來說,我覺得比 The House with a Clock in Its Walls 來的好看。

Zach 跟媽媽搬到 Madison 住,鄰居是個漂亮又吸引人的女孩子 Hannah 跟她古怪的父親 R. L. Stine。Zach 跑去找 Hannah ,卻被 Stine 趕了出去。Zach 懷疑有奇怪的事情,找警察去鄰居家,卻什麼事情也沒有,也找不到 Hannah。於是,找了同學 Champ 來幫忙,進去鄰居家以後,順利找到 Hannah,但卻釋放出書裡的怪物。這些怪物將 Madison 小鎮搞得天翻地覆,Stine 趕回來,將 Zach、Hannah、Champ 三人罵了一遍。這時 Stine 娓娓道出這些怪物的由來,Stine 是知名的作家,由於童年的遭遇,他寫出的怪物栩栩如生。這些恐怖故事讓他成名,但他也知道這些怪物是真實存在的,於是他將這些怪物封印在書裡。

既然這些怪物四處流竄,Stine 等四人只能聯手處理掉這些怪物。於是他們邊打邊逃的同時,Zach 想出一個好主意,就是請 Stine 再寫一個故事,將這些怪物一次收服。於是他們去學校找了當初寫這些小說的打字機,並請參加學校舞會的同學幫忙抵擋怪物,經過一番努力,終於將這些怪物重新收到書裡去。

電影流水帳(2019/01/23~2019/01/24)

http://gty.im/593346928
  • GODZILLA 怪獣惑星 (IMDB, Wikipedia),台譯:哥吉拉 怪獸惑星。
  • Our Brand Is Crisis (IMDB, Wikipedia),台譯:危機女王。

GODZILLA 怪獣惑星

看完哥吉拉怪獸惑星,結局好悲傷啊,費盡千辛萬苦打倒了哥吉拉,結果出現一隻更大的哥吉拉,真的是白費力氣了嗎? 片子中間跟最後的彩蛋透露了地球上還有沒逃出去的人,他們是怎麼跟哥吉拉共同生活了兩萬年呢?

由於地球出現了哥吉拉,奮力抵抗甚至受到外星人協助之後,仍然無法打倒哥吉拉,地球人只好搭乘太空船去尋找其他適合居住的星球。在茫茫宇宙裡尋找一個適合居住的星球談何容易,他們屢屢碰壁。這次他們派一群較有經驗的年長者下去可能適合居住的星球,主角晴生暴走了,試圖阻止這件事情,因為他的祖父就在其中。經過一番周旋,晴生的祖父出來說服了晴生,於是晴生被關起來,這群年長者仍照原定計劃登陸,可是登陸艇爆炸了。在晴生被關的期間,他努力的研究過往哥吉拉的紀錄,並匿名提出一篇關於哥吉拉弱點的論文。太空船發生了小小的騷動,食物和資源日漸不足,再加上這篇匿名論文,主政者經過一番討論之後,決定回去地球看看,也許哥吉拉已經消失了也不一定。

之前跋涉了十幾個光年,這次使用了穿越的技術,回去只是一瞬間。回到地球之後,太空船派了無人機下去探索,不幸的是,哥吉拉仍然存在。依據該篇研究論文,他們決定試著打倒哥吉拉,就派了先遣部隊下去佈署,晴生成了主要策劃者。經過一番波折與戰鬥之後,他們順利的解除了哥吉拉的無形防護罩,並打倒了它。可是就在大家鬆了一口氣時,突然出現了莫名的震動,哥吉拉再次出現,而且變得更大。所有的先遣部隊在一瞬間就被滅了,晴生在爆炸後,暈了過去。經過了不知道多久時間,晴生醒過來,看到一名裝扮奇特的少女在照顧他,這到底是??

Our Brand Is Crisis

陸陸續續在第四台看了片段,一直沒機會整個看完,Netflix 前一陣子上片,就趕緊把它補完了。

Jane 是選舉策略師,之前因為某次選舉而決定退隱。玻利維亞即將總統大選,Castillo 的選舉團隊找了美國人 Nell, Richard 跟 Ben 來幫忙,而 Nell 跟 Ben 又去找了 Jane ,並順利以之前 Jane 的死對頭 Pat 幫了對手為由說動她出來幫忙。到了玻利維亞以後,Jane 一開始並不是很樂意,後來暖過身之後,善用 Castillo 的優勢並且以各種手段打擊 Pat 所輔佐的候選人,終於成功的慢慢追回民調。過程發生各種事,有的悲傷,有的有趣,同時也慢慢揭露了 Jane 跟 Pat 為什麼有心結。最後,Castillo 成功的當選,但他在當選之後,就立刻撕毀了之前對選民的承諾,向 IMF 借錢。這件事情,其實在競選過程裡,Castillo 就已經透露了這種可能。

看完電影,會覺得挺心涼的,一種對於政治的心涼。朋友說的也沒錯,有時候就是都很不怎麼樣,我們選民要做的就是選一個比較不那麼差的,然後監督他,讓他不要做出不好的決定。

電影流水帳(2019/01/06~2019/01/22)

http://gty.im/664247740

  • 家に帰ると妻が必ず死んだふりをしています (IMDB, Wikipedia),台譯:每天回家老婆都在裝死。
  • Venom (IMDB, Wikipedia),台譯:猛毒。
  • 志明與春嬌 (IMDB, Wikipedia)。
  • カメラをとめるな! (IMDB, Wikipedia),台譯:一屍到底。

家に帰ると妻が必ず死んだふりをしています

故事的起點很有趣,就在婚姻屆滿三年,丈夫回家的時候,看到妻子死在地上,被嚇死了。自此以後,每天回家都會看到,丈夫從驚訝到配合演出,不過到終心裡還是無奈了,無法理解為什麼妻子要裝死。接著就是婚姻生活日常,是普羅大眾會遇到的婚姻問題,也點切身,有點不痛不癢,也有點悶。經歷了身邊的人離婚、妻子父親住院以後,兩人總算是找到了答案。結局是丈夫對妻子說了一些話,但這些話被消音了,暗示著幸福並沒有標準的答案,需要各位自己去找。
榮倉奈奈的笑容一百分,看著她笑,挺療癒的。

Venom

電影真的不怎麼樣,故事弱了,可惜了Tom Hardy 跟 Venom 這個角色。不過特效挺不錯的,片尾提到的蜘蛛人動畫彩蛋也很棒。

生命基金會在做的研究是外太空生物的研究,他們從外太空取得了奇怪的生物樣本,在進行研究,但他們為了求績效,研究的過程並不人道。一個獨立記者 Eddie 原本跟女律師 Anne 交往的好好的,卻去竊取女友的生命基金會訴訟資料,去寫報導,這讓生命基金會的執行長以及公司老闆相當生氣,Eddie 失去了工作。Eddie 消沉了一年,直到有一天,Dr. Dora 來找他,想請他揭發生命基金會的事情,Eddie 考慮了許久,決定來試試看。於是透過 Dr. Dora 的幫忙,進入了生命基金會。在基金會裡,Eddie 跟外太空生物 Venom 合體,並逃了出去。基金會執行長派人去追捕 Eddie,想要追回 Venom。在這個追捕的過程裡,Eddie 跟 Venom 慢慢磨合。後來基金會的追捕不順利,執行長就跟其中一個外太空生物 Riot 合體,Riot 控制了執行長,要派太空船去帶回更多的生物。Venom 得知了 Riot 的事情,為了自己,跟 Eddie 聯手與 Riot 展開大戰。這場大戰裡,除了打鬥之外,還意外的看到 Anne 跟 Venom 合體。大戰的結果,Eddie 跟 Venom 取得勝利,從此誕生了一個新的反派英雄。

志明與春嬌

志明與春嬌是挺有意思的一見鍾情的故事,短短的幾天,從尷尬到模糊到彼此試探到確定彼此,在主線進行的同時,導演還用了類似紀錄片的形式去採訪男女主角周圍相關的人,試著以這樣的方式去探討都會男女的愛情,很有意思。當初會想看,是因為去年還前年出了「志明與春嬌2」,有點想看看為什麼這樣的電影還會有續集,而且不看第一集就看第二集怕會接不上。

カメラをとめるな!

在網路上看到一片好評,今天看了這部電影之後,覺得真的很妙而且很棒。

前面的三十分鐘是僵屍片,在某些段落有說不出的違和感,有一點點恐怖,又讓人忍不住想笑。到了後面,才開始揭露拍攝過程的背後,讓人捧腹大笑、拍案叫絕。更絕的是,最後再揭露一次這部電影的拍攝經過,所以到底哪個是真哪個是假呢?

django 裡判斷請求是否加密

原本以為照著這篇 Django, get scheme (http or https), pre request.scheme implementation 來做,用 request.is_secure() 來判斷就好,但是事情並沒有我想的簡單。

經過簡單的判讀之後,原來是因為我的 django 前面有 nginx 擋著,前面的 nginx 可以處理 HTTPS 沒錯,但是 proxy pass 到 django + gunicorn 這邊之後,由於 proxy_pass 寫的是 http://localhost:8000 ,所以 django 收到的請求還是 HTTP。

後來我是在 nginx 裡,proxy pass 之前,先設定 header,django 裡再改用 header 來判斷,才解決這問題。

# nginx
proxy_set_header X-Forwarded-Proto $scheme;
# django, 參考自 https://stackoverflow.com/questions/14377050/custom-http-header-in-django
scheme = request.META.get('HTTP_X_FORWARDED_PROTO')

goaccess

安裝

# 最新版
echo "deb http://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/goaccess.list
wget -O - https://deb.goaccess.io/gnugpg.key | sudo apt-key add -
sudo apt update && sudo apt install goaccess

要可以使用 –keep-db-files 得安裝 goaccess-tcb

使用

詳細的使用可以看 手冊,以下是常用的用法

# Console
goaccess --log-format=COMBINED -f /var/log/apache2/access.log

# 先詢問要怎麼解析 log
goaccess -c -f /var/log/apache2/access.log

# 輸出 HTML (特定版本以後才有)
goaccess --log-format=COMBINED -f /var/log/apache2/access.log -o report.html

# 輸出 realtime HTML (特定版本以後才有)
goaccess --log-format=COMBINED -f /var/log/apache2/access.log --real-time-html -o report.htm

有多個 log (含 .gz) 的情況,可以參考 https://github.com/allinurl/goaccess/issues/600

# 先解析並存到 db
zcat /var/log/nginx/access.log*gz | goaccess -p /etc/goaccess.conf -a -o /dev/null --keep-db-files
# 從 db 載入資料,並且解析最新的 access.log
goaccess -p /etc/goaccess.conf -f /var/log/nginx/access.log --real-time-html -a -o /usr/share/nginx/html/goaccess.html --load-from-disk

Automatically generate GoAccess stats 的處理更費工,還放到 git 去,我覺得蠻值得研究的。我只大略看一下,後來沒用。

Vagrantfile 依版本給設定

上個月因為 vagrant 升級,在 Vagrantfile 裡加了 vb.default_nic_type = “virtio”,但今天同事使用 vagrant up 時,出現錯誤。原來我同事使用的是 vagrant 2.1,而我已經用 vagrant 2.2 了。

之前知道 Vagrantfile 其實是 ruby 語言,因此知道可以在裏面寫程式來處理,在網路上找看看怎麼做,就找到了。關鍵就是利用 Vagrant::VERSION 這個變數。

如果要印出訊息,就直接用 puts ,在執行 vagrant status 等指令時,就會看到。在找這個時,意外看到 vagrant 有 message 系統 (print message after booting vagrant machine with “vagrant up”),可以在指定的情況輸出訊息:

config.vm.post_up_message = "This is the start up message!"

電影流水帳(2019/01/01~2019/01/05)

Embed from Getty Images
  • Zombieland (IMDB, Wikipedia),台譯:屍樂園。
  • ARISE border:1 Ghost Pain (IMDB, Wikipedia),台譯:攻殼機動隊 ARISE – 靈魂傷痛。
  • 無雙 (IMDB, Wikipedia)。
  • 신과함께: 죄와 벌 (IMDB, Wikipedia),台譯:與神同行。
  • Kingsman: The Golden Circle (IMDB, Wikipedia),台譯:金牌特務-機密對決。
  • Eternal Sunshine of the Spotless Mind (IMDB, Wikipedia),台譯:王牌冤家。

Zombieland

在網誌上看到介紹,剛好 Netflix 上架了,就趕緊來看。我覺得真的挺好看的,很有趣,不會恐怖,又帶點勵志。

一開始是 Columbus 在介紹世界的設定以及他個人在面對僵屍時的守則,然後他遇到了 Tallahassee ,搭了他的便車,想要回家鄉看看。哪知道在路上碰到一對姊妹花 (Wichita 與 Little Rock),把他倆的車給搶走了。兩人只好走路,並設法找車子。好不容易找到車子了,卻又再次遇到這對姊妹花。正所謂不打不相識,四人因此認識了彼此,一起結伴上路。到了好萊塢,去 Bill Murray 家鬧騰了一場,Columbus 意外殺了 Bill 。姊妹花後來還是偷了車子去 Pacific playland ,Tallahassee 很生氣,可是後來心軟,跟 Columbus 一同去找姊妹花。姊妹花開動了 Pacific playland 的機器,玩的很開心,但卻吸引了附近所有的僵屍過來,姊妹花被困住了。還好 Columbus 跟 Tallahassee 趕到,救了他們,四人一起殺出一條生路。

ARISE border:1 Ghost Pain

攻殼機動隊,這一定要看一下的。故事是從素子回國協助辦案開始,但是在辦案的過程裡,種種的人事物與奇怪的幻像,把線索都指向了素子。原來素子在查長官案子時,感染了病毒,導致認知出現錯誤,並進行了奇怪的事情。在找到原因之後,總算是解開長官慘死的謎團,也解決了自身所感染的病毒。

無雙

在電視上看到預告,裏面有周潤發跟郭富城,再加上網路評價不錯,所以就看了。這部電影真的很精彩,是繼「寒戰」之後,我覺得很讚的的另外一部傑作。

一開始的故事是從引渡李問開始,香港警方在引渡回李問之後,李問的朋友阮文就來到警局,要保釋他。但香港警方不肯放手,以交換偽鈔集團首腦「畫家」情報為條件,讓李問說出「畫家」的情報。於是李問就開始娓娓道出關於他自己怎麼認識「畫家」跟進入偽鈔集團的經過。講述的故事很吸引人,有愛情,有他們克服製作偽鈔電板的過程,也有背叛,到了最後,警方相信他已經供出了「畫家」的情報,就讓阮文保釋他。豈料,這時故事峰迴路轉,原來李問供出的故事有真有假,來保釋李問的阮文是假的,而李問就是畫家,整個謎底都解開了。

李問,在引渡過程裡,透過自己的超強觀察力,記住警方駕駛的特徵,並且在腦中編寫故事,讓這名駕駛扮演「畫家」。秀清則是被整容成阮文,他愛的人是李問,保釋出李問的軟文,就是秀清。秀清,在救出李問的當晚,再次跟李問確認感情的事情,這次,她心死了。隔天,香港警方追捕逃往海上的李問與秀清,就在即將被香港警方追上時,心灰意冷的秀清引爆了船,同歸於盡。(應該是沒記錯吧…)

신과함께: 죄와 벌

之前好評的電影,前一陣子續集上映。我個人是覺得太過冗長,而且有些地方蠻拖泥帶水的。悲劇的發生跟韓國軍中陋習有關聯,最後結局是挺感人的。

金自鴻死去,地獄使者江林、解怨脈跟李德春來接引他去接受地獄七大獄的審判,可是在路上卻碰到冤死鬼來攪局,江林就上人間去查明原因。地獄的審判之路跟人間的查明真相就同時進行,在地獄使者的努力之下,慢慢解開金自鴻在外工作都不回家看媽媽以及弟弟在軍中死去的謎團。在最後,原本金自鴻是要被判下地獄的,但是因為透過託夢的處理,得知了媽媽其實是原諒自鴻的,被原諒這件事,讓金自鴻免於下地獄。而弟弟也放下自己的冤屈,隨著地獄使者回去。

我注意到電影底對地獄的處理都是來自天上,這點跟台灣、中國認定的地獄是在地下很不一樣。

Kingsman: The Golden Circle

金牌特務的續集,簡單的說,沒有第一集好看,反派缺乏特色,故事普通。電影我沒全部看完,只看了後面二分之一,不過我決定當作是看完了。

英國的金士曼特務都掛了,Eggsy 跟 Merlin 循末日協議去美國尋求 Statesman 協助。在美國他們遇到了之前的 Harry ,失憶的 Harry 在為 Golden circle 工作。Golden circle 研發出的毒品會讓人狂躁、麻痹然後死去,所以 Eggsy 跟 Statesman 聯手,先設法喚起 Harry 記憶,然後一起解決 Golden circle,拯救世界。

Eternal Sunshine of the Spotless Mind

在很多電影推薦文都看到這部電影,剛好 Netflix 上又有,就趕緊看了。看完只覺得,這故事真的很棒,Jim Carry 真的演了不少好劇本。

Joel 起床以後,只感覺不想上班,想去 Montauk 。在去 Montauk 的路上,他遇到了 Clementine ,像是命中註定般的,兩人一拍即合。隔天,Joel 送 Clementine 回去時,他遇到了一個似乎認識的人敲他的車門,簡短對話之後,這個人離去了。接著,電影帶到 Joel 在車子裡痛哭的畫面。Joel 被甩了,這天 Joel 去找 Clementine ,但 Clementine 不認識他了,一點記憶都沒有。Joel 經過追查,發現是忘情診所做的手術。Joel 很快的決定,自己也要做這個手術。在做手術之前,醫生要求 Joel 收集所有跟 Clementine 有關的物品,然後到 Joel 的家中進行手術。手術的過程裡,需要重播所有跟 Clementine 在一起的回憶,但是在這個過程裡(算是夢裡嗎?),Joel 發現他並不想離開 Clementine。手術的這一晚,現實世界裡也發生了奇妙的插曲,診所的助理 Mary 來到 Joel 家中,與負責施行手術的 Stan 發生了關係;另外一名助手 Patrick 則是利用了診所裡 Clementine 的資料,與 Clementine 交往,在手術的過程中,為了安撫 Clementine 而離開。 隨著手術過程中 Joel 對手術的反抗,醫生聯絡了診所的主治醫生 Howard 來協助,手術快完成時,Mary 向 Howard 告白,兩人情不自禁親吻了起來。Stan 在外面看到這一幕,隨即 Howard 的妻子 Hollis 過來,也看到了。Hollis 失望又生氣的離開,Howard 跟 Mary 追出來挽回時,Hollis 只說 “Howard 別這樣,告訴她一切吧。” 又告訴 Mary ,”你曾經擁有過他”。Mary 突然明白了自己也曾經接受過遺忘手術,於是 Mary 離開。Howard 回去繼續手術,手術成功了,這意味著 Joel 也喪失了 Clementine 的記憶,但 Joel 夢境的最後,只記得 Clementine 要他去 Montauk 。

隔天早上,Mary 從診所搬出病患的資料,並且將資料寄回給每個病患。Clementine 跟 Joel 也收到了,兩人也都明白了之前所發生的事情,這次兩人還會在一起嗎?

tldr

tldr = too long don’t read

覺得 man 太冗長,懶得看嗎?試試 tldr,這指令直接給你常用的範例跟簡短的說明。
tldr 專案網址:https://github.com/tldr-pages/tldr
有各種語言的客戶端,用 bash 版的是最方便的了 (適用於 zsh/bash/csh/ksh…..):https://github.com/raylee/tldr

安裝很簡單,用 curl 下載,放到 PATH ,收工。

# 下載到 ~/bin,然後確定 ~/bin 有在 PATH 裡
curl -o ~/bin/tldr https://raw.githubusercontent.com/raylee/tldr/master/tldr
# 設定自動完成
complete -W "$(tldr 2>/dev/null --list)" tldr

Ubuntu 14.04 + Python 3.7.2

我是使用 pyenv 來安裝,pyenv 的安裝:

# 一鍵安裝
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash

在安裝 Python 3.7.2 時,出現 ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib? 這樣的錯誤。

參考錯誤訊息,先依據 https://github.com/pyenv/pyenv/wiki/Common-build-problems 上的說明去檢查並安裝,但安裝了所需的套件之後,仍然有錯誤。後來再去找,才在 pyenv issue #950 找到原因,原來是 Ubuntu 14.04 的 OpenSSL 版本過舊,Python 3.7 需要 OpenSSL 1.0.2 以後的版本才行。

看了一下 Ubuntu 16.04 的 openssl 套件,版本是 1.0.2,於是就拿了 16.04 openssl 的 source package 回來,在 14.04 上編譯出 deb 來安裝就可以了。

# On Ubuntu 16.04
apt-get source openssl
# On Ubuntu 14.04
cd openssl-1.0.2g
dpkg-buildpackage
ls ../*.deb
# Output:
# ../libssl1.0.0_1.0.2g-1ubuntu4.14_amd64.deb      ../libssl-dev_1.0.2g-1ubuntu4.14_amd64.deb  ../openssl_1.0.2g-1ubuntu4.14_amd64.deb
# ../libssl1.0.0-dbg_1.0.2g-1ubuntu4.14_amd64.deb  ../libssl-doc_1.0.2g-1ubuntu4.14_all.deb
# Install them
ls ../*.deb | xargs sudo dpkg -i

再次安裝 Python 3.7.2

pyenv install -v 3.7.2
# 將當前目錄的 python 設定為 3.7.2,也就是以後切換到這個目錄時,自動使用 python 3.7.2
pyenv local 3.7.2
python --version
# Output:
# Python 3.7.2
# Use local python to make virtualenv
mkvirtualenv myproject --python=$(pyenv which python) -r requirements.txt