2013年9月28日星期六

大工地上中國農民工之歌



很小的一本書, 然而卻沉重的讓我拿不起來. 讀不下去, 真的不忍讀下去.

陳李張黃何
書中訴說著一個又一個的 "老何", "周某", "小郭", "小陳" 等尋常百家姓的辛酸故事, 自改革開放以來, 從第一波農民工的出現依始, 這些讓人嘆息的故事便未有停止過, 更讓人傷感的是這些故事, 到今時今日國家已經躋身世界第二大經濟體時, 還是可以隨隨便便地從沿海, 沿江, 到西部, 到東北的大大小小城市中一大把一大把的找出來!

無產階段專政
作者嘗試以現代的社會科學來解釋事件, 甚至出動了馬克斯列寧兩位共產主義的老祖宗來質疑中華人民共和國的人民政府, 這個全世界最大最富有最有政治實權的社會主義公權力, 及中國共產黨, 這個全世界最大的共產主義政黨, 為何會容忍這些只會在早期西方資本主義時期才出現的赤裸裸地壓迫工人的行為? 為何要把人民以戶籍劃分等級? 為何要為資本家歌功頌德的同時又拋棄了對工農階級的尊重? 當日的掏糞員可以登上人民大會堂這國家的聖殿接受榮譽與掌聲, 今日的農民工卻被小小的街道辦拒之門外! 這是歷史對我們的諷刺嗎?

作者也對 "海歸派" 發出指責, 這些海龜(歸)在美好新國度中習染了芝加哥經濟學派的自由經濟主義, 於回歸時也把這些放任的, 不負責任的經濟思想一併帶回這片黃土地上. 這些思想是今日橫行於地面的消費主義的中流砥柱, 而由消費所撐起的城市先進生活也就催生了一個一個未見世面的農民工的夢想, 而這卑微的夢想也就把他們引向這苦難的牢房. 照此道理, 我們豈不應將這些不仁不義的海龜拿去製成龜苓膏才可止息千萬農民工的苦難?

失焦
在閱讀本書時, 我不禁在想, 農民工已經出現了三十年, 少說也都是兩代人的經歷. 要是他們的作為農民工的生活真是只有絕望, 那麼新一代為什麼還要出去城市打工? 根據我本人觀察, 農村生活已經早脫離了兩餐不繼的情況, 白色電器也再不是新鮮事物. 就業機會當然是一個原因, 但是這也說明不了一件事, 農民工這個現象是一個百萬人層級的經濟活動, 要推動這種規模, 背後一定有更強大而緊緻的作用力在操作才成. 而我唯一想到的是: 國家.

不知道作者們是受到他們自己所學的限制, 還是被眼前悲慘農民工的血淚與汗水遮蔽了雙眼. 作者們好像失去了焦點的蒼蠅, 漫無目的四處亂竄, 希望幸運找到一點點解釋. 但他們就是沒有指向中國共產黨一個說得清清楚楚明明白白的基本思想:

"一齊都是為了政治服務, 而最大的政治任務就是維持中國共產黨專政."

固中的邏輯推論已非一篇書摘所應有, 以後有機會再另文細述.


ISBN: 9789620764547
作者: 潘毅, 盧暉臨及張慧鵬
出版: 商務印書館(香港)




2013年9月27日星期五

自製記帳軟件 - Voucher 實體到虛疑


說了Schema, 說了Datatype, 是應該開始便用 MySQL Workbench 來實作的了. 但在這之前, 還是讓我說說一些邏輯上的東西吧. 為什麼還要說個不停? 因為這是關係到 Database Normalization 啊, 說的是系統的成與敗啊, 所以還是讓我說吧.


資訊
上圖是一張很平凡的 Payment Voucher (這個字太多不同的中文譯名, 所以我乾脆用回英文算了), 其中包含了很多資訊, 每一項資訊都有特定的功能, 有些是可以再用的, 有些則否. 在設計 Schema 時, 我們必須想清楚什麼是最核心的最不可或缺的資訊. 而在複式簿記 (Double Entry Bookkeeping) 之中, "日期 (Date)", "詳細 (Description)", "賬目 (Account)", "借方金額 (Debit Amount)" 及 "貸方金額 (Credit Amount)" 就是最不可或缺的五項資訊. 只要有了這五項資訊, 就是用 Microsoft Excel 來作記錄, 再加上善用 Sort 及 Filter 功能, 大家都可以輕鬆完成一盤會計賬目. 當然用 Microsoft Excel 來造賬, 出現錯誤的機會是很高的. 這並不是因為它本身有什麼程式缺憾, 而是因為人手參與的頻率與程度太高. 而記帳軟件其中的一個面向就是要盡量減少人手參與, 這是在設計 Schema 及 User Interface 時要多加留心的.

複式簿記流程
在繼續之前, 還是要略略說說複式簿記的流程. 首先會計人員在取得原始憑據後或某些特定事件發生或達到某個日期後, 會根據不同性質而開立不同的傳票, 並在傳票上列明事項日期, 詳細, 借方及(或)貸方賬目與金額, 涉事人員或公司. 在一天結束後將該所有當天的傳票, 匯整成日誌並結算借貸雙方的金額. 日誌上的借貸雙方的金額必須相等方何再轉錄到分賬內.

手民之誤
或許你會說所有資料不都是人手輸入的, 所以免除手民之誤是個不可能的任務. 可我們不是要免除, 而是要減少, 而且是盡量減少! 那如何作才可以減少 Human Error 呢? 答案就是限制同樣的資料以人手輸入的次數. 換句話說, 就是有效地善用已經輸入的資料. 在複式簿記的實作中, 有很多的資料都是重複, 像是"傳票類型", "賬目", "客戶", "供應商", "員工", "產品", "物品"等的名稱與編號. 這些重複性的資訊, 我們應該獨立建造屬於它們的資料表 (Table), 以待日後可以容易選取使用及設計查詢 (Query). 這部份我們日後會慢慢的涉獵到, 現在先按下不表.

資料類型
之前說過的五項主要資料是 "日期", "詳細", "賬目", "借方金額" 及 "貸方金額", 但是為了有效地解讀賬冊, 光有他們是不夠的. 於是我們還要加上如上一段所列的資訊. 資訊有了一大堆, 但是我們還要把它們分類. 基本我們可以把它們分成三類:

Basic Data (基本資料類型): 包括 "日期", "詳細", "傳票類型", "客戶/供應商" 及 "員工"

Transaction Data (交易資料類型): 包括 "賬目", "借方金額" 及 "貸方金額"

Additional Transaction Data (輔助交易資料類型): 包括 "產品" 或 "物品", 及其單價和數量

上述三類資料類型, 即代表著三個獨立的資料表. 下圖顯示了這三種類型在 OrangeAcc 中的傳單介面中的分佈.


很累, 下回繼續...





2013年9月24日星期二

反對完美


某程度上我們都是在追求完美, 而且我們也在追求下一代能夠比我們更加完美.

父母的野心
相信沒有幾多父母能夠不認同上述句子. 然而我們可以接受得了以基困科技去製造完美的下一代嗎? 如果我們接受不了, 那我們為何又可以接受"虎媽" (在香港就是 "港爸港媽") 以如此高壓的手段去逼迫她的女兒? 為何我們又可以接受"網球雙妹"的父母親在她們未出生前就已經規劃好了這對黑人姊妹的網球生涯? 如果基因科技有扭曲什麼我們珍重的價值觀, 那這些後天的強逼性的訓練距那條小小的紅線又有多遠?

藍圖子女
我們都希望仔女比我們高, 漂亮, 強壯, 很輕鬆平常的事嘛, 是不是? 但是如果有父母想要一個失聰的孩子, 我們又會否接受? 書中描述了一對失聰的同性戀伴侶, 他們幾經努力終於找到一名家族五代都是失聰的捐精者, 並成功地生出了一個天生就是失聰的孩子. 當消息傳出後, 蓋天鋪地的責難使她們極為驚訝, 因為在她們失聰的世界觀中, 她們自覺本身是一個完整的個體, 而失聰是一種恩賜, 賜與她們一種與別不同的生活態度! 如果你接受不了, 那想像一下同樣有對同性戀伴侶, 她們希望未來她們的孩子要高大帥, 於是她們去尋找一個五代都是高大帥的捐精者. 這樣, 你感覺會否良好一點? 有人認為高是優點, 有人認為失聰是優點, 在本質上其實沒什麼不同. 但是這種精心營造下一代的作法, 在作者眼中有一個問題, 就是 "責任". 而這個問題又會連帶影響各個社會中各個層面, 並破壞人與人之間的扭帶.

胚胎=人?
那是否所有基因科技都應該取締? 在作者眼中並不是的. 在以 "回復身體健康狀態" 的前提下, 作者是支持在美國備受爭議的幹細胞研究. 在書中, 作者提出了 "胚胎等不等於人?" 這個讓大家爭論不休的大哉問. 其中, 作者引述了另一位學者, 喬治.安納斯, 最早提出的一個有趣的假設:

 "假如生肓診所發生火災, 你有時間救出一個五歲女孩, 或是一盤二十個的冷凍胚胎, 救出女孩有錯嗎?" - P.176

無論本身你對胚胎的觀點如何, 這個假設都會令人深思的.

民主=平等?
本書除了有種種關於基因科技的道德爭議外, 其實背後更有優生學這個幽靈在我們中間作祟. 書中簡明扼要地指出優生學在美國這個民主社會也曾經盛極一時, 美國人曾讚美納粹德國下的優生學政策, 甚至有美國總統認為不讓較差的一群人生育是一種道德上應有之舉. 在這些背景下, 要求社會中某類人絕育的政策應運而出. 優生學在美國的退潮並不是出於民主中道德的覺醒, 而是被戰後所揭發的種種種族滅絕暴行所嚇退.

在美國這民主國家中也會在一百年前出現擁護優生學的思潮, 而部份州的相關政策更一直維持到上世紀七十年代. 期間幾萬名被公權力判定為不合格的人被施行了絕育手術. 我不禁質疑現在在香港不停為民主吶喊貼金的人, 他們究竟有沒有讀一讀美國歷史? 民主不一定給每一名人民帶來想像中的尊嚴, 高叫公平也不一定會帶來公平. 如果我們沒有強烈的邏輯思辯傳統, 民主將是一粒包著糖衣的民粹毒藥.




ISBN: 9789866098765
作者: 邁可.桑德爾 Michael J. Sandel
譯者: 黃慧慧
出版: 五南文化事業

2013年9月23日星期一

自製記帳軟件 - DataType


我很佩服那些操作手冊的作者, 可以那麼條理分明的寫出每一個步驟, 每一個動作; 而我每次寫到實作層面的時候總是會退縮不前, 要處理要表達的資訊實在是太多, 而每一項資訊本身就已經充滿了不同的意函, 如果要充分去說明其中的道理和原委, 可能到我力歇那一天都未完成. 傳聞那些操作手冊的作者的稿費相當之高, 能人所不能之價也.

這一篇文章的用意是使大家在繼續我的唐吉訶德之路前, 先對手上的長矛- MySQL - 有一個初步認識. 否則大家只會像是瞎子摸象. MySQL 是一個 Database Management System (DBMS) 軟件, 顧名思義, 她的作用是管理不同的資料庫, 包括保全, 備份及輸入輸出都是她的職責. 而資料的儲存則是 Storage Engine 所負責.  在 MySQL 5.5之前, 預設的 Storage Engine 是 MyISAM, 而在5.5版或之後則是 InnoDB. InnoDB 取代 MyISAM 的原因最主要是穩定與效率. 雖然 InnoDB 會比MyISAM 佔據更多的儲存空間, 但在今天每MB的硬體成本只是港幣十分之一仙, 這個缺點已經變得無足輕重了.


上圖是一位熱心網友所製作的 MySQL Datatype 表的截圖, 完整的表可以在 KIM BRIGGS WEBSITE 中觀看及下載. 你或許會發現這表是根據 MySQL 5.0 版本所製成, 但是到現在仍然是適用的, 畢竟如果把 Schema 看成是根據幾何學繪成的藍圖, 你就不能夠隨便改動其中點線面的定義. 

在我自製的記帳軟件的 Schema 之中, 在考慮了一般記帳的需要, Micosoft Access 的限制和開發難度後, 我只集中地使用了幾種 Datatype, 它們包括了: TINYINT, INT, DECIMAL, VARCHAR, DATE, 及 TIMESTAMP. 或許我應該承認懶惰也是一大因素, 可是為了完成這個唐吉訶德式的壯舉, 我是看書看 Blog 都看到眼睛壊了. 為了讓大家進一步理解 Datatype 的選擇與設計考量, 以下我將會逐一簡單的說明一下:

TINYINT ( 1 byte ) - UNSIGNED 數值範圍從 0 到 255
這個 TINYINT 主要是用來作為 "選項數值", 例如 YES/NO, 表單種類及公司類別等. 記著一點, 由於此 Datatype 的數值範圍很小, 所以只適用一些你可以控制而不會自然增長的地方.

INT ( 4 bytes ) - UNSIGNED 數值範圍從 0 到 4,294,967,295
這個 INT 主要是用來作為 "編號數值", 例如表單編號, 客戶編號及產品編號等. 由於此 Datatype 的數值範圍比較大, 所以適用於一些會自然增長但不需要小數位的地方.

DECIMAL ( M+2 ) - 十進位範圍: 點數位前0到64, 點數位後0到30
這個 DECIMAL 主要是用來作為 "絕對數值", 例如金額及數量等. 由於此 Datatype 的數值範圍很大, 在設置適當的前提下你不會遇到任何限制, 就算你的公司是香港中央結算有限公司都沒有問題 (理論上). 有另一個 Datatype 跟 DECIMAL 很相似的就是 DOUBLE, 兩者的數值範圍都是一樣, 但是 DECIMAL 是一個固定數值 (Fixed), 而 DOUBLE 卻是一個浮點數值 (Float). 在記帳中少不免總會有加減乘除的動作, 而在追求精準平衡的時候, 你可不會想在報表中出現一些微少的差異, 重複當年 Microsoft Excel 2007 的 Bug 吧. 為了準確性, DECIMAL 基本是你唯一的選擇.

VARCHAR ( M char's ) - 字數限制從 0 到 65,535 個單位元字母或符號 (中文字是雙位元)
這個 VARCHAR 主要是用來作為 "文字欄", 例如表單明細, 名稱及其他混合資料等.

DATE ( 3 bytes ) - 日期範圍從 "1000-01-01" 到 "9999-12-31"
這個 DATE 主要是用來作為 "日期欄", 例如表單日期及結算日期等.

TIMESTAMP ( 4 bytes ) - 範圍從 '1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC
這個 TIMESTAMP 是一個系統自動生成的時間戳, 其一可以用來作為修復數據錯誤的依據, 另外還可以用作追蹤員工工作進度之用. (我是魔鬼...哈哈哈!)

以上六種 Datatype 基本上就是我那個自製記帳軟件的 Schema 的所用到的點線面定義, 如何組合它們就留待下一篇再說了.

PS. 寫這篇文章比寫書摘要累十倍也不止! 

2013年9月21日星期六

不公平的代價


這本書一如作者的其他著作, 不遺餘力地聲討經濟學的芝加哥學派及全球化. 從公平分配角度來揭示美國社會的種種扭曲制度與階級鬥爭. 作者在書中宣揚政府應該採取措施來抑壓全球自由貿易, 加強工會力量, 及強力規範金融業來達致作者眼中的公平”.

交易費用
新古典經濟學的市場理論一直都是以完全競爭市場, 即交易費用為零, 作為種種假說的基礎. 由於交易費用為零是一種虛構的設定, 因此在將經濟學理論套用在真實世界裡必定出現格格不入的情況. 就此, 經濟學家為這些不協調導入種種條件來使他們的理論更合乎現實(或想像)中的觀察, 例如風險, 界外效應, 訊息不對稱等.

先回頭說說什麼是 零交易費用”. “零交易費用不等於交易費用不存在, 而是假設其值為零. 以物理學的術語來表達就是, 交易費用所造成的功在經濟學理論中的影響是無或是微小到可以忽略不計. 為什麼要這樣假設呢? 這是因為交易費用是一個不能界定的卻又永遠存在的變數! 如果在經濟學理論中導入交易費用不為零, 則所有經濟學理論都將會無從推斷出任何結論.

如果我們從人類的社會結構的發展史來看, 政府的出現其實就是為了減低社會整體的交易費用; 循同樣道理, 我們應該可以看出政府本身其實就是交易費用的具體表現. 簡單來說, 政府就是交易費用的一部份. 這是芝加哥學派一直提倡 大市場, 小政府的原因. 在這些學者眼中壓縮政府的規模即等同減少社會整體的交易費用, 而使到市場的效率提高從而減少資源的浪費 (政府或市場誰運用資源的效率比較高是另一個大題目). 畢竟, 經濟學的基本宗旨是: 有效地利用有限的資源.

公平
回本書作者在書中不斷強調 公平的重要性, 認為這是社會穩定的一大因素, 甚至指出適當的公平更可以提昇社會的整體生產效率. 但因為市場天生的分配機制是不公平的, 要在經濟分配上達至某程度的 公平”, 所以需要政府的主動介入來矯正這缺陷. 可是美國政府卻受到芝加哥學派的荼毒, 所以反其道而行不斷地減少種種法令規管和稅務負擔, 及放任產品貿易全球化的發展, 從而使社會的財富更集中在1% 的人手中. 而這 1% 的人又反過來運用他們手中的資源來影響政府的政策及民眾的思想, 來使到整個社會的財富分配機制更向他們傾斜. 終於, 市場在這個迴圈中失去平衡倒了下來.

作者於書中並非提倡絕對的公平, 而是認為美國政府及人民必須認清 美式貪瀆和各利益團體的尋租行為所帶來的不公平. 因為這種不公正一步步侵蝕美國的國力, 而一般平民百姓將是受苦最深的一群.

何價
公平是一個引人入勝的字眼, 幾個世紀以來, 人類多少革命都是因為這兩個字背後所傳達的意義. 可惜的是, 到今天仍然未有人可以定義何謂 公平”. 




ISBN: 9789862416334
作者: 史迪格里茲 Joseph E. Stiglitz
譯者: 羅耀宗
出版: 天下雜誌


2013年9月19日星期四

當中國買下全世界


在讀這書前, 你要有充足的心理準備, 因為這本書說的不是一般西方觀點.

走出去
作者一開始即點出了, 中國企業及商人在走出去這個國策中所展現的力量與野心, 及碰上的阻礙. 在開卷的世界地圖中, 說明了這種野心的旺盛大及企圖的宏大; 除了南極洲外, 中國商人及他們滿滿的錢箱已經跑遍其他大洲. 這種情況, 讓西方各國陣腳大亂. 因為中國商人不只為本來依靠西方列強的小國帶來金錢, 也向他們展現平等互利, 在商言商的新模式. 這種新模式更改了國際政治版圖, 侵害了傳統強國的利益.

消費者期貨市場
作者詳細描述了實物期貨市場的運作, 及批判了金融業者為了套利而使市場波動幅度擴大. 而且更進一步的說明了大眾把資金投資於期貨市場其實等同減少了資金流向股票市場, 換句話說就是把資金花在消費品而非可以增加社會經濟效益的耐用品上. 於是本來讓業者估算未來趨勢用以規避風險的機制變成了一個大賭場. 這種行為, 壓抑了實體經濟的發展, 到最後又會壓抑了對消費品的需求. 這是一個沒有贏家的遊戲. 先不論其背後的經濟理論有沒有爭議, 但是在一個短時期內, 這種資金偏向而造成的短缺的確是出現了的, 就在金融風暴發生之後.

非洲
中國的出現對非洲的人民來說是一件利大於弊的事情, 儘管西方國家稱之為"新殖民主義", 也有印度學者說中國政府派遣了成千上萬的罪犯到其他地方工作, 但是作者都一一以證據反駁了這種種說法. 作者甚至稱中國政府及中國人民這種在商言商, 不介入當地政治的作法為"反殖民主義". 對於西方媒體指責中國政府偏愛"邪惡"的國家, 作者也指出他們在同時掩飾自己的國家為了經濟及政治利益而支持了不少同樣"邪惡"的國家. 這種雙重標準, 對我來說並不新鮮, 反而是出現在一個西方作者的著作中才叫我驚訝不已.

越往後讀, 本書越益像是一本為中國人而喝采的書. 如果你是想找渣看看中國如何欺壓全世界, 這本書一定叫你倒盡胃口. 但是如果你是想看看, 中國這一股力量是如何以非西方文明的船堅炮利式的手段去擴展資源版圖, 在為自國人民謀福祉的同時也帶領了他國人民一同進步的故事, 這書將會帶給你一定驚喜.

在"中國威脅"為大主調的書海中, 這書可算的上是一股清泉.



ISBN: 9789865947569
作者: 丹碧莎.莫尤 Dambisa Moyo
譯者: 黃中憲
出版: 野人文化



2013年9月17日星期二

記帳遊戲


買這本書的原因很簡單, 就是因為它的名字.  畢竟這門技術帶給了我在職埸上的立足點, 也供養著我的家庭. 濃濃的情意結讓我不假思索的將它從書店帶了回家.

文藝復興
作者一開始就大篇幅的描述會計祖師 Luca Pacioli (1445-1517) 的出生, 遇上導師與貴人的經過, 到最後出版了他的數學大全<<算術、幾何、比例總論>>* (簡稱<<總論>>). 祖師在<<總論>>中有一章是向讀者介紹複式簿記的好處與規則, 之後這一章被獨立成書, 並且把影響擴展到整個歐洲. 在這個主線之外, <<總論>>是第一本全面使用阿拉伯數字的歐洲數學書籍, 隨著複式簿記的流行, 阿拉伯數字亦把羅馬數字的主流地位排擠掉, 從而使到計算變成每個人能力所及的事. 我不禁在想, 啟蒙時代是不是得益於祖師劃時代的舉動的呢?

泡沫, 泡沫, 還是泡沫
在往後, 歐洲人逐漸掌握了複式簿記, 使得商業往來變得普遍, 而且日益複雜. 而同時期在大航海時代的貿易壓力下, 人類第一檔公開交易的股票在荷蘭誕生了. 作者指出, 複式簿記的出現與傳播可以說是催生了股票, 因為沒有清楚準確的交易記錄, 及易於明白的損益數據, 就沒有大規模的合資營運.  有了複式簿記及股票市場, 我們吹出了一個又一個的泡沫, 就算破了一個, 我們還是不亦樂乎的投入下一個泡沫. 資本主義 (Capitalism) 一詞中的資本 (Capital) 亦源於簿記的損益表 (Profit & Loss Account).

缺失
作者認為複式簿記有一個很大的缺失, 就是這個系統只是狹義地記錄了可以金錢量化的事物, 而忽略了在營運中所消費了而又不可以量化的事物, 例如環境 (在近期一次網上討論中, 有前輩提出了員工的才能也是複式簿記所忽略的. 而在大數據一書的作者也指出了複式簿記沒有反映出資訊公司- 如Google, Facebook等 - 手中握有的數據的價值). 在一個個別經營的商戶的帳本有這樣的缺失其影響是微不足道, 但是如果是社會整體呢? 甚至於一個國家的經濟帳本都有這種缺失呢? 作者指出了現在廣為各國採用的本地生產總值 (Gross Domestic Product) 在計算中就有如斯缺失. 而這種缺失或是人類步向文明終點的遠因.




ISBN: 9789868905566
作者: 珍.格里森-懷特 Jane Gleeson-White
譯者: 楊雅婷
出版: 行人文化


* 原名: Summa de Arithmetica, Geometria, Proportioni et Proportionalità

2013年9月15日星期日

中國大歷史


如果詳細描述某一朝代及其每位帝王的史書是該朝歷史的掃描繪本, 那這本<<中國大歷史>>就可以說是一本從夏朝到改革開放初期中國整體歷史的速寫畫集.

廣度與深度
本書厚度只有368頁, 以任何一本歷史書來說, 她都應該算是一本小書. 但和其他的歷史書不同的是, 作者不是以斷代史形式來寫各朝的歷史, 而是以一種作者稱為"大歷史觀"的形式去描寫中國及生活在這土地上的人民的歷史. 從地理環境到古代邊防的佈置, 從控制稅收到政權更替, 從道德治國的失敗到數字管理的嘗試, 在在反影出這本小書所涉及的範圍不只廣闊而且分析極具深度!

士農工商的背後
作者在書中不斷的指出, 民國共和前的中國缺少的不是人才, 而是缺乏一種以數字管理的制度. 中國歷史上幾次有名的改革, 如宋代王安石的變法到清末的康有為梁啟超的戊戌變法等, 作者都有作詳細分析, 並指出早期的變法超越了當時的環境, 而到晚清則觸動了政權國體, 而使得所有向數字治國的改革都是夭折告終. 這印証了中國政權一貫輕商業的本質, 而輕商的原因在於維持政權. 為了維持"天下莫非皇土"的政治穩定, 所有超前的發展都一概打擊, 而其中"士"這一階級則成了穩定四海的手段! 在這種結構下, "士"獲取了這國家中大部份的政經利益, 而中國人在這種結構下亦適應了這種"士農工商"的經濟分配方式, 甚至有"學而優則士"的說法來教導下一代. 而提出變法新法等人則不只是向"士"這些既得利益者宣戰, 而且也是挑戰廣大萬民世代傳下來的主觀意願.

革命
在歐洲黑暗時代終結以後, 他們的科技, 制度, 商業倫理在幾個世紀中發生了翻天覆地的變化. 複式簿記的出現與大規模流傳, 使西方文明及商人逐漸從宗教這個枷鎖中釋放出來. 反觀中國還是維持著士階級的特權來抑止社會其他階級的發展對政權的沖擊. 終於, 東西文明在十九世紀開始產生激烈的碰撞, 而中國在這場衝突中敗下陣來. 相對於日本人口及文化的高度一致性, 中國其實更像是一塊大海綿, 外表一致但結構鬆散, 好處是不容易整體覆亡(別忘記我們的文明不斷地流傳了幾千年), 但壞處是整體難以改變. 作者認為這是日本有明治維新的成功, 而中國卻沒有相似成就的真正原因. 曾經有學者說過, 古代中國是落入了"低水平均衡陷阱"才落後於西方文明, 但是縱觀歷史, 中國的人口密度其實並非很高, 經濟規模在十八世紀前都雄視全球, 農耕技術, 科技水平, 及文化學養更是執世界之牛耳. 或許中國人未經歷過有如歐洲黑暗時代的洗禮. 但在與外部競爭的壓力之下, 中國終於也走入了自己的黑暗時代. 而在黑暗時代中倖存的人民, 以短短三十年的光陰, 改變了世界未來的走向.

作者以非凡的思維, 簡潔的道理和客觀的陳述, 把<<邏輯哲學論>>中的命題: "凡是存在的都是合理的" 發揮的淋漓盡致.



ISBN: 9789570810783
作者: 黃仁宇
出版: 聯經

2013年9月14日星期六


五光十色的一本海洋生物史

進化女神
本書是作者另一套科幻小說<<群>>的姊妹作, 然而這不是小說, 這是一本有趣的科普著作. 書中藉由一名"進化女神"與她的手提包來將演化這一還是充滿疑問的大題目來擬人化. 不同於很多其他坊間的科普著作, 作者並不執著於"我們為何在此?"這個大哉問, 而是著眼於以幽默風趣的筆觸, 將覆蓋地球表面七成的海洋, 及生活在其中的各式生物, 不論現在的或是已經滅絕的, 一一呈現在我們眼前.

膠狀物
一滴水之中生活著數以百萬計的生物, 牠們在水滴內交織著彼此, 使水在顯微鏡下顯現出一種類似膠狀物的狀態! 夏天時, 我們還要不要去游泳? 究竟我們是在水中暢泳, 還是在微生物組成的膠狀物中暢泳? 想起這些, 再想起陽光下讓我目迷的Bikini... 天人交戰啊!

有人在家嗎?
想起深海海底, 大家的腦中會不會浮現一片荒蕪的沙漠? 除了偶爾見到一條好奇心太強的魚或烏賊游過鏡頭外, 海底就只是各式海洋動物的墳墓而已. 當然不是這樣! 海洋科學家早就知道, 海洋其實是充滿生物, 不論是在各種深度或是海底火山口. 那為什麼鏡頭前的海底世界永遠是那麼寂靜呢? 請想像你自己是一隻住在森林內的可愛而平凡的小白兔, 然後一天晚上你見到一隻閃著黃光而且發出不同古怪聲響的怪物向著你的方向前進, 你本能反應是什麼? 躲! 遠遠的躲藏起來! 明白海洋生物學家的無奈了嗎? 明知牠們就是在那開心的生活著, 但你就是無法一睹芳蹤. 看來還是數星星的天文學家比較易混一點.

紅色皇后
自從現代人類在更新世的非洲大草原出現之後, 我們便一直如同其他地球上的生物一樣被進化女神操控著生死. 直至我們掌握了農耕技術, 才有了一點點能力跟她討價還價, 但依然是處於下風. 直到工業大革命爆發, 我們終於掌握了可以改變環境的能力. 為了我們的生存, 更好的生活環境, 更成功的繁殖下一代, 我們肆無忌憚的使用地球上所有我們有能力使用的資源, 當中包括海洋. 而海洋是大部生生物的居所. 由於我們沒法自立於其他生物以外單獨地存在, 因此當我們過度使用及污染海洋把其中的生態摧毀時, 我們其實也是在摧毀自已及下一代.

為了讓進化女神稱心滿意, 世上所有物種都發展出獨特的生存技巧, 而我們人類就發展出"思想". "思想"這項優勢讓我們得以遍佈世界各個角落, 成為這個星球的主宰生物. 正正是"思想", 才讓我們發展出科學與技術, 從而使我們在某程度上成為了其他生物的"進化女神".

在與紅色女皇不停的賽跑之中, 我們不經意地變成另一位紅色皇后. 我們的未來就取決於我們是否真正擔得起"智慧生物"這個名號.

如果你對一般科普書的普通科學感到沉悶, 這本書絕對能令你驚喜而且愛不惜手!



ISBN: 9789866807190
作者: 法蘭克.薛慶 Frank Schatzing
譯者: 丁君君及劉永強
出版: 野人文化

2013年9月13日星期五

周恩來的政治生涯


十里長街送總理
有關我國已故總理周恩來 (1898-1976) 的種種著作在坊間汗牛充棟, 由歌頌到抨擊的無數文字, 差不多把這位在死後被人民十里長街哭送的總理每一秒的生平都放在陽光下檢視. 然而他最為人津津樂道的, 不管是毀是譽, 就是他極高的政治敏感度, 在國際場合表現出的風度, 在百廢待舉的國度裡如何一邊帶領種種政治運動, 另一邊亦能維持國家機器的運轉的智慧與手段. 這個被稱為"政壇不倒翁"的一代傳奇人物, 他的政治生涯如何開始, 在"太陽"讓人目盲的光芒下如何小心奕奕地求生, 在該出手時的狠勁, 長期工作的神奇效率, 及到生命終結前的最後時光就是這本書所要揭示的.

毛周鄧
看這本書是因為 <<鄧小平時代>>. 在看 <<鄧小平時代>> 時, 常常出現在腦海中的影像, 除了鄧小平 (1904-1997) 就是周恩來, 這就引發了我對周恩來的好奇心. 相對於鄧小平, 周恩來對我說有一種神秘感. 在不同文獻中均顯示了周是一名極其能幹的人, 然而他卻服膺於毛澤東 (1893-1976) 的領導, 忠心耿耿的貫徹毛的思想與政策, 因此我也不禁在想, 究竟中國共產黨歷來股股政治運動所帶給人民的災難, 周要承擔多少責任? 是不是一如其他批評者所說的"周恩來的存在使毛澤東的暴政得以禍延中國幾十年"? 但是鄧小平的存在, 有毛澤東的保護, 也更有周恩來的保護. 歷史, 總是叫人玩味不已.

外國學者
本書跟<<鄧小平時代>>一樣, 作者都是長期研究中國的外國學者(本書另一作者是余長庚, 1952-1974年供職我國外交部), 這也是我選擇本書的原因. 作為中國人, 對這段可歌可泣的歷史都有不同的切身體會, 亦或多或少帶來偏見甚至意識形態, 這是我閱讀時極為感冒的. 而外國學者往往都有比較超然的態度來看待我國歷史, 這種史觀才是我所想要的. 本書是由香港中文大學出版社出版發行(我看的是 Kindle 電子版, 是由香港中文大學出版社授權 Info Rainbow Limited 發行), 亦令我對本書的史料更加有信心.

看畢本書, 我在想或許書中引言最後的句子: "周以獻身一個事業開始他的政治生涯, 卻以侍奉一個暴君而告終" 最能表達出葉劍英 (1897-1986) 口中的"總理心中的委屈"吧.



ISBN: 9789629963989
作者: 芭芭拉.巴努茵 Barbara Barnouin 及余長更
譯者: 馬繼森
出版: 香港中文大學出版社


2013年9月12日星期四

窮查理的普通常識


家有一老, 如有一寶.

逆向思考
看罷這本書, 就像與一位和藹可親而且學識淵博的長者詳談了十一次, 他的大度, 學養及看透世情的幽默, 讓我再三回味. 本書其實是作者十一篇演講稿的匯集, 作者的生平及他的朋友對他的評價, 每一篇都有特定主題, 像是第一講 "如何讓生活悲慘".  這個非常題目, 正正就是作者在書中反覆強調的逆向思考的真諦:

"曾經有個鄉下人說: 我只想知道我將來會死在什麼地方, 這樣我就可以永遠不去那裡" - P.102

跨領域技能
作者認為每個人, 不論是否專業人士, 都應不停吸收不同領域的知識. 首先他認為終身學習是一種對自己對家人及對社會負責任的行為, 因為這種態度可以令所有人遠離鐵錘人傾向, 而這種傾向是造成很多軟科學偏離現實並引致種種社會問題的根源. 如何可以避免成為鐵錘人的方法就是實行"拿來主義", 但是要避免意識形態的污染. 因為在作者眼中, 極端的意識形態是可以令人腦快速痿縮, 就算是聰明絕頂的人也不能幸免.

魯拉帕路薩效應
魯拉帕路薩效應是作者自創的新名詞, 意思是指有多種不同效應疊加, 然後這些效應都變得極大化. 這種效應可以使人成功, 也可以使人失敗, 端視這些是什麼效應. 我覺得這個效應很有趣, 也很真實. 在現代各種專業都分割的很細, 使我們在分析問題時有種見樹不見林的傾向, 我們喜歡找到一個唯一的簡單的原因來去解釋世事, 因為這樣我們就可以扮作智者, 去唬弄不明就裡的外行人. 然而世事的發生是因為多種效應共同發生的果. 這種追求優美的執著, 或許是物理學成功的負面效應, 然而在面對量子世界時(更不要提"絃論"), 物理學已經放棄了傳統思維.

經濟學及會計學
作者對這兩個學科的質疑與嘲諷, 貫穿了整本書. 作為一位會計從業人員, 看到作者視那些制定偏向管理層而忽視投資者的會計準則的會計師為"背叛者", 心頭確是有一刻不爽, 卻又無法不認同. 另一方面作者也對我畢生興趣 - 經濟學, 一一指出其十個缺憾. 如果你也對這兩個學科有興趣有感情, 書中的第八及第九講, 務必再三細讀.

本書滿載著一位成功而開明的長者充滿智慧的哲理, 而最可貴的是這些哲理根本就在我們大家的身邊, 能否領悟當中意義, 不在智商高低, 而是我們是否願意聆聽.


ISBN: 9789868685734
作者: 查里.蒙格 Charkes T. Munger
編者: 彼德,考夫曼 Peter Kaufman
譯者: 李繼宏等
出版: 城邦文化

2013年9月10日星期二

我們曾經輝煌


簡單地說, 這是一本為美國未來而吶喊的書. 就好像其他有關美國甚至於人類文明未來而寫的書中, 我國 - 中華人民共和國 - 再一次成為第二主角.

三十二對二十四
書中一開始就用天津的梅江會展中心來對比美國華盛頓地鐵貝瑟斯達地鐵站的兩部扶手電梯. 前者用了八個月興建, 後者預計要花六個月來修理! 或許有人在心中已經在想: 嘿, 中國都是靠不要人命不理後果才建設出這些豆腐渣工程, 怎可以跟人家比?! 然而, 在國家層級的競爭, 人民都是被漠視的一群. 中國如是, 美國如是. 作者繼續以上述事件作為引子, 帶出美國今天社會普遍的氛圍, 就是: "我們只能眼巴巴的看著中國趕上來." 這種麻木感, 是兩位作者為美國未來感到恐慌的原因.

恐怖的兩歲
作者認為過去二十年, 隨著共產陣營的崩潰, 美國進入了所謂的"恐怖的兩歲"階段. 美國人民和政府在這期間內把教育制度弄壞, 向數學與物理學開戰及黨派對立癱瘓了政府. 這種種原因導致美國的輝煌逐漸消散. 作者列舉種種事例, 對比美國與其他國家, 發現以往的差距日漸收窄, 甚至在某些方面早已被他國超前很多很多. 有一段書中引述一位列根總統 (Ronald W. Reagan) 時期當教育部官員 Chester E. Finn Jr. 就 2009 年 PISA* 測驗成績的向<<紐約時報>>發表的感想:

"哇! 我大吃一驚. 我想到了史普尼克 (Stupnik, 蘇聯第一個也是人類第一個成功發射上太空的人造衛星)... 我看到了中國人, 為了達到目標多麼堅毅不懈, 如果他們在 2009 年能在上海做到,  2019 年就能在十個城市做到, 然後 2029 年就能在五十個城市做到." - P.158-159

這種嘗試再擴大推動的策略, 一直就是我國改革開放以後的政策模式, 已故國家領導人鄧小平叫它做 "摸著石頭過河". 身在這個人類史上最大規模的社會實驗場旁的香港人(包括我), 應該體會會更深吧.

藥方
面對逐漸病入膏肓的美國, 兩位作者當然有為他們熱愛的國家開出藥方. 該藥方很簡單, 但入口卻會很苦. 藥方是什麼就不在此詳細說明, 但其基調可以甘迺迪總統 (John F. Kennedy) 的著名演講作為總結:

"... My fellow Americans, ask not what your country can do for you, ask what you can do for your country." - Inaugural Address, 1961

或許我們香港人在這個黨派對立, 政府施政無法有效開始的時候, 也細想這五十年前, 出現在一個經歷民主選舉洗禮的總統的演講中的這些字的背後含意. 畢竟我們也曾經輝煌.


ISBN: 9789862168806
作者: 佛里曼及曼德鮑 Thomas Friedman and Michael Mandelbaum
譯者: 連正世, 李俊融及李靜宜
出版: 天下文化

* PISA 的官方網址

2013年9月9日星期一

自製記帳軟件 - Schema


在上一篇中已經指出了 Schema 在開發 Database 中有如建築藍圖, 在為 Database 加磚蓋瓦前必須再三思量, 也必須跟未來的使用者好好溝通. 那如何設計 Schema 呢? 以前設計 Schema 是一件很痛苦的事情, 設計者必須一字一字的在 MySQL Admin 的 Command Line Interface 下輸入整個 Schema... 正如劉德華所說: "今時今日這個態度是不夠的." 所以 MySQL AB 在2003年招攬了DBDesigner4 的開發者 Michael G. Zinner 加入之後, 開發出了MySQL GUI Tools Bundle. 在2007年, MySQL 推出了MySQL Workbench 5.0, 並逐漸成為 MySQL 的旗艦圖形介面產品. 從此以後, 設計 Schema 的權柄, 就由小眾神級高人手中飛到尋常百姓家了. 有關 MySQL Workbench 的故仔就說到這裡.

如果大家有留心看文頂那幅圖(我很懷疑有沒有人看), 有沒有發覺好像一張水管佈置圖呢? 再細心點看, 我相信聰明的各位一定會發現, 所有"水管"都直接間接的連到正中間那個方格. 其實這就是我自家製的記帳軟件背後關聯式資料庫的 Schema. 關聯式資料庫是在上世紀七十年代 Edgar Frank "Ted" Codd (1923-2003) 提出的關聯模型基礎上發展出來的資料庫. 關聯式資料庫就好像我們常見的族譜, 由一種類似父母與子女的關係所編織而成, 更進一步的相關定義與歷史, 請大家去問 Google 大神好了, 畢竟已經超出我能力.



中間這圖就更清楚的顯示了, 資料表 (Table, 即頂端是藍色那些方塊) 間的關係, 這種關係是建立在不同資料表中的資料欄 (Field) 的關聯. 在上圖中以橙色所標示的關係是一種"一對多(One to Many)" 的關係. 左手邊的資料表 <tbl_company> 是用來記錄主公司的資料, 而另一邊的資料表 <tbl_mvoucher> 則是用記錄所有傳票的主要資料. 其中關聯的資料欄分別是 <tbl_company> 的 <<id_company INT>> 及 <tbl_mvoucher> 的 <<co_mvoucher INT>>, 而該關聯的性質是一對多. 形象化一點說明: 在這個關係中, 主公司的編號 (ID) 在 <tbl_company> 只會出現一次, 但是在 <tbl_mvoucher> 則可以出現無數次. 情況就如同, 一間公司可以有無數多張傳票 (Voucher) . 

何謂一對多, 就是指一筆特定資料在資料表甲只會出現一次, 而在資料表乙則可以出現無數次. 而關聯性質不是只有一對多, 它還可以設定為"一對一 (One to One)" , "多對多 (Many to Many)" 及"多對一 (Many to One)". 直覺上"多對多"這種關聯性最有彈性, 但是當你使用查詢 (Query) 去組合兩個有多對多關聯的資料表時, 它卻會引出一個資料性夢魘: 笛卡兒乘績 (Cartesian Product). 當然, 你有可能為的就是要得到這樣的結果, 但是在簿記或會計之中, 笛卡兒乘績的用處應該不大.

既然公司的編號只出現一次, 那為什麼不把公司資料直接放在 <tbl_mvoucher>? 這是因為遵從了資料庫正規化 (Database Normalization) , 亦節省了資料庫在硬盤(Hard Drive) 及記憶體 (RAM) 上所佔據的位元空間從而縮短系統反應時間(Response Time). 說了這麼多, 那<<id_company INT>> 及 <<co_mvoucher INT>> 中的 "INT" 是什麼呢? 這個 "INT" 指的是資料的形態. 這是未來會講及的. 


2013年9月8日星期日

數位新時代



讀這書的最大原因是想看看兩位 Google 人如何看待未來, 而這個未來亦跟他們的公司有著密不可分的關係. 美國人有一種很特別的習慣, 他們喜歡將一些有代表性的公司名字當成動詞使用, 經典的有 Xerox. 當第一次聽到有人跟我說: "Can you xerox this for me?"  我真的猶如墜進五里霧中.  到今天, 很多人上網查東西時不會使用 Search, Find, Dig 等動詞, 而是直接說 "Google it!" 甚至 這個字已經不只指在網際網路上的搜尋, 而是更進一步有 "起底" 之意. 在香港這中英夾雜的地方, 從來未聽過有人說: "幫我 xerox 份文件." 就算有人真說了, 也可能聽成 "幫我撕咗份文件."! 但是 Google 這個字已經入侵成了日常生活詞彙: "你唔知乜呀? Google 下佢囉!"

甚至有人說 Google 已經等於網際網路. 在香港時間2013年8月17日早上06:52到06:57, Google 旗下大部份服務都出現錯誤訊息或不能存取, 包括 Google Search, Gmail, Youtube 及 Google Drive 等. 根據 GoSquared 的數據顯示, 在 Google 這五分鐘的當機時間內, 全球網絡流量急跌 40%! 真真正正的雄霸天下!*

說回本書, 我個人覺得是格局恢宏但驚喜有限. 書中一開始即以大量未來可能的技術來營造一種前瞻性的氣氛. 可惜的是我從小就已經被 Hollywood 今人炫目的 Sci-Fi 電影寵壞了, 因此我實在覺得有點悶, 甚至曾經一度放下數天之久. 或許是因為我在期待一些更加細緻, 更加天馬行空的想法吧.

從中段開始, 本書較著重於網絡與社會的互動及其影響: 網絡人肉搜尋, 戰鬥機械人, 恐怖份子, 網絡戰爭, 版權, 商業間諜, 洩密, 政府監控, 社交網絡, 個人社經地位及第三世界國家經濟發展等都有很詳細的探討. 而其中出現得最多的國家就是...中華人民共和國. 或許我國真的是 Google 心中的一根刺吧.

有一點很有趣的是, 很多人抨擊 Google 的工程師文化, 尤其是導致設計師 Douglas Bowman 憤而離職的 "41種藍"** 事件更為注目. 然而在本書作者眼中那根本不是一種缺點, 而是表現 Google 精益求精的一面. 順帶一提, 當時的主事者即今日Yahoo! 的 CEO - Marissa Mayer!

出於埃里克.施密特的社會地位, 本書擁有很多各國名人及美國軍人的訪問, 亦使到本書的世界觀非常龐大. 本書的兩位作者都是任職 Google 的, 但是 Google 的身影在書中並不常見, 這令到我更加留意和思考 Google 在那裡? 在讀完本書我才恍然大悟: 本書就是 Google, 本書就是 Google 眼中的"數位新時代"!


ISBN: 9789573272076
作者: 埃里克.施密特及杰瑞德.科恩 Eric Schmidt and Jared Cohen
譯者: 吳家恆, 藍美貞, 楊之瑜及鍾玉珏
出版: 遠流

鉅亨網 - Google當機5分鐘 全球網路流量暴跌40%
** Douglas Bowman - Goodbye, Google 
** CNET - Google designer leaves, blaming data-centrism

2013年9月6日星期五

大數據


洶湧的滔天巨浪的已經把我們包圍, 這一次我們再無高地可逃, 這一次我們必被洪水捲走! 

"噢, 恭喜你的女兒懷孕了"
今日, 我們的生活已經與 Internet 密不可分. 當生活足跡往虛擬世界伸延, 我們會製造很多資料, 而這些資料一方面讓有眼光的人大發利市, 另一方面也有可能引出有如 <<1984>> 中描述的老大哥出來. 但是我們已經沒有回頭路可走, 未來世界只會進一步數據化, 更多的資料被儲存被分析. 書中作者援引了很多例子指出大數據的光明與黑暗, 其中一個引人深思的案例是一間零售商只是分析了其他女性顧客在他們網站上的數位足跡及懷孕周期, 就可以準確知道一位高中女生已經懷孕, 比天天相見的父母更早知道!

我們都是一座座活生生的資料庫
在以往的類比世界中, 資訊凝結於不同的日常生活事物, 黑膠唱片, 電影底片, 錄影帶, 書籍, 相片, 繪畫, 雕塑, 衣服鞋襪, 地圖... 各有各的形態規格, 使用時也是限制多多. 到了今天, 不只上述的東西已經全被數據化, 甚至我們的人際關係, 喜怒哀樂, 信用度都已經全面變成了電腦可以讀取的數據. 猶有甚者, 連我們移動滑鼠的軌跡所產生的數據都會被收集分析. 海量數據已經日益成為不同公私單位的決策基礎, 然而對隨此之來的後果卻一無所知. 唯一知道的是, 大數據正在沖擊著我們看待世界的方法.

相關性-達陣!
作者於書中指出, 由於現今資訊科技的發展, 世界已經進入了"母體=樣本"的時代. 在這個時代之中, 以往統計學的種種陷阱與偏見已經不再大規模影響我們如何看待事實, 因為在海量資料中找出相關性比因果性更重要更有用. 在面對海量資料所展現的現實時我們不需知道 "為何如此" 只需知道 "正是如此"! 看似是實用主義者的作者在書中卻也批評高舉理論無用觀點的人, 因為萬事萬物背後都有其理論, 就算是普通如數據庫也是一大堆數學理論的產物. 

自由意志
作者雖然強力呼喚我們要擁抱大數據時代, 但也提出了大數據所賦與數據掌握者的強大力量. 如果掌握者無限制的儲存所有數據並可以任意操弄, 他將會透過種種數學模型來預測我們的行為. 當數據繼續指數式的成長, 預測的可靠性也會日益提高, 到最後他會不會透過這種預測來限制了我們的選擇? 而限制了我們的選擇又會回過頭來提高預測的準確度. 再進一步, 這種預測會不會用來懲罰我們有可能但並未施行的罪行? 一旦我們的自由意志有如 Arthur Schopenhauer 所言只不過是鏡花水月, 那支撐西方文明的種種價值觀及制度也會轟然倒下. 因此作者在書中提出了幾個解決方法, 好把這個人類的新時代引領我們的文明往正確的方向前進.



ISBN: 9789863201915
作者: 麥爾荀伯格及庫基耶 Viktor Mayer-Schonberger and Kenneth Cukier
譯者: 林俊宏
出版: 天下文化




2013年9月4日星期三

自製記帳軟件 - 思考


動機有了, 工具選了, 是時候思考想要的目標有幾多.  在思考時要將目標分為幾個類別, 並設定先後次序, 好讓自己不會在漫長的開發過程中迷失了. 

思辯
在這階段可以先不想電腦硬體及網絡設備, 因為這些都是金錢可以解決的問題. 要多花時間去細心思考的是如何將日常工作的流程在電腦內重現. 為此, 我有段時間真的自我閉關, 甚至學周伯通以自言自語來跟自己思辯, 只為解決一些在類比世界沒有但卻會在電腦世界發生的邏輯問題. 再一次, 香煙真是好伴侶... (香港政府忠告市民: 吸煙危害健康).

另一個需思考再思考的就是整個系統背後的 Database Schema. Schema 是什麼呢? 它就是讓資料庫管理軟件知道如何儲存你所輸入的資訊, 其關聯性及屬性. 如果以建築大廈作例子, 那 Schema 就是你系統中的建築藍圖. 即是當你設計一個 Schema 時, 你要想像及考慮到整個工作流程及如何達到目標, 換句話說這是 "商業邏輯"! 

Point of No Return
再用建築大廈來說明思考在設計 Database Schema 的重要, 因為 Database Schema 是沒有 Trial & Error 的機會, 而 P.N.R. 就在落實 Schema 前的那一刻. 想像一下你在設計一座住宅大廈的時候, 你會為未來的目標住客設計出適合他們生活習慣或品味的間隔, 睡房和廁所的數目, 廚房的位置, 客廳大小, 甚至樓高, 每方尺承重等等不同的屬性. 當藍圖落實後, 工程師及工人就可以開始根據你的藍圖來動工. 突然市場氣氛轉變, 然後老闆跟你說: "啊, 我們要將這大廈轉變為辦公大樓!" 

於是你叫停工序, 打開藍圖一一審視可修改之處 (在這裡"關聯式資料庳"再一次跟大廈結構很相似; 就是環環相扣, 是真真正正的 "牽一髮而動全身"). 但是你發現, 如果你修改A, 就必須改B, 而修改B, 就要把C也改掉. 如此類推直到修改最核心的部份為止. 然而當你修改最核心的部份, 就變成整個架構都要修改! 緊記的是, 當你的完成度越高, 要修改的東西就越多. 

在分析後你可能發現, 打掉重來可能是邏輯上最合理的辦法, 但往往因為經濟政治等問題而有所不能. 到最後你只能作一些小修小補, 甚至不惜潛建來達到目的. 這樣的成品出來之後不是失敗缺乏效益, 就是成了四不像. 

祖師爺
上圖是 Luca Pacioli (1445-1517) 的肖像. 在文藝復興時期這樣的肖像油畫對被繪者來說, 可說是一種非常高的榮譽. Pacioli 被譽為會計之父,  雖然他並非複式簿記的發明人, 但是他是第一個梳理複式簿記的流程, 規則並全面以阿拉伯數字論述其數學思想及出版的人, 因為其關於複式簿記的部份被獨立成書並暢銷歐洲各國, 促使歐洲揮別難於計算的羅馬數字, 擁抱我們現在日常所見的阿拉伯數字. 所以更被現代某些人說他是這個日漸資料化世界的奠基人! 

說說題外話, 在 Wikipedia 上的 Database Schema 題目有十一種不同語言版本, 亞洲的有韓文(非常簡短)及日文, 但是沒有中文. 為何會這樣的呢?


2013年9月2日星期一

自製記帳軟件 - 工具


唐吉訶德的馬盾與
決定了要自製記帳軟件之後, 就要面對用什麼樣的工具來完成這個"唐吉訶德"式的壯舉. 畢竟唐吉訶德再荒唐也有一匹瘦馬, 一面皮盾, 和一支長予

"En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que vivía un hidalgo de los de lanza en astillero, adarga antigua, rocín flaco y galgo corredor." - Don Quijote de la Mancha

在 "自製記帳軟件 - 原因" 中已經簡單地說了罐頭式軟件的幾種主要限制: 彈性, 分工及版權. 為了要避免這幾種限制, 在決定工具前我花了不少時間去研究十多個廠商的開發軟件及資料庫伺服器的功能, 特性及版權. 在兼顧了自己的開發能力, 輔助工具, 價格及普及性後, 我決定了以Microsoft Access 及 MySQL Community Server 作前店後居式的配搭來開發自家製的記帳軟件.

前店
我知道很多IT人對 Microsoft Access 都是不屑一顧, 但是我選擇的原因是它可以大幅度減輕我開發的負擔, 尤其不用跟DLL打交道, 就已經功德無量, 更不用提它簡單的報表(Report)設計系統了. 另方面 Microsoft 一直很負責任地提供 Microsoft Access Runtime 給用戶免費下載, 令到在分發及佈署在客戶端時更方便容易. 當然 Microsoft Access 都有它的不足之處; 第一, 它是一個檔案式的資料庫管理系統; 第二, 資料檔容易損壞. 雖然有如此重大的缺點, 但是用作使用者介面(不儲存資料), 它的內建功能是可以讓我相對而言輕鬆地完成任務.

後居
選擇 MySQL Community Server 是一個折衷的方案. 自Oracle 於2009年收購並將 MySQL 納入為旗下產品線後, 開源社區便一直擔心 MySQL Community Server 會逐漸被 Oracle 遺棄. 有見於此, Michael Widenius 於2009年推出了MariaDB, 一個完全與MySQL相容的開源資料庫管理系統 (海豚對上海獅). 那為何我還是選擇以MySQL來開發呢? 因為 Oracle 提供了豐富的免費工具如MySQL Workbench等, 讓我可以更直覺地設計 Schema. 換句話說, 因為我懶...

後居的居所
MySQL Community Server 雖然叫伺服器, 但是它並不是一個完整的作業系統, 所以要找一個作業系統如 Microsoft Windows 來讓它住進去並提供服務. 但是為了省錢又要穩定, 我最後選擇了CentOS, 一個 Red Hat Enterprise Linux 的開源版, 來作這個"後居的居所". 等等! Linux 不是很複雜的嗎? 呵呵,  十年前 Linux 可能是很複雜很難上手, 但是現在各個 Linux Distributions 已經非常之 Down to the Earth 了. 如果有興趣的可以從 Ubuntu, Fedora, 及 CentOS 等 Distributors 下載他們的 Live CD ISO, 然後燒成開機光碟, 再插入電腦內後享受一下非視窗系的另類風格. 但小心不要按了 Install to Hard disk 的選項, 除非你知道自己在幹什麼...

聲明: 文中所提及的商標及產品名稱均屬其版權及商標持有人.

2013年9月1日星期日

自製記帳軟件 - 原因


"我要寫一個記帳軟件!" 
每當有人在大小討論區提出這樣的豪言壯語時, 周遭的網友大都會回問: "為什麼不買一個現成的?" 是啊, 坊間現成的記帳軟件已經發展的非常成熟而且價格相宜, 實在沒理由自己大費周張去寫的. 但是罐頭式的軟件也有它們的局限, 要不然市場上也不會有那麼多獨立的軟件公司提供客制化的記帳軟件.

獨一無二
每一間公司都是獨一無二的, 各有不同需要, 罐頭式記帳軟件雖然可以應付到大部份的工作要求, 但是去到枝末小節時, 它們的局限就會變得刺眼. 我親身體驗過, 記帳後還要用Microsoft Excel去做報表的苦況...

多人作業問題
記帳通常都是團隊分工的: 出單, 入單, 出納, 批核等等不同崗位都需要即時和系統溝通. 但是罐頭式記帳軟件通常都是單機版並以檔案形式儲存資料, 即是只能安裝在一台電腦之上, 那又如何多人共同作業呢. 雖然有些品牌有多推出多人版本, 但是它們通常是透過內聯網以檔案分享形式來達至多人作業. 這就帶出一個危機出來: 如果那個檔案損毀了怎麼辦? 如果是單機使用, 檔案損毀的機率是很低的, 但是在網絡中分享檔案, 其損壞的機率是高很多的. 電力或網絡不穩, 隨機的封包掉失, 客戶端突然斷聯等再加上單機本身已經有可能發生的故障, 這些都令檔案損毀的可能性大增.

版權成本
過去罐頭式記帳軟件都是沒有限制公司數目, 就好像Microsoft Excel一樣, 你喜歡建立多少檔案也可以. 但是幾年前開始, 有軟件公司已經改變這種授權方式, 每一套軟件都只能建立一定數量的公司, 如果多於此數則需要跟他們買額外的授權. 對於一般公司來說, 這並沒有什麼不便, 但是對於有提供簿記服務的會計樓, 這就會增加他們的營運成本.

當然還有很多其他的理由去支持編寫一套屬於自己的記帳軟件, 但我就不一一細數. 光是上述三點已經足夠讓我執意去完成這個"唐吉訶德"式的夢. 或許背後推動自己的是 "I Can! Can You?" 這種虛榮吧.

最寒冷的冬天


這本書是我近年最喜愛的一本

戰爭殘酷
作者在描寫政治場面及戰爭殘酷時, 可說是讓我有如親歷其境的感覺. 而同樣的感覺, 亦令我在讀到李奇微 (Matthew Bunker Ridgway) 將軍發展出來的攪肉機戰術對中國人民志願軍所做成的打擊時有掩卷的衝動.

麥克阿瑟
本書雖然主要說的是韓戰歷史, 但其實也是一本道格拉斯.麥克阿瑟 (Douglas MacArthur) 將軍的後半生的歷史寫照. 書中詳細而生動的描繪了從他父親小阿瑟·麥克阿瑟位 (Arthur MacArthur, Jr.) 的生平, 母親的影響, 日本東京美軍總部的小宮廷, 仁川作戰成功的光輝, 被美國總統杜魯門撤職, 直到回國後逐漸失去英雄光環, 競選總統失敗. 到最後被民眾遺棄, 作者都清楚地描寫了這位豪言"老兵不死"的一代英雄的種種事跡.

兵敗如山倒
書中亦詳細記錄了當時美軍內部的矛盾, 溝通上的缺失導致當美軍初碰上中國軍隊時的潰敗. 雖然對這些麥克阿瑟將軍都應該負上大部份責任, 然而在當時核子武器時代初期美軍確也處於一種"常規武器無用論"的氛圍, 導致當衝突發生時才發覺無兵可用. 這種困境在之後的越戰空中戰場上再一次令到美軍立於危牆之下. 歷史總是再一次重複.

作者在描寫長津湖戰役時, 對美中兩軍均有中肯描述, 當美軍兵敗如山倒時也沒有醜化敵方作戰人員. 相比我國海峽兩岸的歷史學者文人雅士, 作者的胸襟值得大家細細品味.

寫歷史
很多香港人常常說國內寫歷史, 猶其是對外鬥爭的歷史時, 往往認定是我國自誇自擂的宣傳. 然而本書是美國作者所著並由台灣書商翻譯出版, 書中間接說明了我國的確是付出了無數青年人的鮮血來確立國威! 從這一點來看, 你可以不喜歡現在這個政府, 但你不可因此而詆毀那些為了這個國家而付出保貴生命的人.

戰爭為外交的延續, 而戰爭必定是以血織成; 因此外交的終極貨幣, 其實就是人民的鮮血.


ISBN: 9789868790629
作者: 大衛.哈伯斯坦 David Halberstam
譯者: 王祖寧, 劉寅龍
出版: 八旗文化