2016年6月30日 星期四

[Mac] 使用 Screen 與 RS232 裝置互動,進行 log 分析 @ Mac 10.11.5

今天又跑去偷看 embedded linux 的 console 了,用法(/dev/tty.usbserial 跟 driver 有關):

$ screen /dev/tty.usbserial 115200

若需要仔細看 screen output 時,可以把加大 screen output buffer 或是把 log 寫到檔案

加大 screen buffer size (支援200000 line 輸出) :

ctrl + a + : + scrollback 200000

若覺得還要用 ctrl + a + [ 去追 log 實在很不方便,就是試試把log寫出來吧

ctrl + a + H

如此就會蹦出個 screenlog.0 檔案,可以搭配 vim, tail -f + grep 來使用,例如追蹤 download、upgrade 字眼:

$ tail -f screenlog.0 | grep "download\|upgrade"

如此交叉使用,應該可以解 bug 吧...

[Linux] 系統時區設定與檢查 @ Ubuntu 14.04

習慣在 AWS EC2/RDS 採用 UTC +0 的時區,然後在自家 VMware ESXi server 架設機器沒留意(忘記是選了台北時區還是從台灣下載 Ubuntu ISO 的差別),導致開發與正式站的時區不同 :P 筆記一下驗證與處理方法。

查看系統現況時間
$ date

查看系統時區資訊
$ cat /etc/timezone
Asia/Taipei

設定時區: None of the above -> UTC
$ sudo dpkg-reconfigure tzdata


將相關服務都重啟,像是 Web server 有用到 PHP-FPM 就要重啟動,這樣 PHP 環境才會拿到正確的時間

2016年6月24日 星期五

人生閱歷的省思

近期發生不少事,心情不斷浮沉,稱不上好或壞,或許是最美好的壞時代?處理不少意外蹦出來的事件後,讓我深刻地感受到:人生不可能沒有煩擾。

貧困的時,憂心著下一餐在哪裡;略有小成時,憂心著工作是否有未來;略有口袋時,朝朝暮暮想著房子下落;有小孩時,擔憂著小孩的撫養、教育;小孩長大後,擔心考試、升學、伴侶、結婚、買房,再一次循環;有錢人,則擔心著投資報酬率不如預期。無論怎樣,總是會有一件事讓你掛心的。同理用在面對未來下一步時,到底準備好了嗎?答案是根本無法準備好 XD 只能以當下的資源評估,並朝期待的路線走下去。

當這些思索靜心後,沒有什麼安全路線 :P 安全的路線大概就是平淡的一生,在一間大企業做個安穩的上班族吧!我想,該開始朝著增加亂度的路線了。

2016年6月23日 星期四

[PHP] 使用 Google api client 操作 Google Spreadsheet API (Google Docs - Excel)

最近在整理資料,由於使用情境尚未明朗,想了一下就把資料塞到 Excel 來呈現,要排序、輸出跟轉 PDF 檔都 ok ,再加上有定期更新的需求,就來找一下 Google Spreadsheet API 來用用:https://developers.google.com/sheets/ ,程式擺在:

https://github.com/changyy/codeigniter-library-google-spreadsheet

由於同事比較熟 PHP ,就繼續挑 PHP 路線了 :P 沒想到 PHP 相關的 library 滿少的,大概都推薦 github.com/asimlqt/php-google-spreadsheet-client 這套了,但他採用的 API 所實作出來的有些侷限,但已經可以滿足八成的需求了!

最後為了達成自己想幹的事,在 k 完文件跟摸索後,還是自己下海包一份當作筆記(實在是官方文件都沒寫很清楚,只能自己追細節),包括的功能:

  • 支援單獨使用,以及和 PHP CodeIgniter 合用
  • 使用 composer.json 維護相依性:只有使用 google/apiclient: https://github.com/google/google-api-php-client
  • 使用  Google Spreadsheet API v4
  • 取得 Spreadsheet 清單 (使用 v3 API)
  • 建立 Spreadsheet
  • 修改 Spreadsheet name
  • 建立 Worksheet
  • 刪除 Worksheet
  • 可對 Worksheet 凍結視窗(frozenRow/frozenColumn)
  • 更新 Cells 資料
  • 搭配 Web server (如 CodeIgniter Controller 架構),可以完成 Google OAuth 流程,取得 Access Token 跟 Refresh Token
  • 搭配 Google OAuth offline 權限,可以自動 renew access_token

整體上,若不需要建立 Spreadsheet 跟 frozenRowColumn 的功能,建議直接用 asimlqt/php-google-spreadsheet-client 即可,我只先完成自己需要的部分。

2016年6月8日 星期三

使用 Azure 寄信方案 - SendGrid: Marketing & Transactional Email Service

SendGridDashboard

上週出了個大包,原先採用 AWS SES 寄信時,因為綜合原因導致 bounce rate 上升,接著就被停權使用 AWS SES 服務了!這件事說小事也可以,說嚴重很嚴重,單就看你的服務營運跟面對的心態。我把它當很嚴重的事來處理 Orz 包含盡可能跟 AWS 業務互動,再來沒打通 AWS SES 服務前,就趕緊找找替代方案了!

除了用自家的 mail server 寄信撐外,就來找找其他家服務了,於是乎 Azure 就出現了、SendGrid 也出現了!

使用 SendGrid 真的還滿方便的,除了可以查詢寄了哪些信外,什麼都沒做還能提供使用者開信紀錄!真是太便利了。

只是談錢就傷感情了 XD
使用 Sendgrid 一個月發送 40k 封信,要價 9.95 歐元;假設一個月送 40k 封信,若每封 500kb,採用 AWS SES 則是 20GB 流量/month + 1333 封信/day ,總價不到3美金。