About me

我的相片
I'm a web and software developer from Kaohsiung, Taiwan.
I design and implement user interfaces, also contribute to open source projects.
http://penkia.net/portfolio

2010年2月20日 星期六

Notes on Chromium OS for ARM

各位新年快樂! ULLab 的團隊成員除了在年假中加緊趕工, 為 xPUD 新版本加入平板模式 (tablet mode) 的支援外, 也「嘴巴說不要、身體卻很誠實」地接了一些 Chrome OS 的客製化案子.



如同之前提到的, 第一版的 Chrome OS 建置方式著實有點虛弱, 無法滿足不同平台或是未來實做各項功能的需求, 因此我們可以發現 Google 動作很快的提出了一些改進, 改用了一套新的 build system, 主要有兩個特點:
  • 採用 Gentoo Linux 的 portage 作為套件管理/編譯系統
  • 目前只支援 64 位元的平台
我們比較關注的 ebuild 目前都放在 ~/trunk/src/third_party/chromiumos-overlay/chromeos-base/ 底下, 若是熟悉 Gentoo 的話照著文件也可以輕易上手.

寫給自己的一些骯髒溫馨小提示:
  • 為了略過一些套件或修正編譯問題, 改完 ebuild 以後要重新產生 Manifest, 如 ebuild ~/trunk/src/third_party/chromiumos-overlay/chromeos-base/chromeos-chrome-bin/chromeos-chrome-bin-0.0.1-r1.ebuild manifest
  • 若有自己重打包原始碼放在 /var/lib/portage/distfiles/, 要重算 du -b, rmd160 -x, sha1sumsha256sum. (太髒了不推薦 XD)
另外有別於一般的 chromium 瀏覽器, 我們需要的是 "chromeos" 版的 (這樣才有左上角的 Panel), 在取得原始碼後:
  • .gclient 中加入:
    { "name"        : "cros_deps",
    "url" : "http://src.chromium.org/svn/trunk/cros_deps",
    } ,
  • 設定 GYP_DEFINES=chromeos=1
  • 執行 gclient sync --deps="unix,chromeos"
其他的部份可參考文件 Building Chromium for ARMBuild instructions for Linux.

2010年2月3日 星期三

Daily Bookmarks 02/03/2010

淚推李宗盛新作「給自己的歌」

http://blog.roodo.com/honeypie/archives/11599691.html

Facebook 的 PHP 加速計畫

http://blog.gslin.org/archives/2010/02/03/2211/

Rails3 架構與進展 Part.1

http://blog.xdite.net/?p=1497

Great products are triumphs of taste

http://37signals.com/svn/posts/2129-great-products-are-triumphs-of-taste

iPad: forget the old people — it's a chick magnet

http://ultimibarbarorum.com/2010/01/29/ipad-actually-its-a-chick-magnet/

Interface magazine takes a look at 37signals' "paradoxical" approach
to business

http://37signals.com/svn/posts/2125-interface-magazine-takes-a-look-at-37signals-paradoxical-approach-to-business

Entrepreneurial Success Not Correlated to University Prestige

http://www.lonegunman.co.uk/2009/12/21/entrepreneurial-success-not-correlated-to-university-prestige/

Why testers?

http://www.joelonsoftware.com/items/2010/01/26.html

A little less conversation

http://www.joelonsoftware.com/items/2010/01/22.html

Rocket Surgery Made Easy

http://www.joelonsoftware.com/items/2010/01/25.html

Change The World!

http://blog.vgod.tw/2010/01/25/change-the-world/

git archive 與 log 小技巧

http://people.debian.org.tw/~chihchun/2010/02/01/git-archive-and-log/

[Licensing a game] 買遊戲#1 從5萬美金開始做夢

http://www.gameimp.com/archives/2010/01/25/1585/

iPad,數位閱讀「失落的一角」

http://www.readgoing.com/?p=509

iPad與電子書,還不明朗的未來世界

http://www.readgoing.com/?p=492

Keep Your Mouth Shut

http://forecasterror.blogspot.com/2010/01/keep-your-mouth-shut.html

The Heavyweight Fight is On

http://forecasterror.blogspot.com/2010/01/heavyweight-fight-is-on.html

Ya or Nay on Bernanke's Next Term?

http://forecasterror.blogspot.com/2010/01/ya-or-nay-on-bernankes-next-term.html

微软雅黑的设计

http://vic.sina.com.cn/news/27/2009/0820/4684.html

THOUGHTS ON IPAD

http://jiwostudio.com/archives/1942

2010年2月1日 星期一

xPUD 火力展示:全世界最小的 Chromium OS


下載: minimized-chromiumos.iso (58MB)

xPUD 專案的特色一向是強調活動規劃式 (activity-based) 的介面、對既有程式與網頁的整合、以及降低網頁開發者撰寫客製化介面的門檻。很高興 Google 的 Chrome OS 專案與 xPUD 團隊對於未來的作業系統分享著一些共通的觀點,儘管我們說著不同的故事,但有著相似的看法。

在測試過 Chromium OS 及其編譯系統後,我們發現這是一個絕佳的機會,可以藉此展示 xPUD 的彈性與縮小體積的能力。因此我們很高興的釋出此一實驗性質的版本:Minimized Chromium OS。相較於一般動輒 2G~4G 的映像檔,xPUD 的編譯系統 mkxpud 成功地將整個系統體積縮小為不到 60MB。

注意:這個版本並不適用於一般使用者的日常使用,更多資訊請參考以下關於技術細節的段落。

安裝方式


就像每一個 xPUD 檔案一樣,這個 ISO 本身是 LiveCD 也是可開機的混合式映像檔 (hybrid iso image)。因此製作可開機隨身碟的方式非常簡單,直接使用 dd 指令即可:
# dd bs=4096 if=minimized-chromiumos.iso of=/dev/sdX

主要功能

  • 縮小的系統:基本系統 (32MB);瀏覽器 (18MB);輸入法 (8MB)
  • 跳過開機畫面與登入選單
  • Chromium OS 瀏覽器與外掛 (不包含 DeviceKit 所以電量顯示沒有作用)
  • 中文字型與常見輸入法

技術細節


其實根據官方的文件顯示,第一階段的 Chromium OS 實作真的沒有什麼特別,說穿了不過就是個 Ubuntu 系統加上瀏覽器,以及用 Clutter 寫成的視窗管理程式。

開機流程當中,以樹狀圖來看就是
slim
|-- Xorg
`-- ck-launch-session
`-- chromeos-wm -+-chromeos-chrome
/sbin/chromeos-startup 這隻程式叫出開機畫面,透過 SLiM 進行登入管理,在使用者登入後,執行 /etc/X11/chromeos-xsession 開啟視窗管理程式 /usr/bin/chromeos-wm,並透過無限迴圈的 /usr/bin/chromeos-chrome-loop 確保瀏覽器不會被關掉。

這是一個在接案子的過程中產生的有趣實驗,我們的用意是以此來探討 Chromium OS 的客製化與開機流程,也歡迎有興趣加入參與 xPUD 開發的人敬請指教。 :-)

2010年1月12日 星期二

Daily Bookmarks 01/12/2010

[RPG] 為什麼Ray Muzyka說日本角色扮演遊戲已經卡住了?

http://www.gameimp.com/archives/2010/01/11/1459/

CSS3 + Progressive Enhancement = Smart Design

http://perishablepress.com/press/2010/01/11/css3-progressive-enhancement-smart-design/

Ignorance Is Bliss

http://24ways.org/2009/ignorance-is-bliss

Tug of War

http://forecasterror.blogspot.com/2010/01/tug-of-war.html

PHP很烂?我的看法

http://www.ruanyifeng.com/blog/2010/01/does_php_suck.html

親愛的,這才是Nexus One的重點

http://fred.ipod.to/blog/?post/2075

長大吧!台客實驗室(ULLab)

http://fred-zone.blogspot.com/2010/01/ullab.html

Weasel words and the absurdity of corporate speak

http://37signals.com/svn/posts/2102-weasel-words-and-the-absurdity-of-corporate-speak

Fixed-scheduled productivity

http://37signals.com/svn/posts/2084-fixed-scheduled-productivity

Boxee Launches Beta with New UI, Boxee Box

http://www.osnews.com/story/22705/Boxee_Launches_Beta_with_New_UI_Boxee_Box

It's Zero hour!

http://blog.hexxeh.net/post/328117465/its-zero-hour

iPhone Tethering on Ubuntu 9.10 (Karmic)

http://www.ubuntugeek.com/iphone-tethering-on-ubuntu-9-10-karmic.html

WebKitGTK+ hackfest improves HTML renderer for GNOME apps

http://arstechnica.com/open-source/news/2010/01/webkitgtk-hackfest-improves-html-renderer-for-gnome-apps.ars

A Democracy of Netbooks

http://www.codinghorror.com/blog/archives/001318.html

Crooked Fingers, One Of Those Unforgettable Sounds You Almost Forget

http://pulp.bluecircus.net/archives/014488.html

2010年1月7日 星期四

Daily Bookmarks 01/07/2009

It's Important to Tell the Truth, in Time

http://forecasterror.blogspot.com/2010/01/its-important-to-tell-truth-in-time.html

16世纪的英国,21世纪的中国

http://www.ruanyifeng.com/blog/2010/01/england_in_16th_century_vs_china_in_21st_century.html

12种不宜使用的Javascript语法

http://www.ruanyifeng.com/blog/2010/01/12_javascript_syntax_structures_you_should_not_use.html

我要翻译Paul Graham了

http://www.ruanyifeng.com/blog/2009/12/i_will_translate_paul_graham.html

iTablet? iSlate? iWhat?

http://fred.ipod.to/blog/?post/2071

也談悲慘指數──為南方大師續貂

http://fred.ipod.to/blog/?post/2072

Nexus One:Google的「蟲洞」

http://fred.ipod.to/blog/?post/2073

OpenSource 與嵌入式系統

http://heaven.branda.to/~thinker/GinGin_CGI.py/show_id_doc/407

Nokia要在北美和蘋果、RIM相抗衡

http://www.zdnet.com.tw/news/comm/0,2000085675,20143587,00.htm

微軟、英特爾將把平板電腦市場拱手讓給蘋果?

http://www.zdnet.com.tw/news/ce/0,2000085674,20143539,00.htm

Using firebug for firefox 除錯 javascript

http://blog.wu-boy.com/2010/01/05/1943/

讓Intel CPU 自動依需要調整頻率

http://shelandy.blogspot.com/2009/12/intel-cpu.html

Apple Store madness.

http://cocoa.zonble.net/post/318289809/apple-store-madness

Rumors about the Tablet

http://cocoa.zonble.net/post/312299130/rumors-about-the-tablet

What every mass marketer needs to learn from Groucho Marx

http://sethgodin.typepad.com/seths_blog/2010/01/what-every-marketer-needs-to-learn-from-groucho-marx.html

Secret language

http://www.joelonsoftware.com/items/2009/12/30.html

Responsible Open Source Code Parenting

http://www.codinghorror.com/blog/archives/001317.html

2009年12月31日 星期四

2009 年終回顧

年初的時候去了一趟美國, 如願買了 MacBook, 還很幼稚的在 Westfield 迫不及待地開箱



二、三月因為工作徹底的燃燒殆盡, 肩上的背包從來沒放下來過, 累積的哩程可比巴士大叔. 此時的主題曲是 Apartment Story


Tired and wired we ruin too easy,
sleep in our clothes and wait for winter to leave.

四月時忍不住手癢, 把醞釀多時的想法灌注在 xPUD 上, 開始獲得 (相對於從前) 大量的迴響



五六月時陷入低潮, 一邊繼續著手 xPUD 的開發, 一邊獨立接案完成了幾個產品

我爬上全世界的屋頂
帶著沒有人能瞭解的心情
狂亂的時候
誰能擁抱我的空洞
絕望的時候
有誰能挽救我的惡夢

七月時老媽老妹也搬到台中, 菸抽得更兇

我想要為你贏得一個未來
卻一不小心輸了現在

八九月在各大研討會巡迴演出, 和 Fred 籌組 ullab.org 事宜.
十月, 在 YAPC::Tiny->second 得到 Audrey Tang 簽名



十一月應 GNOME.Asia Summit 之邀去了一趟越南



十二月 xPUD 得獎!



談定不少重要的案子, 居然連 iPhone 都入手了. 真是由 Apple 開始也由 Apple 結束的一年阿.