Where I write about tech and life.
-
Android 2.3 Introduction & Statistics
如果你有收看 LWN.net 的話,大概知道每次 linux kernel 有新的 release 前 都會有一次針對這次 release 的統計資料,看看主要的貢獻是由哪些人,哪些 公司完成。藉由這次跟 0xlab 分享 Android 2.3 新特性的時候,我學 LWN.net 做了一些小統計,還滿有趣的。 Most active Android 2.3 organizations (by changesets) 4204 google.com 1354 android.com 98 sonyericsson.com 71 gmail.com 39 codeaurora.org 39 samsung.com 38 intel.com 32 nokia.com 32 holtmann.org 29 0xlab.org 25 trusted-logic.com 17 openbossa.org 11 nxp.com 11 linux.org.tw 10 […]
-
Convert Texinfo to MOBI
GNU software often comes with a large set of documents in texinfo format, which can be typesetted to a real book. For example the Gnus Manual has over 500 pages, full of fun and humor. Having a mobi version on my Kindle would be quite handy.
-
Understanding UUID
通用唯一識別碼 (Universally Unique IDentifier, UUID) 或是全域唯一識別碼 (Globally Unique IDentifier, GUID) 是一個 128 bits 的整數,並保證其在時間與空間的分佈都是獨一無二的。UUID 由開放軟體基金會(OSF) 標準化後用在他們的 DCE 系統上,後來在微軟的 COM 系統上發揚光大。除此之外在許多地方也都可以看到 UUID 的身影,如 Linux 上的分割表/區塊裝置就是以 UUID來標示,或是RSS 的 <guid> 標籤也可以使用 UUID,實際上 UUID 是標準的URN 表示法之一,你可以在任何需要標示單一物件的地方使用 UUID。 UUID 的文字形式為一個 8-4-4-4-12 的十六進位表示,共有 16 個 bytes,有人說使用 UUID 不方便人類辨識,但了解 UUID 的組成後你還是可以從這個表示法看出一些端倪來。本文參考的是 IETF 版本的 RFC4122。 UUID 共有四個版本,第 13 個字元的位置就是表示版本號。第一種是以時間和網路卡號組成,時間是以一百奈秒為單位,網路卡號理論上是不會重複的,再加上clock_seq 這個每次開機重設一次的亂數欄位,就算時間回朔了也不會重複,代號是 1。第二種和第四種是以命名空間加上一個 hash 組成的,分別可以使用MD5 […]
-
Blog Redesigned
最近又把 Blog 整頓了一番,目標是改用靜態網頁。使用靜態網頁搭配一些網頁樣板程式不禁讓人想起最初使用 MT 來寫 Blog 的時候,不同的是現在有像Disqus 或是 IntenseDebate 這樣的動態留言服務,讓網頁可以完全的只提供靜態內容,不用多一個 cgi 程式來提供留言功能,這隱然成為最近流行的網頁設計方法之一。 轉換的過程中學到一些新東西,紀錄於此。 網頁編譯器 現在網頁是用產生的,它是大師 Joey Hess 的作品,大師稱它是一個wiki compiler,可以透過各種規則把網頁的原始碼 (可能是 markdown 的格式) 轉成 HTML 網頁。因為強大的 inline 規則以及各式各樣的外掛程式,也有許多人把 ikiwiki 當作Blog 的平台。 轉換的過程其實滿順利的,因為舊的 Blog 都是以 Markdown 寫成,換到ikiwiki 的 Markdown 引擎只需要一點點修改。要感謝 WordPress 可以把資料庫匯出成 XML 格式,轉換只需要簡單的 XSLT 就完成了,我用的XSL 是參考這裡修改,去掉Comment 以及更新 meta的格式而成。 改用文字編輯器來寫 Blog 後,會習慣在 72 行的地方換行,但是在瀏覽器中只要換行就會多一個空白,以前寫網頁的時候遇到中文都要小心的換行才不會讓不該空白的地方出現空白,也不能打開 Emacs 的 auto-fill […]
-
TOP 20 Space-Hungry Packages
Arch Linux 與 Debian 皆可以在安裝的時候選擇最小安裝,究竟哪一個Distribution 在使用一段時間之後最佔空間呢? 剛安裝完的時候似乎是 Arch比較小一點,但是因為 Debian 套件切的比較細,所以最後可能是 Debian 會比較小。 當初在試用 Arch 的時候寫了小程式來畫出前 20 個最佔空間的套件,並依此來瘦身,結果如下: 兩邊因為安裝的套件種類不同因此無從比較,Arch 的 TeXLive 因為沒有切所以會比 Debian 上較大一點,Debian 上的 ghc6 則是為了測試 xmonad 裝的,Haskell 本身做出來的執行檔就頗大,ghc6 需要 369MB 實在不意外… 底下是製作圖片的程式,實際上是用 Google Chart API 畫的: 把 PKGSIZE_PROG 代換成自己 Distro 的就可以了: Debian: Arch:
-
Cool stuff: Pipeline library
如何在 C 程式中方便使用 pipeline 呢? Unix pipeline 之父說 Unix 程式的哲學就是「只做一件事,並把它做好」: “This is the Unix philosophy: Write programs that do one thing and doit well. Write programs to work together. Write programs to handletext streams, because that is a universal interface.”― Doug McIlroy, the inventor of Unix pipes 平常有在使用 shell 的朋友想必對 | 這個符號不陌生,他可以把多個指令頭尾相接,各展所長,讓我們可以把各程式的力量組合起來成一個強大的 pipeline。 在 shell […]
-
Kindle 來我家
做功課 是這樣的,某天在 IRC 上看到某長輩發言 “j5g: Hmm….有點想買 Kindle DX”,小宇宙就有了光,開始上網搜尋 Kindle 相關資訊,經過 Amazon, Wikipedia, Mobile01, MobileRead 無情的生火之後,終於爆炸了啦啦啦!首先是 Kindle DX 的規格: 嗯.. 作業系統是 Linux!有門!趕緊再搜尋一下,的確已經有許許多多成功 Hack Kindle 的案例,其容易的程度,說他是 Hackable Device 也不為過。 開箱 折騰了兩週,訂購的 Kindle DXG 終於在生日當天送達!小小開箱慶祝一下: 開箱之後就是充電,開始把各種不同的文件丟進去測試。這個版本的 Firmware (2.5.5) 對於 PDF 的支援其實已經不錯了,會自動裁掉多餘的留白,內嵌字型也都正常顯示,是一開始閱讀中文的方案之一。測試各種檔案之後發現只有一種不太適合放上來看,就是字很多的雙欄格式論文,因為顯示全頁會顯的字太小,偏偏 150 ppi 的解析度看不太清楚,若是放大瀏覽的話,雙欄論文的走向會需要來回拖拉,而拖拉正是目前 E-Ink® 的弱點… 除此之外,在 Kindle 上面閱讀是非常好的體驗,E-Ink® 的特性可以讓人真的進入閱讀的情境之中,內建的 Text-To-Speech 質量非常好,就有如真人在幫你朗讀一樣,新版的 Firmware 還新增了 Collection 的功能,解決 Kindle 以前一直為人詬病的無法分類電子書的問題,Kindle […]
-
Android Service with dynamic arguments
Recently when I was preparing some Android training material I found this little trick. Android “init” can do a lot of things, including “on property change” trigger; one can image some applications use this to implement an ad-hoc IPC. One example is the system/libnetutil that monitors the “init.svc.dhcpcd” property to detect whether dhcpcd is running […]
-
[非官方] COSCUP 2010 Mobile App
今年 GoogleIO 時 Android team 不斷在推廣一個 Android UI Pattern,可以觀察到最早利用這個 Pattern 的應該是預設的 Facebook 程式,接下來發展的更為完備的是 Twitter 官方程式,處處可以見到該 Pattern 的影子。GoogleIO 前 Google 也推出一個程式叫作 IOSched 用來顯示議程相關資訊,同樣是使用該 Pattern 的實作。雖然 Twitter 承諾會釋出 source code,但是一直沒下文,因此想要使用這個 UI Pattern 的可以說完全沒有範例可以參考。 今年 COSCUP 就參考 IOSched,嘗試從頭打造一個類似的程式,順便練習一下怎麼使用這個 UI Pattern,結果寫好後才知道上官大神早有 HTML5 的版本,連 IOSched 不知道什麼時候也有 source code 了 (汗) 無論如何,總算是練習了一下 Android Programming,有參加 COSCUP 的人可以試用看看 😛 Source code 在 http://github.com/kanru/Coscup2010
-
Root your Phone with just 1-Click
Today I read that someone demoed how to put rootkit into your phone during the Defcon. But there are no details, the keywords like kernel moudle, install apk, remote phone call, …, all reminds me the old phishing attack. Then I thought, can it be the trick used to root Droid X?