make recoveryimage後什麼事都沒有發生

make recoveryimage無法建出recovery image,追蹤build/core/Makefile以後,就可以發現,如果有定義TARGET_NO_KERNEL、TARGET_NO_RECOVERY或BUILD_TINY_ANDROID任一個為true的話,就不會建出來。
而我拿到的SDK的BoardConfig.mk裡,正好就有這麼一行:TARGET_NO_KERNEL:=true

電影流水帳(2011/2/8~2011/2/13)

真要說網樂通的缺點,就是沒有bookmark,以後如果要推包租電影的服務,我覺得這是相當重要的特色。不用到說有選單讓我設定bookmark,只要當我按停止或離開時能自動存下那個當下的點,之後當我再回來繼續看時,能自動繼續就好。每次因為小朋友要停下,之後要回去接著看時,就很累,64x的快轉才差不多跳一分鐘而已,而這樣的動作差不多要一秒,所以如果你是在最後的一小時三十分鐘離開不看,之後要回來接著看,就要按快轉64x,等約一分三十秒才能從停掉的地方開始看。之後會再看看收費服務合不合理,如果不是很ok的話,大概就會收起來供了吧…

  • Open Season 3(IMDB, Wikipedia),中譯:打獵季節3。這部片子印象中台灣好像沒上。故事很簡單,春天到了,應該是要去男生旅行的季節,可是卻沒人要跟大灰熊布穀去。布穀只好自己去亂逛,亂逛的時候遇到了馬戲團的大灰熊阿德,於是他們交換身份,最後,布穀的好朋友一起來找他,而布穀走的時候還帶了一個女友一起走,可謂是皆大歡喜。這一集除了以前的好朋友以外,還多了駱馬,算是大團圓的片,故事普普。這部片老婆跟我被兩個公子強迫看了十幾遍了,所以說,對小朋友應該是相當有吸引力….囧
  • Knight and Day(IMDB, Wikipedia),中譯:騎士出任務。很歡樂又有動作的片子,相當適合用來打發時間。就女主角其實算是宅女,出去找汽車零件的時候遇上了男主角,一開始並不知道他是特務,後來慢慢知道了整個事情的始末然後展開一連串的冒險,最後當然是順利解決事件。

AlbiteReader的字型處理

org.albite.font.AlbiteFont

  1. ctor 開啟字型檔以後,就開始處理 (這邊是開 .alf)
  2. 格式
    • byte 1: line spacing
    • byte 2: line height
    • byte 3-6: glyphs (character range)
    • byte 7-8: maxium width
    • byte 9-12: character count
    • 接下來就是循序讀出各字元的 x, y, w, h, xo, yo, xa
      • byte 1-2: character
      • byte 3-4: x
      • byte 5-6: y
      • byte 7-8: width
      • byte 9-10: height
      • byte 11-12: xoffset
      • byte 13-14: yoffset
      • byte 15-16: xadvance 下一個字元跟目前字元的間隔
    • 再放到對應 character 的 glyphs 陣列裡 (glyphs[character]=new Glyph(x, y, w, h, xo, yo, xa)
  3. 讀完 .alf(字型資訊),接著開啟 .ali,這邊是真正的字型資料,先把整個 .ali 讀取到記憶體裡 (由 AlbiteImageMono 處理,同樣也有檔頭,但較簡單,前4個bytes是magic number,接著的兩個bytes是width,然後再來的兩個bytes是height)
  4. 把必要的字元先處理起來,像是 ‘ ‘, ‘?’, ‘-‘
  5. 其他的字元都是畫的時候,依據 glyphs 資訊去存取記憶體裡的 buffer

照這樣看起來,如果要依樣畫葫蘆,將中文字型製作成 .ali 的話,會遇到的問題是記憶體問題。AlbiteFont 會將整個 .ali 載入到記憶體裡,製作出來的 .ali 會有多大呢? 假設字的大小是12×12,要完整收文泉驛的20932個字,那大約是3MB左右。依照 SE T700 的規格,內部記憶體只有 25MB。未知的是可用記憶體,所以必須考慮最壞的情況,記憶體會不足!!
會使用自己的字型,我想應該是考慮到平台相容的問題。

epub二三事

今天剛好看到這個百年千書計劃,裏面提供了一堆epub,於是就想說,可不可以放到我的手機SE T700上看呢?
就上getjar上找,就找到了Albite Reader。很高興地下載程式跟epub下來放到手機上,可以執行,但是結果卻都是一堆 ?
這到底怎麼回事,首先我試了軟體的編碼設置功能,沒有用。我懷疑 epub 裡的編碼是big5,而軟體的編碼選項裡卻沒有 big5,所以就上網找了一下,看要怎麼編輯 epub。看到這篇:Edit ePub eBooks with Your Favorite HTML Editor,才知道原來 epub 其實是個 zip 檔案,將副檔名更名為 zip 以後,就可以解開去看了。然後也發現了不錯的編輯工具:sigil。不過都沒有用,epub 裡的編碼是正確的。
那麼問題就出在軟體本身了,幸好軟體有開放原始碼而官方網站也有說明。大致看了官方網站的說明以後,才明白,問題出在字型上。軟體本身沒有包中文字!!!!這就麻煩了。官方網站也有說怎麼製作字型,不過他所使用的 Bitmap font generator 卻沒有支援中文字,因此無法產生出必要的 .png 跟 .xml 檔案,也沒辦法繼續後面的步驟,將 .png, .xml 轉成 .alf, .ali 了。
傷腦筋,看來如果要能用,一個方法就是寫程式去做出 Bitmap font generator 的功能,將字型轉成 .png, .xml,另外一個方法就是改寫 Reader 裡處理字型的部份了。
我想寫工具來轉字型應該是比較快的方法,在 AlbiteFontBuilder網頁裡有提到 .xml 的格式,看起來是將字型都顯示在 .png 以後,.xml 則是描述字(glyph)在 .png 裡的位置跟寬高。得到這個以後,應該就可以接著用 AlbiteFontBuilder 做出 .alf 與 .ali 了。

電影流水帳(2011/1/1~2011/2/7)

最近裝了網樂通,3月底前看電影不用收費,就趁過年期間看了幾部。

  • Shrek Forever After(IMDB, Wikipedia),中譯:史瑞克快樂4神仙。看完以後有不少感觸,心裡想這根本就是給已婚者看的啊~的確是常常會覺得自己時間都被剝奪掉了,可是從另外一方面來看,的確,太太與小孩也給自己帶來不同的視野與責任,中間的平衡點怎麼去拿捏就是一門學問…可是,這很常是一個離婚的原因…好吧,言歸正傳,簡單說就是Shrek想偷閒回去過一天以前的生活,卻沒想到合約裡的陷阱,導致現在與未來的生活陷入危機,當然最後是皆大歡喜,破除了合約裡限制,重回原來的生活。相當好看的片,我個人推薦給已經結婚的人看,不過這並不代表看了以後,就會知道結婚不只是愛。
  • Despicable Me(IMDB, Wikipedia),中譯:神偷奶爸。看了時候正在吃飯,一片混亂,所以沒什麼太大的感想,基本上是走溫情路線。主角是個不太成功的科技小偷,因為童年以及現實的種種因素,他決定去偷月亮。為了偷月,他需要準備許多道具,其中包括了縮小燈。在偷縮小燈的過程裡,他認識了3個女娃,並收養了她們,於是溫情從此展開。最後他收養了3個女娃,月亮偷成了,但縮小燈有缺陷,又還回原位了。
  • Inception(IMDB, Wikipedia),中譯:全面啟動。這部片很好看,網路上應該有很多人分享了,這裡就不多說。
    • 現實的五分鐘等於夢境裡的一小時。這裡我照著推算了一下,飛機上的十小時一共600分鐘,在夢境裡應該是五天才對,而不是一星期。
    • 第1層夢境裡,Fischer潛意識持續在追殺他們,那他們從水裡脫逃以後,應該是繼續被追殺才對吧?那將近五天怎麼渡過?
    • 最後老婆跟我還倒帶看了那個圖謄陀螺好幾次,看到底有沒有倒下。我是跟她說沒有,因為這部電影從一開始就是一個夢。

    其他還有一些可能要反覆再多看幾次才會明白的細節,真是太玄了。

Run MiPony on Linux(wine)

因為看到MiPony可以快速下載freakshare.net的檔案,所以就想裝來試試看~
在Linux下,只能用wine,我用的版本是1.3。你得先安裝winetricks(sudo apt-get install winetricks),然後用winetricks裝上 gdiplus, fontfix, dotnet20, ie6(winetricks gdiplus fontfix dotnet20 ie6)。接著再用wine裝上MiPony,就可以了。
目前下載了十幾個檔案,都沒問題,真是太好了!!

Google reader expanded/list hack

google reader
最近把Google reader的tag都設到書籤裡去,想說這樣會比較快。
可是卻遇到一個問題,某些tag要看的時候想用Expanded,但某些tag卻想用List。本想說Google reader是不是可以藉著設URL Parameter的方式來解決這問題,查了Unofficial 的 Google reader API,卻沒找到答案。
只能手動 Hack 了。
啟用神兵 Firebug 查看以後,Google reader要show Expanded/List,是送 POST 到 https://www.google.com/reader/api/0/preference/set?client=scroll ,然後帶上3個參數:T、k、v ,T 用途不明,k 總是 is-card-view,v 在 Expanded 時是 true,List 時則是 false。
所以,看來是沒辦法,除非是書籤改用 javascript,寫成 bookmarklet 的方式才能達成。

GNU IceCat Privacy extension安裝總是失敗

之前都沒注意,直到GreaseMonkey升級,跑不起來,才發現這事情的嚴重性。
上網找了一下,果然已經有人跳腳:http://osdir.com/ml/bug-gnuzilla-gnu/2010-12/msg00057.html
就follow裏面的提供的網址:http://kb.mozillazine.org/Installing_extensions#Global_installation ,照裏面的指示去手動解壓縮 /usr/lib/icecat/extensions/privacy_ext.xpi 到 /usr/lib/icecat/extensions/privacy_features@gnuzilla.gnu.org 就行了。

DDMS抓圖

會看這個,是因為抓圖失敗…
ddms 會開啟本地的port 5037,這是由host端的adbd所listen的。接著寫入”framebuffer:” (AdbHelper.getFrameBuffer)。
target端的adbd收到以後,會建立一個thread,thread跑的是framebuffer_service.c裡的code。裏面很簡單,就開啟/dev/graphics/fb0,然後取 fb_var_screeninfo 的值,再根據得到的值來決定要讀多少bytes,寫回去到host端,最後寫完就關閉。
為什麼會抓不到圖呢?不知道,還找不到原因。