大山姆的機機車車™ #13

༺ 贈書 ༻ 📚 我曾經超愛 買 實體書,後來發現電子書比較適合我的閱讀習性,就少逛天瓏書局了。前陣子在地下室翻出兩箱書,想了想,有些書大概不會再看了,與其放在地下室等發霉,不如送給有緣人。 我打算每期挑出若干本書(大多是技術書籍,但有少數例外),附上簡介或短評。贈送的都是短期內不會再看的書,於你有益與否,請自行判斷。 感興趣的讀者,請於當期回覆(在報尾按個讚即可回覆)並告知書名,若該書在庫,我會以電子郵件詢問寄送的地址與收件人名。若有隱私疑慮,可留郵政信箱或隔壁鄰居好朋友的住址,我不會介意的。 寄書的運費由我負責,若堅持自付,報尾有我的 街口 。對了,書只寄台灣(台、澎、金、馬)

大山姆的機機車車™ #13

༺ 贈書 ༻ 📚

我曾經超愛實體書,後來發現電子書比較適合我的閱讀習性,就少逛天瓏書局了。前陣子在地下室翻出兩箱書,想了想,有些書大概不會再看了,與其放在地下室等發霉,不如送給有緣人。

我打算每期挑出若干本書(大多是技術書籍,但有少數例外),附上簡介或短評。贈送的都是短期內不會再看的書,於你有益與否,請自行判斷。

感興趣的讀者,請於當期回覆(在報尾按個讚即可回覆)並告知書名,若該書在庫,我會以電子郵件詢問寄送的地址與收件人名。若有隱私疑慮,可留郵政信箱或隔壁鄰居好朋友的住址,我不會介意的。

寄書的運費由我負責,若堅持自付,報尾有我的街口。對了,書只寄台灣(台、澎、金、馬)地址。

書不多,送完即止。我以「最大善意」贈書,也希望讀者真的對該書有興趣才「下單」。也請大家告訴大家,訂閱《大機車報》,有機會免費獲得二手書。

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


書贈有緣人

Dreaming in Code: Two Dozen Programmers, Three Years, 4, 732 Bugs, and One Quest for Transcendent Software

《鳳凰專案》是一本成功專案如何成功的小說,《Dreaming in Code》則是一本紀錄真實軟體專案如何失敗的「史書」。書中的專案——The Chandler Project,及登場的人物都曾經存在。專案創辦人 Mitch Kapor 大有來頭,他是史上第一個試算表軟體 Lotus 1-2-3 的設計者,也是 Lotus 公司的創始人,他是 EFF(電子前鋒基金會)的共同創辦人,更是 Mozilla 基金會的第一任董事長。

是個厲害的傢伙,無庸至疑。但由他主導,根本就是 Microsoft Outlook 翻版的 Chandler 專案怎麼會以失敗收場?發生了什麼事?是野心太大,想法過於前瞻或者執行力不佳?本書作者 Scott Rosenberg 在專案之初即貼身記錄團隊遇到的種種難題,以及導致專案一步步邁向失敗的錯誤決策。

註:這本原文書我沒看完,如果你願意分享讀後感,請來信。

時間管理:給系統管理者

「時間管理」題材永不退燒,本書以系統管理者的角度出發,介紹一些對系統管理者特別有用的時間管理方法。除了解決日常工作,也能應付突發狀況。

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

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

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

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

參兩摘

Download "C++ Today: The Beast is Back" Report | JetBrains

電子郵件換一本電子書。作者 Jon Kalb 是 cpp.chat 主持人。活躍於於 C++ 圈子,堅持 East Const 才是正解。

Playful Programming: DRY multicomparisons

這是值得鑽研的好文章,不長,但連同程式碼一起看,可以獲得很多靈感。作者先提出一個問題,然後試著以實例程式碼解決該問題,並對程式碼做詳盡解說。

How to Convert a String to an int in C++ - Fluent C++

「字串與數字轉換」是每個 C++ 開發者早晚會遇到的「問題」。問題看似簡單其實暗藏許多陷阱,這篇文章介紹了幾種字串轉數字的方法,續篇則比較各個方法的執行效率,作者得到的結論:

std::from_chars

Bartek's coding blog: Google benchmark library

介紹 Google Benchmark library 的用法。Quick Bench 的後台使用這個專案來實作 C++ code benchmarks,其比較結果以圖表顯示,清楚易懂。

Trip report: Summer ISO C++ standards meeting (Rapperswil) | Sutter’s Mill

每次 C++ 委員會後出現的「Trip Report」這兩年漸成常態,報告也越來越精彩。這份是來自微軟的 C++ 委員會召集人 Herb Sutter 所提供,另有他篇:

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

摩登 C++ 系列第三集,本集談「繼承(Interitance)」與「多型(Polymorphism)」,這兩個是相當重要的觀念,搞懂了,表示已經通過「中忍考試」。文章用到的程式碼可在 GitHub 找到

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

摩登 C++ 系列第三集,本集談「Lambda」。這個在 C++11 加入的新功能,是老語言活化的關鍵之一(搭配 auto)。現代人學 C++,一定要懂 Lambda。不要自己嚇自己,C++ Lambda 的語法其實很簡單,甚至可以說很好玩。

auto dont_worry = \[](){ return ", be happy!"; } -> std::string;
auto ok = dont_worry();

Podcast(播客)精選

Design Patterns in Modern C++ - CppCast

我在部落格介紹過這位 Pluralsight 講師-Dmitri Nesteruk,他有許多與 Design Pattern 有關的課程,難度中等。

摘影片

Understanding Optimizers: Helping the Compiler Help You

「讓編譯器幫得上忙」是 C++ 開發者該有的技術素養。適當了解編譯器的運作可以少寫一點糟糕的程式碼。

CppCon 2017: Louis Dionne “Runtime Polymorphism: Back to the Basics”

雖然 C++ 盡可能在編譯時期完成大量工作,但是很多時候還是需要使用執行時期決定的方法以達到節省空間與時間的方法。

多型在動態時期有不少需要注意的細節,C++ 和 Boost 委員之一的 Louis Dionne 精要的說明在哪些情況適合使用執行時期決定,並提供一些良好的設計方法。

By Sidney Niu

CppCon 2015: Chandler Carruth "Tuning C++: Benchmarks, and CPUs, and Compilers! Oh My!"

編譯器前端的優化演算法大致都已介紹完,雖然編譯器做了很多優化工作,但是實際執行速度還是要回歸程式設計師針對熱區做優化。

Google Benchmark 這套函式庫介面跟 Google Test 很像,常使用 Google 開發套件的人應該蠻快上手的。

不管從學校資工系畢業或是從巨匠資策會上完課的人,對於優化這塊都是相當陌生的,加上資源稀少,想要深入了解 C++ 優化的人幾乎不得其門而入,市面上比較新的書也只有這本 《優化C++》

By Sidney Niu

開源專案

google/benchmark: A microbenchmark support library

做「校能調校」或「程式碼優化」之前,一定要先量測,計算出基準點之後再動手調校才是正解。Google Benchmark 提供許多工具協助量測 C++ 程式碼的執行效能。Google Benchmark 的寫法有種「美感」,不過,要能應用自如,必須下苦心。

WorkFlowy Tips

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

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

課程資訊

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

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

山姆街口

山姆的「街口」

It is GaryVee again...

敢說、敢做,而且能量電池的電量好像永遠不會掉?除此之外,觀察入微,論述切中要點,引起共鳴。

影片開頭說的「症狀」:失敗者愛膨風。還沒做出成績就逢人說大話,為的是「讓別人覺得自己很行」。「過於在乎別人以及世俗的眼光」是成功路上的絆腳石,我們應該大力踢開它,調整心態,穩步前進。

成功人士的付出比你想得要多...很多!

Kobe Bryant 解釋為什麼多年來他堅持淩晨四點開始練習。

It's just a matter of what's important to you...for whatever reason. I didn't feel good for myself if I wasn't doing everything I could to be the best version of myself.  -- Kobe Bryant
The passion comes from the love of the game. I love everything about it. The smell of the ball. The smell of the new sneakers...the sound of the ball when it hits the ground...all those things that I love. So the passion comes from that. -- Kobe Bryant

[embed https://youtu.be/9_tYXFbgjZk?t=13m8s]