写博客的一周年

不知不觉中,我建立自己的博客已经有一年了。想在这里分享一些感悟。

我的大脑记忆像是一个随时丢失的网状数据库。丢失知识是常态,但因为知识之间有像网一样的连接,我们常能根据临近知识点推导或恢复出原本的内容。分布式存储里我们用奇偶校验构建容错,人脑里可能更像是一张知识网。虽然我们没有RAID,但我们有类比和抽象的能力。

当然,有一个强大的大脑加上不断的练习,可以构建一个不错的知识库。但有没有什么方式,可以用一个“普通大脑”也能拥有一个清晰的、不断积累的数据库?我认为博客是一个很好的答案。为了让他人,或者半年后的自己看懂这个 bug 是怎么发生的,博客起到了“总结+卸载”的作用。这也很像费曼学习法中说的,“最好的理解是教会别人”。

2024年6月我开始动手做博客,动机有两个:一是我想完整体验博客的搭建过程,最好能掌控网站中每一行代码;二是我想要一本错题本,记录日志、bug、知识点等各种片段。为了这两个目标,我没有选择知乎、博客园等平台,也没有使用 GitHub Pages,而是追求一套部署灵活、写作简单的系统。

在2024年8月,我确定了使用云厂商 PaaS + WordPress 的方案。那之前,我买了云平台(6月)、注册了域名和 SSL(7月),也经历了好几次系统崩溃。到了8月初,我初步完善了备份和容灾机制。

8月23日,我尝试上传我的CPP Project文章。这是我的第一篇图片密集型博客,由于带宽限制,直接把图片放在博客服务器会导致严重卡顿。于是我做了第一次架构升级 —— 将图片全部迁移到图床上,文章加载完毕后由用户端从图床取图。

9月10日,我完成了5个 CPP 项目的上传,总共6万字177 页,并对其中很多早期错误进行了修正,加入了拓展知识点。在过程中我也逐步完善了“本地 Obsidian 写作 + 远程 Markdown 发布”的工作流。

10月是博客对我改变最大的一个月。当时我在计网课上遇到了 Wireshark 无法抓包的问题,在 OS 课上也对 OSTEP 的一张图产生了疑问。这两个 bug 我钻得比较深:前者让我读了很多 NPCap 的文档和源码,最终在一节实验课上,我花了 30 分钟,从 NPCap 讲到 eBPF 给唐姐姐听;后者我查了不少手册,最后虽然总结得还比较混乱,但张老师仍愿意让我在实验课上分享。那是我第一次强烈意识到:解决 bug 是一回事,把它写成一篇“逻辑通顺”的博客,是另一种更深的挑战。

11月,我发现博客在海外访问时速度极慢,于是开始第二次架构升级。我首先通过 DNS 将海外流量引导到监控服务器,收集分析流量模式,结果发现新加坡和美国的访问量最多。结合几家云厂商的情况,我最后选择上 Amazon 的 CDN。这段优化其实从11月开始,流量收集持续了4个月。

也是从11月中旬起,SC24 召开。我启动了“读完 SC24 全部90篇论文”的计划。动机很简单,我意识到自己过去读论文总是只围绕研究方向,看得很深但视角窄,于是我想试试看,能不能对整个 HPC 领域建立一种大图景。这项计划持续了6个月,让我摸清了不同子领域的研究趋势,也训练了快速抓住论文 idea、判断论文质量的能力。

12月期末,我整理了 OS 的复习导图并上传到博客。到了1月,博客开始出现一些前端和 PHP 逻辑的 bug,我也花时间改了不少代码。2月,研究进展遇到性能瓶颈,我被迫开始读 OpenMP 在 LLVM 下的实现机制。那段阅读让我真正理解了当前系统中存在的瓶颈,也为接下来的研究打下了基础。

3月,我启动了“经典论文阅读”专栏。经典论文让人沉下来思考,很多经验其实都埋在这些文章里。6月,因为工作方向的变化,我又新开了一个推理引擎专栏,写了一些系统拆解和技术解读。

回头看,好像这一年也没有做出什么惊天动地的大事。但如果没有博客,我很可能会因为“更重要的事”而跳过很多深挖、总结、思考。正是有了博客这个出口,我留下了很多思路、也不断修正了自己早期的理解。

更重要的是,我也因此认识了很多热爱技术和写作的朋友。交流让我意识到,学习不是封闭的过程。我同步了我的很多idea到更大的媒体里。我发现在社交媒体里起号的方法非常简单,只要我每天发个50页的技术报告,我就起号了。当然前提是我真的有50页技术报告,并且不止一份。

这一年我也逐渐理解,一个人要如何构建起属于自己的“体系结构”?就是靠一个个长期项目,把自己拉进更深的领域里,在一次次归纳、总结、讲述中,建立起一个有纵深、有连接、有结构的System。它帮助我们应对新问题,也能让我们用更多视角思考手上的工作。

这让我想起高中时,老师谈读书和读书笔记的意义。我想读笔不是记住每本书,而是让人拥有更广的思维空间。到了大学,读书笔记写到一半,我就把它变成了线上博客。也许这就是一脉传承的乐趣吧 —— 从纸笔到博客,形式变了,热爱还在。