Category Archives: 書評

知識看過很容易忘記﹐要寫出來才會留下深刻印象。我希望能夠把知識與讀者分享﹐刺激他們閱讀那些書的興趣。

Database Design for Mere Mortals – Michael J. Hernandez

我學懂寫SQL已經很多年,但我從來沒有正式地學習如何設計一個database,大多數只是隨便地上網找些SQL例子現炒現賣。這本課本是database設計的天書,已經有二十五年歷史出版至第四版。整本書內沒有教一句SQL語法,若果連SQL還未懂的話,恐怕這本書太過艱深了。

有三分一本書的篇幅,談論應該如何訪問database的用家,在開始設計database之前,先找出database需要儲存的資料和要做什麼類型的query。現在看完書後回顧重溫,覺得這部份有點是想當然爾的常識,但我初次閱讀那些章節時,很有增廣見聞的新鮮感。我工作上寫了程式幾十年,那些系統需求的規格,自問見過不少亦做過不少,但我始終是邊做邊學紅褲子出身,第一次接觸如此有系統寫系統需求的方法。

Relational database是什麼,說到底就是一個個table,寫著一行行的資料,每筆資料有很多field載著data,而每個table之間用key去互相連系。在看這本書前,我連什麼是normal form也不知道,不過看完書,其實我還是一知半解,因為normal form實在太深了。作者教用另一個設計方法,一步步把資料的fields組合為不同的tables。由細到大一層層建築上去,比起從一個大table開始,然後用normal form去分拆成不同的tables,雖然工序更多步驟更費神,但初學者比較容易明白。

Database設計最重要是資料的可靠性,「唯一」就是設計的關鍵,每一項資料只存在一個地方,每一個地方只儲存一項資料。可以計算出來的資料,就不要浪費地方去存放,有需要加速就建立view來暫存。聽起來好像很容易,實際設計database時,要很有耐心去逐項逐項校對,才不會不小心產生設計上的缺陷。

Making Comics – Scott McCloud

一般讀者對漫畫家Scott McCloud沒有什麼印像,但在歐美漫畫界他可是一代宗師,他用漫畫繪出來關於漫畫的課本,是任何漫畫家必修的入門課。很久以前看過他的《Understanding Comics》,那是他的漫畫理論三部曲的第一部。他全套三部曲我買了很久,終於的起心肝看了第二和第三部。第二部《Reinventing Comics》太過前衛,我看完水過鴨背,完全不記得內容。第三部《Making Comics》回歸原點,多些實質的內容,比較容易寫書評推介給讀者。

第一部解構了漫畫作為一種藝術媒介,如何把作者的想法表呈現給讀者欣賞,這本書則很扎實地教受畫漫畫的技巧和細述漫畫業界的種種知識。畫漫畫主要分為五個大技巧,並細分角種技巧中的不同風格類型,是一本很好的漫畫百科全書。第一個技巧是分鏡,決定什麼畫出來,什麼不畫出來,每一幅畫之間如何連貫起來。第二個技巧是構圖,用什麼角度去把畫面繪畫出來。第三個技巧是畫風,這個的重要性不用多作解釋吧。第四個技巧是文字的選擇,漫畫中也有對白有旁白。第五個技巧是流程,在紙本上如何排列每幅圖,不同的畫框流向又會帶出什麼效果。作者亦講解人物設計,面部表情,身體動作,世界構成,繪圖視角等等,我單純文字寫出來也沒有用,看書中漫畫圖例示就一目了然。

講解漫畫家的工具那一章很有趣,不過我又不是算畫漫畫,當冷知識看完就算。有一章講漫畫風格和漫畫類型,亦特別有一章講日本漫畫,分析美日漫畫之別,算是比較學術的一章。這本漫畫始終是漫畫課本,內容非常多字,漫畫只可以算是課本的插圖,雖然每一頁都是插圖。

身為一個資深漫畫迷,不能不看這本漫畫課本,令你更懂欣賞漫畫這個藝術媒體。

The Psychology of Money – Morgan Housel

讀完這本《金錢心理學》,可以說我完沒有學到新的東西,因為這本書的內容,理應是每個人都懂得阿媽係女人的大道理。不過我還是要誠實地面對自己,那些理財之道的常識真理,有多少我早已拋諸腦後忘記了,又試過多少次風險太大,最後貪字得個貧。這本書應該久不久就拿出來重溫一下,提醒自已不要貪心要慎重理財。

若果只看這本書的撮要節錄,你大慨會認為這本書的內容只是老生常談。作者寫這書的功力,就是用真實的事例如Madoff和Buffet等,配上他們不廣為人知的小故事,用故事把那些大道理再說一次給讀者聽。若果你有一定的人生閱歷,你不可能沒有聽過那些大道理,但就好像在看電視上重播的經典處境喜劇,那是一份熟悉安心的感覺,明知只是新瓶舊酒,開始看就會繼續看下去。

每個人對金錢的觀念也不同,很多時候是受成長背景的影響,你沒有別人的經歷,你很難理解他們為何作出那樣的理財決定。一個人能否大富大貴,運氣很重要的決定性因素,在對的時間站在對的地方。標基能夠創立微軟成為首富,全靠他的中學是絕少數當年擁有電腦讀的學校,不過回說話來,那間中學也只是出了一個標基。

世界上最困難的理財技術,就是控制自已的貪念,不要冒不值得的風險,明明擁有生活無憂的財富,還是為想不斷增加戶口的數目字,最後什麼也輸掉。很多人常常想著賺大錢,但是變有錢的方法是要有耐性。畢菲特是老掉牙的示範單位,他現在有超過一百億身家,但那他五十歲時連半億身家還沒有,他99%的財富是下半世才賺的。還有一個發人深省的小故事,原來Berkshire Hathaway最初是有三個股東,現在人人只知道有Buffet和Munger,第三個人在七十年代股災時,因桿杠太大被孖展清倉。

賺錢難,賺到錢後守著不蝕錢更加難,有多少投資經驗的人,風險管理比起估中那隻股票會升會跌更加重要。不要想著每次投資的決定也一定賺,只有少部份隻帶來過超高回報,足以彌補其他生敗的投資。

金錢能夠買最貴重的東西是你的自由,你花錢購買名牌去炫燿財富,不要以為別人會很羨慕你,別人看著你只是想著如果自己也有錢就好了,他們才不關心你有多少錢。買名貴的東西去炫燿不代表你富有,富有是銀行還有多少可以動用的資金,而不是那些已經花掉買了的東西。儲蓄的重要性,不用多說了吧,有備用資金,才讓你有考慮的條件。理財的原則,大致上合理比純理性更加重要,因為人不能純理性地思考。

歷史不會重覆,只看已發生的事件,不能夠預測未來。凡事要留一手準備,不要盡搏最高風險最高回報。投資要作長遠打算,但不要把自己綁死在之前的決定上,因為人是會變的。任何事物也有其價格,世上沒有免費的午餐,只是你之後才知道代價是什麼。投資買股票不要炒出炒入,長揸才是最高回報。(按:請參看本書第一點,作者忘記了長揸必升只是美股的獨有現像,不信你試下長揸英股日股港股中慨股。)

不要盡信別人的投資意見,因為別人不一定和你在玩相同的遊戲,每個人的投資時限和目標也不同。人家買來炒賣賺快錢,你卻傻傻的買來長揸。財經新聞總是報導恐慌消息,因為好消息沉悶不能吸引眼球嘛。說故事比統計數字更能說服別人,若果人找到到真相,就會作故事來解釋自已相信的那個版本就是真相。

作者在書本的最後一章講述自已的投資策略,就是很簡單月供指數基金。對近幾十年股市有研究的人,一聽就知道這又是一無懈可擊的大道理。很有趣是我上網聽了作者的訪問,他卻明言月供指數基金雖然一直以來行之有效,但不可能永遠一定有效。

所謂「我不投資」,就是 all in 在法定貨幣 – 高重建

誰是香港加密幣第一人,是當街大灑銀紙搭雞棚的幣少,還是打算把香港打造成國際虛擬資產中心的財爺陳茂波?高重建的名字幣圈以外或許沒有人識,但說他是香港加密幣之父,絕對當之無愧。他一手創立的LikeCoin,是中文去中心化區塊鍵的基石,他更致力推動區塊鍵教育,在不同平台發表交章,更免費開班授徙,希望人人都使用加密貨幣。

這本《所謂「我不投資」,就是 all in 在法定貨幣》,亦是開創中文出版界的先河,是第一本中文「NFT書」。這篇是書評,我還是集中談論書本的內容,至於何謂「NFT書」,有興趣知道的讀者,可以去高重建的網站有詳細解釋。

這本書是高重建過去幾年發表文章的結集,幣圈發展的速度一日千里,有些比較早期的文章,寫在疫情初期聯儲局狂印銀紙時,現今幣圈泡沬爆破BTC價位暴跌,加密幣交易中心接二連三執笠,高通脹銀紙貶值的時候重新再看,未免有點兒諷刺。此書只有二百多頁,多圖兼字體大,個多小時便可以看完。若果你有玩開加密幣,相信你早已熟識書中的內容。我不知道「我不投資」這個命題是否在打稻草人,至少在我認識的所有人當中,沒有一個是全副身家現金放在銀行,不論是買股票,買樓收租,買債券買基金等等,總之或多或少也有投資。不過以今年來計算,放銀行做定期,大幅跑贏任何投資。

從來沒有接觸過加密幣的朋友,這是一本十分淺白的入門書藉。看完這本書,你不會懂得如何炒幣致富,但對於加密幣的理念和理財哲學,會有開了竅般的領悟。我不知道高重建是否所謂的Bitcoin maximalist,不過書中太過一廂情願對加密幣憧景,完全沒有提及投資加密幣的種種陷阱,不免欠缺客觀持平。BTC與ETH兩大加密幣相信不會清零,但其他絕大部份加密幣,只是一個龐氐騙局大雞棚,本質就是新錢養舊錢的接火棒遊戲。經濟學課本有教供求定律,各種不同的加密幣供應無限,理論上所有糞幣價值是零。

高重建的投資哲學有一個盲點,雖然他走出了法定貨幣本位的思想框框,但他走不出金融體系本位的框框。加密幣只是眾多不同資產之一,有其優點亦有其缺點。正如投資機構不會只買股票不買債券一樣,加密幣只是整個投資組合中的一部份,不應把它的重要性無限放大。加密幣始終只是一種新興貨幣,金錢最終的用途是要換取貨品或服務。加密幣並不是最可靠的貨幣,在世界末日的情況下,你擁有加密幣也沒有用處,只有黃金,糧食和子彈才是最終真正的「貨幣」。在世界末日還未來到時,投資股票基金樓房外匯的長線回報,不見得比投資大上大落加密幣差很多。指著BTC過去十年的回報說投資加密幣有賺冇蝕是survivor bias,看看2018年那堆ICO有多少消失的無影無蹤,2020年新湧現那一大堆token和NFT,看看十年後又有多少仍然健在。

這本NFT書在NFT熱潮冷却才上市,又不是放在ETH上行ERC—721的NFT,大家不要以為會升值就走去買。LikeCoin能否存活,甚至Cosmos能否存活,都是未知之素。我之所以買這本NFT書,純萃就是支持高重建,支持中文加密幣生態。

若你也有興趣購買,在此可以購買NFT書,經此推廣連結購買我有三成佣分。若你經我的連結買書的話,煩麻message通知我,在我收到佣金後,會把等值LikeCoin回饋給你。

翻版下載:epub pdf

Seven Databases in Seven Weeks 2nd Edition – Luc Perkins

很多年來我一直只懂SQL,沒有學習其他database,早十年NoSQL還是剛冒起,我還有點看輕它,覺得它冇用。俗語有云,當你手拿著鎚子,所有的問題都變成釘子。只懂SQL,很自然習慣把所有問題都用Relational Database去解決,儘管要花更加多的氣力,有時殺雞亦要用牛刀,因為只得一把刀。

這本書2018年出版,已經是第二版,很多年前第一版時已經想看。只不過是短短三年,書中有些code已經過時了,新版本database的syntax有點不一樣,不過基礎理論沒有改變,仍然合用。NoSQL有太多選擇,想學習也老鼠拉龜無從入手。這本書介紹最熱門的七個database,從傳統SQL的Postgres為起點開始,然後逐一講解其他NoSQL DB的優劣trade-off,什麼情況適合應用。比起每次只教一種database的書,讓讀者有宏觀的視野。

因為一本書要教七個DB的關係,這本書的內容非常壓縮,簡單的基本操作甚至略過不談,直接叫讀者去看官方document。每個DB的教程分為三部份,讓讀者可以連續七個星期,每個週用三日學完。我一口氣一次過看完,一章大約要用四個小時,不過我只是跟著example打code玩下個DB,沒有個每日的功課,若果做埋功課,大約要兩倍時間。

第一章Postgres是溫習SQL,我以前用開MySQL同SQLite,也算是學新野。第二章教HBase是columnar database,沒有隨意search的功能,要靠index去讀data,但是非常scalable,是Google Cloud Bigtable的開源版。第三章教MongoDB是document DB,search JSON的功能很強大,不用寫schema很方便。第五章教couchdb,與MongoDB一樣都是寫JSON object,但couchdb的read要事先建立views,另外監視change的功能也很好用。

第六章教是我最有興趣的Neo4J,但書中教了graph DB的很皮毛,連Cypher語法如何閱讀也沒有教,我要上網再找資料自學。Graph DB同SQL很大分別,完全是另一個類型的應用,學了大開眼界。第七章教AWS DynamoDB,個database本身很平平無奇,強大是AWS後台的支援,連著AWS其他功具一起教,學習寫data pipeline,提升用DB的另一個層次,真正的big data。最後一章教redis,簡單易用夠方便,我認為redis應該早些教,in memory key-value store都啱做一些quick and dirty job。

這是一本不適合新手的入門書,教的東西很廣闊但很膚淺,主要是給讀者一個perspective,之後讀者就要靠自己去看document了。若果要看完一本書就能立即上手揼project,拖著一步步教導如何建站,這本書並不適合你。反而這本書更像是sampler,淺嚐每種DB的味道,並例一起觀察它們的異同,然後覺得那個DB有用,就再上網去找資訊深造。讀這本書有一個好處,讀完後基礎理論打了底,讀official document快很多,可以直接跳過不用看其他書,反正去到最後都係要翻查參考official document。