January 31, 2005
優秀的 VidaLinux
「只要有心,人人都能當食神」,這是周星馳電影裡頭的名句,但是這對種類繁多的 Linux distributions 來說,只要有不錯的訴求、廣泛的支援,以及那個成功的因素 -- 「有心」,要脫穎而出是有機會的。
VidaLinux 是以 Desktop 為主要訴求,或許聽到這種介紹,您不免要疑惑:「又有人搞一套 Linux Desktop 啦?」但是實際使用 VidaLinux 後,你絕對會發現設計者的用心。VidaLinux 與其他 Desktop-oriented Linux distribution 的差異在於,整合 Gentoo 的 portage 設計,以及針對特定平台提供足夠量的 binary packages,這大幅降低 Gentoo 的 bootstrapping 時程,最重要的是,安裝 VidaLinux 真的非常簡單,如果安裝過 Fedora Linux 的朋友,一定會很快的就把系統安裝好。
等系統安裝好,就可以使用 Gentoo 的 portage 來安裝與設定你的系統:

想裝什麼套件,相關設定調一下,按個 "Emerge" 就會乖乖的幫你弄好。
最後,推薦您閱讀其他行家的評語: [Hands on VidaLinux Desktop OS]。
Have Fun!
由 jserv 發表於
10:26 PM
|
迴響 (0)
Tom Tromey 的 Eclipse 備忘錄
著名的 GCJ/GCC Hacker,Tom Tromey,目前是 RedHat Eclipse 小組的靈魂人物,致力於更廣泛的 Eclipse 應用,也致力讓 Eclipse 得以成為完全的 FOSS (Free and Open Source Software),他們的途徑就是使用 GCJ。
已經有很多令人振奮的消息指出 Eclipse 在 gcj/gij 上可以順利運作,RetHat 甚至還提供 native binary package,雖然效能還有進步的空間,但是這意味著 Eclipse 可應用於不同的需求,比方說 Embedded Linux SDK 的整合開發環境,成功案例可參考 [Wind River scoops up ScopeTools] 與 [TimeSys offers evaluation version of embedded Linux tools]。我們可以發現 Wind River 的 WorkBench 是建立在 Eclipse 的基礎之上,但是最終的開發目標卻是 Wind River 的應用程式,而非 Java Applications,所以如果能夠提供一個 pre-compiled native binary 給客戶,將會是很棒的整合設計。
說了這麼多,其實我要說的是,Tom Tromey 將 Eclipse/GCJ 的整合工作項目記錄在 [Free Eclipse],有許多重要的參考資訊。
喔,對了,Kaffe 當然也能運作 Eclipse,眼見為憑: [Kaffe.org - Screen Shots - Eclipse],這是我去年的嘗試,最近也打算還更新到最新的 Eclipse 來測試。
由 jserv 發表於
10:05 PM
|
迴響 (0)
以 Kaffe 驅動 pure Java X Window System 應用
身為 Kaffe Developer,能夠分享自己的進度的確是很讓人開心的事情,正如我在 Kaffe mailing-list 提到的 [pure Java X Protocol implementation driven by Kaffe],透過延伸 escher 這個 pure Java X Protocol 的實作,現在 Kaffe 可以在 X Window System (我用的實作是 XOrg) 上「直接」透過 X Protocol 來驅動 X Server 呈現一般 X client 的行為,原理可參考去年 Debian@Taiwan IRC Conference 中我的講題:「FreeDesktop.org 與 X.org 嶄新發展概況」與「FreeDesktop.org 與 X.org 嶄新發展概況(續集)」。
這是一個很大的突破,只要完備的話,甚至不需要 xlibs,相反的只需要 Java Runtime 就可以達到同等甚至更好的效果,這也是 Sun Project Looking Glass 採納 escher 的原因之一。不過,我所要作的與 Sun lg3d 的發展不相同,我考量到的是桌面的整合能力與 Embedded System 的應用。
比較有趣的部分是,我將過去花費時間研究 Java binding (JNI) to OpenGL library 的議題,轉而研究「是否有無可能透過 Java 直接驅動 GLX,發揮硬體加速的能力」,是的,這是可行的,而且我已經初步成功了,請參考以下快照:

與

近期內,我將會繼續研究 KMM (Kaffe Multi-Media) 計畫的基礎建設,祝我好運!
由 jserv 發表於
07:44 PM
|
迴響 (0)
Odonata + sdlJava
最近 Free Java 的發展真是「有頭有臉」,怎麼說呢?因為 GCJ Hackers 已經完成許多 AWT/Swing 的實作,GNU Classpath Hackers 首度完成 JDK 1.0 全部規格,並且廣泛的實作 JDK 1.4 規格,完整度很不錯,而標題所提到的 Odonata 與 sdlJava 昨天在 twiun 的告知,已經有很不錯的整合,運作快照可參考 [Odonata-on-SDLJava]。
所以,Odonata 現在除了可透過 Linux FBDev 與 VNC RFB (Remove Framebuffer) 作為顯示裝置外,還可以透過 SDL,這樣將可以在更多的平台與環境上運作 GNU Classpath AWT,非常令人振奮的消息!
由 jserv 發表於
07:19 PM
|
迴響 (0)
January 30, 2005
很牛的 JetNuke
JetNuke 是個新計畫,目標是將著名的 PHP-Nuke 用 Java 重新實作過,其最新的進展就如網頁呈現的面貌,最神奇的是,作者只花了很短的時間就把 PHP 撰寫的 Nuke 重新改寫完畢,整體核心變得相當精簡。

用 Java 改寫不是噱頭,相反的,我們可以發現這個移植中,大量使用到 J2EE 的基礎建設,下載的 tarball 則內含 Apache Tomcat 4.1.29 與所需的 binary packages,可以想見的是,等 JetNuke 穩定度足夠後,就可以運用 J2EE 相關技術作整合,Apache Jakarta 許多重要的元件,比方說 Velocity 或 Cocoon,都有機會整合進來。
剛剛用 Kaffe 來測試,成功載入整個 Web Application,不過細部運作不是很正常,要點 hacking 才行。
由 jserv 發表於
11:49 PM
|
迴響 (0)
Winstone Servlet Container
[
Winstone Servlet Container] 是個非常優秀的 JSP/Servlet container,您或許會問,為何要重新設計一個新的 Servlet container 呢?不是已經有 Apache Jakarta/Tomcat/Jetty 等一流的實作了嗎?我們考量的問題不在於授權 (有趣的是,Free/Open Source 的實作的確是比商業版本多),問題在於我們是否需要完整支援 J2EE 這個大怪物。
J2EE 無可諱言,引入許多傑出的設計,讓開發時程縮短,而整體的穩定度與可維護性有相當不錯的改進,並且 J2EE 本身就是 Design Patterns 相當好的典範,非常幽雅,但是,很多情況下,我們真的只需要普通的 Web content,了不起搭配一些 web services,就能應付大部分的應用了,所以簡單又強健的 JSP/Servlet container 就有其存在的必要性。
Winstone 的設計目標如下:
- Supply fast, reliable servlet container functionality for a single webapp per server
- Keep the size of the core distribution jar as low as possible (currently 138KB)
- Keep configuration files to an absolute minimum, using command line options to optionally override sensible compiled in defaults.
- Eventually compile with GCJ to make a 3-4Meg windows exe for local development/deployment of servlets. This has not happened yet, because of some GCJ class loading problems.
- Optionally support JSP compilation using Apache's Jasper. (http://jakarta.apache.org)
而剛剛也用開發中的 KaffeVM 作測試,不需要任何修改就可以運作,而且效能還不錯,詳情可參考 [
Winstone Servlet Container runs on Kaffe]。
Just Kaffe it!
由 jserv 發表於
10:43 PM
|
迴響 (0)
使用 flex 2.5.xx 需要留意的項目
Debian sid / sarge 裡頭的 flex 套件版本已經推到 2.5.xx,如果用來作 Lexical 處理的話,要注意到以下事項:
- 不得使用 "m4_"、"[[",及 "]]" 作為輸入字串,所以如果這樣宣告就會出問題:
x[i[j]]
解法: 避免 m4_ prefix,以及保持 [[ ]] 之間安插空白的習慣
如果使用 int yylineno = 0; 的話,會出現 "yylineno is redefined" 的錯誤
解法:重新命名 yylineno,或者使用 "%options yylineno" 與 "int lineno() const"
出現 "yytext_ptr is undefined" 的錯誤,這是因為在第二個 %% 中使用 unput()
解法:直接設計 wrapper (in body),比方說:
%{
// forward declaration needed by the following function
#ifndef YY_PROTO
#ifdef YY_USE_PROTOS
#define YY_PROTO(proto) proto
#else
#define YY_PROTO(proto) ()
#endif
#endif
static void yyunput YY_PROTO(( int c, char *buf_ptr ));
void do_unput4(const char c) { unput(c); }
%}
由 jserv 發表於
05:50 PM
|
迴響 (0)
GNUstep 的Gorm / Project Center
在我前一篇 blog [
Steve Jobs 展示 NeXTSTEP 3.0] 的展示影片後半部大致是介紹 NeXTSTEP 的強力開發工具 Interface Builder,而作為一個開放的 OpenStep 實作的
GNUstep 也獨立開發 Gorm / Project Center 作為對應的實作,在官方網站上甚至還提供一個以 Macromedia Shockware Flash 製作的短片,請參見 [
Programming with GNUstep]。
這個 Flash 短片主要是展示如何用 Gorm / Project Center 快速開發一個計算機的小程式,真正需要動手 coding 的部分只有兩行,其他都可以透過物件導向的方式來開發。
由 jserv 發表於
03:17 PM
|
迴響 (0)
Steve Jobs 展示 NeXTSTEP 3.0
極富盛名的 Steve Jobs 當年被 Apple 董事會趕出後,自己成立 NeXT Inc.,號召各路人馬,開發了許多卓越的設計,整合到 NeXTSTEP 中,雖然該團隊並不是相當龐大,但是其成就卻相當令人驚訝。NeXTSTEP 是完全物件導向的系統,而 1992 年 Steve Jobs 展示 NeXTSTEP 3.0 的影片可在 [
The Steve Jobs NeXTSTEP 3.0 demo] 下載,記住,這是 14 年前的科技 :-)
此外,Slashdot 上也有許多熱心的朋友提供 P2P 下載資訊,參考 [
Steve Jobs Demos NeXTSTEP 3.0]。
Update: 我在台大計中放了 [
影片 mirror] (Apple QuickTime movie)。
由 jserv 發表於
02:42 PM
|
迴響 (1)
Ubuntu 滿堂
剛剛看 Tim Riley 的 blog 發現一個有趣的 entry [
Full Steam Ahead!],是作者任職於
Pembroke School 時所從事的推廣 Ubuntu 工作,看看下面的圖:

作者的眉批這麼說的:
The plan is to release a version of this sometime soon, with modifications to fit better into Ubuntu and along with some nice docs so that the software can be more accessible to others. Anyway, I hope this year will be a big one for Linux on the desktop in South Australia!
Ubuntu 真棒!
由 jserv 發表於
01:03 PM
|
迴響 (0)
益智遊戲: Grout
Grout 是個用 Java 1.1 撰寫的益智遊戲,先看看以下的圖:

緊鄰的六個六面形有個特性,就是裡頭的色球會與邊界的球同色,形成一個配對,而 Grout 設計的目的就是希望從原本組合中,經過適當的重組獲得這樣的配對。
Grout 1.0 支援四面與六面形,裡頭有些範例可以參考,對了,這個解題遊戲可以用 Kaffe 跑,運作畫面如下所示:

由 jserv 發表於
12:37 PM
|
迴響 (0)
Freevo 開發者訪談
Freevo 是個非常棒的一個 FOSS (Free and Open Source Software) 計畫,而 O'Reilly 旗下的
LinuxDevCenter 邀請 Freevo 的核心開發者 Rob Shortt 等人進行了訪談,詳細內容可參考 [
Freevo: Freedom For Your TV]。

Freevo 以 SDL 與 Python 打造,目標是建構一個 Media Center 的平台,除了 TV 功能外,也支援 PVR 錄影,透過 Python 撰寫的眾多模組,可以很快的整合新功能。值得一書的部分是 Freevo 支援
XMLTV,這是一個針對 TV 應用的 XML 處理。
O'Reilly 的記者也提到 Freevo 與另一個著名的計畫
MythTV 的差異,我們得到的回應是這樣:
Dirk Meyer: MythTV uses QT, which uses X. Freevo should also run on a frame buffer, a DXR3 or something else. The next difference is MythTV depends on a MySQL database. Freevo always was a GUI for external programs. There was never the idea to build a TV application like MythTV inside Freevo.
Rob Shortt: MythTV has the live TV time-shifting nailed, and for that I am envious. While Myth has the advantage in [this], I think Freevo does a better job of other media handling.
Freevo tends to be a more nimble program, or I should say "platform." This has to do with us not using a data server like MySQL or depending on Apache for the web interface. Instead, we use a combination of caches, object serialization, XML files, and SQLite for persistent storage, and our own lightweight web server using Twisted.
Aubin Paul: MythTV is exceptional, and I admire much of what they've done. But I don't like some of their design choices. For example, why would I run X-Windows on my TV?
所以我們知道:
- Freevo 不需要 X Window System,而 MythTV 需要
- Freevo 不需要 MySQL 支援 (使用輕便的 SQLite),而 MythTV 需要
- Freevo 不需要複雜的 Apache (使用小巧的 Twisted),而 MythTV 需要
- Freevo 的 software stack 較 MythTV 精簡許多
由 jserv 發表於
03:01 AM
|
迴響 (0)
January 29, 2005
迷你的 MatrixOS
剛剛在 #kaffe 遇到 WindowUninstall (別懷疑,這是 nickname),讓我想到他最近作的計畫 -- MatrixOS。MatrixOS 的發展環境是在 Linux,並透過 Bochs 作模擬測試,建構出來後,會產生 Floppy image,大約 23kb,是個具體而微的迷你作業系統 (其實我的 JK 也差不多這樣的 footprint)。
MatrixOS 以 C++ 撰寫,是幾位熱心的義大利朋友發起的,有自己的 Boot Loader,支援 32-bit Protected Mode,內建 keyboard 與 vga driver,也有個陽春 shell 可用,程式設計還挺單純的,比較接近所謂的 monitor。
對了,下載的 tarball 裡頭就有參考的 bochsrc,可以直接用 Bochs 跑來玩。
由 jserv 發表於
11:42 PM
|
迴響 (0)
結識新朋友
這幾週一直連不上 freenode.net,所以也就沒有掛在 IRC 上跟 Kaffe 與 GNU Classpath hackers 討論,晚上用餐完試著連線,終於再度 /join #kaffe。遇到一個新 nickname -- AvengerMoJo,我們因為 DirectFB 的議題聊了起來,之前我花了些時間處理 DirectFB 與 Kaffe VM 整合的事宜,所以看到有朋友也對這項目產生興趣時,我們就聊起來了。
後來才發現 MoJo 來自大陸北京,他的首頁 [AvengerGear First Home] 有一些生活照與 blog,同時也與 James Su 和 Foka 熟識,而我們繼續在 IRC channel 聊了其他主題,很高興又認識一位新朋友。
網路真是太神奇了 :-)
由 jserv 發表於
10:15 PM
|
迴響 (1)
Sun Jini 可望更改授權方式
在 Jini.org 的論壇上,Sun Microsystems 的員工 Jim Hurley 在回覆 [
Apache 2] 中提到:
We currently believe the first step in this process is for Sun to release a version of the starter kit under the Apache 2.0 license. We're working on the necessary subsequent next steps with Sun legal.
Jini source code 是否可望從 SCSL 移轉到 APL 2.0 呢?讓我們拭目以待。
由 jserv 發表於
10:04 PM
|
迴響 (0)
親手打造足球機器人
一篇由大陸上海交通大學的博士班學生 Huang Yi 撰寫的文章 [Soccer-playing robot runs real-time embedded Linux],是自動控制與 Realtime Linux 應用的極佳範例,其成品像是這樣:

有些牽涉機械的地方看不是很懂,不過 [Software architecture] 倒是可以多參考。
由 jserv 發表於
09:24 PM
|
迴響 (0)
不錯的 Wine 簡報
Wine 是個相當出名的 Free/Open Source 計畫,歷經十餘年的開發,已經累積相當多成果,在去年的 WineConf 2004 中,Wine 核心開發者之一的 Mike Hearn 準備了一份對 Wine 發展概況的簡報,標題是: [So you want to be a Wine hacker?],這份簡報是透過 XML transform 呈現的,所以支援 DOM/HTML 4.0 的 Web Browser 應該都能觀看。
由 jserv 發表於
03:56 PM
|
迴響 (0)
飛躍的企鵝
剛剛看李果正前輩的個人板發現這麼棒的企鵝圖:

出處是 [
KDE-Look.org],這「飛躍的企鵝」真是可愛!
由 jserv 發表於
03:33 PM
|
迴響 (0)
更新首頁 (about Qtopia)
雖然現在已經沒有從事 Qt/Embedded 的開發,過去維護 Qtopia Applications 也荒廢了,但是或許還有參考價值,所以剛剛把原本放在 ccns.ncku.edu.tw 上的文件作了份複製,也一併更新 [首頁] 裡頭的 link,請參見 Projects --> Qtopia。
這份 mirror 為 [Qtopia (Qt Palmtop) 展示與介紹],至於其他的項目,待整理後陸續移轉過來。
由 jserv 發表於
12:59 AM
|
迴響 (0)
January 28, 2005
GCC Wiki
GNU Hackers 之一的 Daniel Berlin 用 PhpWiki 架設好 GCC Wiki,羅列了一些 GCC 重要的參考資訊,比方說許多開發者專注的 GCC 4.0 重大的變革、Tree/RTL Optimizers,或者是結構方面的議題。
GCC rocks!
由 jserv 發表於
08:57 PM
|
迴響 (0)
ParaGUI + SDL_im 進行中文輸入
courage 兄最近花了很多時間研究著名的 Graphics Library -- SDL,並針對其輸入法支援作了加強,我跟 lwhsu 協助他建構專案計畫 [SDL-IM: IM(Input Method) support in SDL],雖然計畫成立沒多久,但是已經有很多成功的案例了。
courage 兄這幾天稍微修改 SDL 為主的 Widget set -- ParaGUI,搭配 SDL_im 與 arialuni.ttf (Microsoft 提供的 Arial Unicode font) 之後,就有很不錯的中文顯示與輸入支援,請見以下快照:

SDL_im 在 X11 下可以直接使用 XIM,畫面所示的就是使用 xcin。
由 jserv 發表於
08:06 PM
|
迴響 (5)
Window Manager 測試報告
之前花了點時間 (還不少),把 [Window Managers for X] 所羅列的 Window Managers 都測試過了,除了幾個 link 失效的以外,所以我試著記錄一部份測試心得,最後再來整理完整的報告。
這裡著重的是非主流的 Window Managers,真正使用的朋友大概不多,但是卻非常有特色。
pekwm (連結失效)
衍生自 aewm++,但是加入不少有趣的特徵。基本上與 twm 操作還頗類似的,可是能夠調整的幅度頗高,速度又是一流。
QVWM
非常著名的 WM,模仿 Windows 95/98 外觀,但是已經停頓發展,我跟幾位朋友試著接手維護,可參考 [我的首頁] 的 Projects --> Qvwm
Efsane II
. 以 C++ 撰寫,程式架構清楚
. 實作 EWMH (部分)
. 提供 GUI 設定工具
. 已不再維護
B4Step
. Theme 支援
. 與同等 footprint 的 WM 相比,功能完整度高
. 豐富的設定
SWM
. 完整度高
. 很適合 PDA 的小畫面
. Theme 支援
. 記憶體用量少
sWM 相當適合 handheld devices,其 code size 大約有三種等級:12k、32k,以及 42 kb,核心非常精簡,而且很容易作 build-time configuration,就像 Linux Kernel 可以 make menuconfig 。sWM 提供很多內部屬性與功能的選項,透過這些組合,可以很快建構出合適的 Window Manager。在 sWM 下開任何 X Client 就真的「繃」出來那麼快,此外,sWM 針對 desktop update 作了很多 fast algorithm 的實作,所以呈現的效果相當理想。還有,不同於其他 WM 需要額外的輔助程式來實作 panel 與 desktop icon/shortcut 的功能,sWM 提供內建的 panel bar,算是堪用。
說完好話後,開始分析缺點。
1. 不支援 EWMH 與 NET_WM
2. ICCCM 支援度不佳
Matchbox
很精簡但是卻支援很多 FreeDesktop.org 規格,模組化設計良好,如果只談核心的 WM,支援 Pango / Xft,也可選擇支援 GConf,內建 Composite manager。此外,目前跟 Matchbox 作者互動還不錯,很多 idea 與 patch 很快就納入,所以當作參考的 codebase 很理想 (甚至可以 cross-development),支援 theme,但是受限於 handheld 考量,只提供部分的設定,若作為 Desktop 使用的話,Matchbox 需要一些 working style 的 fine tune 才行。
Luminocity
GTK+ 的設計者 Owen Taylor 所作的新 Window Manager/Compositing Manager with GL output,非常卓越的架構與設計,可以支援 FreeDesktop/Xorg 大部分嶄新的規格,比方說 XFIXES、SYNC、DAMAGE、Composite、XTEST,以及 GLX 等 extensions,當然也要來欣賞一下其 [Live Pager]。
由 jserv 發表於
07:51 PM
|
迴響 (1)
GCC 4.0 SSA
GCC 4.0 最重要的特徵之一就是整合了 tree-ssa 的重大設計,長達兩年的獨立開發過程,終於在去年整合進 gcc-3.5 mainstream,而經過 GCC Developers 的決定,因為這已經大幅修改 GCC 內部實作設計,所以直接跳躍版本到 4.0。
在過去 (GCC 3.x 以下),GCC 在設計層面仍採相當保守的 Front End & Back End 設計,Front End 將眾多的 Languages (C、C++、Java、Fortran 95、Objective-C,以及其他支援的語言) 轉化成 RTL,而 Back End 則歷經 RTL Optimizier --> Code Generator --> Object code 的過程。這樣的設計並沒有問題,但是讓更高階、更積極,以及編譯速度無法提升到一定的程度。 [GENERIC]
SSA (Static Single Assignment) 是相對來說嶄新的設計 (Modern Compiler Design 事實上已經有許多變局),其途徑為 GIMPLE --> CFG (Control Flow Graph) --> SSA --> SSA pass1==>pass2==>pass3==>...==>pass_n --> unSSA --> RTL --> Back End。這個 Tree Optimizier 在 GCC 4.0 的整合過程產生了變形,與前述的 GENERIC 方式整合,我們可參考去年 [
GCC Summit 2004] 中獲得啟發,同時也可以參考業界 SSA 實作的權威 Kenneth Zadeck (of NatualBridge Inc.) 的 Talk: [
Static Single Assignment Form]。
由 jserv 發表於
06:37 PM
|
迴響 (0)
Open Graphics Project
KernelTrap 日前對 OGP (Open Graphics Project) 的發起人 Timothy Miller 作了一份很精彩的訪談,可參考 [
Interview: Timothy Miller]。OGP 是
Tech Source 有鑑於繪圖晶片製造商不再公開產品的內部規格,以致於 Free/Open Source 開發者無法撰寫充分發揮硬體能力的軟體建設的窘境,因此,OGP 一開始的目標就是建立完全開放的規格,讓開發者有足夠的資訊,釋放 2-D 與 3-D 加速繪圖顯示卡的威力。
以下節錄 OGP 的訴求:
The OGP card will be a half-height, short card that will fit low-profile cases. It will support dual-link DVI, analog VGA, and TV out. It will support resolutions up to 2048 x 2048 (Tech Solutions has experience supporting Sony's high-resolution DDM [data display monitors] for air-traffic controllers), and will include some MPEG support, such as automatic YUV to RGB conversion. It will be released initially as a PCI card, with AGP and PCI-Express to follow, Miller says in the interview.
同時,這份訪談也指出,OGP 會支援 OpenGL 2.0,至於其詳細規格,可以參考:
總結一下這張顯示卡的幾個重點:
# Dual-link DVI, analog VGA, and TV out (NTSC, PAL, SECAM, etc.)
# Extremely high display resolutions (like over 2048x2048)
# 1.6 billion pixels per second maximum memory bandwidth [2]
# 128 megabytes of graphics and texture memory
# PCI, AGP, and PCI-Express (preliminary release will be PCI only)
# Most of OpenGL 1.3 plus many later features
# Unified 2D and 3D pipelines
# Half-height, short card for low-profile cases
# Some MPEG support, such as automatic YUV to RGB conversion
# Flashable boot PROM for booting in any supported platform
# Emulation of VGA modes for boot in x86 platforms
預計今年六月份,這張相當特別的顯示卡會現身,這篇訪談除了產品資訊外,Timothy Miller 也提及頗多繪圖硬體與軟體整合的資訊,很值得多參考。
事實上,這並不是新點子,早在幾年前就有個 [
Manticore] 的計畫,作為 open source hardware design for a 3D graphics accelerator,全部以 VHDL 設計,在該計畫網頁上可以取得相當多寶貴的資訊。
由 jserv 發表於
06:10 PM
|
迴響 (0)
在 Debian/x86 下進行 PowerPC 開發
IBM DeveloperWorks 上一篇新文章 [Emulation and cross-development for PowerPC],簡單扼要的介紹三個 PowerPC cross-development 模擬器工具,分別是 [qemu]、[PearPC],以及 [PSIM],而這三者最理想的,應該算是 qemu 了。當然啦,強力的 GCC 就不必多說了,同時也可以參考 [Debian -- PowerPC Port],找到一些合用的 patch。
qemu 支援 Just-In-Time dynamic compilation,除了不支援 AltiVec™ vector-processing instructions 外,qemu 的效能算是很不錯,也支援 Remote GDB,在 x86 下運作也不錯。
IBM DeveloperWorks 上關於 PowerPC 的文章越來越多了。
由 jserv 發表於
03:35 PM
|
迴響 (0)
讀書最快樂
昨天 (週四) 去拜訪 SoG 學長的公司,順便跟他的老闆作了些交流,我們大致是從早上 10:50 開始聊,等握手道別時,已經中午 12:50 了,這兩小時也是耳聞一些新資訊與想法。之後就跟 SoG 學長去附近的簡餐店用餐,不免也繼續之前的話題,大約下午兩點,與學長道別後,我就徒步走去台北 101 大樓晃晃。
逛這麼大的商場實在很費時間,老實說我也不知道自己到底為何要來逛,總之就是對標價相當有興趣,拿起紙筆,就開始統計了起來,這讓我想到許多以商品出發的市場經濟模型,所以我就有股衝動,想去尋找箇中道理。
於是很快我就到了 PageOne,走到經濟學專區,雖然比不上圖書館的專業,但是書籍還頗新的,最重要的是閱讀環境還不錯 (無聊的時候可以抬頭看 MM),比較讓我著迷的是《新國富論》,裡頭頗多獨到的論點,隨後又閱讀《新泡沫經濟-日本銀行的崩潰與曙光》,這兩本都給我相當程度的啟發,或許這幾天有空時來整理讀書心得。
當然,也不能忘記為 FOSDEM 2005 的地點 -- 比利時,找一些旅遊參考資訊,否則到時候真的就糗大了,PageOne 的旅遊資訊書籍實在是非常完整,反倒讓我一時之間不知道如何挑選,於是隨便選一本同名的書籍:

作為一個多元文化的過渡帶,比利時的文化相當令人驚豔,書中的介紹也打破我過去許多刻板的印象。
嗯,讀書最快樂 :-)
由 jserv 發表於
02:59 PM
|
迴響 (1)
Qt 3.3.4 釋出 & Qt4 Plans
Trolltech 剛宣布 [Qt 3.3.4 釋出],這是個 bug-fixing 與最佳化的版本,而令所有開發者秉息以待的 Qt4 呢?在 Qt4-preview-feedback mailing-list 上 Trolltech 宣布 [Qt 4 Release Schedule Adjustment],所以依據這個訊息,今年三月到五月間,還會有新的 Qt 4.0beta release,並於 2005 Q2 結束前釋出。
由 jserv 發表於
03:57 AM
|
迴響 (0)
Prism2 WirelessLAN 驅動與整合
去年我曾經花了些時間涉獵 Intersil PRISM-2 WirelessLAN card 的驅動,事實上成效還不錯,至少手頭的幾款都成功驅動,也適時的提供給客戶測試,但是問題點在於整合度不良。放眼望去,目前 Linux 平台上,Free/Open-Source 的實作中,最具有高度整合的 WirelessLAN suite 大概就屬 [
NetworkManager ]。NetworkManager 基本上是個 GNOME Applet,但是內部大有學問,以 Linux Kernel 2.6 udev 與 HAL 技術為主軸,並透過 D-Bus 作 IPC。
姑且不論 NetworkManager 的 GNOME support 是否能夠 stripped-down 到 pure GTK+,PRISM-2 的驅動目前是
linux-wlan-ng 這個計畫所主持的,有許多成功的案例,但是 linux-wlan-ng 有一些致命的問題,其中最麻煩的就是欠缺 Linux Wireless Extension 的支援,這讓 NetworkManager 在 PRISM-2 上的運作顯得困難重重,同時,也可以發現 NetworkManager 不支援 wpa_supplicant (這也與 NetworkManager 原有的 backend functions 有所重疊,比方說 scanning)。
為此,Dan Williams 在 lwlan-devel mailing-list 提到以下的處理方式:
we have to sumbit patches for wpa_supplicant to run in "dumb" mode and only authenticate when & where we tell it to. That's a bit out (maybe a month or two?) but is definitely in the works for NM right now.
所以還需要 wpa_suplicant 相關修正的涉入才能繼續進行 。
由 jserv 發表於
01:18 AM
|
迴響 (2)
首度 KDE@Taiwan 使用者聚會圓滿落幕
訂於 Jan 23, 2005 的 KDE@Taiwan 首度使用者聚會圓滿落幕,感謝各位前來指導的朋友捧場。
聚會一開始,由 KDE@Taiwan 現任的主持人 AceLan 為與會的朋友介紹目前的組織現況、KDE 繁體中文翻譯進度,以及 Qt 季刊 (Quarterly) 的繁體中文翻譯計畫進度 [照片]。而我則為大家介紹 Trolltech 預計在 2005 Q2 釋出的 Qt 4,並從 Qt4 Beta1 窺見最新的發展狀況 [照片 (馬賽克)]。喔,KDE@Taiwan 的創辦人莊明哲前輩也有來,於是我拿了前輩的大作《KDE2 技術開發》,索取親筆簽名 [照片]。kclin 也上台分享他的 KDE 經驗談,他說「只要有心,人人都能弄出很棒的工作環境」 [照片],此外,原真也上台分享最近作的 KDE PO 翻譯輔助工具,也引來阿信的討論,如果能適用更廣泛的翻譯計畫的話,真的是很不錯。
在我的分享題目 [Trolltech Qt4 嶄新發展概況] 中,有許多展示程式與特效是透過 KittenBox 來展現的,順便拍了張圖 [照片]。
對了,這次也來兩位 KDE Girls,兩位佳麗對整個活動增色不少 [照片],特此感謝。
雖然發生一些小插曲,但是整體來說,這第一次聚會的活動還頗不錯的,希望明年的聚會有更多有趣的內容,謝謝!
由 jserv 發表於
12:54 AM
|
迴響 (0)
January 27, 2005
熱血三人組
週二晚上從台大迴廊咖啡廳走出來後,Andrew Lee、chihchun,還有我,一路為了找喝酒與聊天的地方 (人云:「酒後吐真言」),經過頗多店家,最後是到了師大附近的一家 Bar,氣氛還不錯,也有神奇的無線網路 (或許是 chihchun 的 WirelessLAN NIC 太強了),總之,我們點了酒之後就開始討論 Debian@Taiwan 的議題。對了,我點了 Coma (昏迷) 這個調酒,味道挺不錯,除了稍微嗆了些,有機會或許可以再嘗試。
我們討論很多項目,但是有些部分還沒整理出來,已經整理好的部分則是 [Debian@Taiwan 2005 Plans] 與 [Asia Debian Aisa Debian Mini-Conf 2005],在我們討論的時候,也萌生許多熱血的點子,待思路與時間成熟後,也會一併告知,這兩個項目大概是最近的重點。
比較有趣的項目之一就是「 開發者定期聚會 -- 如黑客松模式聚會等,每週定期聚會,每月固定一次 Debian 使用經驗分享」,這在最近就會展開,#debian.tw IRC channel 上討論很踴躍,不過我們很多細節還未敲定,有興趣的朋友可以協助,無論是提供地點、提供議題,或者是出個人頭,只要你自認熱血,就快點衝過來 :-)
今年 Debian@Taiwan 的活動真是多阿,所以呢,我們這三人組就從週二晚上一路聊到週三早上 5:50 台北捷運列車開車時才結束,離開時,全身還是熱血沸騰阿。
由 jserv 發表於
11:23 PM
|
迴響 (0)
快快樂樂作中文資訊處理
這個標題跟內文似乎沒有直接關連,因為很多人看到「中文資訊處理」這個議題都不快樂。
週二在台大迴廊咖啡廳,有一群人士聚在一塊討論這個議題,因為部分討論內容比較敏感,這裡就不作介紹了,雖然現有新的輸入法挑戰眾多,正如我在過去的簡報 [Linux 中文輸入法的新挑戰] 提到的,現在中文輸入法 (當然還有相關的中文處理) 的問題不在於實作少、環境架構不允許,相反的,是選擇太多了,架構環境變化太大,常常作了一堆重複的工作,輸入也好,輸出更是。當然,針對這個議題,我也還是一個門外漢,但是截至目前為止,我看到的問題越來越多,而原地踏步的情況卻沒有改善。
越來越不愉快了,我來提一些有趣的新消息,[新酷音/SCIM] 的維護者 kanru 最近修改許多 SetupUI 的部分,應該很快就會 checkin 了,太炫了,然後下一步就是整合 SCIM 1.1.x 的 Helper classes,這時候就要說:「酷!」
由 jserv 發表於
10:43 PM
|
迴響 (0)
以 Eclipse 與 GCJ 進行 100% Free/Open-Source Java 開發
Andrew Overholt 張貼了一篇很棒的 blog [Eclipse + Java-GNOME Demo],在這篇 blog 中,Andrew 展示了如何使用 GCC 4.0 (with GCJ) 與 Eclipse 作 Java 程式的開發動作,不同於以往複雜的 How-To,Andrew 準備了 Flash SWF 動畫,而展示的過程中,也提到 GNOME-Java 的簡潔有力,並且可與 glade 這套快速發展的 GUI RAD 整合。
當然啦,最後透過 GCJ/GIJ,你可以選擇輸出 byetcode 與 native code,就目前來說,可用度已經非常高了,非常值得一看的展示!
Let the Java Free.
Free Java can do it, and even better!
由 jserv 發表於
09:35 PM
|
迴響 (0)
Xorg 的模組化過程
Xorg 的前輩 (前 XFree86 Developers 之一) KEM (Kevin E Martin) 今天在 Xorg 的 mailing-list 上提出對於 Xorg 模組化的規劃,請參考 [
Modularization working group],這個規劃一旦完畢,建構 Xorg 不再是龐然大物,漫無止盡的 make World 過程,相反的,可以很明確的切割 xlibs、Xserver、XExtensions,以及個別的 X Applications 與 Utilities,最重要的是,可以減輕許多 packager 的工作負擔。
KEM 列出他的想法:
Goals
-----
- Determine how to modularize the source code tree
- Evaluate the available build systems and how they will be used
- Document module ABIs
- Document how individual module releases and roll-up releases occur
- Define roles and responsibilities for module maintainers
- Produce a detailed design document that will be presented to the
architecture working group
Tasks
-----
- Distribute request for modularization requirements
- Discuss how to modularize the source code based on the requirements
- Determine supported feature-set
- Determine verification methods
- Document the interfaces between module components
- Formalize the modularization plan
Daniel Stone 則在 [
回應] 中指出會使用 autotool 來處理,當然有很多討論的空間,比方說 Win32/MinGW 方面的配合度問題。
由 jserv 發表於
09:00 PM
|
迴響 (0)
Xorg X11R6.8.2 RC3 釋出
參考 Xorg mailing-list 上的訊息: [ANN] X11R6.8.2 Release Candidate 3 is out!,我們可以發現若干個 video driver 都已經更新過,同時 OpenGL/Mesa 的版本也更新至 6.2,而最終的版本預估於兩週後釋出。
Just Xorg it!
由 jserv 發表於
09:32 AM
|
迴響 (0)
兩部電影
週三下午很努力的起床 (之前太熱血,結果休息不足),去老應的公司「瞧瞧」,談一些生意事,沒什麼結論就是。走回捷運站的路上,在一旁的麥當勞隨便點了餐,閱讀三島由紀夫的《太陽與鐵》,然後準備搭乘捷運與公車回內湖。
剛坐上公車 (已經到圓山捷運站),《太陽與鐵》裡頭的情節卻在腦海中難以磨滅,於是我突然興起看電影的衝動,於是跟公車司機道歉後,就殺回捷運站,趕到民權西路上的朝代戲院看電影。跟以往不同,這次完全沒有規劃,也沒有友人陪伴,隨便買了票就進去看,甚至還不知道片名。
而,恰好選到兩部不錯的電影,分別是〈手札情緣〉與〈在世界的中心呼喊愛情〉,這兩部都非常賺人熱淚,而我也因為劇情起伏,抽咽了三、四次,回來後有點疲倦,先 Google 一下劇情介紹作參考:
簡單用一句話作結:「珍惜人生的春天」。
勸君莫惜金縷衣,勸君惜取少年時。
花開堪折直須折,莫待無花空折枝。
《金縷衣》短短數餘字,道盡這一切的變動...
由 jserv 發表於
01:03 AM
|
迴響 (2)
January 23, 2005
自由日
剛剛在作些實驗,不知不覺弄到現在,今天除了是 [KDE@Taiwan 第一次聚會] 外,還是自由日,當然,背後的歷史背景 (韓戰) 有太多值得我們追思之處。如果撇開不論的話,在自由日聚會聊自由軟體,還不錯 :-)
更新了我的 [首頁],加入 JK (Just the Kernel) 的資訊,這是以前為了 Free JavaOS 所作的,不過這個專案已經如曇花一現般的消失了,而這個精簡的 Kernel 卻還有些參考價值,所以一併放到網頁上。
今年寫 blog 十天了,看起來還不錯,本篇恰好是第 50 篇。
由 jserv 發表於
04:58 AM
|
迴響 (1)
January 22, 2005
Xorg & File System Hierarchy Standard (FHS)
剛剛看 Gentoo Developers 之一的 Donnie Berkholz 前天撰寫的 blog: [6.8.2 RC2],提到以下敘述:
The next step of the migration will probably be /usr/X11R6/bin -> /usr/bin and /usr/X11R6/include -> /usr/include/X11 to finish things off, but I don't expect it will happen until 6.8.2. It will definitely be nice to just have /usr/X11R6 -> /usr. First, however, I need to fix my highly specific migration function to be more robust and generalizable to anything. Actually, 6.8.1.90x's might be a good opportunity to work on this, so 6.8.2 could also signify the lack of anything in /usr/X11R6.
這個議題事實上已經討論多時,比方說 [Installing XFree86 to FHS/better locations] 裡頭的描述中,我們可以發現 X11 許多 packaging 的方式與 FHS (File System Hierarchy Standard) 的原則部分抵觸,而 SuSE 的文件 [SuSE and the File System Hierarchy Standard (FHS) ] 在 [2.2.1 /usr/X11R6: X Window System, version 11, release 6] 一節則指出:
Host-specific data is in /usr/X11R6/lib/X11. The FHS intends this directory to be used for demonstration files only. Because SuSE doesn't use /etc/X11, the configuration files for window managers, applications, and so on are still in this directory.
就與前面引述的資料說法不一致,這點實在是非常的麻煩。
Gentoo 是個勇於創新的 Linux Distribution,可以想見,Donnie Berkholz 很快就會在 Gentoo portage 中落實上述的規劃,而 Debian X Window System 的 maintainer,Daniel Stone,也多次表示將不再使用 /usr/X11R6 這樣的 directory entries。
在 Xorg 最近的發展中,[dlloader is now the default] 讓 Xorg 的許多 modules 得以符合 LSB (Linux Standard Base) 作包裝,不過,這又引來許多討論,有興趣的朋友可以 follow up 上述的 thread。
Xorg rules!
由 jserv 發表於
10:03 PM
|
迴響 (0)
使用 XML 技術建構網頁
建構網頁非常簡單,但是要永續經營並且降低維護的複雜度,一直是許多專家不停研究的題目。剛剛找到 piaip 撰寫的一篇紀錄文件 [piaip's XSLT webpage project],果然獲益良多,真是非常感謝 piaip 無私的分享。
讀到一半,也讓我想到 Slashdot 最近有篇報導 [Printing XML: Why CSS Is Better than XSL],值得閱讀的部分不僅是新聞所參照到的資料,讀者的評論也很值得一讀,XSLT 實在是太有意思了。
所以我也打算在今年的 TODO List 安插 Web Publishing 的資料涉獵與參考實作。
由 jserv 發表於
06:58 PM
|
迴響 (1)
奇怪的 WinXP
剛剛才竊喜我的
HP Compaq nc4000 裡頭的 MS-Windows XP 已經運作一週沒關機,這是我第一次親自感受 Windows 能開機「這麼久」,頗震驚的,本來想在 blog 上稱讚 Microsoft 一下,沒想到,我打字打到一半,系統卡住,然後無線網路掛掉,等到再度連線成功時,才發現系統掛了...
沒錯,死當,重開機後發現中文輸入法爛了,還好 [
新酷音] 裡頭有個 test suite,可以透過 ncurses 來進行中文輸入,於是我就在裡面打好,再來複製貼上,真是有夠辛苦。
好吧,我再度考慮在這台 notebook 上安裝 Debian,有個不錯的參考資訊 [
HP nc4000 and Debian]。事實上,這台 notebook 上也有安裝 Debian,一個是透過
coLinux,裝在 NTFS partition 上,另一個是放在獨立的 ReiserFS partition,不過我還是不習慣在 notebook 上玩 Debian,沒有 "Hacking" 的樂趣,感覺 notebook 就是買來休閒用的 :p
由 jserv 發表於
05:51 PM
|
迴響 (1)
GCJ + jEdit
感謝 GCJ Hackers 之一的 Graydon Hoare 的努力,現在 GCJ (gui-branch) 已經能夠運作 jEdit 了,儘管有點視覺上的差異,但是這真是突破。現在 GCJ / GNU Classpath 的 Java2D rendering backend 有 gdk_pixmap 與 Cairo 兩種,後者很值得注意,不僅畫面流暢,完整度也高。好,不多說了,眼見為憑,jEdit on GCJ 的快照如下:

Let the Java Free!
由 jserv 發表於
05:04 PM
|
迴響 (0)
Waimea + fbpanel
剛剛從 cvs 下 checkout 了 Waimea,意外發現無法編譯,估計是 Cairo API 的差異,以及一個 typo 所致,順手修正後,發信到 mailing-list,參考 [Minor compilation fixes against cvs head]。另外,fbpanel 是個相當棒的工具,可配合符合 NetWM / EWMH 規格的 Window Manager 來使用,當然也包含 Waimea,這樣的組合感覺非常好,所以就弄張快照留念:

由 jserv 發表於
07:18 AM
|
迴響 (0)
有趣的 ZWM -- pure SDL Window Manager
很早就看過 [ZWM] 的網頁介紹,卻一直沒有抓下來玩,ZWM 的實驗性質很強烈,不以 ParaGUI 這類 pure SDL GUI Library 為訴求,相反的,有許多部分是參考 X Window System 的概念,然後以 SDL 的衍生 libraries 作實現,所以作者寧可稱其為 "Window Manager"。
原始程式碼有些部分無法通過 gcc-3.4 編譯,make rules 似乎也有問題,最奇怪的是記憶體配置,所以我一併 fix 掉,並作了些 hack,運作的畫面如下:

底下是 Panel,中間部分運作 File Explorer,而畫面所見者,都是用 SDL 打造 :-)
由 jserv 發表於
05:15 AM
|
迴響 (0)
不喜歡用 Movable Type
首先,要感謝 AceLan 與 PowerOp 兄的協助,我才能在 blog.linux.org.tw 上撒野,然後也要感謝 hcchien 告知 Jedi 的大作 [Movable Type 文件集],我才對 MT (Movable Type) 有了進一步的認知。可是我還是有很多疑惑,比方說內嵌 HTML tag 時,呈現的行為總是有點怪:
1. <ul><li>...</li></ul> 實際 rendering 出來時,我發現會跑出多餘的 <br>,然後版面就變得很醜
2. <pre>...</pre> 呈現的效果也是跑出一堆無用的 <br>
看起來真的很不舒服 :(
到底要怎麼解?
由 jserv 發表於
12:42 AM
|
迴響 (3)
January 21, 2005
設計 Window Manager
因為專案需求,所以我又要來設計新的 Window Manager,目標是融合 DirectFB 與 XDirectFB 之下運作的應用程式,換言之,就是用 DirectFB 來撰寫 X Window Manager,這個瘋狂的點子已經在剛剛幾分鐘的 hacking 確認是可行的,現在欠缺的是標準與實作方式的確立。提到 Window Manager,當然要去看看 [Windows Managers for X] 的整理,而剛剛連線才發現,原來這個網頁已經有十個年頭了,而我有幸在去年貢獻了幾個 entries :-)
比較讓我感興趣的項目之一,就是 Meta Window Manager,這是一個簡化 Window Manager 設計的 Framework,作者也提供一個測試用的精簡 Window Manager。剛剛測試後,發現真的非常方便,很容易就設計出具有自己風格的 Window Manager,可惜這個專案還欠缺 WM 應該具有的 spec,否則只要寫篇「快快樂樂打造自己的 Window Manager」就可以生出一堆有趣的應用。
除了傳統的 Window Manager 外,我也發現一個相當特別的設計,就是運作於 Web Browser (需要 HTML 4.0 與 DHTML 支援) 的 "Window Manager",請參考 DHTML-WindowManager。一打開畫面就跑出一個 Window,沒錯,而且有 Title bar,試著 Drag-and-Drop 吧,超級炫!
由 jserv 發表於
09:47 PM
|
迴響 (2)
Gaim-1.1.2 + OpenSSL 發佈
昨天才發佈的 Gaim 1.1.2,我很快就加入 OpenSSL 的支援了,可到以下位址下載:
其 MD5 為 6ee86f04b129c8736a5dd707a21c6aa1,歡迎使用,如有任何問題請回報,謝謝!
以下是本 branch 透過 GTK+/DirectFB 運作的畫面:

Have Fun!
由 jserv 發表於
06:53 PM
|
迴響 (0)
使用 OpenSSL 的理由
OpenSSL 無庸置疑的是個非常優秀的 SSL 實作, 在 [
About the OpenSSL Project] 對這個計畫提供一個概況性的介紹,並且,我們也可以得知 OpenSSL 以 Apache-style licence 釋出。
那麼,如果我的程式以 GNU GPL 授權發行,是否可以採用 OpenSSL 呢?依據 OpenSSL 的 FAQ [
Can I use OpenSSL with GPL software?],裡面提及:
If you develop open source software that uses OpenSSL, you may find it useful to choose an other license than the GPL, or state explicitly that "This program is released under the GPL with the additional exemption that compiling, linking, and/or using OpenSSL is allowed." If you are using GPL software developed by others, you may want to ask the copyright holder for permission to use their software with OpenSSL.
所以呢,動態連結到 OpenSSL 是被允許的,但是,相當可惜的是,在 Sourceforge.net 相當熱門的專案
Gaim 卻因為在某些論點的堅持,一直未能使用 OpenSSL 作為 SSL plugin,這也是我為何要維護一個使用 OpenSSL 的 gaim 分支的初衷。
再者,
VIA C3 Nehemiah 處理器有提供 PadLock,這讓需要加解密的數學運算可以透過硬體來實現,大幅提高系統效能,針對 Linux 的支援可參考 [
VIA PadLock support for Linux],而 OpenSSL 也將這個卓越的特性納入了,詳情請參閱 [
OpenSSL ChangeLog]。
Just OpenSSL it!
由 jserv 發表於
05:04 PM
|
迴響 (0)
kBrowser 更新 + SCIM/新酷音
剛剛更新自己最近的 kBrowser 計畫,現在的版本推進到 0.1.1,預計到 0.1.5 或者 0.2.x 後會公開釋出,現在已經不需要 X Window System 了,全部在 DirectFB 下都可以運作。順便處理 GTK+ 2.6.1 在 DirectFB 的 porting,然後用以編譯 SCIM 1.1.2,把 x11 FrontEnd 關掉,只剩下 GTK+ im-module,再配合我去年發起的 [新酷音],整體呈現的畫面如下:

即便是 VIA C3 600MHz 跑這些炫麗的特效也相當順暢。
由 jserv 發表於
03:45 PM
|
迴響 (2)
Qt4 初體驗
Qt Quarterly 裡頭有篇 [
A Taste of Qt 4],這篇文章寫於一年前,事實上 Qt 4 的發展已經有很多變動,但是這篇文章提到的幾個重點還在,而我去年也將本文翻譯成繁體中文,請見 [
Qt4 初體驗]。為了即將到來的 [
KDE@Taiwan 第一次聚會],今天就來更新一下 Qt4 Development 的資訊。
Qt4 最新的版本是 4.0beta1,可參考 Trolltech 的 [
What's New in Qt4?] 與 [
Porting to Qt4] 兩篇文章,而我比較感興趣的主題之一,就是 Qt4 的新 Graphics Engine -- Arthur,用 OpenGL 作 backend 的效果大致如下:


Qt4 的
Interview class 也是相當棒的設計,可以很容易設計出 MVC (Model-View-Control) 的程式,配合資料庫設計,可以用相當精簡的程式碼來整合前端介面,效果如下:

Qt4 預計在今年第一季結束前釋出,在 mailing-list 上已經有諸多令人振奮的消息,咱們拭目以待吧 :-)
January 20, 2005
失敗: Resin on Kaffe
今天的進度是作 Kaffe 的 J2EE 支援,我選定的 JSP/Servlet Container 是
Resin,Resin 3.0 雖然
以 GPL 釋出,但是 Kaffe 目前尚未實作出 JDK 1.5 的特徵,所以還不能考慮,不過如果成功的話,GPL'd J2EE container on GPL'd JavaVM on LGPL'd C library on GPL'd Kernel 真的是很吸引人。
好,回到 Resin 2.1.x 系列,在去年我曾經在 Kaffe mailling-list 提到 [
Resin 2.1.12 runs on Kaffe smoothly],然而,剛剛用 Resin-2.1 的 cvs snapshot-2005-01-03 時,發現以下問題:
$ ./httpd.sh
Resin 2.1.s050103 (built Mon Jan 3 11:16:04 PST 2005)
Copyright(c) 1998-2003 Caucho Technology. All rights reserved.
Starting Resin on Thu, 20 Jan 2005 23:34:37 +0800 (CDT)
java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke0 (Method.java)
at java.lang.reflect.Method.invoke (Method.java:255)
at com.caucho.util.BeanUtil.setBeanProperty (BeanUtil.java:537)
at com.caucho.util.BeanUtil.configure (BeanUtil.java:370)
at com.caucho.util.BeanUtil.createBean (BeanUtil.java:153)
at com.caucho.server.http.JndiFactory.initContext (JndiFactory.java:294)
at com.caucho.server.http.ClassLoaderContext.init (ClassLoaderContext.java:696)
at com.caucho.server.http.ServletServer.initInternal (ServletServer.java:694)
at com.caucho.server.http.ServletServer.init (ServletServer.java:538)
at com.caucho.server.http.ResinServer.init (ResinServer.java:415)
at com.caucho.server.http.ResinServer.main (ResinServer.java:1176)
at com.caucho.server.http.HttpServer.main (HttpServer.java:103)
Caused by: java.lang.StackOverflowError
at com.caucho.sql.DBPool.setMaxIdleTime (DBPool.java)
at java.lang.reflect.Method.invoke0 (Method.java)
...11 more
看來有得 hacking 了。
由 jserv 發表於
11:46 PM
|
迴響 (2)
GCJ/SWT in Win32
剛剛找資料的時候,發現論壇上有這篇文章 [Windows 上使用 GCJ+SWT 開發 native GUI 應用],算是這個主題少有的中文文件,發表時間是 2003-11-24,雖然有些部分離題,但是整個 thread 可以稍微 follow up。其餘的繁體中文文件就少得可憐,大概只有 champ 學長寫的 [SWT, GCJ 開創Java程式開發新紀元] 系列文章了。
By the way,MinGW + msys 上面能跑的應用程式越來越多了 :-)
由 jserv 發表於
04:41 PM
|
迴響 (0)
Xgl 研究
今天早上醒來 (睡得真舒服,很幸福的離開睡帶),開始鑽研 MiniGLX,這是 Tungsten Graphics, Inc. 提出的規格,或許沒聽過這家公司的大名,可以去下載 Linux Kernel、Xorg,以及 Mesa 的 source code,就會找到一堆 credit 了。
OpenGL rendering on embedded devices 是個非常重要的議題,MiniGLX 以一個務實的途徑去實現 xlibs 最小的相容層,並且已經有很不錯的表現,這點可以參考 Mesa3D 的 linux-solo。而我的目標是針對 Xgl 做出改進,並且針對 MHP 環境提出一個有效且快速適用的架構出來,David Reveman 不僅改善了 Xgl,同時也依據上述的基礎,建立 Xglx,後者可以有效的克服目前 X Window System 的 GL 實作的窘境,這點可以比較我過去整理的 [XFree86 4.x DRI 運作示意圖],這相當的複雜,層層的包裝卻是硬體加速實現的途徑。我們可以研究既有的 DRI DataFlow,Xglx 將會秉持 "Simple is beauty" 的原則,以全然不同的 software stack 來實現,但也確保原本應用程式的相容性,這是 X11 重要的發展指導原則。
由 jserv 發表於
03:30 PM
|
迴響 (0)
KDE@Taiwan 第一次聚會
台灣 KDE 使用者 終於要聚會了,活動與報名的網頁可參考 [KDE@Taiwan First Meeting]。這次預計由 AceLan 報告 kde.tw 的現況、KDE-i18n 的翻譯狀況,還有Qt Quarterly(Trolltech 官方提供給開發者參考的季刊,有很多不錯的文章) 的正體中文翻譯,而我則花一點時間跟大家說明 KDE/Qt 下一代的新 Framework -- Qt4 的發展概況,當然啦,聚會的主角是與會的朋友們,光是分享美美的 KDE 桌面就目不暇給啦 :-)
所以,一起來看看吧。
# 時間:2005 年 1 月 23 日 (星期日) 13:30
# 地點:Open Studio開放社群工作坊 (台北市新生南路一段103巷13號)
# 備註:歡迎帶您的 NB/PDA/PC/XBox/PS2 其它有趣的東東,供大家參拜
由 jserv 發表於
12:49 PM
|
迴響 (0)
KDE & KOffice 號召開發者
KDE.news 上發佈了一篇新聞 [The Importance of KOffice],我順手翻譯成繁體中文,請見 [KOffice 發展的重要性]。作為一個與 KDE 高度整合的辦公室軟體套件,KOffice 團隊尋求更多新血投入,這篇新聞提供了一些資訊。
KDE & KOffice rules!
由 jserv 發表於
11:59 AM
|
迴響 (0)
The OpenGroup 以 LGPL 授權釋出 DCE
依據 LinuxDevices.com 的新聞 [DCE source code released under LGPL],搞分散式系統的開發者想必對經典的 DCE (Distributed Computing Environment) 架構都非常熟悉,現在終於以 LGPL 授權釋出了,還好不是類似 OpenMotif 那種麻煩的授權 :-)
引述 Data Power Technology 的 CSO (Chief Security Officer) Rich Salz 說法:"It's great to see DCE -- the first secure enterprise computing platform -- finally available for development by the OSS community. Its size alone makes it both a formidable challenge to, and testament in the belief of, the open source community."
現在就前往 DCE Portal。
由 jserv 發表於
09:29 AM
|
迴響 (0)
January 19, 2005
工讀生放寒假了
嗯,兩個月去某個「寶」公司的工讀期結束,正式放寒假了。(要等好心的廠商願意收留我,這樣我才能「開學」)
寒假很多計畫,當然也包含重頭戲 FOSDEM 2005,隨著時間的逼近,越來越緊張了。基礎研究告一段落後,我將會繼續研究 MHP (Multi-media Home Platform) 的 paper work 與 prototype 實作,並且展開另一個基礎研究,雅稱是「格物致知」,而代號則是 "sucker"。這是延續之前作 Boot-time optimization 的項目,但是以不同的角度切入,我將會設計一套 Simulation 環境作徹底的 profiling,藉此徹底理解箇中環節的奧義。
再說下去就洩底啦,總之,新年快樂!
由 jserv 發表於
07:39 PM
|
迴響 (0)
Linux Kernel Development, 2ed

剛剛瞥見 Linux Kernel Hackers 之一的 Robert Love 推出
Linux Kernel Development, 2ed,這是根據最新的 2.6.10 的發展來探討 Linux Kernel 設計的概念,詳情可參考
Amazon 的介紹。
Happy Hacking!
由 jserv 發表於
03:42 PM
|
迴響 (5)
AWT event dispath in GNU Classpath
在 GNU Classpath mailing-list 中,Graydon Hoare 提到最近 cvs commit 中,關於 AWT event dispatch thread 的議題,我剛剛使用 KaffeVM 來測試,也發現有潛在的問題,甚至無法通過內建的 test suite,實在是挺麻煩。
看來有得 hack 了,最近也發現工作量變大,有很多計畫要趕著作,抬頭看時鐘,不知不覺已經清晨六點了耶,真糟糕。
TODO:
- DirectFB-driven AWT backend
- JavaTV extension in Kaffe
- GC survey
由 jserv 發表於
05:49 AM
|
迴響 (0)
jjvm in Kaffe
jjvm 是個很有趣的專案,是個 Java VM (interpreter only) implementation in JavaVM,可以用來設計自己的 ClassLoader (比方說可以施加特別的編碼方式),整個套件是 Public Domain 的,在 2000 年後就沒有更新了,但是程式碼很簡潔,可做為參考。
下載後解開,進入 jjvm 目錄後,直接用以下指令列跑:
$ kaffe -cp . njava Test
應該會得到以下結果:
Test Constructor
hi
hi
hi
hi
hi
由 jserv 發表於
03:34 AM
|
迴響 (0)
kBrowser
kBrowser 是我最近 (其實作很久了,學生時代就開始作,但是最近才到比較成熟的水準) 開發的 embedded Web Browser 專案,以 KDE Konqueror 作 codebase,但是不以 KDE/Qt 為侷限,就目前的發展來看,可能會透過 DirectFB 重新打造過,這在我之前的 blog: [親愛的,我把 KDE 塞進 DirectFB 裡頭了] 已經有提到最新的進度。
但是,話說回來,這樣的呈現比較適合 MHP (Multi-media Home Platform),這個領域事實上有不少商業廠商在著墨,比方說對岸的 NetScute 就作得很不錯,國外的廠商更不在話下,那 Free/Open Source 的 solutions 呢?Minimo 與 Konqueror/Embedded 這兩大專案大概是最有希望的,而身為一個 KDE Fan,我選擇了後者,作為我開發 kBrowser 的根據。
如果完成 DirectFB 的移植後,我將會回頭作在 handheld 環境,比方說 PDA 與 SmartPhone 環境,運作的可行性分析,比較想達成我以前修改 Konqueror/Embedded 呈現的以下效果:

我的計畫是否可以成功呢?我沒有把握,但是我知道透過 Open Source 的形式,這些成果可以累積 :-)
由 jserv 發表於
12:58 AM
|
迴響 (0)
果正版 Debian Logo
剛剛在 Sayya BBS 看到李果正前輩的 post,一篇標題為 [Debian logo(just for fun :)] 的文章真是有趣,是前輩自製的 Debian Logo,很可愛,引來欣賞:

果正前輩也準備了可以嵌入到其他文件的格式:
Just For Fun!
由 jserv 發表於
12:41 AM
|
迴響 (0)
VIA FBDev in Kernel 2.6
剛剛把 VIA FBDev 給移植到 Linux Kernel.2.6.10,可是效果實在不怎麼樣,整體的 benchmarking 只剩下 10% 的表現,顯然是很多細節還需要 fine tune。我把 VIA 最後的 open source 版本 (之後就只有 binary driver) 的 Framebuffer driver 作了
一份複製,這裡面有些瑕疵,在我之前的 blog [
最佳化 VIA mini-ITX (with DirectFB)] 提過更新的 patch。
搞了一個晚上,結果在 Linux Kernel 2.6.10 跑出這種效能,實在很讓人失望,所以我就惡搞以分散注意力,請見下圖:

這裡頭有六隻程式同時在運作,然後全都作 Alpha Blending 的半透明效果,夠噁心吧 :-)
由 jserv 發表於
12:09 AM
|
迴響 (1)
January 18, 2005
GL 實作研究
說來好玩,我大學時代曾經告訴自己不應該再鑽研 OpenGL Programming,沒想到現在峰迴路轉,我又開始研究 OpenGL,不過這次不是純粹 Programming,而是探討在 Embedded System 裡頭 GL 的硬體加速實作設計。
這個議題真的非常困難,光有電腦圖學的基礎是沒有太大的幫助,為了研究這個主題,我特別去研究 VIA CLE266 的北橋晶片組,對我一個學習軟體的開發者來說,這是相當艱深的議題,但是沒有這些基本功,想要徹底發揮硬體效能,絕對是緣木求魚。需要先簽署 NDA,才能拿到詳細的 datasheet,這點我就不多說了。
我的研究方向有兩個,一個是探討最小的 GL 實作 (注意,這裡不是指 TinyGL 一類部分相容 OpenGL 規格的迷你實作,而是在符合規格的前提下,最小的 software stack 可能性),另一個是在既有的 Graphics Toolkit 下強化硬體 GL 表現。
在我的簡報 [X Window System 的現況與挑戰] 中稍微提及未來 X Window System server 實作的種種挑戰,其中,3D Graphics 已經走出 2D mapping 的呈現方式,接踵而來的局面是 3D Living World,是此,FreeDesktop.org 已經有 Xserver over GL 的實作,在去年 Debian@Taiwan IRC Conference 時,我也跟與會的朋友討論過這個議題。然而,這些挑戰背後的學問實在是複雜的驚人,在撰寫新書的同時,也試著涉獵箇中的奧義,讀規格書是很無聊的苦差事,所以我想到一個很有趣的點子,也就是對既有的實作進行 Refactoring,這樣一來,依循二十世紀美國的教育學家杜威的「作中學」(Learning by doing) 的教育理念,弄起來也比較起勁。
屈指算算,我已經耗費 25 個工作天在這個基礎研究的項目,現在參考的計畫是 Mesa fbdev/DRI Drivers,參考硬體實作平台是 VIA Unichrome,未來這些成果也會陸續釋出,不過現在還處於「燒錢」(燒自己的積蓄) 的階段,更動的幅度還不是很大,好吧,就研究人員的角度來說,我是極度廉價的,只要有普通的網路環境與便當盒就可以養活我了 (*苦笑*)。
作基礎研究可能不是多吸引人的事情,畢竟真正能夠成功的項目不多,就算成功,要拿來 profit 要考慮的因素就更令人難以掌握,可能終其一生都會像我這樣成為苦哈哈的獨立工作者,但是一旦理解箇中奧秘,進而大刀闊斧的提出強而有力的新架構與實作,那種成就感實在不可言喻。
發牢騷完了,我又要繼續作基礎研究了 -- High Performance Hardware-Accelerated GL Implementation in Embedded System。希望自己不要 coding 到餓死 :(
由 jserv 發表於
04:55 PM
|
迴響 (0)
強化的 Kompare
感謝 KDE Developers 之一的 Jeff Snyder 告知,現在的 Kompare 已經有很大的進展,擁有許多商業軟體的特徵,對協同開發相當有幫助,其中 [Three-way diffs] 相當吸引我,運作的畫面如下所示:

"merge" 往往是弄出 branch 後最麻煩的一件事,現在 Kompare 已經有 3-ways diffs 的話,就一目了然,相當方便。此外,在實驗版本中,也提供新的 layout,其效果如下:

很心動吧,這些卓越的進展都放上 cvs server 的 kompare3_branch 中,有興趣的朋友可以嘗鮮,當然,也可以選擇等到 KDE 3.4 釋出再來玩。
Enjoy it!
由 jserv 發表於
01:59 AM
|
迴響 (0)
幾張 DirectFB 大螢幕展示
上週的 Gentoo User Party,我利用了一點時間展示在 VIA CLE266 整合繪圖晶片組上運作 DirectFB 的效果,而剛才 Benny 告知聚會的照片出爐,部分展示的照片如下:
- 自己設計的 PointPoint -

- 典型的 DirectFB 運作畫面 -

- 極度噁心的半透明效果 -

比較尷尬的是,中途突然 kernel panic,所以我就偷偷跑去 debug :p
由 jserv 發表於
01:46 AM
|
迴響 (2)
神奇的 PDF Creator
晚上在 Sayya BBS 看到李果正前輩的 post 提到一個 [純 C 寫 pdf creator],不需要使用 pdflib,看起來非常吸引人,於是就抓來玩,嗯,效果實在不錯,還偶然有「書中自有顏如玉」的意外收穫。(自己跑起來就知道)
不過呢,程式排版實在是亂得不行,於是我只好大刀闊斧的用手頭的工具翻修,順便解決可能的 dangling-else 情況,這個新的 tarball 可在此取得。姑且不論 coding style,其實原作者的功力真是高干,巧妙的使用 FSM 來簡化設計,實在有意思,學起來。
由 jserv 發表於
01:33 AM
|
迴響 (1)
January 17, 2005
uClibc 0.9.27
uClibc 0.9.27 是 uClibc 發展的一個重要里程碑,發佈於 12 January 2005。主要更動有:新的 stdio 實作、Linux Kernel 2.6 支援、shared library loader 的改進、支援許多新的硬體架構,當然還有一堆的 bug-fixing。
從 ChangeLog 中可以發現,0.9.27 與之前的版本 "Binary Incompatible",所以如果要更新到 0.9.27 的話,務必將程式重新編譯,但這絕對是值得的事情。
KittenBox 現在的實作也轉換到 uClibc 了,code size 更容易控制,效能也有改善,等累積比較多成果時,再來作較正式的 benchmarking。
由 jserv 發表於
10:51 PM
|
迴響 (0)
協同開發的想法
之前 TimHsu 與幾位熱情的 Hackers 共同創立 chroot.org,以 Network Security 為主軸,每月定期會有成員內部聚會,並適度分享成果,可以在 [Articles] 取得部分的簡報資料。除了讀書會形式外,也鼓勵各成員成立自己的專案計畫,如 [Projects] 就羅列一些公開的項目,我個人相當推崇 TimHsu (新婚新郎倌,不再是 "kids" 了,是「老小孩」) 與那群 Hackers 的熱情。
moto 學園聚集很多人氣,不僅是來自台灣的朋友,從論壇上我們也可以發現有香港,甚至是大陸的朋友分享經驗,這的確很不錯。去年辦的 Debian@Taiwan IRC Conference 也發現反應還不差,所以呢,是否可能舉辦針對特定主題的聚會或發表分享會呢?
我對聚會的舉辦沒有太大的想法,而我比較重視的是協同開發的部分,主要是著眼於國內事實上有許多熱情、有活力的朋友願意參與 Free/Open Source Softwares 的開發,但是如果只透過網路作溝通,顯得有些不足。如果可以,我的想法是先針對特定主題,比方說中文輸入法系統、國際間的輸入法架構主題先行分析並作資料分享,然後聚集成員思考,作腦力激盪,然後透過不定期的專案進度討論會,配合 issue tracker,讓專案進行能更順遂。這樣的聚會不見得只用一個專案開發,事實上是可以同時進行的,只要比重拿捏的當,不會有太大的衝突。
在我的個人首頁羅列一些我過去參與的計畫,其中有幾個項目是獨自完成,鮮少與其他開發者溝通與協調,這樣往往無疾而終,相當可惜。不管是參與哪個 Free/Open Source 計畫,都會累積一些經驗,這些經驗事實上遠比結果重要,如果能夠 serialization 起來,是相當的寶貴,對日後從事同樣工作項目的朋友來說,絕對可大幅降低學習的門檻。
越扯越遠了,簡單來說,希望在 2005 年,我可以號召到更多熱情的朋友共襄盛舉,並且彼此激勵,創造出更多有趣的專案 :-)
由 jserv 發表於
10:35 PM
|
迴響 (1)
XDirectFB + XFree86 cvs (20050117)
剛剛更新 XDirectFB 對 XFree86 的支援,cvs checkout 時間為 2005-01-17,並且順手修正幾個 imake 的問題,可以在此取得我整理的 patch,連同 sample configuration 都準備好了,所以只要取得 XFree86 cvs 再作 patch 後,打 make World 就可以順利建構完畢。
同樣的,有任何問題請提出討論,謝謝!
由 jserv 發表於
10:02 PM
|
迴響 (0)
LD_PRELOAD 的應用
Linux Kernel Hackers 之一的 Greg Kroah-Hartman 曾經在 LinuxJournal 上寫過一篇名為 [
Modifying a Dynamic Library Without Changing the Source Code] 的文章,簡單扼要的解釋 LD_PRELOAD 環境變數的使用,並且提供一個實用的範例,我剛剛將該文翻譯成繁體中文,請見 [
在不更動原始程式碼的前提下,修改動態程式庫]。
除了這個範例外,我之前在對 Access 公司出品的
NetFront 瀏覽器增加繁體中文支援時,發現 NetFront v3.1 Linux SDK 是用 GTK+ 1.2 打造的,而字型資訊是寫死在程式碼中,Access 也未放出原始程式碼,於是我透過 LD_PRELOAD 的機制,動態調整中文字形的處理,如此一來,NetFrontGTK 就能顯示繁體中文 (使用台北字形),並且,參考原本的訊息檔稍做繁體中文翻譯,執行的快照可以參考:

至於這個改過的 tarball 可以
在此下載
接下來,我就提及修改的細節。NetFrontGTK 之所以無法顯示中文的原因是,當呼叫 gdk_fontset_load() 時,只載入了日文字型,所以只能顯示日文網頁。所以,如果能攔截 gdk_fontset_load() 的進入點,動態加入中文字型名稱,不就迎刃而解了?以前 XCIN 架構還不是很完備前,有個 XA (Xcin Anywhere) 的輔助程式,他的動作正是攔截特定的 X 呼叫,強迫採用 XA 內部可與 XCIN 溝通的動作。於是,我搬出 XA 的程式碼作為參考,主體的流程大致是:
/* Wrapped functions */
/*
* PROTOTYPE:
* GdkFont* gdk_fontset_load (const gchar *fontset_name);
* real_gdk_fontset_load 就是真正的 gdk_fontset_load() 進入點
*/
static GdkFont* (* real_gdk_fontset_load)(const gchar *fontset_name);
void load_all_syms(void *handle)
{
real_gdk_fontset_load = dlsym(handle, "gdk_fontset_load" );
}
#define XA_LIBX11 "libgdk-1.2.so.0"
void wrap_init()
{
static void *handle = dlopen(lib_path, RTLD_LAZY);
load_all_syms(handle);
}
/*
* 我們的 gdk_fontset_load() 實作
* 看到包含 "jisx0208" 的字型名稱,自動加入台北字型
*/
GdkFont* gdk_fontset_load(const gchar *fontset_name)
{
gchar new_fontset_name[BUF_SIZE];
wrap_init();
if (strstr(fontset_name, "jisx0208") != 0) {
sprintf(new_fontset_name,
"-taipei-ming-medium-r-normal-*-*-160-*-*-c-*-big5-0,"
"%s", fontset_name);
return real_gdk_fontset_load(new_fontset_name);
}
return real_gdk_fontset_load(fontset_name);
}
Happy Hacking!
由 jserv 發表於
07:06 PM
|
迴響 (1)
xrdp -- Open Source RDP server in UNIX
rdesktop 是 UNIX 上著名的 MS-Windows Terminal Service (RDP) client,實作了 RDP v5 大部分的規格,幾乎市面上非 WinCE-based 的 Thin Client 大致都採用這個實作。RDesktop 的開發者 Jay Sorg 在 SourceForge.net 設立了一個專案,稱為 xrdp,目標就是建立 X11 下的 RDP server。
xrdp 的設計相當巧妙,xrdp 提供了 RDP server 的 frontend,可作為使用者登入,而一旦 session 認證完畢後,xrdp 會動態載入 backend,以目前的實作來說,就是 libvnc,透過設定檔來聯繫到既有的 VNC session 去。
正所謂「一圖勝千文」,這裡展示 xrdp 運作的效果:

標題為「192.168.0.30 - 遠端桌面」就是我透過 MS-Windows 內建的 RDP client 連線到 xrdp 的 session,而這個視窗背後就是 Linux server,在其中運作 xrdp。
正因為 open source,有許多特別的概念得以實現。
由 jserv 發表於
04:06 PM
|
迴響 (0)
FOSDEM GNU Classpath developer room
GNU Classpath 的維護者 Mark Wielaard 今天在 GNU Classpath mailing-list 上告知
Free Java / GNU Classpath Developer room 的規劃行程,主題是 "Building Bridges -- How can GNU Classpath, GCC/GCJ and Kaffe hackers learn from and work together with others?"。
預定議程:
- Sat 14:00 - 14:50 Jeroen Frijters - IKVM.NET -- Motivation & Architecture
- Sat 16:00 - 16:50 Jeffrey Morgan - Liberation through Binding! -- Using java-gnome to build desktop applications
- Sun 10:00 - 13:00 - Demo Time! -- Public presentations and overviews of the current state of the GNU Classpath library , GCC/GCJ(X) compiler and Kaffe runtime
- 10:00 - 10:50 Thomas Fitzsimmons - Free AWT and Swing -- The GUI parts of GNU Classpath
- 11:00 - 11:50 Tom Tromey - GCJX -- Writing a new GCC front end
- 12:00 - 12:50 Dalibor Topic - Kaffe -- Past, Present and Future
- 14:00 - 17:00 - "The Future"
看看能否趕在 FOSDEM 2005 展示 Kaffe-based Applications,還要以亞洲開發者的身份順便來討論 GNU Classpath 在多國語文實作的議題,我要多加油了 :-)
Let the Java Free!
由 jserv 發表於
02:15 PM
|
迴響 (0)
有趣的 Linux Live Gaming Project
剛剛在 Slashdot 網站上看到這則新聞: Linux Live Gaming Project,非常有意思,桌面環境採用 KDE,並且內建 nVidia Linux driver,然後提供 TORCS、Wesnoth、SuperTux、TuxRacer,等等著名的 Linux 遊戲,最後放到 Knoppix 為基礎的 Live CD 上,我還沒抓下來玩,不過光看介紹就讓我很動心。
由 jserv 發表於
02:02 PM
|
迴響 (0)
Gaim-1.1.1 + OpenSSL 發佈
由小弟維護的 Gaim + OpenSSL 的分支,已經更新到 1.1.1 版了,可以到以下位址下載:
其 MD5 為 fa21f44320538daefe7265c3e9968dad,歡迎使用,如有任何問題請回報,謝謝!
如果需要過去的版本,也可以
在此下載。
由 jserv 發表於
12:26 PM
|
迴響 (0)
GTK+-2.6 + wxWidgets 2.4
GTK+-2.6 是
GTK+ 最新的穩定版,而我也將
GDK backend based on DirectFB 的支援整合到最新的 mainstream 了,等完整測試後會公開釋出。而因為需要執行某些用
wxWidgets 撰寫的應用程式,所以只好慢慢來編譯 (用 Debian package 可能會「污染」我現在的開發環境)。
wxWidgets 2.5.x 系列是開發版本,因為我的愚昧,我一直遇到編譯的錯誤,所以退而求其次,改用 2.4.3 這個 stable release,興高采烈的編譯後,發現 wxWidgets 的程式無法連結,研究許久,原來是 wxWidgets 2.4.3 並未支援 GTK+ 2.4 的 API,又因為 GTK+ 2.6 API 往前相容於 GTK+ 2.4,所以也會有問題。Google 後,終於有令人滿意的答案,必須使用
這個 patch,重新編譯後就正常運作了。
GTK+/DirectFB 本來就有很華麗且令人滿意的效能,現在 wxWidgets 的應用程式又透過 wxGTK 來執行,效果挺不錯。
由 jserv 發表於
06:13 AM
|
迴響 (0)
GNU Classpath Mediation Wiki
感謝 GNU Classpath 上的 Robert Schuster 前輩告知,現在
GNU Classpath 已經有個
GNU Classpath Mediation Wiki,目前已經有不少值得參考的材料了,建議可以先閱讀
Classpath First Steps,裡面有提及所謂的 "Tainted developer" 與 Copyright assignment 的事宜,當然啦,若您本身無法簽署 Copyright assignment 或者已經受到 Sun SCSL 授權的約束,那麼,wiki page 上也告訴我們其他替代的貢獻方式。
總之,Let the Java Free!
由 jserv 發表於
03:57 AM
|
迴響 (0)
FOSDEM 2005
號召全世界 Free/Open Source hackers 參與的盛會 FOSDEM 2005 即將到來,先來看 FOSDEM 2005 Speaker 列表,我想去瞻仰 Alan Cox、 Matthias Ettrich,以及 Richard M Stallman 前輩,看來二月份去的時候一定有不少收穫 。
對了,到時候也會遇到其他 Free Java 的開發者,Kaffe Developer 之一的 Dalibor Topic 提供了一個免費住宿的消息,應該也是挺有趣的經驗,不過我現在比較擔心的是語文方面的問題。這幾天 irc 上很多討論,大家都興致高昂,好期待呢 :-)
由 jserv 發表於
03:45 AM
|
迴響 (0)
January 16, 2005
最佳化 VIA mini-ITX (with DirectFB)
VIA Technology 相當熱心的提供一款
mini-ITX 的主機板 ,在 VIA 的網站可以看到詳細的
profile。嚴格來說,這款 EPIA-CL 的硬體效能不怎麼樣,但是配合 CLE266 北橋繪圖整合晶片組的硬體加速後,就大有可為,當然啦,我就用 DirectFB 試著把這硬體的效能都搾出來 :-)
以
Linux Kernel 2.4.28 來說,可以套用
lck patchset,然後 VIA 的
EpiaWiki 有頗多參考資料,但是我也發現 viafb (CLE266 FBDev) 似乎有些瑕疵,於是就動手修改,順便也將 DirectFB 相關的 patch 整理為 patchset,可參考:
使用 VIA EPIA 系列的朋友,可以試試上面的 patchset,如果有任何問題,請提出討論,謝謝!
Happy Hacking!
由 jserv 發表於
02:56 PM
|
迴響 (0)
DirectFB 參考資訊
昨天在 GOT 使用者聚會展示了 DirectFB 的特效後,很快就有朋友問題 DirectFB 相關資訊,這裡稍微整理一番。[
DirectFB] 是德國 [
convergence 公司] 推動的 Open Source 計劃,主要是建構於 Linux Framebuffer Device 之上 hardware graphics acceleration、input device handling and abstraction、integrated windowing system with support for translucent windows,以及 multiple display layers 功能的新 Graphics 標準。
DirectFB 授權方式為 GNU LGPL,開發相當活躍。對於 Gtk+、Qt、SDL、Mesa/GL 等重量級 Library,DirectFB 也有了相當程度的移植,可充分發揮特有 hardware acceleration 與 translucent windows 能力。
而我在去年有準備一份簡報,可以做為參考:[DirectFB 在 Embedded Linux 上的應用]
Happy Hacking!
由 jserv 發表於
02:57 AM
|
迴響 (0)
我心目中的 Linux Distribution
這篇 blog entry 主要是源自我過去在 Sayya BBS 個人板發表的札記,略作整理而成,必須聲明的是,每個人的喜好不同,這是單純是我個人的見解與需求,如得罪處,還請多包涵。至於整理發表的動機為何?主要是 Jan 15, 2005 參加 GOT 使用者聚會時,lloyd 前輩分享在賽陽 300 MHz 的筆記型電腦安裝 Gentoo,從零到 X Window System 安裝到好,前後耗費兩個月時間的經驗談,讓我有很大的震撼,當然啦,這樣的等待是值得的,因為整體效能因為針對 i586/MMX 以及許多自訂的 USE flags 而有所改進。
問題是,為何我們要花這麼多時間準備一個套件 (bootstraping) 呢?能否從 binary package 提供一勞永逸的解決方案?能否兼具便利與效能呢?... 種種的疑惑再度盤據於我心,於是,我試著分析現有 Linux Distributions 的特性,以及我的心得。
我玩過的 Linux Distro 有:
如果說推薦,我會說 Debian,但是真正欣賞的是 Linux Mandrake 與 Peanut Linux,特別是後者,讓我愛不釋手。就務實的角度來說,Debian 作得相當不錯,彈性相當大,也有相當驚人的開發者數量,但是,對我來說,還是欠缺了一種感覺,一種引人入勝的方式。
Debian 許多 policy 都是非常值得參考的,前瞻性也相當夠,但是卻也犧牲了許多特性,讓人覺得難以親近。有一度很沈迷 Debian 時,曾以成為 DebianDeveloper 為目標,但是現在卻完全不會有此念頭,這是因為現在的 Debian 已經不是我心目中的 Debian。與其說我厭倦 Debian,還不如說我一直在尋求 "The Better Debian",
ubuntu 剛推出時,吸引我頗多目光,大抵符合我的需求,但實際體驗後,發現還是有若干特徵沒有實作出來。
Linux Mandrake 有著令人驚豔的外觀與整合性工具,幾乎大項目都有 *Drake 的 toolset 可協助設定與處理,比方說 localedrake 這隻小程式功能很少,但是非常貼心,放眼看其他 Linux distro,卻很少有提出類似的設計。但是 Linux Mandrake 在我的感覺還是不夠嚴謹,當然,我的認知只到 MDK 9.2,後續的版本我沒有接觸過,或許有改觀。Linux Mandrake 在跨越 major release 的 upgrade 處理很糟,也一直沒有提出良好的解法,這幾乎是致命傷。
我心目中的 Linux Distribution 至少需要具備以下特徵:
- 與 Debian 相容
- 以 Debian 制訂的 policy 為依歸
- 直接使用 Debian package
- 有 software suite 的觀念
- Debian 提供的 tasksel 還有很大的改進空間,但是就務實的角度來說,已經能夠針對特定語系做出不同的多國語文相關套件選擇
- Mandrake 的作法可作借鏡
- 足夠小的 base system
- Debian 與 Peanut Linux 在這方面很傑出
- 持續更新
- Package upgrade 算是很重要的議題,而且必須能夠從相當舊的 package db 一路升級到最新的 repository
- Debian 在這方面作得相當不錯
- 透明化自訂選擇最佳化
- Gentoo 在這方面無疑是佼佼者
- Debian 的 apt-build 是很不錯的出發點,但是還可以更好
- 最佳化對於 server-side applications 相當重要,但是 Gentoo 的方式卻作得太過火,光是 bootstraping 耗費的時間又太久。好的作法是針對 critical package 予以重 build,而且這過程必須透明化
- Localized Backport
- Debian 事實上有此議題,但是感覺還是很難作得好
- Linux Mandrake 的作法給予不錯的出發點
- 從 Fedora 最近的 release 來看,也將 i18n 作為重要的設計準則,是非常優秀的模式
- 友善的 Installer
- 此處 "Installer" 的定義比較廣泛些,是的,Fedora Core 與 Linux Manadrake 都有相當友善的 GUI Installer,但是還是不夠威力,筆者認為,問題不在於 GUI 的友善度,而是是否能夠一勞永逸的 apply 預期的設定值
- RedHat 有個 kickstart 的機制,而 Debian 有 FAI 的分支
- Debian Installer 的發展也算是激勵我撰寫這個主題文章的原因之一
- Installer 甚至可以與前述的 [透明化自訂選擇最佳化] 整合起來,背景執行最佳化處理,卻省去不必要的 bootstraping,並只處理最 critical 的部分,絲毫不影響正常工作
- Installer 的挑戰在於是否能夠接受多重 profiles、多種 media,以及多種呈現型態
- Installer 無疑是最重要的元件之一
- Toolset
- Debian 與 Linux Mandrake 的作法相當可取
- 如果能將 *Drake 的 toolset 跟 Debian base system 整合起來,就相當不錯,兼具親和力與套件管理一致性
- Just Works (TM)
- "Just Work" 的觀念很簡單,但是卻在近年來才被大肆提出
- Linux platform 的優勢在於選擇多,有驚人的套件數量,但是反而在某些層面造成使用者困擾
- Linux distro 的責任在於挑選「足夠好」的 packages 與 configuration 組合
- Contributor Participating
- 應該降低 contributor 參與的困難度
- Debian 在這方面種種繁複的規定讓人望之卻步
- Linux Mandrake 在這方面還不錯,很多 contrib
- Gentoo 的開發模式相當的開放
- 套件管理
- 這不必說,絕對是相當重要的議題,Debian 以此項目見長,這也是為何我心目中的 Linux distro 必須與 Debian 相容的原因之一。我們可以發現 Linux Mandrake、Fedora Linux,以及 Debian 這三者在套件管理的差異性越來越小,這就是一種趨勢。曾經有一度,我認為這種模式已經足夠了,但是看到 ArchLinux 提出的 Pacman 後,給我不小的震撼。
- ArchLinux Pacman 在架構上來說比較簡單,但是最重要的特性是允許非官方的 contributor 自行維護 repository,待成熟後再與官方套件整合,這個特性相當重要,能克服部分在前述 [Contributor Participating] 的議題。
- 在 core package set 來說,ArchLinux 有 "Current" 與 "Release" 之分野,我認為已經足夠,Debian 的作法在某些程度來說,實在太嚴苛了。
- GNUpdate 提出許多重要的訴求,儘管其發展已經停滯一段時間,但是我們可由其 Components 列表發現以下重要元素:
- genst - Generate Source Code Tree Tool
- gnupdate - Graphical GNUpdate Package Tool
- gnups - GNUpdate Package Server
- gpkg - Command-line GNUpdate Package Tool
- libgnurdf - GNUpdate RDF library
- libpackman - Package Management library
- libpql - Package Query Language library
在完整度已經相當高了,ArchLinux 在許多層面來說,也是使用到 GNUpdate 的技術與理念。
- 再者,上述所及,還是侷限於典型的套件管理系統,永遠都在處理相依性、套件升級,以及管理的議題,是否直接跳脫此思維模式,引入其他途徑呢?是的,有個 open source project,Zero-Install,是個相當大的突破。透過 autopackage,樹立很好的 ABI 基礎,然後使用 LazyFS 克服部署的困難度,是非常不錯的理念。 然而,Zero-Install 最大的弱點在於沒有辦法建立底層 Linux distro 的介面規範,這使得系統整合能力相當受限,那,反過來想,某個 Linux Distro 內建 Zero-Install 的設計是否可行?可以的,而且如虎添翼。
- 套件打包
- 問題在於是否能夠容易的自訂化,甚至允許使用者再行打包。這是 FreeBSD/Gentoo 的 ports tree 大行其道的原因,我可以很容易指定要用 GTK1 還是 GTK2、要用 SSE optimization 還是 size optimization,或是功能本身的刪減,這是 pre-compiled binary 難以達到的項目。
- 既然這是盲點,就應該有更好的機制去克服,放眼望去,rpm-build 與 apt-build 就是基於這個原則設計的,但是能夠調整的項目太少,沒辦法像 Gentoo 那樣用 "USE=..." 就輕鬆指定好。
- 所以,我心目中的 Linux Distro 應該要預留調整編譯時期功能項目的可調適性,並且能夠依據規範作打包的動作,相繼處理 dependency 的問題。我認為 policy 夠嚴謹的話,不會有太大的問題,現在的 Fedora 與 Mandrake 都頗有水準,但是跨越 major release 似乎還有點問題,Debian 算是其中 (我是說 F/M/D 三者來比) 最傑出的,Debian 2.2 一路升級到 3.0r3 不會遇到大問題。
由 jserv 發表於
02:06 AM
|
迴響 (2)
January 15, 2005
GentooUserParty
今天去參加 Gentto@Taiwan User Party,並且分享 FreeDesktop.org 的嶄新發展與作了小小的展示,將 VIA 贈送的 mini-ITX 主機搭配 DirectFB 的效果展現出來。
幾個 GOT (Gentoo@Taiwan) 的重要成員大概都撥冗前來,如 GOT 執行長 Benny、ebuild 與文件組的 ccpz、GOTWN (GOT Weekly News) 的負責人 frid、熱心的 Visa、Sinder、FourDollars 、chuany、... 等等,也作了比較正式的簡報,對 GOT 運作提供了一個明確的方向與進度分享。
傍晚我們移駕到附近的麻辣鍋店,聊了很多有趣的議題,然後吃得很撐,真美味 :-)
跟大夥討論後,激發我一些靈感,這幾天應該會來作些實驗,驗證這些想法的可行性,再來作分析報告吧。
Linux rocks!
由 jserv 發表於
10:28 PM
|
迴響 (2)
JVMPI in Kaffe
最近都沒有時間處理
Kaffe 的發展,而現在終於有空來更新,感謝 Guilhem Lavaux 在 IRC 上的指導,現在 CVS head 的 Kaffe 又再度支援
JVMPI (Java Virtual Machine Profiler Interface) 了,同時,這也是我今年對 Kaffe 的第一個 commit,記錄一下 :-)
根據 Sun 的文件:
- VERSION_1 of this interface is implemented in the Classic VM.
- The Java HotSpot Client VM and the Java HotSpot Server VM
both implement VERSION_1_1 (as of Java 2 SDK 1.2.2) or VERSION_1_2 (as of Java 2 SDK 1.4.2) of this interface with Java HotSpot technology. Notes specific to Java Hotspot technology are marked as such.
現在 Kaffe 對 VERSION_1 已經有很正確的支援,但是 VERSION_1_2 有些資訊不是很明確,也未看到 Open source 的應用程式有此需求,所以暫時不考慮。
對了,我可以來撰寫一些 JVMPI 的 test suite 與 sample codes 來驗證。
由 jserv 發表於
02:01 AM
|
迴響 (0)
January 14, 2005
PointPoint
為了明天的GOT (Gentoo Taiwan) 使用者聚會,我花了一點時間設計一套簡報軟體,暫時命名為 "PointPoint"。這是修改自 DirectFB 的 sample code,並且設計一個 XML-based presentation 的壓縮格式 (有點類似 OpenOffice Impress),配合硬體加速,很多特效變為可能,而且 TrueType 的 rendering 也相當好,anti-alias font 的呈現比 MS-PowerPoint 還棒。
有了這麼好用的工具後 (老王賣瓜),我終於可以開始作簡報了,在此之前,秀張快照:

由 jserv 發表於
10:32 PM
|
迴響 (0)
親愛的,我把 KDE 塞進 DirectFB 裡頭了
這個標題明顯有不實的嫌疑,因為我還沒真正把 KDE 移植到
DirectFB這個新生代的 Linux Graphics 架構,但是我今天的進度是把 KDE 最重要的元件之一 Konqueror 移植過去,雖然不是很成功,但是至少 khtml 的部分已經可以運作了,可參考以下快照:

我們可以發現:
- Font rendering 有瑕疵,許多 text render 錯誤,這部分是因為原本 KDE/Qt 採用 Xft/Fontconfig,但是我還沒徹底移植過來
- Font / text 的處理可以參考 GTK+/GNOME 陣營的 Pango
- Window Layer management 運作已經正常了
- focus 的處理需要再花點力氣,列入 TODO
- 就目前只移植 khtml 的核心部分來說,其 code size 大約是 4.5 Mb (x86 binary),又因為直接架構於DirectFB,啟動速度相當令人滿意
由 jserv 發表於
05:39 PM
|
迴響 (0)
新年新希望
距離上一篇 blog,已經距離好一段時日了,有很多值得紀錄的項目,不過某些不愉快的經驗就跟著 2004 年的結束,一起消失,把握當下,作前瞻的思維吧。
發現使用者的 feedback 越來越多,新酷音也正式成立
專案網頁,活躍在 MacOS X 社群的 gugod 與 zonble 也協助開發,真是令人興奮的發展動態,不過正如 kanru 所說,現在有太多 TODO,而我卻沒有時間好好處理,接下來會有一段時間的空檔,kanru 與 BBNS 也快放寒假了,應該可以好好討論下一版 libchewing 的設計細節。
因為工作需要,研究了 Embedded Linux 的 Graphics,挖掘到許多有趣的設計架構,也試著改善 VIA Unichrome 整合繪圖晶片的 FBDev driver 設計,並且也玩起許久未接觸的
DirectFB。VIA 曾一度釋出許多 open source driver,但是從 2004 年中起,就趨向封閉,只提供 binary driver,還好有
The Unichrome Project提供許多寶貴的資料與實作項目,根據前輩提供的資訊,我也發現 VIA 官方 open source 的一些弊端,目前已經修正些許 bug,當然最終會依據 GPL 釋出。在此同時,順手整理分析 2.4 Kernel FBDev 與 fbcon 實作的心得,寫一份比較正式的文件好了。
Graphics in Embedded System 實在是很有趣的主題,但是繁體中文的資料實在是有點稀少,應
TnLUG的 Lman 之邀,預定今年四月份會作一場拋磚引玉的經驗談,至於細節還未敲定,有興趣的朋友可以參考
討論項目。說到這,我最近在進行一項實驗,主要是發現過去 Embedded Linux 開發的過程需要太多人力的介入,而 uClibc 的
uwoody給我頗多啟示,這是 Erik Andersen (uClibc、Busybox,以及許多 toolchain 的維護人,同時也是 Debian Developer) 針對 x86 架構下將 Debian packages 以 uClibc 重新編譯的 self-contained Debian-based distribution。
我比較想做出目標 (主要是配合 [Graphics in Embedded System] 這個主題) 是
GeeXBox,這個僅 5Mb 的 LiveCD 相當有意思,裡頭包含 NFS client、Wireless-tools、linux-tv,以及 MPlayer 套件,也有一套
開發工具集,這個機制是取自
Linux From Scratch,並搭配 uClibc,整體的 code size 控制得相當好,也可以透過 configuration 來作不同程度的 customization,但是這類 "From Scratch" 的設計上來說,「優點就是缺點」,是不是可能預先編譯好特定的組態,以 udeb 包裝起來呢?uwoody 是個很好的出發點,其內附的 rootfs (Root File System) 甚至包含了 toolchain,可以透過 chroot 直接在上面開發,到了測試階段後,在慢慢精簡,並對 ext2 fs 作 resize 即可,相當方便。
驗證這個想法的同時,避免這個實驗過於枯燥,所以我訂了以下目標:
- 以 DirectFB 作為 Graphics Toolkit,並設計一個堪用的 Media Center Frontend
- 建構 uClibc 為基礎的 distribution,並與 uwoody 相容
- 針對特定硬體作最佳化
- 提供自動建構系統的設計,並著手開發便利的 Configuration tool
簡單來說,就是基於「小而美」理念的訴求,所以我稱為本實驗為 "KittenBox"。就第一點來說,我試著修改 DirectFB 與 XINE,設計一個稱為 MediaScape 的前端程式,簡稱為 mscape,目前的進度可以參考以下快照:

已經可以透過鍵盤操作全部的媒體導覽、播放,以及電視影像的處理,未來會加入 lirc 的整合,這樣就可以透過遙控器來操作這個簡單的 Media Center,當然,最終也會依據 GPL/LGPL 的授權釋出。
VIA 之前提供了一款 mini-ITX 的版子,稍微拼湊後就有 KittenBox 的雛形了,以下是該機器的系統資訊:
$ cat /proc/cpuinfo
processor : 0
vendor_id : CentaurHauls
cpu family : 6
model : 7
model name : VIA Samuel 2
stepping : 3
cpu MHz : 601.369
cache size : 64 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu de tsc msr cx8 mtrr pge mmx 3dnow
bogomips : 1199.30
以及
$ lspci
0000:00:00.0 Host bridge: VIA Technologies, Inc. VT8623 [Apollo CLE266]
0000:00:01.0 PCI bridge: VIA Technologies, Inc. VT8633 [Apollo Pro266 AGP]
0000:00:0f.0 Ethernet controller: VIA Technologies, Inc. VT6105 [Rhine-III] (rev 8b)
0000:00:10.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 80)
0000:00:10.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 80)
0000:00:10.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 80)
0000:00:10.3 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 82)
0000:00:11.0 ISA bridge: VIA Technologies, Inc. VT8235 ISA Bridge
0000:00:11.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)
0000:00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 50)
0000:00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 74)
0000:01:00.0 VGA compatible controller: VIA Technologies, Inc. VT8623 [Apollo CLE266] integrated CastleRock graphics (rev 03)
所以之前作的 FBDev 與 DirectFB 的涉獵就派上用場了,稍微 tune 後,整體效能還算可以接受,儘管硬體加速的部分還有改進的空間,接下來的重點則是 memory footprint 與有限度的 Realtime 能力。
喔,對了,之前以
GOT (Gentoo@Taiwan) 的為名,設計一個 Window Manager,就稱為 GotWM,順便當作實作
EWMH (Extended Window Manager Hints) 規格的一個小練習,運作快照可以參考以下:
呼呼,一口氣寫了若干有趣的新計畫,希望在這新的一年可以有更好的突破 :-)
由 jserv 發表於
02:34 AM
|
迴響 (0)