2025 年 10 月记事板
29 日
这一别就是近两个月了,差一点点就要创造新的历史了,虽然说已经创造新的纪录了,但是我有我的节奏。
这个月初的时候就想过应该来写点东西了,不过动的念头是「应该来写点东西」而不是「要来写点东西」,说明其实我没什么想写的内容。毕竟另一套体系已经逐渐成熟了,加上我学期初还比较摆。
然后又想到两年前的 29 日,建立了这块记事板,于是想着干脆就在两年后的这一天来写十月的板吧。
不过即便是开了也不知道该写些什么。但好在前几个小时去跑步的时候想到了,就先写写跑步吧,也快体测了。
这学期虽无体育课的乐跑之压力,但还是尽可能尝试一周去跑个几次。然而这学期的状况可以说是烂完了。
先不说由于没有乐跑压力,直接取消了补跑机制导致的旷跑。即便是跑了的中,能完整跑满的次数也不足一半,譬如说今天就跑了两圈。
刚开始还是慢慢悠悠地散步,因此跑的情况还可以,起码能跑满。结果后面我决心恢复一年前刚开始跑时的状况,稍微尝试快一点,结果就是崩溃。
这学期跑满的中最快的,是四天前跑的 12min57s,仅仅相当于去年那会刚开始时的状态。再上一次得追溯到二十天前的 13min47s,正好比我去年第一次、小雨、台风天跑还慢一秒。再往前就是散步时期跑的了,十五分多。
……离谱啊,按理来说我现在虽然依旧挺废的,但好歹还是断断续续跑了一点点的,怎么反倒是比一年前直接上还差了不少呢?我现在真的是百思不得其解。
暂时没什么想写的了,加上时间不多了,我还要再去写点代码,就简单谈一下我现在在写的项目 Focust,正好今天改 public 了。
简单来说这个项目的灵感来自于 Stretchly,是我在暑假的时候发现的,了解后猛地有了灵感,我要写一个这样的项目。
当然暑假除了中间支楞了几天外摆完了,就写了点调度器的核心代码,在上面修修补补罢了。即便是调度器实际上也没完全实现齐全。
另外虽然说灵感和部分功能的构思源自 Stretchly,但实际上我没去读它的代码,读代码太费劲了。因此我的项目完全是从零开始的,也当是作为我学习 Rust 与 Tauri 的一个练习项目。
当然休息计划的调度我一开始有了个自己的设想,实现过程中去查了下 Stretchly 的实现,跟我的可谓是大相径庭。简而言之就是,我的调度器是计算出下一次事件的时间,然后就可以睡眠,直到到点事件触发。而查了一下 Stretchly 的实现大概是用 setInterval,周期性地进行检查。
不过我的实现目前还比较基础,像是可能的时区问题,还有一些暂停计时导致的任务时间变更等都还不够完备或还没处理,也有待后面的迭代优化了。
其实现在 public 还是有点早了,像是 README 和一些文档都还没有写,但我也有点迫不及待了,终于这两天审查完了核心代码(当然,除了 Vue 模板部分),并进行了部分修正,终于是将代码提交上了仓库,让项目仓库中的代码是可以构建并进行基本的运行了。
下面是一点调试的演示吧,还可以在底下看到 DevTools。另外背景图单纯用于功能的演示罢了,实际用肯定不会用这么金光闪闪的(实际上这个是在测试选中图片文件夹,随机选择一张图片的功能,我还多测试了几轮选了个比较适合放出来的)。

如果不出意外的话,这周应该可以将基础的文档写出来,然后可能会尝试把 CI/CD 等自动化弄一下,再本地测试一下,可能就会发 0.1.0 版本了。不过比较蛋疼的是我没有 macOS 和 Linux 设备,虽然说理论上是跨平台的,但没实际运行都不好说。Linux 还好,可以上虚拟机,macOS 就没法了(虽然说我本来也不咋看重 macOS 平台)。但即便是 Linux,用个虚拟机来测试我也是累趴下了,毕竟 Rust-Analyzer + Biome 这俩已经能吃不少内存了。
写代码的过程中,我觉得 Rust 比起它的语法,更吸引我的可能是其工具链。但不得不说的是,构建确实有点慢,而且产物好大,我空间要没了。
暑假的时候推进缓慢,我想可能是因为我还不太依赖 AI。
这话可能听起来有点奇怪,甚至有点搞笑,明明大部分代码依旧是 AI 生成的,还谈依赖不依赖 AI。
暑假的时候写调度器,那会一开始是提出我对调度器的设想,然后请它对我的思路进行评判并延拓,最终形成一个代码。
然后我把代码复制过来,再加以修改重构。随后重新阅读逻辑,想一想可能有什么继续改进的地方。因此我大部分的时间其实都在与调度器的实现作斗争。
当然,后面也有尝试往外拓宽,例如说尝试弄一个基本的 GUI 出来。于是我看着 Tauri 的文档,将后端代码复制过去给 AI,再把给的代码弄回来,弄了个简陋的 GUI。只是我当时还是举步维艰,例如说我对 GUI 有很多要求,但我都不知道该如何实现。想着得详细看看 Tauri API 文档,结果就是后面就开摆了。
当然还是有用过 Edit 的,但我倒是奇怪为什么没用 Agent 呢?
前几天想到快月底了,这个月额度还有好多,干脆 Agent 继续写 Focust 吧。这学期开始的时候其实还是有继续优化,但不出意料依旧是在调度器修修补补。
另外我忘了是出于什么原因,前阵子刚用 Agent 写 Focust 的时候只想着保留调度器等后端部分的代码,想着不用 Tauri 了。可能是因为内存占用与体积等问题吧。最后用其他的 GUI 库也搓出来一个设置界面的 GUI,只能说跟我 AutoHotkey 时期写的 GUI 差不多。加上很多组件都没有或是很丑,最终又回到了 Tauri。还得是 Web 啊,好写而且美观,难怪这么多应用都用的 Electron,我认可了。
然后后面就是不断迭代,到现在这个地步了。迭代到功能基本可用的时候,就是对一些明显的问题进行修复。当然现在其实还是有明显的问题,但大多算是比较小的问题,影响不会很大,因此我就先开始了代码审查并提交,也算是正式敲定了项目的骨架。
仔细想想,这个项目对我来说算什么呢?
- 第一个项目?不是,应该是 OCRC。
 - 第一个有 GUI 的项目?不是,应该是 OCRC(其实应该是 Focus,只不过 Focus 是单文件,就不算项目了)。
 - 第一个有 AI 介入实现的项目?不是,应该是 Bloomink。
 - 第一个用主流语言写的项目?不是,应该是 AntsVsSomeBees。
 - 第一个用主流语言写的有 UI 的项目?不是,应该是 Tomato-Bookstore(这是个什么玩意,我不把它当我的项目的)。
 - 第一个大部分代码由 AI 生成的项目?不是,应该是 Tomato-Bookstore。
 - ……
 
所以它算什么呢?在我看来,应该算是第一个用主流语言写的有 GUI 的项目。只要定语加的足够多,总会是第一个的。
从名字也可以看出来,Focust 这个名称是对 Focus 这个项目的致敬。虽然说这两个项目目的完全不一样,Focus 是疫情网课期间,为了让我专心听课时,写的一个离开腾讯会议窗口一段时间自动切回来的脚本,而 Focust 则是用久了电脑,不要 Focus 了,休息一下吧。
虽然说跟 Tomato-Bookstore 一样——这个项目大部分代码都是由 AI 生成的,我只会对代码进行审查,最多会手动进行一些重构,但比较大的变更依旧是靠 AI——但我对前者无感,甚至潜意识里有种厌恶,对后者倒是喜爱至极。我觉得也许是因为,后者是我想做并去做的项目,前者只是一个应付的大作业项目,我对其一点兴趣都没有。
虽然说没什么好写的,但还是写了挺久吧,快一个小时了。其实还有一些 bug 要修复的,今晚剩下时间本来应该是对 AI 的修复进行测试的。但到现在可能改不完了,只能将就了。
最后就是,前几天 Focust 开发进度喜人后,我顿时又有了一个新的项目的灵感。其实这个灵感倒也不能叫新,只是没想到会这么早将要尝试付诸实际。而且严格来讲的话,我对这个新的项目的兴致大概是远远高过 Focust 的。当然,这个项目现在就完成了两件事情,新建了一个空的文件夹,还有就是命名为了 Keycho。在完成了 Focust 的发布,以及修复一些问题、实现一些尚未实现的目标功能后,我就会着手开发这个了。