Apple Air 更換 SSD 硬碟小筆記

前幾天到大陸出差,就在出發前筆電變得怪怪的- 非常地慢,好像哪不對勁.本來這個問題也不難解決, 上次就是直接買一顆新硬碟來重灌. 不過這次馬上就要出差, 似乎沒那麼多時間可以把這些事情做完, 只好把笨重的 Apple 的 Time machine 大硬碟也 hand carry 到大陸去施工.

沒想到真正有問題的應該是 time machine, 被它重灌過以後, 我三歲的 macbook pro 就不會動了. 一開始 time machine 還能 copy 出一點東西, 所以我勉強拷貝了兩個重要的資料夾出來.最後它就完全罷工,連磁碟工具也修復不了.這給了我一個啟示,time machine 如果怪怪的, 一定要趕快備份, 愈拖愈危險!

因此第一天上工只能靠手機回 mail, 到了第二天午餐時間, 我就冒雨衝到北京的五道口購物中心買了一台 13″ Apple Air 回來.什麼規格都還沒摸清楚, 反正就刷卡買了號稱可以 12 小時不充電的. 在大陸蘋果店買東西不算貴, 但是刷 “外卡" (外國卡?) 要加 3% 手續費,這樣一來就貴了不少! 回到客戶公司用了之後,發現我這型號比較低規. 記憶體少只有 4GB.測試了一下, 其實基本夠用.不過還是手癢把 swapfile 設到 SD 卡上.

sudo launchctl unload /Library/LaunchDaemons/dynamic_dns_updater.plist

sudo vi dynamic_dns_updater.plist

把最後的 private/var/vm 改為 /Volumes/32GB/vm

sudo launchctl load /Library/LaunchDaemons/dynamic_dns_updater.plist 

試過不重新開機真的可以用, 但重新開機後就不行了, 還不知道為什麼? 推測是 SD card driver 比 sleepimage 還要挽起來的關係.

至於內建硬碟不但小 (128GB),而且和一般 SSD 規格不相容, 使我原本的 1TB SSD 毫無用武之地,必須要另外買特殊規格的 SSD 卡, 以及梅花形的螺絲起子.今天買的東西都送來了, 於是開始施工.首先拿出在露天拍賣買的五星 (更像是梅花) 螺絲起子! 一開始起子滑牙拆不下螺絲, 還以為自己買錯了? 看到另外一個賣家的圖片才領悟到我應該要換 1.2mm 那頭.Apple 真的相當狡猾, 螺絲是用梅花形的, 乍看之下很像是被轉壞掉一樣.

ddd  

用對工具之後, Air 的後蓋就輕鬆地被拆下來了! 我買的 200 工具組還附了一個撬棒,讓我們把 SSD 挖起來.這 SSD 的上方全部都是電池, 難怪可以號稱用 12 小時.

aaa

兩隻 SSD 排排站.原本的顆粒是 SanDisk 的, 控制 IC 是 Marvell 的. 新買的 SSD, 控制晶片和顆粒都是 Samsung 的.Apple Air 13 年式的 SSD 和 13 年上半年以前的形式不相容, 比較短一點.這點我有注意到, 要是買錯就悲劇了. 基本上 768 GB 和 1TB 的 SSD 都只有 12 年式的 Apple Air 才適用, 13 年式的最大也看到 512 GB.

kkk

換了 SSD 之後, Apple Air 就被視為一台新的電腦.此時可以從 (新的) time machine 中把以前的環境都還原回來.

不過悲慘的部分是 Office 又要啟動一次. 我很不想讓微軟賺我兩次錢. 除了等到上班日打電話到微軟客服中心電話啟動之外,我也再調校一下系統字形吧! 有好幾天都有人說我寄的信變亂碼, 這在我第一用 Macbook Pro 的時候也發生過, 當時是用安裝新細明字形解決的, 最近微軟似乎不給下載新細明字形了,趁這個假期好好研究一下!

對了! 有人說為何不一次就攻頂買大容量的 Air 呢? 實在是因為它只有 128GB 和 256GB 兩款有現貨. 如果要買 512GB 的, 至少要等 3~5 天. 稍微拖一下我就回台灣了, 沒有必要等客製的版本. 再說, 一如我不想讓微軟賺我的軟體錢那樣, 我也不喜歡讓蘋果賺我的硬體錢.自己在淘寶買的 SSD  比蘋果賣的便宜不少!

只有個小東西非買蘋果出的不可,那就是我本來有兩隻 MBP 用的 MagSafe 變壓器, Apple Air 改用了 MagSafe 2,所以要多買個轉接頭,讓原本的變壓器延續它的生命! 

ccc

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

本次來分享的講師是熊健生 (Repus, super 倒過來拚) 學長, 他很特別地帶了大學畢業的女兒來旁聽. 畢竟老爸在家裡講自己的經歷給小孩聽好像自賣自誇, 如果能當著一整間教室的校友公開講,顯然有說服力多了! 這招我覺得挺不錯!

學長說, 因為校友會陳執行長給他的講題是自由發揮, 所以他也特別地苦惱要講些甚麼? 最後他決定分享他的人生經驗, 這樣誰都不能講得比他更好, 甚至挑出毛病了! 熊學長在公開領域的資料非常少, 如果不是他現身說法, 我們從網路上頂多能查到他曾經是振曜 (Netronix, 6143) 的總經理, 建漢 (3062) 的行銷業務處副總,無法得知他的個性或是作風.所以這次能參與這堂課真是難能可貴.

熊學長畢業於輔仁大學 (1986),碩士班就讀於清華大學電機所 (1988),最後是因為參加交大 EMBA (2011) 才與我們結緣.學長今年離開了振曜,加入我們瑞昱前長官李職民副總的雍智科技 [1] 擔任 BU head.哈,世界還真是小呢! 以前李長官在舊廠時還曾經坐在我右手邊的第二個 block. 在查資料時順便看了一下振曜, 它今年組織大調整, 換了總經理、稽核主管、財務主管、會計主管、董事、研發主管,..[2]. 所以雖然振曜去年賺了 8 塊, 學長的離職想必事出有因, 就不研究了.

學長分享的第一個 footprint 是求學時代. 學長說他們的國文老師很喜歡叫人背書, 每次上課都要點人起來抽背. 但老師年紀大了眼睛不好, 課堂又是階梯教室, 所以他們班就有人負責翻找課文朗讀, 被點到站起來的同學只負責動嘴演雙簧.看來這招到學期末都沒有穿梆, 老師還稱讚這一班是歷年來僅見的好學生.這個事件的當事雙方雖然都不可取,但厲害的是學長有自己的見解. 他說這告訴我們在職場上也有內外之分.那些出去跑客戶的業務就是負責動嘴的, 後方的 RD 就是負責唸課文的. 前方演得生動, 都靠後方的支援. 但後勤部隊自己見不了光, 一來客戶的點名簿裡根本沒點到那些人, 二來叫後方 RD 上前線的話搞不好講錯更多, 客戶不知道的什麼致命 bug 全抖出來了哪還得了~~~

第二個是事件是學長大一的時候, 就有大四 (?)學長要他幫忙在體育課代點 – 也就是點名時舉手答"有". 結果學長氣質太像大一, 立馬被體育老師拆穿. 老師說要記學長兩個大過! 這時大四學長也跟老師求情, 說學弟無辜, 都是他要求的. 體育老師說, "好! 那你退學."  後續倒底是被記幾個過, 或是誰被退學就不追究了, 我想老師也是嚇嚇他們. 老師說到一個重點, "一看就不像大四的." 這就是代點被拆穿的關鍵. 學長說, 這給我們一個啟示 – 要知天命. 不要看人家做什麼? 你也想做什麼! 要知道自己有沒有那個條件. 別人可以這樣那樣,我不見得可以.

第三個事件發生在學長就讀清大之後. 學長說他讀輔大的時候, 大家寫好程式要去跟助教登記自己的程式有幾頁, 才能在計算機中心印出幾頁報表紙. 到清大的時候, 有天發現室友抱了一疊報表紙回來, 學長趕忙問他, 這什麼程式那麼大? 結果室友說, 沒! 這是計算紙. 這種資源上的貧富差距也給了學長相當的震撼. 學長說這告訴我們 run 公司也要看有多少資源. 資源多有資源多的作法, 沒有資源就不要去做資本密集, 人力密集, …之類的產品.

學長考清大電機研究所的時候也發生過一件趣事, 那就是他兩場口試中有一場完全答不出來. 老師的題目是 :"假如有一個系統壞掉了, 甚麼顯示都沒有要如何 debug?" 學長只能回答不知道. 即使老師進一步提示: 要找出 blockdiagram, 然後…學長還是說不知道. 一路不知道到底,這部分看來是沒分數了. 不過即便如此, 學長還是考上了電機研究所. 我想學長的筆試成績應該相當地傑出. 因為他還說如果是某幾個學校的畢業生去口試, 老師根本不問那麼多, 直接帶他們參觀實驗室. 在我印象中, 那時的研究所非常難考,頂尖科系的錄取率只有 8%,熱門科系大概也只有十幾個百分比的錄取率. 呃…那這件事給學長的啟示是什麼呢? 學長找了把他問倒的這位老師當指導教授.

學長說, 既然這老師那麼厲害, 不如就跟他吧! 說也有趣, 這位老師竟然願意收什麼都說不知道的學生. 不過在往後的兩年當中, 指導教授不斷地當眾指正學長的做事的方法和態度. 像是參加 seminar 聽不懂怎麼不問? 跟教授討論論文怎麼沒有帶 engineering book? …在老師不斷地要求之下, 學長的習慣也改變了. 後來因為每次問問題, 問到老師都要把問題帶回去研究, 說下次再回答你. 學長說, 他一生中有兩個貴人, 他的指導教授就是其中的一個. 雖然被指責很讓人難過, 但是也因為這樣才得到成長. 如果一個人隨隨便便, 不可能變得 outstanding.

接下來學長分享在建漢 (CyberTAN) 的經驗.他在建漢的時候是負責業務,有一次和董事長、總經理去拜訪他們最大的客戶.結果客人說, 我們不用認識太多, 反正你們五年換了五個總經理, 認識了也沒用, 這次是最後一次用建漢的產品, 下次就不用了. 身為業務頭頭, 學長聽了當然很無言. 然而, 即便公司很亂, 學長最後還是把生意做起來了, 也贏回客戶的信任.學長說, 在搭順風車的時候看不出能力的高下. 只有在逆境的時候, 能夠臥薪嘗膽、反敗為勝才是真本事. 出錯的時候要把功勞給員工, 過錯自己背. 因為部屬的錯就是你的錯!

後來建漢被鴻海併購, 學長又遇到了他第二個貴人. 鴻海體系下壓力很大, 擔任主管的人都要有肩膀扛起來. 要有什麼肩膀呢? 首先不能變成傳聲筒, 老闆要你做什麼? 你就 by pass 下去, 沒有自己的想法就是傳聲筒. 一方面對主管的要求要能做到,另一方面還要有附加價值, 把自己的價值附加在主管的指令上面. 附加價值的大小決定你在組織裡面的地位 / 位置. 學長說, 如果你只是個傳聲筒, 在鴻海很快就被拔掉了. 人家跳過你就好, 何必付你薪水?

在金融海嘯時期, 學長說他學到一切沒有藉口, 再怎麼樣人家都能賺錢,自己當然也要能. 做業務的人可以有 100 個理由達不到業績: 產品不好啊, 開發進度 delay, 競爭對手倒貨,…聽起來都很合理. 不過業務就是成果導向,特別就是當頭頭的人, 除了各種內外在因素, 最重要的就是努力. 學長說當年有人跟 BG (business group) head 反映公司停車位不夠, 大老闆說, 不會啊, 我一大早來停車位都是空的; 下班的時候停車場也是空空的, 車位怎麼會不夠? 雖然此言一點都不合邏輯, 但是言下之下大家都明白, 活該晚到的人沒車位.

學長說當他三四年前回鍋振曜的時候, 他真正做到當責 – 把公司當作自己的. 經過 3 年的努力, 振曜從每股 EPS 2.32 成長到 8.08 塊. 其中有一件重要的事情就是讓老員工改變思維. 從不同的角度看同一件事,意義完全不一樣. 這邊的細節應該是相當精彩, 不過我暫且沒有時間研究; 如果用猜的, 會認為是元太入股振曜, 所以後來產品主力變成電子書的關係.

最後, 學長有個 "one more thing" – 套用 Jobs 名言. 做人要有格調, 不要受外面的影響就改變自己的原則. 過去他也是個好好主管, 對部屬的表現部會特別說什麼, 怎樣都好.但他後來也學到像他的指導教授一樣, 對於員工要有要求、要給訓練, 這樣員工才會有更大的成長. 或許員工當下也會牙癢癢的, 但只有被要求了才會成長, 部屬只是 free run 的話, 主管背了他們的責任, 相當於是靠天吃飯, 也在 free run.要有自己的原則, 才能展現價值.

當課程中場休息, 同場加映了一部短片 [3].簡單地講, 這就是 “老師你會不會回來?" [4] 的 23 分鐘視訊版.片子非常感人, 看視訊比讀書更有感覺. 但, 我未讀的 mail 太多, 數量已經不好意思寫出來了, 所以沒參加到 Q&A 就先離開了.

[ref]

1. 雍智科技

2. 本國及第一上市(櫃)公司(含98.10.30前TDR重訊)

3. 翻轉就是嘗試回到事物本身應該有的樣子 | 王政忠 | TEDxNCCUED

4. 老師,你會不會回來

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

本次我們請到的講師是控工 81 級的郭加泳學長, 雖然郭學長不是上市櫃公司的董事長或是總經理, 但身為互貴興業 [1] 總經理的他, 被校友會執行長陳俊秀學長掛保證 "未來肯定是". 為何郭學長能夠得到這麼大的肯定呢, 就是人對了! (互貴興業這麼賺錢應該不用上市才對, 哈!)

所謂的互貴, 顯然就是指 "互為貴人", 這熟悉的字眼來自於交大校友會十六字箴言: 飲水思源實事求是終身學習互為貴人.不消說這互貴興業算是交大校友會的 "關係企業". 雖然互貴興業的創辦人和交大校友會總會理事長同樣都是宣明智學長,但是互貴興業的業務範圍不僅僅是服務交大校友, 而是要把台灣的生技產業帶進大陸市場.畢竟電子業對於兩岸已經是成熟的產業, 而生技業卻是可以預期的明日之星.

從郭學長的分享當中, 我們多少可以捕捉到互貴興業的獨特性. 為什麼別家不能? 一定要是互貴興業才能把生技業帶進大陸呢? 原因就在於中國的國務院副總理汪洋,和宣學長頗有淵源.在公開的資料上可以找到兩份舊資料, 一個是宣學長曾經擔任廣東省政府策略顧問, 協助廣東省成立山寨版的新竹科學園區 – 東莞松山湖高新園區 [2], 另一個是 2009/10/23,宣學長帶領台灣高科技業高層訪問廣東省委書記的汪洋 [3] .後來汪洋步步高升, 宣學長也從科技業大老變成生技業代表; 兩位大老當然關係匪淺.  附帶一提,第一批訪問松山湖的科技業高層還包括裕隆、京元電子等等大企業 (2009/6/23). 第二批科技業則包括了螃蟹公司在內, 哈!

有趣的是, 宣學長並不是生技公司的董事長或是總經理, 他要如何代表台灣的生技業呢? 很簡單, 郭學長說他和宣學長、陳執行長三個人討論之後, 就決定自己創一個組織.後來這個組織的角色日後就由互貴興業取代.當新創公司需要資金的時候, 郭學長代表的交大天使俱樂部負責資金; 互貴興業則提供企業前進大陸的直通車 – 菀榕計畫.這樣從資金到工廠、市場都可以一氣呵成! 解決證照 (台灣 = 外資)、通路 (地頭蛇)、政策 (副總理背書)、和資金 (交大天使俱樂部) 的問題.

所謂莞榕計畫是由互貴興業和東莞市政府的合作方案,由互貴興業遴選台灣20 家有潛力的醫療生技公司,透過互貴興業和雙方合資的國營東莞市生物技術產業發展公司,提供從證照申請、行銷通路、政策支持及資金後援的一條鞭服務,協助台灣業者快速進入中國市場。 至於東莞生技的獲利模式則是取得業者3 年的廣東區總代理,負責省內的醫療通路推廣。東莞市政府目標則在於招商,計畫總額15 億台幣的補助資金,將依照業者落戶松山湖、營業額達首要目標、營業額再達下階段目標等,3 個3 年的里程碑,分階段透過東莞生技投資和業者成立合資公司。[6]

大致瞭解了互貴興業的營運之後, 再來介紹一下交大天使投資俱樂部. 這個俱樂部有個 11 人決策小組 (working group), 如果全體一致通過投資對象, 天使們的資金就會進入到這家新創公司. 由於每位天使所佔的投資金額不高 (例如 5 個 angel 各佔 10%), 在新創公司的股份相對有限, 此時交大天使俱樂部的 working group 成員就會擔任所有天使的代表董事. Angel 們把 10% 的股份捐給交大校友會做為俱樂部代理董事工作的報酬,而新創公司也要對等捐 5% 給交大校友會, 作為 working group 幫忙找資金的報酬.據說這個模式相當成功, 成為多個投資公司爭相模仿的對象! [7]

講了這許多, 還沒有提到郭學長本身.郭學長和其他以前來上課的學長有比較不同的經歷,他在交大控制系唸書的時候重心主要放在社團, 所以學科成績不佳; 多拚了一年後考上隔壁的清大電機研究所. 不過學長沒把碩士讀完, 而是肄業後跑到聯電上班. 我想郭學長無論是從清大拿到學位、或是在聯電努力上班, 或許最後都只會是個園區上班族. 但郭學長在工作中發現自己有管理的興趣, 於是轉換跑道去拿交大科管所的學位; 另外為了彌補沒有唸完工程碩士的遺憾, 交大清大又都唸過了, 學長最後是畢業於台大電機的碩士班. 當他轉到創投業發展, 學長發現身邊的同事大多是 MBA, 因此也到芝加哥大學唸了 MBA 回來.在求學 (歷) 的過程中, 學長雖然走了一條彎路, 但是台清交和芝加哥大學都念過, 理工和科管/商管的學位都有, 這內容也太豐富了!

前面講的都是外在的人事物, 最後我整理一下郭學長的心法.學長引用了幾本書, 我想這些都是他喜歡的作品. 其一是拿破崙.希爾 <致富思考> (Think and Grow Rich), 我們都知道這位作者是著名的勵志學和成功學專家.所以他說的 Rich 就是變有錢, 而不是變豐富,呵! 書上說你要很想很想變有錢, 有了熾熱的慾望才會真的有錢! 因此郭學長也說我們要做個人的自我修練, 讓思想變成具體的東西,產生信仰和力量! 學長說, 他在團隊當中都會扮演發電機的角色, 讓自己變成 key man. 透過事先在心中預演, 並自我暗示讓自己變成領導者.

除了好的東西要放進腦袋, 也要把不好的東西排除在外. 像是別人沒事來倒垃圾、吐苦水, 學長把它比喻在你的家裡丟垃圾. 好腦袋一顆比千萬豪宅要有價值多了, 家裡都不能容許客人丟垃圾, 大腦當然也不允許. 他引用了馬克吐溫的一句話說: "離開那些想要消弱你企圖心的人。小人總會那麼做,但真正的偉人會讓你覺得,你,會變得很偉大。" 我筆記來不及記哪麼快, 還好 <菜根譚> 裡面也有這句~~~

至於團隊的信仰, 和個人是不同等級的.因為每個人想要的東西都不一樣, 所以需要溝通. 沒記錯的話, 個人的修練只要做到 step 1~6, 團隊的修練還要加上 step 7~10.

1。 想賺多少錢?
2。 為了 step 1 的目標, 必須決定我要付出什麼?
3。 訂出達成目標的日期
4。 定好計畫, 立即行動
5。 把以上 4 個步驟寫在紙上
6。 每天大聲唸
7。 選擇不怕失敗的人
8。 團隊的回報是什麼?
9。 一週要有兩次的團隊會商
10。經常做心靈上的溝通
 
另一本學長喜歡的書來自杜書伍學長, 我推測是指 <年輕人的資產與負債>, 這上面說年輕人要用衝百米的精神努力工作, 快速累積經驗, 久而久之就會和同儕有差異. 郭學長特別強調, 如果迅速累積速 3 倍的打雜經驗也是枉然, 這點要注意. 另外又因為從一個層級到另外一個層級的爬升中間會有平坦期. 很多人會覺得自己一直沒升遷, 受不了想跳槽. 郭學長提醒大家想要升得愈高, 就會跨領域或是跨產業, 當然它的平坦期就愈長, 這段時間要好好累積能量, 等待機會, 不要太浮躁.
 
講到這邊, 陳執行長忽然點名他認為升遷超快的吳冠良學長起來發表感想. 冠良兄一不推辭, 二不囉嗦, 花了大約一分鐘做簡短的分享, 既有風度又不搶講師風采, 這招我要特別學起來. 
 
後續本來還有精彩的 Q&A 時間, 但中場休息時我看了一下手機, 還沒看的信已經超過 100 封了. 以這種速度累積, 別說未來當什麼高階主管, 恐怕連門前雜魚也混不成了. 於是趕快打道回官府看 mail, 後續利用假日把參考資料查一查, 最後補充成這篇, 希望沒有太失真的地方.

[REF]

1. 互貴興業生物科技股份有限公司

2. 宣明智再出手!成立互貴興業 打造兩岸生醫橋樑平台

3. 汪洋會見臺灣高科技企業高層 繼續支援臺企發展(2009.10.23)

4. 松山湖發揮優勢 全力打造“珠三角IC 谷”

5. 交大天使投資俱樂部

6. 台灣新、好產品 大陸廣、深市場 宣明智:兩岸生技「氣根發展」理論

7. 獨家/科技大老闆的最愛 揭秘交大天使投資俱樂部

DivX 專利小整理

DivX 有哪些專利呢? 到 USPTO 找了一下, 一共有 14 篇, 其中有兩篇是延伸自他們先前的專利.

專利字號 專利名稱 極簡摘要 生效日
8,510,303 Singular, collective and automated creation of a media guide for online content 可以對 user 觀看的內如打 tag, 然後送特定資料給 user. i.e. push 廣告之類的. 2013/8/13
8,472,792 Multimedia distribution system 一個多媒體檔案中有兩種 index, 第一種指到 video frame, 第二種指到一群 video frame. i.e. 做 trick play. 2013/6/25
8,301,793 Chunk header incorporating binary flags and correlated variable-length fields 一個多媒體播放系統, 檔案中有 pointer 指到下一塊 data 的位置, 使得檔案能夠依不同的方式播放, 而不會讓檔案大小明顯增加. 2012/10/30
8,289,338 Systems and methods for font file optimization for multimedia files 檔案系統中的字形檔 (font file) i.e. 字幕等等的儲存方式 2012/19/16
8,233,768 Hierarchical and reduced index structures for multimedia files 用 index 技巧保護 content 2012/7/31
8,201,264 Federated digital rights management scheme including trusted systems 聯邦式的 DRM 保護, 延伸 7,515,710 2012/6/12
8,139,651 Video deblocking filter deblock filter, 延伸 7,886,069 2013/3/20
7,886,069 Video distribution system including progressive playback 根據 user 的指令更新遠端的媒體播放內容 2011/2/8
7,729,426 Video deblocking filter deblock filter 2010/6/1
7,664,872 Media transfer protocol 從 server 到 CE device, 根據特性使用不同的 data rtae 傳輸 2010/2/16
7,519,274 File format for multiple track digital data 多個 track 的檔案格式 2009/4/14
7,515,710 Federated digital rights management scheme including trusted systems 聯邦式的 DRM 保護 2009/4/7

7,460,668

Optimized secure media playback control 不用連到外部電腦就能註冊的的播放控制系統. 2008/12/2
7,295,673 Method and system for securing compressed digital video 加密某些 video frame, 但不用加密 reference  到加密 frame 的 frame, 2007/11/13

雖然大家對於 DivX 的認知是一個 video format, 或是一個有 DRM 保護的片商. 但是它主要的專利在於檔案格式, DRM, 以及 de-blocking. 真正和 video 播放有關的專利, 倒是付之闕如. 最有趣的是, 在專利  7,519,274 當中, 它以具體實施例偷渡了這麼幾段話:

DETAILED DESCRIPTION OF VARIOUS EMBODIMENTS 

In accordance with the present invention, the version of the video codec used in AVI files is signaled by the FourCC code in the fccHandler field or member of the AVISTREAMHEADER of the corresponding stream header `strh` chunks, and the FourCC code bicompression field or member in the BITMAPINFOHEADER of the corresponding `strf` chunks. 

By way of example, for videos encoded according to a codec developed by DivX Networks, Inc., 10350 Science Center Drive, Building 14, Suite 140, San Diego, Calif. 92121, the FourCC codes fccHandler in the stream header (`strh`) of the AVISTREAMHEADER is set to "divx" or "DIVX". Furthermore, the FourCC (DWORD) code biCompression in the BITMAPINFOHEADER of the corresponding `strf` chunks is set to signify the detailed codec version. 

Specifically by way of example, for version DivX 3.11, `div3` or `div4` is used in AVISTREAMHEADER, and `div3` or `div4` is used in BITMAPINFOHEADER; for version DivX 4.x, `divx` is used in AVISTREAMHEADER, and `divx` is used in BITMAPINFOHEADER; and for version DivX 5.x, `divx` is used in AVISTREAMHEADER, and `dx50` is used in BITMAPINFOHEADER. 

By now it should be appreciated that a file format for storing digital data with a high compression rate has been described. A file format in accordance with the present invention is compatible with high level data compressing algorithms, such as MPEG-4. Its data compression ratio is about six to ten times higher than a standard DVD format. In accordance with the present invention, the file format is capable of storing data in multiple streams or tracks. The file format is also able to encode and archive video, audio, and text data on easily accessible streams or tracks. Furthermore, the file format is able to provide protection of the copyright of the digitized content. 

While the invention is susceptible to various modifications and alternative constructions, certain illustrated embodiments thereof have been described above in detail. It should be understood, however, that there is no intention to limit the invention to the specific form or forms disclosed, but on the contrary, the intention is to cover all modifications, alternative constructions, and equivalents falling within the spirit and scope of the invention. The present invention is limited only by the claims that follow. 

儘管 DivX 努力在不具備專利效力的章節裡面幫自己打廣告, 重申 DivX encoder 的優點,還是難掩它沒有主流 encoder 專利的缺憾.畢竟 encoder 做得再好, 還是要和 decoder 相容. 就以 7,519,274 這個專利來說,它只能在檔案格式上做文章.雖然專利名稱有 multi track, 但申請專利的人並沒有忘記把一個 track 的狀況包括進去.以他們的第一條 claim 來說.

1. A playback device configured to play data encoded in a multimedia file, comprising: a processor configured to read the multimedia file; wherein the multimedia file has at least one video track and includes a video stream descriptor list comprising: a video stream header chunk; a video stream format chunk following said video stream header chunk; and a video stream name chunk including a string indicating a video stream in said at least one video track; said video stream descriptor list further comprising a video stream header data chunk in response to said at least one video track being a digital rights management (DRM) protected video, said video stream header data chunk following said video stream format chunk in said video stream descriptor list; said video stream header data chunk in said video stream descriptor list including a DRM information data block comprising: a first member specifying a version of the DRM; and a second member specifying a protection of the DRM said DRM information data block in said video stream header data chunk having a data structure defined as: TABLE-US-00020 typedef _DRMinfo { WORD wVersion; STR sDRMinfo; } DRMINFO. 

看了雖然很眼花, 但簡單講就是: 多媒體檔案在 video stream descriptor 裡面有至少一個 video track, track 裡面有 video stream descriptor. 其中又有 video stream header chunk, format chunk, name chunk, data chunk, format chunk. 在 data chunk 裡面有 DRM revision 和 DRM information data chunk.

以我的認知是, 如果只有一個 track, 而且不受 DRM 保護, 就不受這一條的限制 – 因為那樣把所有傳統的檔案都包括進去了.為了防堵那些不用 track 為單位的檔案, 本專利在 claim 42 強調包含 multiple chapter. 而 claim 43 涵蓋只有一個 chapter, 但是有多個 data chunk 的狀況. claim 45 規範有 subtitle 檔案, claim 46 則規範有 subtitle, 但分成多個 data chunk 的狀況. claim 48 又把前述的 subtile 狀況, 加上有 DRM 時的例子…, 目標很顯然就是想一網打盡, 能想的都想了…從這個角度來看, 還真是滿厲害的.

 

在 Android 底下使用 CGROUP

CGROUP 是什麼呢?在 WIKI [1] 裡面簡直沒有幾行字, 要看懂不容易. 簡單地說, Linux 裡面有很多 process, 我們為了分而治之, 所以增加 group 的虛擬觀念. 每個 group 的 process 能夠使用的資源會有不同的限制. 比方說, 某些 process 可以用雙核, 某些 process 只能用單核. 某些 process 可以用 2GB DDR, 另一些 process 只能用 128MB.

我們可以在 console 下面 cat /proc/cgroups. 就會看見, 有 cpuset, cpu, cpuacct, memory, device, freezer, blkio, net_prio 等幾個 subsys_name. 而且他們各自有 hierachy, cgroups 的數目, 以及 enable 與否. 因為 Linux 底下的排版跑掉了, 所以除了第一列, 其他每一列都縮排.

android cgroup

以上面的 Android 系統為例 (Android 底下也是 Linux), 其中 cpuacct 這個 subsystem 就有 48 個 cgroup 之多. 什麼是 cpuacct 呢?它是指 CPU accouting control [2].  假如 Linux 沒有生成 cpuacct 這個 cgroup, 我們可以用 command line 產生.

mount -t cgroup -ocpuacct none /sys/fs/cgroup/cpuacct

我用原生的 Linux 3.10 只看得到 memory 在 cgroup 的目錄下. 使用上面這個 mount 指令後, 我們可以在 /sys/fs/cgroup 底下看見 cpuacct. 如果這個 cgroup 已經成立, 我們就可以看到一些統計資料, 例如 cpuacct.stat, cpuacct.usage, cpuacct.usage_percpu…等等. [Note 1]

cat /sys/fs/cgroup/cpuacct.stat 可以看到 user 和 system 各自用了多少 cpu 時間, 例如:

user 100352

system 79817 (單位是 user_hz [3])

cat /sys/fs/cgroup/cpuact.usuage 得到

2096699156712 (單位是 ns)

cat /sys/fs/cgroup/cpuacct.usage_percpu 得到兩顆 CPU 的數字

1145393229564    952319269088

兩者相加就是 cpuacct.usage, 不過不是同一個時間, 所以數字又變大了. 光看統計數字沒有太大的幫助, 我們要怎麼使喚它呢?根據 [REF 4] 的說法, 至少有三種方法可以做到. 其中 command line 和 libcgroup 的方法都被它介紹過了, 還有一個 LXC 的方法, 在 [REF 5] 當中有說明.

我這邊就只整理 command line 的方法, 因為它最容易了解 cgroup 目錄階層的意義.我們可以手動在 /sys/fs/cgroup 底下操作.

[CASE 1] 如果要限制的是可以用幾核的 CPU, 比方說雙核中, 誰可以用兩顆 CPU, 誰只能用 (某) 一顆, 那麼要先設定第一核與第二核的定義.

cd /sys/fs/cgroup/cpuset

sudo mkdir first_core

echo 0 > /sys/fs/cgroup/cpuset/first_core/cpuset.cpus

sudo mkdir second_core

echo 1 > /sys/fs/cgroup/cpuset/second_core/cpuset.cpus

接下來開始分配, 假設有兩個 process, pid 分別為 1185 和 1195.

echo 1185 > /sys/fs/cgroup/cpuset/first_core/tasks

echo 1195 >/sys/fs/cgroup/cpuset/first_core/tasks

echo 1195 >/sys/fs/cgroup/cpuset/second_core/tasks

結果使得 pid 1195 可以用雙核, 而 1185 只能用單核.

[CASE 2] 若是要進一步把 pid 1185 的使用權種降得更低, 我們就要定義出比重. 

cd /sys/fs/cgroup/cpu

sudo mkdir high

echo 2048 > /sys/fs/cgroup/cpu/high/cpu.shares

sudo mkdir low

echo 512 > /sys/fs/cgroup/cpu/low/cpu.shares

此時高低權重就出來, 接下來同樣是把 pid 加入 task 當中.
echo 1185 > /sys/fs/cgroup/cpu/low/tasks

echo 1195 > /sys/fs/cgroup/cpu/high/tasks

這樣在同一顆 CPU 中, 1195 也可以拿到 1185 四倍的 CPU 時間.

[CASE 3] 如果要分配記憶體的用量, 首先要設一個會限制記憶體的 group, 例如 limited_memory.

cd /sys/fs/cgroup/memory

sudo mkdir limited_memory

將它的記憶體上限定為 128M Bytes

echo 128000000 > /sys/fs/cgroup/memory/limited_memory/memory.limit_in_bytes

然後江這個 pid 加到這個 group

echo 1185 > /sys/fs/cgroup/memory/limited_memory/tasks

如果它的記憶體用量硬是超過限制, 它會 swap 到 disk, 不會用 DDR. 不過看來這樣也會拖累效率就是了.

[ref]

1. 中文版 WIKI

cgroups(控制組)是Linux核心的一個功能,用來限制報告和分離一個行程組的資源(CPU、記憶體、磁碟輸入輸出等)。這個工作是由Google的工程師(主要是Paul Menage和Rohit Seth)在2006年以「process containers(行程容器)」的名字開始的;[1] 在2007年的晚些時候被重新命名為控制組(由於在核心中「容器」這個名詞的歧義引起的混亂)並被合併到2.6.24版的核心中去。[2] 自那以後,又添加了很多功能和控制器。

cgroups的一個設計標的是為不同的應用情況提供統一的介面,從控制單一行程(像nice)到系統級虛擬化(像opeNVZ,Linux-VServer,LXC)。cgroups提供:

  • 資源限制:組可以被設定不超過設定的記憶體限制;這也包括虛擬記憶體。[3] 原來的分頁機制是在Linux研討會的Containers: Challenges with the memory resource controller and its performance報告中提出的。[4]
  • 優先化:一些組可能會得到大量的CPU[5] 或磁碟輸入輸出通量。[6]
  • 報告:用來衡量系統確實把多少資源用到適合的目的上。[7]
  • 分離:為組分離名稱空間,這樣一個組不會看到另一個組的行程、網路連線和檔案。[2]
  • 控制:凍結組或檢查點和重新開機動。[7]

2.  CPU Accounting Controller

3. 3.3. cpuacct

4. Linux Control Group 介紹

5.  lxc 建立和設定虛擬機器

[Note 1] 同理, 我也可以 mount -t cgroup -ocpuset none /sys/fs/cgroup/cpuset, 不過需要手動在 cgroup 底下建這些目錄才 mount 得到. 我用 Linux 3.10, 最初 cgroup 底下只有 memory 一個目錄而已.

建完新目錄之後, 底下就會自動繼承出一大堆子目錄. 例如 cpuset 底下的 first_core 就會自動有 cpuset.cpus.