写在 2025 年即将结束的时候
序言
又到年尾,最近在我的 rss 订阅流中拜读到很多作者的年度总结了,照例,我也应该抽点时间来堆点豆腐块,总结下 2025 年的状态。
往年的年度总结都是写完之后发布在 QQ 空间的日志里面,一般也要设置好权限,避免过分暴露在有 QQ 好友的人们之中,虽说现在 QQ 好友列表里面也没几个活跃的人了。
QQ 空间日志的编辑体验不是很好,并且好友莫名其妙的审核,前两年写的总结居然有违规,并且还是发布之后很久,很偶然的状态下才发现,好在 QQ 空间并没有直接给我删除,我还是能备份下。
今天下午划水的时候看了下冯若航发布在公众号的年度总结,津津有味的看完了,看到一半才惊讶于冯文笔的流畅自然。
去年的年度总结的时候也提到了这点,那就是自己的文笔已经退步到下笔写不出人话来了。料想原因,无非是因为 IT 者的通病,过于熟悉和计算机对话那一套模式,永远是 1 是 1,2 是 2,写点豆腐块的东西都像个学究一样扣字眼。
以后还是要多写点内容,提高下自己的文笔。
Vibe Coding
205 年是 Vibe coding 流行的大年,从 claude code 横空出世开始,Vibe coding 从一个概念,逐渐走进千家万户,从一个玩具变成了真正能干活的家伙事。
最近几天看到的很多人的年度总结,都有相当比例的篇幅在 Vibe Coding,我也不能免俗,毕竟我这一年也算是重度沉浸在 Vibe Coding 中,学着从零开始当一个 LLMs 监工。
实在讲,对于我这个没有编程能力,并且也不以编程作为我的谋生之道的人来说,LLMs 带来的代码通胀,或者是说 coding 平权来说,llms 是极大的扩展了我的能力边界。当我有一个需要编程实现的创意或者需求时,并不需要去央求朋友来帮我实现。根据过往的经验来说,我的朋友们往往忙于打游戏,鲜少能时间和精力来帮我 coding。
而现在,我在 LLMs 的加持下,结合已有的一些关于编程语言和编译的知识,相对于那些熟练掌握编程的人来说,无非是堆加倍时间和精力,在学中做的同时在做中学,总能鼓捣出一个能正常运行的成品来。
今年从春节之后开始,我一直在深度地 vibe coding。二开了一些 burp 插件,实话说,二开的效果都不是特别满意,因为我没什么对 burp 的经验,不知道那种情况才是最好的,二是在没有明确好坏的审美的情况下,还有一种类似精神洁癖的偏执,总希望鼓捣到最好的情况,虽然这些二开的插件已经达到了我所认为的可用的状态了,后面应该还是要花相当一部分时间和精力去完善。
也把去年在公司内网环境下折腾 codeql 的一些经验糅合成一个 cli 小工具 codeql-scanner,用来解决在内网环境下,针对 600+ 规模的 java 项目进行建库查询的重复性工作。
月初的时候,我看了下 codeql- scanner 提交记录,这个项目知道今年,已经持续维护了 8 个月,虽然中间因为 token 限制、二开 burp 插件的时间精力所限,还有一些其他原因导致的心灰意冷而搁置了一段时间。
当时看到这个项目持续了 8 个月的时候,我有点意外,我居然在不知不觉中居然持续维护了这么久。其实这个项目,在维护到第二个月的时候,就基本上能正常工作了。但在维护的过程中,补充了一些细节。
这个月在 Google Antigravity 的加持下,顺利对 codeql- scanner 这个项目进行了几次大规模的重构,优化性能,打磨细节,优化屎山代码,使我的强迫症得到了极大的缓解。
理论上来说,claude code 在几个月之前就应该足够支撑我完成这种规模的重构计划,但受限于公益站 API 的稳定性欠佳,尝试了好几次都未能如愿。
这一年 Vibe coding 的折腾过程 ,从 cursor、到 kiro、Gemini cli、codex、Claude code,几乎是折腾了个遍,从体验来说,还是 Claude code 用得最顺手,也一直在跟进 Claude code 的新特性,coding 的效果和体验也一直是在稳定的提高。
也一直在坚持着用 kiro,也算是见证着 kiro 在半年内长足进步。
到用到 Google Antigravity 之后,才发现体验上的显著提升,前两天还特意拼车付费了一把算是解决 Google Antigravity 免费计划限额导致的工作流中断。
果然,天底下就没有花钱的不是。
Vibe Coding 之 Codeql-Scanner
几年前曾经接触过 codeql,但是限于自己的基础极差,当时的工作也没有充足的研究时间,一直未能熟悉起来。
log4j 横空出世的时候就有小道消息称这个漏洞是通过 codeql 发现的,后面几年也关注过相关的资料。
并且在学习 GitHub action 的时候发现,GitHub 官方也通过 GitHub action 为托管在 GitHub 的项目提供了 codeql 的广泛支持,所以可以确定,在 2025 年的当下,codeql 在经过几年的大规模实践的前提下,其查询的准确度和精确度均已经达到一个很高的水平了。
我在内部项目的测试中也可以确认这一点,在直接使用官方默认规则的情况下,一些常规漏洞的检出率已经很不错。
去年在公司内网环境下,用公司代码仓库的项目源码来实践了 codeql 的使用,踩了很多坑,补了很多课,到现在算是能比较熟练的使用 codeql 对 java 类项目进行查库和查询了。
公司代码仓库里面有很多维护很多年的项目,极具多样性。
对于学习来说,好处是足够丰富,缺点是要踩的坑也贼 tm 多。
在内网环境下,光不同项目的版本兼容问题,我就花费很多时间在 codeql 数据的构建过程中,在这个过程中,我倒是调试出来了一些相对普适的构建参数列表。
另外,codeql 数据库构建成功之后,对于查询结果,虽然基于官方 codeql vs 插件,已经可以很方便地对照源码,按照数据流进行分析和确认。
但问题在于,项目很多,我这人又懒,每个项目的 SARIF 结果中每个条目都需要这样分析和确认,工作量大,效率也低。
官方的 codeql vs 插件性能优化很差,用起来很卡,用户体验很差,也不能直接导入 codeql cli 的扫描结果使用,而 SARIF viewer 插件虽然可以导入 SARIF 格式的查询结果并对照源码进行数据流追踪和分析,但是使用体验又和官方 codeql vs 插件有差距,效率也很低。
在源代码项目很多的情况下,我就懒得一个记录一个记录这样去确认了,开始想着要写个脚本或者工具来完成。
或许是出于精神洁癖类的,我放弃了 python 这种明显更简单的方案,通过 Claude 进行了简单的技术选型的情况下,入了 rust 这个天坑,写了一个暂时命名为 codeql-scanner 的小工具来解决这个问题。
在内网折腾 codeql 的时候,我发现 SARIF 格式的查询结果就是一个类似于源代码指针的索引文件,提供了数据流顺序,及其对应的源代码的行列位置。
当时我就设想,应该可以基于 SARIF 格式丰富的上下文,引入 llm 来进行预分析,但我没办法在内网环境下使用任何 llm 接口,所以这个设想一直搁置,没有加入到 codeql-sacnner 中。
最近两个月,读到 Vulnhalla: Picking the true vulnerabilities from the CodeQL haystack 时,看到博客中介绍的,通过结合 LLM 推理和静态分析来发现漏洞的方法,颇有一种殊途同归的惊喜感。
正好有 kiro 和 Google Antigravity 在手,于是为 codeql-scanner 加上了心心念念的 LLMs 分析 codeql 查询结构的功能,参考了一些提示词经验,调试了几天,测试效果还不错。
在 codeql-scanner 可以正常运行的当下,我觉得写这玩意的投入产出极不成正比,如果让我重新选择,我一定不写这个劳神费力的劳什子项目。
碎碎念
上个月,看了 PiEgg 在少数派上发布的《写在 PicGo 即将 8 周年之际》,这是一篇很长的文章,我没有全部读完,小结后面的内容直接略过了。
看到 piEgg 这篇很长的碎碎念中关于 MoeGo 的工作经历时,感觉有点触动。
也是在上个月,一个朋友生日由于工作日的原因,提前约了一次饭,席间互相吐槽了彼此的工作。
闲谈的时候,才意识到我对于现在工作的不满究竟来源何处,不是不满于较小幅度的调薪,而是不满于工作的价值没有得到足够的认可和尊重。
我当时举了一些例子向我的朋友说明,我的工作价值是如何不被认可和重视。
这可能是一种矫情,但我确实很难接受,我相当一部分工作由于个人经历和性格所附带的前瞻性,好几次都没能得到正向的反馈,但总是经过一段时间,通过一些第三方的行动和影响,以一种回旋镖的方式侧证我当时工作的正确性。
这类事情最尴尬之处在于,这个间隔相对较久,久到我的同事们很难将当时遇到的事件与我之前的工作相关联,从而认识到我工作的价值。
几年职场浮沉下来,而今的我,早已没有了誓要争个对错高低的偏执与热血,遇到这种情况,我只能缄默。
因为共事愈久,愈知道这种事情说了没用,因为他们不大能听进去这些建议或意见,即便他们能听进去,这些事情往往很难落地,索性不说了,彼此都能落个清净。
不过与他们同事这么久,也开始总结出一些暂时用不大上的经验:
-
规则和标准一定要明确,随心所欲和黑盒,固然有法家【刑不可知,则威不可测】有好处,也会因着这点好处沾了对应的坏处;
-
不要习惯性反驳和反问,这会让对方丧失和你继续沟通的欲望
入行几年之后,愈发了解自己在这个行业间的位置。
说实话,我在这个行业并不是一个很有优势的人,既没天赋,也不勤奋,也缺乏热忱。
以至于,我几乎从不在朋友圈发和网络安全相关的内容,虽然说这一点,有减少不必要的麻烦,即避免被溯源和被对这个行业不熟悉但有滤镜的人无厘头地打扰。
说到底,更多的是由于我对于这个行业不够热爱。
上个礼拜从小众软件突然知悉,《电脑爱好者》的微信公众号注销了,同时也附有《电脑爱好者》一张很模糊的,登报的注销公告截图。
《电脑爱好者》注销这事,出乎意料之外,也在情理之中。
说到我和《电脑爱好者》的渊源还得是十来年前,我逆反而不甘上进的三年的高中时代。
然后忘了是高几有阅览课,可以去阅览室读报刊,我当时才接触到《电脑爱好者》这本刊物,当时的印象是这本刊很厚,内容也比我常看的《电脑报》要专业。
当时也想过去校门口的文具店买,似乎没有,于是就只能在上阅读课的时候,装模作样看其他报刊,同时在桌子底下,偷偷把《电脑爱好者》上感兴趣的那几页撕下来,等下课带回教室后用胶带粘起来。
像有同学在当时发现我的这个不甚光彩的事情,没声张。
管理阅览室报刊的老师,不知是没认真还是压根儿就懒得查这事,也没什么动静。
后面当我习惯在公众号上阅读资讯之后,关注上《电脑爱好者》的公众号之后,就定期看推送的推文了,从此再也没纠结过要去买实体刊。
从某种意义上来说,《电脑爱好者》和《电脑报》都是我对于 IT 的启蒙刊物,也是我现在从事 IT 行业的引子。
前两年我取消了对《电脑爱好者》公众号的关注,主要是经历过一段时间的停更之后,新推送推文排版变得极丑,内容似乎也有炒冷饭之嫌,索性也就直接取关了。
也差不多是同一个时间段吧,还是在学校时候偶然通过搜索引擎发现的《电脑爱好者》官网 RSS 订阅地址也失效了,我之后也没在 rss 信息流中看到过《电脑爱好者》的文章更新了,从此,《电脑爱好者》也淡出了我的视野。
再回首,已是往事如风。
财务
今年花钱也比较多,虽然没有大规模的购物,但总有一些意料之外的花销。以后的预算规划还是要优化下,把一些之前没考虑到的随礼这些内容考虑进去。
攒钱的目标算是基本上达到了,春节那部份的预算估计要等元旦到春节到这一个多月紧紧裤腰带了。
预计明年攒钱的预期和目标要下调相当一部分了,努力达到下一个整数吧。
今年我还是没直接买股票,一直在通过基金在交易,我的交易主要分成三部分,且慢的跟投、有知有行在雪球的投顾计划,还有自己买的一些各类基金。
所有账户总体上来说,还是盈利的。还有些基金是浮亏的,估计还要等一段时间才能出坑吧。
今年基本上已经把除投顾计划之后的其他定投全部停掉了,还趁着 9 月那波行情,清仓了一些持仓收益达到 15% 的基金,
在有知有行上线基金交易功能之后,我也开始调整持仓,把且慢里面一半的资金挪到了过去。但可惜,有知有行到现在还没有上线建仓的功能,虽然我已经通过 deepseek 拟定好了一个投顾计划,但我又懒得去折腾手动建仓,就买了一些基金扔在那里了,最开始的一周,每周基金都红彤彤的,现在又变化着市场飘绿了,果然 A 股就是垃圾时间很多。
作为一个很懒的苟佬,我倒是不缺耐心。
月初的时候,终于没拖延,单枪匹马的去了趟香港。解决了中银香港、汇丰和众安的开户,算是解决了萦绕在心间一年多的一桩心事。
尝试性地通过中行购汇,然后转账了一点点资金过去,步骤着实繁琐,并且限额也很让人上火。
月中的时候,听到消息称,26 年 1 月起,汇丰要开始收取管理费的时候,还有点庆幸,我总算是赶上了窗口期。
今天,通过 ZA Bank 的「最股励」活动,成功兑换了 APPLE 的碎股,通过活动兑换的份额很小,但不管怎么说,从今天起,我也算是苹果的股东了 hhhhh,算是我开始美股的开始吧。
虽然开户这事已经折腾好了,但后续这几个港户如何发挥作用,还需要点时间去学习和折腾。
信息流
今年照例还是没有使用抖音,我也不知道为什么,我似乎在下意识的回避使用字节的产品。
哎,我这人总有点奇奇怪怪的习惯和毛病。
我一直在坚持着使用 RSS 订阅信息的习惯。我习惯通过 inoreader 订阅 RSS 源。今年闲不住,有在这方面折腾起来了。
在 inoreader 的基础上还是折腾了一堆订阅客户端,folo、freshRSS 、NetNewsWire。
folo 毛病太多了,网页版一直在各种改版,交互的细节一直变动,年中那个时候的基于 AI 的中英文对照倒是让我眼前一亮,无论是翻译的效果还是前端样式都让人惊艳,可惜后面改版了。
我其实可以考虑为这个基于 AI 的中英文对照的功能付费,但我不能接受过高的溢价,同时 folo 过于频繁的版本迭代,倒退的交互体验,还是得作罢。
nas 上跑的 freshRSS 还得折腾内网穿透,并且体验相比 inoreader 也没什么优势。
NetNewsWire 的阅读效果很不错,尤其是对比同一个订阅源在 reeder 上的阅读体验来说,令人惊喜。
后面还是抽时间精力来整理下这些订阅流,还是主要用 inoreader,主要订阅一些需要深度阅读的内容,因为 macOS 和 iPhone 都可以通过 reeder 来阅读,多端同步的体验很好。folo 就发挥 rsshub 的生态优势,订阅微博、论坛和 b 站这些社交社区动态。NetNewsWire 订阅一些日报、周报类型的订阅源。
今年也把这个博客跑起来了,把之前整理好的一些文档贴成博客发布了。
后面有时间还是要继续弄这个,今年在 vibe coding 上耗费了太多时间精力,对于知识输出,实在是无暇他顾。