顯示具有 web 標籤的文章。 顯示所有文章
顯示具有 web 標籤的文章。 顯示所有文章

2007年6月14日 星期四

WebKit的Gtk+支援

khtml是在KDE 2中,集合檔案檢視系統與網頁瀏覽器於一身的Konqueror內部主幹,是極為精美細膩的設計,如果說為一窺 KDE 技術最佳的進入點,那真是一點都不為過。由於khtml卓越的設計,很快就出現以khtml為基礎的網路瀏覽器專案,比方說運作於Qtopia (Core)之下的Konqueror/Embedded,而Apple Inc.也採納khtml,部分重新設計與最佳化就變成WebCore (MacOS X內建瀏覽器Safari的核心基礎建設)。而業界的應用也很廣泛,像是韓國嵌入式系統廠商Mizi Research就曾將Konqueror/Embedded經過一番調整,成為相當強悍的瀏覽器。

Apple Inc.提供了大量的修改,讓khtml的品質獲得極大的提昇,又在KDE開發者的斡旋下,Apple Inc.終於採納了社群開放發展的模式,於是KDE與Apple Inc.兩組開發人馬傾向共享WebKit的程式碼基礎 (codebase)。接著,Nokia也宣佈WebKit為基礎的S60WebKit (針對S60手機平台)與gtk+-webcore (針對Gtk+/X11環境),並依循LGPL與BSD License的方式,將修改貢獻回WebKit專案。

WebKit在這三年內蓬勃發展,提供了許多不同軟硬體平台的移植,值得一提的是新出現的GDK (Gtk+的低階圖形處理部份) 移植,這意味著WebKit可運作於GDK支援的環境,就嵌入式系統來說,我們會關注linux-fb與DirectFB兩個Gtk+/GDK所支援的backend。在近半年來的發展,WebKit的Gtk+/GDK移植已到堪用的地步,針對Nokia770/MaemoOpenMoko的硬體移植也出現成功案例。

為了降低建構WebKit/Gtk+的難度,我做了簡單的建構系統 (檔案:webkit-build-script.tar.bz2),允許從Subversion取出最新的發展版本,並作必要的設定,最後進行編譯。下載並解開後,直接執行以下script:

# ./BUILD.sh
中間會透過apt-get取得必要的開發套件。建構完畢後,大致的執行畫面如下:
(1) wiki.openmoko.org
(2) Google MapsWebKitOpenMoko GTA01也開始運作了,但還是有很多需要調整之處,這也是今年Google Summer of Code的項目之一,期待這方面的新進展。

2007年5月21日 星期一

Cheapest ttl2usb converter for la fonera

本來是想一起參加台灣黑客鬆的聚會,因為Jserv跟幾位朋友想在La Fonera上動動手腳,試著在La Fonera上玩玩AJAX/Web Server for embedded system。然而因為會議太忙,兩天都沒辦法出席,真是對不住。cclien寫了一篇相當不錯的文章,紀錄了黑客鬆的過程。最後他們是將Wt移植到La Foera 上,Jserv於OSDC中也針對此議題給了一個 lighting talk

2007年3月13日 星期二

lwkhttpd : Lightweight kHTTPd for Linux Kernel

昨天在SourceForge.net註冊了新專案Ajax/Embedded,做了必要的設定後,開始將之前Proof-of-Concept的程式碼check-in到SVN中。今天開放的項目是子計畫:lwkhttpd,也就是 "Lightweight kHTTPd for Linux Kernel" 之意,以下是該子計畫簡介:

lwkhttpd : Lightweight kHTTPd for Linux Kernel 2.6 series

Copyright (c) 2007 Open RazzmatazZ Laboratory (OrzLab).
Maintained by Jim Huang
Development page: http://sourceforge.net/projects/ajaxembed

[-] Overview

Ajax/Embedded is an experimental design dedicated to perform Ajax applications on embedded systems, such as Wirelss routers. To fit the web traffic on these devices, lwkhttpd is developed as the full kernel-mode HTTP daemon for Linux kernel 2.6 series. Besides handling static requests, lwkhttpd redirects dynamic requests to the user-mode webserver (used for Ajax engine) for extensibility.
儘管Web 2.0並未帶來相當革命性的技術移轉,但我們可以看到Web engine卻有調整與最佳化的空間。在lighttpd開發者的blog有一篇名為 "Faster Web 2.0" 的文章,提出三個方向對Web 2.0應用程式提供更好的效能:
  • Large Response content
  • Pre-generating content
  • Read Ahead
簡單來說,FastCGI的執行模型雖然對OpenWebMail一類的Perl-based Web application有相當程度的效能提昇,但對於Ajax導向的模式來說,還是沒有切中問題核心。Ajax/Embedded底層提供如此一個kernel-mode HTTP daemon,以處理大量的static data,同時也提供 redirect to user-space的機制,讓動態網頁資料 (主要是XMLHttpRequest) 得以「轉包」到我們的Ajax engine,在這之上有豐富的C/C++ Web UI widget set可用。整體效益就如之前blog「Ajax/Embedded」所提,得以建構兼具效能、功能,以及安全性的native Web framework。

對了,Ajax/Embedded計畫項目會參加今年的Coding Jam 2007活動,已提交簡要的ProposalTaiwanCodeJam的wiki page中。希望能快點拿到我們的參考硬體,ARM-based的硬體已開始運作,現在要試試Wifi相關的部份,開發的過程中讓我發現很有趣的現象:現在的computing model逐漸「M化」,不僅是mobile化,也是朝向兩個極端的演化,就Ajax/Embedded專案的適用範疇來看,事實上就是「client比server快上許多」的模式,同時server-side產生相對少量的資料,讓client-side盡情去描繪多采多姿的內容,也對使用者互動方面有了更多的需求。