Thinking, Coding, and Learning.

先生不知來自何方,亦不知歸去何處,年過而立,參悟生與死,淡泊名與利,但憂天下蒼生。蹤跡走紅塵,藏身山林田野,撫琴於搖滾,振筆於網路,傳道於教學;神遊金庸武俠,往返程式思考,常以此樂而忘眠。... 更多關於我

利用 IAM Policy、以及 EC2 ResourceTag 限制權限,像是只有 DBA 可以針對 DB 機器做動作。不過搞了半天,踩了一個大雷 …. 整理以下 …

Read More

NOTE 2018/08/10: 從 Aug 2018 開始,SAA 已經無法考此版內容,這篇文章算是功成身退囉~

AWS Security Best Practices

使用 AWS 有一段時間,但是真的認真學習相關知識,然後在實務上應用,大概才一年的時間。過程中,覺得 AWS 整個 Cloud 的技術以及 Solution 相當完整,教育訓練也很有系統,加上工作的需求,於是興起考認證的念頭。

剛開始準備其實有點無頭蒼蠅,讀了好幾篇 Whitepapers 和 Guide,發現東西真的是太多了,後來找了一些心得分享,發現官方有完整的 考試指南,才開始收斂準備的方向。

準備考試之前,先確認以下:

  • 考試的範圍:AWS 的東西 非常非常多 ,範圍也是 非常非常大 ,每個 Service 都有一定程度的複雜 (像 EC2, S3, VPC, CloudFront),同時又會相互關聯、以及適當的 Practices,所以知道考試範圍,才知道接下來怎麼安排準備。
  • 實作:考試題目很活,很少記憶性的題目,大多是給予一個情境,然後問用哪些方案,或者做 trouble shooting。盡可能多練習,考試的內容很多是實務上的問題。
  • 盡可能地在實作中,想問題,然後從 User Guide / Developer Guide / Whitepapers / AWS Developer Forums 找答案.

以下是我準備時,所閱讀的東西,有些已經把重點整理在 blog。

Updated 2018/02/15: SAA 已經在 2018/02/15 更版,差異請參閱 AWS Certified SAA-01 Update 的說明

Read More

Study Notes - AWS S3 2016/04/07 21:53:00

S3 全名是 Simple Storage Service,故縮寫 S3,它是 AWS 在 2006 年推出的 第二個 SaaS 服務,有很長的歷史。雖然名字有個 Simple,但其實它不容易。本文整理研讀官方文件、以及工作上遇到的問題,整理以下的筆記:

  • 一、基本概念 (Concepts)
  • 二、核心功能 (Core Functions)
  • 三、存取權限 (Access Control)
  • 四、資料保護 (Data Protection)
  • 五、服務限制 (Limitation)
  • 六、開發 (Development)
  • 七、成本 (Cost)
  • 八、應用場景 (User Scenarios)
  • 九、常見問答 (FAQ)
Read More

Node.JS left-pad 事件 2016/04/07 11:27:00

這件事情 NPM & left-pad: Have We Forgotten How To Program?,似乎在 node.js 圈吵很兇 ….

node.js 現在讓人最困擾的就是: 每個 module 都有小而美的精神,而且都很有個性 (跟 Un*x 很像)。但就是太有個性了,所以讓人覺得隨便的感覺 ….. 特別是很多 source code pull 下來真的是慘不忍睹 … 可讀性差, naming 混亂 ….

一隻 function module 放到 npm, 有可能就會被大的 module 參考. (很多 module 裡只有一行 code 的 ….)

像 left-pad 這種一個 loop 的東西,開發快當然沒問題,但從效能角度來看是有待商榷的,甚至是出局的。

PHP 剛開始的 function 大概就是這樣,超級亂的 function 與 naming / arguments / output … 但是能動 …. 然後 node.js 有些 “慣例性的用法”, 像是 lodash, 熟悉了就還好, 但是可讀性很差. 感覺很像 perl … 寫的人很爽,接手的 XXX 罵不完.

這樣的生態圈發展很快,也非常熱絡,但是對於需要高效能、穩定性、標準化的實務應用來講,還是要多慎選 modules 的使用。特別是效能的評估與架構性。

雖然感覺很亂,語法 (ES6) 在 OO 方面也不夠成熟, 像是沒 interface, TypeScript 才有; 只能宣告成員方法,無法宣告成員屬性; 沒有 private 修飾 …. (可能有,或者有類似的寫法 ….) …. runtime 能否做 profiling, memdump, 分析工具? 重構工具?

但是,天下分久必合,合久必分 …. node.js 還是很棒 + 潮到出水的,值得投資學習 ….

Reference

Read More

AWS Identity and Access Management (IAM) Policy 的整理.

Read More

Architecting for the Cloud (AWS Best Practices) (2016/02) 是 AWS 針對設計雲端架構的最佳實踐原則,描述了很多架構設計要知道的原則。

對於要設計 PaaS 或 SaaS 是非常有參考價值的。另外一篇也是很有參考價值的是 AWS Well Architected Framework.

Updated: 2018/01 我在公司內部教育訓練導讀了此篇,整理 Slide 分享 - Study Notes - Architecting for the cloud (AWS Best Practices, Feb 2016)

Read More

Study Notes - AWS Route53 2016/03/14 21:53:00

整理 [Route53] 的學習筆記。

Read More

DNS (Domain Name Service) 2016/03/14 21:53:00

整理 DNS 概念筆記。

Read More

整理 Elastic Load Balancer 的學習筆記,包含了:

  • Classic Load Balancer (L4 + L7), 上一代的 LB ,已經不建議使用。
  • Application Load Balancer (L7)
  • Network Load Balancer (L4)

內容整理以下:

  • 基本概念
  • 功能
  • 常見問答
Read More

SES SMTP Credentials 2016/02/24 13:30:00

今天在設定新的 SES 的時候遇到設定 SMTP Credentials 和 IAM Policy 權限的問題。

Read More

整理學習 VPC 的筆記。包含以下:

  • 基本概念、設定 VPC 過程問題與心得
  • 相關 AWS 服務
  • 常見的應用場景,包含如何規劃適當的網路架構
Read More

Open File Limit 2016/02/20 23:42:00

Tomcat Log 出現 “Too many open files”

Log catalina.err 出現類似以下的 exception, 然後 application 就掛了 …

1
2
3
4
5
6
7
8
9
10
11
12
INFO: Deployment of web application archive /usr/tomcat/webapps/app.war has finished in 378,373 ms
Sep 2, 2014 10:46:54 AM org.apache.tomcat.util.net.JIoEndpoint$Acceptor run
SEVERE: Socket accept failed
java.net.SocketException: Too many open files
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:375)
at java.net.ServerSocket.implAccept(ServerSocket.java:478)
at java.net.ServerSocket.accept(ServerSocket.java:446)
at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:60)
at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:220)
at java.lang.Thread.run(Thread.java:701)
Sep 2, 2014 10:46:55 AM org.apache.tomcat.util.net.JIoEndpoint$Acceptor run
Read More

一直有透過 Cloudtrail 在了解資源的使用狀況 (為了方便監控,把訊息放到 Slack),可是發現每天都有一些奇怪的 event 如下圖:

這些 event 的特性有:

  • 都是用 root account 在執行 (OMG)
  • 都是刪除 ENI (網卡)
  • 大多都是晚上發生的

一直搞不懂為啥會有這動作,也去問了同事,有沒人在做這樣的動作,可是沒有結論,直到最近我在規劃 VPC 網路架構時 ….

Read More

Migrate Hexo 2.x to 3.0 2016/01/09 00:16:00

Hexo 3.x 有一些新功能,目前我還不知道有啥用,只不過現在用的 2.8.x 在 OS X 執行 codegen 時效能很差,所以想換個版本試看看是否有改善。

更新版本的方式主要是參考 Migrating from 2.x to 3.0

Read More

Docker on OS X?? 2016/01/06 19:41:58

今天同事丟 docker4xcode 過來,第一時間,心裡覺得怪怪的,因為不久前才稍微讀過幾篇介紹 Docker 原理的文章,對於 Docker 為啥能在 linux 上實現,以及有人利用 shell script 一百行的程式實作出 docker,心裡對 Docker 原理大概有個底。那時候也有去了解 Darwin (OS X kernel) 能否支援相關功能,結果是不行的。

Read More

實驗 AWS 兩個 VPC 透過 Peering 方式,可以讓不同 VPC Subnet 可以對連。基本架構如下 (From VPC Peering)

應用實例就是建立開發和測試兩個 VPC,各自有獨立的 Internet Gateway 和 Route Table. 同時也利用 Route53 的 private host zone,建立內部的 DNS 服務。

備註:實驗的過程,用新的 AWS 帳號來做實驗,避免影響正式的服務。

Read More

因為 這個 需求,我先在自己的機器實驗成功後,到公司 AWS EC2 設定。公司 AWS 架構比較複雜,所有的機器都在 VPC 裡面,如果要能夠讓外面進來,只有兩個選擇:ELB 或者是 加掛 EIP。 要讓 EIP 可以出去,就必須走 Internet Gateway (IGW),如果 EC2 Instance 放在 VPC 裡,那麼預設都是走 VGW (Virtual Gateway)。要讓這台機器可以同時在 VGW / IGW 兩端游走,後來想到的方法就是加掛另一張網卡 ENI,只是這張網卡的 CIDR 是在 IGW 的 Subnet。他們的關係大概長這樣:

Read More

把 Windows Server 的 EC2 做成 AMI 之後,利用此 AMI 重新建立的 Instance,就會變成無法取得 Administrator Password,出現以下訊息:

Read More

Linux 語言、語系問題 2015/12/03 22:20:00

整理一些在 Linux 常遇到的語言或語系問題。

Read More

Software QA 的職能條件 2015/10/11 11:08:00

很多事情,換個角度會有完全不一樣的見解。這篇文章整理我個人對於 SQA 職能的一些想法與經驗談。

20230523 更新: 本文部分收錄在 共同著作《軟體測試實務》 第一冊 第一章之中,歡迎大家彭場。

Read More

相容性與維護性 2015/08/22 09:50:30

最近系統遇到相容性的問題,兩個不同的版本並行在線上運作,產生諸多無法預期的問題,像是效能問題、未知的 HTTP 404、503 … 等。問題錯綜複雜,加上歷史包袱的堆疊,加上線上隨時的亂流,形成一種無法控制的風暴。

這讓我思考到幾件事情:

Read More

資深軟體工程師 2015/08/22 00:45:00

工程師要像趙雲一樣藝高、膽大、心細。

有些公司,只要是碩士畢業,就掛 高級工程師資深工程師。。。這種感覺就跟 幹訓班 出來,就掛 將軍 一樣軍銜,名不符實。

只要付得起每個月信用卡循環利息最低金額就可以申辦『白金卡』,這信用還真廉價 …

我覺得:

Title 代表的不是表象,而雇主對員工的是信任、期待與責任

那到底怎樣的條件才可以算是 資深軟體工程師?還有其他的 Title?

Read More

三種 QA (Quality Assurance) 2015/08/20 10:35:30

QA 的工作內容落差很大,要求的條件落差也很大。有的公司 QA 是獨立部門,有的是掛在 R&D 底下,有的則是掛在 PM 底下。

20230523 更新:本文內容部分收錄在 共同著作《軟體測試實務》 第一冊 第一章之中,歡迎大家彭場指導。

Read More

OS X 鍵盤問題 2015/05/27 23:53:00

幾個 OS X 使用鍵盤的問題:

(在不改動系統設定的前提之下)

Read More

面對問題 2015/05/10 21:32:00

跟朋友聊到流程的問題,聊到 這篇文章,整理一下我的想法。

Read More

人生的視野 2015/03/31 13:01:00

關於 人生視野 的問題, 就像用 Google Map 一樣,要學習從不同角度 (街景, 圖資層級, 個人地圖),不同層次 (交通、衛星、吃喝) 來看。學習當看到一個問題,他應該放在哪一個層次,更容易解決,或者說從各種層次去分析問題,權衡輕重。

Read More

為將之道 2015/03/18 10:05:08

為將者,要有遠見、技能、視才知能、執行力、仁德之心等諸多條件。當然資金也會是條件之一,只是比重而已。把這些能力排列組合,一些常見的老闆種類 ⋯⋯

Read More

Shell Script 2015/03/03 15:37:03

記錄一些 Unix/Linux 常用的 shell and script 概念.

Read More

Setup Git Server, and Migrate SVN 2015/02/26 13:33:06
  1. Create git repository in server side
  2. Basic HTTP Authentication
  3. Migrate SVN to Git repository

Notes: CentOS 6.2, Git Client: SourceTree, Github clinet

Read More

Vim Plugins 2015/02/21 13:00:48

延續 上一篇筆記, 這篇繼續整理一些常用的 plugins, 主要都是參考自 “快快樂樂學 vim“ 還有其他 google 找到的, 然後整理我自己覺得不錯的 plugins 和 vim 的設定.

另外因為我在很多台機器工作, 所以我也把這些設定放到 github, 方便轉換使用. 有需要的朋友可以參考看看.

Read More

Vim Notes 2015/02/18 10:05:08

因為經常在 unix/linux 環境工作,vi 一直都是最習慣的 editor。不過用了很多年,其實沒有很認真的把功能都很熟悉過,趁著年假空閒之餘,整理一些個人常用的筆記。

寫 code 或寫文章的過程,其實我不太喜歡在鍵盤跟滑鼠 (or touch pad) 之間跑來跑去,所以看過我寫 code 或者寫文章的人會發現,我習慣記很多 shortcut or hotkey,然後直接在 keyboard 上飛奔,也就是專注在思考做事的內容。套句以前老師說的話,一個 developer 最好把滑鼠剪掉,否則你的工作是沒有效率的。

除了 vi, 另外我還喜歡用 ultraedit, sublime, notepad++. 不過最喜歡的還是 vi 和 ultraedit. 不過自從工作環境換到 OS X 之後, vi 和 sublime 就變成主力了. ultraedit 在 OS X 的 IME (中文輸入法) 有不少問題, 目前我還是觀望中.

Read More

Talk about compiler and parser 2015/02/14 12:20:00

會注意到 LLVM 是剛開始在學 XCode 時, 在 build settings 裡出現 Apple LLVM 6.0, 裡面有很多項目, 像是 Code Generation, Language, Modules, Preprocessing, Warning, … etc, 其實不是很了解他的明白. 不過後來在看 台灣軟體產業的失落十年 這本書時, 作者也提到 LLVM, 找了一些資料來讀, 像是 LLVM 總是打開你的心:從電玩模擬器看編譯器應用實例, 我才意會到這東西是了不起的概念.

Read More

Version Control 2015/02/11 13:30:00

版本控管 (Version Control) 的目的:

  1. 知道改動的範圍 (Scope)
  2. 內部各單位的溝通界面
  3. 問題追蹤的參考索引

以下的說明,是我在 2013 年對內部其他單位溝通時的內容,然後稍作調整,主要描述的是版本控管的目的以及方法。這概念跟 Artifact Management 有很直接的關係。

底下的內容,是 2013 年一部內部訊息,整理出來的,部分內容是停留在當年 (2013) 的狀況.

Read More

Hexo Tuning 2015/01/24 00:16:00

我試著調整 Hexo 的一些細節,包含了解 Themes 結構、修改 CSS、加入 Facebook 的功能、RSS、了解 Plugin 的概念等等。把這些過程心得,都記錄在這裡。調整部分大概如下:

  • 寫文章的小技巧
  • Theme 目錄結構、CSS 微調
  • 好用的 plugins
  • 輔助工具
Read More

Introduction to Embedded Systems 2015/01/22 19:41:58

這份筆記主要是參考 交大開放式課程: 嵌入式系統設計概論與實作 的為主,大部份的內容都是錄影內容的筆記,範圍是 第一週第二週 的內容。然後加入一些我個人的筆記、複習一些知識、還有一些新的想法。

摘要

  1. 計算機結構摘要
  2. 簡介嵌入式系統 (What, Why, How)
  3. 嵌入式硬體開發
  4. 嵌入式軟體開發
  5. 一些好玩的應用
Read More

  • 全站索引
  • 關於這裏
  • 關於作者
  • 學習法則
  • 思考本質
  • 一些領悟
  • 分類哲學
  • ▲ TOP ▲