2015年1月30日 星期五

MySQL CONVERT_TZ return NULL

在 local dev 環境想要 reproduce 一個 bug 的時候,
卻發現在我的環境 MySQL store procedure 的行為和 production 機器上的不一樣

原本以為是 store procedure 的邏輯有問題
最後發現原來是 CONVERT_TZ() 搞的鬼...

因為我的 local dev 環境是自己從零開始 setup 的
沒想到 CONVERT_TZ 這個 MySQL 內建的 function 需要一些 initial data
不然只要丟給他轉換的日期時間都會回傳 NULL....

解決方法就是
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql
這樣就會把 zoneinfo 轉成 CONVERT_TZ 所需要的資料
我的 local dev 環境的行為就恢復正常啦~



Reference:
http://stackoverflow.com/questions/14454304/convert-tz-returns-null

2015年1月26日 星期一

Nexus 5 鏡頭蓋破裂更換

N5 的相機鏡頭因為設計上是突出背殼
而我很喜歡裸機的感覺,也沒有使用保護的手機殼
所以不知不覺中,鏡頭蓋就裂掉了

剛開始裂掉也還好,感覺拍照沒有影響
但是後來又掉進馬桶以後
拍出來的照片就臭臭的(?
不對,是霧霧的.
可能是因為會慢慢有髒東西從裂縫跑進去...

雖然說我之前被淘寶詐騙了一次
天兵賣家寄錯地方卻不退錢
天貓店小二介入後說要退我錢卻遲遲沒有下文...
但是上網找了一下 N5 的零件,
果然強國的淘寶什麼都有,什麼都不奇怪.
於是我只好放下羞恥心
再去淘寶消費了.... 因為零件真的很便宜啊...被坑就認了....

N5 鏡頭蓋破掉的話,有在賣的零件組合有
鏡頭蓋
鏡頭蓋含鏡頭框
背板

因為我覺得要把破掉的鏡頭蓋從鏡框拿出來有點麻煩
所以就買了鏡頭蓋含鏡頭框
幸運的是,我的猜測是對的!
含鏡頭框的組合只要多幾十元
但是鏡頭片是裝好的~所以我不用再從舊的拆下來,

要更換背板上的鏡頭片
所需要的道具只有
塑膠拆機片 + 小十字螺絲起子

N5的背殼是用幾個卡榫扣住而已而已,
背板則是有六個小螺絲起子鎖住,轉開後
背板的左右兩側有稍微扣住,選一邊壓開後,就可以把背板拆下來.

鏡頭框則是卡在背板的洞上,
所以稍微彎折一下背板,就可以把鏡頭框整個推出來.

最後的結論是,要方便的話,
只要買鏡頭框+鏡頭蓋的組合就好了~

如果想挑戰手藝,則可以只買鏡頭片
背板應該是不需要買 (還是說有人覺得拆鏡頭框也是一種麻煩?)
我一次買兩組...因為想說可能過一陣子又會破了吧...哈哈..








2015年1月13日 星期二

AWS CloudWatch Estimated Charge Alarm


如果有在用 AWS, 建議可以在 CloudWatch 裡面依照 usage estimation 設定 Alarm.

目前可以根據 EC2 usage, s3 usage, data transfer usage 設定 Alarm 通知.

例如你平常每個月差不多只會有 1000GB 的 data transfer 費用約 USD 89,
那你可以設一個 Alarm 當 data transfer 費用超過USD 100的時候發一封 mail 通知你.

或者是你的 AWS account 每個月 budget 或者平均費用是 USD 100,
那你也可以設定一個 Alarm 在超過你預計的費用時發一封通知信.

沒有設定 Alarm 的話,你可能在收到帳單時才發現在 AWS 上花的錢超過你的預估
反之收到 Alarm 通知,可以讓你即早發現帳戶內的異常行為和非預期的費用

CloudWatch 的 Alarm 計費是 0.1 per alarm per month
我們最近上了一堂 USD 6000 元的課... 就是被 Data Transfer 的費用陰了...

當然一定還有其他的方法可以避免你在 AWS 上花冤枉錢
但是花幾分鐘設定 Alarm 我覺得 CP 值很大....

See Also: Monitor estimated charge with AWS CloudWatch