i'm sam

C++|WorkFlowy|軟體開發|數位筆記

[011] 我的生活作息

[011] 我的生活作息

近五年來(女兒出生那段「黑暗期」不計),我的睡眠時間如下: * 每晚十二點前睡著。是睡了,不是剛上床。 * 隔天早上八點左右起床。(十一點睡的話,七點半以前就會自動醒來) 起頭是另一半強迫改變我的作息,開始的幾個月有抗拒,覺得晚上才能專心做一些自己有興趣的事(例如追美劇XD),早睡把大好的時間浪費了。慢慢發覺作息調整後,即使不睡午覺,下午也不會有精神不濟,反應遲滯,大腦不靈活的徵狀。 感受到好處,我也不再排斥早睡了(在台北,十二點前就寢算早的吧?)。 觀察並詢問公司有午睡習慣的同事,就寢的時間皆為凌晨以後,而且一睡就是半小時,勉強醒來臉色看起來相當痛苦。似乎少有人能體會十分鐘午睡魔力 [http://bit.ly/1IYMZAL]。 接下來我想要嘗試一些改變:就寢時間不變,但起床時間提前半小時或一小時。利用這「多」出來的時間,趁著「惡魔女孩」還在睡夢中,做一些自己的事。看看書,讀幾篇文章,寫寫字,應會有不少收獲。
1 min read
[010] 做著做著...就愛上了

[010] 做著做著...就愛上了

意外地接連兩天讀到概念上同質性極高的文與書,實在幸運。 Basecamp 的創辦人 Jason Fried 寫了一篇文章——〈Do you have to love what you do? [http://bit.ly/1VSP4jn]〉,主要是說他不同意這樣的說法: > The only way to do great work is to love what you do. If you haven’t found it yet, keep looking. Don’t settle. 對於剛出社會的職場新鮮人,希望找到符合自己興趣,自己喜歡的工作乃人情之常,但絕不能將此定為「
2 min read
[009] 不要用父子關係去理解 C++ Inheritance
C++

[009] 不要用父子關係去理解 C++ Inheritance

昨天跟同事討論到 C++ 繼承,主要是從「用何種方式去描述或理解 C++ Inheritance [http://bit.ly/1PkcKYG] 比較精確」來切入。他說繼承像是「父子關係」,我卻覺得這樣不夠精確。本篇旨在描述我的想法。 C++ Inheritance [http://bit.ly/1PkcKYG] 讓兩個物件成為 is-a [http://bit.ly/1OTuLTw] 關係,若 Object Q 繼承了 Object Y,那麼我們可以說 Q is-a Y——因為 Q 俱備了 Y 的所有介面,故可被當做 Y,但 Q 卻不是
2 min read
[008] 是詐騙還是錯誤期待?

[008] 是詐騙還是錯誤期待?

一天,一位有十年以上 C 語言程式設計能力的「人才」,付費去上《Intro to C Programming》的課。課後,痛批講者無良,竟然教這麼粗淺的東西,這種等級的「技術」根本看書就學得會,於是怒罵授課方有如詐騙集團,更引來許多「同溫層」友人大力圍剿,一人一句,擲地有聲... 真的是詐騙嗎?還是這位「人才」根本去了不該去的地方,或是對該堂課產生「錯誤期待」? > 除此之外,這門兩小時的課,廢話大概佔了起碼一小時又三十分鐘... 既然都說是 Intro 了,擺明就是入門課程,老手勿入。你是人才而且經驗豐富,這課當然不適合你啊。心得隨人寫,但一開始的角度就錯了,這樣的心得要說「對事不對人」,難以置信。 你不能覺得課上得太淺,不符合期待,就寫了好像很有道理的所謂「心得」,暗指(
3 min read
[007] 我的 WorkFlowy 使用法:寫字台
WorkFlowy

[007] 我的 WorkFlowy 使用法:寫字台

溫馨提醒 讀完本文後想要申請 WorkFlowy,務必使用底下連結(或到這個共享清單 [https://workflowy.com/s/BS0jCVUs3L] 自己挑一個),讓你的容量加倍: * https://workflowy.com/invite/21d12cbe.lnx -------------------------------------------------------------------------------- 正文開始 > TaskPaper knows about four things: projects, tasks, notes, and tags. TaskPaper [http://bit.ly/1PQfqlr] 為一 Mac app,目前 v3 處於預覽版。這是一款支援 Markdown,並於純文字上延伸出更多有用的功能,如 To-do list, Tag,甚至有
2 min read
[006] 午睡十分鐘的魔力

[006] 午睡十分鐘的魔力

記得當兵還是菜鳥時,每周四早上的莒光課是相當痛苦的回憶: > 課程開始不到十分鐘,眼皮有如掛了千斤重的環,必須很用力很用力才能睜開,有時撐不住頭往地下掉,班長就來了... 退伍後成為職場菜鳥,苦痛重現。當時沉迷網遊,幾乎天天玩到半夜二點才上床睡,想當然爾隔天肯定無精打采,到公司不到中午就對著螢幕頻頻「點頭」。好不容易熬到中午,立馬趴桌補眠... 這一睡接近一小時,醒來時痛苦萬分(有時候甚至醒不來):腦袋昏沉沉,根本「補」不了眠。這情況維持了好一陣子,後來發現有時候午休雖只睡十來分,醒來時,精神卻很好。用心觀察一陣子,這感覺千真萬確。於是開始訓練自己,真的累就睡,但不能超過十五分鐘。一開始,需要借助鬧鐘才能醒來,久而久之,習慣成自然,約十分鐘左右就會自動醒來,有時甚至不覺得睡著了(因為還聽得到外界的聲音)。 這些年,由於生活作息調整得不錯(十二點前上床),大部分時間都不需要午睡。有時太累,腦袋開始不聽使喚,趴在桌上十分鐘充電就能再活動個大半天。 之後讀到有人利用咖啡因對人體的影響,只要極短睡眠時間,即能達到一般人的七小時睡眠,
2 min read
[005] JUCE Diary #5: SVG Path Helper
JUCE

[005] JUCE Diary #5: SVG Path Helper

JUCE Projucer/Introjucer 內建了一個 SVN Path Helper 工具,可協助處理 JUCE 內使用 SVG 圖形。SVN 是向量格式,好處是大小改變品質不會失真。恰巧先前 AppSumo 推的 iconapp.io 有支援 SVG 格式輸出,絕配! SVN Path Helper 用法很簡單,打開工具後,將目標 SVG 圖形檔以文字編輯器開啟,把 path 的內容複製貼到 SVG Path Helper 上方的文字格內即可。 SVG Path Helper 的預覽窗格可即時看到輸出,並產生相對應的 C++ 程式碼。該段程式可直接放到原始碼中,再利用 JUCE
2 min read
[004] 我如何成功戒菸

[004] 我如何成功戒菸

比起多數老菸槍,我的菸齡不算長。大概是五專二年級暑假打工時開始接觸香菸,那時候七星一包四十元,峰六十元。就這麼一路抽到出社會三年,算一算,菸齡約十年。份量最多大概是一天兩包菸(打撞球時抽得最兇),當兵菜鳥時期只能躲起來抽,那時候的量少很多。 緍前同居時,壓根兒沒想到戒菸。女人真偉大,默默忍受男人自私地在房裡抽菸打電玩,一忍就是一年多。迎娶當天嘴裡還刁著菸,怎麼也想不到我竟能戒斷菸癮... 婚後一週的某天晚上,基於某個我已經忘記的原因,興起了戒菸的念頭。我告訴身旁將入夢鄉的另一半:「老婆,再抽一根菸,明天開始戒菸。」。隔天一早,把剩的幾根菸銷毁,開始我的戒斷之路。自那時起,我就沒在家裡抽過菸。 印象中,戒菸過程曾出現的「徵狀」有: * 流口水,口水流不停。有一段時間我吃口香糖轉移注意力。 * 脾氣變差,變得暴躁,沒耐性。這點老婆深有同感。 * 注意力難集中,常常問自己這樣自找苦吃值得嗎?。 * 原本覺得好吃的美食,變得食之無味 一開始就決定不靠「外力」戒斷,所以自始至終沒用過戒菸貼片或假菸之類的輔具,
3 min read
[003] ViEmu Introduction, Part 1
Visual Studio

[003] ViEmu Introduction, Part 1

ViEmu [http://bit.ly/1OEHXve] 是一個美金 $99 元 [http://bit.ly/1OEHUj7]的 Visual Studio (2008/2010/2012/2013/2015) 外掛,它讓你在 Visual Studio 環境下施展 Vim [http://bit.ly/1OEHZn2] 技法。 雖然同類型的產品中有免費而且開源的 VsVim [http://bit.ly/1OEI6iq],但嘗試了幾次,發覺當掉的機率太大就放棄了。之所以偏愛 ViEmu,是因為重要功能的支援度高,穩定性也很好。雖然有一段時間跟不上 Visual Studio 開發腳步,今年似乎更新方面做了調整,VS 2015
2 min read
[002] 這樣的人應避免與之爭論

[002] 這樣的人應避免與之爭論

> 「什麼?你是寫程式的,竟然不知道xxx...」 遇到「這種的」,最好趕快結束對話,能跑多遠就跑多遠,千萬別回頭... — sam (@mhtx) November 24, 2014 [https://twitter.com/mhtx/status/536829237727338496] 上面這推是一年多前發的,當時是有感而發。一年後的今天,讀到李笑來這篇〈什麼是更好的知識 [http://bit.ly/1TvuVyh]〉,完全打中我當時的心境: > 在生活中,你若是遇到誰帶著得意或者鄙視,脫口而出類似以下句子的人,你最好趁早避開他們…… * 「你連這都不知道啊?!」 * 「你才知道這個啊!」 * 「我們早就不玩這個了!」 他們是那種典型的「專刷存在感」的傢伙。這種人非常在意也只在意他們當前的狀態,他們甚至為了抬高自己的「形象」或者「地位」不惜踐踏他人。 確實啊,這樣的話沒半點意義,只為了讓說的人「
2 min read
[001] 持續寫

[001] 持續寫

寫在前頭的懺悔 以前我是看到簡體字就自動跳開,一分鐘也不想多待。但看了李笑來的文章與書(《把時間當做朋友 [http://bit.ly/1OLf7U5] 》),如獲至寶,也驅策自己努力學習,期待有朝一日獲得「重生」。以前我微信裝都懶得裝,後來發現原來上頭有那麼多精采的「乾貨」供人免費咀嚼,等於替自己開了另一扇門,WeChat 成為我每天必用的 App。 閱讀「缺字」的文章,「簡轉繁」的工具是必須品。我目前用二個: * 新同文堂(Chrome extension) [https://chrome.google.com/webstore/detail/new-tong-wen-tang/ldmgbgaoglmaiblpnphffibpbfchjaeg?hl=zh-TW] * 繁文堂(iOS) [http://apple.co/1ICgic2] 一天一篇文章的啟發 對岸牛人 [http://bit.
2 min read
Driving Technical Change is Hard

Driving Technical Change is Hard

很久以前,我在一個約莫十人的公司裡任職,當時我是「校長兼撞鐘」,軟體工程師兼 MIS。親眼目睹同仁使用五位數密碼(英文名開頭大寫)或手機號碼加公司名當做電子郵件(Gmail)的登入密碼,而且沒有啟用「兩階段驗證」 [https://en.wikipedia.org/wiki/Two-factor_authentication]。 即便苦口婆心,再三提醒,基於懶惰乃人之天性,加上沒有立即的危險,我相信還是有人只使用「容易記也容易被猜到的密碼」做為重要服務的唯一認證機制。為避免遇到毁滅性的事件,我在內部內議中提出使用 1Password(或類似工具)管理密碼的想法,藉此提高公司 IT 安全性。 沒想到,不,應該說是早想到會遇到阻力。阻力來自一位對任何事都有強烈地自我主張的前輩,他主張這樣這樣的工具沒人會用(儘管他根本沒用過),他的理由我記得很清楚: > 我問了身邊的朋友,大家都說這樣的工具他們不會想用,因為:記不住那組 Master Password... 或許是我說得不夠清楚,
2 min read
JUCE Diary #4: Pricing Change in v4
JUCE

JUCE Diary #4: Pricing Change in v4

去年(2014)底,JUCE 被 ROLI 買了,當時 JUCE 的版本是 v3。今年十一月,伴隨 JUCE v4 的推出,其售價策略有所調整,整體來說,變貴了,而且貴很多。 價格的變化出乎許多人意料,這個討論串 [http://www.juce.com/forum/topic/new-licensing-options] 可看出眾人有多困惑。 究竟差多少呢?以開發跨平台(Desktop, Android, iOS)的需求來說,價格差了三倍以上! 調整前的售價,不分平台,選擇一次付清而且支援多產品(最貴的方案): * $699 英鎊(約 $1055 美金,$33000 台幣) 即使是不到五人的小公司,這樣的價格不會猶豫。
2 min read
Slack @here
Slack

Slack @here

公司內部的溝通以 Slack 為主,大小事都用 Slack 講。Slack 功能多不勝數,在[這篇文章](Making Slack work for you) 發現了 @here [https://slack.zendesk.com/hc/en-us/articles/202009646-Making-announcements] 這個好用的功能。 適用的情境有: * 有個問題想問目前可以回應的同事 * 限時好康分享給正在線上的人,不打擾離線的人 簡單講,就是離線的人不會收到通知,進而降低資訊干擾。
1 min read
回不來了

回不來了

一家提供資料備份服務的公司,其服務合約上載明了「刪除」的資料僅保留六十天,超過時間的資料即被銷毁,「無法用任何方式還原」。 即使合約清楚載明,也對顧客再三提醒。但就像看電影總有人「忘了」關手機,總會有那麼一天,遇到那麼一個人,要求找回六十一天前刪除的重要資料。 「拜託你,那個資料對我很重要,請務必幫我還原...」 「才差一天而已,真得無法還原嗎?你是不是不願意幫我?」 「這對你們來說應該輕而易舉吧?資料都在你們的伺服器上啊!」 不,資料不在我們的伺服器了,它不見了,找不會來了。不管你再怎麼哭喊,不見就是不見了。 就像你習慣遲到,明明約好中午十二點,偏要在三十分鐘後才現身。不見就是不見了,不管你再怎麼哭喊,回不來了...
1 min read
不爽 Linux 頭兒的浪潮又來了
Linux

不爽 Linux 頭兒的浪潮又來了

不爽 Linux 頭 Linus Torvalds 的聲音持續存在,時大時小。最近又起了另一波,主因來自 Linus 這篇回應 [http://lkml.iu.edu/hypermail/linux/kernel/1510.3/02866.html] ,其中用了許多強烈的字眼幹噍下面這段程式碼: if (overflow_usub(mtu, hlen + sizeof(struct frag_hdr), &mtu) || mtu <= 7) goto fail_toobig; L 最大的不爽在於 overflow_usub 需要特別版本的編譯器才有支援,而用了它以後,程式碼變得更醜了!他舉了以下據他的說法是更易讀、易懂,簡單明瞭的對照組:
2 min read
Wistia 站在 YouTube 的肩膀上
Google

Wistia 站在 YouTube 的肩膀上

這篇文章 [http://wistia.com/blog/building-in-the-shadow]解釋為什麼當初多數人覺得他們瘋了才會進入由 YouTube 壟斷的市場,肖想分一杯羹。九年了,事實證明他們活得很好。 > What looks like competition often amounts to companies working to grow the market size, so that there's greater abundance, more wealth, and increased opportunity for everyone. 抱持「把餅做大而不是互相搶餅吃」的想法,再大的巨人也不用怕。
1 min read
說 FogBugz 輸了?我看你是瘋了!
FogCreek

說 FogBugz 輸了?我看你是瘋了!

最近有篇文章 [http://movingfulcrum.com/why-fogbugz-lost-to-jira/]列出 FogBugz [http://www.fogcreek.com/fogbugz/] 輸給 JIRA [https://www.atlassian.com/software/jira/] 的原因。然後在 HN 引發不少討論 [https://news.ycombinator.com/item?id=10313489],Joel 本人也回應 [https://news.ycombinator.com/item?id=10315524]了。 公司成立之初挑選工具時,JIRA 跟 FogBugz 我都試過。雖然 JIRA 的入門款價格頗吸引人,最終我還是挑了
1 min read
想要一本微軟的表皮書
Microsoft

想要一本微軟的表皮書

Wired 這篇〈專訪〉 [http://www.wired.com/2015/10/surface-book-behind-the-scenes/] 寫的不錯。去年開始覺得微軟有種大師兄回歸 [https://twitter.com/mhtx/status/639798180880650240] 的感覺,一連串的改變,不管是公司文化還是產品開發,都令人期待。 我最喜歡文章中的這一段: > No one outside of Microsoft employees and the occasional privileged family member saw that the Book’s screen could detach until about a month before launch.
1 min read
一些有趣的 C++ 數據
C++

一些有趣的 C++ 數據

愛用 Java 開發各種工具軟體,而且最近很有事 [https://www.jetbrains.com/toolbox/]的 JetBrains [https://www.jetbrains.com/] 在今年七月底(我算後知後覺)公佈了一項 C++ 調查數據,而且還製作了精美的 資訊圖表(Infographic) [http://blog.jetbrains.com/clion/2015/07/infographics-cpp-facts-before-clion/]。 幾項數據頗感有趣: 1. 世界上有四百四十多萬個 C++ 開發人員。(趨勢向上或向下呢?) 2. 我們跟 Python 人口一樣多! 3. 原來新加坡的 C++ 開發人員比其他語言強勢! 4. 銀行與金融業是 C++ 老窩 5.
1 min read