2026 年 3 月记事板
31 日
真成月记了……看来记录天数真有可能再一次腰斩。但我短期内应该不会让它有空缺的,因此还是来写一些东西。
一样的,大概就是聊聊三月一些事情。不过我现在没啥记录灵感、思路的习惯了,之前的 Microsoft To Do 已经放弃了可能有一年了吧,感觉并不适配现在的流程。因此基本上就是脑袋空空打开记事板,然后翻翻近段时间的「日记」,想到哪写哪吧。
供应链攻击
首先就是非常近的事情,供应链攻击。就在上午的时候,NPM 著名库 Axios 被投毒,再次酝酿起了一次非常大的供应链攻击,所幸我依旧幸免于难。
这已经是近期第几次了?不算不到半年前的 Sha1 Hulud 2.0,就从近期开始算吧,应该可以从 Trivy 开始,距今也不到两周而已。
随即引发了一系列连锁反应,都是 Trivy 的余波,包括但不限于 正好一周前的 LiteLLM、四天前的 Telnyx 等。而前者 LiteLLM 是一个广泛使用的底层依赖,我尽管近期没怎么写 Python,依旧在系统中找到了更新日期是 3.13 的 1.82.1 缓存,而被攻击的版本是 3.24 的 1.82.7, 1.82.8,不免有点后背发凉。
这些虽然影响面不小,但一开始我倒也没觉得有啥。例如说 LiteLLM 被广泛依赖还是它被攻击后我才知道的,其他的更是闻所未闻。因此更让我脊背发凉的则是 6 天前的 Apifox 供应链攻击。好在我已经一年多没用 Apifox 了,大概去年软工二项目完成后就卸掉了。一开始还想着留着吧,毕竟挺好用的。但后面发现了它没用的时候也自启的服务,顿感厌恶,于是就卸掉了。虽然如此,在我自查的时候看到 Apifox 残留下来的文件时不免还是觉得后怕。
这次的 Axios 就不用多说了,我觉得写过 JS/TS 就没有不知道的。
月初的时候看过一篇文章 Package Managers Need to Cool Down | Andrew Nesbitt,当时也只是粗略了解了一下,感觉还不错,但没太重视。结果这个月后面的事情完美验证了这篇文章的说法,真的要重视起来供应链攻击了。
于是我上周六,也就是三天前,配置了一下我自己的 "Cooldown",设置为一周,配置了 uv, Bun 与 Dependabot,然后今天 Axios 事情一出后再配了 npm。
uv 参考文档,配置在 ~/.config/uv/uv.toml,配置为 exclude-newer:
1 2 3 4 | exclude-newer = "1 week" [pip] exclude-newer = "1 week" |
Bun 参考文档,配置在 ~/.bunfig.toml,配置为 minimumReleaseAge:
1 2 | [install] minimumReleaseAge = 604800 # 7 days in seconds |
npm 参考文档,配置在 ~/.npmrc,配置为 min-release-age。需要 npm v11.10.0+,即 2026.2.11 以后的版本:
min-release-age=7 |
Dependabot 参考文档,配置在 .github/dependabot.yml,配置为 cooldown,如我在 Focust 中进行的 feat(ci): add cooldown for dependabot for preventing most supply ch… · pilgrimlyieu/Focust@ab0baa2。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | diff --git a/.github/dependabot.yml b/.github/dependabot.yml index c965369..92329c7 100644 -- a/.github/dependabot.yml ++ b/.github/dependabot.yml @@ -9,6 +9,8 @@ updates: day: "monday" time: "09:00" timezone: "Asia/Shanghai" cooldown: default-days: 7 open-pull-requests-limit: 5 assignees: - "pilgrimlyieu" @@ -40,6 +42,8 @@ updates: day: "monday" time: "09:00" timezone: "Asia/Shanghai" cooldown: default-days: 7 open-pull-requests-limit: 5 assignees: - "pilgrimlyieu" @@ -72,6 +76,8 @@ updates: day: "monday" time: "09:00" timezone: "Asia/Shanghai" cooldown: default-days: 7 open-pull-requests-limit: 3 assignees: - "pilgrimlyieu" |
另外前些阵子 TypeScript 6.0 发布,是 3.23,而我是在 3.28 配置的,于是更新后触发的依赖更新正好没有 TypeScript 6.0。不过也无妨,明天依赖更新就能用上了。
对了,软件安全不止有供应链攻击。Axios 后不久我就了解到了 Vim 的 0-day 漏洞,影响 Vim v9.2.0272 以下所有版本,结果我 Scoop 更新了一下目前最高才到 v9.2.0271。不过写到这的时候已经可以了,只是我现在就打开着 gVim 在写还没办法更新。此外 WSL 还得重新构建一次,想想就有点麻烦。我看看后面能不能用别人构建好的吧。
POC (Proof Of Concept, 概念验证) 在 WSL 上成功复现。Neovim 刚发的 v0.12.0 也能触发,只是会报错不认识的选项。不过 vim -u NONE 似乎没啥反应?
然后在 Windows v9.2.0271 可以复现经过修改的 POC。
作者是用 Claude 发现的漏洞,提示词很简单,就是一句 "Somebody told me there is an RCE 0-day when you open a file. Find it.",然后不到十五分钟的交互就找到了……
然后有人下面回复说要用 Emacs 了,作者嗯哼,再给出来一个 Emacs 的 0-day。
哈哈,彻底疯狂。
AI
写到这自然就绕不开 AI 了,但我也不想写太多,因为近期有点 AI 焦虑。
焦虑的主要的来源有二,一个是现在,一个是未来。
「现在」就是,免费稳定使用顶尖模型的时代,大概已经过去了。
寒假期间 Gemini 学生资格给撤销了,从此我失去了稳定的使用顶尖对话大模型的资格。15 元用了五个月,不管怎么说还是感激谷歌。
然后前些日子里 Copilot 学生取消了对 Claude Sonnet 与 Opus 的访问权限,从此我失去了稳定的使用顶尖代码大模型的资格。
当然不是说我就用不了了,实际上还是能用一点的,只不过渠道、途径不再稳定,需要付出更多的时间精力去折腾,同时周期也很短,难长久。
付费吗?还真别说,失去了能稳定使用 Claude 的渠道后真戒断了,情绪低落了一阵子,真的冲动地开始研究了一下该怎么给 Claude 充钱。我没直接给 OpenAI,没直接给谷歌打过一分钱,但当时真的急得要给 Anthropic 这个御三家中我最讨厌的公司上供了。而最终阻止我的也不是说我负面的情绪占了上风,而是它封号太厉害了,我不敢尝试。
昨天看到一个视频 "哥,再给我点Token吧……就一点……我快不行了"#程序员 #Claude #AI成瘾 #Token #cursor_哔哩哔哩_bilibili,看开头还只是觉得好笑,看完了不禁感觉有点鸡皮疙瘩起来了。我确实已经完完全全离不开了,真的离不开了。
虽然说我最近也有手写代码,但再无从零开始手写了,都是 AI 生成后,我自己看一看,手动改一改。我不是在「写」,我是在「改」。甚至有一些没有维护打算的代码,则是跑一跑,能用就行了,代码更是看都不看。
当然这其实似乎也不算什么大事?毕竟没 AI 之前,我不会的写法不一样要查一下资料再写吗,不是一样写一句要切窗口数次吗?只是这会我感觉失去的更多。
现在的焦虑也引发了我对「未来」的焦虑。我是真心觉得我个人的努力没什么意义了,变革是如此剧烈,真是肉眼可见。我不知道我未来能干些什么,甚至脚下的路也已经开始崩塌了,一股无法抵挡的失重感冲击着我。
上周的形策课上,院长讲「要用确定应对不定」还是什么。我记得当时好像讲的是读研是确定,但我不太认同。
我在想,我想读研应该有很大一部分因素是在逃避现在,「我不相信现在的自己」。如果我现在就去找实习,也许凭借大一的努力,还有不算差的成绩,我可以拿到一份还可以的工作,先攒点积蓄,应对未来的大变局。
而现在我其实看不到什么出路,越往后的形势极有可能越差,甚至要不了三年,我所做的一切可能就都成了泡影。与其说我在「赌」未来的可能的机会,不如说我在逃避当下就做出选择,在给自己留更久的思考时间。
不过这也不是说我就自暴自弃了。我过去是一个不愿走在正道上的孩子,现在也只是在做自己喜欢的事情,不会将大部分精力投入到所谓「正确」的事情,也希望未来我依旧如此。
博文
还没开始写……
月中的时候完成了《光影之中成长》,在这之后我还有两篇寒假就应该写的内容,其中一篇就是年终总结。而我在拖了一周后决定换个顺序,先写私博那篇再写年终总结,然后就是再拖了一周,只写了一点点。
因此短期内还是见不到我的去年年终总结的。但我保证,真的保证,五月前一定会搞出来的。搞不出来我真可以自刎归天了。
说来也很无奈,大三下学期第一个月就过去了,而我依旧挣扎在寒假的任务中。按理来说该准备保研乱七八糟的东西了,但还是在逃避着,也无心去打理。
工具
这个月接触了三个新的工具,很有意思,在这里简单分享一下。
Zellij
首先是 Zellij,一个终端复用器。
Tmux 之名我还是听过的,作为忠实的「Rust 信徒」自然也听过 Zellij 之名,很早就安装过了。
不过其实我一直没怎么用过,多窗格常常用的也是 Windows Terminal 自己的,而多标签页就更不用说了。同时我也搞不太明白 Zellij 那个会话管理,感觉不太顺手。
但这个月实实在在学习,了解了一下一些功能与键位,有点真香了。在一个标签页内塞很多工作区确实很爽。主要是它也比 Windows Terminal 的方便很多,我快捷键都熟练了。
我最为推崇的大概还是堆叠窗口,这是真爽,也不用硬勉强切分窗口。
不用介绍太多,好用就完事了。
不过也有一些小问题,例如说如果重命名了窗格什么的,我 Vim 之类的窗口配置就不行了,对 Snippets 等有影响。一种解决方式是不重命名了,另一种就是重命名遵守一定规则,然后我再去加了新规则……
另外 Zellij 最新出的 v0.44.0 加了 Windows 支持,还没用,等稳定了再用。
Zed
然后是 Zed,又是 Rust……实话实说,三个其实都是 Rust。
月初 Zed 推出了学生福利,有一些优惠,于是顺手领了。
领了后就打算试试水吧,看看如何,毕竟其实蛮早就听说了 Zed 的名号,只是我感觉对我来说并不实用。
结果试了下有点惊艳,太流畅了吧。这个 Vim 模式感觉居然比 VS Code Neovim 还丝滑,真的有点爽了。
当天甚至小小配置了一点 Vim,更贴合我的习惯。
不过也就那周用了,后面也没咋用了。
因为 AI 额度太少了,我随便用一下就没了。然后后面 Copilot 出了限制,自然也没法 Zed 里面用 Copilot 高级模型了。
然后我后面又用 OpenCode 什么的,代码都不看,就命令行检查一下 diff,也用不到 Zed。近期还有写 Typst 什么的,Zed 也办不到。
因此 Zed 虽然确实很爽,但好像也真有点找不到定位。
GlazeWM
寒假的时候,学了 Vimium-C,很舒服。同期还了解到了 GlazeWM,只是后面有一些意外,一直没去学。然后开学后再拖了一阵子,学了。
学了后也有点欲罢不能了。但说实话 GlazeWM 一装上去 3.10.0 用不了真有点败好感。
GlazeWM 可以简单理解成窗口的 Zellij 吧,可以用键盘控制窗口。不过 Zellij 有一个 lock first 快捷键模式,我必须先按 Ctrl + G 才能按其他键解锁,这样避免了键位冲突,但 GlazeWM 办不到,Alt 键位冲突实在是太多了,导致我刚开始都打算放弃继续学了。
但后面灵机一动,我用 Win + Alt 键位可以吗?默认的 Alt 全改成 Win + Alt,结果不行。然后我真灰心丧气了,结果后面折腾了一下似乎是新版本的问题,回退到 3.9.1 就可以了。
因此预设了一些规则,例如说工作区 1 就是终端,2 是浏览器,3 是文件资源管理器,4 是代码编写等,确实不错,有点舒服。
当然其实也并不完美,有各种各样的问题。
例如说最为严重的大概是 QQ 微信,我放在了工作区 8,QQ 会莫名其妙多很多的空窗口,导致办不到轮换。类似的还有有时候关不掉,得结束进程。
还有就是有一些诡异的窗口会给默认配置创飞,例如说一个移动大量文件的资源管理器提示给放大,然后还看不到信息等,很蛋疼,而且 Spy 似乎也不好分辨。
很多窗口并不适合这种模式,写规则也很麻烦,我也懒得维护,将就用吧。我也不是一定要丢掉鼠标的人,可以容忍一定情况下使用鼠标。
此外有一些键比较方便,我就加了去了 Alt 版本,如 Win + Alt + NUM,切换工作区,可以不用 Win + NUM 切换,移动也是类似的,可以直接 Win + Shift + NUM 移动。不过这个有点冲突,我 OCRC 默认就是 Win + 1 与 Win + 2,现在切换成了 Win + F1 与 Win + F2。不过因为最近 OCR 用得少,还稍微有点没习惯过来。
其他暂时没动,因为一动,为了方便记忆就会动一片。此外这个也确实稍微有点影响,有时候按别的就忘了按 Alt。不过用到现在,其实还是蛮爽的。
就写这么多吧。