2017/11/21

mac - 關閉 chrome 的兩指滑動換頁功能

markdown 在 mac 上的 chrome 有一個功能是使用兩指向右滑動可以回到上一頁,可是幹,我只是想看左邊的東西欸,所以我找到怎麼把這個功能關閉的方法。 在 bash 下輸入以下指令: ``` defaults write com.google.Chrome AppleEnableMouseSwipeNavigateWithScrolls -bool false defaults write com.google.Chrome AppleEnableSwipeNavigateWithScrolls -bool false ``` 然後重開 chrome

2017/11/8

rails - encode & decode

markdown HTML encode ``` require 'cgi' CGI.escapeHTML('<') # "&lt;" ``` HTML decode ``` require 'cgi' CGI.unescapeHTML('&lt;') # "<" ```

mac - 移除所有 ANSI escape code

markdown 當你用 rspec 跑測試並且生成結果檔案時,檔案的內容可能會包含 [ANSI escape code](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors) 所表示的顏色。 舉例來說,如果你用以下程式跑測試: ``` rspec --format documentation --out result.txt ``` 你可以使用 cat 去讀他 ``` cat result.txt ``` 結果看起來像這樣:
但是打開 result.txt 時,你會看到這樣的東西: ``` ... Finished in 1.76 seconds (files took 6.55 seconds to load) [32m1 example, 0 failures [0m Randomized with seed 1 ``` [32m [0m 代表的就是顏色,這被稱為 [ANSI escape code](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors)。 但是我希望讓他消失,在請教大大之後得到一個不錯的解法,有人用 node.js 做了一個簡單的指令[strip-ansi](https://github.com/chalk/strip-ansi-cli)。 安裝方法(如果你有node.js) ``` # 這裡是 bash npm install --global strip-ansi-cli ``` 使用方法 ``` # 基本用法 strip-ansi 字串 # 透過 | cat 輸入檔案路徑 | strip-ansi > 輸出檔案路徑 ```

2017/11/6

Ruby - warning: toplevel constant B referenced by A::B

markdown ##問題 warning: toplevel constant B referenced by A::B ##成因 當 A 是一個 class 且 A::B 還沒有被定義時,ruby 找不到 A::B 時,若 B 有定義,就先使用 B, 而不是拋出 Module#const_missing。 ``` class A end A::String #warning: toplevel constant String referenced by A::String ``` 但 rails 的 autoload 是透過修改 Module#const_missing 而完成的。也就是說,rails 還來不及 autoload 就已經被 toplevel constant 攔截了。 ##解法一 在使用到 A::B 的檔案前面都加 require_dependency 'a/b' ##解法二 在使用到 B 的檔案後面加 require_dependency 'a/b' 確保 rails 不可能會有知道 B 的存在但不知道 A::B 的存在的可能發生。 參考文件 [http://stem.ps/rails/2015/01/25/ruby-gotcha-toplevel-constant-referenced-by.html](http://stem.ps/rails/2015/01/25/ruby-gotcha-toplevel-constant-referenced-by.html) [https://stackoverflow.com/questions/18515100/warning-toplevel-constant-referenced](https://stackoverflow.com/questions/18515100/warning-toplevel-constant-referenced)