大山姆的機機車車™ #14

༺ 贈書 ༻ 📚

前一期的贈書仍在庫,有興趣的讀者請把握。本期贈書——江振誠《初心》

這陣子關注的許多「成功人士」都認為「投注大量心力在工作上」是事業成功的不二法門。成功沒有捷徑,堅持埋首苦幹,一天前進一點,目標會越來越近。

我是山姆,《大山姆的機機車車™》是我投注心力製作的電子報,希望透過這份小報,把我感興趣的資訊分享給同樣求知若渴的您。


書贈有緣人

《初心》江振誠

大廚的自傳。這一年看了許多「成功人士」的經驗談,談年輕默默無名事業未成時,如何抵擋人生中的諸多誘惑,埋頭苦幹,磨練技藝,五年,甚至十年後,才有現在受人景仰的「成功」。

如果有興趣,請你這樣做...

(贈書初衷請見《大機車報》第十三期

於當期回覆(在報尾按個讚即可回覆),提供以下資料:

  1. 書名
  2. 收件人名
  3. 收件人地址

看完的書用不到的話,可以轉贈個人或圖書館,也可以寄回來給我。

參兩摘

Monoid

新發現的「等寬字型(Monospace)」-Monoid。此字型為開源專案,採 MIT 授權。實測發現在網頁上的效果比編輯器(Visual Studio and Sublime Text for Windows)要好,Mac 上的效果比 Windows 10 好。

此字型的特色之一是針對 12px/9pt 大小優化。另一個特色是 Monoid + Font Awesome = Monoisome。 不過,最終還是無法取代我目前的最愛-Iosevka

Getting Along With The Comma Operator in C++ - Fluent C++

幾乎所有 C++ 運算子(Operator)可以被 Overload,其中有些運算子我建議,不要對他「毛手毛腳」,保持原樣就好。本文由逗號「,」探討 Operator Overloading 的要與不要。底下留言處有一些真實案例,實為警剔。

翻譯難題:Overload 究竟怎麼翻才好?(重載、多載、覆載)

Should I Use Overloads or Default Parameters? - Fluent C++

C++ 程式碼寫多了,一定會遇到這個難題,兩相比較後,多是 Default Parameter 勝出。不過,兩個方式的使用時機以及對程式碼的影響,專業的 C++ 碼農一定要懂。

Developing C++ with Visual Studio Code - DEV Community 👩‍💻👨‍💻

介紹 Visual Studio Code 搭配兩個外掛模組來簡化 C++ 開發。

Modern C++ for C Programmers: Part 5 • ds9a.nl articles

系列第五篇,介紹了幾個讓 C++ 摩登起來的組件。

Windows Command-Line: Backgrounder

來自微軟資深員工一系列優質的 Command Line 文章,由歷史談起,看未來 Windows Console 發展。

內文提到,由於近年硬體以及 C++ 語言的發展,Windows Console 專案慢慢將 C 程式「升級」成 Modern C++。

Bartek's coding blog: C++17 In Detail Book!

這本新書介紹 C++17 新功能。主流編譯器三強皆已支援 C++17,我也在工作上導入 C++17,Structure Binding, Filesystem library 都在開發上發揮實際效用。

whitglint/cppjobs · GitHub

推友建了這個《C++ 職缺列表》,求才或求職,不妨一試。

Podcast(播客)精選

The Continuing Evolution of C++

C++ 老爹接受專訪,談了 C++ 的過去,設計的準則。

摘影片

Higher order functions for ordinary C++ developers - Björn Fahller

Higher-order functions is:

functions that accept functions as parameters, or return functions

C++11 之後的碼農人生變得更加精彩。std::function 及 Lambda 相當程度改變了 C++ 程式碼的撰寫風格。這支影片不好消化,不過有許多值得思考的點。

[embed https://vimeo.com/282307009]

Chandler Carruth “Going Nowhere Faster”

延續 Benchmarks 的概念,這場演講前半場著重在快取大小造成的效能瓶頸,很多時候我們所猜測的行為常常還是會跟實際結果不一樣,因此還是要回歸使用 Benchmarks 去觀測軟體硬體的行為。

後半場則說明編譯器後端的優化手段,這個部分跟計算機組織課本內容很像,最主要就是透過展開迴圈去填滿整個 CPU Pipeline。

想要更了解快取的原理可以看 CppCon 2016: Timur Doumler “Want fast C++? Know your hardware!"

By Sidney Niu

Nir Friedman “What C++ developers should know about globals (and the linker)”

現代資工系因為著重課程演算法和數學上,特別是比較新的資工系雖然有設計模式和測試開發等課程,連結器或載入器都算是相對陌生。

演講中穿插不少範例去解釋編譯器和連結器工作上的差別還有連結器的基本原理。

另外也推薦看另一場有關連結器的演講 CppCon 2017: Michael Spencer “My Little Object File: How Linkers Implement C++”

By Sidney Niu

開源專案

gabime/spdlog · GitHub

正式釋出 1.0.0 版的 C++ Logging 程式庫。同樣採 Header-only 設計,在 Windows 上可使用 vcpkg 來安裝。此專案使用了 fmt 專案來做格式轉換。

The Art of C++

由幾個實用的開源碼 C++ 程式庫組成。這一集的 Cppcast 有專訪,聊到此專案的許多細節。

WorkFlowy Tips

想知道更多 WorkFlowy 撇步,請快步前往 WorkFlowy Tips 。還沒有 WorkFlowy 帳號?請用此連結申請,加倍免費清單上限。

還有還有,我在臉書開了一個以 WorkFlowy 為主題的社團——山姆的 WorkFlowy 大小撇步現在人很少,快來助拳!

💌 喜歡這一期的內容,請幫我按「👍」。不喜歡請按「👎」,並寫下你認為哪裡做得不好,你的回饋是我進步的動力。想要匿名舉報的話,我開了一個 Sarahah,歡迎使用,謝謝!

本報內含 Affiliate Link 連結若干,也就是我有機會從中獲益,賺點奶粉錢,希望有朝一日能因此日進斗金(誤)。若對這樣的作法有疑慮,請讓我知道或者直接退訂也行,我不會介意,你請別生氣。☯

山姆街口

山姆的「街口」

F.U. Money

人的潛意識決定一個人的成長路線,而且與成功與否有極大關係。我還沒「成功」,說的話沒啥鳥用。但這位六歲時香港移民加拿大,然後父母離異,父親破產,從一句英文都不會,白手起家,至今事業成功,可以誰都不鳥的 Dan Lok 講了兩場 TED Talk,聽完後,我好像被什麼打中了...