优秀回答:
- Mark Harrison 谈论了 Tcl, cx_Oracle, kap 和 orapig
- singpolyma 谈论了 DiSo 和 Greasemonkey
- Pax 因为他的妻子而参与到 GnuCash 的贡献中
我在1991年左右开始参与Tcl社区的建设。邮件列表和后来的usenet新闻组是与人交流联系的重要方式。我专门从事用户普及和教学工作,并最终写了两本书。其中一本仍然印刷出版已有十年: http://www.amazon.com/dp/0201634740
现在我使用很多Python,非常喜欢cx_Oracle包。同样,我积极参与邮件列表并贡献了一些补丁。
我提供了几个我为工作编写的软件包。通过将它们开源,我能够得到一些不错的反馈,由于这些不是当时雇主的“核心技术”,所以他们不介意分享这些代码。其中最受欢迎的两个软件包是:
http://sourceforge.net/projects/kap/ Kinetic Application Processor - 这是在我在中国互联网骨干网工作期间构建的。
http://code.google.com/p/orapig/ - Oracle Python Interface Generator - 它生成Python代码来调用数据库中定义的API,并包括一个XML-RPC数据库接口。
与其寻找要加入的项目,不如试着为自己已经在使用的项目做贡献。
通常很难加入“核心”开发,因为(a)在大型项目中,这可能是一块相当庞大的代码需要理解,而且(b)可能已经有一组核心开发人员在工作了。
因此,假设你喜欢某个软件并想开始做出贡献,你可以从边缘开始。以下是几个具体任务,可帮助您与团队融合:
祝好运!
如果你重复了最后几步,维护者可能会给你项目的RCS存储库的提交访问权限,然后你就可以真正变得危险了。但最重要的是,要靠你自己去做一些事情,即编写一些代码 - 仅仅对一个项目“感兴趣”是不够的。
我加入了DiSo和Greasemonkey。
我发现参与项目的最佳方式是在项目早期加入或者对项目非常感兴趣。对于DiSo或我参与的各种Github项目,是前者;对于我的Greasemonkey贡献,是后者。
寻找要贡献的项目通常不是正确的方式。使用这些工具并找出你想要建立/修复的东西,然后去做。
最近,我的妻子在孩子长大一点后重新开始了兼职工作,因此我对GnuCash进行了一些小的修补。
我宁愿用热火钳夹住我的眼睛也不想重新安装Windows,但是GnuCash缺少某些其他会计软件所具有的功能,所以我告诉她我会添加这个功能。
事实证明,在他们将我的补丁收录之前,他们使它变得更好了(可能最终补丁只有1%是我的),但至少现在我们可以使用GnuCash代替那种专有软件。他们也非常响应 - 从提交补丁到补丁可用仅需一周左右,并在三周后将其纳入产品中。
我还曾经调查过向Linux内核的过程记账中添加一个补丁,但是付出的努力远远超过了我的需求 :-)
我并不定期做出贡献,只是按需贡献(找到自己感兴趣的领域)。有些人把这当作一项爱好,但我宁愿把空闲时间花在孩子身上,不幸的是,我的雇主不会为我在其他地方做出贡献支付报酬。
最后一点让我特别恼火,因为:
我所做的很简单; 我打开了一个。
我已经有一位永久的开发人员,还有另外两位在幕后捐赠代码的人。该项目处于非常早期的阶段,因此没有多少用户下载它。
待办事项:请提供一个轶事。