Category Archives: IT Talk

十個人機介面可用性的評鑑原則

設計人機介面有很多種方式, User Study 應該仍然是最重要也最難在小公司實現的一環。對很多公司來說,除非先前曾經有過慘痛的失敗經驗,不然人機介面設計的預算往往低到不行,所以也只能祈禱工程師設計出來的介面不會太難用了。

不過,這樣的流程會讓介面設計的討論流於情緒化,往往公司裡面會有這樣的對話:

PM: 「我覺得這個按鈕放這裡不對。」
工程師: 「為什麼?」
PM: 「我也不知道,但我就是覺得怪怪的。」
工程師: 「好吧,我改。」

如果 “覺得怪怪的” 是客戶說的,也許我還是可以視為 user study 的一環,但是 PM 並不是 user;這樣的討論最後往往沒有什麼好的結果,為了大家說不出來的 “感覺”,爭得臉紅脖子粗。

所以,如果有一些原則可以遵守,找出自己覺得奇怪的原因,就可以讓討論更為理性。
Continue reading

資工畢業生應該要可以答出來的面試問題

前陣子幫某公司面試實習生,覺得頗有感觸。

我覺得,作為一個資工(Computer Science)的畢業生,有一些面試問題,會是像叫籃球球員運球一樣的基本。運球運得好的人,不一定可以變成 Michael Jordon,但是很難想像 Michael Jordon 運球會運不好。同樣的,也有一些問題,如果畢了業還答不好,會掩蓋住你在其他方面的成就。

之所以寫這篇,目的倒不是要寫另一篇草莓文埋怨現在學生,而是希望能夠喚起大家對於 “基本功” 的意識。有別於媒體上所宣傳的,面試 Google 和微軟,大多數的問題其實並不是要你天馬行空解題,而是問基本功。

所以我想稍微寫一下我認為的基本功問題,也算是給還在唸書的人一點參考吧。

如果你說你修過演算法/資料結構…

  • 解釋時間複雜度?空間複雜度?兩者之間的關係?
  • 請解釋以下幾種資料結合及運作方式: hash, heap, stack, tree
  • 請提出一種時間複雜度為 NlogN 的演算法,並用你熟悉的語言寫出來

如果你說你修過作業系統/計算機系統…

  • process & thread 有何不同?
  • 決定 cache 效能的兩個指標?
  • 什麼是同步化?要怎麼寫?
  • 什麼是 deadlock?要怎麼解決?

如果你說你會寫程式…

  • 什麼是 call by value?什麼是 call by reference?兩者的優缺點?
  • 寫一個迴圈來看看?
  • 寫一個遞迴來看看?
  • 什麼是 function 的 signature?回傳值能不能是 signature 的一部份?
  • 什麼是 static function?什麼是 static variable?

如果你說你會資料庫…

  • 什麼是 normalization?為什麼要做 normalization?
  • 解釋 inner join, left (outer) join, right (outer) join
  • table 為什麼要做 index? 舉一個做 index 有用的例子和沒用的例子?

如果你說你會 C/C++…

  • 請搞懂 pointer

如果你說你會 JAVA…

  • 請搞懂 OOP

如果你說你會 PERL…

  • 請搞懂 Regular Expression

如果你說你會 PHP…

  • 給你半小時應該要能生出一個 Hello, Pesty 的網頁 (當然,Pesty 是 form input 的)

如果你說你會 TCP/IP…

  • 把下面幾個服務依使用到的原理照 OSI 層排序: http, telnet, DNS, MAC Address, ping, session, vpn
  • 解釋 class A, B, C, 和 class-less

如果你說你會 UNIX….

    怎麼把 ls 的結果導到 /tmp/test.txt 中?
    為什麼平常操作不該用 root?

再列下去我就要專做一個網站了….以上問題應該都不算過份吧….唉~

P2P 借款: Prosper.com

去年看完《窮人銀行家》之後開始在 kiva 上面小額放款,到目前的成果… 五個貸款者裡面只有一個還款不正常,希望他可以挺得過去。

不過,kiva 畢竟是屬於非營利精神居多,款項收不收得回來其實大家也沒這麼在意。去年畢業專題的指導教授正好是專門研究這類網路服務的,他就介紹我使用 Prosper.com ,一個 P2P 的營利借放款網站。
Continue reading

談通路優勢 – 從金石堂凌域事件看上下游的取與捨

最近半個月金石堂凌域的紛爭已經演變成出版業的上中游對抗單一零售商金石堂的狀況, 不過反過來看, 有一些出版業的觀點倒是我不同意的.

例如, 老貓在《出版業相煎何太急》中提到:

通路即使占有優勢地位,也不應該濫用力量,對供應商施加不平等的交易條件。過去這個概念可能只是表面文章,不需當真,現在則是所有經營者必須念茲在茲、奉行不逾的信條。因為太強勢的不平等交易,最終是會反噬自身的。這一次業內上下游每個環節的主事者都應該真正理解事件發生的原因,不是一家兩家的經營問題,而是供需雙方是不是真正視對方為
互利共榮的合作夥伴。

這段話我覺得完全把邏輯顛倒了; 這是一個資本主義社會, 不是儒家社會, 所以這段話應該變成:

供應商要謹記的是, 通路只要有機會佔有優勢地位, 就會濫用力量, 施與不平等的交易條件. 過去這個概念可能只是表面文章, 不需當真, 現在則是所有經營者必須念茲在茲, 奉行不逾的信條, 因為太過天真的期待, 最終是會反噬自身的…..

無意不敬, 但我覺得出版業會搞成這樣, 確實是因為太過天真了. 在競爭更激烈的 3C 通路裡, 由於中盤商早已知道零售商不可靠, 多年來對於帳款控制早已有一套系統可以遵循, 對零售通路的額度和庫存水位一直控制得宜, 否則早就不堪虧損而退出市場. 同一時間, 在全台大舉展店的燦坤, 並沒有因為展店的事實, 而得到任何多餘的放款, 也由於這個緣故, 中盤不至於拿自己的庫存和現金去幫零售商展店, 最後落得得被零售予取予求的地步. 另一個相反的例子是 Walmart; Walmart 利用通路優勢壓迫供應商的情況也非一朝一夕, 但因為 Walmart 本身經營得宜, 所謂供應商反嗜的狀況根本不會出現, 作為供應商, 永遠要努力保持新通路的暢通, 因為只要有機會, 下游一定會想辦法殺價!

另一方面, 3C 產品的折舊太快, 不斷的提醒這些中盤商商品的週轉率的重要性. 但看似折舊不快的出版業, 卻採取了忽略了資金的時間價值的制度和票期, 這都是產業的壞習慣, 或甚至對方以誠相待的空想. 在《資訊經營法則》中, 作者將出版業也列為資訊產業之一, 理由是沉入成本 (sink cost) 極高, 再製成本極低, 現在看到的削價或是無限期的票期, 其實也是由於這種成本結構造成的. 所以出版頁斷無理由還認為自己不是處在削價無底限的資訊業.

從這次的事件之後, 我認為出版社或中盤必須要堅持的原則是:

  • 照合約走
  • 資訊是有價的; 零售如果能提供透明銷售資訊, 就應該獎賞
  • 把資金的時間成本好好的算清楚, 不管銷結或月結都要照資金成本做折價
  • 尋找新通路, 培植新通路, 甚至成為新通路; 有選擇才有談判的籌碼

相關文章:

都 2007 了,台灣網路商店的註冊門檻能夠低一點嗎?

在美國我很常使用網路購物,基於自己都開了比價網站的緣故,我是一定會用比價網站先比價之後才下單的。當然,價格永遠不會是唯一因素,但是扣掉網友評價以外,會影響我下單與否最大的因素叫做「註冊」;一個註冊門檻高的網站,即使提供最便宜的商品,還是把生意擋在門外。很不幸的,台灣有 95% 的網路商店註冊門檻都太高。

讓我們想像一個情境: 你依照比價的結果來到一家很便宜的超商,結果這家超商先跟你要了身份證字號,又把你的信用卡拿去影印正反面,然後才開始問,「那請問先生你要買什麼?」請問你會不會覺得很不舒服?

另一個情境是,當進門問完去牛奶大罐要多少錢,準備買這家的,結果櫃檯拿出一個要花上十分鐘填的問卷請你先填,請問你會不會覺得很麻煩?

還有一種狀況是,你想去一家銀行開戶,結果這家銀行破破舊舊的,保全系統的電視從外面就可以看到壞掉了,警衛瘦得像是風一吹就會倒了,請問你會不會覺得存錢在這裡很危險?

上面說的三種是台灣網路商店標準的三種註冊門檻;第一個是把自己保護的好好的,把風險全都轉給消費者;第二個是生意還沒做成先把自己搞成市調中心,生意還沒做大就在蒐集使用者資料幻想以後可以 data mining;第三種是網頁看起來一點都不專業,登入不加密偶爾還會跳出錯誤畫面。

註冊使用者當然是網路商店很重要的資產,但是必須要因地置宜。如果你不是市場前三名,叫使用者記得他們在你這邊註冊的 ID 都是苛求。要記得你的店是光華商場小店,東西好價格合理顧客拿了就可以走,這樣口碑才有傳開的可能。更合況,很多設計並不是最大的人就做得對,例如說,金石堂博客來都要求使用者輸入帳號;而興奇科技註冊的流程雖然做得很簡單,卻莫名其妙的要了身份證字號。

簡單的說,我覺得 2007 這個時代,一個新開的網路商店應該符合以下的條件才算是合格:

  1. 使用者連到你的網站想要買一樣貨到付款的商品,最多應該只需要告訴你他的 email;如果他願意放棄追蹤商品出貨進度的功能,連密碼都可以不需請他設定。
  2. 如果風險稍高,你可以要求他提供行動電話號碼,在出貨前進行簡單確認。
  3. 填身份證字號絕對是多餘的!….除非你希望可以順便賣身份證字號補貼網站…
  4. 如果你有提供信用卡付款的功能,應該也提供其他支付工具的選項,例如 Paypal,以利消費者不需要把任何信用卡資訊留在你網站。
  5. 使用者 id 這種事可以等他用慣了再取;讓一輩子只來一次的使用者佔走最熱門的帳號名稱是你的損失不是他的。
  6. 把網站設計得更有 「信賴感」,請參考《信賴感與網頁設計

如果你正打算設計自己的網路商店,或是幫別人設計網路商店,記得用這些原則去看看自己把多少的生意擋在門外;也許你的價格門檻,已經讓你的商品得賣得比別人便宜五十塊以上,才可能吸引人家註冊呢!

資訊揭露: 本人與 翻書網 Findbook 有不可告人之秘密關係,本篇文章的立場可能受到此嚴重影響。

長尾理論的實例

關於《長尾理論》所闡述的現象,一直以來都還是有爭議;最大的爭議點在於,和傳統的 80-20 法則相比,這個尾巴的量到底有多大,對大多數人來說都是很抽象的。

週末把某網站的資料拿出來分析,發現了很有趣的數字。單本銷售量在前百分之二十的書籍,只佔總體的 4.5%;而剩下來的書籍,卻佔了總體的 95.5%。這表示前面的 20% 相對來說重要性並不高,但這也跟網站的性質可能有關。

再看看只賣出一本的書籍有幾本,這邊有將近14,000本。這個數字和《誠品報告2006》交叉參考後會比較有意思。在《誠品報告2006》中,2006 年銷售大於一本(不分新舊書)的共有144,218種,大於 100 本的有 13,318 種。如果某網站的資料可以再更進一步蒐集,應該會更接近誠品的數字。

和誠品這種實體書店比較,誠品銷售超過 100 本以上的書籍佔了 9.23%,以營收來看賣一百本以上的書所佔的營收應該更是遠超過 25% 以上。前 10% 的書籍貢獻了 25% 以上的營收;而某網站則是前 20% 貢獻了 5% 的營收。

從這個狀況看起來,純粹網路的書店在長尾的部份還是比實體更明確;當然這兩個相比會有一點大象比小蝦米的感覺,統計上可能也不像誠品更接近真實分佈,不過還是可以給大家做個參考。

剩下來的難題一樣還是存在;就算知道後面的書還是有賣的價值,除了擺在架上之後,還有沒有更好賣的的行銷方式呢?答案似乎還是無解。我們也只能把網站設計的更好用、讓使用者更有機會找到他可能有興趣的書,但其他的,恐怕現在還沒有很直接的解決方式。

參考: 《長尾理論
Findbook: 《長尾理論

網路廣告商怎麼知道你是誰? 從 ClickStream 來判斷用戶資料

前面罵了兩篇不精準廣告 ( Yahoo 不精準廣告, 不精準的是廣告,還是我?),大家可能會覺得網路廣告本來就是隨機輪播居多,本來就應該不會太精準。鳥毅的 comment 也點出了計算資源的問題。到底網路廣告可能做到什麼程度呢?這篇就來介紹一下這學期學到的 clickstream 分析。

(本篇計算的部份需要基本的統計和機率概念,另外本篇文章數據資料引用或截圖自 “Applying Quantitative Marketing Techniques to the Internet, Montgomery 2001″,以下僅用 “[Montgomery 2001]” 來代表)

Continue reading

程式語言與人生

人生就像學程式語言…

一開始要學說話 (Hello World!),

再來要學算數;

慢慢的,開始對邏輯產生概念 (if …. else ),

你發現人生有些重複的事可以用更聰明的方法做 ( for …. ),

但有時候沒有叫停,也只能忍著苦做下去 ( while … )。

你學會讀書寫字,讀別人的思想,寫自己的感言 ( File I/O ),

你發現世界的知識無窮無盡,善用別人的知識才能夠跑得更遠 ( library );

可是你也會遇到挫折,並且學會面對它們 ( exception & error handling ) 。

知識藏在神秘的角落,發掘其中的奧妙你才能夠出人頭地 ( database )。

但是世界比你想像的更大,能和遠方的人溝通更能創造機會 ( network ),

你會遇到和你截然不同的人,說著不一樣的話,如果你懂得溝通,他們也能成為你的後盾 ( protocol )。

年輕時衝動的你,也會開始瞭解到做事有方法比衝勁重要 ( algorithm ),

那些偉大的成就,其實也是建立在耐心的反覆檢查之上 ( debug )。

孩子,

其實你不是在學一種程式語言,

你學的,是人生。