後來對行列的接觸則是斷斷續續的,非常有趣的是,對我而言,在 Linux 平台之下的 scim-array,似乎比 Windows 下的行列輸入法帶給我更好的使用經驗,所以在 Linux 之下我偶爾還是會練練行列,在 Windows 下則是以新酷音為主。至少根據《Dvorak: 另一種鍵盤排列》 所述,直至 2007 年的 7 月,行列依然不是我的主要輸入法。
我一直認為行列輸入法很不錯,覺得因為符號等小問題而放棄它太可惜了。在 2006 年升高中的暑假,我帶著想改進行列輸入法和成為 Linux 程式開發者的憧憬,開始學起了 C++,踏入了程式設計的道路。當時甚至研究起 SCIM 和新酷音的程式碼,只是一直沒有什麼進展。進入高中後,開始寫起 ACM 之類的程式題,一開始還試著用從 C++ 學來的 class 等等在解問題呢。只是後來為了求快,就只用些 C++ 中的 C 了。當時,我用 C++ 大概就是在解這些問題了,算是在鍛鍊解決問題的基本功吧,對於程式開發的研究則很少。我曾試過要學 Shell Programming,也曾試著看《Beginning Linux Programming》,不過都學的不深。
2009 年 4 月,我透過 scim-array 把行列定符化為現實,自己覺得相當實用,之後在 Linux 下的標準輸入法也漸漸轉為行列。而隨著我使用 Linux 的時間愈來愈長,使用 Windows 的時間愈來愈少,行列幾乎可說變成我的主要輸入法。或許正因在 Windows 下再也沒有同樣方便的符號輸入方式可與行列定符相比,所以進一步把我推向 Linux 吧。
大學,在老師的帶領下,從頭開始學起 C,這時我也看完了《C Programming: A Modern Approach》,不過對於自由行列的開發還是沒什麼進展。此時我參加了 IBM 的比賽,在解決問題的時候,突然發現有時候,就是要動手做就對了,這樣學得最快,另外在操作 DB2 的時候也學了不少 SQL 的語法。於是,比賽結束時的我終於決心要再一次開始開發自由行列了,並且在那時重寫了一部分行列碼處理的模組。只可惜一個星期之內,發生了許多事,讓我的開發再次停擺。接下來又忙著期末考和社團的事,一直到期末考結束,最後要回家前的那幾天,才再次開始我的程式開發。
當時,我正看著《Head First - Design Patterns》,想說要在回家前看完,另外,下學期也要開始學物件導向了,此時的我才發現對於 C++ 我還是有很多不會,而且當年看的東西也都忘了。所以決定一邊預習 OOP 一邊寫 libfreearray,雖然沒看完《Design Patterns》,不過還是試著應用了裡頭的一部分技巧。回家後,看起了剛買下的《C++ Primer》,也看起《The Definitive Guide to SQLite》,補回了一些資料庫的基本概念,雖然還沒看完,不過倒是把自由行列處理行列碼查詢文字的介面完成了。這時也開始使用 gdb 來為程式除錯。接著,我試著寫起輸入法資料處理的核心,不過物件愈搞愈多愈複雜。
When I was little, there was a time when I was in the sky looking down at a the road. On the road, there was an ambulance. In the ambulance, there was a boy. There was blood on the boy’s head. And the boy was me.
後來同桌的人把各自做的 outlines 放在一起,再決定要這個小組要以什麼作為期中 informational speech 的主題。最後選到了我想的《Sleeping well is good for you.》,於是我們一起找資料,分配各自要講的重點、製作 outline、製作簡報。最後成功合作完成一場漂亮的演講。