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客、收購帳戶、門號者和車手,像恐佈份子一樣處處設計偵察「斷點」,讓執法單位難以一網打盡這綿密的犯罪組織。

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

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

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

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

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

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

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

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

2022年4月16日 星期六

尖端神手Ansible 究極自動化組態管理工具

 

大家有沒有用過英英字典查單字?是否曾經陷入一種困境?查單字A出現單字B,單字B的釋義裡又要你去查單字C。我翻閱這本「尖端神手Ansible」的源由類似如此。原本想研究「Jenkins」來達成自動化程式佈署,然而在Jenkins的自動化佈署章節中,卻叫讀者使用Ansible來實作該功能。只好改弦易轍先打好Ansible的基礎,再回頭研究Jenkins。

相信程式人員在開發軟體專案時總免不了要動手將原始碼佈署上線。手動登入程式主機,用工具/指令把程式檔案上傳並放置到指定目錄中,在採用大量網路伺服器進行負載均衡的網路應用環境中,這樣簡單的作業就能耗掉許多寶貴的時間,更別說容易有人為操作錯誤的風險。Ansible便是一帖神丹妙藥,能替工程師弭除這繁瑣又無趣的例行公事。藉由它強大的遠端主機管理機制,可針對數十、數百台或千台主機上執行事先設計好的shell指令碼。不論是安裝程式套件、更新軟體專案或是調整系統參數,都可以經由巧妙設計,自動化到「一鍵執行」。

只要事先裝有Python執行環境並設定好ssh無密碼登入,任何主機都可以變成遠端受管理的目標。既不用事先安裝Agent軟體,也不用購買昂貴的License授權。Ansible不僅是讓軟體工程師有機會實踐自動化佈署,更是網管/系統工程師夢寐以求的神兵利器,透過它的協助,分秒之間就可以對數百台主機進行組態變更,大大提升工作效率,進一步也讓主機管理SOP可重用、可版控。

2022年4月12日 星期二

香港尋味:吃一口蛋撻奶茶菠蘿油,在百年老舖與冰室、茶餐廳,遇見港食文化的過去與現在

 

在歷經反送中等一連串的政治運動後,讓香港的東方之珠的光采漸趨暗淡。然而在70到90年代,不論是社會經濟發展、影視文化影響力和觀光飲食的豐富度,香港都是亞洲四小龍的領頭羊。孕育自開埠時期的苦力、工人階級吃食的需求,而後澆灌英國殖民時期洋人、權貴的西式餐飲,綻放出香港獨一無二、五花八門食肆風情。「香港尋味」書寫各種港式餐飲文化源起,搭配作者輕柔寫意的水彩插圖,素有美食天堂之稱的香江躍然紙上。

「大牌檔」就是街頭流動攤販,原由是60年代港府為了整頓市容,重新發佈攤商規格,為區別原有的「小牌」流動攤販,故取名為「大牌」。最初分為固定熟食和非熟食兩類,後來媒體習慣將「大牌熟食檔」簡稱為「大牌檔」因此得名。就像台灣夜市裡的海鮮熱炒攤販,主要提供粥粉麵飯等主食,進一步細分熟食檔可分為粥檔、粉麵檔、經濟飯菜檔、咖啡檔和甜品檔五種。

圓摺桌和摺凳是大牌檔的標準配件,也是黑道和食客衝突時的「七武器之首」。隨著經濟發展和消費模式變遷,目前僅剩二十多檔的合法大牌營業。熱炒店的菜餚之所以香味撲鼻,是出自於「鑊氣」,那是要以最少200度以上的高溫,讓食材受熱焦化後,所釋放出來的獨特氣味。因此許多大牌檔都選用煤油爐做為爐具,現今因為消防法規已經都改成瓦斯爐,再添一筆消失的古早味。

「冰室」是傳統港式的咖啡店,起源於洋人的下午茶文化,由洋行工作的香港人習慣後帶進香港社群。沒有提供飯麵主食,菜單上僅有三明治、法式吐司等輕食。輕過多年演變逐漸發展出許多獨具特色的香江美食,鹹檸七、鴛鴦奶茶、蛋撻、冰火菠蘿包都是一時之選。

和冰室不一樣,「茶餐廳」是衍生自西餐廳,主要是提供平價的西洋餐點。隨著港式西餐廳日益的平價化,裝潢越來越不像講究,提供的菜式也變得在地化。像是羅宋湯、豬扒餐配咖啡、火腿通心粉和叉燒炒蛋飯等不中不西的美食,只有在港式茶餐廳才吃的到。茶餐廳因為服務多元、品類繁多,已經逐漸取代冰室的地位,茶餐廳的菜單中多半涵蓋冰室常見的佳餚。

「茶樓」或稱是飲茶,是最能代表香港特有的飲食文化。它源自於廣州,隨著先民旅居香港而來。最早依據消費的檔次還分為高價的「茶居」、「茶室」,以為服務大眾的廉價「地檔」和「二厘館」。茶樓除了能品茗賞用茶點外,也是港人相聚交流的社交場所。蘿蔔糕、腸粉、馬來糕以及各式港點,都是飲茶不可或缺的桌上佳餚。推著點心車的阿姨一現身,總會招來四處點單的叫呼聲,但隨著店家改用「隨點隨蒸」模式,這樣熱鬧的場面逐不復見。

在疫情之下,出國旅遊依舊困難,想一嘗道地香江風味的朋友們,倒是可以在台北市中找到毫不遜色的替代方案。像是「萬芳冰室」和「兄弟大飯店-梅花廳」都是值得造訪的港式餐廳。