2007/10/26

Fixing a Slow Linux

安裝一台 Mandriva 2007.1 主機後,總有記憶體耗光的問題,今天有空細看,發現是 haldaemon 佔用大量資源,趁機多找了 Linux HAL 的資料。傳統上 kernel 會維護一份硬體清單,讓 desktop application 可以查詢溝通,這種方式並不能精準地認得所有硬體,像數位相機、隨身碟會被當作是硬碟,應用效果就大打折扣。透過 HAL daemon 維護一份 device object 清單,並查看 file system type 之類的額外資訊,使得 HAL 能提供比 kernel 更豐富的硬體資訊,但也付出額外的系統資源做為代價。

2007/10/13

Introduction to KSS

下列文字編譯自 Introducing KSS 一文。

KSSKinetic Style Sheets 的縮寫,在 Plone 軟體裡提供 AJAX 功能的 client side 開發架構。設計理念上,KSS 並不是創造另一個 AJAX 的新架構,而是盡量沿用既有的函式庫,並專注於處理下列議題:

1. JavaScript 並不是個容易開發程序的環境,藉由 KSS 可協助開發者建立 AJAX 應用程式,卻不需要了解 JavaScript。
2. 實作上盡量降低瀏覽器不相容的問題。
3. 處理 JavaScript 除錯環境不良的問題,提供有效率的除錯環境。
4. JavaScript 的 DOM 機制並不適於多數的應用場合,僅呼叫 server 端傳回 HTML 再由 client 端修改網頁的部份內容,便能有效處理許多應用需求。
5. 以 thin client 為設計基礎,遇到需要 fat client 的場合,則可加裝 plugin 來滿足功能要求。

網站開發的過程,需要不同專長的技術人員,同樣地,KSS 的使用者依其興趣角色可分成三類:

* KSS designer : 應用程式可能需要搭配 KSS 資源檔,此檔的內容格式與 style sheet 類似,設計人員可輕鬆完成撰寫。
* KSS application developer : 應用程式的開發,則需要搭配 plugin 與 KSS 資源檔,並撰寫 server side method 等,不過,倒不需要 JavaScript 的知識。
* KSS plugin developer : 需要具備 JavaScript 程式設計與 KSS plugin API 知識。

KSS 的系統架構具備下列的特色:

1. 諸如 browser event 與 plugin 之間工作處理的指定,這類的程序控制,都由 KSS 資源檔與 server action code 所管理,也就是說,應用程式的控制邏輯,由 server 端負責,而不是在 client 端實作。
2. 在 HTML 網頁裡不會出現任何 JavaScript 內容,所有的 JavaScript 程式碼都是一個 KSS plugin,通常扮演 event binder plugin 或 client action plugin 的角色。

概括地說,KSS 架構的設計目的,就是要把設計與實作兩者分開。