Android Market 的運作機制

當我們從 Android Market 買一個 Application 的時候, Market 的 client 就會去問 server, 這個 application 對於這個 user 的狀態是什麼? 此外, 這個狀態不只是付費了沒有? 而是包括了詳盡的特殊條件 (custom constraints), 比方說只是試用一段時間、只能裝在特殊的平台…等等的 policy.

當 application 在 check status 的時候, 會產生一對 RSA key 來做加解密. Public key 會存在 myApp.apk 裡面, private key 用來與 server 溝通. 當 Application 想要知道它的license status, 它可以 call License Verification Library (LVL) 裡面帶有 callback function 的 library checker method.

Market client 負責與 market server 溝通, 它會收集 Google Account username, 手機的 (International Mobile Subscriber Identity), 和其他資訊送給 server 確認. Server 檢查過 user 資料, 並且檢查過購買紀錄之後, 就以 call back function 把 license 的狀態傳回給 client.

在 Java 的理想下, 一隻 AP 可以 write once, run everywhere. 不過前提依然是要能夠賺錢. 不收錢的軟體, Android Market 就不需要動用 license 檢查的機制的, 但對於收費軟體,  Android Market 讓花功夫寫軟體的人, 可以保障他的權利, 只要這個軟體是透過 Android market 所發佈的. 為了追蹤合法性, Android market client 必須要先在 host 上面跑 Android 1.5  以後的版本.

為了要確認 license 的狀態, Android 必須要上網, 或者是記住 (cache) 上次上網的狀態.

[ref] http://developer.android.com/guide/publishing/licensing.html

 

大家的日本語 – 18 課

第 18 課的重點在辭書形, 基本上 group 1 動詞的辭書形, 最後一個音都是在第三段: う、く、す、つ、ぬ、ふ、む、ゆ、る. ます 形在第二段, ない 形在第一段. て靠唱歌背公式. 辭書形用法包括下面幾個:

1. 會什麼? 能做什麼?

A さんは 漢字を 讀む ことが できます。讀 (よ)みます 變成 讀 (よ)む.

→ A 先生會讀漢字.  片語 ことが できます 就表示會某某東西, 能做某某用途.

其實 できます (できません)就是能不能、會不會的意思. 如果會的東西是動詞, 將ます形改為辭書形 + こと 就等於是動名詞了, 後面加 が , 表示等同於名詞. 如果是純粹的名詞, 用法如下:

Aさんは 英語が できます.

→  A 先生會說英語.

2. 以動名詞描述事件

わたしの趣味は  映畫を  見る ことです.

3. 表示時間的先後順序, 發生在後面的用辭書形, 放在整句的前面. 發生在前面的用 ます形, 放在後面.  這裡也順便交了先後順序的用法.

寢る まえ(前)に 日記を  書きまま.

前面可以接:

(1) 名詞 + の

→中元のまえ(前)に  旺旺を 買います.

(2) 動詞辭書形 (如上)

(3) 時間

→3 年まえに 結婚しました.

[note] 前(まえ) 常用假名, 好像不太用漢字.

令人不解的資訊

日月光半導體和螃蟹公司並沒有太多淵源, 因為螃蟹主要找另外一家做封裝測試.

這幾個禮拜以來, 因為常常把報紙的廣告版墊在飯碗下面, 搬到電視機前面去吃電視餐. 大篇幅的日月光半導體徵人啟事, 便經日累月地出現在我的碗底正下方.

奇怪啊! 只不過徵 100 個生產助理員, 又是額滿為止, 這樣需要徵好幾個月嗎? 顯然, 台灣人已經不太願意做類似的工作了. 難道那些失業、沒飯吃的窮人, 連高中畢業的學歷都沒有嗎? 為什麼不願意找個穩定的工作呢?

中華徵信所出了一版專刊叫做 "放久了就會賺的定存概念投資", 裡面介紹 10 隻可以放 10 年, 又賺進不錯殖利率的股票. 其中台塑集團就占了 2 支吧! 不過如果去看同期的今周刊, 主題卻是台塑神話破滅.  我個人相信, 中華徵信所的敏感度絕對不如今周刊, 前者只從過去的歷史裡面挖掘寶物, 又難以捨棄前 500 大製造業才能定存致富的包袱, 難免掉進自己的陷阱當中. 其中選了一隻中華汽車, 如果誰抱到 2008 年, 即使是抱了 9 年之久, 抱歉! 您是虧錢的.

當然, 今周刊也不是發財指南, 它說傳產要出頭天了, 因為大陸的內需增加. 20 年風水輪流轉. 不過內需增加只要穿衣吃飯, 卻不用買 3C 產品嗎? 這不能解釋為何傳產抬頭, 3C 急凍啊? 反之, 工資調漲應該醞釀 3C 大爆發的契機才是.

DOCSIS 小註解

DOCSIS 是有線電視傳輸 data 用的規格, 全名為 Data-Over-Cable Service Interface Specifications. 就是它使得電視也可以用 cable modem 上網. 其中 3.0 規格支援 IPv6, 而且全系列都是相容的.

規格 下行速率 (Mbps) 上行速率 (Mbps)
DOCSIS 1.0 30 10
DOCSIS 2.0 40 30
DOCSIS 3.0 200 100

在 fiber to home 的世界裡, EPON (Ethernet PON ), GPON (Gigabit PON ) 是現在的主流技術. 所謂的 PON 就是 passive optical network – 光線被動網路. 簡而言之, 就是 Ethernet 跑在光纖上. 但 DOCSIS 呢? 最後一段不是同軸電纜嗎? 這就是 DOCSIS 4.0 想要著墨的 DPON 技術, 集合 DOCSIS + PON 兩者的特性.

但也有人吐槽 DOCSIS 4.0 不應該存在, 只要把 DOCSIS 速度一直加快就好了. 這個出現在 DOCSIS 4.0 的 Google search 前幾名, 所以順便提一下. 至於通到家裡的網路, 我想光纖 (即便進社區的最後一百公尺其實是電話線) 和同軸兩條應該都會同時存在, 有兩條路可以上網似乎也不壞. 雖然說空氣中還有一個寬頻的 3.5G (HSDPA) 和未來的 4G (LTE) 揮不去又可能有害健康地存在著.

[ref]

A Proposal for DOCSIS 4.0


Git 小檔案

Git 是一個罵人的字, 意思大概是蠢蛋, 由 Linux 的作者 Linus Torvalds 所命名. 說到 Git,  總有些人不熟悉, 但是講到它的競爭對手 CVS, Subversion 大家應該就有點感覺了吧!

Git 算是個分散式的版本管理系統, 和笨重的 SVN 相比, 它只記錄 content 的變化, 而不以檔案為管理的對象. 基本上 Git 由 blob object (file's content)、tree object (directory)、commit object (tree's history)、和 tag object (metadata 的 container) 所構成.

因為 Git commit 的動作可以在 local repository 就完成, 所以可以同時 maintain 一個量產的版本, 一個或多個的 branch 開發新 feature, 卻不用為每一個 branch check out 到一個 local 的目錄. 等到連上了網路之後, 做一個 push 的動作, 才把 local 的東西 commit 到 server.

Git 可以對所有的 object 做 SHA-1 的 hash, 把 hash value 當作 object 的名稱. 因此一段 code 從 A.h 搬到 B.h, 就等效於一個 object 搬家, 加上對應的 object 跟著改變 (object 支援 zip 的壓縮). 反觀 SVN 中, 這意味著 A.h 和 B.h 獨立地改變了. 若下次只 check out A.h, compiler 就會報錯.

只靠這樣粗淺的了解, 我覺得 git 至少比 SVN 節能減碳,少用很多硬碟空間 – 不必為每顆 IC 建一棵樹. 但不知道全靠 metadata 來維繫的 "假的 branch" 是不是比較容易毀損呢? 目前看到 Git 不如 SVN 的地方就是它沒有 Windows 的版本. 如果這個東西做出來, SVN 咳咳, 可就要 bye bye 了. 請看迴響 1, Git 也有 Windows 版囉!

[ref]

1. http://en.wikipedia.org/wiki/Git_(software)

2. http://ihower.tw/blog/archives/2591

3. http://ihower.tw/blog/archives/2620

4. https://peepcode.com/products/git-internals-pdf (賣 9 USD)