「煮酒論英雄」電子布告欄的「個人新聞台」:一個BBS上的PPS實作

煮酒論英雄電子佈告欄站台架設於八十六年十一月底,迄今以有五年多的時間,目前所使用的系統程式是在九十年五月份時,從當時的PttBBS修改而來,到現在經過了一年半左右時間的修改,與PttBBS已經有了許多的差別,而其中一個相當大的差別,就是在去年(九十一年)十一月初時,加入了「個人新聞台」功能,所謂的「個人新聞台」,可以說是在Internet BBS(Bulletin Board System)的基礎上,進行的PPS(Personal Publishing System)的實作。

近幾年來隨著Linux、FreeBSD作業系統的普及,以及隨著Maple BBS朝向盡可能節省系統資源的發展方向,架設電子佈告欄站台的門檻逐漸下降,使用一般的個人電腦,便可以提供電子佈告欄網路服務,電子佈告欄的架設者、管理者也逐漸從較為大型的組織例如學校、科系,轉而為更多的個人。在電子佈告欄的討論方向,也逐漸從一般話題,轉而為更為小眾與個人化,因此也便有許多的「個人版」的產生—以電子佈告欄看板,討論個人事務、或個人書寫的發表園地。

但是傳統的電子佈告欄個人版,有著一些缺點,最主要的問題在於傳統開設、管理個人版面的程序,一方面形成龐大的電子佈告欄管理科層,另一方面也形成管理者的負擔。舉目前以「個人版」為服務大宗的「Ptt2」以及「人民公社」為例,「個人版」都必須經過管理者開設,而像Ptt2因為個人版相當多,因此還增設了許多所謂的「小組長」才能夠管理,形成了一批龐大的「小組長」科層。

而在個人版的社群功能方面,以傳統方式,使用者必須選擇要加入的「看板群組」,然後申請加入、或連署成立個人版,如果沒有自己合適的群組,又要另外連署成立,這些程序往往曠日廢時。在看板成立之後,使用者要更改自己的個人版的某些看板屬性資料,例如將看板設定為全面開放或只有好友能夠閱讀等,都必須由管理者代勞,也不能夠暫時關閉擇日開放。而有的時候使用者太久沒有上站,帳號已經被系統自動清除,但是個人版卻還是留在站上,沒有人發表文章,猶如廢墟。

煮酒論英雄的個人新聞台,就是一套試圖克服以上這些問題,而提出並實作的一套電子佈告欄介面下個人寫作的機制,取用電子佈告欄程式大部分既有的功能重新組合。而功能名稱取名為個人新聞台,因為許多的想法源自於明日報新聞台,換言之,煮酒論英雄的個人新聞台,就是試圖將許多使用者已經熟知、習慣的明日報個人新聞台操作方式,加入傳統文字介面的個人版中。

原理相當簡單,先是在使用者資料(userec)加入兩個資料欄位:新聞台名稱(字串)與新聞台狀態(整數),然後使用者可以選擇是否在個人目錄下,另外建立一個新聞台文章目錄(名稱為mypaper)。在PttBBS系統中,使用者資料在BBS系統啟動時便載入至shm中,只需要將這些原本就在shm裡頭的資料取用出來,將凡是新聞台狀態大於0者(新聞台狀態為:0關閉、1全面開放、2唯讀、3好友可讀寫、4好友唯讀…)且使用者目錄下有新聞台目錄者,全部丟進一個類似看板列表的繪製畫面,使用者便可以使用與操作看板列表類似的介面,進入、閱讀其他使用者的文章分享目錄,或是發表文章。

原理大致上是這樣,不過在實作的時候,還是要把像每個新聞台的文章篇數等資料塞到shm,另外也從看板相關的程式碼中,照抄了一大段看板文章已讀未讀、訂閱反訂閱的部分來用,還有發表、刪除、轉錄文章,建立歡迎畫面等功能與權限控制,加上我又只是一個大概看得懂C的傢伙,所以弄出了又大又肥的程式碼出來。

個人新聞台同時也具備有群組功能,原本個人新聞台的群組功能計畫沿用明日報新聞台的「鬥陣新聞網」這個名稱,後來考慮可能會有侵犯專利的問題,而改成了符合煮酒論英雄站系統隱喻設計的「新聞台門派」。每個新聞台名稱的前十碼(前五個全形字)被視作是群組(門派)的名稱,從新聞台門派選單下選取某門派名稱,就會列出符合該門派名稱的新聞台。新聞台門派名稱可由使用者任意輸入,但門派列表中的各群組(門派)則必須由一位使用者增加資料創立,成為「掌門人」,其他人只要將自己的新聞台名稱中輸入門派名稱,就可以加入這個門派,掌門人可以編輯門派歡迎畫面,不過不能夠對加入的使用者新聞台做管理動作。

相較於傳統的個人版,煮酒論英雄個人新聞台移除了幾項功能,例如精華區(原本有寫,不過後來怕避免硬碟空間成長太快而拿掉)、投票(這個是真的沒有力氣去改)、不提供轉信服務等,較為陽春。另外在功能剛啟用時,因為發現成長速度太快,所以做了必須上站登入五百次以後才能夠建立新聞台的限制(硬碟不夠大,總不能夠誰上站一次就有一個個人空間,如果真的如此,煮酒論英雄大概馬上會因為大量使用者湧入,成為台灣第一大電子佈告欄站台。)不過,增加了較多使用者可以自行設定、管理的部分,較諸傳統的個人版,(個人相信)更切乎個人寫作的需求。

雖然個人新聞台與看板操作方式近似,但是文章資料擺放的位置不同,是在個人目錄下,所以當使用者使用個人目錄以tar、gzip打包寄回時,同時也就備份了個人新聞台文章。而由於個人新聞台屬性資料是放在使用者資料裡,所以調整新聞台名稱、開放關閉等屬性,修改新聞台資料就如同修改密碼暱稱一樣便利,而如果個人帳號被清除,個人新聞台也隨著帳號同時註銷。

另外,將原本的討論看板與個人版從功能切割開來,似乎也能夠幫助在電子佈告欄這樣一個平台上,公眾討論領域與個人私秘空間的區隔。某些不願意、不適合公開討論的話題,可以自行開設個人新聞台完成,透過系統功能的擴增,增加了使用者討論的空間與自主性。算是一個以現成技術,加上了另一種組合的方式而出現的電子佈告欄不同的玩法。