分類彙整: 書籍

讀書》A Tour of C++ 中文版

《A Tour of C++, 2/e》繁體中文版與簡體中文版

最近把《A Tour of C++, 2/e》中文版重讀了一次,上次讀的時候因為台灣譯本裡的一些翻譯名詞看不太懂(有些名詞既不是台灣傳統上的譯法,也不是中國那邊的譯法),所以最後也沒讀完就丟在一旁了。

最近開始想認真學習一下 Modern C++(因為想用 JUCE 寫跨平台程式 🙂),所以把《A Tour of C++, 2/e》繁體中文版又拿出來讀,並且另外買了簡體中文版,當繁體版看不懂時就翻簡體版來對照著看 XD

《A Tour of C++, 2/e》內容涵蓋了部分 C++20 特性,而且很薄(才兩百多頁),很適合拿來快速理解 Modern C++…(大誤)。嗯,對有 C++98 經驗的人來說,這本應該是不錯的現代 C++ 入門書,對沒什麼程式經驗的人來說,這本書恐怕不易消化 😅(其實我覺得 Bjarne Stroustrup 的書對新手來說都不算友善 XD,個人感想,勿戰)。

談 C++ 語言的書通常都很厚,光是看到那比磚頭還厚的厚度,就沒什麼動力讀下去,這本《A Tour of C++, 2/e》夠薄,拿來入門剛剛好。不過,我認為最好的 C++ 入門書還是《Essential C++》,薄薄一本只有兩百多頁,講述了 C++ 最基本最核心的部分,只可惜《Essential C++》是 1999 年出版的,內容對現在而言已經過時了…

說到《Essential C++》,讓我想到了 Stanley B. Lippman 在《Essential C++》前言裡提到他在迪士尼電影動畫公司工作時,有次被要求用 Perl 重寫一個工具程式,但他不懂 Perl,所以他想找一本 Perl 書籍來抱佛腳,而且那本書不能太厚,因為當時的情況需要快點讓那個 Perl 程式動起來,最後他找了《Learning Perl》(台灣譯本名為:《Perl 學習手冊》)來讀。這次的經驗讓他明白對於想立刻學會並使用 C++ 的人來說,《C++ Primer》過於龐大複雜了,因此他寫了《Essential C++》這本小書。

說到《Learning Perl》,又讓我想起我的第一份正職程式設計工作時的一件事 😅,當時我剛進去工作不到兩個禮拜,第一個任務是要把一本英文字典做成 iOS app,當時的老闆已經有寫好一支程式把字典的純文字檔轉換成他想要的特定格式,他讓我接手修改那支程式,那支程式是用 Objective-C 寫的,我當時研究了程式的內容與特定格式的結構後,發現那支程式的效果不好,因為還需要半人工的方式去修改文字檔,而且無法正確找出所有的格式問題,最後我決定重寫一支程式來處理格式的問題。

一開始我是用 Objective-C 去寫,寫了一堆 NSRegularExpression 😵,過了三個禮拜後,覺得寫 NSRegularExpression 實在太痛苦,而且寫到卡關了,所以決定改用 Perl 來處理格式問題。雖然之前有用 Perl 寫過一些小程式的經驗,但是當時有一陣子沒寫 Perl 了,已經忘光 Perl 怎麼寫,因此趕快重讀了《Perl 學習手冊》(忘記是第五版還是第六版了),用了約四、五天的時間讀了一遍《Perl 學習手冊》,然後開始寫 Perl script 來處理格式問題,後來寫了十幾支 Perl script 才終於解決完格式的問題(一支 script 處理一種格式問題),而且才花了一個多禮拜的時間 😁

雖然格式的問題解決了,但是我後來發現文字檔裡有少數的地方有亂碼(原本的字典純文字檔就有亂碼),結果最後還是得找工讀生拿紙本字典對照著文字檔找出所有的亂碼,並手動修正,噗,這樣一開始就請工讀生直接手動修改格式並修正亂碼不就得了 🙃 …… #這就是人蔘啊

好像越扯越遠了,今天先這樣囉,Bye~

好書推薦:《TinyML|TensorFlow Lite 機器學習》

TinyML: Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers 繁體中文版

最近終於把這本書讀完一遍了,不過還沒嘗試執行書中的範例程式,等有空時再來試試:)

這本書裡用來執行範例程式的硬體開發板有:

  • Arduino Nano 33 BLE Sense
  • SparkFun Edge
  • ST Microelectronics STM32F746G Discovery kit

不過現在 TensorFlow Lite for Microcontrollers 也支援 ESP32 了,所以沒有上述的硬體開發板也沒關係,可以用 ESP32 來試試看。

書開頭的幾章先用「Hello World」範例帶領讀者走一遍完整的開發流程(從建立與訓練模型開始,然後執行程式,再到部署至微控制器),「Hello World」範例的功能其實很簡單,就是模擬正弦 (sin) 信號而已。

之後的章節陸續講解了喚醒詞偵測 (yes/no)、人體偵測、魔杖(手勢) 等功能的程式建構與模型訓練。

最後幾章講了 TensorFlow Lite for Microcontrollers 使用上要注意的地方,還有優化、除錯、移植等相關的技巧,最後還有提到安全與隱私方面的議題。

這本書厲害的地方是:我覺得作者在概念與基礎知識的講解上算是淺顯易懂,所以蠻推薦對 TinyML 有興趣的人來讀讀看這本書。

★ 2021 年 3 月時的補充說明:Raspberry Pi 基金會在 2021 年 1 月時推出了 Raspberry Pi Pico 開發板,而《TinyML|TensorFlow Lite 機器學習》的作者之一 Pete Warden 也在稍後將 TensorFlow Lite Micro 移植到了 Pi Pico 上,Pi Pico 的價格很便宜,而且很容易購買到,所以使用 Pi Pico 來製作 TinyML 應用的原型應該也是不錯的選擇。

好書推薦:《無限的力量》

infinite powers 繁體中文版

俗話說「感情問題一律建議分手」,不,我的建議是「感情問題一律讀微積分」。

就如同 Leonard Mlodinow 在《科學大歷史》裡提到他的父親曾說想到自己跟天上的星星是同樣東西組成的,就會感到安心一樣,想到這個世界的規律能由一條條的數學定律來描述,不也令人感到釋懷了嗎?🙂

切入正題,我最近讀了《無限的力量》這本書,這本書的內容比較像是微積分的發展史,作者並沒有在書中放了一堆數學式子 (謝天謝地!),而是由古希臘開始講起,藉由一則則的歷史故事,來說明「無限」這個概念是如何一步一步的發展成為微積分這門學問,且不時穿插說明微積分在現代都運用在哪些地方,並在最後提到了微積分的未來。

像我這種一題微積分都算不出來的數學白痴,讀這本書時也能讀的津津有味呢!此書大推!

好書推薦:《人工智慧開發實務 – 使用 Swift》

Practical Artificial Intelligence with Swift 繁體中文版

最近看了《人工智慧開發實務 – 使用 Swift》這本書,覺得這本書寫的真不錯。

不像其他有著艱澀數學與演算法的 Machine Learning 書籍,這本書是屬於實戰類型的書,只用了第十章稍微說明了那些可怕的 ML 演算法,其他章節則教你如何使用 Apple 系統內建的 framework 來做電腦視覺 (Vision)、自然語言處理 (Natural Language)、聲音分析 (Sound Analysis),語音識別 (Speech) 等功能,還有如何使用 CreateML 等工具來訓練自己的 ML 模型。

而且這本書提供了大量的範例程式碼,所以可以很容易的把那些功能運用在現有的 App 上。

這本書真的大推呀!👍 👍 👍

《出家及其弟子》

最近看了倉田百三的《出家及其弟子》,真的很好看,難怪李登輝會說這本書是對他青春時期思考發展影響最大的三本書之一!

作者倉田百三是大正、昭和初期的日本劇作家,在22歲時感染肺結核,被迫輟學,一直到40歲都無法擺脫病榻生活,或許是長期臥病在床的因素,從其作品裡可以看到他對生命有極深刻的體會。

我第一次知道《出家及其弟子》這本書,是從李登輝的《武士道解題》裡看到的。前陣子在複習《武士道解題》時,想到可以查查看這本書有沒有中譯本,所以就上網搜尋了一下,查到2013年有出版了一本中譯本(大牌出版),譯者是毛丹青。

過了幾天,利用週末去三民書局找這本書,本來猜這本書應該會放在日本文學的區域,但是找不到,後來在禪學的區域找到這本書。也許是因為內容是描寫日本淨土真宗創始人–親鸞的故事,所以才會被歸類到禪學類吧!(不過,一般認為,《出家及其弟子》融入了基督教思想。)

《出家及其弟子》的故事有兩個主軸,一個是描寫大師親鸞與他的兒子善鸞之間難解的心結,另一個是描寫親鸞的弟子唯圓與藝伎的愛情故事。

善鸞原本有一戀人,但是女方因故被迫嫁給他人,善鸞對她仍然念念不忘,因而造成悲戀。女方後來病死,女方的丈夫又哭又怒,詛咒著善鸞。親鸞也因此跟善鸞斷絕關係。之後,善鸞也自我放棄,沈溺在酒家間。

親鸞的弟子唯圓知道了這件事後,想促成親鸞與善鸞的和解。但是,唯圓不但沒有促成親鸞與善鸞和解,自己也與藝伎陷入熱戀…。親鸞知道後,並沒有責怪唯圓,反而在親鸞的促成下,最終唯圓與楓結了婚。

故事最後,親鸞臥病臨終之際,善鸞趕回來見父親最後一面:

善鸞:(流淚)終於見面了……請原諒我,我……
親鸞:我們都會被原諒的,誰也不能對誰制裁。

然後,親鸞問了善鸞「你信佛嗎?」。
善鸞無語。

親鸞:你可別拒絕慈悲啊。你跟我說你信……給我一份安心吧,讓我的靈魂能夠返回到天上……

這些話讓靈魂痛苦的善鸞臉色發青,過了一會才絕望的說出:

善鸞:我實在太淺薄了……我不懂……我決定不了。

善鸞的回答讓親鸞有點沮喪,但是過一會兒,親鸞平靜了下來,說出:

親鸞:這也不錯,大家都得救了……這是友善而和諧的世界。啊,和平!那是最遠的,也是最內在的,南無阿彌陀佛!

上面這段親鸞最後說的話,在《武士道解題》裡是這樣翻譯的:

「好吧,你決定就好。任何人只要真心就可得助……世界是善良的、調和的。期許能有永遠美麗光輝的和平。永遠。內心也一樣。南無阿彌陀佛。」

最終,親鸞對善鸞由「全部否定」轉為「全部肯定」,故事也有了圓滿的結局。

《請君勿死》

《請君勿死》(部分節錄)by 與謝野晶子

啊!吾弟,我為汝哭泣。請汝萬萬不可送死。
汝生為家中么兒,爹娘寵愛於一身,
春暉庭訓遵正道,豈教持刃殺人耶?
取人性命身亦死,豈僅二十四載養育情?

旅順存亡為何物,可知商訓無此條。

天皇御駕不親征,徒令血流遍荒野,
若是天皇思慮密,豈信戰死顯榮耀。

哀痛未息又送汝,聽聞聖代太平世,
慈母白髮卻徒增。

恩愛廝守未十月,試想少女望夫心。

此生並非汝一人,究竟何人可請託,
啊!吾弟,請不要死!

在《日俄戰爭的時代》一書的序言讀到《請君勿死》一詩,覺得譯者何源湖翻譯的真好!
#有沒有台大歷史系畢業的人翻譯功力都很強的八卦?