Category Archives: 書評

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

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。

獨裁者手冊 The Dictator’s Handbook – de Mesquita Bueno

接受西方教育長大的人,從來不會質疑民主政制比獨裁優勝,彷彿選擇獨裁的人腦子有問題。可是最近接觸了一些小紅粉朋友,與他們深入詳談中國政治改革的問題,才發現原來我視之為理所當然的事,並不是放諸四海皆準的真理。用人權自由道德等傳統支持民主的論點角度出發,是不可能說服被中共洗腦的小紅粉,對他們只能動之以利,只能訴之民主如何比獨裁對人民有利益。

這本《獨裁者手冊》書名有點嘩眾取寵,作者是貨真價實的政治學研究學者。這本書拋開民主獨裁二元對立的理念包伏,亦不涉及抽象清高的政治哲學辯論,赤祼地展露政治權力的實際操作,把民主和獨裁放在同一個天秤上去衡量。不論是民主還是獨裁的統治者,他們的目的只有一個,就是繼續當權執政。民主和獨裁的分別,只在於統治者實際上需要多少人支持才坐得穩,如何把利益分給支持者滿足他們,統治集團內的支持者是否容易替換取代。不能滿足核心支持者利益的統治者,不論是濟世為懷的明君還是荒淫無道的暴君,很快就會被下面的執政聯盟取代。

民主的實際支持者數目龐大,一人一票就是整個人民基礎,所以利益分配只能用在公眾民生項目上,讓最多人受惠。古代君主體制的實際支持者數目少很多,所以一般人民的利益基本上可以忽略,但實際支持者由王族和貴族組成,統治者不能隨意替換與整個統治階層為敵,統治集團能分配相對大份的利益。皇位父傳子保障利益分配的預期和延續,權統治集團最理想過渡下一位的統治者的模式。現代獨裁者實際支持者數目更少,而且支持者亦人心惶惶恐怕隨時被取代,分配利益時統治者可更加集中一小撮人,為自已保留最大份的利益。不過失勢的支持者欠乏利益容產生不滿,對統治者反撲的力度更加大,權力過渡往往很暴力和不可預期。

作者在書本的第一章先確立統治者權力和支持者利益的框架,我看完這本書當然覺得這權力理論「阿媽係女人」一字咁淺,但最初接觸時完全顛覆我既有的想法,一時三刻也未必接受到這個新思維。成本書餘下的章節,基本上就是用歷史作例子,使用這個民主和獨裁都合用的權力框架,去解釋歷史軌跡的必然性,用史實去說服讀者。天然資源豐富國家的詛咒,財富不用經由人民生產而是從地下掘出來,統治者可以直接把利益輸送給支持者。民主轉型並不是統治者良心發現,而是被執政集團換馬拉下台前,把實際支持者的數目大幅增加,削減讓原先執政集的講價籌碼。西方國家去控制第三世界國家,獨裁者比民主社會更好控制,利益分配只集中少數人身上,比起全民的利益容易收買得多。

讀完這本書,一理通,百理明,民主與獨裁並不是二擇一的選擇,而是誰有多少權力左右統治者生死,誰就可以分配到多少利益,政治就是這麼簡單的一個道理。

武道狂之詩 – 喬靖夫

很多年沒有看武俠小說,以前細個的時候,我是標準武俠迷,把金庸古龍等武俠經典全部看遍,從來的梁羽生溫端安王易等也看了不少,可是終是覺得珠玉在前,始終沒有金古兩大作家的好看,漸漸便失去興趣。疫情被困在家,心血來潮把喬靖夫的《武道狂之詩》拿來讀。喬靖夫被譽為香港新派武俠小說傳人,是絕無僅有的又打功夫又寫小說的作家。2008年《武道狂之詩》出第一卷時我已經便留意,不過我不喜歡等連載慢慢出書,還是一口氣全套煲完才痛快。等到2018年終於第二十一卷大結局,然後拖到今天才有時間拜讀。

喬靖夫因為有功夫的底子,他文筆下武打場面非常有真實感,一刀一劍一拳一腿全部活現眼前,讀者好像在看慢鏡武打電影一樣(因為讀字比較慢)。初頭看時驚為天人,估不到武俠小說有這樣的寫法。不過去到中段開始,便覺得有點吃不消,一場打鬥可以寫成本書,心急的我嫌小說進度太慢。描寫主角的武打場面還好,至少讀者有興趣追看,可時描寫二打六配角打鬥也同樣詳細,我就覺得太過累贅在拖戲。故事去到尾段主角們人人練成神功,便再沒有這些寫實的打鬥場面,不是主角開無雙打雜魚,就是兩個絕世高手的「借相」對決,非常描象的絕招,誰有主角威能誰贏。小說早期在書中加插附錄「大陣道場講義」,為讀者講解書中的武俠專有名詞,江湖門派的世界設定,半真半假揉合現代人體力學和真實的歷史,在閱讀時增添不少趣味。

故事原本是是江湖事江湖了斷,武當派要天下無敵一統江湖,四出征戰踢館消滅六派三門。以打鬥為主要賣點的武俠小說,用這樣的架空江湖設沒有問題。可是小說去到後半部,換身一變成為歷史小說,主要角色好人壞人分黨歸邊,亂入王陽明平定寧王之亂,連明武宗也出場來趁熱鬧,小說就失去原來的焦點。喬靖夫擅長成打鬥,其他方便就尚久火喉。歷史部份他做了很多資料搜集,將角色融入歷史事件不過不失,但情節未免有點平舖直述。

感情戲是作者的弱項,兩對男女主角的愛情十分夾硬來。虎玲蘭千里召召從日本追著荊裂來中土,不是要殺死他就是要嫁他,見面打了兩場然後感情從此就定格保鮮,毫無起伏直到完場了。原本燕橫和童大小姐這一對有點似郭靖黃蓉,一個正直敦厚一個古靈精怪,兩個人結伴江湖歷險會遇上趣事。去到結局燕橫忽然變渣男,揀十幾年無見的小師妹,拋棄出生入死的紅顏知已,理由還要是非常牽強。燕橫救了宋梨回青城坐享齊人之福也算了,她好歹也是皇帝的女人,在深宮中如果那麼軟弱早就失寵被休了,她不會天直到以為燕橫會等她一世沒有其他女人吧。至於霍瑤花對荊裂一見鐘情,完全搲爆頭不知何解,為舖排後續劇情夾硬來,她後來在旅途中愛上錫曉巖倒說得通。

整體上故事很工整,從主角被滅門踏上報仇之路開始,一路上遇到高人指點練功升級越戰越強,從江湖門派武林盟主之爭,上升國家層面平叛亂保百姓平安,均是很公式的打機套路。不過有些橋段與主線格格不入,給讀者為扭橋而扭橋或賣弄花巧的感覺。神機營的武當殲滅戰,大炮火銃等火器大戰武當劍士,沒錯寫得很熱血浪漫很好看,但打完後完全不知道為什麼要打,感自上就只是作者想寫這場戲便加插入劇情中。在這場大戰之前武當掌門姚蓮舟,身兼故事中大魔王的重任,一出場武當挑戰九大門派要天下無敵讓人覺得他的瘋子,到西安大戰他出場後,又覺得他癲得夠勻循,想要改革一潭死水的武林,反而欣賞他是個人物。武當滅門後這個角色便寫壞了,完全沒有他之要天下無敵的氣勢,大魔王淪落為路人甲。

另一段讓讀者很失望的劇情是童大小姐,原來以為她只是過場角色,主角二人組初期的旅途同伴,只有兩個麻甩佬有點悶氣,加個有錢精靈美少女增添熱鬧氣氛。到西安之戰忽然她升格為女主角,原來她是百年難一見的武學奇材,看過一次就學識姚蓮舟的絕招,崆峒派秘宗門掌門爭雙要收她為徙,姚蓮舟也對她另眼相看十分期待,休戰五年看看她可以去到什麼境界。本來她的定位是個打得的王語嫣,又是破門六劍中的吉祥物,在打波龍術王時,雖然她現炒現賣邊學邊打,但她的劇份很好看。到了寧王之亂篇以后,她卻淪為花瓶,角色定位為燕橫女朋友,武功沒有什麼長進,主要任務是打雜魚,她最強的對手也只是二流的韓山虎。到底是因為愛情荒癈學業,還是作者想像力不夠,讓她的劇情無以為斷。我心目中的最終戰不是荊裂打姚蓮舟,反而最想看童大小姐成為天下第一。明明話她是武學奇材,結果她升不上一流水平,實在太叫人失望了。

雖然沙石不少,但我還是很喜歡《武道狂之詩》,因為實在太久沒有什麼值得看的武俠小說了。與其說這部是傳統意義上的武俠小說,把它當做輕小說來讀會比較小壓力,它的故事真的很適合改篇成漫畫和動畫。

Mastering pandas for Finance

自疫情爆發各國央行狂印銀紙,股市瘋狂大上大落,吸引不少人進場投資投機。買賣股票總不能盲模模亂信網上貼士,要自己做功課研究市場資訊,發掘價格波動的趨勢。Python是最流行的程式語言,因為方便好用又多library,差不多日常寫程式都用它。以前研究股票會用Excel,pandas基本上就是Python的Excel,Excel做到的功能,試算表統計數字畫表等等,pandas全部都可以做到。

看pandas我最初只是上Towards Data Science看tutorial,基本大致明白matrix計算的原理和如何寫程式,然後不知怎樣信手貼來這本Mastering pandas for Finance來看。這本書多code多圖少字,可以當成跟著做的練習,簡單地示範如何用panads製作,所有睇市要用的分析工具。由最簡單的下載價格資訊,畫股票圖計算平均線,到計算期權的各種greek,計算portfolio風險管理,甚至電腦自動操盤也有教。

這是一本入門級的書,有個應用目標去學pandas,比起其他書的虛構例子較沒那麼枯燥。書中關於股票計算知識的簡介,亦是一個很好的溫習。書中的程式例子只是一個起步階,像菜單一樣為讀者介紹有什麼項目可以做。到真正自己寫工具去分析股市場時,基本上完全不到書中的範例,因為有其他更加好用library。本書只有三百多頁,照書中的練習打入電腦執行一次,大約一兩天就做完,就算不懂pandas也很簡單容易上手,不過就需要有Python的基本知識。

有時看網上直播見投資專家用Metastock,幾百美元一個分析股票軟件,左看右看python加pandas有齊所有功能,還更加flexible更加powerful。

Shit Actually – Lindy West

我最近開始在蘋果日報寫影評,雖然臨急抱佛腳讀了本電影系的入門課本,學習多少影評的理論基礎,但還是覺經驗不足得要繼續進修,於是隨便找了本新近出版最暢銷的影評書來看。

未看這本《Shit Actually》前,我完全不知道誰是Lindy West。原來她是非常有名氣的作家,在紐約時報和各大小報章網媒有專欄,以幽默辛辣的文筆見稱。最厲害是她不到四十歲,她的自傳竟然拍成電視劇,講述一個肥妹如何克服困難,成為出名的政治和文化評論人。她初入行當記者第一份工,就是在地區小報寫影評。疫症爆發封關被困在家,無聊重看二十套經典流行電影,於是重操故業寫了這本影評集。

書中評論二十套電影,我竟然看過十八套,我後生時真的看了很多電影。她的影評寫得好笑,用很抵死的角度,去把故事重述一次,無限放大劇中不合情理的地方,順口開作作個理由替劇情解畫,基本上就是英文版的谷阿莫。例如《阿甘正傳》中阿甘等巴士,同阿婆講身世講了三個鐘,阿婆就吐嘈話想去廁所。《Top Gun》中明明Val Kilmer對飛行安全有嚴格要求是好事,為什麼電影把他寫成針對刁難主角Tom Cruise的壞人,空軍應該開除妄顧安全又性騷擾女教官的Maverick才對啊。寫得最好笑的那篇,當然是書名諷刺的《Love Actually》。作者用女性主義的角度,徹底把這套愛情典經解構摧毀,在她筆下戲中所有男性角色都是咸濕佬,只是男性編劇的性幻想,現實中女性才不會那樣。

這本影評書其實冇乜營養價值,看字同看Youtube的感覺差不多,都是輕輕鬆鬆笑完就算。她的風格就算我想我學不來,嬉笑怒罵暗寸明踩不合理的劇情,讀者要看過那套電影才會識笑。我寫的影評主要是介紹新作品給讀者認識,中間加插一兩句插科打渾點綴一下,但不可能成篇學她那樣寫。