i'm sam

軟體開發|自我成長|機機車車

大山姆的機機車車™ #9

大山姆的機機車車™ #9

我是山姆,《大山姆的機機車車™》是我的第一份電子報,希望透過這份小報,把我感興趣的資訊分享給同樣求知若渴的您。 本期的主題是一個「古老」的 C++ 技巧- Curiously Recurring Template Patterns ( CRTP )。這個技巧不算常用,但學會了,以後使用 C++ 「描述」問題時,是個不錯用的武器。這個技巧常見於[函式,類別]庫的實作,特別是 Header-only Library。 James O. Coplien 於 1995 年提出 CRTP。Mr. Coplien 看過不同人使用類似的手法,有所領悟,將此手法整理成文章解釋這個手法的「迷人」之處。我將該文章
7 min read
[220] 關於 WHLK 以及硬體認證的一些事
Microsoft

[220] 關於 WHLK 以及硬體認證的一些事

2020/06/17 更新:本文內原有 DigiCert 五折購買連結,已經失效。 2019/11/13 更新:由於架設 HLK Controller+Studio 面臨許多不確定性,微軟差不多兩年前開始提供 VHLK 虛擬機器,內含完整的  HLK Controller+Studio,可於此下載 [https://www.microsoft.com/en-us/evalcenter/evaluate-virtual-hardware-lab-kit] 。那是一個 35GB 的超級大檔,下載時要有心理準備。下載完畢使用 Hyper-V 來執行,詳見使用說明 [https://www.google.com/search?q=vhlk&oq=vhlk&
7 min read
大山姆的機機車車™ #8

大山姆的機機車車™ #8

我是山姆,《大山姆的機機車車™》是我的第一份電子報,希望透過這份小報,把我感興趣的資訊分享給同樣求知若渴的您。 ༺ 意見調查結果 ༻ 上一期 提到我在編《C++ 世界的學習指南》時遇到的難題,謝謝讀者的回饋。有一點蠻有趣:有人覺得有 C 語言基礎,對於指標、陣列等有概念因此比較 容易 上手 C++。有人覺得懂 C 的人對 C++ 多型(Polymorphism)、虛擬函式(Virtual Function)適應不良(冠希?)。 語法方面,C++ 的保留字(Keywords)不算少,而且同一個符號在不同情境有不同的意義。這點程式設計老手可能習以為常,但對新手來說卻是學習障礙。 再來就是函式多載(
6 min read
[219] 《大機車報》第七期已出刊
C++

[219] 《大機車報》第七期已出刊

《大山姆的機機車車™》電子報第七期 [https://news.samtsai.org/issues/7-101617]已經上線。本期人物「落腮T」 Jason Turner [https://twitter.com/lefticus?lang=en] 近年來為各大 C++ Conference 常客,除了共同主持 CppCast 外,還有每週一集的 C++ Weekly 錄影,在圈內頗為活躍。 電子報第七期漏掉了他整理好的《C++ Best Practices》 [https://github.com/lefticus/cppbestpractices/blob/master/00-Table_of_Contents.md] ,除了有 Coding Style 外,
1 min read
大山姆的機機車車™ #7

大山姆的機機車車™ #7

我是山姆,《大山姆的機機車車™》是我的第一份電子報,希望透過這份小報,把我感興趣的資訊分享給同樣求知若渴的您。 ༺ 意見調查 ༻ 我正在編一個《C++ 世界的學習指南》,希望提供各階段 C++ 攻城獅一個學習的方向,在強化技能與技術的旅途上,不要因為一時迷失而放棄。 目前的進度緩慢,其中一個原因是:我尚未抓到新學 C++ 會遇到的難處。我能「猜」到幾個新手受挫的原因,但還不無法確切掌握全貌。 因此,我需要讀者的協助,若你還記得當初或目前學習 C++ 遭遇到的挫折或無法繼續進步的門擋,希望你能分享學習經驗,這對我的幫助很大。山姆感謝您!
7 min read
[218] Memory #11: 那些年跟電腦有關的「第一次」
memory

[218] Memory #11: 那些年跟電腦有關的「第一次」

我是嘉義縣「新港國中」畢業後到北部唸五專,同屆大概只有我一個人這麼做(三個同班一起報考北五專,只有我決定唸),其他人多留「嘉中」或南部他校。 印象中,國中有一次參加三天兩夜的電腦相關研習營(名字忘了),晚上住在台北金山青年活動中心,白天到某個地方上電腦課。那是我第一次接觸電腦,記憶中有碰到倚天中文、5.25" 碟片、PE2。第一個輸入的電腦指令是:How are you?由於記憶相當模糊,我到現在還不確定那是夢境、平行宇宙,還是真的發生過... 五專一年級沒有自己的電腦,多是用電腦教室的電腦或跟學長借來用。第一台屬於我的電腦是專二(付錢)請學長組裝 Intel 486 搭配 14" CRT 螢幕,記憶體 4MB,確切的硬碟容量忘了,應該是不足 200MB。當時的記憶體要價不菲,印象中有 1MB 五千甚至一萬台幣。
4 min read
[217] 《大山姆的機機車車™》-2018.1Q 季報與贈書計劃
大機車報

[217] 《大山姆的機機車車™》-2018.1Q 季報與贈書計劃

時間過得真快,三個月轉眼間就飛走了,《大機車報》也發行了六期,每一期皆準時出刊。訂閱人數突破 140 人。目前為止除了剛發佈的第六期外,每一期的 Open Rate 皆維持在六成以上。 觀察到新訂戶有一些校內電子郵件,開心但不意外。我認為「學生」除了接受「理論」教育,也須盡早與「實務」接觸。幫我個忙,請將《大機車報》分享給對軟體開發有興趣的學長、學弟,不懂 C++ 或對她有成見也沒關係,給他一個機會,他會感激你的。 讀者回應 讀者的鼓勵很受用,至今每一期都編得很開心。過程中也學到不少東西,發報那天滿滿的成就感讓我擁有不只一天的好心情。 目前為止除了給我們「讚」,以及第五期 [https://news.samtsai.org/issues/5-96146]的「客座青年」Sidney
4 min read
大山姆的機機車車™ #6

大山姆的機機車車™ #6

我是山姆,《大山姆的機機車車™》是我的第一份電子報,希望透過這份小報,把我感興趣的資訊分享給同樣求知若渴的您。 ༺ 議題討論 ༻ 前二期我摘了 2D Graphics Library 是否納入 C++ 標準的議題,並提出我的看法。Sidney Niu 對此議題的看法與我不同,轉載如下: 這幾期都有提到 C++20 在討論是否要將圖形庫納入標準,實際上現在各家繪圖函式庫的開發社群也都在觀望中。 我個人是偏向支持 SDL2 併入 C++20 或未來的標準。第一個理由是目前的傾向是未來有 C++ on GPU 平行運算,這表示語言可以直接使用初步的繪圖卡指令,那圖形介面真的不是大問題。第二個理由是
9 min read
[216] Memory #10: 輸了球卻獲得美好回憶
memory

[216] Memory #10: 輸了球卻獲得美好回憶

感冒頭暈暈,又想到這一幕。記得專科有一年科內籃球比賽,甲乙兩班對抗。論實力,對方有校隊還有愛打籃球體力值 ∞ 的原住民。我們則是幾個愛鬥牛的同學,有幾位實力不錯,但幾乎可以說是一盤散沙,沒啥勝算,那場也確實輸了。不過,是打到延長賽才輸。 記得當時落後二分,離比賽結束不到三十秒,對方發球。球發到原住民後衛手上,我立即衝上去,施展「櫻木花道的千手觀音式」,對方大概被我嚇到而停止運球,傳球時我的手拍到球,正好落在近中場的我方隊友手上。 ![](https://i.imgur.com/0ir4BxJ.jpg) 我見狀便快速往籃下移動,並跟隊友要球。該名隊友有三分球能力,賽後他說當時本想出手但猶豫了一下還是把球傳給了我。 那一幕我到現在還清楚地記得。我心裡想著:「落後二分,即使進球也只能平手。我方球員大多體力透支(平時習慣鬥牛,少打全場),延長賽沒有勝算...」那時眼角瞄到對方隊衝了過來,我故意放慢打板進球的速度等他過來,看能不能要個進籃得分加罰一球。 他跳起來封我,有肢體碰撞。球進了,落地後我「故意」
2 min read
大山姆的機機車車™ #5

大山姆的機機車車™ #5

我是山姆,《大山姆的機機車車™》是我的第一份電子報,希望透過這份小報,把我感興趣的資訊分享給同樣求知若渴的您。 💌 本報訂閱數達三位數了,謝謝大家! ༺ 客座青年 ༻ 上一期出刊後,有在校學生來信表達有意參與電子報內容製作,我覺得是不錯的嘗試,幾次郵件往來訂下遊戲規則後,便開始接受電子郵件投稿(電子報後台依然由我一人掌控)。 Sidney Niu 目前是碩二生,接觸 C++ 約兩年,自介如下: 會使用 C++ 的原因是希望未來能到 Ubisoft 或 Unreal 開發遊戲引擎,接觸 C++ 年資只有兩年多,由於資歷尚淺如果內容有誤請大家不吝指教。介紹的主題聚焦在近年的 Conference
7 min read
[212] WorkFlowy + iPhone 語音輸入=懶人輸入法
WorkFlowy

[212] WorkFlowy + iPhone 語音輸入=懶人輸入法

撰寫或翻譯文章 [https://goo.gl/wckaiD]時,我習慣先在 WorkFlowy 上把架構打好,除了不用擔心「同步」,由於未發佈的文稿皆放在 WorkFlowy 裡,靈感與半成品集中一處的好處是東西好找,有關鍵字就找得著。 電腦不在身邊靈感突然浮現,我會拿出手機快速紀錄想法。目前的作法有二: 1. 使用錄音機 2. 紀錄到 WorkFlowy 我發現輸入到 WorkFlowy 的東西比較好再利用(易搜尋),所以第二個選項最常用。但是有個問題:我在手機上的打字速度很杯具。 好險,iPhone 的語音輸入辨識度高到足以適用於多數情境。所以多數情況下,我會用 iPhone 語音輸入至 WorkFlowy 來記錄靈光乍現的時刻。底下的影片展示效果:
1 min read
[211] Azure Essentials with Existing Pluralsight Account
Learning

[211] Azure Essentials with Existing Pluralsight Account

微軟推出 Azure Essentials [https://www.microsoft.com/en-US/azureessentials/] 提供線上學習資源,並與其他線上學習服務商如 Pluralsight [https://www.pluralsight.com/] 合作,提供初階至高階的學習資源。 原本就有 Pluralsight 帳號的使用者,Azure Essentials 上的課程原本需要付費才能存取,但綁定帳號後也能免費使用那些課程。方法很簡單,就是用同樣的電子郵件註冊 Pluralsight 帳號,完成後即將 Azure Essentials and Pluralsight 帳號綁定。步驟拆解如下: 一、登出 Pluralsight 帳號,並到這個頁面 [https://azure.microsoft.com/en-us/training/free-online-courses/]隨便點選一個課程跳到 Pluralsight
1 min read
[209] Droplr 的大改版完全變了調
Electron

[209] Droplr 的大改版完全變了調

看到 Electron v2 即將推出的消息,怒火又燒起來了。 前陣子 Droplr [https://droplr.com/] 的 Desktop app 大改版,v3 砍掉重練。安裝了 Droplr v4 不到十分鐘,我又懂了為什麼 Joel 對於重寫軟體採取極度保留的態度 [https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/] 。Droplr v4 for Windows desktop,爆爛的! Electron DNA Again 絲毫不意外,Droplr 團隊決定使用宇宙霹靂無敵人見人愛跨平台什麼都能砍砍了就活不下來的 Electron 開發框架來建構其歷來最大的改版。Electron [https://electronjs.org/] 在新創圈幾乎所向無敵,
3 min read
[208] 該死的範例碼之爭,卷一
rant

[208] 該死的範例碼之爭,卷一

往下讀之前,請先回答這個提問:「文件上的範例碼該不該設計成適合『複製貼上』至真實專案?」 前篇 [https://samtsai.org/2018/03/01/207-my-way-to-argue-online/] 是我對網路爭論的處理態度。這一篇認真來看 「該死的範例碼之爭」 [https://www.facebook.com/groups/616369245163622/permalink/1263968053737068/] 。起因是底下這篇公開文章: > 覺得我對MS有偏見的人,請按下去看看MSDN官方的sample source code吧....誰在公司真的這麼寫,我一定會砍死他... (出處 [https://www.facebook.com/groups/616369245163622/permalink/1263968053737068/]) 批評的對象是微軟 MSDN 上的範例碼 [https://goo.gl/HvTY1a],被批的原因是使用了 Nested-if,
7 min read
[207] 苦短人生,花在爭論的每一秒都不應該浪費
blogging

[207] 苦短人生,花在爭論的每一秒都不應該浪費

警語:本文刻意使用特別的「語調」,讀來恐有不適,不喜誤入。 日前某臉書社團裡起了一場爭論,估且稱之為「該死的範例碼之爭 [https://www.facebook.com/groups/616369245163622/permalink/1263968053737068/]」。 人的一生,可用時間極短。因此,多數時候我不喜歡參與網路上的「爭論」,主要原因是勞心勞力耗時間,而且產生的正面效應很低。不過,這一篇針對微軟及產品使用者(不寫擁護者的原因是避免妄下斷論)所發的引戰文,其後續效應有許多有趣且有學術價值的地方,我覺得有必要花點時間分析。不過在那之前,先寫下我對「網路爭論」的看法與應對之道。(原本只寫一篇,後來字數多,便獨立成一篇) 以此次「該死的範例碼之爭」為例,該社為公開社團,任何人都可以看到公開發表的文章,但只有加入後才能留言。我不是該社團的成員,也沒興趣加入。該大社成員超過八千,由上述發文以及十分鐘左右的走馬看花,大概知道該社的「屬性」為何。我的結論是:
5 min read
大山姆的機機車車™ #4

大山姆的機機車車™ #4

我是山姆,《大山姆的機機車車™》是我的第一份電子報,希望透過這份小報,把我感興趣的資訊分享給同樣求知若渴的您。 ༺ 山姆菜單 ༻ 除了電子報外,我的 YouTube 頻道 於日前發佈了第一支影片,從零開始,目標是每週推出兩部影片,主題圍繞在 程式設計 與 軟體開發 ,初期以撰寫程式碼時所面臨的難題與抉擇切入,這樣的 細節說明(微觀) 有時候用文章難以精確表達我的想法,而影片則可以盡情揮灑,我叫它《說碼解意》——用白話文講解程式碼的寫法及其背後的思惟,逐漸累積養成以 宏觀 視角看待軟體開發的專業能力。 當然,主菜之外還會搭配小點,如 WorkFlowy 教學,好用的工具介紹與評測等。歡迎讀者來函
7 min read
[206] WorkFlowy 美粧師
WorkFlowy

[206] WorkFlowy 美粧師

Update: 經網友 Roy Chen 提醒,Stylish 易手後,預設會收集使用者「瀏覽紀錄」,現在另一款外掛 Stylus 可供選擇,也同樣支援 Userstyles 上的樣式。 WorkFlowy 預設外觀相當「樸素」,我相信這是「刻意設計」。實在太過樸素了,有人就想到利用外掛來替 WorkFlowy 美粧,作法是使用瀏覽器外掛—— Stylish [https://chrome.google.com/webstore/detail/stylish-custom-themes-for/fjnbnpbmkenffdnngjfgmeleoegfcffe?hl=en] 。 有別於以往用文章說明工具,今天初次嘗試使用影片的方式來呈現,看看效果如何。看倌請了... -------------------------------------------------------------------------------- 想知道更多 WorkFlowy 撇步,請快步前往 WorkFlowy Tips [https://workflowy.tips/
1 min read
[205] Video Intro to ViEmu for Visual Studio
Programming

[205] Video Intro to ViEmu for Visual Studio

這部影片簡單介紹一個 Visual Studio 外掛(Extension)— ViEmu [http://www.viemu.com/] 。這個好用的工具我一直用了十多年,其售價是單一平台授權的售價為 $99 鎂 [http://www.viemu.com/store.html],可另外添購 $49 鎂獲得一年的免費版本升級: 不囉嗦,看影片先。 這個外掛我從 Visual Studio 2008 時期開始使用,那時候是把另一套外掛——Visual Assist [https://www.wholetomato.com/] 擠下來,成為我的主要輔具。兩者之所以較難並存,是因為不少快速鍵重覆了,而且早期有相容性問題,因此放棄同時使用這兩支外掛。 -------------------------------------------------------------------------------- 《大山姆的機機車車》電子報 哈囉,我是山姆。今年初我發行了個人電子報,提供軟體開發資訊與學習資源,
1 min read