最近突然开始逛开源社区,看 GitHub 大佬用英文聊天也挺好玩的。

是什么让我突然有这个兴趣的呢?让我想一想。第一个是 Hacker Newsletter (opens new window)。最初是在 B 站上看到有人在以视频的形式做每期 Hacker Newsletter 的概览,我发现这个东西讲的是一些非常前沿的一些偏开发的科技资讯(偏硬件的可以关注 LinusTechTips,偏开发的我还是第一次接触),挺有意思,但是 UP 主她是每次从 HN 的 50 条左右的新闻挑 10 条出来讲,而且往往会挑她比较熟悉的领域,简单介绍十几秒,并没有太深入内容。于是我就自己订阅了 HN 的邮件列表。看了几周,发现里面的一些新闻确实很有意思,比如最近看到一个用 Rust 的写的、和 VS Code 很像的一个开源的编辑器 (opens new window);还有一个印象比较深的是一个 Python 写的 REST API 后端叫 Fast API。因为之前用过 Django 和 Flask,所以好奇这是个什么,花了几个小时读了一遍它的文档,发现相当于是一个 Web 后端 + ORM + Open API,处于 Django 和 Flask 的中间,比 Flask 多了 ORM 和 REST API;比 Django 少了邮件、SQL 定义管理等,比 Django 更轻量级。

扯远了,说回 Hacker Newsletters。它除了这些以外,还有一些就是非科技方面的咨询,比如说有一次讲宜家他为什么赚钱 (HN #593) (opens new window)。因为我特别喜欢逛宜家,虽然它的东西在中国的物价也是有点小贵,但它的店装修风格很好,周末经常和女朋友坐地铁跑遍大半个成都去逛宜家。这篇文章就讲宜家怎么赚钱,为什么一定要有餐饮,而且餐饮(在欧美的物价里)也不贵,因为吃饱了才更能勾住顾客的心,而且餐饮不贵会让人感觉它的家具也非常实惠。所以甚至会调查周围几公里的肉丸价格,保证宜家的价格是周围最低的(国内似乎没有做到这一点 hhhh)。所以 HN 的非科技资源也是非常有意思的,不过里面的大部分新闻是比较偏欧美化,有些文化和一些梗,国人可能不太听得懂,比如最近一期一个讲银行服务差什么的,那个我确实没太看懂。

还有一个收获,就是 Hacker Newsletters 它是全英文的,这个的话其实看着会比较吃力。虽然我英语四六级考的也还行,但是在中文和英文的文档里,肯定还是果断选中文,读英文多少会有一点吃力,英文的文章一般一打开就 Chrome 翻译成中文。不过如果看的文章是自己比较熟悉的领域的话,里面的概念大部分都知道,直接看英文的压力会没那么大。所以这也是在练习增加读英文文章和文档的速度,这个对开源会很有帮助。

第二个事情是在迁移一个老的 Django 3 的项目。因为现在 Django 已经到 4 了,两个版本不兼容,所以继续使用裸 pip 的话,安装一个版本的时候必须卸载掉另外一个。这就逼我去接触一下 Python 的虚拟环境,之前有听说过 venv、virtualenv、Pipenv 等一些概念,但是因为一直没有需求就没管。了解了一圈,发现现在 Pipenv 也不是非常好的选择,一个叫 Poetry 的把它比下去了。因为是自己的玩具项目,可以尝试比较新的工具,就试了一下,感觉确实很不错,Intellij Idea 官方也有支持。

在接触到这个 Poetry 的时候,因为这个东西比较新,所以的话网上的资源比如 Stack Overflow 问答几乎没有。所以就只能去翻官方文档、看别人的博客。看到一个大佬讲 Poetry 哪里比 Pipenv 好 (opens new window),因为我有个习惯,看到比较好的、又比较对胃口的技术博客,就会订阅一个 RSS。订阅完以后翻了他的另外几篇博客,发现质量都不错,于是平时没事摸鱼、出来吃饭的时候看一看他的博客,花了十几天把他博客里的文章都翻了一遍。然后 Frost Ming 这位大佬他的一个博客还是学到了不少,还看到他也是常年使用 Windows 系统的一个大佬,还向 pip 添加了 PowerShell 补全的代码。Frost Ming 也会把他的博客当做一个日记一样,会把科技、技术以外的一些近况和心得也写在上面,比如,他对北京的一些看法,还有鼓励大家平时可以多发点朋友圈,这样让很久不联系你的朋友知道你的近况,另外如果他们想找你聊天的话,也有这么一个入口,不用太尴尬。总之还是非常有感悟的吧。

大佬向 pip 添加 PowerShell 代码补全的 PR (opens new window) 是 2020 年发的,可能 pypa 的 PR 实在太多了或者其它什么原因,当我 2022 年看到的时候,发现依旧是 Open 的,还没被合并到 main。我也非常期待这个 PR 后续怎么发展,所以就点了个 subscribe。没想到,过了几天有个人发了一句:

Any updates on this feature request?

然后就有 maintainers 出来做 Code Review 了,然后说“嗯,虽然我不懂 PowerShell 的自动补全,但是看起来还可以”,于是这个 PR 很快就被合并到了主分支里面。所以我也可以说算是一个见证者吧,刚听说 Frost Ming 这个大佬,几天之后就见证了这个 PR 被合并进分支,开始感觉开源社区蛮有意思的。

pypa/pip#9025

第三个事情,上上篇博客也说到了,就是把 multirepo 项目迁移到了 pmpm 的 monorepo 架构。pnpm 的 monorepo 讨论的人还不少,但 semantic-release + pnpm 讨论的人就真的少了,这么久都没有官方插件放出来。Stack Overflow 啥的也不用想了,所以只能翻 GitHub Issues 了。前两天翻了非常多的 issues,然后也看到非常多非常有意思的讨论。比如有人发了 issue (lerna/lerna#1818 (opens new window)),问 lerna 和 pmpm 的这两个东西能不能一起用,然后 @ 两边作者出来讨论。刚开始两边讨论非常积极,pnpm 作者问 lerna 作者有没有什么要帮忙的,lerna 作者体验了一下 pnpm workspace 觉得非常顺滑,也是非常积极的态度。不过后来有人在 issues 里推荐 npm/yarn + lerna 直接转到 pnpm workspace,不需要再用 lerna 了(就是在 lerna issues 下面抢用户)。但是他说话也非常有艺术,不是说 lerna 不行,而是说 lerna 靠自己的力量开辟了整个 node 包管理的一个新的时代 (opens new window)(也就是 monorepo 时代),而 pmpm 也是基于 lerna 的概念拓展,才有了现在的 pnpm workspace。

这个 Issue 下还发生了别的有意思的事情,刚开始 issuer @ 两位作者过来的时候,lerna 作者说最近没时间,但是欢迎大家开 PR,并给 issue 贴了一个 help wanted 标签。之后三个月没有人讨论,于是 bot 过来标记这个 issue 为 slate(陈旧的)。lerna 作者出来把 bot 的评论删了,说了一句“这个机器人出问题了,这不是 slate issue”。两个月以后 bot 又来了,又标记为 slate。然后 lerna 作者过来说了一句:

This is your last warning, stale bot.

这句话可以理解成“这是你(对 issue 的)最后一次警告”,也可以理解成“这是(我对)你的最后一次警告”。然后 bot 就把 slate 标签摘掉了。还有 50 个人回复了一个很好笑的一个表情。

lerna/lerna#1818

总之开源社区有些时候也挺好玩的,没事的时候刷一刷,然后而且大部分聊的我也看得懂,这个就比 HN 的长篇文章的语言更加通俗,毕竟 issues 也就是在讨论和聊天嘛。所以比较闲的时候查资料也会顺便看看某些 issues,也会看情况点一个订阅,有更新的话会有邮件通知,这也是一种刚开始参与开源社区的一种行为吧,开源社区就像是一群有技术的有志青年创造的,一个一起聊天、然后还非常好玩的一个环境。

所以最近为什么显得特别闲,连水了三篇博客呢?其实最近说实话挺忙的,虽然现在 deadlines 还没到,但是 5 月初就要交毕业论文的初稿了。今年毕业赶上了成都市这边要举办全国大学生运动会,毕业年级要提前毕业,然后非毕业年级要提前期末考试,这样搞得我们大家都处于一个比较忙的状态。但是为什么我现在还在如此高强度的水博客呢,算是我的一个好习惯或者坏习惯吧,可能当我想做一个事情的时候,就会忍不住地想做,甚至可能稍微耽误自己的其他事情。比如就像我大一期末复习的时候,都期末了,别人在刷题,而我在搭博客hhhhhh。这种热爱,友好也有坏吧。不过至少现在还好,Work Life Balance 的工作之余有很多时间做自己想做的事情,而且本身也是够如愿以偿地做一个非常技术的工作。你让我去干公务员什么的,我可真干不好,可能天天下班写代码,上班想着写代码的,那多没意思啊,

今天就聊这么多吧。这个闲聊板块也单纯是用来扯淡的,整个闲聊的思路也比较乱,因为是想到什么说什么。本来是打算放在日记里面,但是这篇偏技术一点,放出来和大家聊聊也无妨(虽然现可能也没什么人看就是了),希望能图各位一乐。