Software entities (class, modules, functions, etc.) should be open for extension, but closed for modification. Junior programmers create simple solutions to simple problems. Senior programmers create complex solutions to complex problems. Great programmers find simple solutions to complex problems. 註1:本部落格的範例程式碼在 2015 年以前的文章中,大多是以全型空白做縮排。如需服用,請自行用文字編輯器的取代功能把全型空白取代成半型空白。
- Bertrand Meyer
- Charles Connell
註2:本部落格的內容授權請參閱部落格底部的授權宣告。
2017年11月21日 星期二
2017年11月16日 星期四
在 Elasticsearch 上安裝 X-Pack
因為想要監控 Elasticsearch,所以就試著安裝了 X-Pack。
X-Pack 安裝流程請直接參考官方文件 [1] XD
因為只有幾個動作而已,這裡就省略了。
yum 鎖定軟體版本
以我的狀況來說,因為我的 Elasticsearch 有使用一些有限定版本的擴充套件
因此要避免 yum 不小心幫我把 Elasticsearch 升級。
要作到這個效果,可以使用 versionlock 這個工具
例如以下這樣,可以把 elasticsearch 和 kibana 套件鎖在目前安裝的版本上。
yum install yum-plugin-versionlock yum versionlock elasticsearch-* yum versionlock kibana-*
參考資料
2017年11月12日 星期日
從 Jupyter 讀取 Windows 磁碟中的鐵達尼號資料
在書上的範例中,提到用鐵達尼號的資料做分析
不過書上範例所指的資料位址已經無法存取了。
稍微搜尋了一下,發現 Kaggle 也有提供這個資料 [1],而且是免費的。
從 [1] 下載資料下來之後,假設是放在 D:\test\data\titanic 這個資料夾裡,訓練用的資料命名為 train.csv
import pandas training_data_path = "D:\\test\\data\\titanic\\train.csv" # Read training data. training_data = pandas.read_csv(training_data_path) print(training_data)
路徑要記得跳脫,才能正確找到檔案。
參考資料
2017年11月7日 星期二
透過 Anaconda 安裝 Tensorflow 與 Keras
- 下載並安裝 Anaconda
- 執行以下的指令建立 Python 虛擬環境
conda create --name tensorflow python=3.5 anaconda
- 啟用虛擬環境
activate tensorflow
- 安裝 Tensorflow
pip install tensorflow
- 此時想再使用 pip 會出錯 [1],要先以下述指令強制重新安裝 html5lib
conda install --force html5lib
- 安裝 keras
pip install keras
參考資料
2017年9月21日 星期四
Elasticsearch 去除重複資料
最近一直在處理 Elasticsearch 資料重複的問題
程式當中想要在插入資料之前,先搜尋有沒有重複的資料
如果有的話就先把重複的資料砍到剩下一筆,然後針對那一筆做資料更新。
不過實務上,程式跑起來有些會成功完成 deduplication,但有些則依然重複。
2017年9月13日 星期三
透過 AWS Lambda 開發 Serverless Framework(三):使 Lambda 函式擁有 Internet 存取權
Lambda 函式在部署的時候,預設是不會帶有任何網路設定的
因此我們沒辦法知道 Lambda 實際的 IP 位址等等的資訊。
在一些單純的程式中,這可能沒什麼
但如果是在系統的 pipeline 裡,Lambda 需要去存取其他非公開服務時,可能就會有問題了。
2017年8月17日 星期四
透過 AWS Lambda 開發 Serverless Framework(二):開發 RESTful API
從前一篇文章中,可以看出 Lambda 是一種以事件來觸發的架構
理論上因為 RESTful API 也是以事件觸發的,所以應該也有機會變成 Lambda
不過 JAX-RS 的結構又跟 Lambda 的結構不太一樣,所以到底行不行呢?
2017年8月16日 星期三
eclipse 在 Windows 10 發生使用 git 就無回應的問題
最近突然 eclipse 發生了只要使用任何 git 功能,eclipse 就會陷入無回應的狀況
困擾了一段時間,在經過有點努力的搜尋後,終於找到問題的原因和解法了!(歡呼貌)
2017年8月2日 星期三
透過 AWS Lambda 開發 Serverless Framework(一):接收 Kinesis 訊息
AWS Lambda 是 AWS 發表並大力主打的 Serverless 服務之一。
在談怎麼使用 Lambda 之前,也許可以先談談為何要使用 Lambda?