第3話:「資訊化浪潮」
宜誠居士
自第三波資訊革命浪潮襲來,舉世掀起資訊化的風潮。先是政府機關,後來是銀行、國營企業等。同樣的,這股資訊化的風潮也吹進命理界。早在單機版的DOS時代,配合倚天中文才能進行測算的星僑軟體,就是第一代的王者。網路時代來臨,科技紫微網走在前頭,可謂第二代之魁首。第三代命理軟體,會是什麼風貌,將由誰獨領風騷?
資訊化的好處,首要在於電腦24/7/365運行,它是人們忠誠的僕人,忠實地執行所交付的任務,所得結果不管是第一份,還是第一百萬份率皆相同。因此若資訊化,在程式師與命理師之間,須有一人當溝通介面,來負責需求及系統分析。他必須懂資訊,會用資訊人看得懂的規格、圖表,跟技術人員進行討論。
他的溝通能力要強,能聽懂命理師的話語,再把溝通結果變成規格,交給技術人員實作完成。若命理師也懂,他可以走過來一些;若分析師懂命理,那他可以走過去一些。沒有差距間隙,系統符合需求,用的人滿意,做的人稱心。不過往往遇到的,不是童話故事美麗的結局。再加上命理需要的中文內涵頗深,因為很多都是古書文言文,資訊人員較難走過去。而術數界的命理師,平均年齡較高,對電腦較不熟悉,又不易走過來。
由於我們都是命理小白,在進行資訊化的過程,欲上門請益的命理師們,也未必時時有空,需求分析很難一次到位。很可能是分階段、分派別,一段一段上線。合作伙伴們就決定,資料與程式不能綁得太死,程式改寫、加功能,不影響資料的製作。而資料更動,也不影響程式。也就是說,新增的資料欄位,程式頂多不顯示;新寫的程式碼,配合未盡完整的資料,能顯示就顯示,沒資料就空白。別搞到系統搞宕機不能用,非得等某程式、某資料改好方可。
原則決定了,我們就開始劃分要資訊化的範圍,不懂之處,該買書回來研究、該預約老師的,就分頭進行。整個系統有如積本,是完成一塊拼一塊,慢慢成型。若有問題,出在那一塊,是程式,還是資料,層次井然,條理分明,不會因為一個問題卡很久,不知如何是好。
命理老師再三強調,筆畫不可用實際目見之計算,必須嚴謹地遵循《康熙字典》。而該典收字四萬七千餘字,人名用字一定要全。所以,中文字碼要選那套,第一階段要收多少字,須先決定。況且,人名、地名不在常用字範圍的情況,很是常見。因此字數基本上要全,字數多也影響筆畫校對時間的問題。還好伙伴們有人熟悉電腦中文系統,所以很快就定案了。
比起早年的萬碼奔騰,現在unicode一家獨大,亦是資訊業界標準,字碼已毋須苦惱。而2015年公佈的extE字集,現在還補康熙字典的字。因此,若要求康熙典全數收錄,也不現實。而且,前期準備工作,光是收錄、校對漢字,以我們有限的人力,怕是要大半年,其他事就不必做了。若只做常用字,即上圖黃色螢光所示的20,902字,對標康熙典,明顯是不足的。
因此,我們第一階段至少要涵蓋extB,總數差不多是六萬九千字。也就是說,只要收錄字數低於五萬字,發生測算時的人名缺字比例頗高,這會被命理老師們吐槽,進而拒絶用它,那命理資訊化這事就涼了。而擴充區跟常用字的unicode編碼長度不同,雖然告知系統使用UTF8,實際上程式仍然要介入處理的。因此,在輸入、儲存、輸出等處理過程,我們必須要全面接管,不然亂碼還好,宕機就慘了。
說到宕機,不如聊聊【土魠魚中文字碼宕機事件】吧!
就我的好友柯南兄傳來【汽車定位幽靈事件】的證據分析,附近地點都正常,就是【開元路土魠魚羹】不成。最有嫌疑的字應該是土或【魚+土】。我們將二字的unicode編碼截圖並列如上,聰明的讀者們早已發現,不管是使用U+或&#的兩種格式,會發現雖皆為unicode編碼,但所處字集不同,字碼長度亦不同。
也就是說,傳來定位資料理應包含完整店名,方便語音播報等模組續用。假定店名用U+的方式表示,原本4位4位抓的,遇到【魚+土】,理應有程式未處理罕用字,或謂擴展區的部份,造成多了一位數,所以最終的字碼指標不是落在【羹】的last byte。假定緊跟的是經緯度,錯開1 byte,後頭自然亂套,座標有錯,定位程式自然迷惘。
因嵌入式系統為求快速及穩定,其程式、基礎資料燒錄成韌體,不可更動。此錯byte問題造成連鎖反應,最後觸發未曾設妥的例外錯誤模組,所以一律只能開機重來。重來之後,又報【開元路土魠魚羹】定位,然後程式跑一跑,資料又多了1 byte,連鎖反應令程式碼亂竄,again, again。然後,就成了鄉野傳奇,沖上熱門新聞了。
程式師要處理擴展區的字碼不難,但由於unicode對擴展區與常用區編碼規則不一,長度不同,於儲存、輸入、輸出等程式都要額外判斷,才不會抓錯。這不能只在編程階段留意,須在一開始,最遲在系統分析、規劃階段就要考慮。進入編程後,不管內製或外包,還得三申五令,以免編程者大意。而系統整合測試時,測試組人員更要針對罕用字,加強測試火力。以免模組無誤,系統整合時沒測到,正式上線或甚至已投產才發現問題。
早年外國軟體漢化時,很多框線成了亂碼,相信許多人也聽過類似的故事,只是微軟的視窗操作系統一統江湖後,多數人已不復有此記憶。況且,多數人認為罕用字嘛,就是那些專業的文科生才會用到。而且,不過就是人名、地名才來找麻煩,商用軟體,車載軟體嘛,不至於吧!又不是戶役政系統,兩萬字足矣。其實,這些笑話非始自今日,兩岸都有。如朱镕基、游錫方方土、茄萣。一漏萬漏,只要不怕漏氣就好。
以下是筆者以【開元路土魠魚羹 特斯拉】為關鍵字在谷歌搜索,諸位會看到不同的土字,版面並不違和,一般人也不會留意。若此乃一大型整合系統,左右兩邊是不同子系統,右邊的【魚+土】就算順利傳到左邊沒有宕機,可是魚在中途就不知被那個模組偷吃了,剩下的人只能吃土了。
篇末有讚賞公民(請參閱本版版主過往之文),有賞的朋友,宜誠在此合十。沒賞的朋友盼能留言、訂閱、給星、轉發,我們下一話再嘮,謝謝。