撒下种子,然后不期而遇 —— 在 CommunityOverCode Asia 2024 与热爱重逢
与热爱重逢
我早该意识到,自从我需要请假参加此次 CommunityOverCode Asia 大会起,我就已经在被裹挟着前进,再无大片空闲的时间琢磨博客的词句。
校招入职小红书后,我从第四天就开始主动接手需求,82 小红书日、超级码力启航营…… 接踵而至的活动与大小周的存在让我愈发珍惜周末的休息时光,但我也不愿丢下我的热爱的根源。
我为什么能请假自费参会?
对于绝大多数普通开发者来说,没有公司支持,与工作又没有直接相关,“请两天假 + 放弃周末,自费飞去另一个城市,只为参加一场会议”,可能会是一个难以接受的选项。
可对我来说,技术热情是我身为工程师的乐趣来源。
在业务部门,新人接手的总会是练手级别的 CRUD,底层的各个方法还是不同前辈在不同时期写下的。想要与它们对接,就像是想要用一种形状的俄罗斯方块,拼上 N 种不同形状的方块。
即使是这样繁复的 CV Job,我也在尝试从比较方块间的不同的过程中寻找些许乐趣。更何况是为我留下了美好记忆、激励我一路深入 Coding World 的 Apache 软件基金会所组织的活动呢。
自从参加了去年的 CommunityOverCode Asia 2023 大会后,我关注了国内各类活动整整一年。我一直认为,国内再无比 CommunityOverCode Asia 办得更富有技术氛围的峰会。
下文将简称 CommunityOverCode Asia 为 CoCA。
Apache 软件基金会办的会有什么特殊之处?
办会的可持续性在于声誉和资金。像亚马逊、谷歌等云厂商巨头,他们举办的峰会,在介绍先进企业级解决方案的同时,不会向你透露具体的技术实现细节。他们想要的是向没有自研基因的公司推销商业化产品,进而通过办会盈利。
参加这种会议,参会者的身份大多会从开发者向项目经理偏移,关注点将从 “我们想要实现这个功能,该怎么做”,变成 “我们需不需要这个功能,这个功能能带来什么”。
一场保持厂商中立性、不专注于推销商业产品和解决方案、几乎所有议题都在详细描述最新特性与技术、而且没有基金会注资的峰会,想要持续办下去,是极度困难的。但主办方 ALC Beijing 做到了,连续三年。
作为国内顶级的开源技术峰会,为了达到收支平衡,更多靠的是声誉,与各个已经习惯于反哺开源社区的大厂的赞助。尽管如此,每年也都会亏钱。好消息是,一年亏得比一年少了😄。
与热爱者相遇
每每参加这样的一场技术讨论,对我的视野与热情的帮助都是阶梯式的爬升。这种契机所带来的成长,是埋在代码中苦读所无法比拟的。
技术不只是代码本身,还有那些做技术的人。投身于一件事情的人是会散发出光芒的,一群这样的人聚集在一起,那样的光芒吸引着我。能够认识大家,我很幸运。
如果说去年的参会经历是为我彻底打开了开源世界的大门,那我今年最大的感触便是 —— 收获了自己在开源世界中无意间撒下的种子。
只身来到会场,却得以结伴而行
踏入会场没有十步,就转角遇见爱 —— 撞上了去年与我一起参会的华为云 EventGrid 技术负责人王海军老师。两人庆幸的笑容心照不宣般挤满脸庞。
此时的我预想不到,在我所认识的老伙计们之外,“不断被陌生人认出来、可我却不认得他” 的一天才刚刚开始。
尽管我已经连续 4 天每天只睡 4 个小时了,尽管我在大会前一天落地杭州的那晚已是凌晨,来到会场的我依然精神抖擞。
原因与去年一样的纯粹:热爱,与循环正向激励。
(好孩子不要学我,合照时的眼睛会细得能双缝干涉😂
与自己撒下的种子相遇
就在王海军老师回去准备下午的演讲内容后,一位小伙儿抱着打探的目光坐到我的旁边。他拿出手机,屏幕上是我在 GSoC-CN (Google Summer of Code) 群聊中发过的大会现场照片,却仍然一言不发,生怕认错了人。
我再清楚不过他的想法,因为我也曾经像他一样。
都已经是时常一起聊天的群友了,自然不必拘谨。于是我笑着报出他的网名 “牧生”,然后拍下了第一次线下面基的合照:
合照时的他还只是 SpringCloud Alibaba Committer,现在已经是 Apache Hertzbeat (incubating) Committer 了。
他告诉我,群里还有几位小伙伴正在前往会场的路上,“自从读过你去年的那篇公众号文章后就一直期待着今年的 CoCA 大会”。
于是,等到上午 Keynote 会场结束时,我把大家聚在了一起。他们挨个报出自己的 ID,那些 ID 我曾经无比熟悉,此时又显得陌生,令我重新审视起网名与具象的面容之间的逻辑联系。
就在我与开源之夏的同学们一起拍下这张合影前,大门走进几位研究生模样的行色匆匆的学生(学生还是社畜,一眼就可以分辨出来),领头的那位一见到我就立刻大步向前、叫出我的名字、同时双手握住我的手,然后掏出手机,说 “我是你的博客的粉丝”,加上微信,留下一脸懵逼的我,再次行色匆匆地离开了。
会议结束前的那天晚上,我躺在酒店的床上梳理新好友的备注,点进他的朋友圈,发现这是一位大佬 ——“Seata’s Cloud-Native Evolution: A Roadmap from Deployment to Future Possibilities” 议题讲师、清华大学研究生、开源之夏中选者、Apache Seata (incubating) Committer 尹祥琨。
“原来我的博客有粉丝啊?”
躺在床上的我说出了与合影前的自己所说的一样的话。
相遇、但其实是重逢?
开源社区中的绝大多数沟通都发生在 Network 上,当你在线下与一位 “陌生人” 相谈甚欢时,你可能会突然意识到这个人就在自己的微信好友列表里 w
4 月时,我协助着 ALC Shenzhen 社区群的运营,看到 Apache Pulsar 深圳线下 Meetup 的预告,心想,“消息系统里终于出现能独立办 Meetup 的社区了”,于是主动联系了傅腾,由此结识。
在大会的 Apache Pulsar 展板前见到他时,谁也没认出谁。正好小红书在准备拿 Pulsar 换掉 RocketMQ;我的 Apache EventMesh 社区今年的演讲议题是吉利汽车的最佳实践,吉利为 EventMesh 的 Store 选用了 Pulsar,以支持与公司级基础设施相整合的异地集群数据同步,两人就这么聊了起来。
我谈起 Pulsar 即将在北京举办的 Meetup,傅腾疑惑,“你是从哪看到的呢?”
我回道:“ALC Shenzhen 群里 Pulsar 的一位 PMC 告诉我的,好像是叫傅腾。”
傅腾:“我就是傅腾”
(两人面面相觑,随后相视而笑 hh)
然后我就被留下,拍了张和展板站在一起的照片,被他发了上面那张朋友圈:
好运与人际关系是连锁的。傅腾帮我叫住了走出 Pulsar 摊位没多远的乔发展。
来自吉利汽车的乔发展是今年 Apache EventMesh 社区 “Apache EventMesh the event grid helps build an event platform” 议题的讲师。
早在大会前一个多月,我就和其他两位 PMC 一起帮他的演讲 PPT 出谋划策、提供内容,但我还是第一次见到真人。
当然,先和展板拍一张合照:
我和他背靠着狭窄的环形走廊的栏杆聊了一整个中午,面前人来人往 —— 技术负责人所负责的永远不止技术。
在此期间,我被人认出来的 Travel 还在继续。除了我博客的粉丝之外,还有我帮忙答疑解惑 / 修改简历 / 选 offer / 谈心的全国各地的同学们。
聊天的队伍壮大着。直到下午的分会场即将开始时,一群人才依依不舍地各自奔向自己最感兴趣的领域所在的会议室☺️。
每个纪念品都记录着一次相遇
收集印有各个项目 Logo 的纪念品也是一种乐趣。
纪念品通常不是无限领取的,摊位会希望你扫码关注公众号、填个问卷之后,再选一个纪念品带走。
但如果你像我一样,上来就与工程师攀谈起来,在了解项目的用途与亮点之后,结合自己对技术应用的理解,提出些许改进的建议,拓宽项目落地特定场景的可能性,他们会非常乐意把所有种类的纪念品都给你一份 —— 多要几份作 Backup 也没事😉。
一圈摊位逛下来,也一定程度上弥补了自己无法听遍所有分会场的遗憾。看着自己收集的纪念品,回想起将它们收入囊中时的自己,不禁嘴角带笑。
但当我遇到比自己还 e 的人时,我也只好拿上礼品逃离 ——
在 OSPP 开源之夏的摊位前,我碰上了开源之夏的发起人之一:李梦,简短地与她分享了我和开源之夏的故事。谁知也许是我身上的 buff 太多,“课题结束后持续贡献”、“深度参与 & 建设社区”、“毕业前被提名 Apache Committer”、“双非本科”、“因开源经历拿到大厂 ssp”、“经常线上线下分享参与开源活动的经验”……
这些我一步步走来、自然而然的事情,在她眼里闪着光,如获至宝般邀请我作客杭州近期的一场线下分享。
不过分会场议题开讲在即,时间安排和行程方面,我的脑子一时间也转不过来,便回道 “乐意之至”,加上微信。盛情难却,原本已经领了一件她觉得 “正好” 的 L 码 T 恤,又和身边的姬世文一起接过两件更大一码的 T 恤,见她还要拿第五件,匆忙趁新客到场之时礼貌道别🤣。
能真切地感受到她对开源之夏的用心运营,也非常感谢对我的热情 w,期待可以继续与开源之夏的故事🤗。
(虽然 XL 也小了一码就是了😂第二天再去 OSPP 摊位时已经没有 2XL 的码了
与 RedHat 的奇妙缘分
要说去年的 CoCA 大会给我留下最深刻印象的讲师,那必定是来自台湾 RedHat 的 Luke Chen 老师。可惜 “Deep Dive the replication protocol in Kafka” 这场议题之后,我就赶往下一个分会场了,没能与老师交流一番。
今年的我和 RedHat 继续着缘分。正当我在消息系统会场研究着赵福建(也是我去年非常喜欢的讲师,这回讲的是 Serverless Kafka)的 PPT 时,乔发展把我叫去了位于 Room 8 的 “其它 (Others)” 分会场 —— 这么一个不起眼的房间竟然传出 Luke Chen 般同样理性叙述的声音,不出意外还真是 RedHat 的会场,着实惊喜。
(建议 CoCA 官网的会议日程页面可以借鉴去年百格活动的议题和嘉宾介绍排版,这样听众可以看到更醒目的公司背景,不必挨个点开演讲者的个人介绍,不容易错过。)
“The best pratice of integration technology driven by event in cloud” 这场议题介绍了 OpenShift 生态下独具一格的事件驱动架构,也很惊喜在演讲中提到了 Apache EventMesh 作为参考。
那既然是熟悉的领域,答题环节我必然势在必得,斩获全场唯一的 Special 纪念品:
本场议题结束后正好是茶歇时间,我抓住机会,主动上前与讲师 Alan Liu 老师交谈,请教他对于 EventMesh 的看法和建议。他也很高兴能见到 EventMesh 社区的维护者,期望与社区寻求合作。
说实话,第一次与 RedHat Senior Solution Architect 对话,再一次印证了我对 RedHat Engineer “不说废话” 的刻板印象,需要非常专心才能跟上对方的语速。
我叫回乔发展,四个人站成一圈,边吃茶歇边聊,从如何帮助开源项目得到商业大公司的背书与开发人力支持,到 Monolith 视角下 Serverless Store 的 StreamAPI Dispatch Runtime 优化,收获颇丰。
大会结束的那天晚上,我在回北京的航班的廊桥前拍飞机,又遇上了 Alan Liu 老师🤭。真是奇妙的缘分。
我连续两天连块哈密瓜都差点没抢到。全靠姬世文帮我留了一份,才能在大会的最后一天吃上小蛋糕。
晚宴:从聆听者到输出者
世界很小,在这里能碰到的熟人比你想象中的多。
即使会议第一天的晚宴坐下了一桌陌生人,即使大多数人原本互相都不认识,等到晚宴结束的时候,就都认识了。
更何况,坐你身边的 “陌生” 人很有可能就与你有着 “不见之缘”——
我和王海军老师落座后,一桌人分成小群体窃窃私语的局面很快被我在不经意间打破。我与王海军老师聊到自己在公司 “忙到没有人会思考如何卷别人” 的体验,结果一则我 “在洗手间里有史以来听到过的唯三句话” 逗笑了全桌人:
- 好累
- 比我在快手的时候累多了
- 啊干不动了 ——
身边一位沉稳的中年开发者抓住了这个机会,提议我们自我介绍一圈。首当其冲的自然是我。
当我能够下意识地在一桌平均年龄比我大 10 岁的前辈面前自然而又饱含热情地介绍自己时,我意识到,今年的我自己,成长了。
来自各大企业的 Apache 项目开发者居多,Committer 也不少,但相比于去年的最大的变化在于:大会还能吸引到仅仅只是 “好奇开源” 或是 “想要捐献项目” 就来参会的开源圈外人,甚至还有市占率超 50%、SSD 卖到 HDD 价格的存储硬件供应商。
大家的自我介绍继续着,一位刘海贴着脑门、看上去总让人觉得在嘿嘿笑着的青年的声线吸引了我的注意。Flink 社区的归属更是让我确信了这一点:好像是熟人。直到他报出自己的大名,我知道我们是如何相识的了:
“你是不是 5 月份在大湾区 Open Source Day 演讲了货拉拉的 Flink CDC 实践?” 我准确报出自己看过的录播标题。
他稍有些惊讶地说 “啊,是”,桌上的大家也好奇地等着我继续说下去。
“我帮你的 PPT 找出了个小错误(笑),当时让 Track Chair 帮忙反馈给你了。”
“啊,对的,我知道这个”,他一拍脑门、笑着低下头去,一桌人也跟着我俩笑起来。
陈政羽老师(的声音)陪着我度过了三顿晚饭。每到没有条件专心 Review PR 的时候,我就会打开他的演讲,从上次停下的地方继续,直到从头到尾听完。
最后轮到这位提议自我介绍的 “沉稳的中年开发者”。他开始报出自己的 title——
白鲸开源联合创始人、Apache DolphinScheduler PMC Chair、Apache SeaTunnel PPMC、ASF Member、Apache 孵化器导师……
“好长!” 我心想,怪不得你把自己放到最后说。
代立冬,我有印象的。他的 title 远不止说出口的这么长,他不仅是 ApacheCon 2022 和 CoCA 2023 的大数据领域 Track Chair,还是最早主导国人开源项目成为 Apache 顶级项目的开源布道师。他穿着过曝的白 T 恤、双手抱在胸前的职业照,我已看过数遍。只是… 真人和照片实在是大相径庭,所以没认出来😂。
得益于我在签三方后到毕业前这段时间全职开源、带团队做产品的积累,我不再需要像去年的晚宴一样等待自己能与他人平等交换故事的话题,而是可以在整场晚宴中与每个人相谈甚欢。
从聆听者到输出者,我发现我并不是为了聊天而健谈。就像在 Code Review 时洋洋洒洒地写下一整页指引和想法一样,我借此学习,也乐意分享。
离别,不是结束
不断刷新的去年今日
大会的最后一天,最后一场议题后,我追上 Justin Mclean,向他展示了我去年写的博客:
他很高兴能重逢,也很高兴我这么年轻就已经成为了 Committer。
不过,他紧接着补充道,“虽然不知道是谁,但我相信 ASF 中还会有更年轻的 Committer”,一脸无比期待新鲜血液加入的表情。
然后我们就一起拍下了这张照片:
去年的博客,和今年的照片。
只可惜今年明哥和陈老板没有来。去年一起去了天安门,今年要不去趟西湖?等到 CoCA 在深圳举办的时候,怎么说也得去找他们蹭一顿😬
于是,当姬世文怯生生地找到我,问我怎样才能与 Justin Mclean 英语对话、他也想合影的时候,我把他拽到了即将离场的 Justin Mclean 面前,帮他实现了第一次合影。
相信等到明年的时候,他已经学会了如何问好,并且能自己向 Justin Mclean 介绍:“我已经是 Commmitter 了”。
每次打开电脑时,都请回想起那份热爱
回北京后,我就立刻为电脑贴上了那些我参与过的社区 Logo:
在去年的大会上,每种贴纸我都只领了一份,等到想贴的时候才意识到:贴了就再也没剩的了;
今年我特意每种都拿了两份,贴一份收藏一份😙
不过,实用物品一直被收藏着也是在浪费它的生命,不如用起来,比如这个 Apache Paimon 水杯:
从办会的见证者到 ALC Beijing Member
我曾在去年的博客的 ALC 章节中写到,“2024 年,CommunityOverCode Asia 将来到深圳或杭州,吸引更多本地的开发者。” 那时的我还不完全明白 ALC 的运营方式与职能。
在这一年里,无论是帮我及时认识各个项目的新特性与它们的开发者,还是为那些极易被社交媒体流量所埋没的 Meetup 与讲师提供曝光的机会,ALC Shenzhen 社群的存在都功不可没。
ALC (Apache Local Community,类似谷歌 GDG) 本地社群中聚集了来自各个 Apache 项目的 PMC 级人物,是各种开源活动最好的门户,也是一张横跨数十个项目的人际关系网。六度分隔理论在这里的数量级将降级到三度以下 —— 只需三步,你就可以认识到开源圈子中的任何人。
ALC 社群中的活动可以自由发布,ALC Chapter 自身也可以举办活动,通常由 ALC Chapter Members 领导。
ALC Beijing 作为国内最早建立的 ALC,最为大佬云集。CoCA 大会也是由 ALC Beijing Members 十数人花费大半年时间一手筹划的。
我从去年大会结束后就一直想着,给自己留下那么深好印象的一场大会,是怎么筹办、怎么收尾的呢?以及,他们为什么要无偿地举办这样一场大会呢?
于是我从去年开始就老找炜明 (Apache EventMesh PMC) 要腾讯会议号,因为他说会议号是发在 ALC Beijing Members 的小群里的,而双周例会续期后,会议号就变了。有时我看 PMC 忙,就待在 ASF Confluence 页面上刷新,等江波写下今天的会议纪要,然后拿到此次会议的链接。
现在看来,大家几乎一整年都在办会。从去年 9、10 月份的复盘,到 11 月就开始筹划下一场了,再到今年的大会前夕。跟着一场场例会一路走来,我也从参会者,转变为了办会的见证者 ——
并终于在今年的大会结束后,也成为了 ALC Beijing Member,正式成为他们中的一员。(不用找人要会议号了,耶😆)
非常感谢代立冬老师的提名与邀请!费心思帮我撰写投票邮件、发起投票,还在百忙之中让我在相应的时间节点后提醒他来推动,聊天时又从来没有任何架子,有一种无心栽柳柳成荫的感动。
代立冬老师问我,能不能总结一段我为开源做的贡献,他发给 ALC Beijing 的大家看下。
我不擅长夸自己,所以我一直憋到回北京的航班落地前才想出思路。尽管如此,我还是很喜欢我所写下的最后一段话:
在这场杭州之旅中见到很多位我的博客的粉丝,有刚刚参与工作的同学,也有讲师,感到很惊喜,想要在更多的开源活动中与自己撒下的种子相遇。
“想要在更多的开源活动中与自己撒下的种子相遇”,这便是我走下飞机时心中最深的感想。
尾声
有趣的故事还有很多,但受限于篇幅,真的已经写不下了。
感谢一切相遇。