i'm sam

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

[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
LINE 是假的,專注才是真的
career

LINE 是假的,專注才是真的

底下一位小朋友,老愛在上班時間 LINE 來 LINE 去,假裝專心上班卻一點不專心。寫了一封未指名的公開信,希望他能即時醒悟。 -------------------------------------------------------------------------------- 專注的時間越長,能完成的事情越多。有深度的任務,需要長時間專注處理。我需要你們把心專注在公司的專案,分心是因為不得已,不是「我願意」。 * 因為 LINE,忘了處理那件事,漏掉那個... * 因為上班的關係,無法立即回覆 LINE... 以一個僱員的角色來看,各位覺得哪一個比較合理? 我不相信有人能夠一邊 LINE,一邊「專心上班」。別再自欺欺人認為你做得到,停止自我催眠,花點時間反省。 為了降低分心因子,你有幾件事可以做: * 讓對方知道上班時間你沒辦法隨時注意訊息,更難即時回應他。 * 定好幾個特定時段,非緊急的事最好在這時間段內聯絡。例如:12pm ~ 1pm,下午四點。 我知道長時間保持專注不是輕鬆簡單的事,偶爾放鬆做點別的事無可厚非,也是好事。重點是,你要拿捏好分
2 min read
JUCE Diary #2: Introjucer
Programming

JUCE Diary #2: Introjucer

為了解決每次新增專案都要面對的煩人鎖事,JUCE 提供一個工具叫 Introjucer。(我猜這是 Introduce + JUCE 的結合,頗具巧思)。 Introjucer [http://www.juce.com/learn/introjucer] 是所有 JUCE 專案的起手式,專案建置都靠它。主要的功能有: * 產生並管理主流開發 IDE(Visual Studio, Xcode, etc.)適用的專案檔 * 產生適合翻譯的檔案 * 使用者介面設計工具 Introjucer [http://www.juce.com/learn/introjucer] 的功能看似陽春但其實相當精實,只做該做的事,其他工作如編譯原始碼,就交由各平台主流 IDE。 我很認同 JUCE 創作者的哲學: > Don't repeat
1 min read
VS Diary #1: Child Process Debugging
Visual Studio

VS Diary #1: Child Process Debugging

我的專案由數支程式(.exe)組成,其中一支程式甲,只能由程式乙執行並給予適當的參數。甲有隻難纏的蟲,要活抓,得下功夫... 由於甲只聽命於乙,我必須在甲執行後用 Visual Studio or WinDbg 撲上去(Attach to Process)才能開始偵錯。這樣不僅效率低,如果臭蟲在程式一開始執行時才會出現,有可能在我撲上去前蟲就「跑」掉了。如果能「事先擺好陷阱」,待 Process 出現自動撲上去,該有多好! 有一好用的 Visual Studio 專門做這活兒-Microsoft Child Process Debugging Power Tool。可免費到這裡下載: * https://visualstudiogallery.msdn.microsoft.com/a1141bff-463f-465f-9b6d-d29b7b503d7a 安裝完成後,到選單 Debug
2 min read