ChaosCraft:和女朋友一起来 Hackathon 表演绝活丨滑滑蛋团队访谈
根据马斯洛需求层次理论,当基本的生理和安全需求被满足了之后,人们就需要去满足更高级别的精神级别的需求。
——周志强,滑滑蛋队长,PingCAP Chaos Mesh 开发工程师
当 TiDB 集群以一群小羊的形象出现在你面前,还咩咩叫的时候,可能再严肃的程序员都会感受到“更高级别的精神抚慰”。所以在刚刚结束的 TiDB Hackathon 2021 赛事中,当滑滑蛋团队在 Minecraft 里展示 Kubernetes 工作负载并进行混沌实验的时候,场面一度十分欢乐,就好像突然从《今日说法》穿越到了《欢乐喜剧人》。ChaosCraft 也在众多严肃、硬核的项目中脱颖而出,摘得了无限创意奖。
今年是滑滑蛋团队第二次参赛,用队长周志强的话来说,就是再一次带着女朋友一起表演绝活,去年的绝活是 TiDB 驾驶舱,大家都笑称这个项目提前预测了元宇宙的到来。但去年的项目没有获奖,周志强表示拿奖并不重要,重要的是你做的事情得到别人的认可,拿奖是一种被肯定的方式,给大家带来欢乐也是。跟周志强聊的整个过程都很欢乐,也希望你能在文章中感受到。
队名的由来
图片来自网络
我和女朋友都是那种二次元比较宅的人,“滑滑蛋”这个名字就来源于日本番剧轻音少女主题曲《Fuwa Fuwa Time》的空耳名。因为一看到这个名字就会想到剧中的主人公们以一种非常轻松惬意的方式来做自己想做的事情,这也是我比较羡慕的一种状态。
为什么选择做一个看起来没什么用的项目?
我觉得无论是什么事情,一定要有趣,才会做得久。我在生活中是一个比较活泼的人,在和其他软件工程师交流的过程中,会发现他们的工作或是思想都过于沉重,总想着做很多非常酷但是没那么 funny 的事情。但我觉得人生还可以做很多好玩的事情,而且 Hackathon 又没有拒绝说不能做“娱乐”项目,所以才有了来 Hackacthon 上整活的念头。
而且带给人快乐是一件比较容易获得反馈的事情,如果你要做一个性能提升的硬核项目,可能评委需要思考项目落地的成本和人力,以及如何让这个项目产生真正的成果。但是我们这个项目不会落地,所以大家看了就只有快乐,快乐就会表现在脸上,就很直接。也希望和我有类似想法的人不要恐惧,不要害怕,TiDB Hackathon 是一个非常 nice 的机会,大家不会因为你做的东西不严肃就 judge 你。
项目灵感来自哪里?
我本科的专业是数字媒体技术,在大学里也学过一部分游戏相关的知识,所以对于“游戏”是比较亲切的。而且对于我来说,“游戏”可以作为一种新的艺术形式,它在视觉听觉,甚至在触觉上都可以对人的感官进行刺激。游戏本可以用来做更多的事情,只是当前的社会大多用这种艺术形式或者说是技术来制作架空世界,或者说是游戏了。
滑滑蛋去年的参赛项目:TiDB 驾驶舱
去年第一次参加 Hackathon 的灵感来源于梦龙哥的一篇博客(https://disksing.com/hackathon-idea/),因为我大学专业的原因,所以很自然地想到了使用 VR 来做一些现实中很难做到的事情。去年参赛的时候,因为其他人做的项目都是比较严肃的项目,我也一度担心会不会因为风格不合被踢出赛制,但大家的反馈都是比较积极正面的,所以今年还是继续以“给大家带来欢乐”的方式来参加比赛。
KubeInvaders 项目展示,图片来自网络
今年参赛的灵感来源是一些混沌工程相关的游戏,比如说 KubeInvaders,用击坠外星人飞船的方式来模拟杀 Pod。这个项目在 KubeCon 上也有一个演讲,所以全世界都会有工程师去关注这种没什么卵用,但非常好玩的项目。
很多伟大的发明也是从看起来没什么用的创意开始的,你觉得你们的项目会有这个潜力吗?
它本身确实没什么用,但就像人类在打字机的时代想象不到可以用鼠标在网页上点点点的场景,我们现在拿鼠标去点网页的时候,也很难想象未来更先进的操作交互方式是什么样子的。
我觉得使用 3D 的方式展现数据以及进行交互,未来一定一定会有非常大的潜力,但是这类项目估计会慢一些。在未来,更为舒适的交互方式一定是会从浏览器中,从移动应用中,进入到 AR 眼镜里去;到那时候,“游戏引擎”里的哪些计算机图形学技术才会大放异彩。
如何轻松、欢乐地参与 Hackathon ?
我们的项目是在 Minecraft 中操作 Kubernetes 相关的工作负载,Kubernetes 相关的主要是我写的,Minecraft 相关是她写的,比如为什么羊的头上会有一个名字这些主要是她在玩的。另外就是我们的主程 GitHub Copilot,帮助补全了很多图形学的代码,极大地降低了 Coding 的成本。
项目推进就基本是散养了,完全按兴趣做,想到哪做哪,用一种快乐、轻松的心态去完成的。
Q:在比赛过程中你们遇到过什么比较大的技术困难?是如何解决的?
周志强:比较大的问题是 Minecraft 的 Modding 问题,因为 Minecraft 没有官方的模组 API,也没有文档,在修改的时候只能去猜该用哪些 API。这里要再次感谢 GitHub Copilot,基本上你给到一个 function name,然后用人类的语言告诉它要做什么,就可以自动补全里面 function 的实现,非常方便。
Q:这次 Hackathon 的时间有限,你们在比赛过程中有什么遗憾?在组队及参赛过程中有什么有趣的事儿可以分享吗?
周志强:没有什么太大的遗憾。项目上确实有很多由于赶时间出现的工程问题,但是这都是正常的,任何项目都会有。另外就是很多想到的 feature 还没有实现得非常好。比如我们在 Minecraft 中用网络水晶来指工作负载,网络水晶之间的光束就代表网卡间的数据传输,但暂时没体现出数据量的大小。因为我之前做过运维人员,对于运维来说,如果机器出现了一个热点,网络流量是一个非常重要的指标,所以如果能展现出网络流量的大小,是非常有用的。
趣事就太多了,比如当第一个头上顶着名字的羊出现在你前面咩咩叫的时候,是非常开心的。我平常用来创建 Pod 的一条命令的输出,竟然能对应上眼前的一只羊,真的非常好玩。另外就是做 presentation 的 PPT 的时候,也比较有趣,我俩是几乎全程笑着做完的。
Q:对这次比赛你们的体验如何?
周志强:体验还不错,只是人越来越懒了,下次估计是想纯线上参与了。我本来也是在 remote 工作,习惯了家里的开发环境和网络环境,我又非常不想提前录制 demo 视频,因为觉得有太多作假的可能性,所以在预赛的时候翻车了。可能是 PPT 打动了大家,才让我有机会进入到后面的第二轮展示。
展望与期待
Q:你们的项目这次获得了无限创意奖,对这个项目未来有什么展望与期待?
周志强:希望能继续维护下去,也希望有兴趣的同学来搭把手。这里也有一点小遗憾,大家都欢乐了,但是木有人激动到想来一起来维护。
项目地址:https://github.com/fantastic-things/chaoscraft
Q:期待明年的 TiDB Hackathon 有哪些改进?
周志强:期望有更多的整活人来展示绝活,明年做的时候能找到更多的队友,因为去年和今年都是我跟女朋友 2 个人去做的,如果有更多的人,我们可能会做得更好一点。当然如果大家有什么好点子,也欢迎来找我,很开心和大家聊这个事情。
评论