2022年6月25日星期六

萬無一失

 在資訊科技界裡,當我們定義一個系統是否可靠時,其中一個指標是該系統正常運作的百分比,其中一個最常聽到的標準是「四條九」,即99.99%,對於足金來說,「四條九」差不多是純金了,但這個水準對於系統來說又是否很高?

主觀感覺「四條九」似乎相當不錯,但實際上計一計,原來一個系統在一年裡不能正常運作的時間少於52.56分鐘,便已達到「四條九」水平了,即是只可期望一個可靠水準達「四條九」的電腦系統,在一年內有大概一小時是不能正常運作,由此可見,「四條九」的可靠程度其實不是很高。筆者有次到燒味店光顧,看著師父「手移刀落斬义燒」,差不多一秒斬一下,忽發奇想,以這個頻率計算,一個小時不停工作,便已落了三千多次刀,即是三小時左右便已落了一萬刀,所以每天落刀過萬並不出奇;如果這些師父的刀法的可靠程度只是「四條九」,他每天也會有血光之災。

在先進的香港,看看我們身邊的事物,原來它們的可靠程度便大大高於「四條九」,例如香港的供電、供水、交通燈、電視電台廣播、機場的導航系統等等,所以不論一個系統的可靠程度要求有多高,技術上大都是可行的,只是當可靠程度要求愈高,系統愈複雜,成本便愈高。

再深入思考,一個系統的可靠程度是取決於什麼因素呢?所得的結論是,愈是簡單的系統,可靠性便愈高,反之愈複雜的系統,可靠性便愈低。原因是一個複雜的系統,是由多個簡單的子系統所組成,只要有其中一個子系統出現問題,整個複雜的系統便會出現問題,因此愈多子系統的系統,可靠程度便愈低。

我們的身體,也可以理解成一個複雜的系統,身體內的不同系統和組織便是不同的子系統,只要其中某些子系統發生問題,便等同我們的健康出現問題,如果我們要保持身體健康,我們得把自己的身體,看作是不能出現問題的系統,要保持身體各方面都要健康,也要付出代價,多做運動,注意飲食了。

2022年6月18日星期六

禍福相隨

 筆者於資訊科技界工作多年,眼見新科技不斷湧現,某些新科技的出現,更帶出一個新時代,舊有科技便如過眼雲煙,漸漸被人們遺忘。每項新科技都嘗試解決人們一個現有問題,可視為用家之福,但是想深一層,卻暗藏禍根,正如中國道家思想「禍兮福之所倚,福兮禍之所伏。」

例如早期當視窗系統開始流行時,開發視窗軟件便得拿著百科全書般厚的開發者手冊,慢慢學習研究;自從微軟發表Visual Basic之後,開發軟窗軟件便好像在畫紙上畫畫一般,加一點組件到界面去,便可以即時測試,整個開發的過程便由鍵盤輸入程式碼,變成用滑鼠「拖拖拉拉」便完成,開發時間短了,所需要的時間也短了很多,程式員即時覺得世界變得更美好,可說是程式員之福。但是好景不常,程式員不久便發現,既然開發軟件已不需高深學識,只要懂得使用滑鼠、簡單電腦常識便可,程式員已沒有什麼專業可言,初哥和有經驗的程式員的分別不太大,待遇也差不多,這便是Visual Basic這類開發工具所暗藏之禍。

雖說是禍,Visual Basic這類工具令軟件開發不再高深莫測,而Visual Basic這種軟件開發模式,卻沿用多年,直到近年手機軟件的開發模式也是差不多。因此掌握了這種軟件開發模式,卻為程式員打開一片新的天空。再者,因為這種模式令程式員不必花大量時間於開發軟件的界面,所以程式員可以更集中資源於開發軟件的核心運作,能開發更複雜的軟件,這又可以看作是福。

和以上例子相似的事件不勝枚舉,試想想資訊科技界的新發明,即時解決了某個問題,或取代現有某些舊事物,這可以算是福,舊事物被取代,對所涉及的人和事是禍,跟著釋放出來的資源和空間,卻又變成另新的動力,去啟發人們再去創新,找新的問題去解決,令生活更美好。由此可見,禍福是硬幣的兩面,當看到福時,轉一轉,從另一個角度便會看到禍,跟著再轉一轉,可能便又會看到福了。

何謂禍福,其實只是觀點與角度。看到新事物,同時也想想有什麼負面影響,對自己有什麼衝擊;再看到有問題發生時,除了即時想辦法解決之外,也想想這件事帶出什麼機遇吧。

2022年6月11日星期六

以貌取人

 軟件開發是沒有終站,因為我們總可以找到改進軟件的方法,例如找到軟件運行上出現錯誤,又或為軟件加上新功能等等,所以軟件開發公司便會不斷為軟件推出新版本;對於使用者來說,未必受惠於新功能,亦未曾知道有什麼運作錯誤更正了,但是最明顯的改變,卻是在用戶界面上的改進,令使用者用得更稱心、更快捷。例如微軟的視窗系統,多年來用法都是差不多,但愈來愈美觀。

筆者有感當使用者首次使用某軟件時,他們多以軟件的用戶界面的優劣來決定軟件的質素,但是當用戶已經對某軟件有深入的認識,他們便不會為較優美的用戶界面來更新軟件,尤其是當更新軟件涉及額外的金錢,他們要知道所花費的金錢,能換來更多更好的功能,否則不會花錢來更新。便正如微軟的Windows XP,經歷後繼的多個版本,還有眾多用戶使用,可見Windows XP其後的視窗版本的界面,沒有任何新功能令用戶動心而更新。

也許這和我們如何品評另一個人差不多,當我們首次認識一位新朋友,我們便以他給自己的「第一印象」來衡量他,但當我們對某人有相當認識時,我們便不會再根據他的外表來評價他。這令我想起多年前曾參加過一個為期五天的短期軟件課程,老師是一位由美國回流香港的資訊科技人才,於課程的首日,盛裝而來,令人感到他是一位行內的專業,但在第二日開始,他便開始以便服來教授課程;筆者在休息期間和他傾談,談到他的衣著,他說,在美國,資訊科技的員工便是穿便裝,甚至穿拖鞋,帶著耳機聽著音樂工作,反觀在香港,他感到如果一開始便穿著便裝,其他人便會以為他只是一個最基層的員工,所以在課程的第一天,他必定會盛裝到場,但是經過了第一天,當大家都清楚他是真材實料時,他便可以穿回他最感舒服的便裝,既然已經有了預設印象和認知,便不會因為改穿便裝而轉變。

某個程度上,人們會以他們對某事物的主觀認識,當成是某事物的真相。所以,我們真的要小心自己給了別人一個錯誤的印象,另外,令別人對某事物從好印象變成壞印象很易,但反之卻很難,所以,我們真的要小心自己給別人的印象了。


2022年6月4日星期六

自我修補

 早期的電腦,因為硬件性能問題,顯示主要以文字為主,使用者得輸入文字指令來操作電腦。及後,電腦的顯示稍為改善了一點,程式員開始開發以文字組成的全熒幕用戶界面(User Interface),雖然簡單,但是卻擁有現時圖像用戶界面的所有基本原素,例如有系統選單(System menu),也可以同時間有多於一個子視窗(Sub window),更可以用滑鼠來選擇子視窗。而筆者也有研究過開發這種程式的方法,到後來真正圖像用戶界面(Graphical User Interface)出現,例如早期的X-Windows,以及現在流行的微軟視窗,當筆者研究開發這些不同視窗的軟件時,便發現在處理視窗重疊的方法有很大的分別。

試想想,當一個子視窗移到另一個子視窗之上,這時便會出現子視窗重疊的現象,部份子視窗的內容被覆蓋,但是當在上的子視窗被移開時,之前被覆蓋的子視窗部份便要再次顯示在熒幕上。早期視窗系統的處理方法,是在上的子視窗儲起在下的子視窗被覆蓋部份的內容,到在上的視窗被移開時,在上的視窗便要把之前被覆蓋的子視窗「補」回內容。之後出現的視窗系統,所採用的模式卻不同,方法是當被覆蓋的子視窗部份重新「露」出在熒幕之上,視窗系統便會通知這個子視窗它的某部份「露」出來了,那麼這個子視窗便要自行想辦法怎樣「補」回重新「露」出來的部份。

這個問題和兩種不同的處理方法,給筆者的啟示是,如果一個人得罪、傷害、又或虧久了另一個人,被害者應怎樣復元呢?視窗重疊問題的第一種解決方法,是得罪別人的那一方有責任安撫或對受害者做一些用以補救的事,這是天經地義的。而第二個解決方法,是受害者要有能力在自己受到任何傷害時,仍能自行補救,令自己能重新如常生活。

筆者覺得,如果自己是傷害或虧久了別人,必要要採取第一個做法,自行向受害者作出相應的補救工作;但是對於別人有負於己,筆者卻覺得不能期望別人一定會補救,如果別人什麼補救工作都不做,難道自己便要一蹶不振嗎?所以第二個做法便較適合,自己必定要堅強,在任何情況下都不要只沉迷著要責怪別人,必定要認清楚自己的現況,自行想辦法去解決問題,重新振作過來,在那裡跌下,便在那裡站起來。

舉個例子,如果某一位員工因公司裁員而被解雇,如果他採取第一個做法,他可能便會閒著等公司為他找來另一份工作,結果是不知何時才由他人為他找到一份新工作。但是如果他採取第二個做法,當他被裁員一刻,他便自行為自己找新的工作,結果當然比守株待兔好吧。

千言萬語

 電腦這個詞語,給我們的感覺是一件像我們人類腦袋的東西,擁有記憶,懂得思考,但是在英文原字Computer,其實只指是一部懂得運算的設備而已,能令一部只懂得運算的設備變成一部像我們人類般思考,懂得完成無數的工作,是隨著電腦發展而被研發出來的程式語言。到了今天,已經有數以千計的程式...