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)

2017/10/30

Python - numpy 的使用方法

markdown [NumPy Reference](https://docs.scipy.org/doc/numpy-1.13.0/reference/index.html) 數列生成 ``` >>> np.zeros(5) #array([ 0., 0., 0., 0., 0.]) >>> np.ones(5) #array([ 1., 1., 1., 1., 1.]) >>> np.arange(5) #array([0, 1, 2, 3, 4]) ``` [更多的數列生成](https://docs.scipy.org/doc/numpy-1.13.0/reference/routines.array-creation.html) 數列變形 ``` >>> np.arange(12) #array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) >>> np.arange(12).reshape(2,6) #array([[ 0, 1, 2, 3, 4, 5], # [ 6, 7, 8, 9, 10, 11]]) >>> np.arange(12).reshape(3,4) #array([[ 0, 1, 2, 3], # [ 4, 5, 6, 7], # [ 8, 9, 10, 11]]) >>> np.arange(12).reshape(4,3) #array([[ 0, 1, 2], # [ 3, 4, 5], # [ 6, 7, 8], # [ 9, 10, 11]]) >>> np.arange(12).reshape(6,2) #array([[ 0, 1], # [ 2, 3], # [ 4, 5], # [ 6, 7], # [ 8, 9], # [10, 11]]) >>> np.arange(12).reshape(12,1).flatten() #array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) ``` 查看數列形狀 ``` >>> np.arange(12).reshape(1,2,3,2) #array([[[[ 0, 1], # [ 2, 3], # [ 4, 5]], # # [[ 6, 7], # [ 8, 9], # [10, 11]]]]) >>> np.arange(12).reshape(1,2,3,2).shape #(1, 2, 3, 2) ``` [更多的數列操作](https://docs.scipy.org/doc/numpy-1.13.0/reference/routines.array-manipulation.html)