Google Summer Of Code 项目创意

lua-users home
wiki

2008 年 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]

导师

如果您有想法,请将其添加到下面的列表中。如果您无法担任项目的导师,请在导师行中填写“MENTOR REQUIRED”。如有任何问题,请联系 Jim Whitehead(见上文)。


请使用以下模板描述拟议的项目

ProjectNameAsWikiName?

导师

级别

简要描述


类别:编译器和绑定


LuaLiveDemo

导师:Jim Whitehead

级别:中等

最近,Lua 团队制作了一个通过网络运行的 Lua 实时演示 [7]。这是朝着让用户无需下载任何内容即可体验该语言迈出的一步。不幸的是,目前它还处于“概念验证”阶段,还有许多改进可以使其成为更具教育意义的演示(参见 [Try Ruby!])。

另请参阅:列表讨论:[26],基于 JavaScript 的 LuaImplementations


OpenScriptingLua?

导师: MatthewBurke

难度: 易到中

Open Scripting Architecture[8] 是 Mac OS X 中一种可扩展的应用程序间通信机制。虽然最初是为 Applescript 设计的,但它可以支持其他语言,并且存在 Ruby[9]、JavaScript[10]、Perl(据称)的 OSA 实现。

该项目需要编写一个库,使 Lua 脚本能够响应 OSA 事件。


Lua Objective-C 桥

导师: Eric Wing,(待定?)

难度:

Lua 到 Objective-C 的桥接[11] 是 Lua 和 Objective-C 之间的语言绑定。当前的实现可以工作,但非常基础,尤其是与其他语言桥接相比,例如 PyObjC[12] 和 RubyCocoa[13]。Obj-C 的主要用户是为 OS X 开发的 Cocoa 开发人员。在 Mac OS X 10.5 Leopard 中,Apple 发布了“桥接支持”,旨在帮助语言桥接更轻松地覆盖所有 Apple 的 API,包括基于 C 的 API(不仅仅是基于 Obj-C 的 API)。下一代 Lua/Obj-C 桥接的(雄心勃勃的)目标是使 Lua 绑定成为一流的,达到 PyObjC 和 RubyCocoa 的水平。另一个目标是考虑如何在 iPhone 上为 OS X 构建/应用桥接,因为 Lua 足够小,易于嵌入应用程序,而嵌入 PyObjC 或 RubyCocoa 在这种环境中可能不太吸引人。

该项目可能太大,不适合 2 个月的项目,但任何在这个期间完成的基础工作都将有利于该项目。


SelfHostedStdlib?

导师: FabioMascarenhas

级别:中等

尽可能使用 Lua 本身实现 Lua 的标准库,必要时使用 ANSI C 函数的薄包装器。这对于引导替代 Lua 实现很有用 (LuaImplementations)。

另请参阅:StringLibraryInLua


类别:搜索和信息检索


[Lulu]

导师: Petite Abeille

难度:

Lulu,Lucene 的 Lua 实现

另请参阅:[Lucene 在除 Java 之外的其他语言中的实现]。Sputnik 邮件列表:[14][15][16]


LuaXapian? 和 TableSearch?

导师:YuriTakhteyev?

难度:

提供一个高质量的 Xapian[17] (一个索引系统) 绑定。然后基于这个绑定构建一个用于索引 Lua 表的解决方案(或多或少类似于 XML 检索的工作方式)。


类别:数据库


NonBlockingLuaSql?

导师: FabioMascarenhas

级别:中等

一个特殊的 LuaSQL 驱动程序,它将另一个 LuaSQL 驱动程序包装在一个非阻塞服务器中(在阻塞时会让出给调度器,例如 Copas)。“协议”可以是序列化后的 Lua 数据,可以是字符串,也可以使用 Pluto,通信介质可以是套接字或管道。


类别:图形


LuaQt?

导师: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 的免费分发版可以使用微软的工具构建))。


类别:Web 开发


ModWombat

导师:MatthewBurke 和 Brian McCallister?

级别:中级-困难

Mod_wombat 是 Apache webserver 的一个模块,它允许程序员使用 Lua 来编写网页脚本。源代码位于 Apache subversion 存储库中,可以从 [18] 访问。Brian 关于 mod_wombat 内部机制的演讲幻灯片可以在 [19] 找到。

为了改进 mod_wombat,需要执行一些任务。有关详细信息,请参阅 ModWombat


SputnikEnhancementsAndExtensions?

导师:YuriTakhteyev?

级别:简单到困难

Sputnik[20] 是一个用 Lua 编写的“通用维基”。(Sputnik 看起来像一个开箱即用的维基,但它被设计为可扩展的,最终可以变成完全不同的东西。)有很多事情可以做,任务从相对容易到相当困难不等。

到目前为止,最需要的任务是

其他任务是


类别:构建和测试


CMakeLua

导师:Eric Wing,Peter Drahoš,Peter Kümmel

级别:中等

[CMake] 是一个跨平台的开源构建系统,提供了一系列旨在构建、测试和打包软件的工具。著名的基于 C++ 的[项目],如 KDE4 或 Scribus,都使用它。CMake 目前只支持一种自研的脚本语言。

这里[CMakeLua] 就派上用场了:它的目的是用 Lua 来补充,并在长远来看,取代 CMake 的脚本语言。

CMake是用C++编写的,并在所有常见平台上构建,因此您至少需要一些C++知识。

任务

在 2 个月内,这个项目可以达到成熟的开发状态,并且有机会进入官方 CMake 存储库。

另请参阅:LuaBuildSystems


类别:游戏


AuctioneerGraphingModule?

导师:Esteban Santana Santana (MentalPower)

难度: 中等至困难

拍卖师[21] 是一个开源的魔兽世界插件?。它的目的是为魔兽世界拍卖行内的物品提供市场价格。然而,这些价格会随着时间的推移而变化,因此我们一直以来的想法是在游戏中实现一个图形模块,以便直观地展示价格在一段时间内的变化。

这个项目需要创建一个统计模块,从拍卖师高级版(API 已经可用)收集原始统计信息。另一个主要组成部分是创建一个图形库,以便能够在游戏中绘制简单的图形。欲了解更多信息,请登录 irc://chat.us.freenode.net/Norganna 并询问 MentalPower


类别: 其他


LuaSchemaValidator?

导师

难度: 高级

这个想法是泛化地描述和验证 Lua 配置数据的约束(例如,Foo 是一个包含 0 个或多个 Bar 的列表;Bar 是一个包含 1 个或多个字符串键指向 Zig、Zag 或 Foo 的表;等等)。

我们之前在工作中也寻找过这样的工具,我们找到的最接近的是 Norman Ramsey 发布的一个例子[27],这个例子很有趣,可以用来玩,但不够通用,无法涵盖我们最简单的用例。

理想情况下,语法应该简洁而富有表现力。例如,将 Relax NG 的紧凑语法与其常规语法(或其他 XML 模式验证语法)进行比较。


PrototypeProgrammingInLua?

导师: MatthewBurke

难度: 简单至中等

有很多面向对象的语言不使用类来组织对象。相反,新的对象是通过克隆现有对象创建的,任何对象都可以动态地修改其属性。示例语言包括 Self[22]、JavaScript[23]、Io[24] 和 NewtonScript[25]

这个项目涉及在 Lua 中设计和实现一个元对象协议 (MOP),它将支持基于原型的编程。

另请参阅 面向对象编程 和与 [AspectLua] 捆绑在一起的 LuaMOP。



最近更改 · 偏好设置
编辑 · 历史记录
最后编辑于 2009 年 1 月 19 日上午 6:04 GMT (差异)