July 31, 2005
開發 Embedded Multimedia Devices 的參考文獻
[
通用便攜] 網站上有相當多值得參考的好文章,如果我們想開發一個具體而微的 Embedded Multimedia Device 的話,可以用以下的文章閱讀順序:
還在努力消化,codec 的實做顯然是我比較有興趣的地方,可惜這個部份還是必須參考「大部頭」的資料才行。
由 jserv 發表於
08:52 PM
|
迴響 (0)
Netbit 網路瀏覽器
[
Netbit] 是高波 (Sogo) 在 2001 年北京理工大學的畢業設計作品,他公佈原始程式碼以及設計文件,很值得一看,雖然有些歷史了,但是作為一個 build from scratch 的設計,可以作為借鏡。我做了一份複製並轉檔,可參考:
由 jserv 發表於
07:52 PM
|
迴響 (0)
SDL-IM 邁向新紀元
最近好多熱血的朋友阿 :-)
剛剛運動回家後,打開 mail box,發現這封信件:
From: "Mr. Incredible"
To: jserv
Subject: Hi, I solved the problem of flipping state window in win32 fullscreen mode.
Dear J sir.:
After a long half a year, I have solved the problem of flipping state window in win32 fullscreen mode.
It's a happy day for me to finish all the main plans(two GUI, one Game engine and other things) of SDL-IM. :-D
Thanks for your help and support.
--
Sincerely,
courage.
真棒阿,這半年來 [
SDL-IM] 就致力於 SDL Library 的輸入法支援,現在 Win32 fullscreen flipping 的問題也克服了,在 courage 兄的來信也提到,他完成了兩個 SDL-based GUI 的修改,以及一個遊戲引擎的輸入法支援。
恭喜 courage 兄,這也表示說 SDL-IM 越來越成熟了,希望可以變成 SDL 官方標準。
由 jserv 發表於
06:32 PM
|
迴響 (0)
準備 JavaTwo 投影片
剛剛閱讀 [
jini(99% jakarta) blogging],得知前輩正在準備今年 [
Java 2005 專業技術大會] 的簡報,在 [
JavaTWO 2005 ~ EJB3] 提到今年的講題是 EJB3 還有 Java Open Source/Open Standard,相當吸引人,今年終於可以免費入場了 (這是我擔任講師的主要目的阿),真期待。
至於我的投影片,因為 OpenOffice.org2 被我搞爛了,所以還在重建中 (寫 blog 的同時,還在 build),我的講題是「Free Java Runtimes」,相關的議程可以參考 [
講師介紹],套句前輩說的話:
「對這部分有興趣的人, 就來聽聽吧 :)
有什麼建議的, 或特別想知道的, 請不吝指教 」
如果沒有意外的話,在這個 session 也會順便介紹許多有趣的新變化,當然也會有技術細節的探討。
由 jserv 發表於
11:30 AM
|
迴響 (1)
UPnP 的實做
之前的 blog [
VLC Player with UPnP support] 提到我在 VLC Frontend 實做
UPnP Audio/Video Media Server 的功能,而現在已經成功整合到官方 VLC svn tree 了,所以應該會在 0.8.4 版現身。
除此之外,還有一個 Sourceforge 上的專案 [
Perl UPnP],就是用純 Perl 語言來實做,咱們看看簡介:
Perl UPnP is a pure Perl Universal Plug and Play (UPnP™) ControlPoint and Device host implementation. UPnP is an architecture for "pervasive peer-to-peer network connectivity of intelligent appliances, wireless devices, and PCs of all form factors."
Why implement the UPnP architecture in Perl? Because Perl provides the basis for rapid implementation, testing and deployment of applications. A pure Perl implementation allows developers to build UPnP-compliant applications simultaneously for a variety of platforms.
帥呆了 :-)
July 30, 2005
Kanru Chen 的 OVIME 發展進度
Kanru 最近又開始熱血,在他的 blog [
IME 進度] 展示一張 screenshot,說明 OVIME (MS-IME Engine for OpenVanilla) 運作的情況,現在已經可以配合 POJ (白話字) 使用了,喔,對了,這是不折不扣的 Win32,只是配合使用 MacOS X Theme (可參考 [
TigerMilk])。
所以呢,看來很快就可以把之前做好的 libchewing for Win32 整合在一起了,就會有一個 [
新酷音]/Win32 的新版本,現在也提供一個 IMEInstaller,相關程式碼可以參考:
svn co http://opensvn.csie.org/OVIME
Holy Kanru!
由 jserv 發表於
10:51 AM
|
迴響 (1)
July 22, 2005
Subversion 開發小技巧 -- svn diff 的展現
之前的 blog [
淺談版本控制系統] 除了介紹版本控制系統 (VCS) 的概念,也以 Subversion 為例,說明如何應用在專案開發上,也獲得一些網友的指教,非常感謝。我必須承認這份簡報相當陽春,詳情還是要參閱各個 VCS 的文件。
這裡補充一下 Subversion 使用的技巧,一般而言,我們開發專案的時候,最好都能在更動時,一併補上 ChangeLog,這也是為何 automake 會作檢查此檔案的原因之一。以我最近協助開發的 [
PCMan X pure GTK+ 2] 來說,我可能會實驗性的作一些改進,比方說對於 plugin 的整合處理,有些部份是 hack,或是 testing code snip,我可能不願意直接 commit 到 svn repository,所以我希望一面撰寫 ChangeLog,一面過濾掉這些更動,是不是有 tools 協助我們呢?
現在 Subversion GUI frontends 不少,不過我們手頭的 terminal 其實就很好用了,建議您安裝 [
colordiff] 這個小程式 (或直接使用
Debian -- colordiff),然後依照以下畫面:
就是這個指令:
# svn diff --diff-cmd colordiff -x "-up"
這樣就可以比較清楚的看出更動的部份,也可以知道對應的 function/method 所在。
由 jserv 發表於
09:38 PM
|
迴響 (2)
July 21, 2005
GCJ 與 GNU Classpath 的整合
GCJ (GCC for Java) 除了作為 GCC 的一個 frontend 外,有個 libgcj 這個以 CNI/JNI 導向的 Core API implementation。在 2002 年開始,GNU Classpath 與 GNU GCJ's libgcj 逐漸開始整合,但是彼此間還是有落差,今年五月份 GCJ 計畫領導人 Tom Tromey 在 mailing-list 提到 [
Big Classpath Merge],介紹了目前 GCJ 如何 merge GNU Classpath's Core API implementation,而昨天 Tom Tromey 的 blog [
Big Classpath Merge] 則做了以下成功的宣告:
"I'm happy to have it all checked in. This should greatly reduce the amount of time we spend merging fixes between Classpath and libgcj. Now you should be able to check out Classpath directly into your gcc source tree and build that way."
太棒了 :-)
由 jserv 發表於
09:53 AM
|
迴響 (0)
July 14, 2005
刺激的 Ubuntu Breezy
我為何喜歡用 Debian 與 Ubuntu 呢?除了嚴謹的設計哲學外,大概就是充滿刺激,比方說 Ubuntu Breezy 就會把發展中的 Xorg 打包,而之前提過 [
Xorg 邁入 7.0 新紀元],裡面有個很重要的特徵就是高度模組化,這點在 Breezy 已經落實了,所以早上 apt-get dist-upgrade 後才發現 Xorg 缺乏 modules,於是趕緊安裝欠缺的模組:
# apt-get install \
xserver-xorg-core \
xserver-xorg-input-kbd \
xserver-xorg-driver-ati \
xserver-xorg-input-mouse
這個變動來自 6.8.2-35,引述 changelog - xorg (6.8.2-35) breezy; urgency=low
- The 'largest Binary line in the west' release.
+ ... in which our hero rationalises server-xorg.
- Break out Xfixes, Xdamage and Xcomposite modules to external packages. No additional Build-Depends introduced.
- Break out xcursorgen to an external package, drop Build-Depends on libxcursor-dev.
- Break out cursors (from xcursorgen, installed to xlibs-data) to an external package.
- Stop trying to be clever and force autodetect_* settings to true on reconfigure, as this is completely broken.
- Remove sh3, sh4 and netbsd-i386 from the xserver-xorg packaging.
- Break xserver-xorg out into xserver-xorg-core (core server and modules, no drivers), and:
- Display drivers: xserver-xorg-driver-apm, xserver-xorg-driver-ark, xserver-xorg-driver-ati, xserver-xorg-driver-chips, xserver-xorg-driver-cirrus, xserver-xorg-driver-cyrix, xserver-xorg-driver-dummy, xserver-xorg-driver-fbdev, xserver-xorg-driver-glide, xserver-xorg-driver-glint, xserver-xorg-driver-i128, xserver-xorg-driver-i740, xserver-xorg-driver-i810, xserver-xorg-driver-imstt, xserver-xorg-driver-mga, xserver-xorg-driver-neomagic,
xserver-xorg-driver-newport, xserver-xorg-driver-nsc, xserver-xorg-driver-nv, xserver-xorg-driver-rendition, xserver-xorg-driver-s3, xserver-xorg-driver-s3virge, xserver-xorg-driver-savage, xserver-xorg-driver-siliconmotion, xserver-xorg-driver-sis, xserver-xorg-driver-sunbw2, xserver-xorg-driver-suncg14, xserver-xorg-driver-suncg3, xserver-xorg-driver-suncg6, xserver-xorg-driver-sunffb, xserver-xorg-driver-sunleo, xserver-xorg-driver-suntcx, xserver-xorg-driver-tdfx, xserver-xorg-driver-tga,
xserver-xorg-driver-trident, xserver-xorg-driver-tseng, xserver-xorg-driver-vesa, xserver-xorg-driver-vga, xserver-xorg-driver-via, and xserver-xorg-driver-vmware.
+ Input drivers: xserver-xorg-input-acecad, xserver-xorg-input-aiptek, xserver-xorg-input-calcomp, xserver-xorg-input-citron, xserver-xorg-input-digitaledge, xserver-xorg-input-dmc,
xserver-xorg-input-dynapro, xserver-xorg-input-elographics, xserver-xorg-input-fpit, xserver-xorg-input-hyperpen, xserver-xorg-input-kbd, xserver-xorg-input-magellan,
xserver-xorg-input-microtouch, xserver-xorg-input-mouse, xserver-xorg-input-mutouch, xserver-xorg-input-palmax, xserver-xorg-input-penmount, xserver-xorg-input-spaceorb,
xserver-xorg-input-summa, xserver-xorg-input-tek4957, xserver-xorg-input-void, and xserver-xorg-input-wacom.
- Configuration is still in the xserver-xorg package, but this will change in the future (when we all have flying cars).
所以呢,現在的劃分可以更乾淨且便利了,dpkg-reconfigure xserver-xorg 也不再出現沒有必要的選擇。
由 jserv 發表於
10:33 AM
|
迴響 (0)
July 11, 2005
VLC Player with UPnP support
之前作的 hack,好像一直忘記提,不過 [
Satoshi Konno] 已經在他的 blog 介紹過:[
Wednesday, June 22, 2005 - CyberGarage]。簡單來說,這是修改著名的 VLC Player,加入 UPnP 多媒體檢索的功能,相關的討論可以參考 [
UPnP MediaServer Extension for VLC],跟 Satoshi Konno 作 co-work 是很有趣的經驗,基本上 VLC 0.8.2 with wxWidgets frontend 應該就可操作 UPnP 了,有任何想法或問題,可以與我聯繫,謝謝!
由 jserv 發表於
01:17 PM
|
迴響 (0)
July 10, 2005
Sandia 發展的 UWB/AES 技術
剛剛閱讀這篇新聞 [
Sandia develops secure wireless technology],或許可以作為下個世代無線網路的雛型。Sandia National Laboratories 與其合作的 Time Domain Corporation 和 KoolSpan Inc. 正在建構以 UWB (Ultra Wideband) 為骨幹的無線網路技術。以往,無線網路最令人詬病之處,就在於安全性,而 Sandia 則將 UWB 與加密標準的 AES (256bit) 整合在一起,此外,也提到對於 RF 的改進,至於目前的成效來說,引述報導原文:
Among the key wireless features of the UWB/AES are its IP network compatibility and its “per-packet” rotating 256-bit encryption keys for even greater crypto-protection. The UWB/AES network architecture requires no computing infrastructure, provides real-time (hardware) encryption, and requires zero maintenance for complete self-recovery if interrupted or when a sensor goes down.
而且就實際的測試項目來看,只需要傳統 802.11b 或 WiFi 的千分之一的功率。
由 jserv 發表於
10:15 PM
|
迴響 (0)
提筆寫字
昨天在 SayYa BBS 上看到 letoh 分享的 [
OSUG],是個用 Macromedia Flash 製作的習字帖小程式,非常有意思,可以用滑鼠來勾勒筆順。然後晚上遇到 jie,也分享這個有趣的網站,然後 jie 沈寂了好一段時間,就寫出以下這個字:

感覺很不錯,謝謝!
由 jserv 發表於
12:10 AM
|
迴響 (0)
July 09, 2005
Linetconf (Linux Networking Configurator) 專案上線
之前的 blog [
Linetconf (Linux Networking Configurator)] 介紹到這個衍生自 netapplet 的網路設定工具,今天專案網頁上線,也釋出第一份公開版本 (v0.1.0),可參考 [
Linetconf :: Linux Network Configurator]。
歡迎有興趣的朋友協助開發與測試,謝謝!
由 jserv 發表於
12:21 PM
|
迴響 (0)
July 06, 2005
pebrot 文字介面 MSN Client
剛剛閱讀 [
s88's blog] 的這篇 [
pebrot],提到 [
pebrot] 這個文字介面的 MSN client,好玩的地方在於用 Python 寫的,雖然文件沒有寫得很清楚 (事實上是我根本沒看.. :P),但是用了三十秒追了一下 code,設計真有趣,稍微 hack 後就動了:

使用習慣跟 IRC 有點像。
由 jserv 發表於
01:25 PM
|
迴響 (2)
July 05, 2005
Xorg 邁入 7.0 新紀元
好聳動的標題 :-)
Freedesktop/Xorg 的核心成員兼 Sun Microsystem X Window System Group 領導者 Alan Coopersmith 在他的 blog [
Xorg 6.9 and 7.0 starting to freeze for release] 宣佈了 Xorg 的新紀元,也就是邁入 7.0 release 之前的 code freeze,首先會有 6.9,之後就是徹底模組化的 7.0,我們可以看看 [
CVS head 的重大變更]。
先提到這,mailing-list 還有太多我還沒閱讀完的文章,這一切實在太夢幻了。
由 jserv 發表於
05:43 PM
|
迴響 (0)
July 04, 2005
PCMan X 的新發展 (4)
凌晨觀賞 DISCOVERY 關於柬埔寨的人文背景報導,竟然失眠,而在 IRC 上,PCMan 兄儘管剛渡假回來,也不休息的改良 PCMan X,所以我受到感召,索性又開始修改 [
PCMan X pure GTK+ 2]。
之前的 blog [
PCMan X 的新發展 (3)] 提到在目前 svn head 已經實做出可縮放於 System tray (在 FreeDesktop 的術語則是 "Notification Area") 的功能,對於常常掛 BBS 的朋友可增加便利性,但是總是會些水球或訊息收不到,於是,我在想:是否可能模仿 MSN Messenger 的 popup window 呢?
初步的成果如下圖:

目前的作法相當簡單,只是攔截 Bell handler,也就是 PCMan X 對應來訊顯示與視窗標題閃爍的程式碼片段。對於掛站的朋友來說,PCMan X 已經縮到右上角的 "P" 圖示裡面,所以視窗標題閃爍沒什麼意義,相反地,這個模式下,會彈跳出一個訊息視窗,將水球 / 訊息內容作呈現。
稍後我會將這個 hack 予以 commit 到 svn repository,當然要感謝 PCMan 兄與偉大的 free/open source softwares 環境,很多想法與概念得以快速的實現 :-)
由 jserv 發表於
11:35 AM
|
迴響 (2)
July 03, 2005
落花水面皆文章 -- 談踩地雷遊戲與 NP Complete
宋末的翁森在〈四時讀書樂〉這麼寫道:「好鳥枝頭亦朋友,落花水面皆文章。」,很多理論都是值得我們去探究的,但這些學問不見得一定要在厚厚的教科書或者論文集才讀得到,很多時候,玩遊戲反而是相當有效率的啟發,這話怎麼說?
剛剛閱讀 Uwe Hermann 的 blog [
Minesweeper is NP-complete],提到了 Richard Kaye 對於經典的踩地雷遊戲 (Minesweeper) 作分析,證明解題過程是 NP Complete 的,推薦您可先閱讀 Richard Kaye 在 [
ASE meeting 2003 的簡報]。
首先,Richard 從踩地雷過程中的猜想,逐步引導我們試著從臆測中找到規則,又引入 logic gate 的觀念,最後從經典的 Travelling salesman 問題看 NP Complete,然後我們就身陷 "P=NP" 了 :-)
這份簡報實在是相見恨晚,電腦科學的演算法其實相當有趣,只是教科書與學程常常弄得很死板,讓學生喪失學習與思考的興趣,而經典的踩地雷遊戲竟然可以推導 NP Complete,實在有意思,的確,「落花水面皆文章」。
由 jserv 發表於
10:41 PM
|
迴響 (0)
Guifications 與 cvs head
相信很多朋友都用過 [
Guifications],不過如果要搭配 gaim cvs head 的話,需要經過一番調整,相關的 patch 可參考 [
Guifications - About],將此 patch 給予 apply 到 guifications2 即可。
剛剛在 #DOT 上,lwhsu 告訴我 .Net 上有個實用的專案 [
TaskbarNotifier, a skinnable MSN Messenger-like popup in C# and now in VB.NET too],看來挺好玩的,我很喜歡這樣的介面呈現,整體的 API 使用也非常簡單。
由 jserv 發表於
12:33 PM
|
迴響 (0)
PCMan X 的新發展 (3)
今天一大早就醒來了,沒辦法,內湖住所實在太悶熱了,睡眠不足、火氣不太好,所以需要 coding 來修身養性。手癢又開始改 [
PCMan X pure GTK+ 2],之前的 bug 還是沒有徹底修正,但是我突然想到一個點子,所以用了一些時間作這個 hack:

重點在於右上角 System tray (在 FreeDesktop 的術語則是 "Notification Area") 的 "P",當按下的時候,會切換隱藏或顯示主視窗,這種需求對於常常掛 BBS 的朋友來說,或許可以增加便利性,而對我來說更是相當重要的功能,這樣我上班才能偷偷玩 BBS,然後 System tray 的圖示按一下就隱藏... :P
由 jserv 發表於
08:12 AM
|
迴響 (0)
July 02, 2005
PCMan X 的新發展 (2)
因為 PCMan 兄渡假去,所以我來幫他更新進度 :-)
之前已經張貼過新聞 [
新中文 BBS 軟體 PCMan X pure GTK+ 2 開發中],而 PCManX pure GTK+2 的網頁也 [
正式上線]。今天下午,Kanru Chen 跟我做了一些小修正,看來越來越接近 Beta release,這是運作畫面:

有興趣加入本計畫的朋友,可以跟 PCMan 兄或我聯繫,當然也可以直接在 IRC Channel #DOT (irc.freenode.net) 上直接討論,謝謝!
由 jserv 發表於
08:02 PM
|
迴響 (0)
July 01, 2005
librt.so 的 private symbols
剛剛在玩 [
sipXezPhone] 時,發現以下奇怪的訊息:
error: /lib/librt.so.1: symbol __pthread_clock_settime,
version GLIBC_PRIVATE not defined in file libpthread.so.0 with link time reference
於是腦中浮現這似乎在某個地方看過,在查詢了 [
Valgrind FAQ] 之後,一切真相大白,引述 FAQ 裡頭的文字:
This is a total swamp. Nevertheless there is a way out. It's a problem which is not easy to fix. Really the problem is that /lib/librt.so.1 refers to some symbols __pthread_clock_settime and __pthread_clock_gettime in /lib/libpthread.so which are not intended to be exported, ie they are private.
是的,這兩個 symbol 是 private,並沒有 export 出來,那怎麼解決呢?相當簡單,「補釘」(patch) 用力的打下去:
--- sipXportLib/src/Makefile.am (revision 596)
+++ sipXportLib/src/Makefile.am (working copy)
@@ -24,7 +22,6 @@
@PCRE_LIBS@ \
@SSL_LIBS@ \
-ldl \
- -lrt \
-lpthread \
-lstdc++
沒錯,就是確保不需要 librt.so,這樣就不會有錯誤的 linkage。補充一下,在 GLIBC 2.3.x 已經修正,是因為我的 toolchain 版本比較舊,所以恰好遇到上述問題
由 jserv 發表於
02:53 PM
|
迴響 (0)