罕用,結果就是每次用每次忘…。
- 如果執行檔放在 system-wide 定義的 PATH 以外(= Cron 執行時使用的身分),就要指定絕對路徑,像是透過 RVM 安裝的 Ruby,或是在 crontab 裡載明 PATH。
- 如果使用 RVM 則要在 crontab 裡載明 RVM 專用的 GEM_PATH,否則就會爆 LoadError。
- 用 sh -c ‘target_cmds’還不夠,最好是用 sh -l -c ‘target_cmds’ 更不容易出包。
罕用,結果就是每次用每次忘…。
之前買了 Apple Wireless Keyboard,無奈還是不太習慣它的手感。這次換了新工作,主要的作業環境在 Mac OS X 上,我原先還是從善如流地使用 Apple Wireless Keyboard,但是幾天下來發現被「卡」到嚴重影響工作效率,心想不快點解決這問題不行。
對於這隻工作用的鍵盤,我列了幾個條件:
針對條件 1,其實我可以把家裡的 Acer 6511 帶上來用,但是它的聲響還是可能影響其他人。
至於市面上的黑軸鍵盤,高「貴」品牌的我買不下手,平價的 DK1087 缺貨,於是我再搜尋了「平價 好打 鍵盤」而找到 WiNTEK ACK-230。
簡單扼要的感想:
用過 Acer 6511 後,WiNTEK ACK-230 手感相比也只是落在 75~80 分而已,有點軟,但是也好過 Apple Wireless Keyboard。
不過後者真的比較安靜,在辦公室裡盡情 coding 也不怕引來側目,所以 ACK-230 還是買對了。
回來的路上,為了處理悠遊卡鎖卡問題,跑了一趟國光客運在宜蘭轉運站的櫃台。就順路(?)去蘭陽觀光夜市吃晚餐。一直覺得這個夜市的地點處在一個很尷尬的位置,交通動線很難讓搭乘客運的乘客經過,但是又位在居住人口較稠密的這一側,不過在地人又有多少是外食族呢?外食族當中又有誰會「吃巧而不求吃飽」的以小吃當正餐呢?
所以幾個月前跟國中好友來時,攤位還算多,此次來卻發現幾乎收了大半,冷冷清清,又門可羅雀,看了心裡實在覺得有點難過。
若要跟附近的東門夜市比較,這裡停車相對方便、有洗手間、非露天不怕雨淋,其實優點很多。
當下就想起了「あまちゃん」劇中主角回到災後的故鄉,心想是不是可以做點什麼。
吃了一碗很好吃的蚵仔麵線,再點一份蔥餅,填了一點肚子後,有點悵然地離開這裡,繼續歸途。
偶然得知 Realtek RTL2832U 這顆 DVB-T 訊號處理晶片,搭配適當的 tuner 晶片,可以拿來做軟體無線電,也就是所謂的 RTL-SDR。看了別人寫的〈2013-09-17 廉價的Realtek RTL2832U軟體無線電〉就忍不住也去 eBay 買了一組 RTL2832U+R820T 的產品。
沒想到從香港賣家(我猜實際所在地是深圳…)發貨後到我手上,竟耗了兩個月又一週,中間我還在 eBay 提出申訴而獲得退費,實在烏龍。在收到貨後緊急聯絡賣家,補匯款給他們。真的不知道在今日,平郵過個黑水溝還會耗這麼久,好像回到了古早古早的時代。
一開始我使用 RTL-SDR 附的命令列介面工具 rtl_fm 來接收訊號,實在是…不太好用,所以又去找 GUI 工具來用。
SDR# 在我的 Arch Linux 上,需安裝 PulseAudio 才能正常使用,功能也不錯,偏偏使用 Linux 的各位應該都知道,PulseAudio 製造的麻煩比解決的問題多,所以我只好再物色其他的選擇。
於是我又找了 Gqrx 來用。其實更早之前我是想先試 Gqrx 的,只是看到需要安裝的相依元件那麼多,就心生抗拒、退避三舍。後來實際動手才知道,其實沒有現成 Arch 套件、得要我手動安裝的,只有 gnuradio-osmosdr,而事實上這已經有熱心人包好的 AUR。所以在我稍微兜個小圈子,把 Gqrx (特別指定禁用 PulseAudio)編譯出來後,就有一個不錯的 GUI 可用了。
天線還是收訊的最重要因素,隨附的小天線大概只能收幾個訊號還算強的 FM 廣播。用自製的四菱形天線,則可順利收到更多電台,還很勉強地聽到一個一般民眾對話的頻道。
接收設備的參數設定則是其次,要把硬體自動增益 Hardware AGC 打開,還有依訊號品質情況設定 Filter 的寬窄幅度。
接下來我想去借或買一根木瓜天線來試試看,能否聽到更多頻道,還有收氣象圖傳真。
每次輸入法壞掉,我在電腦前、網路上就近乎啞了一樣。上次修好 ibus-chewing 前,我用行列輸入法一個字一個字慢慢拆,還是不若使用注音輸入法流暢,現在臨時要我用行列,我除了基本十訣還有些模糊的印象,也早就忘光光了。
這次因為 libchewing 0.4.0 改了幾處,fcitx-chewing 果然如我預料的也壞了,我又用輕鬆輸入法搭配拼音輸入法一個字一個字慢慢拆、慢慢拼。輕鬆輸入法真的好學不易忘,我覺得最大的缺點就是它用了四排鍵來定位字根,造成選字麻煩。而這個問題我想在觸碰面板裝置上反而不是問題,如果我更進一步能在 Android 上實作一個可自動選字詞的輕鬆輸入法,我爹以及千千萬萬個不習慣注音符號、漢文素養卻不差的長輩,用起來應該會很高興。
對於不是很慣 C 的我來說,要修好輸入法不像慣 C 的夶們那麼簡單,但是秉持著「自己的輸入法自己修」精神,我還是硬著頭皮、用我程度相當彆腳的 C 與 GDB 知識去修。
上次修 ibus-chewing 時,非常幸運地用 GDB 加上人腦 debugger,在主程式一開始沒幾行就抓出型別錯誤問題,順利把 bug 解掉,後來從 iBus 跳到 Fcitx 輸入法框架,則一直開開心心地在之上使用新酷音、Anthy 分別處理中、日文輸入,沒遇過什麼問題。
而此次 fcitx-chewing 我依照編譯時的錯誤訊息,分別停用 chewing_Init(), chewing_Terminate() 以及把 chewing_zuin_String() 改用 chewing_bopomofo_String_static() 後,還是無法使用新酷音。
在這中間我翻了 libchewing 本身的文件、測試案例,不得不說 libchewing 到後來漸次補上的這些測試案例寫得很棒,是很好的新酷音實作參考範例;還翻了 fcitx/developer-handbook 與 fcitx/fcitx-templates,幾乎把整個 fcitx-chewing 逐行審核過,收穫之一就是大概瞭解了在 Fcitx 之下如何實作一個輸入法。
我發現程式在 chewing_new() 這邊就已經未正常產生一份 context,遑論後續的操作。交叉測試之下,才發現是 userpath(使用者詞庫目錄)參數在我電腦上出了詭異的問題。libchewing 0.4.0 新增使用 SQLite 資料庫來維護使用者詞庫,而我的 userpath ($HOME/.chewing/) 底下原本該有一份 chewing.sqlite3 資料庫檔案,卻被生成為一個目錄,導致 chewing_new() -> chewing_new2() 根本無從處理,只好傳回 NULL。於是我手動移除 $HOME/.chewing/ 讓 libchewing 重建,終於讓 fcitx-chewing 可以正常運作。
我後來又翻了 libchewing 想要重現這個問題,卻怎麼也找不出問題所在,無論是 GetDefaultUserPhrasePath() 還是 InitUserphrase() 看起來都很正常,只好先擱置了。