星期日, 7月 15, 2018

Pro Vagrant

今天翻了 Pro Vagrant 這本書,這本書是 2015 年出版的,到今天書裡已經有些資訊是過時的了。不過裏面介紹了如何使用 vagrant 、如何打包 box 以及使用上的觀念與建議作法,還蠻實用的。
書本的原始碼都在 https://github.com/pro-vagrant
裏面提到的 atlas.hashicorp.com ,現在 Hashicorp 已經不再繼續,並且在 2018/6/27 之後,hashicorp 把 vagrant boxes 都搬到  https://app.vagrantup.com 了,Ubuntu 的 box 都在 https://app.vagrantup.com/ubuntu
作者的網站 http://boxes.gajdaw.pl 也已經消失了。
幾個有用的 plugin:
另外就是知道有 vagrant share 跟 vagrant connect 這兩個子指令,vagrant share 可以讓 VM 有個對外的網址,對方或伙伴就可以用 vagrant connect 連上 VM 提供的服務,說真的,這兩個指令蠻讓我驚訝的。

星期四, 7月 12, 2018

電影流水帳(2018/4/13~2018/6/3)

Brie LarsonBrie Larson ,飾演驚奇隊長,雖然在 Infinity War 裡還沒正式出現,但很期待明年復仇者聯盟四裡她的演出!
  • The Fate of the Furious (IMDB, Wikipedia),台譯:玩命關頭8。原本以為不會很好看,畢竟也到了第八部,但還蠻出乎我意料的,故事比上一集來的有趣。電影末段轉折的不錯,飾演反派 Cipher 的 Charlize Theron 也很成功的刻畫出這個狠角色,相當不賴。
    這集主要是 Dominic 遭到 Cipher 威脅,而加入反方的一邊;正方的 Hobbs 等人則是丈二金剛摸不著頭緒,只能跟前兩集的反派蕭氏兄弟聯手,硬著頭皮跟 Cipher 對抗。後來憑著 Dominic 的裡應外合,終於打倒 Cipher 並救回 Dominic 的孩子。
  • Avengers: Infinity War (IMDB, Wikipedia),台譯:復仇者聯盟3-無限之戰。在看這部電影之前,趕緊去追了雷神索爾3,但沒看黑豹,還好並沒有影響。情節的安排相當緊湊,人物多,但故事線沒有因此而雜亂,絲絲入扣,沒有冷場。
    一開始是 Thanos 追擊了 Asgardians 的太空船,Thor 跟 Loki 跟 Hulk 被打的很慘,Hulk 被奄奄一息的 Heimdall 傳送回地球示警,Thanos 則從 Loki 手中得到了空間寶石。Thanos 派出手下,前往地球搶奪其他的寶石,跟地球上的英雄們展開大戰。Dr. Strange 因為身上有時間寶石,所以被擄走,Iron man 跟 Spider man 為了救回 Dr. Strange ,也上了太空船。星際異攻隊則是遇上了落難的 Thor,他們分成兩批人,一批協助 Thor 打造了新的武器,另外一批則是去保衛寶石,卻意外協助 Thanos 取得了靈魂寶石。美國隊長等其他的超級英雄則是到了瓦干達,保衛心靈寶石,對抗 Thanos 的手下。最後的大戰,Thanos 集齊了所有的寶石,以無限手套進行了無差別的攻擊,全宇宙有一半的生物都消失了,留下期待復仇者聯盟4的結局。
  • Big fish (IMDB, Wikipedia),台譯:大智若魚。趁這部電影在 Netflix 上架時,趕緊回味一次。這次重看,才發現 Will 的太太是 Marion Cotillard  飾演的,以前都沒注意到說。飾演 Edward 太太 Sandra 的 Jessica Lange ,有一幕讓我印象很深刻。本來陪 Will 在整理的 Sandra 離開去找 Edward,Edward 躺在浴缸裡,張開眼睛看到自己的妻子,浮出水面,而 Sandra 就直接穿著衣服進到浴缸裡,Edward 就擁著 Sandra 坐在裏面,在那個當下,我覺得好浪漫啊~
    Will 是 Edward 的兒子,從小聽父親說的不知是真還是假的故事,原本是崇拜父親的,但是父親經常在外奔波,到後來不知是否該繼續相信父親,所以他選擇了儘量不跟父親說話。某天接到媽媽 Sandra 的電話,得知父親 Edward 的病到了末期,於是他偕同妻子回到家中,陪 Edward 最後一段日子。在這段日子裡,就是父子倆的大和解,在整理父親事物的過程裡,知道了父親的故事並不全是造假的,而是帶著真實的,只是 Edward 加入了一些不尋常的元素,讓故事變得更加生動。最後 Edward 即將要走了,要求 Will 說故事給他聽,Will 很努力的說了一段生動的故事讓 Edward 好好的走完。在 Edward 的葬禮裡,Will 看到了故事裡的人物都來參加葬禮,送 Edward 最後一程,讓 Will 明白父親的用心。
  • ミックス。(IMDB, Wikipedia),台譯:乒乓少女大逆襲。這劇本根本就是幫新垣結衣跟瑛太寫的吧,很有意思的故事。廣末涼子跟蒼井優的演出真的是很讓人出乎意料之外啊,哈哈~
    多満子的媽媽是桌球選手,從小就讓多滿子接受地獄特訓,這讓多滿子極度的厭惡桌球。在媽媽死後,她解脫了,並且過著平順的生活。在工作的時候認識了明星桌球選手江島,陷入熱戀,但在愛莉出現以後,被江島甩了。多滿子回到故鄉,跟小時候的同學彌生一同經營媽媽的桌球教室。某天,多滿子在電視上看到全國的選拔賽,江島有參賽,為了報復,多滿子決定跟桌球教室裡的人一同組隊參加。第一次的比賽失利,但這讓桌球教室裡的人團結一心,也讓多滿子更加了解了荻原。經過一年的苦練,他們參加第二次比賽,但看似順利的這次,卻備受阻撓。首先是荻原似乎要跟前妻復合了,多滿子心裡的感受很複雜。其他人則因為這事,也無法出席比賽。但是最後,荻原回頭去找了多滿子,把事情說開。彌生則因為佐佐木的簡訊而決定做自己,去參加比賽。落合夫婦也覺得可惜,而前往比賽現場比賽。最後呢,當然是一個圓滿了大家心願的結局。
  • Pacific Rim Uprising (IMDB, Wikipedia),台譯:環太平洋2-起義時刻。故事的結尾有點弱,但故事中間的轉折我還滿喜歡的,想不到真正的敵人不是怪獸,而是被怪獸誘惑的 Dr. Newton Geiszler。整體來說,普普通通,相較之下,我還是喜歡第一集。
    時間快轉到第一集結尾的幾年後,Jake 是 Stacker (上集的將軍)的兒子,自我放逐,但被姊姊 Mako 拉回到 PPDC,姊姊 Mako 希望他指導後進的機器人駕駛。隨即,PPDC 跟中國在雪梨會談,此時,有個機器人入侵了雪梨,PPDC 的機器人出來阻止,但沒能完全阻擋住這波攻擊,姊姊 Mako 因此死了。Mako 留下了訊息,PPDC 展開調查,跟中國的合作案也發生變化。經過幾番轉折與調查,才知道原來 Dr. Newton Geiszler 之前跟怪獸大腦連接的關係,心智被控制了,製造出身體部份是怪獸細胞的機器人,要消滅人類的巨大機器人。於是眾人齊心協力阻止怪獸機器人引發火山爆發,最後也順利成功。
  • The intern (IMDB, Wikipedia),台譯:高年級實習生。溫馨的小品故事,幾次在第四台看到,都只看了片斷,這次終於在 Netflix 上完整看完。
    Jules 是新創公司的 CEO,因為政府政策,要僱用老年人來上班。Ben 是個不甘寂寞的老人,他不願意賦閒在家。某次他意外看到徵人廣告,就去 Jules 的公司面試,並且順利的被錄取。進公司以後,Ben 被分派給 Jules ,但 Jules 並沒有交代任何工作給 Ben,Ben 就盡自己的力量去幫助同事,並且去找事情來做。Jules 看在眼裡,慢慢改變自己的想法。後來,Ben 更幫助 Jules 做出了對職涯、家庭的決定。
    看完的想法,第一個是美國老人生活的問題似乎蠻嚴重,另外一部電影 Going in style 也提到了。第二個是 Ben 的主動,這是我要自我改進的地方,這方面我向來不夠積極,都是等人問了,才盡力去幫人,而不是主動去詢問、協助。

星期四, 5月 31, 2018

chronograf 使用 gitlab oauth2 認証

去年11月在試 chronograf 1.3 使用 gitlab oauth2 來認証登入時,沒試出來,就去 chronograf github repository 那邊發了 issue ,後來4月左右出了 1.4,開發者有回應,請我再試試看,昨天終於試出來了,下面紀錄一下過程與設定。
  1. 首先去 gitlab admin 頁面 (我用的是 gitlab 8.13.6) 新增 application,在 callback url 填入"http://your_chronograf_server:8888/oauth/generic/callback"。新增以後,把 "applicatoin id" and "secret" 記下來,後面會拿來填入 chronograf 的 "--generic-client-id " / "--generic-client-secret "。
  2. 在啟動 chronograf 時,帶入以下參數 (gitlab_server 與 chronograf_server 請自行替換):
    • --generic-auth-url=http://gitlab_server/oauth/authorize?redirect_uri=http%3A%2F%2Fchronograf_server%3A8888%2Foauth%2Fgeneric%2Fcallback&response_type=code
    • --generic-token-url=http://gitlab_server/oauth/token?redirect_uri=http%3A%2F%2Fchronograf_server%3A8888%2Foauth%2Fgeneric%2Fcallback&grant_type=authorization_code
    • --generic-scopes=api
    • --token-secret=mysupersecret
    • --generic-api-url=http://gitlab_server/api/v3/user
  3. 到 chronograf 頁面時,就會看到 "Login with Generic",點選按鈕,瀏覽器會帶到 gitlab 的登入頁面,在登入以後,會再帶回到 chronograf purgatory 頁面。
到這邊就算是成功了。但是我還沒去試怎麼去給予權限,讓使用者不要只能停留在 purgatory 頁面。

星期四, 5月 10, 2018

Django 節省記憶體的一些紀錄之二

這篇會順帶提一些提高效能的紀錄。

strftime

datetime.strftime 可以將日期時間格式化為需要的字串,但是,在經過 profiling 以後,我發現呼叫這個函式相當的花時間。在網路上搜尋以後,發現有人在 stackoverflow 上問相似的問題,有人回答說改用 python 的 string format 就可以大大的提高效能。
# 原作法
from datetime import datetime
dt = datetime.now()
dt.strftime("%Y/%m/%d")  # slower
"{:04d}/{:02d}/{:02d}".format(dt.year, dt.month, dt.day)  # Fast!!

JSONEncoder.iterencode

這是在Use StreamingHttpResponse by default for JSON 這個 gist 上看到的,裏面使用了 JSONEncoder.iterencode 搭配 StreamingHTTPResponse 處理。一般來說,在輸出為 JSON 時,都是整個物件或資料丟給 json.dumps(),但這樣在處理大量資料的情況時,其實是有可能佔用大量記憶體的。Python json 模組的 JSONEncoder 提供了 iterencode() 函式,iterncode() 會回傳 generator 回來,之前有提到使用 generator 可以確保在使用到的時候,才將值回傳出來,可以避免佔用過多的記憶體。再加上 StreamingHTTPResponse/HTTPResponse 的 content 都支援使用 generator,這樣就可以節省大量記憶體了。

日期時間時區的轉換

本來我是使用 Arrow 在處理時區的轉換,但是,在 profiling 以後,發現這個步驟會花掉蠻多時間,於是看過 Arrow 的原始碼以後,發現 Arrow 只是使用 python datetime 模組裡面的函式在做,所以將原本時區轉換的部份改寫掉,就大幅提升速度了。

from arrow import Arrow
from dateutil import tz
from django.utils import timezone

dt = timezone.now()  # utc time
new_timezone = tz.gettz('Asia/Taipei')  # get local timezone
new_local_time_1 = Arrow.fromdatetime(dt).to(new_timezone).datetime  # slower
new_local_time_2 = dt.astimezone(new_timezone)  # Fast!!

星期四, 4月 26, 2018

電影流水帳(2018/2/21~2018/4/12)

Karen Gillan Karen Gillan,坦白說,完全看不出來是「星際異攻隊」裡的 Nebula ,本人看起來很清新可人呢~
  • 君の名は (IMDB, Wikipedia),台譯:你的名字。這故事一直讓我想起村上春樹的「百分百女孩」,有種淡淡的哀傷,讓人唏噓不已。
    故事一開始是瀧跟三葉的身體交換了,他們有著默契,努力過著對方的生活。原本以為就是單純的身體交換故事,但在中段出現轉折。瀧在某次約會後,就再也沒有跟三葉交換身體了。瀧覺得很奇怪,就開始進行調查。在調查以後,才了解到原來女孩所在的時空居然是三年前,在那個時間點,女孩所在的糸守町被彗星碎片擊中而滅村。瀧不死心,鍥而不捨的到了宮水神社,透過口嚼酒,再次跟三年前的三葉交換身體。這次的交換,兩人的努力終究改變了時間的流向,讓村莊裡的人們躲過災難。不過,兩人因此失去對方的記憶,經過數年,一直在追尋著似乎存在心裡的對方。電影最後一幕,兩人終於相遇,但是他們真的能相認嗎?沒有答案,這樣也好。若有似無的結局,才會讓人念念不忘。
  • Coco (IMDB, Wikipedia),台譯:可可夜總會。看完以後才知道台灣為什麼會這樣翻譯,Coco 是人名,「夜總會」則是因為台灣大多數的人將墓地稱作「夜總會」,而主角又是去陰間走一趟的關係。故事溫馨、有趣,有 Pixar 一貫的風格,主題曲 Remember me 符合情境,真的是很不錯。
    主角 Miguel 的家庭裡因為喜愛音樂的祖先拋妻棄子出外去追求音樂的夢,所以嚴令禁止子孫傳唱音樂。Miguel 非常喜愛音樂,意外發現的聞名的大歌星 Ernesto 可能就是自己的祖先,在跟家人分享的時候,被家人責罵、阻止。Miguel 生氣的跑到墓地去,想要證實大歌星 Ernesto 就是自己祖先,卻意外進入陰間世界。在陰間,Miguel 遇到了自己的親人,親人們試圖要送 Miguel 回去,但 Miguel 不肯接受以後不玩音樂的條件而賭氣逃走。逃走途中遇到了 Héctor ,Miguel 請求 Héctor 幫忙他找 Ernesto ,Héctor 則請求 Miguel 帶照片回陽間去,於是他們開始互相幫助。在這段過程裡,兩人相互了解,而且意外發現了 Ernesto 其實是個卑鄙的傢伙,他害死 Héctor ,奪取他的創作。更令人意外的是,Héctor 就是 Miguel 那個拋妻棄子的祖先。最後經過一番努力,Miguel 、Héctor 跟 Miguel 陰間的親人聯合起來揭發了 Ernesto,並且順利送 Miguel 回去,讓故事有了一個快樂的結局。
  • Thor: Ragnarok (IMDB, Wikipedia),台譯:雷神索爾3-諸神黃昏。影評不錯,看完以後,我也覺得很歡樂,跟前面兩集的風格迥然不同。
    一開始是 Thor 在打火神,火神告訴他 Odin 已經不見了。於是 Thor 打完火神以後,回去阿斯嘉揭穿 Loki ,要 Loki 帶他一同去找父親。兩人到了地球遇到奇異博士,奇異博士在確認來意以後,開傳送門讓他們找到 Odin。三人聊了一陣子,Odin 說自己死期已到,要他們注意諸神黃昏。沒多久,Hela 就來了,Thor 跟 Loki 根本打不贏超強戰力的 Hela,於是 Thor 要求傳送回阿斯嘉,但 Thor 跟 Loki 在傳送中途就掉落了。Hela 回到阿斯嘉,展開報復,並找到跟班。
    Thor 發現自己掉到 Sakaar,並且淪為俘虜,必須跟其他俘虜戰鬥。在這裡他遇到了 Hulk ,曾經是女武神的 Valkyrie,以及 Loki,Thor 經過一番努力,說服了 Hulk, Valkrie 與 Loki ,三人合作加上其他俘虜幫忙,推翻了 Grandmaster,並且回到阿斯嘉去阻止 Hela。在阿斯嘉打鬥時,Thor 找到新的力量,而且認知到諸神的黃昏是不可避免的,於是他請 Heimdall 與在 Sakaar 認識的俘虜們將阿斯嘉的人都帶走,放出火神,讓火神跟 Hela 同歸於盡。
  • Knock knock (IMDB, Wikipedia),台譯:當辣妹來敲門。這部電影蠻警世的,主角 Evan 犯了天下男人都可能會犯的錯,導致失去幸福的家庭。
    建築師 Evan 有著幸福的家庭,在某個周末,他要趕進度,沒辦法跟妻兒去度假,所以妻子帶著孩子們去度假。當天晚上,外面下著大雨,Evan 進度趕的有點卡。就在此時,響起了電鈴聲,Evan 打開大門,是兩個楚楚可憐的辣妹來按門鈴求援。心裡有柔軟角落的 Evan 就讓他們進來洗澡,還幫她們烘乾衣服、叫車。想不到衣服烘乾後,兩個女孩還沒出來,就到浴室門口看看,兩個火辣的女孩突然冒了出來,挑逗 Evan,把持不住的 Evan 就這樣跟兩個女孩做了不應該做的事情。隔天早上起來,Evan 發現這兩個女孩不對勁,想把她們攆走,卻被她們要脅。僵持了好一陣子,火了的 Evan 將她們載到遠遠的地方去。
    回到家的 Evan 趕緊收拾家裡的殘局,豈料兩個女孩尾隨而至,將 Evan 綁了起來,開始玩弄 Evan。在玩弄的過程裡,兩個女孩還殺了來搬 Evan 妻子藝術品的經理人。最後,結局有點出乎我意料之外,因為並不是快樂結局,而是 Evan 被埋到地下,只剩下一顆頭在地上,女孩們將 Evan 不應該跟她們做的事情錄影上傳到 Evan 的 Facebook 塗鴉牆上,就拍拍屁股走了。而在這個時候,妻子跟孩子也回到家中,Evan 後悔莫及,電影在 Evan 悔恨的大叫中結束。
  • My big fat greek wedding (IMDB, Wikipedia),台譯:我的希臘婚禮。以前看到這片名,覺得這有什麼好看的,後來在網路上看到影評,才知道這片蠻有意思。電影的編劇同時也是女主角,電影裡所發生的故事有一部份就是她自己的親身經歷。
    30 歲在家族餐廳工作的 Toula 並不算漂亮,因為身處於希臘家庭,被希臘的傳統觀念給束縛住,爸爸老是叨念她應該趕緊找個人嫁了。直到她決心改變自己,並且透過媽媽的幫忙,她再次唸書。上學以後,心境的改變讓她變得自信而且漂亮。畢業以後,她到姨媽的旅行社上班。在旅行社上班的時候,之前在餐廳遇到的一位讓 Tuola 心動的男生居然反過來追她了,進而開始了一段浪漫有趣的愛情,最後兩人決定結婚。整個過程非常的有趣、溫馨,也讓我感受到,當你想改變的時候,是真的可以讓世界有所不同。
  • Jumanji: Welcome to the Jungle (IMDB, Wikipedia),台譯:野蠻遊戲-瘋狂叢林。預告看起來不錯,實際上也真的還不錯,基本上套路跟前作相似,蠻好的娛樂片。
    電影一開始交代了前作的棋盤遊戲變成了電子遊戲,並且讓一個孩子失蹤了。經過 20 年,四個被留校的孩子被派去地下室服務,他們找到了這個電子遊戲,然後就進去冒險了。四個孩子在遊戲裡都變身成特定的角色,與現實生活裡大不相同。經過一番冒險之後,四人找到了之前失蹤的孩子,也盡釋前嫌,一同努力打倒大魔王,重新回到現實世界,帶著在遊戲裡找到東西,繼續生活。

您或許對這些文章有興趣

Related Posts Plugin for WordPress, Blogger...