「你的筆電上怎麼有寫一些字啊?這是你自己用的嗎?」

「喔,不是啦,這是以前參加一個比賽的獎品,所以才有這些字。」

「是喔,是比什麼的呢?」

「這個嘛…」

時間過得真快,轉眼間這小筆電已陪了我四年。記得以前上課或到圖書館時偶爾會帶著它,返鄉時也是因為有他才能處理一些事情。如果少了它,好像很多事情都會不太一樣呢。

總是有人問起比賽的內容,但總是很難想起當初發生的許多事。回頭翻開網誌的草稿,發現其實裡頭躺了一篇寫到一半的心得文。除了心得,還寫了一些年少的煩惱與挫折。「所以這是當初沒有寫完的原因嗎?」我不禁莞爾。於是決定繼續把這篇心得完成,仔細回想這經歷的同時,彷彿也在回顧自己的成長與改變。

碰巧的是,就在我決定重新執筆的那幾天,我突然接到了一通電話。

「請問是 OOO 嗎?」

「對。」

「你好,我是 IBM 的 OOO,記得你曾參加 IBM 大型主機校園競賽…嗎?」

參賽

一切都得從大一開始說起,就是那時參加了「IBM 大型主機校園競賽」。這個經歷對我的未來造成了不少影響,當年不太成熟的我實在料想不到吧。記得最早,是在交大 BBS - bs2 上的 NCTU 看板發現了這個比賽的訊息,因為看到只要過了第二階段就能拿到一個隨身硬碟,想說或許有機會得獎,於是就參加了比賽。

記得那時的我剛上大學,還正在摸索如何分配突然多出的自主時間,使用了每週計畫表來規劃何時要做什麼事,並紀錄了實際完成的情況。由於大型主機比賽是透過線上闖關,所以我也把投入比賽的時間切成一小塊一小塊,散布在每週當中,成了我的例行事項。

比賽的內容共含三個關卡,每個階段的文件會公開放置在網站上。內容大略是:

第一階段

第一階段的目的是要熟悉大型主機的環境,文件上說只要一小時就能完成了。要透過文件的說明,利用 3270 模擬器連上遠端的 z/OS 主機然後建立一些資料,並執行程式。我們也拿到了一個填字遊戲,在三個階段分別會找到許多線索,就能慢慢將其填完。

第二階段

從第二階段開始,比賽的說明文件就不會記載達成任務的詳細步驟,只會有簡單的說明。挑戰者必須從許多參考用的電子書和資料庫中尋找教學,並仔細思考,才能完成任務。這階段的任務包含了利用 JCL 執行 REXX 程式、為 JCL 程式除錯、建立個人化的 ISPF 控制台設定、EBCDIC 編碼轉換、Unix 操作、撰寫數個 REXX 程式等等。

第三階段

第三階段有四個任務。首先是 DB2 的操作,要在 z/OS 環境中,透過 DB2 SPUFI 輸入 SQL 指令來建立指定的資料庫,或從資料庫中挖出指定的資料。還有透過 JCL 來執行較大量的 SQL 指令,將資料倒入資料庫等等。第二個任務,則是要利用 Interactive Problem Control System 來分析 IBM CICS Transaction Server Product 程式當掉之後的 dump 檔案,分析發生了什麼問題。第三個任務則是要操作 Websphere MQ 和 CICS,執行一些任務,並利用殘缺的程式碼完成一個伺服器端和一個客戶端的程式。第四個任務則是建立一個網站來呈現所有找到的填字遊戲線索。

得獎

老實說得了獎時還真覺得有點意外。一開始連大型主機是什麼都還不太明白,在過程中透過文件慢慢學習,竟也能一路過關斬將。能進入決賽是一開始萬萬想不到的。

仔細想想,因為大家對大型主機的了解並不深。所以獲勝的關鍵可能其實是:(1) 從一堆參考資料中找到有用資訊的搜尋能力 (2) 英文閱讀能力 (3) 一般性的資訊科技敏感度。這些能力以前為了學習 Linux 而在網路上大海撈針時真的有不少機會訓練。但除此之外,我恰好有學過一點點 SQL 可能也有不少幫助。

記得最後得建立一個網站來呈現填字遊戲,雖然文件上寫只要正確就好,美觀等等不影響評分。但我還是很堅持的做了點視覺設計,由於利用到當年還不被廣泛支援的 CSS 語法,所以還做了一些跨瀏覽器的調整呢。

撰寫此文時重新回去看文件,發現競賽規則上其實寫著「如果有多個人完成了填字遊戲,則呈現最好的網頁會得到額外的分數」,跟當時記得的美觀不影響評分似乎有所出入。由於中途確實曾修改過規則,不知是否就是那時新增的規定沒看到呢?或許,這變成了我最後領先的原因?

ibmmf2009
當年的填字遊戲網頁

迷惘

或許真的太年輕,對很多事情的態度都太不成熟。

到了頒獎典禮只見大家盛裝打扮而感到有些格格不入、雖然有和大家聚餐的社交機會但總覺難以把握機會、和訪問者對談時實在也不知如何對應——當時還因為這些瑣事而有些迷惘。仔細想想那還真的是那時候的我很顯著的特徵之一:太在乎他人的想法。事隔多年,很多事情對現在的我來說好像也沒有那麼重要了。

那時害羞的我真的很低調。幾乎只跟一些親近的人提到了得獎的訊息,然後悄悄北上前往頒獎典禮,回來以後迅速的將獎品藏起,然後過著相同的生活。但後來接受了學校的採訪,照片放上了交大首頁,一切的故事也變得紙包不住火(?)。最多的反應倒不是從系上而來,而是在社團裡。彷彿一下子變成名人似的。非常認真的覺得一切有點不真實。

但到了下學期後,很快進入大學時代變化最大的時期。這些想法慢慢也被拋到腦後了。

影響

參加這個比賽,最直接的影響應該是找到了實作的樂趣。猶記得放假後在寢室認真寫程式的畫面,當時的室友似乎不太能理解呢。也是這樣的熱情,讓「自由行列」終於被實作了出來(見:〈從我的故事開始說起,自由行列實驗品: ibus-faft〉)。至今仍是我開發的比較完整的開放原始碼作品。

另一個特別的影響應該是被網羅到 117 實驗室幫忙開發手機專案,初次接觸了研究生世界,還認識了當時非常出名的學姐。後來我也繼續待在這裡進行專題的研究,一直到大四還常跟學長姊 meeting 呢。

因為待在實驗室開發手機軟體所以有機會把玩智慧型手機,這對我而言還算新鮮的經驗。若非如此恐怕我會對此浪潮一無所知。雖然離開實驗室後就沒有繼續接觸,不過等之後採購智慧型手機後應該還是會研究手機程式開發吧。

想起來實驗室的生活圈記憶還真算是佔了大學生活的一個重要部份,在這裡遇見了對程式有熱情又優秀的學生們。如果不是因為她們的背影,我對交大生活的想法一定會有很大不同。

從過去到未來

翻找了當時的往來信件,好多不復記憶的事真令人莞爾。就在這時候,原本以為會成為過往回憶的絲絲線線突然又開始交會。

「請問是 OOO 嗎?」

「今年,我們想辦一個大型主機的世界盃比賽…」

於是,接下來就是〈IBM 大型主機世界盃〉的故事了。