創新傳播法則

原名為,創新擴散理論(Diffusion of Innovation Theory),第一次是在 Simon Sinek 在 TED 的演講中聽到這個理論的。

註: 約於影片中的 00:11:00 秒附近。

這項理論揭示了幾個要點:

要點1: 市場上可能存在的比例分佈

2.5% 是發明家
13.5% 是早期使用者
34% 是早期的大多數
34% 是晚期的大多數
16% 是落後者

要點2: 大眾市場接受新觀念的關鍵點
15% ~ 18% 是大眾市場普及接受的關鍵比例

維基百科: https://en.wikipedia.org/wiki/Diffusion_of_innovations
理論來源: Everett Rogers 於 1962 年發表的 Diffusion of Innovations 一書中提出

encouragement and support essay huey lewis tulalip casino how to make free money uk rise in erectile dysfunction short reflective essay we make too much money for medicaid what now how to get private loans forgiven jayesh mehta forex trading can i take rapaflo and viagra richmond valley council casino transfer student essay buy cheapest generic viagra online dealers choice poker games eecu auto loan payment cialis pills over the counter short essay on beauty of nature history of apartheid in south africa essay business loan articles hamlet act 1 essay questions navient loan login how much money does a vet make per week analysis of an issue sample essays capital ways to make money poker with friends ios premier casino events inc play big vegas slots free farm loan calculator 40 years saigon casino hotel essay about homosexuality best bet orange park have slot machines

效能瓶頸下的選擇傾向

約是在 2014 年前後,我想通了一件事,但一直遲未將想法化為文字。今天終於静下心來作這件事了,我想要說明的是,為何在某些效能瓶頸的關頭,我會主張作深度分析優化,而非立即性擴充資源緩解眼前的問題。

舉電商網站經營為例,資料量主要有會員、訂單、商品等資料,大致可初估資料的複雜度以 n^3 的速度在膨脹,因此所需的運算需求量也以這速度跟著成長。這可用下方這示意圖來表示:

View post on imgur.com

//s.imgur.com/min/embed.js

其中X軸為資料量,Y軸為硬體運算量,而運算資源需求則是原點連往A、B、C三點的這條曲線。

當網站逐漸成長,終於來到第一個效能瓶頸點(A) 時,網站又慢又卡、硬體滿載,並已危及正常運作的時候。我們有2個方向的選擇:

《方案一》直接擴充硬體。這可能馬上就解決了(假設是 1 天),相對而言較快速而簡單。

《方案二》分析軟體程式,找出並修正潛在的程式瓶頸。這工程相對耗時長,可能要耗上不少時間(假設是 5-14天),也會有相應的開發成本支出。

因為網站瓶頸會影響營業收入,所以在規避損失的心態下[1],多數人會選擇 《方案一》的路線,直接將資源從 L1 提升到 L2 ,以盡快脫離眼前損失的狀態。接下來發展的狀況大致如下:

1. 很快就擱置了改善軟體效率的念頭 
    A. 因為眼前壓力解除了 
    B. 有其他更重要的事 ( 應付眼前業務、新功能開發、...)·
    C. 非受迫性的額外支出 ( 需要另外撥出預算跟時間 )  

2. 資料量隨時間持續成長,然後又遇到新的瓶頸點 

3. 在瓶頸點再度面臨兩個選擇,但基於 
    A. 業務量較先前更大,相同時間的代價損失並上一次更高
    B. 營運壓力更大,工作人員比先前更加心有餘而力不足 
    C. 先規避眼前立即的損失再說

4. 再度選擇《方案一》,然後重複回到 1. 

最後反覆重覆上述流程,直到獲利跟時間餘裕都被最後吃光,再無法越過某個天花板為止。

那麼,若是一開始在 A 點時,選擇《方案二》的路線會是如何?

從圖中簡單的估計一下 A-P-Q-R 的路線,(假設資料量以每個月 1W 的速度成長),雖然一開始多花了 15 天的時間,但遇到資源關卡 L2 的時間(瓶頸點R) 可能約是 5.5 個月之後。相較之下, A-B-C 的路線,一開始只花 1 天,但可能約 2.5 個月就抵達資源關卡 L2 (瓶頸點B),然後不到 2.5 個月,就抵達資源關卡 L3 (瓶頸點C)。

於是,同樣過了 6 個月的時間,面對相同的資料量,兩者不管是在資源耗用度,或是在時間餘裕度上,都形成了此消彼長的差距。而這差異,其實早在第一個瓶頸點 (A) 當下的選擇就決定了。

最早我以為,有很大的可能,會在 A-B-C 的過程中,轉變另一個選擇。但是,當我不只一次遇到,已經發展到 C 狀態的苦主們,在討論解法時仍不死心的一再追問說

曾經遇過的 firefox 與 chrome 的不穩定問題

記得很久之前,(註:2014-09-02),有個問題一直很困擾我。就是我的筆電,只要開機一段時間,就會在某個時間點就會突然產生 CPU 飆高,風扇一直狂轉的狀況。即使把所有應用程式關閉,仍沒辦法穩定下來,直到我重啟 Xorg 視窗系統,才會恢復正常。這個問題,常常無預警的中斷我的電腦操作,搞得我很痛苦。

我試圖找出問題的根源在那裡,大致將可能的嫌疑犯縮小到 Xorg,Firefox,Chrome,qtile(Window Manager) 這4個主程式。不過,一直沒辦法精確的 reproduce 問題的發生。當時,正值 firefox 跟 chrome 在競爭效能之際,我看 top 的資料,都是 firefox 用的資源比 chrome 還多,所以有好一段時間,以為罪魁禍首是 firefox 。

後來,我開始接觸並上手 ganglia/graphite 這類監測工具,有天我想到,之前都是在監看遠端主機的數據,我何不運用這工具直接觀測我自己每天在用的NB呢?! 於是我開始撰寫幾個抓 cputime/memory 的script 跟設定,我直到我後來取得下面這張關鍵數據圖之後,我才明白,原來我的筆電上的問題源頭是 chrome。

View post on imgur.com

//s.imgur.com/min/embed.js

從上圖中可以觀察到,Xorg 跟 chrome 的 cputime 在執行到某一個時間點時,就同時出現斜率的變化,跟問題症狀出現的時間也吻合,我這才恍然大悟, 原來禍首是 chrome。而這關鍵證據,也洗清了 firefox 的嫌疑。最後是分析出,是 chrome 有用到 graphic render 加速的功能,關閉後就沒事了。

後來又有一次,大約是 2015/02/20 前後,有更新系統,升級了好些函式庫, firefox 也從 34版升級到 36版,之後就又產生類似的 Xorg reset 的問題。幸運的是,當時我已經建好有觀測數據的機制,再加上有高手在網路上的討論幫忙,最後將分析範圍縮小至 Xorg intel driver 跟 firefox 的 render 加速相關的功能。

View post on imgur.com

//s.imgur.com/min/embed.js

其中,由上圖這張當時取得的數據圖中,可以看到 Xorg 的 vesa/intel 驅動程式的不同,及 accel 的 on/off 的一些變化。由此可證實是 Xorg accel 跟其相關的下游應用程式的部份所致。雖然,最終沒能找出是那一段程式導致 mem leak ,但透過更換 driver 並關閉 accel 的選項,暫時避免掉嚴重的 reset 危機。

(註: 後來 firefox 在某一版本更新後,該問題就消失了)

這兩次經驗(還有先前的一些小案例),給我非常非常大的啟發。
以往程式 debug 經驗,多數都依賴 gdb, xdebug,

關於高雄捷運虧錢的話題

每隔一陣子,關於高雄捷運是不是虧錢的話題,就要反覆再來個一次。
我感到十分厭煩,然而關於自己家鄉的議題,面對紛擾總無法視而不見。

網路上各方有各方的說法,很難分得清楚誰是真知灼見,誰是詭辯。
而且目前網路上查到的資料,多是斷章取義,或是先射箭再畫靶的報導或評論。
想要獲得真相,我想最好的方式就是,自行去取得第一手的資料作評估。

於是,這兩天花了一點時間,以程式抓取數據並後置分析了一下,結果如下:

數據分析結果

高雄捷運 2008/03 ~ 2017/03 的運量趨勢圖
( 單日平均運量,以7日為計算週期 )

View post on imgur.com

//s.imgur.com/min/embed.js

台北捷運 高雄捷運 1996/03 ~ 2017/03 的運量趨勢圖
( 單日平均運量,以7日為計算週期 )

View post on imgur.com

//s.imgur.com/min/embed.js

以下是我根據上述資料,個人的解讀與看法,如下:

Q1: 高雄捷運搭的人多不多?
目前的每日運量大約是 17 萬人次。
若高雄市人口數以 278 萬來估算的話,每天大約有 6% 人坐捷運。

台北捷運每日運量接近 200 萬人次。
若雙北以 667 萬人口計的話,每日運量約 30% 坐捷運。

Q2: 高捷的運量是否有持續成長?
在 2013 年之後,運量似乎就沒有再顯著的成長了。

Q3: 為什麼高雄捷運的運量上不去?

這個問題,我沒有答案,但我發現到幾個線索:

View post on imgur.com

//s.imgur.com/min/embed.js

首先,台北捷運也不是一開始就有百萬運量的。
台北捷運前2年的運量,跟高雄捷運也是差不多的狀況,甚至更少。
但是,在 1998 年底,跟 1999 年底,都各有一次跳躍式的成長。
於是我查詢對照了一下,維基百科上台北捷運的歷史資料。
發現這兩個時間點,分別是:

  • 1998年12月24日淡水線台北車站-中正紀念堂站段、新店線中正紀念堂站-古亭站段及中和線完工通車
  • 1999年12月24日板南線市政府站-龍山寺站通車後

尤其是1999年底,通車的路線共同構成狀似「卄」字的路網,運量出現非常顯著的成長。

也就是說,捷運系統成長的關鍵,跟打通捷運路網的連貫性,是非常直接相關的。

在世界各國這麼多已成熟系統的先例經驗下,我想捷運系統的成長曲線跟模式,及失敗原因,應該有很多相關的交通運輸科學的研究跟經驗,可作為參考依據。

如果,高雄捷運無法成長的原因,是因為路網還不夠密集的話,或許解決方向,應該是及早投入資源補全路網,嘗試將平均使用比率,從 6% 往上提升至 20% 以上,進入良性維持階段。而不是讓這種不上不下的狀況持續拖下去。

Q4: 會不會高雄本身是不適合作捷運的?

這也是很有可能的,畢竟北高兩地的背景環境是不同的。
樂觀來說,高雄捷運目前路網確實還不夠密集,使用率才 6% ,可能還有不少提升的空間。
但我們也無法確知未來發展的上限會是多少,會不會最後變成是長期虧損的大錢坑?
最好的方式,應該是透過運輸科學來作

N年後再次提筆Blog

這是個對沉默的人不利生存的年代,當大多數的人的注意力都被FB動態和碎片化新聞洗走後,低調的人似乎只能自行默默的死去。為了生存,只能強迫自己也加入刷存在感的行列,試著提升一點個人的存在價值。

其實我一直有保持有思考跟紀錄心得的習慣,只是很少主動在FB/網路上發表自己的看法。我知道,寫Blog跟發表網路評論對於個人價值提升有很多好處, 很多實際案例擺在眼前,而我自己也熟悉這些網路平台跟工具。然而,但為何自己總是佇足不前呢?

除了對寫文章的惰性外,另一個或許就是對自我變質的害怕吧…。一旦漸漸有了影響力跟身價,成為了某個

考古題戰略

出社會前,我的人生經過了幾次重要的考試:

* 高中聯考(1997)
* 大學聯考(2000)
* 研究所入學考試(2004)
* 研究所入學考試(2005)

其中 2005 年的研究所考試對我意義重大,因為這次考試的過程中,我體悟出和以往不同的作事方式。

研究所的入學考試大約是在 2005/04 月左右,我大約於 2004/09 月開始準備。因為我非本科生,所以前期都在補念相關科目的書籍,並於寒假(約 2005/02 月)開始密集練習考試習題跟歷屆考古題。我先是搜集了各校前五年各科的考題,然後逐一對自己進行模擬考。

過程是挫折連連,尤其是對非本科生的人來說,要熟悉 bits/bytes 的運作跟邏輯相對吃力,每次練習完對照答案,都是一次又一次挫折跟自我懷疑的感覺。然而,在所有挫折中,最令我掛在心上的,是一次試考中出現了曾經出現過的考題,前一次作不出來答錯了,事後也看過答案了,解法也念過了,然而,當這個題目又一模一樣的再次出現在眼前時,我居然還是作不出來!