i'm sam

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

[106] const 變數有助理解程式碼並協助編譯器優化
C++

[106] const 變數有助理解程式碼並協助編譯器優化

前一篇 [https://samtsai.org/2016/07/22/105-single-exit-point-or-not/]討論函數撰寫風格,這一篇談 const 區域變數(local variable)的使用習慣。先把範例碼列出來: int CalcLineCountOfLabel(const Label& label) { const auto label_total_width = label.getFont().getStringWidth(label.getText()); const auto bound_width = label.getLocalBounds().getWidth(); int line_count = 1; if (label_total_width > bound_width)
3 min read
[105] Single Exit Point...or Not
Programming

[105] Single Exit Point...or Not

底下兩個函數功能完全一樣,皆是計算一 UI 元件(Label)在給定的範圍(Bounds)內,總共需要多少行數。本文的重點不在函數的功能,而是要討論兩種 不同的寫碼風格。小細節也有大學問,不要輕忽。 ① 此版本使用一個暫時變數 line_count 存放計算結果,函數回傳值即為該變數的值。特別留意這個版本的函數只有一個 return statement。 int CalcLineCountOfLabel(const Label& label) { const auto label_total_width = label.getFont().getStringWidth(label.getText()); const auto bound_width = label.getLocalBounds().getWidth(); int line_count = 1; if
2 min read
[104] 「輔大心理系事件清單」集眾人力
WorkFlowy

[104] 「輔大心理系事件清單」集眾人力

先前分享的「輔大心理系事件整理清單」 [http://bit.ly/1PWlT0k]由網友 [https://www.facebook.com/leelee688]以及 「CIA Agent」 [https://goo.gl/d6uxmV] 分享後,似乎開始有人用了。目前為止累積的清單數(項目)為 417 條(使用 WFcount [http://snip.ly/supof] 計算而得): 由於原清單故意設定成唯讀,只有我能增修,比較容易控制。不過,「輔大性侵」衍生的相關討論似乎越來越多,一人之力能做的有限,因此我在原清單之下另開了一個 任何人都能修改的共享清單 [https://workflowy.com/s/qvddRYE2Kw],讓網友提供資料。 **「集眾人力」**清單的使用方式很簡單,
2 min read
[103] 秒速客服:利用 WorkFlowy 做「客服回應」資料庫—別浪費付出的心血
WorkFlowy

[103] 秒速客服:利用 WorkFlowy 做「客服回應」資料庫—別浪費付出的心血

本文由《Do Way, Way More In WorkFlowy》 [https://gumroad.com/a/353383539]電子書作者 Frank Degenaar 撰寫並發佈於 WorkFlowy 官方部落格 [https://blog.workflowy.com/2016/06/30/cs-database/]。以下為 Sam Tsai [https://samtsai.org/] 中譯。 -------------------------------------------------------------------------------- 溫馨提醒 怕忘了提醒你,先寫在前面。看完本文後想要申請 WorkFlowy,務必使用這個連結,讓你的容量加倍: * http://bit.ly/2e20DZh 正文開始 我很快,但有人比我更快: > 「老爸,
5 min read
[102] JUCE Diary #12 : 答客問:InterprocessConnectionServer
JUCE

[102] JUCE Diary #12 : 答客問:InterprocessConnectionServer

網友在這篇文章 [https://samtsai.org/2016/05/07/066-juce-diary-11-inter-process-communication/]問到 InterprocessConnectionServer 與 InterprocessConnection 的使用方式。本文以一簡易程式來說明如何使用這兩個類別。範例程式做的事情如下: 1. 啟動一個 Server 程式監聽網路 Port 52713 2. 啟動一個 Client 程式連接到本機(localhost) Port 52713 3. 連線成功後,Client 會傳送資料到 Server 4. Server 收到資料進行處理 Client 與 Server 皆為 JUCE Console Project,文章內的程式碼皆為片段,完整的程式碼請見文末的 Gist。由於只是示範,故省略許多錯誤判斷,請多留意。 Server-side:
4 min read
[101] 「輔大心理系事件清單」應用技
輔大

[101] 「輔大心理系事件清單」應用技

熱心人士 [https://www.facebook.com/leelee688?fref=nf]整理了**《民陣》於實體或網路參與輔大心理系事件的相關人員名單 [http://bit.ly/294mTgE],很實用。先前我整理的清單 [https://samtsai.org/2016/06/15/88-workflowy-fju-events/]一直有在更新,不過較少著墨在「人物」(誰是誰),而是著重在 誰在什麼時候說了什麼及其連結(不含內容)**。有了這份名單,「人物」那欄會豐富很多。 使用 WorkFlowy 的好處是利用標籤(Tag)搜尋快速找到想要的資料。在此舉幾個應用: ① 張娟芬引起我對該事件的興趣,那麼「張娟芬發表了哪些文章呢?」,點選此連結 [https://workflowy.com/s/iUJZEQZsa8#/?q=
2 min read
[099] 文章內含動態 GIF 圖的考量
blogging

[099] 文章內含動態 GIF 圖的考量

上一篇探討部落格圖片後製的文章 [https://samtsai.org/2016/06/28/098-compress-image-for-blog-post/] ,有網友於 Medium 分身處提到國外多以採用動態 GIF 來展示說明步驟 [http://bit.ly/293zkc9]。其實我也喜歡使用 [https://samtsai.org/2016/02/16/044-licecap-quicktime-player-bravo/]動態 GIF(GIF89a)來呈現螢幕上的真實演出。有些情境,「動態展示」有時確實比死板板的「靜態圖片」效果更好(蝴蝶球對上快速直球?),但是否適用於所有情境,答案當然是否定的。 雖然好用,但後來想到動態 GIF 有些潛在缺點,於是回覆 [http://bit.ly/293zLU1]如下: 1. 太長的 GIF
4 min read
[098] 愛惜你的讀者,請用力壓縮圖片
blogging

[098] 愛惜你的讀者,請用力壓縮圖片

前言 圖文並茂的文章容易吸引讀者,恰到好處的截圖有助理解。從事網路書寫,最要緊的是照顧好讀者,盡職的部落客除了將作品最好的一面呈現給讀者,也要讓讀者以最低**「成本」 取得你的作品。以網路閱讀來說,有效壓低成本的方法之一是減少文章的資料量,縮短載入「時間」**。 本文即針對圖片下手,除了幫圖片減肥,還要選對檔案格式。 用力壓圖 為了縮短頁面載入時間(降低閱讀成本),本格幾乎每一張圖片都事先壓縮才上傳到伺服器(其實是 Dropbox),目前我常用的服務是 TinyPNG [https://tinypng.com/],是個免費的線上服務。 TinyPNG 是我用過壓縮效率最好的工具。以這篇文章 [https://samtsai.org/2016/06/24/096-chid-for-whql-driver-distribution/] 為例,該文的每一張圖都經過壓縮: 84% 的壓縮比,瘦了 2MB,相當驚人的比例啊。PNG 用的是 Lossless compression [https:
5 min read
[097] WorkFlowy:蟲洞
WorkFlowy

[097] WorkFlowy:蟲洞

溫馨提醒 怕忘了提醒你,先寫在前面。看完本文後想要申請 WorkFlowy,務必使用這個連結,讓你的容量加倍: * http://bit.ly/2dgvnn7 正文開始 在這本《Do way, way more in WorkFlowy》 [https://gumroad.com/a/353383539] 電子書學到作者稱之為**「蟲洞( Worm Hole)」的使用技。此技巧只用了 WorkFlowy 的「標籤(Tag)」**過濾及些許巧思即可達成。 首先,在 WorkFlowy 首頁(主要清單處)建立一個清單,該清單名稱由數個標籤組成。為了使用上的便利,建議各標籤以符號相隔,我用的是「|」,如下圖: 圖中紅色箭頭所指的那些標籤(@TODAY, @wip, #workflowy,
3 min read
[096] 增加 CHID 讓裝置驅動程式可透過 Windows Update 安裝
Windows

[096] 增加 CHID 讓裝置驅動程式可透過 Windows Update 安裝

Update on 2017-03-16: Microsoft 慢慢將系統轉移至新的 Microsoft Hardware Dev Center [https://developer.microsoft.com/en-us/windows/hardware] ,CHID「上架」流程有所改變,介面設計變好了,請參照新文章 [https://samtsai.org/2017/04/19/141-microsoft-hardware-dev-center-zhong-jia-ru-chid-bing-fa-bu-zhi-windows-update/] 。 -------------------------------------------------------------------------------- 前陣子有個 Windows 驅動程式的開發需求: > 裝置驅動程式必須能讓終端電腦透過 Windows Update 自動安裝與更新。 為滿足此需求必須具備以下條件: 1. 驅動程式需通過 Windows HLK(名字常換,別理會) [https://d
4 min read
[095] WorkFlowy:清單文字格式簡單卻有妙用
WorkFlowy

[095] WorkFlowy:清單文字格式簡單卻有妙用

溫馨提醒 怕忘了提醒你,先寫在前面。看完本文後想要申請 WorkFlowy,務必使用這個連結,讓你的容量加倍: * http://bit.ly/2dywEUr 正文開始 剛開始使用 WorkFlowy 會誤以為清單(List)的字只是純文字,實則不然。透過鍵盤快速鍵可使用暗藏的文字格式。是的,鍵盤限定,歡迎加入鍵盤控行列。 下圖為 WorkFlowy iOS app 截圖,透過粗體,一眼看出當前著重的項目: 清單文字可以有格式,記事區(Note)當然也可以。而且可以選取部分文字,粗體、斜體、底線混搭,就像簡易的文書處理器。 文字格式快速鍵 WorkFlowy 支援的文字格式有三個:粗體、斜體、底線。快速鍵用的是全宇宙統一的標準: 粗體 * Mac: ⌘ + b * Windows: Ctrl
2 min read
[094] 學點 Markdown 語法做事多點效率
Medium

[094] 學點 Markdown 語法做事多點效率

今天在 Medium 遇到一案例,感慨這年頭不學點 Markdown 語法不僅退流行,還有可能碰壁,做事沒效率。 Medium 的編輯介面力求簡潔,不斷使用「消去法」,剩下的 UI 元素個個是精華。不過,我發現有些設計對於不懂 Markdown 語法的使用者可能造成使用上的不便。以「項目符號」為例,編輯介面找不到該選項。欲建立「項目符號」必須鍵入**「* 空格」或「- 空格」**: **「* 空格」或「- 空格」**的操作方式出自 Markdown,也就是說,Medium 編輯器介面缺少的功能,強迫由 Markdown 補足。對於不懂 Markdown 語法的使用者可能需要摸索一陣才能發現故中奧妙,甚至得出原來 Medium 不支援「項目符號」的錯誤結論。 Markdown 語法近年在某些圈圈漸成主流,
1 min read
[093] 設定 Medium Publication 使用自有網域(搭配 CloudFlare)
Medium

[093] 設定 Medium Publication 使用自有網域(搭配 CloudFlare)

更新:Medium 不再提供免費設定自有網域 [https://help.medium.com/hc/en-us/articles/115003053487-Custom-Domain-FAQ] 的服務了。據說自有網域要價 $75 鎂 [https://medium.com/benjamin-dada/medium-now-charges-75-to-set-up-a-custom-domain-54ab54117fd4] 。 前言 最近在推 WorkFlowy [https://samtsai.org/tag/workflowy/],加上 Medium [https://medium.com] 越來越有趣,便開始把本格文章同步發表到 Medium [https://medium.com/@mhtx]。文章在本格 [https://samtsai.org/] 發佈後,利用 IFTTT [https://ifttt.com]
5 min read
[092] WorkFlowy:快速查找歷史軌跡
WorkFlowy

[092] WorkFlowy:快速查找歷史軌跡

溫馨提醒 怕忘了提醒你,先寫在前面。看完本文後想要申請 WorkFlowy,務必使用這個連結,讓你的容量加倍: * http://bit.ly/2dgvnn7 正文開始 截至目前為止,我的 WorkFlowy 清單數超過五千,要在這麼多資料中查找特定資訊,肯定不容易,對吧?其實,可以很簡單。只要活用 WorkFlowy 的功能與特色,加上些許「巧思」,即能在短時間內找到想要的東西。今天要介紹的技巧結合瀏覽器的書籤,以及 WorkFlowy **「凡事皆有網址」**的特色。 先前提到我使用 WorkFlowy 進行寫作 [http://snip.ly/6ute9],有時靈感一來記到 WorkFlowy 裡後就跳去做其他事。告一段落後,想到剛剛好像寫了什麼(真的,人老了記不了那麼多),這時候怎麼辦呢? 搜尋運算子 首先,WorkFlowy
2 min read
[091] WorkFlowy 也能用來「抽籤」?
WorkFlowy

[091] WorkFlowy 也能用來「抽籤」?

本文由《Do Way, Way More In WorkFlowy》 [https://gumroad.com/a/353383539]電子書作者 Frank Degenaar 撰寫並發佈於 WorkFlowy 官方部落格,由 Sam Tsai [https://samtsai.org/] 中譯發佈於此。 前言 怕忘了提醒你,所以寫在前面。看完本文後想要申請 WorkFlowy,務必使用這個連結,讓你的容量加倍: * http://bit.ly/2dywEUr 正文開始 雖然網路社交盛行,面對面的交流依然不可或缺。多人聚會免不了玩一下**「抽籤遊戲」。尷尬的是,數位化時代,紙筆不再垂手可得。怎樣才能玩得盡興又節約能源**? 沒紙無筆不要緊,人手一支智慧型手機,還有秘密武器—WorkFlowy。只稍幾分鐘前置作業,
3 min read
[090] SOFT & SHARE 之友 WorkFlowy 推薦碼集合
WorkFlowy Featured

[090] SOFT & SHARE 之友 WorkFlowy 推薦碼集合

重點是這個共享清單連結(後面為說明): * http://bit.ly/1XsMB2L 溫馨提醒 我怕忘了提醒你,所以先寫在前面。看完本文後想要申請 WorkFlowy,務必使用這個連結,讓你的容量加倍: * http://bit.ly/2dywEUr 前言 前陣子開始推一個名為 WorkFlowy(Make lists, not war.) 的好用工具(因為功用太多,故不說死。)WorkFlowy 的商業模式為**「免費加入,有些限制,終身可用。」**免費版有每月 250 個清單的限制,可付費(每月 $5 鎂)升級成無限制,或者推薦新血加入,對方可讓清單加倍,推薦人可得額外 250 個。即所謂「病毒式行銷」。 先前在 SOFT &
4 min read
[089] WorkFlowy:標籤(Tag)的基本用法
WorkFlowy

[089] WorkFlowy:標籤(Tag)的基本用法

前言 我怕忘了提醒你,所以先寫在前面。看完本文後想要申請 WorkFlowy,務必使用這個連結,讓你的容量加倍: * https://workflowy.com/invite/150462f0.emlx WorkFlowy [https://workflowy.com/invite/150462f0.emlx] 的**「標籤(Tag)」**是我見過最直覺,而且實用性極高的設計。許多工具的標籤功能如同虛設,可有可無。WorkFlowy [https://workflowy.com/invite/22f70545.lnx] 的標籤卻是提昇生產力的必備良方。不相信?那就繼續看下去。 只要有 #或 @ 字字都能成標籤 WorkFlowy 裡,可以輸入文字的地方,只要在 #或 @ 接著輸入中英數字(符號例外),即可變身成為**「標籤(Tag)
3 min read
[088] WorkFlowy:輔大心理系事件群整理
WorkFlowy

[088] WorkFlowy:輔大心理系事件群整理

重點是這個**「輔大心理系事件群」**評論清單連結,後面是使用說明: http://bit.ly/1PWlT0k 上個禮拜開始對「輔大心理系事件群」產生興趣,四處「採集」資料,試著以好幾個圈圈外的人來理解事情的來龍去脈。雖然先前由臉書或其他來源知道「輔大性侵事件」 [http://bit.ly/1U8lB89],卻從未深入了解。直到讀了張娟芬的〈當尊敬已成往事——寫給夏林清、何東洪〉 [http://bit.ly/1UMt9HM]才開始認真關注這些則事件。 其實我不知道張娟芬是誰(現在也是,並故意維持這個狀態),只是恰好讀了那篇文章,而該篇文章的理路清楚,讓我對「輔大性侵事件」引發的後續諸多事件產生濃濃的興趣。於是開始挖掘不同人對於同一件事的「評論」... 然後看到陳三郎的這篇整理文章 [http://bit.ly/1U8mQ7x],突然想到我正在學習並推廣的工具 WorkFlowy [http://bit.
5 min read
[087] 中文沒有斜體(續)
font

[087] 中文沒有斜體(續)

前一篇文章 [https://samtsai.org/2016/06/08/086-no-italic-for-chinese-text/] 聊到為什麼我會認為中文沒有斜體,而且不打算在中文使用斜體。沒想專家 [https://medium.com/@bobtung](後面會介紹專家何人)路過提供許多 有用的觀點 [http://bit.ly/28nZzTa],本文嘗試實作專家提供的技巧,看看效果如何。截錄如下: > ...底線在中文裡就是私名號啊,現在只有教科書在用,但上次遇到住在德國的長輩告訴我,私名號對外國人來說很重要,可以明確斷出人名地名。 現狀來看,英文書中最常用斜體的是書名(芝加哥格式),換成中文書名就會用楷體,但是通常會加上《》。 強調單詞時,不管是真的粗宋體/明體,還是Faux Bold假粗體,都不能明白凸顯出來,還是換成「黑體加重」比較好。寫作時加上引號「」就像英文加quotation mark一樣,但就是遇到連續強調時會影響閱讀。 我在處理電子書時會用&
3 min read
[085] 為什麼使用 Buffer?
Buffer

[085] 為什麼使用 Buffer?

在 Soft & Share [https://www.facebook.com/softdevtools] 群裡聊到我使用 Buffer [https://buffer.com/] 來管理各個社群平台的發文,乾脆簡單介紹 Buffer 這個服務。 記得我是從堆坑達人 Guy Kawasaki [http://guykawasaki.com/] 那邊得知 Buffer [https://buffer.com/] 這項服務,除了既有的蘋果光環外,他在社群經營這一塊似乎做得不錯,再加上有新玩意兒不用看看心裡不踏實,就用了。不得了,一試成主顧,戒不掉。 Buffer 是什麼碗糕? > Buffer is the best way to drive traffic, increase fan
4 min read
[084] FogBugz 簡介
FogBugz

[084] FogBugz 簡介

敝公司使用 FogBugz [https://www.fogcreek.com/fogbugz/] 來做專案管理與臭蟲追蹤(Issue Tracking)。每月 $20 鎂的基本功能足以應付日常所需(Wiki [http://www.fogcreek.com/fogbugz/features/integrated-wiki/] and EBS [http://www.fogcreek.com/fogbugz/features/project-management/] 功能需額外付費,不過暫時用不到)。FogBugz 也提供 On Site 版本,讓你安裝在自家伺服器。 NoBudget-friendly FogBugz 是一個 Startup-friendly(NoBudget-friendly) 的服務,對於二人以下的團隊完全免費,而且享有 FogBugz 完整功能。對的!不用付半毛錢就能擁有
3 min read
[083] 我使用的 Ghost 佈景主題(免費)
Ghost

[083] 我使用的 Ghost 佈景主題(免費)

兩年多前 [https://samtsai.org/2016/05/27/076-2-years-of-ghost-pro/]搭了這個格子,第 101 次嘗試寫點東西,替五十歲的自己鋪路。用 Hover [https://www.hover.com/] 定了 samtsai.org 域名,剛好 Ghost 這個新興部落格平台起來,便用了。從原本的草稿數量遠多於發佈的文章(寫到一半沒力或發覺題材沒意思),到目前漸漸打平,也算是有點進步。 挑佈景 最先是用 Ghost 裡免費的佈景,覺得不合拍,便花了些時間挑選合適本格調性的佈景主題(theme),試用了不少組,最後落腳由夫妻檔組成的 golem.io [http://golem.io/] 家免費的 Typesome [http://typesome.golem.
2 min read
[082] WorkFlowy:Siri 與 iOS/Mac Reminder 整合
WorkFlowy

[082] WorkFlowy:Siri 與 iOS/Mac Reminder 整合

前言 我怕忘了提醒你,所以先寫在前面。看完本文後想要申請 WorkFlowy,務必使用這個連結,讓你的容量加倍: * http://bit.ly/2dywEUr 正文開始。 雖然 WorkFlowy [https://workflowy.com/invite/150462f0.emlx] 有免費的 iOS [https://itunes.apple.com/us/app/workflowy/id551139514?mt=8] 與 Android [https://play.google.com/store/apps/details?id=com.workflowy.android] app 可用,但其實 WorkFlowy 網站即為
2 min read