开源项目维护者为什么要支持新人?

Open LED signage

对于绝大多数的开源项目来说,开源的那一刻起,是有预期让更多的人参与其中的。

其实背后的原因也不需要渲染的多么高大上,无非是人、影响力和永续发展。

开源项目的发展是需要工程师投入时间和精力来参与的。开源项目当然可以只有一个在贡献。但随着开源项目的发展,作者也会心有余而力不足,来自社区贡献者的参与,可以让作者/其他贡献者获得被认可的感觉。

对于开源项目作者/贡献者来说,更多的新人参与,意味着项目整体开发效率的提升。

影响力

对于开源项目来说,有人用可以说是价值的实现。一个优秀的开源项目不仅仅是得到了 GitHub 上的 Star、Fork ,更重要的是有用户。

影响力的建设不是通过写代码就能完成的,是需要更多的人参与进来,并不断的扩展一个开源项目的适用范围,扩大其影响力的。

对于开源项目作者/贡献者来说,更多的新人参与,意味着项目整体影响力的发展。

永续发展

几乎所有的项目/事情都会遇到一个问题 —— 如何永续发展。

想要永续发展,人的参与是不可或缺的。项目的主导者或许不再参与项目的贡献,但只要有新鲜血液进来,那么这个项目就可以持续发展。

对于开源项目作者/贡献者来说,更多的新人参与,意味着项目的生命周期得到了延长。

给知名项目提 Typo 修复有什么问题?

black and white penguin toy

昨天在 V2ex 看到一个帖子,吐槽掘金上有人教别的程序员去给知名的开源项目提交 Typo Pull Request。

掘金上居然有文章教人怎么给开源软件提 typo issue

刚好,我也之前写过类似的文章,一篇《如何成为Golang贡献者》,另一篇《如何为任何开源项目做贡献?》,其实内容相差无几。就也来以“当事人”的身份聊聊这个问题。

Typo 有意义么?

答案是肯定的,任何对于开源项目有帮助的 Pull Request ,都是有意义的。因为他帮助开源项目变得更好,哪怕这个更好只是一个字、一句话的更好。

从项目的层面来看,项目是鼓励每个人去做贡献的。

而从项目开发者的角度来看,每一个 Pull Request 背后都是一个希望加入社区的开发者,如果开发者可以做好贡献者培养,对于项目的持续运行是有很大帮助的。所以我们可以看到,每年都有项目参加 Google 的 GSOC,都有项目参加 Digital Ocean 的 Hacktoberfest。

唯一可能出现的问题是:大量的 Typo Pull Request 会侵占维护者的心力,使得维护者无暇处理更加重要的事情

当然,这样的问题是可能存在的。但换句话说,这也是一个开源项目维护者群体壮大的好机会。如果不堪其扰,有很多种方式来处理:

  1. 提拔已有的 Commiter 为 Contributor,由某个 Contributor 来处理 Typo 类型的 Pull Request。
  2. 慢慢合并 Typo Pull Request,开源项目的 Pull Request 的合并并不一定是很快的,事实上绝大多数项目的合并都不会很快,特别是一些大型项目。在这种情况下,你大可以慢慢处理。

所以,Typo 的 Pull Request 所产生的坏处大概率是可以通过一些方式规避掉,而让项目可以进一步的发展。

对于贡献者来说,Typo 有意义么?

对于新手来说, Typo 类型的 Pull Request 是有意义的。

正式的开源项目往往会有很多规范和流程上的东西,这些东西是需要开发者通过参与开发才能慢慢熟知的,比如 pull request 的格式、信任的建立。从这个角度来看, Typo 类 Pull Request 可以帮助开发者快速熟悉一个开源项目的规范、约定俗成的习惯。

对于老手来说,Typo 类型的 Pull Request 没有意义。

除非你的企业需要按照 Pull Request 数量来帮你计算 KPI,不然提 Typo 类型的贡献对于你来说,百害而无一利。

我们现在在简历上会看你的 Github,因为 Github 能够证明你的实力。但你是否想过,如果你是面试官,你会看好一个给某个项目只提 Typo,而不做任何 Bugfix、Feature 更新的开发者? 我想大多数人都是 No。既然如此,你为什么会觉得提交 Typo 类型的 Pull Request 能够帮助到你自己呢?

总结

固然,提交 Typo 类型的 Pull Request 会占据开发者的心力,但通过简单处理就可以绕过的情况下,我还是鼓励开发者去提交贡献的。

开源人是如何培养的?

最近我在华东师范大学的王伟老师那边去做了一下项目的宣讲,介绍了一下 Linux 中国的开源激励解决方案,希望能够吸引一些学生参与到项目中来,参与项目开发、参与开源的过程。

在这个过程中,我在想一个问题,究竟什么样的方式,才可以培养出一个开源人?

我一直自诩是互联网原住民、开源原住民,虽然我并不是最早接触开源的,但是我自从 2011 年开始,就不断在做和开源相关的事情,从早期的使用开源,到中期的参与开源,到后期的贡献开源,和如今的推广开源。我自开源社区成长,也因此成为一个活跃的社区人。我希望能够有更多的人和我一样,加入到开源社区中来。那么,我们应该如何培养出一个像我一样的开源人呢?
思考再三,如果用一句话来描述,那么就是
开源人应当是由开源社区教育出来的,而不是某一个开源人教育出来的。
每一个开源人不是因为他的老师是开源人而是开源人,每一个开源人都因为他自己在开源世界投入了足够的精力,最终成为了一个开源人。
对于开源人的培养,应当以开源的方式进行,这里就不得不说一个项目了。FreeCodeCamp 拥有一个全 Github Star 最多的项目,就是 freeCodeCamp/freeCodeCamp 。如果你在 FreeCodeCamp 学习编程,当你学习到 Github 的相关章节时,就会告诉你,你需要去给这个项目点 Star ,去贡献 PR ,让你从一开始就体验开源、学习开源。
对于我们来说,开源的教育也当是如此(当然,王老师的课程中引入了开源项目来做 Mentor ,本身就是在实践这种理念),我们需要让我们的程序员能够知道开源、了解开源、理解开源、参与开源。
长期以往,我们的程序员中,也会涌现出越来越多的开源世界原住民。

乐在其中,才会无限精彩:记 COSCUP 2019 台湾行

在 2018 年的时候,COSCUP(Conference For OpenSource Coders, Users & Promoters) 我虽然知道,但因为自己的缘故,没有办法参会,于是在 COSCUP 2019 的消息出来之后,我便主动提交了自己的议题,希望可以去台湾参加一次 COSCUP ,感受一下台湾最大的 FLOSS 社群会议活动。

幸运的是,我提交的两个议题「从 GRANK 到 GITRANK ,我们是这样针对开源项目建模的」和「一个 P0rnHub 周边项目的诞生和成长」都通过了筛选,成功被组委会选中,也便有了此次的台湾之行,有了这篇 COSCUP 后记。

前路坎坷:艰难的台湾之行

停办的个人自由行签注

在台湾之前,我在西藏出差了三个月,因为时间的关系,当时只来得及办理台湾自由行个人签注。在西藏出差期间,因为没有时间回深圳,导致我一直没有办理入台证,后续,8 月 1 日,国台办停办了所有的个人自由行签注,更是让我陷入了十分紧张的状态,担心自己能否前往台湾,参加本届的 COSCUP。

入台证
入台证

幸运的是,在我 13 号回到深圳后, 提交资料,加急办理后,还是成功的在前往台湾前,成功办理了入台证,获取了前往台湾的许可。

艰难的飞行之旅

在确定了议题被选中后,我就订了从香港飞往台湾的机票(毕竟从香港飞比从大陆飞能便宜 1000 左右),但是,后续因为环境原因,我不得不选择退掉我从香港起飞的机票,改为从大陆直飞台湾。

一开始订的票是从广州直飞台北,结果,到了出发的早上,因为前一天晚上休息的时间太晚了,导致我醒来以后,无法赶上从深圳到广州的列车,不得已,我将飞机改签,转而从深圳飞上海转机飞台湾。

马上就要登机飞✈️往台北了
马上就要登机飞✈️往台北了

经过这么一番折腾,最终,我在 8 月 16 日的下午,成功抵达台北。

看到远处的台北 101 大厦了么?
看到远处的台北 101 大厦了么?

Happy Hacking:愉快的 COSCUP 参会体验

Welcome Party

COSCUP 在会议的前一天晚上,安排了会前派对,参加派对的大家可以在 Party 现场见面、聊天,讨论关于开源等一切事务。

邮件中为
邮件中为

我在 Airbnb 完成入驻后,就尽快赶到了 Party 的会场,参与现场的交流。会场选在了台北 101 大厦的附近,我们在 Party 的现场只需要抬头,就可以看到台北 101 大厦,非常的漂亮。

中间的尖塔状建筑,就是台北 101 大厦
中间的尖塔状建筑,就是台北 101 大厦

整个 Party 的氛围可惜因为我还是太过于腼腆,并没有和太多在场的台湾同胞交流,倒是和大陆一同前往台湾演讲的各位讲师聊的很开心。

大家得知附近刚好有个诚品书店,便一致决定,去看看这个“网红”书店,我还在诚品书店买到了几本不错的书,都带回了大陆看。

左起分别是王蕴博老师(滴滴)、吴晟老师(Apache Skywalking)、我、Ted 刘(开源社理事)
左起分别是王蕴博老师(滴滴)、吴晟老师(Apache Skywalking)、我、Ted 刘(开源社理事)

COSCUP Day 1

今年的 COSCUP 是在台北的台湾科技大学举办,租借了台科大的一栋大楼来做会议。相比于大陆的会议主要是一个主会场,所有人都去听,COSCUP 的主办方的看法有所不同,在他们看来,他们需要的是更多的会场,让更多的开发者可以勇敢的 Show 出自己。

OPasss
OPasss

参会的话,首先需要下载一个 OPass App,安装了这个 App ,就可以在现场使用 App 进行签到,十分的方便,值得大家学习。

现场的各项基础设施,也做的非常的棒,有大的议程台,可以帮助参会者了解议程。

现场照片
现场照片
COSCUP 会场之 IB101
COSCUP 会场之 IB101

大陆来的讲师的议程基本在第一天,所以我第一天的事情主要是去听一听大陆这边的讲师的议程,听一听大家都讲的是什么,并选一些我感兴趣的其他议程听一下

Ted Liu 的议程
Ted Liu 的议程

Ted Liu 讲的是自己在 Apache 基金会看到的一些东西,以及他作为 Apache Member ,看到的不同的内容、开源项目能够从中学习到什么。

吴晟老师的议程
吴晟老师的议程

吴晟老师则分享了他的项目 Skywalking 如何从一个个人项目进入 Apache 基金会的项目孵化器、成为 Apache 顶级项目的历程。

马全一老师分享了他在阿里巴巴、腾讯、华为等多家企业从业看到的大陆的企业的开源的现状,因为他说他的议程不能拍照不能录像,所以这里没有图片。

李辉老师则以自己的个人经历,为大家介绍了一个普通程序员如果变成一个全栈工程师、如何成为一个项目的 Core Maintainer 等等的一些信息。

水歌则分享了其在 Web Components 中的实践,帮助大家了解了 Web Components 的前世今生,并介绍了他自己基于 Web Components 实现的框架, WebCell。

其他几位老师的议程,因为时间的缘故,没有能去参加。

除了听议程以外,第一天我还去参加了 LPI 在 COSCUP 举办的考试,毕竟作为 Linux 中国的一员我还真没有正经的参加过 Linux 相关的考试,刚好这次有机会,就参加一下考试。

LPI 在 COSCUP 的展台
LPI 在 COSCUP 的展台

总体来说,LPI 的考试还是不错的,会考到一些比较基础的,平时可能根本想不到的知识点。

第一天的议程结束后,开源社成员 Richard 和 Kevin (他们是台湾人)作东,邀请了来台湾参会的讲师么,一同聚餐。

聚餐合影
聚餐合影

台湾菜,很好吃!

COSCUP Day 2

第二天,因为我自己有两场演讲,所以也仅仅参加了两个议程和一场 BoF(有相同喜好的人大家坐在一起聊聊天的活动)。

王伟老师的议程
王伟老师的议程

王伟老师在议程中,分享了他自己在大陆做的开源相关的教育的事情,并分享了自己的一些成果。

水歌的分享
水歌的分享

水歌的分享则介绍了他如何借助 Hexo 去建立一个开放透明的开源组织,介绍了他自己的实践,还进行了一个 WorkShop,帮助大家上手。

在 BoF 上,大家则讨论了关于开源、教育等一些实践、大家的思考。

7cbzc
m827w
l3947
5brvt

关于我自己的议程,因为我在演讲,所以只能等后续组委会放出的视频和照片了?。

One More Thing:会后采访

这次来台湾参会,我给自己留了10天时间,除去来回的2天,我还有8天时间,以及 2 天的会议时间,我仍然有 6 天的自由时间,除了在台湾游玩,我还能为两岸的开源、IT 界做些什么呢?

那就来做采访吧!

得益于 COSCUP 的关系,很多人对于我有一个初始的印象,也借此,我可以成功的在台湾访谈一些很好的朋友,包括 Anti996 License 的主导者 Suji Yan、Hexo 的开发者 Tommy、台湾的 Ruby 社群的高见龙、Ubuntu TW 的负责人 BlueT、台北 iOS 开发社群的早期负责人豆花、COSCUP 的总办 Bobchao、台湾 Laravel Dojo 的创办人范圣佑等人, 如果你对他们的访谈感兴趣,就持续关注我吧,我会在后续将这些采访都发出来。

当然,如果你对于其他的开发者有兴趣,也可以告诉我,我后续会一一进行访谈。

学而时习之:COSCUP 值得学习的小细节

在参加 COSCUP 中,我也发现一些值得我们去学习的细节,这里也分享给大陆的同行,帮助大家更好的去举办大陆自己的会议。

He、She、Ze

在 COSCUP 中,每一个人可以在自己的卡片上贴上一个标签,这个标签分为 He、 She、Ze,其中 He 和 She 就不多说, Ze 则是针对一些跨性别者,或性别认知与其天然性别不同的人。对于跨性别者,或者性别认知不同的人来说,直接称呼其 He、 She 都略不尊敬,而 Ze 则很好的避开了这个问题,而且参会者可以根据自己的需要,选择标签,他人在称呼自己的时候,可以根据你的选择了填写。

共笔系统

共笔系统也是我在 COSCUP 中认为的一个值得我们学习的点。共笔系统,是指 COSCUP 为每一场活动都提供了一个可以在线协作的文档,每一个参会者都可以打开这个文档,然后为文档共享内容,大家共创会议笔记,这种方式,可以让大家更好的去参与这个会议,每个人对于会议的理解不同,能够结合自己的经历,写出一些不同的东西,帮助更多人去理解。

总结

最后,做一个小的总结,这一次的 COSCUP ,其实让我感受到非常多大陆和台湾的不同,大陆这边我们会关于效率,项目,成长。台湾则会更关注娱乐,就像我在标题中写的那样 「乐在其中,才会无限精彩」,因为乐在其中,所以我们可以更加持久的做下去,至于精彩,就听天由命了。

对于大陆的开源人来说,我想,我们需要做一些改变,不应仅仅是为了工作目标而开源,为了快乐去做一些事情,不也很棒么?