Google Summer Of Code 點子 |
|
這份清單是 Lua 社群申請 2008 年 Google Summer Of Code 計畫專案點子的中心清單,由 Jim Whitehead 負責這個專案的管理事宜。如有任何問題,歡迎與他聯繫。
點擊各標題可參閱專案的詳細說明。請注意專案範圍是可以協商的:如果你認為你想要承接的專案在兩個月內無法完成,我們可以協調縮小專案範圍。
如果你是一名有興趣使用 Lua(一種驚人的開源語言)的學生,想要獲得寶貴的開發經驗,同時還能認識來自世界各地的開源開發人員,而且還能獲得報酬,我們鼓勵你申請我們的 Google Summer Of Code 專案之一 [1]。或提出你自己的提案!
請參閱 Google 的 SoC 常見問題解答 [2] 了解這個計畫的更多資訊。有許多良好的建議資源,能讓你選擇要申請的專案 [3],學生參與者的預期 [4]、如何撰寫引人入勝的申請 [5],以及如何提出你自己的提案專案 [6]。
如果你有專案點子,請將它加入以下清單。如果你無法擔任專案的導師,請在導師欄位填寫「需要導師」。如有任何問題,請聯絡 Jim Whitehead(見上文)。
導師
等級
簡短說明
導師:Jim Whitehead
等級:中級
最近,Lua 團隊建立了一個透過網路執行的 Lua 即時示範[7]。這對讓使用者有機會體驗這門語言無需下載任何東西來說,是一個正確的方向。很不幸的是,這個示範目前處於「概念驗證」模式,因此可以針對教育性質的示範進行許多改進(請參閱 [試試 Ruby!])。
另見清單討論:[26],基於 JavaScript 的 LuaImplementations
導師:MatthewBurke
等級:初級至中級
開放程式架構[8]是一種 Mac OS X 中可擴充的機制,用於應用程式之間的通訊。儘管最初設計用於 Applescript,但也可以支援其他語言,而且還有 Ruby[9]、JavaScript[10]、Perl(據說)的 OSA 實作。
這個專案需要編寫一個函式庫,允許 Lua 程式回應 OSA 事件。
指導教授:Eric Wing(稍後還有其他人嗎?)
等級:困難
Lua 橋接至 Objective-C[11]是在 Lua 和 Objective-C 之間的語言繫結。目前的實作已經運作,但非常基本,特別是與其他語言橋接(例如 PyObjC[12] 和 Ruby
Cocoa[13])相較。Obj-C 的主要使用者是為 OS X 開發的 Cocoa 開發人員。在 Mac OS X 10.5 Leopard 中,Apple 發布了「橋接支援」,旨在幫助語言橋接更容易涵蓋 Apple 旗下所有 API(包括基於 C 的,不只是基於 Obj-C 的)。這個下一代 Lua/Obj-C 橋接的(雄心勃勃的)目標,是讓 Lua 繫結成為一流的,達到 Py
ObjC 和 Ruby
Cocoa 的等級。另一個目標是要考量如何將橋接建立/應用於 iPhone 上的 OS X,因為 Lua 夠小、易於嵌入在應用程式中,而將 PyObjC 或 Ruby
Cocoa 嵌入在這個環境中,吸引力可能沒那麼大。
這個專案對於為期 2 個月的專案而言可能太大了,但完成過程中所做的任何基礎工作都可能會對這個專案有幫助。
指導教授:FabioMascarenhas
等級:中級
盡量使用 Lua 中的薄型包裝(wrappers)函式,函式在必要時包含 ANSI C 函式,實作儘可能多的 Lua 標準函式庫。這對於建立其他 Lua 實作很有幫助(LuaImplementations)。
另請參閱:StringLibraryInLua
指導教授: Petite Abeille
等級:中等
Lulu,是一個針對 Lucene 的 Lua 實作
另請參閱:[其他語言的 Lucene 實作(非 Java)]。Sputnik 郵件清單:[14][15][16]
指導教授: YuriTakhteyev?
等級:困難
提供高品質的繫結至 Xapian[17](一個索引編製系統)。然後根據這個繫結,建立編製 Lua 表格索引的解決方案(或多或少就像 XML 擷取的工作方式)。
指導教授:FabioMascarenhas
等級:中級
一個特殊的 LuaSQL 驅動程式,它以非封鎖伺服器包覆另一個 LuaSQL 驅動程式(在封鎖時讓控制權給一個規劃器,例如 Copas)。「通訊協定」可以是序列化的 Lua 資料,無論是字串或使用 Pluto,通訊媒介可以是 socket 或管線。
指導員: ArielManzur
一些適合在 SOC 中進行的任務
等級:中級
改善 tolua++ 取得 Qt 介面。目前,公開給 tolua++ 的 Qt 介面已提供 lua_qt 套件,分為一系列的 .pkg 檔案,維護起來很困難。如果使用更自動化的方式取得 Qt 介面(例如剖析 gccxml 或類似工具的輸出結果),會讓情況變得更容易維持最新狀態。這將實作為針對tolua++ 的附加元件,並與 lua_qt 分發(不需要修補/重新編譯 tolua++)。
等級:中級
實作『指令碼語言友善』的特定 Qt 功能,例如 Qt 的屬性系統,或無法透過標準 c++ 介面存取的項目,例如 qlinguist(需要更多範例)。
等級:簡單(可能應該與其他任務合併)
跨平台建置/分發。這個套件應該很容易在所有受支援的平台(Linux、OSX、Mingw、Visual Studio(假設 qt 的免費分發版可以用 Microsoft 工具建置))上建置。
指導員: MatthewBurke 和 Brian McCallister?
等級:中到難
Mod_wombat 是 Apache 網路伺服器的模組,讓程式設計師可以使用 Lua 建立網頁指令碼。原始碼位於 Apache 版本管理庫,可以在 [18] 存取。Brian 關於 mod_wombat 內部的演講投影片可以在 [19] 找到。
有許多任務需要進行,才能改善 mod_wombat。有關詳細資訊,請參閱 ModWombat。
指導教授: YuriTakhteyev?
等級:簡單到困難
Sputnik[20] 是一個使用 Lua 編寫的「廣義 wiki」(Sputnik 出 коробки看起來像是 wiki,但設計成可以擴充,最後變成完全不同的東西)。有許多事情可以做,任務難度從相對簡單到相當困難不等。
迄今最需要的任務是
其他任務是
導師:Eric Wing、Peter Drahoš、Peter K�mmel
等級:中等
[CMake] 是跨平台開放原始碼建置系統,提供一系列工具,用於建置、測試和封裝軟體。著名的 C++ 軟體專案,例如 KDE4 或 Scribus,都會使用它。目前 CMake 僅支援 It 自己打造的腳本語言。
這時候 [CMakeLua] 就派上用場了:它的目標是補充並最終取代 CMake 的腳本語言,用 Lua 取代。
CMake 以 C++ 編寫,並建置在所有常見平台上,因此您至少要有部分 C++ 知識。
任務
在 2 個月內,此專案應能達到成熟的開發狀態,並有機會進入 CMake 官方儲存庫。
請另見:LuaBuildSystems
等級:中等至困難
Auctioneer[21] 是 World of Warcraft 的開放原始碼擴充元件?。其目的是在 World of Warcraft 拍賣場中列出的物品提供市價。但這些價格會隨著時間改變,所以我們已構想一段時間,要執行一個遊戲內繪圖模組,以視覺呈現價格在一段時間內的變動。
這個專案會需要建立一個統計模組,用於從 Auctioneer Advanced(已提供 API)收集原始統計資料。另一個主要元件是建立圖形函式庫,以便能夠在遊戲中繪製簡單的圖表。有關更多資訊,請登入 irc://chat.us.freenode.net/Norganna 並詢問 MentalPower。
導師
等級:進階
構想是對 Lua 設定資料的限制提供通用描述和驗證(例如 Foo 是 0 或更多個 Bar 的清單;Bar 是包含 1 或更多指向 Zig、Zag 或 Foo 的字串金鑰的表格;依此類推)。
我們以前在工作上就尋找過這樣的工具,我們發現最接近的是 Norman Ramsey 所發表的範例[27],玩起來還蠻有趣的,但過於普通,無法涵蓋所有最簡單的案例。
理想上,這個語法應該簡潔有力。舉例來說,比較 Relax NG 的簡潔語法與其一般語法(或其他 XML schema 驗證語法)。
導師:MatthewBurke
層級:初階到中階
有許多物件導向語言不使用類別來整理物件。相反地,新的物件是由複製現有的物件所產生,任何物件都可以動態修改其屬性。範例語言包括 Self[22]、JavaScript[23]、Io[24],以及 Newtonscript[25]。
這個專案包含設計及實作 Lua 中的元物件協定 (Metaobject Protocol,簡稱 MOP),用於啟用基於雛型的程式設計。
另請參閱 ObjectOrientedProgramming 及與 [AspectLua] 綑綁的 LuaMOP。