何延龙:一个软硬兼修的工程师 | nStar 专访

何延龙:一个软硬兼修的工程师 | nStar 专访

自 19 年开源到现在,Nebula Graph 社区出现了一群有想法、有实力的用户,将他们的优雅留在 Nebula Graph 的代码中,他们是 nStar,是 Nebula 社区不可或缺的一部分。
—— Nebula 社区

上一期的《我的传统就是我的血:最终我还是选择成为一个开发者|nStar 专访》中我们认识一个社区中颇有意思的用户,他经历了多种职业最后和大家一起成为了一名工程师。这种经历“可遇而不可求”,而本次专访的嘉宾,这是大家日常工作中会遇到的一类同事。

他们除了会写优雅的代码,还玩的一手好硬件,树莓派的玩法信手拈来,键盘开发键位改造也不在话下,加上软件他们甚至能造个“迷你”钢铁侠。何延龙便是软硬兼修的工程师一员,除了这个身份,他也是一名开源爱好者,Apache Committer,来看下本期 nStar 专访的那颗星。

认识下他

int main() {
 // 何延龙:一个软硬兼修的工程师
 string name = "何延龙";
 string profile = "Apache SkyWalking Committer 和 PHP 官方 PECL 开发组成员";
 string githubLink = "https://github.com/heyanlong";
 string blogLink = "https://yanlong.me/";
}

清蒸(下面简称:Q):虽然有名片,还是和 Nebula 社区的小伙伴来介绍下自己。

何延龙(下面简称:H):大家好,我是何延龙,目前就职于一家北京的人工智能公司,在公司负责一些后端开发工作,在工作之余也会参与一些开源项目的开发。作为 Apache SkyWalking Committer 和 PHP 官方 PECL 开发组成员,本身也会负责 SkyWalking 在 PHP 生态的支持和推广。

之前在朋友圈了解到 Nebula Graph 的许可证协议由 SSPL 向 Apache 2.0 迁移,为了使现在和以后 Nebula Graph 的每一份源代码都符合 Apache 2.0 协议,向 Nebula 社区提交了协议检查 CI,从而成为了众多 Nebula Graph 贡献者的一员。

Q:看样子延龙是一个对知识产权以及对协议很了解的人,:thinking: 你觉得协议在整个开源项目中是怎么样的角色存在呢?

H:从定义上来说:开源协议规定了使用者的权利和责任,规定了可以做什么,不可以做什么。其实个人觉得开源协议最大作用是保护了自己软件的权益

硬件玩家

Q:看过延龙的博客,你之前动手自编程改造过键盘,:thinking: 除了键盘你还玩过哪些硬件呢?

H其实每一位工程师都是一位合格的硬件玩家,他们写的软件运行在各式各样数以亿计的设备上,并驱动着这个世界

键盘开发是很早之前的事情,当时我想选购一款 60% 键位、蓝牙连接和 USB Type-C 接口并且原生支持 Mac 的键盘,但是竟然找不到一款符合要求的。所以就有了键盘开发这件事,不过目前已经买到了这样的产品,自己开发的也就闲置了。

除了键盘还玩过 ESP32 和 Raspberry Pi Pico,使用 ESP32 接入 Apple HomeKit 控制灯泡开关,而 Raspberry Pi Pico 则是用在参加了公司的 Hackathon 上。

Q:有什么可以推荐给新手入门的小玩具吗?

H:推荐 Raspberry Pi Pico,它很便宜并且具备丰富的接口,只需 20 元就可以低成本体验。

Q:之前你参加公司的 Hackathon 做了一个软件结合的项目,可以详细来讲讲吗?

H:哈哈哈,虽然没得奖但是不影响它是一个很酷的项目。

我们设计了一款智慧路灯,通过 AI 模型分析 USB 迷你摄像头的视频数据来给 Raspberry Pi Pico 下发指令,Raspberry Pi Pico 根据指令控制路灯关闭、开启、微光等状态。最终效果是当一辆车经过时,车辆前后的路灯会从微光状态切换到强光状态,以及白天突然天黑或者出现团雾时路灯会自动开启。

软件工程师

Q:纵观你的博文,你似乎是一个学以致用的人:为了解决多人合照总有人闭眼问题,你用计算机视觉开发了计算 mix-face,可以谈下你一般是怎么学新技术的吗?”

H:一般我会通过搜索引擎来了解它能做什么,能提供什么的功能,判断是否是我所需要的。初步了解之后我会看一下提供的例子并尝试运行例子。这些前置工作完成后结合实际项目开始使用。

Q:延龙这次参加 Nebula Hackathon 的项目是 nebula-php 和 nebula-net,为什么想要做这个呢?”

H:主要还是为了完善 Nebula 生态,其实当时还想做 nebula-node,但是看到已经有这个仓库,就跳过了。

除了 Nebula Hackathon 之外,其实我还参加过几次公司内部的活动和微软的 Azure Hackathon。个人本身很喜欢 Hackathon 这种活动形式,在短时间内完成一个项目本身就非常棒。除了可以验证自己的技术储备,还可以认识很多热爱技术的人。

开源这件事

Q:延龙还是个 Apache Committer,可以简单介绍下你是如何成为一名 Apache Committer 的吗?”

H:当时公司的系统是 Java 和 PHP 混合,相互之间有调用。我们在 Java 系统上使用了一段时间 SkyWalking 后发现非常好用,但是 Java 和 PHP 之间的调用关系不能体现出来。

随后我发起了 SkyWalking-PHP 项目并持续贡献,大概有一年时间后得到 SkyWalking PMC 的认可并成为 Apache Committer。

Q:还记得你第一次提的 pr 吗?”

H:刚刚去 GitHub 挖了下坟,第一次被合并的 PR 是在 2018 年提交的,为 SkyWalking 项目提交了全新的 PHP 探针。

Q:安利 2 款你觉得好用、提升生产力的开源工具吧。”

H:iTerm(链接:https://github.com/gnachman/iTerm2)、ohmyzsh(链接:https://github.com/ohmyzsh/ohmyzsh)。

iTerm + ohmyzsh = 生产力,有什么比语法高亮终端更具有生产力的工具呢?


这是一个从 https://nebula-graph.com.cn/posts/nebula-community-nstar-interview-heyanlong/ 下的原始话题分离的讨论话题