Circle CI run Terraform and AWS deployment

最近花很多時間在 CI,其中一個比較大的目標是跑 Terraform 加上用它輸出的 S3 name 來作為後面發佈步驟的發佈目標,然後加上不想要用第三方的 docker image 和 orbs,不過網路上都沒看到有這樣子做的範例,所以花了些時間嘗試、看文件和範例,這篇就是把一些目前的結論記錄下來:

Terraform 是用 hashicorp 官方的image,基本上就是 alpine + go + terraform 而已,shell 只有 sh 沒有 bash,不過其實 Circle CI 的一些文件看起來,他們應該是建議要使用 bash 為主,其中一個主要原因就是BASH_ENV這個環境變數有沒有支援,支援的話就可以很輕鬆的在不同 command 間傳遞環境變數了,不過還好我在 Terraform 這邊只需要寫入,還不需要讀出,所以就是 Terraform 執行完之後加一個 command 執行:

echo "export S3_ID=`terraform output s3_bucket_name`" >> $BASH_ENV

當然你的 terraform module 要有定義好 output。

第二個是重點是$BASH_ENV的值,個人建議是設定絕對路徑,直接寫出完整路徑,不要用其它環境變數來組合,然後位置要放在 working directory 內,好方便能persist_to_workspace,這樣才能夠跨 job 使用,另外就是檔名建議不要用.開頭的隱藏檔名,我遇到過各種找不到檔案的錯誤訊息,然後 working directory 建議不要放在 home 目錄下,一來$BASH_ENV去用$HOME組合出來我遇到錯誤過,用~來寫路徑也是遇到錯誤過,二來不同 image 的 home 目錄路徑不同,如果要在 config 內直接寫死絕對路徑,建議直接定一個固定的位置,我現在是用:

/tmp/workspace

然後這樣後面就可以用官方的 s3 orb 下指令了:

- aws-s3/sync:
    from: build
    to: "s3://${S3_ID}"
    aws-region: "ap-northeast-1"

COSCUP 2019

COSCUP 2019

今年發生什麼事大家都知道了,我今年負責的是 Open Web Technologies 議程軌,相對是受影響比較小的單位,不過還是想從我的角度來記錄一下,這篇就流水帳吧。

前一天晚上聽到說台科大停電的時候,還沒什麼實感,而且研揚大樓很快就恢復了,想說應該不會停太久吧,直到後來要睡前都沒有恢復才有一點緊張感,不過基本上也做不了什麼事情,還是準時去睡覺,還把龍王的工作八給看完了,隔天早上七點多醒來一看已經確定要換場地了,各管道的宣傳也開始在跑了,我就邊處理小孩的東西,先發了一封信件給今天的所有講者說場地要換大樓了,當時新教室的位置還沒出來。然後也邊跟另外一位社群協調人 hlb 聯絡,他還要從新竹出發過來,比我還早出門,後來教室確定後我又再發一封郵件,還有在 Telegram 的 Mozillians at COSCUP 2019 群(專門開給國外來參加 COSCUP 的 Mozilla 人的群)也趕快發通知,剛好那邊還有今天下午的兩位講者在裡面。

我自己本來的規劃是九點到場,後來因為確定狀況和發信等等後來有比較晚到,不過還是去採買了要給講者喝的水,我準備了一個保冷袋還加買兩包冰塊,後來冰塊到離開時都還沒融化完,可是冷卻效果不是很好,或許還是專用的保冷劑效果會比較好,另外就是有一包冰塊好像袋子還有破洞漏水。停到研揚大樓停車場的時候,竟然只能使用悠遊卡,然後一刷,只剩下 80 塊,這表示我要離開前勢必要先找地方加值了,當然,當時校內的便利商店也都停電了 ~_~

九點多到場時很感謝 hlb 都已經確認完場地狀況了,而且看起來幾乎場地都已經準備好了,雖然還有攤位沒準備完,樓下其實還一直在搬東西過來,不過真的是要讓演講開始已經完全沒問題了,像是教室指標、背版、麥克風備用電池,甚至連新印的單間會議廳的議程表都有,隔壁教室的贊助商攤位看起來也很有一回事了。

之後就都還蠻順利的,講者都有準時到,沒有開空窗,也沒有人超時卡到下一位講者,分享後互動最熱烈的那場,也剛好排在午餐前,比較可惜是我的主持還不太行,介紹講者的部分都不太好,當然週五無法先去找講者聊一下也是蠻有影響的,不過更大的因素是我自己事前準備還不夠,沒有練習好,這部分就明年繼續努力了。

今年 Open Web Technologies 下午有三位海外講者,其實都是他們各自籌經費,Mozilla 的 Rabimba 和 Bob 都是 Mozilla Tech Speaker,所以應該是從那邊申請經費的,另外一位則是 LINE 的 Trustin Lee,LINE 也是今年贊助商之一,講者的經費應該是公司出的,剛好攤位就在隔壁教室,好像也有該主題自己的攤位和其它一起從韓國來的朋友,開場前就看到他們開始在拍照,然後我才想到,像這種公司出錢來的海外講者,要是因為活動因故取消的話,人都到了不知道他們的旅費要怎麼處理,這時才第一次體會到,推廣國際能見度其實也是伴隨而來更多的責任的啊。

總之議程過程還算順利,我自己因為主持的關係幾乎離不開,只有挑了一場演講開始的時間去 HKOSC 買預計要入手的 kotties,還有去拿個人贊助的紀念品,不過我沒有拿到大會手冊就是,最後議程結束後,我就把東西收好走去長興街 7-11 儲值悠遊卡,那段時間雨還不小,回來時在一樓跟小耕打招呼,他也提到了場佈兩次的事情,我腦中就響起了這個旋律:

每條大街小巷
每個人的嘴裡
見面第一句話
場佈快不快樂

搭配音樂:

之後還在閃電講時間,我去了記錄組工作區晃了一下,還遇到不少老人回來要準備幫忙撤場,沒停留多久就回家顧小孩了,停車費 400(應該是 50 x 8 小時),大概九點弄完才有時間去找出 YouTube 直播留存的影片來看最後的閃電講和閉幕,看完覺得第二天能順利辦完真是太好了,不只是對贊助商和講者的交代,要是沒有辦起來也沒機會再次緬懷 Ilya 和阿怪了。

最後個人想法,其實我聽到要換場地的時候,我腦中倒是完全沒有懷疑過 COSCUP 團隊會辦不到,有個替代場地可以用反而是我覺得真的是撿到的,不知道為什麼一開始會先把研揚大樓的供電恢復,而且校方還能迅速幫忙協調出空間給我們用這真的是非常關鍵,如果今天在其它地方辦搞不好就真的無法找到替代空間了;然後在研揚辦的效果其實也還不錯,走道有空調真是舒適不少,第一次到台科辦的時候好像也有考慮過這個位置就是,不過大概就是因為沒有比較正式的會議廳吧。第二是 Bobchao 從前年開始推動的社群議程其實也在這次事件發揮蠻大的功效,不然整個議程相關的問題就會擠在議程組內了,現在這樣倒是可以把很多事務和權責放到外部,對我來說,其實更換場地影響沒有很大(當然是因為我到場時東西都已經準備好了,十點社群議程才開始也提供了相當充足的時間),最重要的就是確定新的會議廳位置以及想辦法通知講者,尤其是海外講者,這次我們軌三位海外講者中有兩位都有 IM 管道可以跟他們聯繫(感謝 Irvin 有先建立群組),所以我都有確定他們知道場地變動的訊息,以後也可以考慮先建立好跟講者聯繫的 IM 管道。

然後比較個人部分的感想,要顧一間做整天的主持人,幾乎都沒有機會離開啊,更不用說拍什麼照片了,其實攝影器材有帶不少但是大概用不到一半,希望以後能更多時間到場,然後可以分個半天一天做自由記錄。

最後的最後就放其它人的紀錄吧(不過目前看到的公開的只有四貓的,歡迎提供其它連結):


京都動畫公司縱火事件

#PrayForKyoani

想不到我在這個類別隔這麼的發文又是為了記錄這種事情。

今天(2019 年 7 月 18 日)京都動畫第一工作室遭縱火,目前死者 33 人,不過也有十名重傷,火災重傷後續也很辛苦,所以數字還不排除有變化的可能性。這場火災是日本近年來死傷最嚴重的縱火事件,我一早就看到消息了,然後整天就一直看著傷亡數字上升,很難受。

其實我對京阿尼還算蠻有情感的,想當年他們要開始獨立製作動畫時,還有發新聞稿,強調他們要以著重動畫品質的時候,我還想著就來看看結果會如何,結果後來就是大家所知道的,他們推出了一部又一部品質精美的動畫作品,我自己很喜歡的一張我拍的cosplay 照片的角色六花也是從他們的作品中出來的,今天我認真的查了一下我看過哪些,發現沒看過的其實沒幾部,就這樣從我大學一直到現在。這個消息在全世界動漫圈都傳很大,美國的發行商 Sentai Filmworks 還為他們發起了募款活動,本來五十萬美金的目標已經達標,現在是新目標 75 萬,#PrayForKyoani這個 hashtag 也在世界趨勢中維持在第一位一整天了。

動物朋友的監督 たつき 在 twitter 上發表了一段文字,我想很正確的表達了這件事情為什麼讓人感受這麼深:

借一下 plurk 上 AT2 的翻譯

逝世者們到底花費多少龐大且踏實的時間,在不為人知的情況下拿來做動畫。 豐富了幾萬、甚至幾億人的時間,增加了人們幸福的總指標。 為什麼這樣的人們要非得以這麼痛苦、這麼悲傷的方法離世呢

最後就是突然又想到 ZEGAPAIN 這部動畫,ZEGAPAIN 其實是 ZEGA 和 PAIN 兩個單字,意思是人類(整個人類種族)難以承受的巨大傷痛,想我當年看完這部作品心情嚴重低落三天,嚴重到我爸媽問我怎麼了,今天這件事來看好像又更能體會一點了。


Robots Exclusion Protocol

Google Webmaster Central Blog 昨天發表了Formalizing the Robots Exclusion Protocol Specification這篇文章,介紹到 Robots Exclusion Protocol (REP) 這個正在標準化的草案,REP 其實就是已經被廣泛使用的robots.txt檔案,robots.txt 誕生至今已經 25 年了,當初是由Martijn Koster所設計,早期網路的東西基本上就是先做,設計的不錯大家就跟著抄,不一定會有什麼標準的文件,robots.txt 就是這樣其實一直都沒正式的標準文件,我以前還真的有懷疑過怎麼找不到,直到 Google 這篇文章才確定了,真的一直以來是沒標準的,雖然 Google 衝網路標準太快讓人有不少意見,不過這次我倒是覺得樂觀其成,而且他們也還公開了他們的 robots.txt 的parser matcher lib

消息來源


2018

Baby

2018 年回顧拖了快要半年還沒出來,主要原因是現在空閒時間很少,而且本來想先把記錄組文章的第二篇寫出來,不過想一想還是放棄這個方案,免得到了 2020 年還沒寫好。

去年對我來說變化很大,忙碌到沒有每個月都有拍照,所以放棄以往一個月一張照片的方式,改以文字為主。所以去年有什麼變化呢?去年我換了工作、搬了家、小孩出生然後還買了新車,買車主要是為了方便帶小孩出門時,以前開的是我哥的老車,考慮到安全性和舒適性的問題,決定還是買台新車,然後因為車款熱門所以等很久才拿到車就是。

搬家也是為了小孩,因為考慮到本來住的兩房不夠大才搬的,本來有一間很大環境不錯、價錢不錯還有車位的陰錯陽差沒租到,不過那間缺點是比較偏僻,之後又一直找不太到適合的,然後現在租的也是有點運氣才租到的,本來跟房東約好週末要去看房子,結果前一天房東就打來說租出去了,然後又過了不知道多久那位房東又打來說本來要租的因故無法承租了,然後才輪到我有機會去看,然後一看就覺得不錯就先訂下來,大約是二十年的房子,實際上住進來當然還是有些缺點,不過還算 OK,不過有覺得現在的空間也還無法以後給小孩獨立一間房間,大概過幾年又要再看看了。

工作的部分,其實現在也有點想不起來完整決定離職的原因,不過之前工作有段時間有心理影響生理的狀況出現,現在的工作則是託朋友的福才有的,當時其實最想要的是找國外的遠端工作,第一目標是 Elastic,對於 Kibana 開發還蠻有興趣的,不過可惜連履歷那關都沒過XD,還有一家很想加入的是 DuckDuckGo,其實是第一個投的,履歷的品質和後來的版本差很多,也是一樣沒下文,其它有得到大約兩家的面試機會,不過都沒順利過關,自我評量大概是英文表達能力還明顯不足,現在的工作則是想要的外國公司都失敗後,開始要在國內找時,先有一些朋友來找我,然後我就從中挑了其中一個工作了,其實本來有想公開找的,不過也是還沒機會公開說就確定了。之後大概等小孩大一點就要開始來加強英文了,這部分真的是應該早點開始的。

最後終於要來談談小孩的事了,我家小孩是 5/3 號晚上出生的,剛好預產期同一天,差一點就變成原力寶寶了,不過講真的生產過程也是很辛苦,老婆痛了將近 20 小時,差點就要全餐了,然後還臍帶繞頸,生出來之後給小兒科那邊弄了好久才哭出聲音來,等待的時候真的是很緊張,還好沒什麼其它異狀,大概就是不好帶吧,不愛吃不愛睡,即使到今天已經滿一歲了還是一樣,還好長得很可愛,不然早就忍不住垂下去了(?),說可愛也不是父母視點,是真的客觀來說長得很可愛,在外面常常被當成小女生,睫毛超長,甚至有過一次背著他走路時,路邊一個大叔看到驚呼:「太可愛了吧!」不過隨著年紀越來越大可愛度似乎也有下降了。有小孩之後生活和心境都變化不少,也必須放棄不少東西,要寫的話好像可以寫一堆,所以還是不寫了,不過就是,在某些時候,就突然想起了 About Time 的劇情,曾經一直想著為什麼主角不再穿越時間,似乎現在也明白了。

Baby


➡ 看看其它文章