發表文章

OSDC 2009 遊後感

圖片
OSDC 2009 終於在今天閉幕,為證明敝人沒有缺席(星期六因有事,中午先行離席),特別將參加證拍下並放上來: 其中,報名編號是『2』,這數字真令人感到有幸福感,希望最近真的能如字面上一般『好事成雙』,說我貪心也不為過,單單一件好事確實滿足不了我的胃口。此外,今年經濟不景氣,廠商贊助也縮了水,在各家公司拼命掙錢的參加者,更不泛流露出愁苦的面容,久久見一次面的朋友,除了各自惡搞的興趣交流外,也互相吐吐苦水或努力想抓些方向,成了這次活動的附屬內容。 當然,該稱讚的一定要稱讚,這兩天的伙食,真的棒!

Google Summer of Code for LXNM

圖片
Google Summer of Code (簡稱 GSOC)是一個 Google 提供給全世界學生的暑期打工計畫,像是學校專題一般,是以 Mentor 指導學生的形式進行。一但學生通過指導教授的評分標準,就可以收到 Google 所準備的優渥賞金。而經過短短不到一個月緊湊的籌備和申請過程,最近這幾天終於將開始啟動今年的打工計畫,已被專案接受申請的學生們(包括我),則將要開始進行無止盡的 Coding :-) 比較可惜的是,今年 LXDE 無緣進入 Google Summer of Code (簡稱 GSOC)的 Project List,眼看著 GNOME 、 KDE 等著名 Desktop Environment 的蹤影都在清單上,真不是滋味!值得慶幸,因為眾 Distributions 如 Debian 等的幫助,LXDE 還是可以透過這些 Project 的管道,收到來自世界各地的 GSOC 學生開發者以及他們充滿創意的提案。 其中,這次 LXNM 將會是 GSOC 的重點計劃之一,我是從 Freifunk 所提出的 Proposal,主要是重新改寫 LXDE 的 Network Manager - LXNM,以補強 LXDE 的網路元件功能和支援更多網路應用。有鑑於之前設計的缺陷,因此大致畫了一個新的 LXNM 大架構圖: 整體上無太大變化,主要是增加 LXNM 與 Kernel 和硬體溝通的管道,分為純粹以 Syscall 控制硬體以及使用 script 控制網路裝置,前者好處是直接且有效率,但因為 Kernel-dependent 的因素,則需要對不同的作業系統做開發,移植困難。後者則是可由各套件維護者,輕易的自行設計各系統特有控制網路裝置的 Script,而不需要撰寫艱澀的程式碼,使移植更為容易,缺點則是效能較差。 此外,由於之前頭痛醫頭腳痛醫腳,在 LXNM Client/Daemon 的 Protocol 上之定義也是亂無章法,會趁此機會重新整理並訂出規範。 後記 因為,被 GSOC 接受了申請和提案,現在可以不用擔心短期的金錢壓力,有時間盡情完成這走到一半死掉的 LXNM Project呀。

Gnote - A Experimental Project to replace Tomboy

Tomboy is a famus project which is a desktop note-taking application for Linux and Unix. It's simple and easy to use, but with potential to help you organize the ideas and information you deal with every day. But the terrible defect is Tomboy was written in .NET(mono), it means Tomyboy may use a lot system resources. In my experience, Tomboy had already used large memory usage which is even more than Firefox and Xorg. Right, we both do not understand why the simple application needs be written in .NET with the sucks performance? It doesn't make sense! So we have every reason to create a new project to replace Tomboy. Few days ago, a new experimental project - Gnote appeared on GNOME Live website(http://live.gnome.org/Gnote), and it was in C++. Though Gnote is not a formal project of GNOME, that's a good news for us to have a choice to replace the God damn Tomboy with his .NET stuffs. Actually, Gnote is not a brand-new project, it is just experimental port of Tomboy to C++. ...

Android 不是萬靈丹

近來,Android 的確炒翻了天,有人是欣賞稱讚它的設計,有人是衝著 Google 的名頭,仿彿 Android 就是所有未來,不但手機和 MID 上要用 Android ,就連 PC 上也要用 Android,是不是不久的將來,馬桶蓋上也要使用 Android?就像『奈米科技』一詞,Android 除了可以殺菌除臭,還可以烹調食物,增進色香之外亦可添加豐富的維他命 X 群,更或許還能抗掉髮,改善凸頭並加速毛法生長。Google Android 就如大家所說的,是一顆救全世界的萬靈丹? PC 終究是 PC Android 的 Design,一開始就是以 Mobile 為出發點,它的用途不外乎就是手機、MID和一些零零星星的嵌入裝置,但因為一些廠商們的炒作,似乎有意將 Android 更進一步推至低價電腦(Netbook)的領域之上,在此不論廠商們的一廂情願,就以現在人們對低價電腦(Netbook)的觀點來看,Android 根本不可能勝任 PC 上的應用,至少,一般電腦使用者想要在 PC 上做的,Android 一定滿足不了。同樣原因,這也是為什麼 Windows XP 最後仍打敗了眾 Linux,在低價電腦市場中勝出的原因。 不適用的使用邏輯 Android 終究是為了 Mobile Device 而開發,同時間單功能的使用邏輯,完全不合 PC 族群的使用習慣,如此低價電腦(Netbook)只會變成大螢幕的手機,說它是手機不方便,說它是電腦又不好用,試問誰又會去買這樣一個四不像的產品? 因為這樣的產品並不合使用者的需求,但卻肯定可以騙取一筆財富,無論是資金或是股票等等,所以,對於一般 PC 使用者,許多廠商宣布將會推出 Android Netbook,可稱之為騙錢,若嫌說法太惡毒,換種婉轉的說法就是商業手法和噱頭。可以預見,若與號稱輕量化且可在 Netbook 上跑的 Windows 7,Android Netbook 可說會再次重蹈 Linux on Netbook 的覆徹。一般用戶會買?沒人會信。 相差甚遠的架構 因為 Android 使用 Framebuffer 做繪圖,又有自己的一套 Framework,所以和傳統 Linux 上的 X/Xlib 架構相差甚遠,這意味著目前現成的 Linux Application 都無法在 Android Platfo...

Linux Kernel 記憶體管理機制之美

Linux Kernel 的穩定,有一部份可以歸功於它優良的記憶體管理機制,而探討該機制,有助於瞭解記憶體是如何被 Kernel 所使用,對開發 Linux Driver 的人來說,日後更有許多益處。最重要的是,Linux Kernel 之美是由此開始,優美的設計相當令人著迷。 Linux Kernel 的記憶體管理機制,主要由兩大部份組成: Buddy System Slab Allocator Buddy System(buddy allocator) 如一般的 Operating System Design,Linux Kernel 一樣是以 Page 為記憶體管理的單位,因此設計了一層針對 page(或稱分頁)的管理機制,該機制在 Linux Kernel 裡被稱為『Buddy System (buddy allocator,簡稱 buddy)』,buddy 是 Kernel 最底層的記憶體管理機制,日後所有的記憶體配置,最後都要經過 buddy 才能取得或釋放記憶體。 可以藉由觀察當前 /proc/buddyinfo ,了解目前的記憶體使用情況,當然,是以 page 為單位: $ cat /proc/buddyinfo Node 0, zone DMA 76 71 66 50 33 17 5 1 1 1 0 Node 0, zone Normal 22301 6425 45 0 1 1 1 1 1 1 0 Node 0, zone HighMem 97 13 6 10 3 0 2 0 0 0 0 如果沒有什麼意外,/proc/buddyinfo 列會出了三個 zone ,分別是 DMA、Normal、HighMem,這三種 zone 的分類,是以 Physical Memory 位置的範圍而區分,在 IA-32 架構上 為: DMA (16MB以下) Normal (16MB~896MB) HighMem (896MB以上) 不過,由於 Buddy ...

榨乾 X200t 之 Fred's Rhythm 新開張

圖片
為了榨乾 X200t 的價值,就開了一個新地方,來用畫圖寫 Blog。其實,眼尖的人大概在幾天前,就會發現推薦連結區多了一個連結 Fred's rhythm ( http://fred-rhythm.blogspot.com/ ),是的,這就是新的 Blog,有興趣可以來捧捧場。 :P 一有空閒就會隨手塗塗鴨,期望每天都能更新。

真的,我愛上了黛比恩

過去曾忙於 MIS 和一些系統的開發工作時,每幾個星期就會面臨一個重大的問題『系統更新』,無論是安全更新還是開發工具、Backend 更新,總是殺死人不少腦細胞和約會的時間,痛不欲生。很開心的是,這幾次『度年』,沒有因同樣原因而忙錄苦惱了,許多開發成果也無痛過渡到每個新版本的系 統。讓我不得不寫一篇告白文,向我的愛人『黛小姐』傾訴過去被其他發行套件殘害的痛苦心聲(主要還是 Fedora 系列)。(順便,回答許多人問我,為什麼你要用 Debian 的問題) 假穩定 , 真老舊 或 許是被當初的 Redhat 所帶壞,眾所皆知的,Linux 各個發行版本,每幾個月、半年、一年就會發行個新版本,這也意味著任何版本被發行後,將不再提供任何的更新,除了『安全性的更新』之外。這樣做確實的好 處,可以確保系統是絕對穩定,尤其對於 Server 的管理維護上,有一定的幫助。 但是,只要在這幾個月之中,有什麼新東西出現,就不 要妄想去用,因為,不會有相應的打包套件出現,我們只能乖乖的等待下一版的 Release 或是自己去抓回 Source code 自行 compile。而隨著 OpenSource 越來越蓬勃,這情況更為顯著,周期更短。而且多半時候,因為這些新東西也相依著新的其他 Library ,想要裝在現有系統上,可是要費不少功夫。(不過要是你願意,可以因此練就一身 backport 的功夫。) :-) 當時,心中總是抱怨著:『別鬧了,要每半年裝一次新版的 Linux?!』。要不是因為工作開發需要,和自己好奇心的驅使,可真不會有心去做這半年一次,每次好幾個星期的苦工。更不用說處理前後版本不相容的開發性問題了。 Note: 想要玩最新的東西,就跟著 Debian 的 Testing/Unstable 走,每天 apt-get update ,比重新安裝整個系統輕鬆多了。想要玩最穩定的東西,就跟著 Stable 走,保證你可以玩到最穩定且足夠舊的東西。 品質堅若磐 『 蝕 』 回 到多年前,自從 Redhat 的系統下放給 Fedora 社群經營,那可真可以說是痛苦的開始。先不用提打包的套件品質有多差(沒有任何版本裝起來後,所有軟體都正常過),光是重 build SRPM 就不一定會成功(能夠理解 RPM 的設計,是很容易讓這種事發生的)。至於 Fedora 8 以後情況如何,我...

異想天開:每周小聚會

首先聲明,這不是技術性的聚會,只是純粹吃吃喝喝聊天打屁,甚至是約續攤、唱歌的玩樂聚餐活動。本意也只是,想要自己的各路和各界朋友不抱任何預設立場,前來聊天聚餐或玩樂。反正,我也固定會找個 Coffee Shop 或餐廳與朋友們約出來休閒放鬆一下。 因為本來就沒有預設立場,來聊是非八掛、交朋友、玩牌、惡搞、組團、踢館都可以,若是真的想要討論技術,只要剛好有人在,並且也想要互相交流,無妨。 許多人在假日比較有空,尤其是學生們,或許,弄一個在假日的 Party,是個不錯的選擇。:-) 沒這麼嚴肅,就當做是定期的網聚好了。 不過這只是初始構想,沒人附議就讓它淪為異想天開好了。我只好依舊去多鬆和其他地方報到,自個兒愉快的玩。 另外想到,正好許多資訊相關科系的同學,臨畢業前都在煩惱日後的出路,這誘使他們想多學些東西。尤其最近,零零散散一些朋友,因從沒使用過 Linux,便請我帶他們學習使用 Linux 或程式開發。不可否認,仔細而小心翼翼的解說,一次兩次還好,多講個幾次也頗感累人,且一個個帶也零散無章,一直在做重複吃力不討好的工作。何不就大家聚在一起,相互熟悉成長? 反正,聚會話題不限,我休閒時偶爾順便討論也樂得輕鬆,更何況能夠解說的也將不會只有我。總會有其他、剛好也會的人出現在這,不是嗎?

精簡縮小 Shared Library 的體積

針對一般的 Shared Library(*.so),可以直接用 strip 去精簡縮小,可是許多 Plugin 的實作,像是 Xserver 的 Driver 等,會因為 strip 而損毀,導致不能使用。但只要借助一些 Option ,就可以達成縮小又不損毀到重要 symbol 的目的: strip --strip-debug --remove-section=.note --remove-section=.comment *.so

必需承認的事實 - Linux 對 Tablet PC 的差勁支援

一句話:『Linux 仍不足以勝任日常的桌面應用,且奇差無比。』 數日前,因工作和一般需求,買了一台 Lenovo X200t。話說,Tablet PC 的使用習慣,令人一旦開始使用就立即上癮,欲罷不能呀!尤其是壓力筆的加持,讓愛繪畫的我更是愛不釋手,光是寫字都非常有感覺,可以說如果沒有壓力筆,Tablet PC 就完全沒價值了。 可惜的是,Linux 對這種手寫支援非常差,除了 GIMP 之外,沒有任何軟體支援。經過一翻找尋,找到了 Gournal 的存在,它號稱可科完全取代 Windows Note,成為一個手寫筆記本。測試過後發現,Gournal 最多只能稱為小畫家的替代品,其功能更少於小畫家,尤其未支援壓力筆,根本不夠滿足 Tablet PC 的需求。 更還沒提到 IM 的手寫支援,經過實驗,MSN 對壓力筆的支援和用滑鼠畫圖的訊息格式似乎不太一樣,Pidgin 等軟體可以收到滑鼠繪圖的訊息,但卻收不到壓力筆繪圖的訊息。當然,除了收訊息之外,Linux 下所有的 IM 都無法傳手寫訊息,這實在令人苦惱(話說全天下的女生都是用 MSN 呀),一隻手聊天的夢,碎了。 至於手寫輸入法,這對 Tablet PC 來說並不需要,既然是手寫,就請保持它的直覺,真實的手繪紀錄,手寫辨識永遠只會是難用的東西,無論是在哪裡。 就個人要求,Linux 必須還要實作出兩個重要的功能: Note with Pressure Pen IM with Pressure Pen 如果我是微軟 Windows 的支持者,那麼,我有著不可恣意批評 Linux 的原罪,但身為 Linux 的愛用者,這是愛之深責之切呀!或許開頭有氣話的成份在裡面,但類似許多地方,卻是 Linux 上不了檯面的原因。 看樣子,最近又有新的 Open Source Project 開發可以忙錄一番了,真是拜這台新電腦所賜。有 Tablet PC 的朋友們,一起加油吧!

再談 FastBoot 快速開機簡記

因為某些案子的關係,春節後多日被迫關在飯店當 L (Who's L? 請參閱死亡筆記本),果然,龍崎這角色不是人當的,再關下去真的連坐姿和行為都會變得和他一樣奇怪(話說那樣的坐姿真的會讓智商提高!好像有?!)。沒枉費多日的努力,一個使用 ubuntu 的標準 config 所編譯出來之 Kernel 已經可以達到 1 秒的速度,理論上,若是再修剪 built-in 的 driver 應該可以達到更快速度。當然,單單只是 Kernel 快很容易做到,但 X Server 必需要在第 1.3 秒左右啟動,並在 第 2 秒前看到畫面,最重要的是有可用系統狀態,才算有實用的意義。 而關於 Kernel 部份,2.6.28 已做過許多快速開機的處理,其啟動已經非常快速,但是還會慢的瓶頸在於 initrd 的檢查,和各 device 初始的等待。經過 patch 後,這兩部份依硬體不同,可減少近 1 秒左右甚至更多的消耗。此外,盡可能讓 Root Filesystem 先被 Mount 也是一種手段,尤其再配合 initram 可以在瞬間就上到 User Space 的 Early boot 甚至進到 X Server,一般使用者可以看到 boot loader 一消失,緊接著就出現 X 的背景圖和 Cursor。 X Server 的快速開機處理有些方法,主要的做法是減少緩慢 I/O 的 Input Device 的等待時間,甚至是拖出正常 Initializing Progress,讓畫面先啟動。另外的瓶頸是各家 Video Driver 的問題,減少許多多餘的檢查有助於加快初始化速度。全部 patch 過後,基本上 XServer 啟動速度可達到 1 秒出頭(測試環境中,配合使用新的 Intel Video Driver)。 到此,一切看起來都很好,但最後發現 EDID 吃掉大半時間,單單為這 Monitor 的 Detect 就會影響使用 0.5 秒以上的時間,對某些 Specific 的 Hardware 可直接拿掉,但如何提前甚至時移到 Kernel 去跑,才是比較正確的做法。 目前,Boot Loader 的速度太慢,變成主要瓶頸,尤其以 Grub 的速度更令人不敢恭維,Loading 的速度比用 USB Drive 上的 Syslinux 還慢,這是還有...

爬不停,停下朋友聚了聚

有人跟我說,路總是有走完的一天,可我只會爬,又有人說,要力爭上游,可我還是只會爬。膝下多少閃亮亮的黃金,沒得選擇,再髒也只有跪下拖著爬了又爬。坑坑洞洞崎嶇不平的路,沒有積成到處汙水坑,已經是萬幸。從生下來到開始爬,四隻腳一路爬了多遠,卻沒有個四腳獸里程錶來計算。 今天 Penk 大員外,回國後第一次和他的大房、二房、三房、四廳暫別,出了三合大宅院,帶著他的全新『金屬髮絲紋之包膜麥克書(MacBook)』上來台北聚聚,真的有夠炫耀!其閃光程度遠遠超過路上正妹配醜男、高挑姐姐配上肥豬口水哥! 難得久久一次出國,他也準備了 Pretty Cool 的『回國大禮』附會,禮數真沒少過,不過這禮物大概只有他才想得到。員外有心,特意延路收集了一疊厚厚的『火辣辣』拉斯維加斯廣告傳單,當作名產拿回來送。每一張廣告,全都少不了身材姣好又全裸入鏡的美女,一定還有勾人神魄的特寫表情和動作,標註更猛,寫著:『二十分鐘內送到家,使命必達(To Room In 20MINs or Less)』,賭城的夜間特種電視台一定都倒光了,因為彩虹都是直接淋在頭上啊。話說,是否真的20分鐘抵達,看看有沒有人願意從台灣打電話試試!搞不好台灣真有分部! 天底下沒有不散的宴席,短短的閒聊之後,工作還是要搞定,只能繼續爬著人生的旅途。