Bitcode 與 Bytecode

大家都知道 Android 裡面有 Java virtual machine (JVM), 而 JVM 上面執行的就是 Java 的 byte code. Byte code 具有跨平台的性質, 所以 Java 可以 compile once, execute everywhere. 但 Android 裡面還有一個 bit code 就太為人所知.

Bit code 的功能和 byte code 一樣, 但是它不僅限於 Java 語言. 根據伊利諾大學的 LLVM (Low Level Virtual Machine) 計畫, front end 的 compiler 可以是 GCC, 而支援的語言包括 Ada, C, C++, D, Fortran, 和 Objective-C 等等. 這些高階語言被編成 LLVM IF (intermediate form), 然後被放在 virtual machine 上執行. 當然, 從 IF 也可以直接再編成可執行檔.

LLVM 的官網似乎都是用 LLVM IR (intermediate representation) 來代替 IF (WIKI 用語) 一詞, 而這個 LLVM Bitcode File Format 在他們的官網就可以找得到. 

Bit code 除了跨平台之外, 還有什麼好處呢?Google 在推的 RenderScript Compute 就是其中一個應用.  使用者可以先寫好 script, 然後交給 LLVM compiler 去翻譯成對平台最有利的 binary. 比方說這個平台的 GPU (Graphic processor unit) 很弱, 那麼某些 code 在 just in time compile 的時候就會讓 CPU 多分擔一點工作. 從 Android 3.0 的 Honeycomb 開始就支援 LLVM compiler 的 API, 放在 /system/lib/libbcc.so.

蟹老闆, 我又回來了!

我又回到螃蟹家族了.

去年離開瑞昱, 加入擎展科技這家未上市公司的時候, 想說公司剛剛增資到 10 億元, 應該可以撐個三年左右. 如此一來, 絕對足夠我培養完整的 ARM SOC 經驗, 將來就算退出工程師界也可以畫下完美的句點.

今天 7 月 11 日 SV8870 IC 回來, 算是 first cut  works. 它具有 Cortex A9 dual core 1GHz, SGX540 graphics engine, 1080@60fps encode / decode, 與 security engine 等功能. 後續在軟體方面也有所進展: 像是 Android 4.1.1, 4 路 720P video transcoding + DMS, multi-windows (即 Android frame 與 HDMI RX, video playback 同時) 也做好了. 

然而, 天有不測風雲, 公司迅速把錢燒完了, 距離 IC 回來還不到 4 個月. 關於公司裡發生了哪些事情? 大家可以去看一下"壽司幹嘛轉來轉去"的第三彈, 公司經營遇到的問題不外乎是那些. 而我從這本書中得到的領悟就是:管理不在於胡蘿蔔或是鞭子的運用, 因為這些都是作用在馬的身上. 馬車跑得不好, 不能全怪 “馬" – 呃, 台灣的問題也是一樣. 管理上最重要的地方在於乘客、車伕、和馬兒想法是否一致.

本來我打算在工程領域做到 50 歲, 我的三年計畫也是這麼來的. 畢竟, 人們對於老工程師的觀感和面對老醫生是不能比的. 醫生工作的平台 (也就是人體啦!) 數百萬年不變, 老醫生病例看得愈多就愈厲害, 頂多再去進修一些新的工具和手法. 其實, 就算只會一招走天下, 儀器/手法都用最舊的, 也還是有生意上門. 更別說相傳 5000 年的中醫療法都還管用, 有些病人甚至還特別喜歡中醫, 認為西醫西藥不行. 至於工程師天天看 bug list 的話, 大家都知道它對經驗值的提升有限.

匆匆忙忙地幫公司資遣了我手下的 26 個工程師之後, 當然就該想想自己也被資遣的這個問題了. 既然在未上市公司的夢想已經破滅, 我該何去何從呢? 雖然市場上有幾個工作我還挺有興趣的, 但是再次轉換到新環境, 可能又要花點時間才能看出績效. 與其另闢戰場, 不如回到當初培養我的地方吧! 所以, 聽說我的老闆用 super hot run 跑完用人流程, 在我失業 9 天之後, 又回到了前前公司.

[註] 政府規定要在登記後兩週都沒有工作才算失業, 這段期間內面談過兩家都被拒才能夠領失業給付. 新竹市規定要面談三家, 其中一家必須是就業服務站推薦的, 自己找的要兩家以上.

雖然我們原來的 DMP 產品線在我離開之後分家成了 DHC 和 TV 兩個部分, 不過畢竟我才離開一年的時間, 大部分的人事物都和從前差不多. 有些結婚了、有些懷孕了、也有只是單純變胖變老的, 像我自己就是. 回想當初帶著 MIPS/Linux 架構下的韌體經驗去擎展, 又帶著 ARM/Android 的經驗回來瑞昱, 好像是上了短期的補習班. 對螃蟹公司來說, 塞翁失馬, 焉知非福?

聽說正常的螃蟹一生只換三、四次殼. 但商人為了量產軟殼蟹, 會把螃蟹的腳全部拔掉, 以逼迫牠們提早換殼, 讓大家很容易就可以吃到以往相當罕見的軟殼蟹. 公司的組織異動, 大概就算是拔掉蟹腳的過程吧! 只要蟹身還是健康的, 換完殼應該會變得更大隻. 嗯…希望變大的是業績, 而不是組織規模. 這一年來畢竟自己也成長不少, 希望可以為螃蟹家族帶來一些成長的力道! 

我讀 «總體經濟漫畫入門»

因為先前在網路上買了壽司轉來賺去系列的漫畫, 所以順便多買了也是漫畫的 “總經" 來閱讀. 畢竟現在世界各國的關係愈來愈緊密, 美國人的房貸影響台灣人的口袋, 歐洲人揹債導致公司遣散…呃, 總之既然世界各國互相影響, 我需要更宏觀的知識來幫助自己思考.

本書的作者是號稱史上第一也是唯一的脫口秀經濟學家優倫鮑曼博士 (Yoram Bauman Ph.D.), 而畫漫畫的作者是葛蘭帝克萊恩 (Grady Klain). 基本上本書的確是很容易入手, 閱讀起來相當輕鬆. 不過它寫意的畫風方面, 個人覺得不太習慣. 很多人物都沒有眼珠子, 這會讓人聯想到蠟筆小新.

這本書分為三部 (單一國家, 國際貿易, 全球總體經濟) 和 16 章, 外加一個名詞解釋的單元. 總體經濟學的目標有兩個: 提升長期生活水準, 以及了解景氣的繁榮與衰退. 而自 “古" 以來, 經濟學家始終對於經濟有不同的看法, 我們只好稱它為不同的學派. 作者在本書的最後說到, 若干年之後, 後代的總經學家或許會覺得現在的學說全部都很可笑. 不過他認為現在的個經學家的理論, 應該可以流傳後世.

對單一國家來說, 關心的議題是失業、錢、通貨膨脹、國內生產毛額、和政府的角色. 舉 “失業" 這個議題來說, 大家認為有三種失業的類型:

1. 摩擦性失業: 經濟變動 (照顧家人) 或人民生活變化 (搬家, 就學) 所造成不可避免的短期失業.

2. 結構性失業: 因為供需失調所造成的失業.

3. 循環性失業: 景氣不好所造成的失業.

對於前兩種失業, 古典經濟學家和凱因斯經濟學家看法相同. 但是對於第三種失業, 古典經濟學家的看法不同. 他們認為市場永遠都會自動平衡, 想要工作的人只要在景氣不好的時候接受低薪, 就一定會有工作. 如果嫌薪水低而不去工作, 不能算是失業.

凱因斯經濟學家認為, 第三種失業也是失業. 因為人們習慣原來的薪水後, 就不容易接受低薪 (黏滯性工資 – 心理抗拒減薪等等). 所以今天即使各大工廠都缺外勞等級的工人, 但是台灣人就是不願意去當台勞. 明明台鐵工人不需要碩博士學歷, 大家還是會搶著去背沙包. 因此, 薪資這件事絕對不只是一個數字而已.

[胡思亂想] 如果把供需曲線改成兩個曲面, 由於它們各自的維度太高, 找不到足夠的供需平衡點, 因而造成了失業. 我這樣解釋可以得諾貝爾獎嗎? 哈! 畢竟求職者所想的是價值(Value), 而不是價格(Price), 雇主亦然. 它們的各自甚至都不能形成一個簡單曲面, 到處存在著 singular point. 因為景氣循環而導致兩個曲面往不同的方向捲曲, 似乎就可以解釋兩者交集變小, 失業人口增加吧! 哈!

[WIKI 的簡單供需模型]

在國際貿易方面, 討論到貿易與科技、外匯等等. 自由貿易和科技進步有相似之處: 它們都會產生贏家, 也會帶來輸家. 古典經濟學家認為貿易永遠是好事 – 不論是傾銷 / 操縱匯率 (你會嫌東西太便宜嗎?), 血汗工廠 (顯然外面的環境比血汗工廠還差),…等等.

考慮到自由貿易的原始精神 – 大衛李嘉圖 (David Ricardo) 的比較利益 (Comparative Advantage) 理論, 先天不同的國家透過交易才能互蒙其利. 甚至瑞典的 Volvo 可以賣到德國, 德國的 BMW 也可以賣到瑞典; 這樣對消費者似乎有著最大的利益.

不過我覺得 “先天不同" 可以說是這個假說的前提, 如果台灣做代工, 大陸也是由台灣人教他們做代工, 兩者先天上的不同將會減少到只剩下價格的程度. 自由貿易仍然會導致某一方競爭力的完全喪失. 更別說很多東西彼此有替代性. 就算台灣要賣的是獨特的觀光景點和人情味, 國際觀光客也可能因為預算或是假期而改去香港或是峇里島.

貿易又牽涉到匯率問題, 故羅伯特孟代爾 (Robert Mudell) 提出一個不可能的三位一體 (impossible trinity). 亦即自由交易的貨幣、獨立自主的貨幣政策、固定的利率, 三者不可能兼得. 如果採用共同貨幣, 例如歐元, 則重點在於各方能否協調一致 – 人力和資源可以自由移動, 此即 “最適貨幣區域" (Optimal Currency Area).

本書最後一部是全球經濟, 這個單元最重要的議題之一是如何避免經濟衰退. 美國曾經經歷過 1929~1933 年的大蕭條, 它無論在 GDP、 失業率、全球貿易衰減幅度、和時間長度上都比 2007~2009 的金融海嘯來得嚴重. 經濟學家認為主要是聯準會的政策不同所導致的結果. 現代的做法是用寬鬆的貨幣政策來刺激經濟 – 低利率、刺激放款, 甚至採用了財政政策 – 減稅等等. 許多專家甚至認為第二次世界大戰帶來的巨額赤字支出, 使得美國提早擺脫大蕭條.

在終結貧窮的這個議題上, 本書認為大多數的低收入國家的 GDP 將會迎頭趕上富裕國家, 只要他們符合某些條件 (Conditional Comvergence). 至於成長妙方是什麼? 各家看法不一. 有人認為貧窮國家若是存在貧窮陷阱 (Poverty Trap) 的惡性循環當中, 就需要國外援助來推一把. 有人認為當地政府的治理最為重要. 此外, 國家的地理條件等等也都是影響成長的因素. 總之, 經濟學家太多, 大家的意見不可能一致.

還有一個主要議題就是人口老化. 大家最近在討論勞保倒閉的問題, 主要也是來自於人口結構的改變. 過去的做法是有工作者接力養退休者 (PayGo – 隨收隨付), 但是年輕人口不足, 導致後繼乏力時, 解決方式就只有縮減福利、加稅、或是舉債三種痛苦的方案, 以及提升醫療效能、加速經濟成長兩個比較不痛苦但是更難達成的選項.

無論如何, 在經濟學家還沒有辦法解決老化問題之前, 我們得先有自己的備案 – 延緩退休可能是最好的方法. 無論活到什麼年紀, 最好都能夠自給自足. 畢竟, 只要人們有加薪的慾望, 通貨膨脹是無法消滅的. 因此靜態的收入終究將不敵通膨的侵蝕. 雖然 “富爸爸窮爸爸" 的作者羅勃特.T.清崎(Robert T. Kiyosaki)都破產了, 不過投資能夠製造正現金流的機制絕對是正確的.

我讀 "壽司幹嘛轉來轉去? – 第三彈" – 下

Hanna 雖然沒有吃下 MMM 這顆毒包子, 還是有自己的危機要處理. 文京銀行仍然要 Hanna 還貸款. 由於安曇大師總是躲著矢吹社長, 她的兩個得力助手林田和木村只好瞞著社長去找安曇想辦法. 安曇這個時候打了個啞謎. 他說他有三個提示, 如果矢吹能夠想得出答案, 就可以找到還給銀行的錢. 若是想不出答案, 公司倒閉也是活該.

這三個提示分別是:

1. 水深計無法測量流入河水的水量.

2. 小鰶魚為何比鮪魚大肚肉賺錢?

3. 兔子為何跑得比烏龜快?

安曇又說: 解開提示的關鍵在於把富山工廠下午五點時的在製品庫存額, 畫成一個月份的圖表. 何謂也? 原來富山工廠之所以虧損, 在於裁剪、縫製、檢查這三個單位的中間庫存太多. 因此富山工廠的童裝和女裝雖然每個月的產值只有 5.2 億, 在製品的庫存平均卻有 8.27 億 (水深計) 之多, 而河流的水量更是足足有 248 億.

用我可以理解的話來說, 富山工廠等於每個月堆了 8.27 – 5.2 = 3.07 億的呆料在倉庫裡面. 只要改變工作流程, 減少庫存, 就可以擠出 3 億的現金.

第二個提示在第一彈裡面就出現過了. 意思是只要減少同時投入的資金量, 使週轉變快, 那麼就會有更多的錢可以用. 舉例來說, 每年設計一顆 IC 就是賣鮪魚大肚肉, 而同時開好幾個小 project 重用舊 IC 可以視為賣小鰶魚吧!

至於兔子跑得比烏龜快的原因, 是因為兔子的步伐又大又急. 步子大相對於高毛利, 而腳步快相對於週轉快, 賺錢能力強. 假設富山工廠的生產速度加快一倍 (一個月變成半個月), 庫存理所當然會減為一半. 庫存 (在製品) 減半, 現金就變出來了.

至於 Hanna 如何讓生產速度快一倍呢? 原來富山工廠每個生產步驟都以 100 件為單位. 若是 100  件還沒做到一個段落, 後面一站就處於閒置的狀態. 只要利用 pipeline 的觀念, 把 100 件的單位切為 50 件, 那麼速度確實可以快一倍. 每月滯留資金也變成 1/4 (= 時間 1/2 x 平均庫存 1/2).

Hanna 把所有的產品線依據 “現金增加力" 重新評估了價值. 現金增加力 (兔子的里程) = 毛利率 (兔子的步伐) x 存貨周轉率 (兔子的速度?). 其中存貨週轉率 = 銷貨成本 / 存貨金額. 每個產品線可以別檢視它們的弱點是在毛利率, 或是在存貨周轉率.

[附帶一提] 然而, 以上還是比較簡單的說法. 其中假設了產品的毛利不高 (成衣業), 因此銷貨成本就是分析的重點. 若是產品的毛利很高, 而固定成本 (如人事費用) 也很高, 那麼光是分析產品的周轉率是看不出問題的. 更糟的是, 如果固定成本已經墊高, 產品的毛利又無法提高, PM 想來想去都是想到殺價…那麼顯然這題是無解的.

在矢吹社長勵精圖治之下, 雖然  Hanna 時間到了仍還不出 15 億. 但是文京銀行總行的融資主任三本木只用一個問答題來代替抽銀根 – 何謂利潤? 由於這題是考古題, 安曇既是三本木的老師, 又是矢吹的老師, 當然學妹就安全過關了. 作者說利潤是:

1. 利潤不只是量, 也是質. 品質不好的利潤無法帶來現金流.

2. 利潤是用於衡量業績的指標.

3. 它是為未來不可以預測風險所做的準備.

4. 它是為未來投資所儲備的存糧.

5. 它是用於保障員工生活的基礎.

我讀 "壽司幹嘛轉來轉去? – 第三彈" – 中

MMM 公司的損益表相當漂亮, 毛利率高達 35.9%, 遠大於當時 Hanna 的 15%. 經常利益也有 3% 左右, 至少比 Hanna 好. 不過在巴菲特喜歡的 ROA (經常利益 / 總資產) 上比較偏低, 只有 3.7%. 再看 MMM 的資產負債表, 流動比 (流動資產 / 流動負債) 113.5% 稍微低了點, 一般希望達到 200%, 其他都算是出色. 連員工退休金都提撥了 20 億元.

此時矢吹社長看出了一點端倪, 只是不明白背後的原因. 那就是 MMM 在損益表的不動產租賃費用 (8.5 億) 偏高, 比起毛利 35.8 億元大概是 1/4, 也比營業利益的 3 億元高出許多. 可以挑剔的地方總共有 5 個, 而最大的缺失不如說是 MMM 沒有附上現金流量表. 另一方面, 作者巧妙地安排文京銀行要 Hanna 還錢. 因此 Hanna 不但要看 MMM 有沒有現金, 也要看自己怎麼擠出現金來?

至於一心擠掉表妹讓自己當上社長的田端並不管 MMM 倒底值多少錢, 他只希望這個案子能夠成功. 負責介紹 MMM 的新崎更是答應把佣金五千萬元分一半給田端. 田端站在自己的立場思考, 併購的好處實在太大了, 因此完全忘記了貪小便宜的風險, 連 DD (Due Diligence =實地查核) 的內線都安排好了. 事實上, 當一家公司準備要賣的時候, 就不時會有人來 DD. 而打算被購併公司要不務正業地去準備 DD 的資料, 會使得公司更加沒有競爭力.

不過矢吹沒有把查核的工作完全交給田端. 而是和木村去檢查了 MMM 的直營店. 從財報上來看, MMM 擁有 50 家直營店, 其中 10 家獨棟的店面不知為何設計得很沒有品味, 店內空蕩蕩地似乎沒有打算要賺錢的樣子. 因此這幾家店就成了查核的重點.

原來 MMM 使用 "融資租賃" 的方式和房東租斷 (相對於買斷) 了這幾間獨棟的店面. 於是 MMM 只要認列租金即可, 而不需要對這些店面折舊. 在資產負債表上先認列這些建物的資產, 再認列同樣金額的應付款項, 就算是作帳完畢. 如此一來, 好像是花錢買了幾乎不會折舊的資產 (前提是租金 (利息支出) << 折舊). 後遺症當然就是前面看到的 ROA (資產增加) 和流動比率 (流動負債, 應付金額增加) 偏低.

事實上, 這幾家店並不值得 MMM 所評估的資產價值. 如果這 10 家獨棟的直營店是 MMM 所有, 那麼資產高估這件事很容易就被會計師發現. 但這些房子只是以"融資租賃" 租來的, 在帳上只看得到租金支出而不是折舊. 相當於 MMM 用便宜的手法, 在公司名下增加了大量的資產 (每棟價值 8 億). 如果以現金流來看, 真正該記載在財報上的 10 家獨棟直營店價值, 只是他們所帶來的營業額 (每棟價值 2 千萬) 而已.

總之, 矢吹社長終於看穿了 MMM 是個資不抵債的爛攤子, 使得田端的氣燄大受打擊. MMM 自知露出馬腳之後, 也改口說公司不賣了. 本書中還有很多細節, 我都將它省略. 在購併這個單元, 最值得留意的就是現金流量表的部分. Hanna 的會計木村自己製作了 MMM 沒有提供的現金流量表, 才能發掘出 MMM 用租房子美化財報的伎倆.