2022年6月14日 星期二

蒼蠅王

 

「蒼蠅王」被列為20世紀百大英語小說,內容啟發了眾多日本作品,包括「漂流教室」、「大逃殺」等。故事環繞一群因意外迫降到無人島的小孩,在遠離文明社會的大自然中,為生存和獲救做出種種努力。隨著時日漸長,人際間的衝突愈加劇烈,社群越來越失序、失控,最終造成無法抹滅的悲劇。

作者「威廉‧高汀」是歷經二戰的小說家,「蒼蠅王」一書中赤裸呈現他堅信「人性本惡」的觀點。刻意挑選潔白如紙的學齡前孩童為主角,描寫出尚未十足社會化的人性,是多麼容易受到嫉妒、恐懼等情緒驅使,去採取暴力與非理性行為。讓我聯想到網路平台裡匿名網友間的霸凌、攻訐,有如公權力無法介入的網路孤島「蒼蠅王」。

一但人類社群尚失國家力量來維持基本法制秩序,持強欺弱、豪取強奪將橫行於世,文明與理性有如水晶杯般罕見與脆弱,它僅能活在由尊重法律、規範的人類社群打造的溫室中,當白紙黑字的條約被束之高閣,理性和文明也將隨之而去。

或許是在戰場上目擊的種種讓高汀對人性失望,因此劍走偏鋒,但他的觀點確實一針見血。「一念天堂、一念地獄」,善惡兩端皆是人性。無論是烏克蘭戰場上的屠殺與虐囚,還是近日新聞報導的中國河北唐山暴力事件,人與人之間失序失控的傷害從不曾停止,暴力和非理性源自你我的天性。透過教育淺移默化提高國民的德性,同時建立公平公正令人信服的法制環境,或許能適當地「減災」,型塑出安和樂利的社會。

2022年5月29日 星期日

Spring Start Here: Learn what you need and learn it well

「Spring Start Here」初章用一個相當貼切的比喻來描述軟體框架(Framework),想像手上拿到一本應有盡有的IKEA DIY組裝手冊,它告訴你各種家具的組裝方法和所需零件。當你想要添購辨公椅時,就得自行翻閱找到該項目再依指示組裝完成。框架等同於那本手冊,提供各式各樣的軟體功能和機制。在實務上我們只會從中挑選專案需要的項目,照著框架的規格來設定和撰寫程式。

即便Spring不像EJB是官方發展的軟體框架,但在Java程式語言的生態系中,它是掌握半邊江山的一方之霸。不論是最常見的MVC、輕巧易用的REST,還是批次、佇列、認證與授權以及資料庫操作,軟體專案開發上的各種功能,幾乎都能在Spring框架中找到對應解法。而這本「Spring Start Here」從基礎向讀者介紹Spring最具特色的IOC(Inversion of Control)和DI(Dependency Injection),利用它們,可減少程式碼中產生物件實例(Instance)的語句。AOP(Aspect Oriented Programming)則是更積極地用來封裝反覆出現的程式功能。真的不誇張,同樣採用Java開發專案,運用Spring框架和用傳統方法撰寫,程式碼間的差異有如拉麵和鳥龍麵。 

在基礎觀念後,是用具體的範例引領讀者用練習來熟悉Spring的使用方法。內容涵蓋網頁程式MVC、REST網路服務、資料庫操作Spring Data等常見的系統功能。同時介紹Spring Boot這個新式的Spring開發方法,帶有「宣告功能替代宣告函式庫」和「約定優先於設定」的新觀念,去除舊式開發Spring時的痛腳(例如:得自行引用眾多類別庫、基礎設定值太多)。採用Spring Boot實作Web應用,有另一個亮點,程式本身能用嵌入模式啟動Container直接提供服務。以獨立的處理程序(Processs)運作,減輕另外安裝與維護Apache Tomcat等Container的負擔,也更貼近Docker容器和雲端平台的運行風格。

和其它軟體框架常有的優劣如出一轍,Spring利用預定義的設定和潛藏的程式碼,加快工程師開發專案的速度。卻也塑造出無形的技術門檻,出現「想參與專案開發的Java工程師必須熟習此框架」的潛規則。隨著Spring的影響力日益擴增,這種外在的推力將越趨強烈,鞭策從業人員不得不自我提升。而在學習Spring的旅途上,「Spring Start Here」值得成為你我的首選。
 

2022年5月13日 星期五

Jenkins 2.x實踐指南

 

在開源軟體的解決方案中講到「持續整合/持續佈署(CI/CD)」,十之八九會提到Jenkins這項工具。即便我已經利用Ansible把程式佈署的流程自動化,但是相較於Jenkins,Ansible還是缺少網頁管理介面、帳號與權限管理、操作記綠檔等功能。因此進一步導入Jenkins來整合Ansible的自動化腳本,就是完善我自動化佈署的終極方案。

Jenkins早在2011年就問世,網路上的參考資料多不勝數。熟練地運用適當的關鍵字,谷哥大神確實能告訴你一些答案。不過我個人以為,想要有系統、依循脈絡地學習一項新知,一本好書絕對是性價比最高的投資。而「Jenkins 2.x實踐指南」是值得我掛保證,它能讓讀者從零開始學會Jenkins 2,進而運用自如。尤其全書中著眼在介紹2.x版本的「pipeline as code」,Jenkins中的流程用程式碼的形式來撰寫和分享,受惠於此理念,流程將可以被版本庫儲存與管理!完全克服了1.x版本時最為人詬病的流程設定「黑箱化」問題。

就Java語言而言,軟體開發過程是一連串的「手工」操作。寫好程式碼後,先將原始碼編譯成位元組檔,再打包為可執行檔,然後上傳到主機的特定目錄,以終端機指令啟動該程式。著重軟體品質的專案,則會在編譯後加上測試作業。如果是網頁專案,還得多一項重啟網頁伺服器的作業。當然Java技術棧早就發明Ant、Maven和Gradle等自動化建置(Build)工具,來處理這些惱人的例行工作。說穿了Jenkins工具,只是把你手上既有的版本庫(如Gitlab)、測試腳本(如JUnit)、建置工具(如Maven)或佈署腳本(如sh)用pipeline程式碼整合起來。所以對尚未使用軟體版控、尚未對建置/佈署步驟自動化的開發團隊來說,Jenkins絕對不是仙女的魔法棒,可以讓你輕鬆略過應有的基本功。

對於「一條龍」(從頭到尾都一人負責)的開發團隊來說,並沒有急迫得導入CI/CD工具的誘因。非多人同步開發的專案,只要程式有單元/功能測試,根本用不上持續整合(CI)。程式編譯到佈署的「手工藝」,只要夠細心謹慎,用不用持續佈署(CD)差異也不會太大。不過從中長期來看,所有軟體專案都應該完成CI/CD的設定。達成CI,可以讓小型專案在擴展成大型專案的過程中,維持軟體品質和降低溝通成本。而做到CD,則得利於佈署作業標準化,可輕易地讓專案系統平行擴充。

2022年5月2日 星期一

鯨吞億萬:一個大馬年輕人,行騙華爾街與好萊塢的真實故事

閩南話有句俗語「翁偏A卡緊」,意指做事想要「彎道超車」最簡單的方法就是用騙的。比起針對市井小民作姦犯科的詐騙集團,「鯨吞億萬」書中所描述的金融犯罪,在犯罪所得金額、牽連人士階層以及佈局複雜縝密等各方面來看,根本是蠅量級vs超重量級。書中男主角(?)「劉特佐」捅出的金融騙局,既使翻拍成好萊塢電影也綽綽有餘,出版社拿「華爾街之狼」來比喻還算是略為保守。劉特佐操盤的「一馬公司」醜聞,直指前馬來西亞首相「納吉」執政時期的貪汙弄權,後續也成為馬來西亞政黨輪替的推力。

「鯨吞億萬」向讀者展示了一幅以華爾街為首的跨國銀行、國家主權基金以及好萊塢名流等元素構圖,塗上貪婪、濫權、紙醉金迷等色彩的敗德浮世繪,代價是馬來西亞全民未來數年的血汗錢,因為被掏空的對象是「國家」,主謀者則是一個40歲不到的大馬華人。劉特佐深知現今資本市場的運作和弊病,結交權貴進而利用他人的名聲招搖撞騙,遂行他想要成為Somebody的願望。

讀者可在書中看到許多過去不曾察覺的「資本世界遊戲規則」。例如:人謀不臧國家級的主權基金,讓主政者和基金管理人從中上下其手取得暴利,也是政客用來收買籠絡地方派系的資金。華爾街的大型投資銀行,在主導客戶IPO(首度公開發行)時,將會獲得高額的服務費。如果看好即將上市的股票/基金,也會一口氣承攬下來,等價格抬高後再出貨給市場大賺一筆。心術不正的銀行管理高層,甚至會收受回扣幫客戶高估資產價值、替虛假的交易背書、設立許多空殼公司帳戶。瑞士的私人銀行表面上替富翁進行財富管理,實際都是做一些「類洗錢」交易,像是在避稅天堂開立境外公司,購買各種公司債與基金來編織層層的假交易移轉資金。歐美各國的高價房地產、蘇富比拍賣的天價藝術品、鑽石珠寶和國際賭場中的巨額賭資,都是不義之財的常見去處。

有人說過「金錢像是照妖鏡,它會呈現出你內心真正的慾望」,也有人說「金錢像是台音響放大機,它會讓善者越善,惡者越惡」。劉特佐曾經獲有數十億美金的資產可以運用自如(即便它是騙來的),他卻只用來結交影視名流,在夜店一擲千金地擁美女喝名酒,不斷地辨派對,買私人飛機買遊艇,在賭裡裡豪賭。說穿了就是單純滿足感觀層級的慾望以及想成為眾人焦點的成名欲。共犯集團中的馬來西亞前首相夫人,則是不斷地用劉特佐提供的資金購買華服和珠寶。金錢確實照出這些人自身的格局,相比伊隆馬斯克種種「有錢人的任性」,高下立判。

2022年5月1日 星期日

最貧困女子:不敢開口求救的無緣地獄

 

五、六年級生都應該看過安達佑實主演的日劇「無家可歸的少女」。自該劇播映後,游走在賣淫和伴遊之間的灰色「援助交際」,正式成為眾人熟知的社會議題。對台灣人而言,風光明媚、物產文化資產豐富的日本,一直是出國旅遊、遊學旅居的首選。在光鮮亮麗的外表下,日本特有的社會問題也相當多,雖然類似的議題也會發生在他國,不過日本人行事時過份重視群體意識/察顏觀色,會讓既存問題始終無法被消弭。

在今日競爭激烈的工商社會,造成貧困的原因十分複雜。先天家庭教養與後天個人努力、機運,甚至於出生地(鄉下/沒落都市),都可能導致個人只能從事低收入職務,而在萬物皆漲時代拮据地過日子。即便如此,如果人際關係良好、擁有能互助、伸出援手的親朋好友,也能過著安貧樂道的「貧充生活」,不至於落到社會安全線之下的最底層。

這本「最貧困女子」介紹的是比貧困女子處境更為悲慘的一群人。她們處於「三種無緣」,第一「家庭無緣」,無法獲得家人和親戚的協助,直系父母甚至可能是家暴加害者。第二「地緣無緣」,沒有建立良好的人際關係,缺少能夠商量和幫助的朋友。第三「制度無緣」,由於早期與政府單位/機構打交道留下壞印象,不相信也不去使用社會福利/保障的資源。作者發現這群人會淪落到三種無緣的關鍵因素是「三種障礙」,她們多半有不一而足的「精神障礙」、「發展障礙」與「智能障礙」。換言之這些女子本來應該是最需要受到國家社會保護的身心障礙者,卻因為種種緣故讓她們步入用最廉價的性交易養活自己,過著有今天沒有明天的日子。


日本的「報導文學」一直以來在台灣出版物佔有一席之地,這些讀物在議題切入、調查縱深與立論梳理等各方面,都是一時之選。不斷為日本挖掘出各種值得關注、處理的社會問題,像是「援助交際」、「單身寄生(繭居族)」、「下流老人」皆是。台日之間在風俗民情和政經體制上有著部份同質性,因此這些相關的著作都值得我們瞭解與反思。

2022年4月23日 星期六

說真的,你很好騙:27個詐欺暗黑真相大揭露

 

據聞位於太平洋一隅的蕞爾小島除了晶圓代工獨占鰲頭外,詐欺犯罪產業(?)的進步也傲視全球,甚至開始技術輸出海外,實為另一種台灣之光(誤)。這當然是道聽塗說的玩笑話,但端看台灣社會中詐騙行為的無孔不入,讓民眾不禁懷疑執法機關對此類犯罪會不會太縱容?

首先刑法的詐欺罪的定義是以「詐術」誘使被害人交付「財物或利益之物」,少了上述兩個要點的犯罪,就不算是詐欺行為。舉例來說:男女交往時主動贈與的財物,即使之後發現對方腳踏兩條船,主張被欺騙感情想追回損失,法律上是站不住腳的。(此漏洞,也造成了許多專攻(?)此道的職業騙子)。

今日最普遍的電話、網路詐騙,操作的核心口訣就是「快、狠、準」。快到你無法思考、狠到你無力思考、準到你不用思考,不論是假裝綁票、假裝銀行設定失誤、假裝司法/執法機關,都是想要你在倉促的情況下做出錯誤的決定,造成財物損失。因此防範的心法相當簡單,就是「慢、慢、來」。第一步「且慢」先以更確切的方法連絡相關的人/機關(記得不能急而想直接回電,得另外查詢可靠的電話號碼,要「慢」)。第二步是「再慢」,第一時間連絡不到對方,先播反詐騙專線,讓自個定下心來。第三步才是根據判斷採取動作,基本上百分之九九點九九,不會走到這步,因為多半你遇到的就是詐騙。

書中也介紹了另一個萬年不變的詐騙老哽,金光黨的「假金條換現金」。這種手法充分利用受害人的「貪」,與時俱進地變化出許多腳本。不論是刮刮樂中大獎要先繳稅金、廣西南寧的土地開發、向銀行超貸的假合約套現金,都是想讓受害者進入「財令智失」的癡迷狀態,再吃人不吐骨頭地把你掏空。Part 2的內容還粗淺地介紹了詐騙集團的配置與分工,首腦、Call客、收購帳戶、門號者和車手,像恐佈份子一樣處處設計偵察「斷點」,讓執法單位難以一網打盡這綿密的犯罪組織。

在台灣「不檢討加害者,只檢討受害者」的病態法治環境中,想免於遭受詐騙之害最簡易的防禦工具,就是增加自身對詐騙手法的瞭解。「說真的,你很好騙」就像是一劑疫苗,讓讀者對各種詐騙操作產生免疫力。如同對抗新冠病毒追求群體免疫一樣,當全民都能機警地發現、避免自己上當被騙,詐騙集團自然無利可圖而煙消雲散,這比追求緩不濟急的修訂法條、司法改革,更為務實,不是嗎?

革命這回事:太平天國不太平

去中國化的教育方針,個人覺得對台灣學子是弊大於利,擁有近四千年的中國文史典故,是先人累積聚集的文明結晶。「以史為鑒,可以知興替」,兩岸文人擅長「說史」的才子不少,這本「革命這回事」的作者「史式」也是令人耳目一新的箇中翹楚。

對岸共產黨自命以無產階級(勞動階級)革命起家,講到「農民起義」都是戴著玫瑰色的眼鏡大加推崇。目不識丁的農民敢以血肉之驅向統治階級兵戎相見,確實展現了以小搏大的大無畏精神,這本「革命這回事」整理了中國歷史上較知名的農民革命,為讀者從不同角度切入這個罕見的主題。史式從第一章就破題點出,君主專制是給予農民革命種子養份的最佳土壤。唯有出現「何不食肉麋」的荒唐帝王,才會逼得老實過生活的平民百姓為了生存起身反抗。然而在民智未開、基本人權未成共識的情況下,推翻暴政的結果只是促成另一位帝王興起。暴政、革命、又暴政、再革命,像圓舞曲般的爭戰輪迴拖累了中國政治制度進步的腳步。

秦末的陳勝是農民起義的頭牌,史記的司馬遷為了彰顯陳勝不凡的創舉,特別寫了「陳涉世家」列在「孔子世家」後一篇。不過陳勝雖然開了反抗暴政的第一槍,卻只是迫於形勢不得不反,既不是為了天下蒼生,也沒崇高遠大的理想。初期起義小有所成後,他便迅速腐化而不顧舊情,落得眾叛情離而以失敗收場。陳勝不只替後人展現了平民革命起因的劇本,還連帶把平民革命收場的結局一併展演給後人「致敬」。多數出於草莽的農民起義就如同陳勝一般,受限於領導者的眼界與格局,如同流星一般一閃而過,終究以失敗作收。

道家和道教其實是兩回事,道家是一種學說,老子是位學者。而道教是源於修煉神仙之術的方士們,在參考佛教的傳教方法後,而創立的一種新的宗教。此後方士改稱道士,道士們又強拉老子當做道教的教主,「太平道」、「天師道」和「五斗米道」都是道教的別稱。中國歷代的革命多少會和宗教扯上關係,其中最著名的應該是東漢末年的「黃巾起義」。在原始社會人人都對天上抱有敬畏之心,想要推翻道行逆施的統治者,最佳的說法就是「替天行道」,藉由宗教之言把負責推給上天,確實是個合理有實用的手法。另外舊時農業社會人們的流動是不自由的,統治者為了執政的穩定,多設有戶籍制限制居住地。人們只有藉由傳教和治病的理由,才能自由地在各地活動,也因此革命初期,地下活動參與者會化身為宗教團體,方便在各地遊走串聯群眾、互通有無。

「水滸傳」一書由於內容描寫平民百姓揭竿起義,在中國明清時期被列為禁書。此書成之明代以後,而明末到清朝確實有民間團體和地下組織參考梁山泊的組織結構。一位最高領導,加上足智多謀的軍師,還有為數眾多的各堂頭領,至今在各種幫會和黑道團體中依舊可見這樣的「黃金比例」。史式在書中旁徵博引替讀者斷言,水滸傳內容絕非史事,一切都是杜撰編造而成。梁山泊的組織也不像口號所說的「一般兒哥弟稱呼」那樣的兄弟平起平坐,而是傳統的家父長制集權體制,凡事都由宋江說了算。另外宋江的主張是反貪官而非反帝制,故事中他時刻不忘爭取皇帝招安再為國建功立業,因此說「水滸傳」是本鼓吹革命的小說實在有點過譽。

史式是清末太平天國史事的專家,本書在後半章節重點就放在太平天國這個短命政權。太平天國在中國歷史上是非常獨特的革命團體,其一,它「利用」基督教的教義做為宣傳工具,用來洗腦底下的軍民百姓,讓人嘆為觀止。其二,有別於其它平民革命將宗教「工具化」,一但革命有成後就把宗教色彩弱化,以傳統執政方法統治軍民。太平天國在建都稱帝後,不改其迷信本質,變本加利地以起乩降身(天父、天兄附身傳言),來進行政權與派系鬥爭。想當然耳有如兒戲的統治手法,最終臨來悲慘的敗亡。不過由於太平天國是由漢民族打敗滿清政權的少數成功案例(即便很短命),因此在清末民初的革命事業中,各方義士都極力美化太平天國的史事與讚揚他們的成就,希望眾人能仿效其成功模式推翻大清朝政府,史式對此種作法下了「古為今用」的最佳結論。