0%

AWS 的限制

  • Security group 的 description 不可以更改,如果一定要更改,要先刪除之後再重建
  • EC2 跟 RDS 至少要有一個 security group,不可以完全沒有
閱讀全文 »

最近在鼓搗 Terraform,遇到了幾個 Terraform 還沒有解決的問題,在此一併跟使用上的小技巧一起記錄下來,希望可以幫助到也想要嘗試看看 Terraform 的同好。

這篇不會包含 Terraform 的 Getting Started,請移駕 Terraform 官網。通常我會建議初學者將 Terraform 實際應用到 AWS 上。

  1. 首先 AWS 非常便宜。如果我沒記錯的話不滿一小時的時間會被加總,加總後不滿一小時以一小時計,例如開 3 次每次 10 分鐘,月底計費的時候就會加總成 30 分鐘,只收一個小時的錢。
  2. 再來 Terraform 也可以很方便地 destroy 掉任何 Terraform 留下的痕跡,當然已經建立的 EC2 instance 等 resource 也不會受到 Terraform 的操作影響。
閱讀全文 »

這篇文章適合使用 MongoDB 與 Mongoose 的 Node.js 開發者

2017-06-14 更新

之前有提到效能方面的問題,現在 test case 已經成長到 600 多筆,還沒有發生非常顯著的效能問題,因此 db.colleciton.ensureIndex 理論上可以放心使用了。

前言

如果是 TDD 風格的測試,通常會經過以下步驟:

  1. before hook function 準備環境。
  2. describeit 執行測試,有時候還會有 context
  3. after hook function 收拾殘局。

在準備環境的階段,通常會建立一個暫時性的資料庫,讓 test runner (e.g. Mocha) 去模擬資料庫的讀寫,最後在收拾殘局的階段把資料庫刪掉。如果專案採用的資料庫是關聯式資料庫,因為資料與定義是分開的,這個程序基本上不會有什麼問題;但如果採用的資料庫是 MongoDB,adapter 是 Mongoose,那要特別注意資料庫被刪除的同時 collection 的 scheme 也會被一起刪掉

閱讀全文 »

瑣事

  • TWIL 系列中斷了大概兩個禮拜。這段時間都在重新尋找自己的職場定位與找工作,等找到新工作之後再把中間這段空白歸納成一篇文章填補回去。
閱讀全文 »

瑣事

Lebab

應該不太有人會有這個需求,要把 ECMAScript 5 轉成 Babel。我的情境是 Middleman 會很雞婆地在部署前試著處理 JavaScript,卻無法處理 ECMAScript 6 的語法。然後個人感覺 Middleman 社群對於支援 ECMAScript 6 這件事也是愛做不做的,所以我只好先用 Babel REPL 把 Babel 轉成 JavaScript 讓 Middleman 可以成功部署。

後來想想還是把 Daily UI 的成果放在 Codepen 好了,畢竟人家都幫你準備好 SCSS + Babel 的環境,不用自己架還不用那真的是太對不起自己了。所以呢,我決定把原來 ECMAScript 5 的程式碼轉換回 Babel。以免訪客以為我只會寫 ECMAScript 5 卻不會 ECMAScript 6。這件事很重要啊!如果訪客是你下一份工作的面試官呢?

有發現 Lebab 是 Babel 倒過來嗎?

閱讀全文 »

前言

TWIL (abbr.) = This Week I Learned

這個星期我學會了什麼。

例句:從這個星期開始,我會每個禮拜整理一次 TWIL。

由於之前生活比較混亂,導致應該每個星期都要整理這個禮拜我學了什麼的習慣就這麼中斷了。為了在往後幾年讓自己有辦法回顧自己這幾年學會了什麼、不枉此生,開始養成固定寫 TWIL 的習慣。

閱讀全文 »

說文解字:雜記

就是沒有整理過的筆記,內容沒有結構而混亂,筆者想到什麼就寫什麼。

例句:這一篇文章是一篇雜記。

前言

  • Elixir 少說也研究了一個月,個人對於該語言揉合了 Ruby 與 erlang 的特性格外著迷。
  • Elixir 實務上是一種執行在 erlang VM 上的語言,而且已經完成了程式語言的 自舉 (bootstrap)。
    • 以 Elixir 為例,所謂的自舉就是 Elixir 編譯器的絕大部分模組都已經可以使用純 Elixir 實作,只留下極少部分不得不使用 erlang 的部分,才會借助 erlang 完成。
    • 程式語言完成自舉有什麼好處?
      • 一是如果一項程式語言完成了自舉,那麼該語言的開發者相對來說就比較不需要擔心如果一開始實作該編譯器的語言有任何劇烈變動,會連帶影響到自己的專案。ref.
      • 二是自舉算是一項挑戰。如果一種語言可以完成自舉,代表這種語言在一定的程度上已經足以完成複雜的工作。ref.
閱讀全文 »

目標

讓 DevOps 可以在一鍵部署 準上線狀態 的 AMI。

所謂的準上線狀態,是這個 AMI 已經包含了…

  1. 最新版的 Ruby on Rails 程式碼。
  2. 連線到 consul 的連線參數。

當 AMI 啟動的瞬間,產生的 EC2 instance 會連線到 consul,取得其他更敏感的系統參數。然後使用 consul-template 工具將系統參數注入到 Ruby on Rails 可以取得的位置,以 Sudo 主站為例,延續 capistrano 配合 figaro 的慣例,這個位置在 config/application.yml

閱讀全文 »