我讀 «逆•進阿基師»

翻開這本書,就看到阿基師處理國宴的小故事,當下便決定買回家.

阿基師 (鄭衍基) 在本書中大致提到他的生平,使我們知道他家裡原本就是開餐廳的, 只不過阿基師的父親 (鄭爸爸)原本是經商的外省人, 因為戰亂回不了大陸, 才會半路出家改行賣吃的.

雖然鄭爸爸的 “福州菜" 餐廳經營得不錯,不過因為第一次買房子時買到違建, 後來被政府強制鏟平了.鄭媽媽拿出私房錢 (金子) 買下圓環附近的房子重新開始, 結果新家還是違建,後來被火燒光了,始終沒有累積起財富.

鄭爸爸原本指望他好好讀書當老師.不過就像阿基師的媽媽(鄭媽媽)不顧家人反對 (不能嫁外省人) 和鄭爸爸私奔一樣, 阿基師也在老爸反對之下, 初中畢業就決心投身餐飲業.

從鄭爸爸無奈把阿基師介紹到廣州飯店當學徒開始, 我感覺阿基師真是苦了很多年.看來當廚師果然比唸書還難得多! 先不談職業上本來就會受到刀傷、燙傷.要成為一位大廚,不但要精通十八般武藝, EQ 也要很高.

首先在廣州飯店工作就要學廣東話,阿基師的母語是台語,這第一關就不容易. 像我們早年往來珠海澳門,廣東話都能聽一點, 還能幫廣東老伯伯填入境表格.不過要說出完整的句子是很困難, 一不小心普通話、閩南語、客家話的腔調都會跑進來搗亂.對阿基師這樣一個高中生年紀的學徒,根本不會有人想幫忙他,光是融入環境就是個大問題.

阿基師能成功的長處之一就是身段低.他發現雜事是大家不想做的, 如果肯打雜, 人家就會對他有好感. 因此師傅的圍裙髒了, 他就很機伶地幫師傅洗好併燙好.木屐髒了, 他會刷乾淨並用鹼水煮過消毒. 樓梯髒了, 他會把陳年油垢刮乾淨並清洗. 雖然以上都和廚藝無關, 大家都不想做,但有人願意做絕對是加分.

阿基師的人緣雖然變好,不過師傅們還是不願意傳藝給他, 而是特別照顧家鄉的小老弟. 廣東人族群還是血濃於水, 更不用說到處都有派系問題了. 勤快的小雜工並不等於嫡傳弟子, 所以新鮮人不要光忙著幫大家團購而疏忽了本業…

接下來的階段就是偷學, 即使師傅故意把烏醋裝在醬油瓶, 白醋放在米酒瓶, …小學徒還是要一一破解, 而且還要裝傻不能點破.甚至口頭上還要說不想學,不然連製作過程都偷瞄不到. 經過一段時間後, 阿基師終於學會叉燒包要怎麼做, 算是跨入粵菜的領域.

學會叉燒包之後, 阿基師想學烤鴨. 烤鴨中有一個步驟是要把剛殺完的鴨子從脖子的刀口處吹大. 別的學徒吹幾隻就覺得噁心, 但阿基師能吹二十幾隻也不喊累,久而久之,烤鴨師傅終於願意讓他幫忙, 然後進展到讓他試烤.

雖說第一次試烤就是外焦內生還差點 “火燒厝", 但是師傅未加追究,還教他如何善後,看來平日的苦勞還是有點作用.當然失誤也不只是這一樁, EQ 再高的人也不能保證不會犯錯. 阿基師當學徒時曾在總統官邸打翻粥,以及在重要宴會當天睡過頭 (因為太緊張而失眠),後來都平安渡過.

在廣州餐廳待了兩年之後, 阿基師升格為學徒中的大師兄, 負責餐廳員工的伙食.由於還不是正式的廚師, 主廚建議他去別家開開眼界, 介紹他到金龍酒店上班.雖然還是做一樣的工作, 但是規模比以前大, 光是員工就有二十幾桌,而以前只要負責五六桌.

金龍酒店的缺點是它附屬於夜總會,因此出入份子複雜, 常常吃到一半會發生武士刀砍人的事件. 於是阿基師又轉進到新亞飯店.後來又進入世界酒店.在金龍酒店擔任二廚的時期, 阿基師認識了他的同事阿基嫂. 等到阿基師擔任主廚的時候, 兩人風光成婚. 這是阿基師比較順遂的時期.

不過阿基師第一次在新亞上班時, 已經發現家中的財務有問題:鄭媽媽為人作保, 欠下了大筆的債務.本來只是鄭媽媽瞞著兒子扛這個債務, 後來阿基師知道了, 也是盡力在還債.結婚的時候其實家裡沒有什麼現金.表面看似風光,其實是以會養會,財務相當吃緊.

媽媽終於中風了.沒過幾年, 鄭爸爸也突然過世.為了還債, 阿基師只好賣掉名下的兩棟房子.這件事被老婆知道之後, 阿基嫂氣得想要離婚.我在電視上看過阿基師講這段經歷, 其實滿感人的. 阿基嫂很有情意挺過這一關, 之後幾十年阿基師都聽老婆的話, 以感謝她的支持.

已經擔任副主廚,當以前的同事找他跳槽到大飯店的時候,他顯得相當遲疑. 一來薪水變少, 二來頂多擔任三廚,似乎沒有什麼好處? 當時是鄭爸爸的勸說使他決定跳槽, “只要能進五星級飯店, 錢日後自然就會有."

這間大飯店對待阿基師似乎是有點虧欠, 所以阿基師在整本書完全都不提它的名字, 只用"五星級大飯店" 帶過. 至於做了不好的事情的人, 在書中也都沒有名字.我覺得這是作者厚道的地方.不過誰也都可以查到那就是國賓飯店.

大飯店的粵菜餐廳只有一位烤乳豬的師傅. 阿基師為了學烤乳豬, 一樣下足了工夫去接近他. 日子久了, 師傅也果然讓他試烤第一隻. 最後在滿手起滿水泡的代價下, 阿基師成了餐廳唯二會烤乳豬的人.

另外要偷學的一項功夫是果雕, 在本書的附錄裡面有很多果雕和冰雕的圖片. 看了之後只有對阿基師更為佩服, 就好像會寫一流程式又會畫一流 UI 的工程師, 真是萬人中也難有一個.

阿基師學果雕也很有趣, 他一方面用他會的叉燒包等點心的做法去換果雕的樣品, 另外一方面還跑去跟廟裡的石雕師傅學技巧. 雖然一開始雕得不好, 雕出來的龍頭怪怪的; 不過那桌客人剛好是 “一隻鱷魚" 牌的業務, 對於阿基師的鱷魚非常欣賞, 還專門請他去周年餐會雕鱷魚.

阿基師在大飯店待了五年後離開, 再次回到新亞飯店當主廚. 可惜這家店出了財務問題, 開始積欠薪水, 阿基師自己的薪水也拿去墊付給他的部屬, 過了三年終於倒了.這裡面很值得學習的一點是: 阿基師重回新亞擔任主廚, 其實手下有很多老同事. 他說今天就算老闆不是找他, 也會再找一個外人來當他們的主管, 相較之下, 大家不如一起挺他把事情做好. (推算在此時阿基師結婚.)

新亞倒了之後, 阿基師被推薦到中泰賓館做果雕.由於果雕做得好, 大飯店的總經理, 也就是阿基師十年前餐飲部經理, 便把他挖回去做蔬果雕.阿基師特別說到, 當初他的果雕就是在大飯店偷學的, 想不到過了十年他已經是專家了,舊同事卻沒有什麼長進.

經過日夜不斷地雕了兩個星期蔬果之後, 阿基師的手過敏了. 為此他只好請總經理分配別別的工作給他, 由他去教其他人做果雕來分散工作量.於是阿基師做了三廚,日前又做到粵菜廳的副主廚.

這段過程中, 阿基師被派到韓國交流學泡菜, 接著又被派到香港學鮑魚料理.阿基師在這個過程中學到很多東西, 但是眼紅的人應該也不少. 於是一年他無預警地被派到川菜廳去上班.

阿基師從粵菜廳副主廚被調為川菜廳副主廚, 但其實他根本就不會做川菜, 也管不動人. 其他人就說起他的風言風語, 像是拿回扣、收紅包、不會做菜被客人投訴…等等,讓阿基師搞到想離職. 幸好阿基嫂也勸他忍耐,以免自清不成還像是畏罪離職.

這個過程中最有啟發性的是,阿基師雖然打定主意要撐下去, 但是他的招數還是做別人不做的事, 像是倒垃圾、洗鍋子、端菜之類的雜務. 直到川菜館的領班提醒他, 再怎麼樣都要學點東西, 不要白白浪費時間, 誰知道那一天高層要試菜? 此時阿基師才醒悟過來, 他可以請主廚教他川菜的技巧, 增加自己的能力.

這樣硬撐了三年, 阿基師終於學會川菜. 前主廚退休後, 他就被任命為新的主廚. 攻擊他的流言也就中止了.接下來阿基師遇到 SARS 事件, 當時沒有人願意到外面吃飯, 飯店的生意也一落千丈.幸好此時他想出外賣便當的方法, 在飯店門口賣起便當, 挽救了公司的危機.

不過阿基師太紅了還是有問題, 老闆不喜歡阿基師獨佔了媒體的焦點, 於是把他升為遠離廚房的行政總主廚, 只需要看報表. 阿基師自認沒讀過書, 坐不了辦公室, 便提出辭呈, 離開這家前後待了 20 年的公司, 轉戰到一家新飯店 – 維多利亞酒店.

進入新公司 3 個月後, 這家公司又將他升為執行副總. 很有趣吧!為何這次阿基師不會覺得被明升暗降呢? 應該說這次他有實權了! 可惜的是維多利亞酒店的客訴,老闆都要餐廳自行吸收, 阿基師光是自己墊錢賠客人就花了 78 萬 5 千元 [1]. 雖然阿基師刻意在書中略過他的離職原因不提, 三年多後阿基師終究選擇走人, 跳到福容去當行政總主廚.

回顧到我買本書的原因,我本來是想要多瞭解國宴. 不過看到阿基師人前風光,背後卻吃了這麼多苦, 現在覺得這才是我讀這本書最大的收獲. 大家若是想知道熊掌的毛拔了為何又會長出來, 大家就去親自去翻書吧!

[Ref]

1. 阿基師真誠大告白…內有蹊蹺?XD

我讀 «不蝕本實戰操作»

這本書是 “平民股神" 蘇松泙先生的第二本作品, 買它的原因是在書店翻它時看到一個重點, 這個稍後再談.

第一篇 “平民股神的奇遇人生" 大概就是講一些小故事. 作者大致說到自己的生平, 以及總是賺錢的經歷. 從中可以知道蘇先生專做短線. 而操作的原則就是看線形. 不過作者講究靈活的操作, 不會等到站上或跌破均線才出手, 而是先下手為強.

經過長期的訓練, 蘇先生說到他可以預測明天的走勢. 這是怎麼辦到的呢? 基本原則就是只買強勢股. 絕對不會長抱股票.

第二篇 “散戶贏家該有的基本心態" 基本上就是衍繹只買強勢股的戰略, 賺錢就加碼, 賠錢則減碼. 不過絕對不會持股超過七成資金.

至於書中提到女人夢見男子裸奔要買 “台揚", 渡假時看見人面獅身像有"望"的感覺, 而開紅盤就決定要買 “蜜望實",這招叔叔有練過, 小朋友不要學!

雖然作者買股票看似怪力亂神, 但是他在買進前, 已經確認過: 台揚在一片跌勢中總是小漲或是逆勢不跌. 而蜜望實是當天漲跌幅前十名, 於是作者猜它明天續漲~~~

特別有用的實戰經驗應該是這項: 作者說在股市量縮的時候, 不要在單一支股票重壓, 所以多買幾檔, 讓每檔股票的張數減少. 最有趣的是寫他的朋友買國豐那一篇,根本整個人都被股價所制約了.

第三篇 “超越大盤指數輕鬆賺". 這裡面就寫了很多小撇步. 摘要幾個重點如下:

1. 以股票箱的方法低買高賣.

2. 以美日股開盤預測台股走勢. 如果美日股小漲小跌,就看前一天漲跌幅排行榜前十名是否續強續弱.如果由強轉弱, 就要拔檔.

3. 熊市時空手. 如果股王不能創新高則減碼弱勢股.這…股王干弱勢股什麼事呢? 作者選的股票其實都是前一天的強勢股, 他要減碼的是由強轉弱的股票.

4. 選股不選市.

5. 作者有 21 個買股票的理由, 如果買股的理由不存在了, 就該退場.基本上都是資金、股東會、選舉行情之類的外部因素.

6. 不要相信媒體的利多利空,個人恐懼和貪婪要和群眾相反.p154 提到媒體驅動群眾如 “江西趕鬼", 應該是指 “湘西趕屍".

第四篇 “長線、短線活用法" 其實偏重短線. 大多都是說長線的缺點. 作者做"長線"的經驗是因為早年某次颱風導致電話不通, 一個月沒辦法下單.

在偏短的操作週期中,作者說到股票漲不動就停利, 股票下跌了就換股而不是停損.因為把 A 股換 B 股, 那麼 A 股雖然沒賺到錢, 但是只要 B 股上漲就可以說沒虧損.

第五篇 “提高獲利的蹺蹺板比價術" 提到價量當中,以價為重, 因為沒有人會記得量. 作者說看 K 線不如看股票箱的三根線: 上軌、下軌、和中間線. 這根中間線是怎麼來的呢? 基本上可以想像為: 把達瓦斯的最近兩個股票箱畫成一個,這樣就有中間線了.

至於本篇的內容, 大概就是說到低價股上漲就換到中價股,…最後就會換到高價股.如果拿兩支股價相近的股票比價, 賣掉比較高估的, 去買比較委屈的. 經過反覆操作, 最後就會賺錢了! (?)

至於選那兩支股股票做蹺蹺板、日字操法 (某股低檔恰為另一股低檔)或是回字操作法 (假如股價成倍數, 就會有大口和小口)? 選那四支做田字操作法? 這就是叔叔才知道的絕技了.

第六篇 “追強勢股必勝教戰守則" 算是本書的精華. 總之作者就是買漲停板、破新高、漲不停的股票.遇到壓力不買、有支撐不賣、等反彈再賣.至於細節就請大家自己去翻書了.

最後來回顧一下我買本書的理由. 作者很喜歡利用強勢股的填權息來賺錢, 但是他會精算今年已經除息多少錢? 以免所得稅爆增. 

再來是最好只除息不除權, 息值愈小愈容易填息.最後是我聞所未聞的: 要挑資本公積配發股利比重高的股票, 因為這部份不用扣稅.

很多過去輝煌, 但是現在多半吃老本的公司, 其實都是用資本公積在發股利. 財報狗 [1] 就提到精英 (2331) 從 2007~2011 年的淨現金流入只有 27 億,2012 年卻可以發出 29 億的股息, 多數就是資本公積貢獻的.至於敢不敢買, 大家自行斟酌.

[ref] 

1. 獲利和創造現金能力比股息重要

第十六屆交大高階經理人培訓班第八課

這個禮拜上課的講師不是企業主, 而是交大的老師 – 楊千教授.  雖然楊教授來自學界, 但是他有很多業界的實務經驗. 特別有趣的是, 老師不想按照他原來的投影片講, 所以放出 "變革管理" 的投影片之後, 就隨大家點歌 – 他要講 "指定曲", 不要講 "自選曲".

第一個問題是老師翻名單點名同學問的: "應該如何因應現在的大環境?" 

老師說, 我們競爭的主要條件就是身體健康, 頭腦聰明, 和心地善良. 這些大部份都是出娘胎的時候就決定了, 所以…就…不用掙扎了嗎?話題一轉, 老師說到學習的意義. 為什麼我們要來上課呢?一個是 to know yourself, 一個是 to improve yourself. 既然能改善就還有希望. 

過去的環境也很競爭, 只不過競爭的速度和規模和以前大大不同了. 當初老師在交大讀書的時候, 學校有一顆 10 mega bytes 的硬碟, 以 1 mega byte 賣 40 萬新台幣來算, 價值足可以買兩棟豪宅. 到了近期, 老師也花過 2 萬塊買 2G bytes 的隨身碟. 隨著時代的改變, 人們致窮致富的方法也都不同了.

現代人不見得比古人聰明, 只不過是工具比以前進步. 像是電子業的節奏這麼快, 常常有人做出一些令其他同業都不開心的成果, 這使得有些聰明人都不想做高科技了.  但也就是這樣競爭的環境, 讓大家只好一直進步. 當你的客戶改變, 你就只好改變, 訂單的內容也會改變. 台灣能夠把 OEM 做好, 就是客戶操出來的.

如果企業主能高瞻遠矚, 企業的勝算就會提高. 但是比別人看得遠很困難. 

[改變] 

當你會背 99 乘法表, 你就是另外一個人了. 改變自己很難, 像是戒煙; 但是改變組織更難. 只要是一群人做的事就牽涉到管理. 而組織的特性有時候並不是管理者可以決定的, 而是老早寫在 "基因" 裡了. 像是軍隊, 並不是現在才沒人權, 它的特質就是要消除個性. 像是教授貪污事件, 據說這種認知差距可以上溯至漢代. 

在兩個穩定的狀態當中, 中間的不穩定狀態都是不快樂的. 

如果要改變, 希望是主動改變. 

改變本身就像是門弓器一樣, 一放開就恢復原狀. 在台灣想要變革更是不容易, 因為企業的面貌就在於企業主本身. 如果企業主不改變, 企業就不會改變.

[溝通] 

改變要看到成果, 需要溝通, 溝通, 再溝通. 除非誰擁有絕對的力量, 否則溝通絕不可少. 溝通也是一輩子的事.

當初台積電在決定官方語言為英文, 就是希望員工和客戶用的語言是一樣的. 語言一樣就沒有藉口, 也減少誤解. 老師舉的例子是甲骨文, 甲骨文是刻在龜甲上, 因為寫一個 byte 要很多時間, 所以只好簡化寫法, 讓一個字很有多意義 (overloading). 這個簡化就容易造成各說各話.

同學主動提問的部分:

[Q1] MTK 的薪水已經和產品的成績切割了, 收入太少怎麼辦… 呃, 同學是說, MTK 在台灣已經沒有對手可以 PK 了, 企業應如何自處?

[A1] 應該從勞方的觀點來看, 企業保持成長是很不容易的事情. 像是聯發科, 鴻海這些成功的企業, 本來就很難維持同樣的成長幅度.  企業主有企業主的困擾, 不是我們可以想像得到的. 按個 enter 就有一千萬的人, 一億對他才可能是困擾. 煩惱永遠比實力大十倍, 否則就不會是煩惱了. 這些大老闆只能靠著無可救藥的樂觀, 才能一直努力下去.

或許 analog 領域還有很多挑戰, 但是 digial IC 領域已經 converge 了. 我們也看到同一家公司的會計師, 律師, 在大陸上班的領的薪水比台灣高. 這是形勢比人強.

[Q2] 大企業最近都有傳子的跡象, 老師怎麼看?

[A2] 基本上, 只要企業主身體健康, 多數不想交班. 只要自己身體好, 總會覺得自己再做十年也不成問題. 但是人到了一個年紀, 很可能成事不足敗事有餘.

至於為什麼老闆不肯交棒, 也和幹部的能力有關. 當初公司小的時候, 一個小幹部就在做等同現在大主管的工作. 等到公司規模大了, 新一代的小幹部並沒有同等的歷練. (據我延伸老師的想法, 應該是說小幹部相對要花很多時間才能爬到可以擔大任的位置; 從老闆的眼光來看, 這些人當然沒有自己當年勇.)

換個角度看, 物競天擇, 業競人擇, 員工也可以挑自己喜歡的企業. 好比有些人喜歡挑戰, 那麼應該去鴻海. 有些人喜歡穩定, 那麼可以去奇美. 在奇美有 15 年年資都算是小弟級, 得供人使喚. 若是在電子業, 待 3,5 年就是資深工程師了.

[Q3] 企業中的董事長, CEO, 董事會, 總經理角色似乎重疊, 怎麼定位比較理想.

[A3] 公司的文化, 51% 要看老闆. 為何是 51%? 就是在股東會可以投票過半數的那個人. 董事長若是和總經理不合, 走的一定是總經理. 所以說 culture is the shadow of the leader. 

聰明人進到一個新環境就會觀察他們的文化, 然後設法融入. 就像是進入鴻海, 就自動會知道開會要記筆記, 桌上的水不要亂喝 – 以免會議太長一直跑廁所. 在宏碁, 今天叫你出差, 你可以說回家問一下老婆. 在鴻海, 話剛說出來就自動生效了; 如果不能配合, 就只能走人.

老師說, 有個東西和這個相關, 要先講. 文化的根柢是經驗 (experience), 有共同經驗才會產生共同信仰 (believe), 有共同的信仰才能反映在成功的行動(action), 看到最後的結果 (result). 想要有新的文化, 就要重共同的經驗開始 (共識). Change the cutlture, change the game.

[Q4] 在上面的模型中, 整個公司怎麼會有一樣的經驗?

[A4] 要經常互相 check. 大家把知道的東西 share 出來, 節奏就會一致. 夫妻也是一樣.

所以有時候公司喜歡自己開管理課程, 找外面的講師到公司來教, 而不是讓員工自己到外面受訓. 員工如果成長的比公司快, 長成大魚就不想待小池塘. 

[Q5] PM 不知道方向, 只能拿客戶的 roadmap 當 roadmap 怎麼辦?

[A5] PM 聽起來就像 "騙", 公司最大的 PM 就是老闆, 辛苦在下面當 coordinator 的都是小 PM. 當然有 PM 就有 AM, PM 是 product manager, AM 是 account manager, 同樣都是要以非專業的角度管一群專業的人, ensure 目標可以達成, 這就是騙了. 

早年在台灣有一個現象, 就是品牌的弱勢. 當初 D-link 做了 4 port 的 hub, 放了一年也沒人買. 等到 3Com 推出 4 port hub, 這東西就熱銷起來了. 如果 D-link 的網卡配上 IBM  電腦不通, 那就是 D-link 的問題. 若是 3Com 的網卡配上 acer 的電腦不通, 那就是 acer 的問題.

近年來, 台灣的形象已經有所提升, 像是漢微科 e-beam, Samsung 買的比 TSMC 還多. 當 Realtek 的 Box 配上 Intel 的 NB 有 WIDI 方面的問題, 客戶也說是 95% 是 Realtek 的問題 (雖然真相是…BJ4).

對公司來說, 研發能量是很重要的. 像是華碩與和碩分割, 明泰與 D-link 分割, 如果只做品牌, 壓力會很大, 拿客戶的 roadmap 當 roadmpa 就很自然. 我們假設 TSMC 和 UMC 都拿 7% 作研發經費好了, 由於 TSMC 的 7% 比 UMC 的 7% 多, 所以大者恆大.

除非這家公司真的有獨佔性, hard to copy, hard to own, 才可以不用擔心競爭. 

有創意當然是很好, 大家都講創意, 但是創意是一種 talent, 教不來的. 像是賈伯斯不需要民調就可以做出暢銷品, 軟體工程師會寫的就是會寫. 不會寫程式的, 我絕對不敢說可以把他教會. 寫程式有 bug  的人, bug 的創意也是源源不絕.

[Q6] 小 7 也在賣鴻海的電視了, 這招的背後還有什麼招?

[A6] 鴻海找我們當顧問的時候, 曾經簽過 NDA, 因為內容太長, 也沒仔細看. 簡單地說就是 10 個字, "一切的一切". 總幹事說: "這樣才五個字", 老師又說: "永遠的永遠".

Grow 和 profit 誰重要?除非是規模夠小, 大公司不想進去, 才會講究 profit. 不然只要有利可圖, 人人都會想進來分一杯羹. 這時候只好把自己不斷做大. 為了變大, 就會考慮各種可能.

[Q7] 很多企業都找外籍兵團來改善體質, 但是兩年大概就走人了, 這樣是不是太沒耐心了.

[A7] 東方人有家天下的概念, 其實不太願意放手給外人, 更不用說是外籍兵團. 找來一些說英文說日文的, 大家跟他們開會都很痛苦, 恨不得趕快開完, 再私下溝通. 如此改善成效不好是必然的.

有個代理理論 [1] 說, 每個人都是代理人. 這些外籍顧問只能算是 "局外人". 就好像公司的獨立董事, 有多少是真正的獨立的?其實還是要聽老闆的, 去留也看老闆臉色.

[Q8] 彼得杜拉克的理論, 看來不能適用於所有企業, 比方說鴻海. 有沒有一套理論可以涵蓋杜拉克, 又可以涵蓋鴻海的管理?

[A8] 知和行往往是兩回事. 如果自己不是老闆, 就要取得老闆的 mutual trust 和 mutual respect, 這時候講話才可能有用. 後來就完全看老闆了. 公司經營得好不好, 主要是看 decision 和 execution.  (沒說的部分,  就是不靠理論.)

[今日金句]

1. 一天不要學太多 每天都要學一點

2. 最重要的資源是時間.

3. 企業的存在是為了一世英名 (老闆早就賺夠了).

[Ref]

1. 代理理論

Newer New API 小註解

話說我們的 kernel 從 2.6.12 進版到 2.6.34 時, 網路速度似乎有點下滑. 為了瞭解這個進版對網路 driver 有什麼影響, 我發現了這個改良版的 New API – Newer New API.

原來的 New API [1] 是做啥的呢? 它是為了避免 CPU 太忙所產生的處理方式.

早期網路 driver 在收到 packet 的時候, 都會發 IRQ (interrupt request)去通知 CPU 搬 data. 隨著網路的速度愈來愈快, CPU 漸漸就沒辦法做這麼瑣碎的雜事了. 假如一個 MTU 是 1500 Bytes, 那麼, 15 Mbps 的影片就會在每秒發出 15,000,000 / (1,500 x 8) = 10000 / 8 = 1250 個中斷. [2].

只要網路流量低, 那麼 IRQ 還是可以用. 一旦網路流量超過某個界限, CPU 就改用 Polling (輪詢) 的方式去撈 data. 這就是 NAPI 的基本觀念. 由於不是看到 packet 就發 IRQ, 把更多 data 留在 buffer 裡, 也可以減低 re-order 的機會. 萬一 CPU 根本處理不了那麼多 data, 新的資料會直接覆蓋掉舊的, 不會讓 CPU 到了來不及的最後關頭才丟棄資料 [1].

在這組 API 裡面, 支援了設定網卡工作模式 (IRQ or Pollng), 進入或退出工作模式的幾個 function call.

到了 Linux 2.6.24, NAPI 的名字仍然被沿用, 但是內容已經更新了.  主要的改變分為幾點:

1. NAPI 和 net_device 不再是一對一, 一個 network device 可以支援好幾個 port, 每個 port 根據自己忙碌的程度, 決定它在哪一種工作模式.

2. 註冊輪詢的 API 異動

void netif_rx_schedule(struct net_device *dev); 

void netif_napi_add(struct net_device *dev, struct napi_struct *napi,  int (*poll)(struct napi_struct *, int), int weight)

也就是說原來可以加入輪詢的 API 多了指定獨立資料結構的 struct napi_struct *napi, 輪詢方法的  int (*poll)(struct napi_struct *, int), 也把 weight 從 dev→weight 的資料結構中拔出來明確指定.

3. 輪詢的 prototype 也改了, 不再依據 device.

int (*poll)(struct net_device *dev, int *budget); 

int (*poll)(struct napi_struct *napi, int budget); 

4.  關閉輪詢功能的 API 當然也改了, 以前是關 net_device, 現在是關某個輪詢方法. 

__netif_rx_complete(dev)

void netif_rx_complete(struct net_device *dev,  struct napi_struct *napi); 

更細微的改動我就不列了. 我好奇的是, 如果 driver 是用舊的 NAPI 寫的, 直接拿到 2.6.24 以後的版本去用, 會不會註冊不了 polling function, 只好一直發 IRQ 而導致 performance 不好呢?還是根本編不過?

今天已經快睡著又變餓了, 明天再繼續研究這個問題. 

[後記]

看了 Wireless network 的 driver, 裡面果然都是用 tasklet.

[ref]

1. New API

2. Linux网络性能优化方法简析

3. Linux kernel 2.6.24 Porting 雜記.

4. NAPI 技术在 Linux 网络驱动上的应用和完善

WIFI Direct 連線小註解

WIFI Direct 是 WiFi 聯盟所提出的規格, 目的在於讓兩個無線裝置不透過 AP (access point) 就直接溝通. 或曰, 不是有 TDLS 嗎? WIFI 聯盟說了 [1]:

TDLS operates in the background of a Wi-Fi network to optimize performance, while Wi-Fi Direct-certified devices can quickly connect to one another while on the go, even when a Wi-Fi network is unavailable.  Many devices will be certified for both solutions and use them in different situations.

WIFI Direct 不需要 AP 仲介, 也不需要已經建立的網路.首先雙方以 discovery 發現對方.如果有一方講話有人在聽的話, 對話就成立了. 這就是 search-listen 組合, device 1 發出的 probe request 收到了 device 2 的 probe response 的回應.

此後 device 1 開始 formation, 送出 GO negotiation request, 等待 device 回應 GO negotiation response, 如果對方沒有進入 formation 的階段, request 會得到 fail 的結果. 若是能夠正常回應, 這樣就可以準備 GO 了嗎?! 非也, 這裡的 GO 並不是英文 go! go! go! 的那個 go, 而是 group owner 的縮寫.  Device 1 是 client, 而 device 2 是 group owner, 相當於一台 AP 的角色. 所以一個 GO 也可以有很多 clients.

那麼如何決定誰是那麼如何決定誰是 group owner 呢? 方法就是圖中的比大小. Device 1 在送出 request 的時候, 會附上 intent = 3.可惜 device 出的 intent = 3, 既然 10 > 3, 所以 device 2 就當 GO. 要是雙方不巧平手的話,就看雙方誰做莊? 做莊的那個會在 tie-breaker bit 註明, 這個值是隨機的.如果雙方都出王牌 (intent value >= 15), 搶著當 GO, 那麼連線就會失敗.

雙方角色確定之後, 還要有一個 GO negotiation confirm 才算完成 request / response / confirmation 三部曲.這是 Formation 中決定角色的完整步驟. 到了 Formation 的後段, P2P 的 device 要互相鑑別對方 (authentification), 然後 client 要發 association request 和獲得 association response, 這樣才和 GO 完成所有的 standard formation 的工作.

另外一種 formation 叫做 persistent.它可以把 group 中的成員記下來, 後續再連線時,可以直接邀請 (invite) 對方加入 group.Invitation 也分成 3 種, 就是 GO 請 device 加入變成 client, 或是 client 邀請 device 變成 group member (前兩者 invitation request frame = 0), 以及先前 persistent formation 的 GO (一定要有 GO) 和 client 重建當時的連線關係 (invitation request frame = 1).

Persistent invitation 的好處就是不需要複雜的認證,只是做 WSC (WIFI simple configuration). 而 GO 要負責在 invite response 時, 提供這一堆資訊:P2P Group BSSID, Channel List, Operating Channel and Configuration Timeout attributes to indicate the Group BSSID, potential Operating Channels, intended Operating Channel and any GO Configuration Time 讓連線快速恢復上次的狀態.

[ref]

1. http://www.wi-fi.org/knowledge-center/faq/what-difference-between-tdls-and-wi-fi-direct

2. http://www.hughes-systique.com/Portals/0/Uploads/Articles/WFD_Technology_Whitepaper_v_1.7635035318321315728.pdf