2017年12月26日 星期二

Jenkins slave離線與 slave service無法啟動

今天發現Jenkins的其中一個slave node突然離線。
經過檢查,該slave的網路良好,與master的網路連線也都正常。

那麼為何會離線呢

查了一陣子發現在Windows service中的Jenkins slave服務無故停止了。
嘗試手動啟用服務,但是都一直顯示服務啟動後又自動停止的訊息。

2017年11月30日 星期四

解決Chrome無法撥放本機Flash檔案

雖然Chrome一直限制Flash使用,不過之前的版本還可以手動允許撥放Flash
但是在Google Chrome更新成62.0版之後,會發現無法撥放Flash
取而代之的行為是變成下載flash檔案,即使我們是拖曳本機的Flash檔案到Chrome中也是一樣。

討論:https://bugs.chromium.org/p/chromium/issues/detail?id=767342


2017年10月30日 星期一

Synology gitlab return 502

之前在群暉的NAS上有安裝gitlab的套件用來練習git的操作。
一陣子沒有使用後,今天打算把資料push到gitlab上後卻得到502的錯誤訊息。
不只是push時遇到這個錯誤,打開gitlab網頁介面也遇到同樣的錯誤訊息。

2017年10月2日 星期一

Redis on windows - 安裝與設定

最近的專案想嘗試導入redis,不過開發的環境是windows server。
這篇是介紹在windows上安裝redis以及設定上踩過的雷。

2017年6月14日 星期三

自動測試與 TDD 實務開發-Day1心得

https://skilltree.my/events/7fbac

雖然課程名稱是測試與TDD,但是如同課程簡介所說:「哥不是教你測試,我們教的是開發」。
當你想開始測試時卻發現似乎有些code很難測試,例如function需要相依外部資源,沒辦法單獨測試此function。
這個時候你就會發現或許你的程式中潛藏著高耦合低內聚的危害。
測試就像一面照妖鏡:「好測試的code不代表code寫的好或是架構好,但是難測試的code一定表示高耦合的code」
課程中不僅僅只是談到測試,而是包含OO原則、開發、軟體設計等議題讓學員們思考。


課程中另外讓筆者印象深刻的反而不是關於測試相關的東西,而是關於開發者對於開發環境的準備以及熟悉度,這會讓你的效率提升至少一倍。
1. 首先是vs(visual studio)的code-snippet功能。
例如只要打ctor後按下tab鍵就會自動產生建構子(constructor),打prop可以產生field等。這些都可以省下大量時間。

2. vs的快速鍵。
例如程式碼註解、反註解;執行測試;用搜尋取代滑鼠滾輪尋找程式片段等。

3. 外部工具。
課堂中提到wox這套工具可以取代許多系統的功能(比如說windows中非常緩慢的檔案搜尋功能)。wox還有許多外掛可以安裝,可以使用非常簡短的指令來達成許多事情,例如幫你google、線上翻譯、搜尋並開啟程式等。



2017年2月13日 星期一

LINE bot webhook 回應SSL certificate is invalid

這次遇到一件奇怪的事情
之前透過ssl for free申請的ssl cert設定好之後
讓瀏覽器開啟https有成功的認證網站具有合法的ssl cert
但是把網址填入LINE bot的webhook url,LINE bot的測試結果會回傳SSL certificate is invalid

筆者先把先前透過ssl for free申請的憑證從DSM中移除之後透過DSM6內建的功能去Let's Encrypt申請一張新的憑證後即可讓LINE bot驗證成功
目前不清楚發生原因,可能的原因也許是之前申請時是使用Web Station+虛擬主機的方式,而實際使用時是用反向代理+web service in docker的方式造成驗證不符合?



2017/03/02 update:
透過DSM新申請的憑證當下是可以驗證成功,但是過了一段時間之後一樣會發生同樣的問題。
目前推測是因為使用ddns的domain,懷疑也許dns cache使得LINE bot解析到錯誤的ip導致驗證失敗。
筆者現在改成使用固定ip就可以成功驗證,目前還在持續觀察這個問題。

2017年2月5日 星期日

在開發環境使用ngrok測試LINE bot(webhook)

在開發LINE bot途中遇到一個問題:如何在開發環境(本機)上取得、測試LINE message?

LINE bot的運作流程是這樣的:
1. 使用者傳送訊息到LINE bot帳號
2. LINE bot收到訊息後會將訊息post給Webhook URL
3. Webhook URL就是我們所寫的web service,負責實際處理收到的訊息

問題發生在2到3之間:
1. 首先是Webhook URL必須是公開的網址才能讓LINE bot呼叫,而開發環境(本機)上一般都是私有網址如http://localhost/api/
2. 其次是LINE bot要求Webhook URL必須有SSL,也就是必須是https

正規的做法就跟設定營運環境(production)一樣,買個public domain、弄個固定ip、申請ssl cert、安裝設定ssl cert & 網路環境...balabala

可以不用這麼麻煩
  

2017年1月10日 星期二

測試到NAS間的傳輸速度

今天傳檔案到NAS上時發現速度非常悲劇,只有3.5MB/s


















排查了好一陣子,最後找出是因為網路拓樸的關係才導致速度大減
重新調整一下網路後就達到11MB/s



























儘管現在已經把連線弄好了,不過一個同樣浮現在筆者腦中:

我們怎麼測試跟NAS之間的傳輸速度?


2017年1月4日 星期三

申請免費SSL認證

這台NAS上的網站是為了給LINE bot使用的network service
但是LINE bot要求的webhook網址必須是https
因此我們必須去申請一個SSL認證