沒穿方服

封存

顯示╱隱藏內文

ack 簡單易用

本來覺得有 grep 幹嘛還要 ack,用了才知身為懶惰、無力調校 grep 的人,ack 裝備上去效率立刻提升,這 cheap 的感覺相當過癮。

Ack 的好

  1. 打的字比 grep 少:
    grep foobar **/*.rb -ri --exclude-dir=.git 會變成
    ack foobar --ruby

對我來說沒別的了,有興趣請見官網 Why ack

快速完成設定

  • 我選擇裝 standalone 版本,就是單純一支 perl script,不管什麼環境都長一樣。
    依官網 ack: InstallationInstall the ack executable 敘述,curl 一下就裝好了。
  • ~/.ackrc
    基本上是顯示格式、色彩的調整; 進階一點是設定檔案 type,譬如設了 --type-set=log=.log 就可以下 ack foobar --log,只搜尋 *.log
    我的設定:
    --smart-case
    --no-heading
    --no-group
    
    --color-filename=magenta
    --color-lineno=green
    --color-match=bold\ red
    
    --type-set=log=.log
    --all-types
  • 目錄 .ackrc
    Ack 只吃一個全域 .ackrc,但要作到對「特定目錄」設定也是可能的,比如在 .zshrc 設定:
    alias ack='noglob ack $([ -f ./.ackrc ] && tr "\n" " " < ./.ackrc) '
    之後若在 rails app/ 目錄想忽略 vendor/ doc/ test/ 等,就在 app 目錄放個 .ackrc 把它們排除即可:
    --ignore-dir=vendor
    --ignore-dir=doc
    --ignore-dir=test
    --ignore-dir=tmp
    --ignore-dir=public/cache

Ack 的鳥

  • 預設排除 *.min.js

    Pull Request #142,看似體貼,其實難以接受,為什麼不能由 config 拿掉這個規則。

  • 無法指定排除檔案

    grep 的 --exclude 系列選項在 ack 不存在,無法簡易排除名為 *-src.js 的檔案。
    只能等待 ack 2.0 改進了。

Grab and Drag 3.0.1 升級後發生設定跑掉等、有的沒的慘況,所以我一直卡在 2.8.2,
今天才看到 3.1.2 新版,總算把問題解了。


3.1 新功能主要有黑名單編輯(對某些網站停用 Grab and Grag)和更聰明的自動切換選項 ——
在文字上水平拖曳 → 進入「選取文字」模式;
在文字以外的地方拖曳 → 進入「Grab and Grag」(抓拖)模式
—— 這樣幾乎完全不必手動切換了,除了水平選字,其他拖曳都是 Grab and Grag 就對了。


不過碰上 link 佔整行、前後沒文字時,會因為 link 左右沒有「文字」空間可以點,形成水平拖曳也不能選取的狀態:

「檢視所有項目」連結,兩邊沒文字,選不到

我的解決方式是配合 FireGestures,自訂一個腳本手勢 gadGrabAndDragExtension.gadToggle();,再設成「搖擺手勢」,就能在任何位置「先按左鍵、再按右鍵」切換選取/抓拖模式了。

搖擺手勢設定

目前 redis db 我們只用在 rails 頁面快取用途,用過的管理工具僅 telnet。 常做的是 MONITOR 看存取狀況,為什麼行為不如預期, 然後基本的 DEL 把舊值砍掉而已。

Telnet 互動輕快,monitor 的即時性也很方便,不過每次連進去下 monitor 有點麻煩, 而且 SET 系指令會噴大塊字串(顯示寫入的值)洗畫面,太噁心了。

於是寫了個 rails 的 wrapper script, 依賴 redis-rb,且需要某處有 config/redis.yml 寫好連線用的參數
→ 簡易 redis client: scripts/redis-client — Gist

啟動方式

  • 連到 production → ./script/redis-client production
  • 連到 staging,且只顯示 key 開頭為 "staging" 的存取 → ./script/redis-client staging -f \\A\"staging

功能

  • 直接進入 monitor 狀態,可以輸入 m 暫停/繼續 monitor 的輸出。
  • 命令列選項 -f pattern(或 --key-filter=pattern)指定只 monitor 符合的 key,不符就不顯示(只影響 SET、GET 等有 key 的指令)。
  • del 接受 pattern,例如 del *foo*(pattern 會傳給 redis KEYS 指令)。
  • grep 指令,例如 grep foo\\d+(對 KEYS 結果作 ruby grep,這裡 pattern 是 ruby 的 Regexp)。
  • 部分輸出有 pretty print,另 SET、SETEX 不顯示寫入的值(而是值的長度)以節省畫面空間。
連到 staging,Flush All

License: public domain.

情況已稍微好轉

兩週前,終於更換了辦公室的座位,否則我是一秒也難以忍受。
這是一場長病,對工作的責任、與同事的相處、……這些事情,後期為了讓自己舒服一點,我大概都顧不得了。
坐視情緒惡化影響生活,其實有點恐怖,不過當下空白又蓋過恐怖。

症候群

也許基於工具和習慣,我勉強可以繼續開發工作(雖然品質有差),但已經無法平靜思考。 心思會被莫須有的疑問佔據,為什麼有人可以若無其事地插隊(車站)、為什麼下一代的行為跟上一輩同樣醜陋、為什麼這個社會怎樣怎樣…… 能不能施我一個恩惠,我的願望就是 put them to death ——而儘管這麼妄想,卻又認定他們不是真正敵人,嚴肅來說有所保留,有所矛盾。

我的心情愉快不會超過一分鐘。 一個好例子是在通勤中,養成了留意路人嘴巴的習慣,凡是雙唇不閉起來的,除了說話、笑容外,皆引起我的憤怒。 你知道這樣的人有多少嗎? 我開始觀察,結果停不下來了。 這個問題可以積極解決嗎? 我看不行,至今仍受其擾。

成因

環境沒有大改變、刺激一直差不多,但是反應方式變成會特別放大厭惡因素; 像養成運動習慣一樣,不斷訓練怨恨神經,超過半年的實作累積,黑特系統就變得如此 robust 了。

期間同事扮演一個關鍵的被針對角色,可能是接觸時間長、避不掉,所以我理智認為會這麼痛苦,主要是這個人的關係。 註:這個針對只是一個參考(reference),並非否定一個人的人格,換作某些我尊敬的人,同樣會變成痛苦來源。

解救措施

雖然寫得好像很嚴重,但外在應該感覺不太出來。 在被動的時機把話說明了,碰巧也有機會換座位,才得到改善。
人際關係的傷害多少有吧,而接下來要怎麼根治,又是另一個療程了。


播放技術死的次數也大幅增加,大約一天會聽完一輪