2019/02/18

Ruby 語法一些不太喜歡的地方

最近學 Ruby 看到一些特性,讓我覺得有點毛毛的,像是 Ruby 的 function call syntax:
list = [0, 1, 2, 3, 4]

list.count()

# 寫可以這樣寫
list.count

count() 還算好,如果是 fetch() 就有趣了:
list.fetch(3)  # 3

# 刮號可以省略
list.fetch 3  # 3

不否認這種特性可以工程師提高開發效率,算是 syntax sugar 吧?但是若沒有一致的 coding srandard,可能會讓整個專案的程式碼變的雜亂不容易閱讀,這樣就變成「syntax salt」了。

list = [1, 2, 3]

# 這個應該沒什麼問題
list.fetch(1) + 5  # 7

# 這個就很容易誤會了
list.fetch 1 + 5  # IndexError




感謝 @david50407 提供 Ruby Style Guide

2019/02/07

Ubuntu 14.04 將停止維護



Ubuntu 14.04 將在 2019 四月後中止維護,還有機器還沒更新的記得更新。

ps. 在 terminal 中執行「do-release-upgrade」即可。

2019/01/16

PHP 5.6 new release

官方原本要在 2018/12 中止對 PHP 5.x 的支援,但 2019/01 還是發布了 5.6 的更新,自動內容大致如下:

  • GD library 的 security fix
  • mbstring 的 bug fix
  • Phar 的 security fix
  • xmlrpc 的 security fix
還沒更新上 PHP 7.x 的人記得更新。

2018/12/27

各家瀏覽器的使用比例

一陣子沒有開 Google Analytics 看資料分析了,無意間發現瀏覽器市場有急大的改變:Google 瀏覽器變成主流。


敝站流量不多,但是跟十年前來比較,瀏覽器的市場的確有很大的改變。

ps. 以後可以不用考慮 IE 系列瀏覽器了 (逃)

2018/12/26

jq (JSON parser) 處理含有 "-" (dash) 的 key 名稱

爬 log 剛好遇到 JSON 的其中一個 key 名稱中有「-」(dash) 符號,所以 console 怎麼寫都有錯誤訊息:
$ cat log | cut -d$'\t' -f 4 | jq   .http-post
jq: error: post/0 is not defined at , line 1:
.http-post
jq: 1 compile error

從錯誤訊息可以看到「http-post」被切斷了。

若 key name 有特殊符號,或是特殊字元,記得要用引號包起來進行查詢:
$ cat log | cut -d$'\t' -f 4 | jq '."http-post"'
{
  "action": "get",
  "name": "John",
  "category": "RD",
}