据说每一个酷酷的互联网公司都会举行编程马拉松(hackathon),当然,tubi 也不意外。
圣诞节前(19、20号)刚好是一个完美的时刻,毕竟流量高峰,我们要 code freeze,原则上不能上线任何新的功能,大家的精力可以放在一些更有趣的事情上面。经过 CTO 马老师(Marios)和 VPE Chang 的深思熟虑,我们的主题是 open-source hackathon !!! Chang 甚至说这是 “first OSS-focused hackathon anywhere in the tech community!”
旧金山的周二晚上(北京时间已经周三了,北京同事们的 open-source-a-thon 已经开始啦!),马老师深情地给大家讲述了他举办这次活动的原因。他曾经在 Sunnyvale 的微软工作六年,那还是微软完全拒绝开源社区的时代,任何工具都需要自己开发。而就在不远的 Google 还是一个非常小的创业公司,但是开发和扩张的速度却快的惊人。他经常与在 Google 的朋友交流,发现开源工具的使用是不可或缺的部分。
如今,开源工具对我们的日常开发太重要了,不仅各种核心的服务都是建立在开源产品之上,甚至 tubi 不少的员工都是开源届的大神,比如 Elixir 领域的 RESTful API Frameworkd maru 和 gRPC 的作者 Falood 和 Tony,再比如 Python 数据科学领域 Pandas 的核心作者 Chang She 。
正因为我们收益如此良多,是时候贡献回社区了,所以我们举行一次开源编程马拉松,一切项目都是开源项目,为开源社区做一些微小的贡献。
周三的下午,Chang 过来找我聊天,说他准备做一个方便我们的服务在本地跑的工具,但是因为 Scala 各种依赖冲突解决的太麻烦了,于是转头给 Pandas DataFrame 加了一个 Spark 里面很早就有的 explode function:[ENH] Add DataFrame method to explode a list-like column (GH #16538) by changhiskhan · Pull Request #24366 · pandas-dev/pandas
我说你这是作弊。
不过大佬就是大佬,大佬做什么都对。
旧金山周四的下午(北京已经周五早上啦),大家举行了热烈的项目分享活动。开源的项目涵盖各个方面,包括 iPhone Core ML 的使用,Android Player 的优化,Redis Cluster UI,Envoy UI, Elixir Tools, Scala Akka QA 等各个方面。Chang 还详尽地解释了为什么一个 PR 里面核心逻辑只有3行,但是整体的改动要有196行,还包含了大量的测试、文档、防错判断等等。让大家能够快速方便地使用开源项目并不是一件容易的事情啊。
好奇的朋友可能会问了,那我做了个啥?本来打算把我们用 Spark 已经实现一些常见的假设检验方法上传开源一下。原因是 Scala 领域里面的常见库比如 Breeze 都不是分布式的,在我们一些应用场景里面,比如若个实验都有 billion numbers 的情况下,算 P Value 容易出现内存的问题,我们就用 Spark 实现了一些。然而因为活动的中途有些别的事情,开了个 repo,活动就结束了,所以我其实啥也没做:https://github.com/chenran818/Spark-Hypothesis-Testing
各位同学要是领悟到了这个项目的精神,不如直接 contribute,一步成为 core contributor,岂不美哉。
或许你跟我们一样如此热爱开源技术,来 tubi 看一看也好。