沒穿方服

首頁

團隊在 rails console 用了 ap 來顯示每個指令的執行結果,有好有壞,缺點之一是遇上層層包疊的類別,又沒有特別處理 inspect 方法時,會直接輸出大段文字,格式難看,干擾開發。

其實 ap 會對特定類別調整顯示,例如 ActiveRecord::Base 物件會被顯示為 attributes 的 hash,但想自訂其他規則的話,目前還沒有簡單方法。

最後用了 monkey patch 達成,對想改的類別逐一動手,暫時夠用了。 我改的是 PG::ResultReform::FormTrailblazer::Operation 三個類別,見 gist,放到 Rails 專案的 config/initializers/ 下面。

例子,PG::Result 物件

調整前,顯示的是 inspect 結果,加上 raw 選項會漂亮一些,但資訊不算有用。 調整前

調整後,模仿 AR 顯示查詢出來的記錄。 另外如果有裝 table_print,可以選擇輸出 table 格式。 調整後

總算可以簡單偵測分頁關閉,發生順序是 TabLeaveTabClosedTabEnter,在 TabClosed 的時候就能取得新的 tabpagenr('$') 了。

簡化 Vim 切換至最後選取的 tab 功能:

if exists('##TabClosed')
  function! LastTab(act)
    let lt = g:lasttab

    if a:act ==# 'TabLeave'
      let lt.prevLeave = lt.leave
      let lt.leave = tabpagenr()
    elseif a:act ==# 'TabClosed'
      let lt.leave = lt.prevLeave
    elseif a:act ==# 'switch'
      let to = lt.leave
      if to == tabpagenr()
        echo 'Already on last tab.'
      else
        execute "tabnext " . lt.leave
      endif
    endif
  endfunction

  if !exists('g:lasttab')
    let g:lasttab = {'leave':1, 'prevLeave':1}
  endif

  autocmd TabLeave * call LastTab('TabLeave')
  autocmd TabClosed * call LastTab('TabClosed')

  nnoremap <silent> <LocalLeader>t :call LastTab('switch')<CR>
  inoremap <silent> <LocalLeader>t <C-\><C-N>:call LastTab('switch')<CR>
endif

Vim 已經有一個盤古之白的專案 PanGu.vim,但我還是另外寫了 bootleq/vim-wordword

根源問題

大部分語言書寫都是以空白作文字區隔,例如 this one 兩字中間的空白;
而中文是一個例外,我們每個字都是連在一起的

當混用兩種文字系統時,例如「word文字word」,就不知道交接處要不要加空白了。
雖然不會有「word文 是一個字,字word 是另一個字」的問題,但「word文字」連在一起又似乎和「word 文字」有不同意境。

Word divider 相關花絮

  • 西方歷史上也有完全不使用空白和符號間隔的 scriptio continuaVergilius Augusteus, Georgica 141

  • 日文一般來說和中文一樣,但包含大量假名時可以有例外,比較像韓文(未確認),在真正斷字的地方加上空白。

  • CSS4 有個 text spacing 草案,但好像沒有明確相關的部分。

精簡的 Vim 盤古之白實作

因為 Vim 的 regexp 可以搜尋 word boundary,又 multibyte 文字永遠被視為 word(見 'iskeyword'選項),所以其實只要 :%substitute/\>\<./ \0/g 就搞定了加空白的工作。

Vim plugin 適合 Unix 哲學

比起處理更多(甚至包含未有定論的)排版規則,專心做好「加上空白」比較重要。
而要發揮工具的最大價值,應儘力減少在 Vim 中使用它的成本,例如提供 user-operator 或其它容易呼叫的介面。

處理了一個以日文 IME(半型假名模式)輸入數字時,按下 Enter,值就變成 2 倍的狀況。

組字中,輸入 123 組字完成,值變成 123123

這個表單用了一個自訂的 angular $formatter,每當輸入值變動時,便即時把非數字的字元移掉(使用 $element.val(newValue))。

先不論在 $formatter 中變更元素的值是否恰當,這個問題最後被釐清為一個情境,就是在 compositionend(IME 組字完成)事件中,如果以 JavaScript 修改 <input> 的 value,會發生什麼事呢?

經測試,Firefox 在「IME 送出字串」和「JS 設定的值」相同時,input 可以接受該值;反之不相同時,input 的值會被取消(變成空的)。

而這次的 bug 只會在 Google Chrome 上發生,input 內容會是「JS 設定的值」,後面再接著「IME 送出的最後一組字串」,合起來就是前面圖中的 123123。

測試用 jsfiddle:

Workaround

藉由 setTimeout 讓設值在 compositionend 之後再執行。

2014 生祥樂隊「我等就來唱山歌」發行 15 週年紀念演唱會,6/7 在 Legacy Taipei。

台灣流行音樂是不是庸俗的製造工業,我們有沒有嚴肅的狹義搖滾? 需要最硬最深刻的音樂要找誰?我的答案就是交工樂隊,而且僅此一支,遺憾的是從沒看過現場,解散了嘛。 幾次看生祥演出風神 125,總覺得少了嗩吶還是欠一味,這回總算逮到機會,看到編制就確定買票。

特別跟台灣的金屬樂團怨一聲,你要嘛夠幽默,要嘛有文化,不然再黑再兇也硬不起來啊。

意外的早 SOLD OUT

通常我聽的音樂,票都賣不完,而且 indievox 這次居然只能 iBon 取票,基於抵制統一我就沒急著搶,結果 5/27 就沒票了…… 幸好發生好運 no.1 徵到一張,否則真會嘔死。 非常感謝你錢同學。

生祥的音樂我身邊愛的不多,他們不喜歡主唱客家人扁扁的嗓音 (?),而交工樂隊解散後,沒了嗩吶和鑼鼓也變得比較清淡,和現代流行音樂的刺激度有差。 這次這麼快完售(700 張票)其實有點意外。

當晚我就開演前 10 分鐘才到 legacy —— 裡面居然是滿的,還列了椅子! 我怎麼能坐著聽搖滾呢?

更慘的是要坐在後段的位子,跟預期完全不符。 坐了幾分鐘覺得不行,就往前尋覓,終於出現好運 no.2,四排有個非「這邊有人坐喔」的空位,非常感謝妳美女。

見證新音色、新編曲

開頭曲也是專輯的開頭曲「下淡水河寫著我等介族譜」,阿太的阿太太的時節啊(曾祖父、曾曾祖父的時候)……
起頭是一段月琴伴奏的清唱,講美濃人的族譜,立刻帶進一股時光滄桑的悠久感,感覺我們好老,還好電月琴是新的。

這首中間就進入全編制讓大家第一次聽見所有樂器的聲音。 我還沒聽過「我庄」這兩張,所以連大竹研的電吉他(印象中都彈木吉他)和早川徹的電貝斯都覺得新鮮, 加上打擊(吳世墉)和吹奏(黃博裕),確定水準完全超出預期,中樂透。

重現反水庫,「好久沒有唱這些歌」

「夜行巴士」插電版。 這首重 riff 的歌,插電後大幅翻升的威猛度先不說,賺我一把老淚的,果然還是鐘永豐的歌詞。 好的故事在現場聽對的代言人講述,果然不是錄音可比擬。

「想我這一生人就要無效喂,但是這次我不會再膦棍喂」

整場演出後面都有投歌詞字幕(看得懂的,非客語用詞),雖然有點礙眼,但我自己也偶爾要偷瞄,就接受吧。

之後的「我等就來唱山歌」「山歌唱來解心煩」「水庫係築得,屎嘛食得」(不照順序)都是全場合唱。 生祥直接說有分軌錄音,也有教台下綵排,出來效果很棒,大家都很支持反水庫運動。

中間聽生祥說起,肯定這次大腸花的療瘉效果,他們那時還沒有「運動傷害」的說法,我才確知美濃反水庫最後是沒有成功的,拖了五次表決才終告失敗,鄉親回去的第二天也是一場飆髒話的聚會。 時代有進步,318 算是成功的,希望長輩們欣慰。

美麗島

插了兩首新專輯的歌,便從合音組請出特別來賓楊祖珺,「我相信台下很多朋友一定會唱這首歌」,結果我不會唱。

縣道 184

到這首歌有種駛入 disc 2 的感覺,第二張專輯「菊花夜行軍」的序曲「縣道 184」。 接著中間沒有休息,平靜地銜接「風神 125」,原來不是安可曲嗎? 大概就是這樣安排的有戲,所以不知不覺就唱掉 2 小時,坐得有點酸。

風神 125,請務必發行 live 錄音,整場下來的新編曲,以後聽不到怎麼辦呢。

菊花夜行軍~安可曲

由當年(參與錄音)還在念小學的羅景賢扮演大黃(菊花品種),現在已經是學運青年了,養兵成功。

安可曲是「我庄」的「草」,其實我是第一次聽這首歌,最後的樂手 solo 有過癮到,可接受喊第二遍安可時,生祥用「我的腰已經不行了啦」躲過。

這次的觀眾從學生到阿婆都有,有昏睡的小細阿妹,有穿樂生 T 的女孩熱切想跟大竹研合照(魅力強大),也有像我這樣的硬漢。 本人判斷,社會上願意關懷、包容抗爭的人變多了,對搖滾的需求也增加了,歡迎資本主義社會多來賺我們的錢。