2024 年 10 月记事板

1 日

国庆快乐!祝祖国母亲 75 周年生日快乐!

前阵子还查过会不会有阅兵,不过似乎是十年(不一定是国庆)一阅兵?那得再等五年了。

藏书票

早上吃完早餐看到群里有人发图书馆可以领「藏书票」,去领了一下。

说起来 7 月的时候就去找了一下图书馆,结果似乎没找到?

然后今天也是按不愿离开舒适区的思路,去了西区五楼逛了一圈没看到。然后降到四楼从连廊过去到东区,才终于发现了图书馆。

说起来领了票简单看了一下就走了,但是呢似乎这个图书馆有点小啊,没看到多少书架,即使是可供读书的桌椅也不多。当然呢鼓楼的图书馆就是给我充当打印机的,苏州这边估计也好不到哪里去。

说实话图书馆现在功效对我来说确实不大。

从基础意义——读书来说,首先我现在读书的欲望、精力、时间确实都不多。

然后呢即使是真的去读书,也会倾向于去获取更容易获取的电子书来读。因为确实比较方便快捷,而且呢若是能获取非扫描版的,查找、目录啥的功能都远胜纸质书。当然说实话读纸质书体感还是胜过电子书的,只不过呢确实现在还不足以支撑我去付出额外的代价读纸质书。这可能也是信息便利的一点「后果」吧。

即便是高中去图书馆的主要目的——自习,也显得没那么必要的,现在学习工作都是在宿舍完成的。去图书馆首先就是来回折腾的时间损失了,然后终究是没有在宿舍啥都能干方便。唯一的优势大概就是会比较专注,不会像在宿舍基本都是在划水吧。说实话,在图书馆的专注一定是能弥补掉中间的时间损失的,只不过呢,还是舒适区的事情,呆在里面不愿离开,即使是擦边也不乐意。

然后再来聊聊昨天没讲完的事情吧,今天就一定要将私博补完了。

details 标签

点我

19-2. 解决 details 问题

scrollIntoView

闲来无事查了一下 details 标签的这个问题,在一篇文章记录了一个方法,那就是使用 scrollIntoView 这个方法。我选择了 { block: 'center' } 参数,最终代码如下:

source/js/details.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
document.addEventListener('DOMContentLoaded', () => {
let detailsElements = document.querySelectorAll('details');
detailsElements.forEach((details) => {
let closeButton = document.createElement('button');
closeButton.textContent = '▲ 折叠';
closeButton.className = 'details-close-button';
closeButton.addEventListener('click', () => {
details.removeAttribute('open');
// 添加下面这一行
details.scrollIntoView({ block: 'center' });
});
details.appendChild(closeButton);
});
});

这样一来,点击折叠的时候,details 标签就会到视野范围的正中央。可以说是完美符合了我的预想,只是稍有差别,那就是我其实希望的是跟折叠位置一致。不过这点小问题完全无所谓了。现在我对 details 标签已经非常满意了,当然也许折叠按钮可以稍稍美化一下?不过现在暂时没这个兴趣。

点击下面的「折叠」进行测试。

WSL

24-1. WSL 更新代理问题

关了就行了(https://github.com/microsoft/WSL/issues/9039#issuecomment-1935918809)
Error code: Wsl/UpdatePackage/0x80190193
之前不知道为啥没遇到

前阵子不知为何突然 WSL 占用挺高,风扇呼呼转。于是想更新 WSL 试试,但屡屡遇到 0x80190193 错误,简单查了一下也没找到啥解决方案。

后面再查了一下,说关了代理就好了,试了一下确实如此。

本来想着可能是换了代理的缘故,不过刚刚又更新了一下,却又行了。

另外,内核又降到 5 了。2.3.11 升到 6,2.3.17 又回退到 5。

30-3. Za 待机后又消失

只能 kill 掉

说到 WSL,又想起一个事,不知道是不是更新后遇到的。现在休眠后 Zathura 消失的问题又出现了,jobs 里还有的,但就是看不到窗口,最后只好 kill 了再打开。

另外前阵子给几个常用的,但却没有附带的命令加了 completions,这样可以方便地看参数的说明了。

30-1. Za 怪怪

消失的页,但是却能查到,然后按查的方式,找不到原处了,只能靠 bl 回去
S 可以,很正常,就是 Z 有问题。
怪怪怪
我懂了,是我傻了,开了双页而不自知(不知啥时候开的了,这样一来前面会不会漏记很多?不过倒也无妨就是了,反正也没咋听)。
实际上就是两个处于不同的双页侧栏,而且宽度调的很好,毫无违和感。
刚刚突然就想到了 d,果然如此。

然后继续说一下 Zathura。昨天上课看 PPT 时发现很奇怪的事情,屏幕显示的页我翻了翻没看到,但是呢使用搜索功能[1]却可以定位到那一页。诡异的是定位到那一页后我却找不到原来的页了,只能靠搜索定位前特地保存的书签回复过去。

然后用 SumatraPDF 却可以正常看,于是我就将怀疑的目光投向了 Zathura。

然后突然想到 D 这个键可以切换双页,于是左右移动了一下,还真是进入了双页模式……

剩下的话就不多说了,上面大致也都说明白了。

噩梦

29-1. 做噩梦了

梦见选了门额外的专业课,但忘记去上也忘记退了。还好是梦

说起来「概率论」这课一些人退掉了,现在去看了一下 26 人退了,只剩 158 人了。

退得好。苏州这边规划不行啊,教室无法容纳这么多人,于是被迫在那种「报告厅」上课,给笔记本充电非常麻烦(虽然每次上课还是有充电就是了),桌子也非常小,勉强支撑一下笔记本就差不多了,更别提鼠标什么的了。反正就是各种不舒服。而上节课由于人数的减少,已经顺利地回归了之前的教室。

退的原因大概就是课程难度比较高,加上其实不是必选,重要性不足?不过我倒不至于退了,就这样上着吧,来都来了,上都上了。真要退也是《机器学习》在前面。

LaTeX\LaTeX

30-2. cdots? ldots?

见任务

下面这个就是所说的「任务」。

cdots? ldots?

,…, 一律用 dots 吧
有意思的是 ,… 会是 c,但 ,…, 会是 l,怎么说呢?好像没啥办法?
这个要动的话说实话是个大工程,不太想理,何况其实 c 也不错,我其实更偏爱 c。从后面开始规范吧,前面就不管了。这个可以放 daily 里谈,我去建一个

嗯,LaTeX\LaTeX 的事情其实还没谈完。只不过呢上一个更多的说的是行文的荆棘之类的,这里又是公式方面的思考。

Copilot 在诸如 a1,a2,a_1, a_2, $a_1, a_2, $ 中给的提示一般都是 \ldots,而我一般用的其实是 \cdots,也就是这样 a1,a2,,ana_1, a_2, \cdots, a_n $a_1, a_2, \cdots, a_n$

试了一下 a1,a2,,ana_1, a_2, \ldots, a_n $a_1, a_2, \ldots, a_n$,其实就是省略号在下面。\ldots 这个选择其实甚至是不在我的 dots 循环列表(\dots, \cdots, \vdots, \ddots)中的。

这个使用 \cdots 应该一样是三年前的孽缘,还真又是历史渊源。

很多情况下其实可以使用 \dots 给它自动调整,例如 a1,a2,,ana_1, a_2, \dots, a_n $a_1, a_2, \dots, a_n$,其实就是 \ldots

不过可能还有一种原因。悲,实践中遇到的,现在没能复现。简而言之就是类似上面的格式,稍有不同[2],一样用的是 \dots,但是样式其实是 \cdots。也许三年之前也是基于这个原因,让我选择了统一使用 \cdots

不过现在就打算统一用 \dots 了。一是改变样式,二是其实用 \dots 还少打一次 CapsLock,何乐而不为呢?

但是之前的也没打算改,因为要改的话还是比较麻烦的,甚至很容易有遗漏。

但是呢倒有一个是改了的,那就是「转置」。

前阵子(这个词好像频繁地使用啊)不知为何(同前)去查了一下「转置」这个符号用啥比较好,根据 Stack Overflow 给出的建议,用 \intercal 比较好。下面是两种方案的对比,前者是 \bm{A}^\intercal,后者是 \bm{A}^{\mathrm{T}},也就是之前我弄的记号:

AAT\bm{A}^\intercal\quad \bm{A}^{\mathrm{T}}

硬要说的话,应该确实是前者更好。只不过各种资料、课件似乎见的一般都是后者[3]

然后就换了。用的是 LeaderF 的替换功能。除了一开始有的 ^\mathrm{T},后面应该都是用 snippet 创造的 ^{\mathrm{T}}

说起来这个 LeaderF 的替换功能我用起来一直有点问题。下次还是不要用了,用 sed 吧。

总的来说就是会漏掉一部分,我全部替换后再次搜索还是能看到,最后是手动替换了剩下这部分。然后呢我按它写的用 Shift + W apply the changes to buffer and save,但其实并没有 save。我之前替换的时候,如果这时候关掉是根本没有被替换的,标签页上也确实显示尚未保存。但即使是用了 :wa 一样会像上面说的那样漏掉一部分没替换。

笔记忧虑

30-5. 笔记之忧虑

想一下近期自己记笔记的障碍

十二点半了还没写完,虽然有我拖延的缘故。这大概是最后一点了,本来应该写挺多的,但我挺饿了,随便糊弄一下吧。

按理来说,经过挺长一段时间的笔记工作发展,应当是愈来愈游刃有余、得心应手才对,但是说实话这段时间可能碰到的障碍更多。

其实这个问题之前应该也是有遇到的,只不过当时课业难度还不似现在,因而其实没能引起我的重视。

那就是有关上课记笔记以及听讲之间的调和问题了。专注于记笔记/抄书或课件,很容易就会略去老师讲的很多内容(这也是我现在面临的困境),而反过来认真听讲的话,笔记进度又会大大落后。

之前这个问题不大,原因大概就是因为课程难度的问题:即便是漏掉了老师讲的一点内容,从记笔记中抽回神来,我一样可以迅速跟上进度(当然硬要说的话,离散那会也是有这样的问题的),因此倒也没啥大碍。

不过现在机器学习和概率论这两门课这个问题就浮现出来了,感觉可能会折磨我一段时间。

暂且想到一个方案,那就是主要还是听讲,笔记中只保留个框架以便后面进行填充,然后同时在相应的位置记录老师讲的、课件上难以直接看出来的内容。至于课件上的其他内容,更多的还是在课后进行补充。

这个方案看起来还行,实际上我其实还没有实践检验过。而且存在一个致命的缺陷,那就是课后让我记笔记可以说是非常困难的,课后补充笔记内容的机会可以说是少之又少,非常难得。

算是目前学习阶段面临的一大难题吧。

就写这么点,本来应该能讲更多点的,只不过我要去吃饭了,40 了不知道还能吃点啥。说到吃的,要不是时间问题,我可能还想聊一下吃的事情,还有体重什么的,不过现在看来,只能下次了。

忘了补充这个了。8 月底的就一个,内容也全放了就不搞了。话说回来 QQ 新版的截图工具似乎还不错,界面挺舒服的,有时间的话看一看,然后也许能写点东西。

12 日

没想到吧,我居然会今晚不到一个小时来写。我自己也没想到。

跑步

先说下跑步这事,怕我等会忘记了。

算上今天晚上刚?不知道算不算刚了,过去两个小时了,反正已经 15 次了,如果我没数错的话。

但如果对照一下日历就会发现,今天应当是第 16 次才对,所以说我终于是崩溃了?

实际上不是的,容我狡辩一下。

10.3 后下一次直接就是 10.8 了。为什么呢,因为周末 10.5 和 10.6 的两次,都下了雨,路面湿滑。于是因为「不可抗力」的原因,这两次就应当顺延到 10.7 周一和 10.9 周三,这也是我的 To Do 任务中记录的。

10.7 又因为下雨,自然又顺延到 10.11 周五。

然后当我 10.8 10.9 两天跑完后,也确实是有点绷不住了。想着周三周五都要补,这就相当于从周二到周日,我要连跑六天。

虽然说未必跑不下去,但我终究想要偷点懒。于是决定由于这类「不可抗力」原因而造成的推延,算半天。

不过按照其他事情的经验,打补丁的开始,就是滑坡的开始了。很容易就会利用补丁中的漏洞进行偷懒。

例如说什么叫「不可抗力」?我今晚有急事,突然有人找我拖了一段时间叫不叫「不可抗力」?

于是再给补丁打补丁。目前的定义是这样的:「不可抗力」指由于天气等自然因素导致的考虑到安全问题而无法跑的原因,不包括因个人因素(包括但不限于临时急事、其他安排等)而导致的延期。

暂时还没出现事情。于是这两次顺延,合并为一次在 10.9 解决了。

另外 9.29 当时的纪录后面给平了一次(虽然说实际上应该稍慢,不过还是进 11min30s 了),今天大概破了纪录,明明感觉跑得挺一般的。不过因为最后一圈时手机划到了,没记录完整,不清楚具体的时间是多少,我估计是 11min ~ 11min15s 左右吧。

以及现在基本不带装备了,之前带水基本也不喝,都是回来再喝的。耳机也不带了,毕竟 T 配速已经过时了,目前也没找到更合适的,现在按时间记录的 2min/lap 作为下限跑。于是就只带一个手机轻装上阵。

不过下周一就终于开始乐跑了。

时间都去哪里了

时间都去哪里了呢?这是个问题。明明课程比大一要少,但是为何我会觉得事情多得多,压得我有点喘不过气来呢?于是我打算对着课程表分析我的一周都在做些什么。

之前都是 8:00 起,现在为了多睡会,弥补晚上的时间,早上没课(周二、周六、周日)就 8:30 起了。

于是周一、三、四、五这四天,都是照旧 8:00 起,大概 8:11 左右出门,比在鼓楼晚个 1min 左右,不明白为啥。

然后吃早餐,边看手机照例看点东西,按理来说 8:25 前应该可以吃完去教室,不过往往吃完了还会开几个倒计时磨一会儿。现在一般 8:30,最晚不超过 8:35 出发离开食堂去教室。这个倒计时,在一天当中会多次出现。

然后到了教室,各种折腾——掏笔记本、插电、拿出鼠标、关掉 OneDrive、关闭微信窗口等等事务,一般 8:40 后才能开始背 Anki。

不过很好,现在这个量,背完差不多就可以上课了。

上课没啥好说的。中间下课其实电脑也不太会看点别的,有时会补充一下没来得及记的内容,有时拿起手机刷一下。

当然有时候,例如今天周六补课,上午中途下课时,看了看 JMR 资格赛,差不多十分钟,看完就上课。题外话:红眼 GOAT!

10.13:好一个毒奶!

然后中午,一般课程都是 11:50,毕竟上午都是三节课的,会挪一下中间的时间。不过也有课程不会如此。

总之就是吃个饭,倒计时就不多说了,一样开多个五分钟,由于时间较早上比较充裕,会拖得比早上多一点。

回去后肯定也不会学习什么的啦,接着看,接着看,一般 12:45 ~ 12:55 会去午睡,然后 13:35 左右起来去上下午的课(这学期下午第一节都有课,这周开始有形策了)。游泳要早一点去上车,13:25。

下午就要分类讨论了,有三类。

第一类是周一和周五这样的,下午也是三个课时这种。

这种课一般下课回到宿舍也 17:00 左右了,若是不挪中间时间,更是 17:00 多了。而我一般好不容易回到温柔乡(真的温柔吗),都是要狠狠「补充资讯」一下的。

这样折腾一下,起码 17:30 吧?然后 18:00 左右又要吃饭,「哎呀,就这么点时间也做不了啥」,于是就继续刷了,这段时间一样是啥也没做。

即便如此这段时间也并不是 18:00 就去吃饭了,一般 18:15 左右吧,因为我比较能拖。

晚饭时间是最能拖的,吃完饭后能开好多个五分钟的计时器。就近期的表现而言,19:00 能离开食堂算比较早的。晚的话可以到 19:30 这样。

当然还要额外谈一下周二晚上的事情。周二晚上有课,所以说晚上就不能那么拖延了。只不过边吃边刷手机还是会的。

说起来刷手机真有啥新鲜内容吗?还真没有,毕竟热潮已过,现在翻来覆去都是那点东西,我都看烂了。即使是很多新东西,其实也没有点进去的动力。所以与其说是「获取资讯」,不如说真的就是在「无所事事」地打发时间罢了。

唉,想大一上学期,吃饭的时候还会检查笔记,现在写过了能点开一次就谢天谢地了,哪里还敢奢求从头到尾看一遍、检查一遍?

由于周二的晚课,一般来说是要早点出门吃饭,起码得 18:00 前吧。不过应该是上周,我也尝试了极限 18:10 左右去食堂,然后速食,再去上课的壮举。最后结果是迟到了 1、2 分钟,无关紧要。不过当时我也没跑,所以说还是可以压缩一下的。然后那天因为胀肚,大概是跑出了一个很差的成绩?

好的,说回到晚上。先说不跑步的周一、三、五。

诶诶,真是奇怪呐,似乎回来后还是继续刷。但是这么长时间,总不可能一直都在刷吧?很不幸,似乎还真是这样的,起码我似乎没啥干正事的印象。不过好歹是让我找到了一个大的时间间隙。这么大的空隙,我不说完全不刷,起码是能塞点学习时间吧?

然后就是跑步天了。周二是上课完去跑步,跑完回宿舍。周四跑步前还有一段时间,这段时间也值得说道说道。

我们说到了,吃完晚饭回宿舍,四舍五入就算个 19:00 左右吧,然后再看去跑步的时间——20:30。有没有觉得这情形非常类似?

没错,答对了!就是下午上完三个课时后,17:00 到计划吃饭的 18:00 的这个情形!

既然如此相似,那么这段时间我是如何想的,做了啥,也就不难推断了。

跑完步一般 21:00 出头,有时因为跑步前又拖延了,可能 20:45 才去。而我出发到回来差不多 35min。反正凑个整嘛,反正回来时累得要死,也是要刷一刷打散疲惫感的,算个 21:30。

运动了一会儿,我现在很累,这不得好好犒劳下我自己?欸,磨一磨,22:30 起码了。

有时候比较好,22:00 或者 21:45 就去洗澡了。有时候,也是大多数情况,22:30 了,再凑个整,23:00 了,去洗澡。偶尔也会早点,22:45 去,这样洗完就能凑整了。总之,我这个凑整的一生。

洗完澡过后,23:15 起码了,然后 0:00 睡。这个情形就不用我再多说了吧?不能说是相似,只能说是一模一样。

第一类的下午,以及工作日的晚餐、晚上都聊完了。接下来是第二类的下午,也就是周二、周四这种下午两个课时的。

按理来说这种 16:00 到 18:00 的,一样可以套用模板,实际上大部分情况也确实如此。但是呢似乎其中一样可以尝试插入点微乎其微的学习时间?

第三类就是周三下午了,这个满课,倒是最为充实,没什么好说的。

工作日部分就说完了,接下来是周末。

周末的晚餐和晚上不用说了,跟上面一样。

而上午 8:30 起床,吃早餐,刷,如果可以克制住,早点背 Anki 的话,三叉戟下来,最高效(搞笑)也要 10:00 了。然后 10:00,12:00,这绝望的轮回,我已经不想多说什么了。

而实际上,这个克制住也是比较奢望的,上周似乎都是拖到吃午饭前去背,或者吃完午饭才背的。前者十二点多开背,去吃饭时都过了 12:30 了。

周末似乎还会吞掉了午休时间?其实还是因为前面的时间延太后了。当然也与舍友下午没课时作息延后有一定关联。

按理来说,即使吞掉午休部分,那也有 15:00 到 18:00 的时间。虽然说套模板全部饕餮大口吞掉也不成问题,也是最常见的情况,但也确确实实是可以虎口夺食的。

简单就先分析到这里,零点了,我也上床先了,希望能尽早熄灯。多说一句,今天其实还是有做点事情的哦,虽然说对我的沉重负担没啥裨益。

13 日

今天甚至更少,实际上只剩下半个小时了。

这个周末毫无感知啊。周六先补一下课,早上八点起的床去赶九点的会(还好吃饭前先强制背了 Anki,先见之明,先见之明),一直到十二点出头才弄完,午睡都没得睡。然后下午又补课到五点左右,剩下的就不用我多说了。

不过,这个晚上,我为什么会点不合我口味的 ice cream soda,看一场完全看不明白的比赛呢?不是因为心里挂念着某个人,而是在折磨着自己,消磨时间。

另外忘了讲了,周日上午还跟周六不太一样。周日上午可以默认最多做个 Anki 的。尽管新欢已经远走高飞了,但是旧爱还能无缝衔接上来。

那就接着昨天没讲完的内容再多讲一点是一点吧。

时间都去哪里了——续

其实呢,即便是「充实」的生活,要是偶尔能开窍一下,完成日常的任务也是绰绰有余的。

就拿国庆假来说,一开始镇住我的《机器学习》作业,实际上手才发现难度可能是四大天王(另外三个是 OJ、《人工智能导论》作业、概率论作业)最简单的,耗时最短的。

先摆了三天,剩下四天计划一天搞掉一个天王。实际上即使是作业 DDL 当头,该摆的还是会摆的,OJ 做了一半就开始划水,划到晚上挺晚了才继续突击。然后是意外的《机器学习》作业,晚饭前就搞定了,晚上即使是依旧很摆,还是稍微做了几道概率论的题目。接着就是概率论那天,这下是直接拖到晚上挺晚再做了,好在之前还是做了不少,勉勉强强算是完成了。最后一天,似乎是要跟前天超出计划目标互补,就看了几页课本,没了。作业还是周二才补完的。

现在看了看,概率论已经退掉了 53 人。

要是我把概率论跟机器学习退掉,摆的时间多了不少,任务量也能减轻一半。

但我不会这么做的。相反,我反而是不断在给自己担子上添点新东西。

我的想法就是我是一个非常非常自由散漫的人,这我已经讲烂了,说了无数无数遍了。我的的确确是需要一个外力来对我进行约束的。

同时为了提升自我能力,增长见识,于是我干了,还不止一件。

然而,这对于我来说还是过于抽象了。即便跟当时 EL 不一样,当时是完完全全的零,而现在是有了一个参照,有了一个也许能称之为方向的路径吧。但依旧是让我体会到了深深的无力与自卑。再加上时间的紧迫,以及我自己还有课内那么多事情要做,实在是有点,绝望似乎过头了,此处意会。

但这似乎还是不能激发我的潜能,该摆的还是一样在摆。

不过担子不止这么点,周一中午还要再去挑下一个。等过段时间,也许负担稍微轻了一点,就会再朝另一个方向尝试……

这样,我为数不多(其实挺多)的自主支配时间,被渐渐蚕食殆尽了。

这个周末结束了,明天又是周一了,作业还是一笔未动,呵。

还是一样啰哩叭嗦半天,总感觉实际写出来的跟没写时心里盘算的有点出入,少了挺多内容。但也只能这样了,还有十分钟(只是看起来似乎不止了),稍微写点别的吧。

Hexo 插件

昨天说的稍微干了点事,就是打了两个补丁,本地修改了一下 hexo-generator-searchdb 和 hexo-word-counter 两个插件,以满足我自身的需求。

可以发现,我的博客总字数已经从 10+w,一跃跃升到了 52w 了。这是因为经过修改后,记事板、笔记的内容也被统计到总计数当中了。而实际上在整个博客,包括私博,这个数字差不多是 63w。要向百万进发了。

非常粗糙地估算了一下(口算,中间各种舍入),差不多一周一万字了。

database.jsGitHub
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
--- database.original.js  2024-10-14 00:01:19.047442800 +0800
+++ database.js 2024-10-12 22:06:18.221721300 +0800
@@ -1,21 +1,29 @@
'use strict';

const { stripHTML } = require('hexo-util');
+const minimatch = require('minimatch');
+
+function isExcluded(path, excludeRegexes) {
+ return excludeRegexes.some(regex => regex.test(path));
+}

function savedb(article, config, isPost) {
const data = {};
+ const searchConfig = config.search;
+ const categories = article.categories;
+ const tags = article.tags;
if (article.title) {
data.title = article.title;
}
if (article.path) {
data.url = encodeURI(config.root + article.path);
}
- if (config.search.content !== false) {
- if (config.search.format === 'raw') {
+ if (searchConfig.content !== false) {
+ if (searchConfig.format === 'raw') {
data.content = article._content;
} else {
data.content = article.content.replace(/<td class="gutter">.*?<\/td>/g, '');
- if (config.search.format === 'striptags') {
+ if (searchConfig.format === 'striptags') {
data.content = stripHTML(data.content);
}
}
@@ -25,11 +33,11 @@ function savedb(article, config, isPost)
if (!isPost) {
return data;
}
- if (article.categories && article.categories.length > 0) {
- data.categories = article.categories.map(category => category.name);
+ if (categories && categories.length > 0) {
+ data.categories = categories.map(category => category.name);
}
- if (article.tags && article.tags.length > 0) {
- data.tags = article.tags.map(tag => tag.name);
+ if (tags && tags.length > 0) {
+ data.tags = tags.map(tag => tag.name);
}
return data;
}
@@ -37,14 +45,17 @@ function savedb(article, config, isPost)
module.exports = function(locals, config) {
const searchfield = config.search.field;
const database = [];
+ const excludeRegexes = (config.exclude || []).map(pattern => minimatch.makeRe(pattern));
if (searchfield === 'all' || searchfield === 'post') {
- locals.posts.forEach(post => {
+ locals.posts.each(post => {
+ if (isExcluded(post.path, excludeRegexes)) return;
const data = savedb(post, config, true);
database.push(data);
});
}
if (searchfield === 'all' || searchfield === 'page') {
- locals.pages.forEach(page => {
+ locals.pages.each(page => {
+ if (isExcluded(page.path, excludeRegexes) || (page.layout !== 'post' && page.layout !== 'page')) return;
const data = savedb(page, config);
database.push(data);
});

database.js 多改了一点。

helper.jsGitHub
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
--- helper.original.js  2024-10-13 23:56:35.452587000 +0800
+++ helper.js 2024-10-12 22:20:32.404050600 +0800
@@ -1,5 +1,7 @@
'use strict';

+const minimatch = require('minimatch');
+
let config = {};

module.exports.setConfig = function(_config) {
@@ -21,6 +23,10 @@ function getFormatTime(minutes, suffix)
: fHours + ':' + ('00' + fMinutes).slice(-2); // = 61 => 1:01
}

+function isExcluded(path, excludeRegexes) {
+ return excludeRegexes.some(regex => regex.test(path));
+}
+
module.exports.symbolsCount = function(post) {
let symbolsResult = getSymbols(post);
if (symbolsResult > 9999) {
@@ -36,22 +42,27 @@ module.exports.symbolsTime = function(po
return getFormatTime(minutes, suffix);
};

-function getSymbolsTotal(site) {
+function getSymbolsTotal(site, exclude) {
let symbolsResultCount = 0;
+ const excludeRegexes = (exclude || []).map(pattern => minimatch.makeRe(pattern));
site.posts.forEach(post => {
symbolsResultCount += getSymbols(post);
});
+ site.pages.forEach(page => {
+ if (isExcluded(page.path, excludeRegexes) || (page.layout !== 'post' && page.layout !== 'page')) return;
+ symbolsResultCount += getSymbols(page);
+ })
return symbolsResultCount;
}

module.exports.symbolsCountTotal = function(site) {
- const symbolsResultTotal = getSymbolsTotal(site);
+ const symbolsResultTotal = getSymbolsTotal(site, this.config.exclude);
return symbolsResultTotal < 1000000
? Math.round(symbolsResultTotal / 1000) + 'k' // < 999k => 111k
: (Math.round(symbolsResultTotal / 100000) / 10) + 'm'; // > 999k => 1.1m
};

module.exports.symbolsTimeTotal = function(site, awl, wpm = config.wpm, suffix = config.suffix) {
- const minutes = Math.round(getSymbolsTotal(site) / wpm);
+ const minutes = Math.round(getSymbolsTotal(site, this.config.exclude) / wpm);
return getFormatTime(minutes, suffix);
};

当然都是 Copilot 教的。详细内容后面再说吧。

16 日

排除未知的阴影,今天其实还算闲的,结果呢反而不知道该干点啥了,早早打开文件,但迟迟未敲键盘补充。也许跟手疼又有关系,最近又疼得紧了。

另外最近脑子确实是不好使啊,很多很直接的东西都没能一下子反应过来,绕了很大一个弯子才醒悟,越来越笨了。

Hexo

先讲讲上面说的 Hexo 插件补丁。

第一个 database.js 其实没改多少,只不过听从 Copilot 的建议把几个常引用的选项单独拉出来了,防止多次访问属性的消耗。实际上就是相当于遵守了设置中的 exclude 选项。

第二个也是类似的,只不过本来只统计了 post,所以总字数这么点,现在就加上了 page。

跑步

这玩意本来是打算昨天写的。「本来」「本来」、「打算」「打算」。总之就是又是懒得动了,于是今天来讲讲。

昨天是乐跑第二天,也是乐跑阶段我跑的第一天。

本来下午下课的时候看路面还湿滑,想着估计第一天就要「不可抗力」而推迟了,又喜又忧,忧的是我会感觉喜。

晚上下课后呆了一会,等到三十的闹钟响起(说起来我还给这个闹钟命了个有意思的名字)才走。不过其实更晚,因为还打翻了水壶,去了两趟厕所拿纸擦拭清洁桌面。

上课前就感觉似乎不太可能「不可抗力」了——路面还挺干的,要跑肯定是能跑的,比第一次跑那会情况好多了,那会都能跑。

当然其实想要拖也不是不能拖,只不过有不可抗力,要补的就只有半天罢了。

插一嘴,这天气预报是真的烂啊。一直看说晚上下雨,周三晴,我也就估摸着周二要不可抗力,周三来补了。结果是周三下雨了。

不过最后还是跑了。跑道倒也不是完全干的,还是有一点水的。为了安全起见还是以 12min 为目标。

但最后的结果倒是不错,11min10s 左右,在有相对准确的记录中是新纪录了。

我也大致摸清楚这样咋跑的了,第一圈差不多是 1min40s ~ 1min45s,然后第二圈稍慢,三四五圈基本就缓慢降低,但是差不多还是 2min/lap,可能会稍慢过,最后一圈再提点速,这样就能超过 12min 的保底目标了。

也就是说现在 12min 是保底目标,11min30s 是短期目标,11min 是一个长期目标,在 24 次乐跑中希望能突破的目标。

再翻了翻记录,第一次雨天(比昨天湿多了,还有小雨)是 13min46s,现在已经能快个两分半左右了,进步显著呐。果然长跑进步比较容易且明显。

LaTeX\LaTeX insight

每隔段时间都能有一点 insights。

比如说,差集 ABA \setminus B 该怎么写呢?之前我是 A\BA \backslash B A \backslash B,但实际上这是错的,应当用 A \setminus B 才对。可以看出来二元运算符有个明显的间距。

不过呢,这个「失去的」间距,我似乎之前也在某个二元运算符见过,是哪个呢……下次遇到再说吧,印象中是挺少见的。

还有就是,之前的行间公式我都是单独成段的,例如下面这样:

1
2
3
4
5
6
7
我是一个段落

$$
\text{我是行间公式}
$$

我是另一个段落

无论是 Markdown 还是 LaTeX\LaTeX 都是如此的。

但还有另一种方式,也就是我现在改用的方式,也就是行间公式与上一段合并一段:

1
2
3
4
5
6
我是一个段落
$$
\text{我是行间公式}
$$

我是另一个段落

这两种方式在 Markdown 渲染中有差别,但是呢没有到能让我明确挑出一个更倾心的地步。

只不过在 LaTeX\LaTeX 出现了一点不同,具体忘记了(大概是 PDF 渲染中间空行很多?)。总之我查了一下,嗯现查了一下发现我应该再改一种方式了:

1
2
3
4
5
我是一个段落
$$
\text{我是行间公式}
$$
我是另一个段落

不确定我当时看到的是不是这个了:When should we use a blank line?

所以说其实上面的示例不太对,是否有空行应该取决于二者之间的逻辑关系。

一般而言行间公式是承接上一段的内容的,因此从逻辑上确实不应该有空一行。所以说我设置了一个 To Do 打算全局替换了。

但是下一个确实比较复杂了,下一段的内容也的的确确未必承接这个行间公式,完全是有可能重启一个新的话题。因此全局替换就不太合适了,只能后面注意一下了。

24 号补充:其实不只是公式之间换行的逻辑问题,像代码块这些,我觉得可能也是需要注意一下的。也许可以看一下转化的内容如何,以及不同的渲染结果效果如何,综合考量来决定除了行间公式外其他的问题?

顺带一提,因为 \setminus 是个小玩意,其实也懒得整全局替换了。不过换种思路,是小玩意,所以全局替换才方便呀,所以说最后换不换取决于我后面有空且愿意做事时,想不想得起来。

网课

前面讲的周一整的活就是这个网课了。有个「国际化科研素养实训」课程,我报了个「人工智能:机器学习在数据分析及自然语言处理中的实际运用」课程,似乎是英文授课,虽然说有机翻字幕。

看了下,这课时间还不短,每周六 20:00 ~ 22:15,这算不算不可抗力?笑。

肯定不算啊,不过我也要琢磨一下周六的该怎么处理了,先暂时改为周五吧。

不过虽然是这周报的,但其实上周就开课了。上周的录播我还没看呢。

总之初衷还是希望能「丰富」「充实」一下我的生活的。以外力支持我学点东西。最后会是个什么样子就不清楚了。

时间(再续)

昨天跑步前又想了一下,实际上排除掉那个项目,我压力也不算大,甚至还仍旧可以算轻松。即使是有那个项目,因为我也不知道我要做什么、我能做什么、我会做什么,反而大部分时间也是无视它的存在,所以我每天大部分时间还是挂着笑容的,还是能想着很多轻松愉快的事情。

那么我为什么会感觉到这么大的压力呢?就是它的「深不可测」。

像是盲人摸象一样,只不过我更像是一个盲人在一个洞的边缘摸索试探着它的深浅,但始终无法感知。于是非常恐惧能否走过这个坑,是掉下去粉身碎骨,抑或是轻轻松松趟过去,完全不可知。但我还是有着一双手来试探的,就凭我试探的感受来说,后者的可能性微乎其微。

对于近期一段时间比较显著的目标,我都会在心中大致估计一个时间点。但是出于上面的原因,我无法估计——即使只是一个粗略的结果——出一个时间点,去做点什么。因此我会更倾向于认为,即使将所有的时间都投入,都恐怕不会有一丝波澜。这所有的时间,又是覆盖了其他任务的。也正因为此,会有紧迫感,即使我实际上什么也没有做,不如说正源于我什么也没有做、什么也做不成。

按我昨天 To Do 记录中写的就是,压力源自弱小与恐惧。

不过今天反而舒缓了很多,因为我的责任感减轻了不少。

若是因为我的缘故而误了大事,我会非常焦虑和自责,毕竟其实我只想做一个扔进人群认不出来的透明人,并不想有啥新关系与交集。

只是呢我发现其实仍旧是可以有条不紊地进行着,其他人都非常地优秀。这再好不过了,我不用为此承担责任了,因此可以放松地从其中隐身了。

从上面也可以看出来我一个非常大的性格缺陷了,那就是「害怕担责」。

这一点其实从我另一个常常做的、已成习惯的举动也能看出来,那就是「自我贬低」:我已经将自己说得如此一无是处了,你既然还是要信任我,让我做这件事情,那搞砸了也不能怪我了吧?

「自贬」实际上是我躲在一个保护罩里不肯出来的外在体现。进,我确实有这个能力解决问题,顺利完成,那就是我谦虚。退,我没能力解决,是你眼光不好,视人不当,我有自知之明与先见之明,已经提前打过预防针了,一样怪不得我。进退自如,也难怪我经常下意识就是这一套连招打出来了。

但正如我上面说的那样,我不认为这是对的,我认为这是「缺陷」。因为这代表着我没有承担责任的勇气,总是一味地推脱掉也许应该承担的责任。短期来看也许是有很大的好处的,但长期来说的话,恐怕的的确确不会有人愿意去信任我能够担责了。

即便我能正确认识,但离让我从舒适区中出来还有很长一段路要走。毕竟它是那么的好用,可以让我像个刺猬一样,抵御外界的攻击与伤害。

但就像刺猬无法让愿意了解它的人接近它的内心,甚至会伤害到他一样,总是会想着卸下这一层防备的。正如封闭的内心虽然说是为了避免擅自的情感,但依旧是对于外界有着热忱的追求,我其实也渴望着能够勇敢站出来接下属于自己那一份沉甸甸的责任。

想到另外一个事情[4],「大家」这个词是多么的好用,轻轻松松就可以将自己从其中摘出去。明明「大家」中是包含「我」的,但是「大家会一直支持你的」分量似乎就是不如「我会一直支持你的」分量重。

感觉就是「大家」这个词太轻飘飘了,轻而易举就为甚至不知道一个范围的其他人作出了不可靠的保障,那么即使「我」也囊括在其中,在这么多不靠谱的保障之间,「我」的承诺的可信度也就寥寥无几了。反而是「我」自己做出的保证,可以代表「我」,是最坚实有力的。

因此我认为「大家」是一个很狡猾的词,也是不愿担责的体现。寄希望于以一个虚无缥缈的保证打发了别人,仍然是站在舒适圈里面,不肯勇于站出来给出自己的承诺:你不依靠大家,最后搞砸了,反而还是你的问题,你不够相信大家,即使只是因为你不相信这个「虚」的承诺。

「大家」弱化「我」的存在的狡猾之处,除了减轻甚至推卸责任外,还可以含蓄地表达情感:例如说「大家会因为你的离开而寂寞吧」,其实就是隐晦地指出——我会因为你的离开而寂寞。

今天虽然摆了挺多,但是时间比起前几天还是充裕了不少。虽然说现在也仅剩不到半个小时了,但是呢今天个人情感最浓厚的部分,也是心血已经写完了,而且我写的还挺满意的,比前几天写的几坨好多了。后面可以聊点杂七杂八的了。

Anki

Anki 更新了个 beta,现在可能会出现一天内的复习了,即 short term schedule。看到即使是「良好」也并非是按天来计时发现的,现在可以有分钟和小时了。

不过正式版也未必会默认启用,我也未必会启用,毕竟早上背了还要晚上再背,虽然说数量不算太多,但还是不如杀了我吧。

Anki 还有的事就是文档终于有新的中文翻译了,取代了之前那个已经过时了好久的版本,成为官网上提供的「官方」中文版。

我也因此删掉了前年一时兴起开的翻译仓库,没翻译几篇。

有新的官中自然好多了。本来前阵子还想着按着官中改一下一些名词的翻译,不过后面又把 To Do 删掉了。毕竟我只是个用爱发电的普通用户,只是随手提供一点翻译罢了。而这个工作量太大了,我承受不起。

一些新名词的翻译,我也尽可能会去论坛查一下,了解一下含义再翻译,尽可能准确简洁。然而我英文语文水平都不佳,何况由于很长时间没有活跃在 Anki 论坛了(毕竟现在心有所属了,不会像之前那样没事就去看看了),以及对于其中技术细节也不甚了解,因此很多翻译肯定是会有问题的。不过目前也就我一个翻译,没有山泉、矿泉水,也只能靠我这个自来水解渴了。

17 日

今天下午加晚上「本来」计划是打算写作业的报告的,卡着下课的点完成了代码,不过嘛还是不了了之了。但是好在还是完成了代码,也不算是全无收获。

晚上又「点 ice cream soda」,还不止一杯。确实搞不明白我自己。

于是现在就剩半个多小时。不过也无所谓了,今天也没啥想写的。

操场

预定了个下周六的体测,于是今天跑步前顺带试了下引体找下手感。12 个,还可以,毕竟没抹粉。上学期的时候似乎是两周前还不到十个,然后手疼了一周没练,最后 18 个?

最希望当然是做个 24 个,不过可能不太行,但 20 个是下限。

来的路上看到了月亮,手机的智慧推荐还有提到这个月亮好像还有啥特点什么的,于是我掏出手机想要拍照。话说回来,我越来越是打破以往的常规了,像是高中的时候还没那样,但 2022 年时就深似海了。不过这也说明不了什么,即便如此我拍的照片还是依旧非常非常少的。

但其实效果非常非常差,差不多就是上图那样。跟我眼睛看到的完全不一样,还是肉眼看的漂亮,轮廓清晰。于是就打算收回手机就此作罢,只不过又想到了中秋没见到月亮的遗憾,最终还是拍了一张。用了所谓的「夜景模式」,其实我也不懂摄影,就随便拍拍而已。

不知道操场这个是干啥,占着跑道了。估计是之后有啥节目吧。

因此,我的跑步路线就成了这样:

状态其实不是很好,因为要折返跑挺难受的,而且没有一个明确的节点供我参考,跑步中的体验也远不如之前的感受,感觉差点半途而废了。但结果却意外的还不错,也许正因为不能参考,才让我不会像之前一样节约体能在舒适区跑吧。

为啥这么晚呢?引体也用不了多久。主要是八点半后还在「吃」,于是拖到了差不多九点才出发。近段时间似乎都没怎么准点去了(除了这周二,即便如此还是晚了一会儿),这不太好,明天还是要准点去比较好。

防御

这话题已经持续唠了一段时间了,只不过今天只是再对上面作出一点补充。

上面说的仿佛我是一个毫无担当与责任心,尽是耍些阴谋诡计、歪门邪道的人,但实际上我要为自己辩护一下。

「自贬」确实常常会作为起手式出现,但在此后能常常被施展,也正是源自我的无力感。

也就是说,我要是能意识到我有能力解决问题,就不再会使出这招了。像是能派上用场的话,我也会是非常高兴的,并勇于去做些任务。

在后面频繁送出,恰恰是因为我已经发觉我的无能为力,承担不起他人的信任,才被迫使出这招来进行防御的。

即便如此,上面的观点依旧是成立的,我还是不认为这是对的。而且这也仍有着推卸责任的嫌疑,毕竟在其位谋其政。

唉,一切的一切都还是源自于太过弱小、没有力量,要是能有可以与我所追求的相匹配的能力,我也便不会如此感伤了。但正因为我没有这样的能力,它也才会是我所追求的吧。

还是要挑个靶子打,万恶之源就是这该死的 peer pressure,没这逼玩意我也不会在这里哔哔哔好几天了。

B 站

朋友圈就要履行它的职能。之前也有分享过文章,现在还可以来分享视频。

今天看到某 up 推荐了个视频:苏联讹诈 美国空袭,六十年前 中国原子弹工程始末!。本来看到是 Q 总精选,那质量肯定不差,只不过挺长的,倒也没第一时间看,而是下午下课后看的。

电子榨菜时长都不短,一般我都是 2 倍速,甚至 2.5 倍速看的,语速尤其合适。但这个视频当我习惯的开 2 倍速时却发现有点不太匹配了,最后是 1.5 倍速。

质量可以说是相当的高,比很多高粉丝量的大 up 的视频质量都高不少。不管是信息、文案、情绪调动还是配音什么的,都非常好。本来一开始这个配音我听着还有点难受的,但最后的情绪调动非常好。总之这个视频其实让我学到了不少,不仅仅是个「下饭」「打发时间」的电子榨菜。

属于是播放量配不上质量的水准,看的时候是 10 万出头,现在也才 20 万出头。

再看 up 居然只是一个新人,第一个视频,就更震惊了。不过也有猜测 up 背后有人,很多名 up 都有推荐,虽然说我「半关注」[5]的只见到了一个。

果然是新人中卧虎藏龙。八月时就有一个,看的时候播放量才几千,现在也快两百万了,估计明天就能破了。然后这也是让我有了重建收藏夹念头的一个视频,这个私博中有提到过。十月又有一个,一样是看的时候才几千,现在也正以极快的速度增长,已经一百六十多万了,甚至有希望超过前者。

给了个关注,虽然说我经常看的其实不怎么关注,但还是有点期待后面的产出的内容的质量。

好了,不到三分钟了,也就这样吧。

18 日补充(不打算再下面再开了,就在这里补充):今天这播放量也没涨多少啊,真的是奇怪。这质量,播放量再加两个零我都不觉得有问题的。

18 日

我嘞个仙之人兮列如麻呀。这个月中期很勤耕,后面这样壮观的场景也许不会再有了。

跑跑跑,跑跑跑

昨天那个设施证实是演唱会用的了,明天似乎有个活动?不过看天气预报明天或许有雨,但也与我无关了,今天已经把明天的跑了,明天得上课。

但这个天气预报看看就得了,本来下午看到还说后面会下雨呢,都要窃喜有「不可抗力」了。结果晚上再看就是明天有雨了。

今天也许是「试演」?那个声音真的是震耳欲聋啊,靠近那一刹那我非常后悔没有带耳机过来。

非常佩服那些去演唱会的人了,那个大灯还有声响,感觉不是我能承受的。

今天的成绩佐证了昨天的观点。

今天因为短裤,跑着确实是比昨天穿长裤舒服一点。

所以说,这个障碍,虽然说打乱了我的节奏,但反而能激发出我的潜能来。或者不能叫潜能,而是「保守」而储存的体力。

这不仅反映在跑步这一件事情上,其实在其他做的事似乎也能得到一些印证。

常常做事情会「留一线」,比较保守,比如说第一步可能做个 90%90\%,每一步都储存一部分「体力」,以此类推,最后的成绩可能也就那样。

但是要是遇到了一些障碍,例如说就像是跑步途中横贯跑道的舞台,打乱了我的节奏与规划,让我失去了对未来的「预知」与「规划」能力。在「奔跑」途中,也会感到更加疲惫了,同时也有着对于无法把控节奏的慌张与恐惧,也曾幻想着是否要半途而废、中道崩砠。但最终结果反而是逼出了我的「库存」,让我背水一战,不要再有什么私藏(当然还是有的,只是量不好把握了),结果却更好。

如果说之前是 0.9×0.9×0.9×0.9 \times 0.9 \times 0.9 \times \dots 的话,这样的「混沌」可能就是 0.6×1.5×1.2×0.6 \times 1.5 \times 1.2 \times \dots,很痛苦,但是结果很好,说明能力绝不止这么点。

所以说仍旧是没有尝试去触摸极限。要是说能力范围是个圈的话,或许我的舒适圈还只是圈中的一点罢了。

凡事都想完全掌控的控制欲,以及害怕受伤的恐惧,遏制了我扩大活动范围的念头,也熄灭了成长的火苗。

可惜的是,跑步的极限好破,只是我真正的志向所在,又有怎样的横栅之物,来给我「惊」与「喜」呢?

击键

前面似乎没提到过,9.27 的时候我重置了 showKeyBoard 数据库,即把数据库备份了一下,然后删掉了,从零开始。

因为之前遇到太多的问题了,就想着是不是中间出现过 breaking changes 的缘故。果真,重置后现在过了差不多三周,之前的问题一个现在都没遇到了。

24 日补充:收回前言。再一次遇到了一些问题。启动问题又出现了两次,今天早上是第二次。同样的,Windows Terminal 在近期尺度可以显示击键数目,但在更广的尺度上变成 0 的问题再次出现了。

25 日补充:gvim 记键问题也再一次遇到了。昨天大书特书了挺多内容,结果统计出来键盘 1 鼠标 6,未免有点太幽默了。

本来这不太值得讲啥的,但是今天意义非凡,那就是恭贺我们的王 Windows Terminal 登基称帝,大破 4w 大关(键盘按键)!

每周五的击键数都会特别多,因为上午概率论与下午数据结构与算法都不是省油的灯。尤其是下午,别说,打英文真的太爽了,爽感是中文完全无法体会到的。真的太舒服了,导致明明很多都可以直接复制粘贴,但我还是坚持一个词一个词自己打出来。

但是今天呢 Windows Terminal 大破 4w 大关,最终大致定格在 4.5w。我还记得下午第二节课时结束的时候看了一下还是 3w 出头,想着今天能不能破一下之前的 3.6w。结果下课(还补打了上课时漏记的部分课件内容)后一看,3.9w,基本是只要晚上做点事情,就稳破 4w 大关了。

这个事情,要么是补笔记,要么就是做作业了。最终选择的就是昨晚没做完的报告作业。当然其实要是我再勤勉一点,5w 都不是梦。

插一嘴,《人工智能导论》作业是用百度网盘上传来交作业的,着实是离谱。用邮件或者是 Box 都可以,但是用网盘确实是我闻所未闻了。要不是这个作业,我都不知道百度网盘还有个收集文件的功能。

9.30 的时候应该破了键盘总按键数,达到了 5.4w,今天大概还能破?

也是在这一天,J 5665,似乎破了它个人纪录?不过现在也无人问津了。后面还破了一次 5k,但也意义不大,没能引起啥水花。

时间不早了,也许还有挺多能聊的,但也只能等后面再说了。

20 日

我今天在距离明天还有五分钟时过来,不是为了说别的,而是为了说我不是来这写的。实际上我刚刚结束了私博那边。

这周末又是啥也没做的一周末。不过不要紧,今天中午为啥没午睡、下午为啥没做事?因为我在看「青诡」。晚上为啥又没做事?因为我在为「青诡」写东西。没啥可说的了。

另外再稍微补一点内容吧。

昨天中午去食堂时看到的。我也想吃,我也想喝。可是想吃别人的食物真是没家教诶。不过吃饭时没太注意这边,走的时候才发现已经风卷残云了。

就这样,还有不到三十秒,完结。

24 日

距离跑步还有不到一个小时,稍微写一点吧。

Windows

偶尔会遇到一个问题,把笔记本带到教室,解除休眠状态后,屏幕亮度非常低。而且通过 Fn 键升高亮度,不增反降。当然降低亮度还是会正常降低,而且速度更快。只有通过右下角的小面板手动调整亮度到最高点才行。

即便如此,这个所谓的「最高亮度」仍然还是挺暗的,只是好歹还算是能看了,不像初始那样暗。

终于一次难以忍受后,去设置那边摸索了一下,竟然偶然间发现了一个解决方案,而且经过了两次实验都成功了,成功率 2/2 = 100%。

那就是先用 Win + I 打开设置,然后到「系统>屏幕>高级显示器设置>自动管理应用的颜色」,弄一下这个选项就行了。

我说的是「弄一下」,倒没说是要启用还是关闭(我这里是关闭的),只要切换一下这个选项的状态,就能恢复了,后面这个选项具体如何倒是没啥印象,起码对于这个问题来说。

另外 24H2 的新闻都见了不少了,结果现在还是没给我推。反倒是好像昨天有了个 23H2 累积更新,一直到今天都没能更新成功,简单搜索了一下错误码可能与权限、空间等有关,不过没深究。毕竟之前也有个 PowerShell 更新一直失败,后面不管了后,再看时已经可以了。

蠢哭了

唉,被自己蠢笑了。

前些日子里,看牙膏差不多用完了,于是买了个新牙膏。

然后我比较懒啊,这种没立刻用到的物品就先还是放快递盒里了,只是稍微拆开了个包装看看样子。像家里寄来的新衣服,我现在也还没拆包装。

后面有一天晚上吃糖。这个糖要描述一下,它是瓶装的,然后每一颗还又有一个外包装。家里人买的寄过来,还挺多瓶的。一颗一颗吃比较浪费时间,因此我基本上是以瓶为单位吃。

这样问题就来了,每一颗的外包装垃圾该如何处理呢?要是丢到垃圾桶里,那吃一颗就要转身丢到垃圾桶中,挺麻烦的。若是就放在桌上,然后吃完后一齐清理到垃圾桶,又容易散落开来,掉到桌下,也是不便。

于是我将瓶内全部糖倒出来,然后每吃一颗,将其拿在瓶口上面,这样剪完就可以直接落入瓶中。吃完后,外包装垃圾也全部收集在瓶中,直接丢了瓶就行了。

但是这样还是不够好,那就是多了把全部糖倒出来的步骤。而且这样一来桌子上堆满了糖,其实也不太好。

于是那天我就有了个天才般的构想。我取了一个快递盒,将瓶子放在快递盒中,然后吃糖时把垃圾剪到盒中,这样一来,既不用将糖倒出来,又实现了收集垃圾的功能。只用最后把这个没用的,只是留下来以备不时之需的快递盒丢掉就行了。

然后悲剧就发生了。没错,我那个快递盒,拿的就是新牙膏都还没取出来那个快递盒。

我也不知道是怎么想的,明明那个快递盒里就有着东西。可能脑回路是这样的:找个不用了的快递盒,用来装垃圾,既然是不用了的,用来装垃圾的,里面应该有东西,于是我看着这个里面乱糟糟的快递盒(不知道一个牙膏搞啥防碰撞的气袋),以为这就是给我当成临时垃圾盒的玩意。

反正就是后面突然想到牙膏时,没找到新牙膏,才恍然大悟。

按理来说那就应该再买一个新的了,毕竟再怎么说那个也回不来了(确实无法挽回了,醒悟那天还稍微翻了一下垃圾桶,不过应该是不同一天,没找到)。但就是觉得有点亏啊,到现在也没有再买。其实现在买和后面买没啥区别,这个损失已经注定了,反而后面买会晚点才能用,也不知道我现在又是怎样执着于此的。

犯蠢的事不少,但这个算是一个比较值得说出来乐一下的。

《xxxx 在跑步》

这个顺序有点怪,本来写了 GGB 第一句半句话,然后看到 Linux 的消息,于是去了解了一下写了下面那段。继续了解相关内容,推迟了大概五十分钟左右才去跑步。

虽然降温了,不过今天还行,因为早上懒得收校服长裤,就穿了短裤。晚上跑步时脱了外套,果然短袖短裤跑着顺畅多了,虽然有点冷。

然后因为之前 T 的事情,虽然说已经很久没有用 T 了,但是还是想看看跑步的计时准不准,于是另外开了个计时器。事实证明还是比较准的,因此问题就出在 T 自己了,虽然我不知道为啥会差异这么大,全是 B 的锅。

最后是 10min45s 左右,新纪录。感觉可以保持挺长一段时间了,毕竟马上就降温了,后面跑步就要添衣了,很难再有这样相对比较好的体验了。即使是 11min 这个长期目标可能后面也很难摸到门槛了。具体的一般性和保底目标,要根据到时候的成绩相应地调整。

另外虽然时间是准的,不过距离还是吞掉了我 50m,明明这次没有不小心划掉的说。

GeoGebra

周二写机器学习作业时,需要画函数图象,搜了一下,结果意外发现了居然有了 GeoGebra 官方文档,还是 GitHub Pages。之前似乎官网上可能有类似的东西?不过搜索引擎似乎很少见到,至少我之前找答案一般最后是在一些论坛上找到的。所以无疑是件好事。看了看时间,建立还不足一年呢。

GitHub 仓库中有中文,不过是繁体。但语言切换中没有,所以说是机翻还是怎的?

话说回来,虽然说习惯看繁体字幕了,甚至可以说几乎无感知了,比起一开始的吃力好了很多,但是对于这些文字性质的,我似乎宁愿看英文机翻过来,也不太想看繁体,真的是看得头大。

Linux

有点哈人,看到 Linux Kernal 从维护者列表中移除了部分俄罗斯开发者的新闻。本来前几天刷 B 站看到了标题,以为是标题党什么的,实际上只是正好是俄罗斯开发者,移除原因是其他的,给人掐头去尾制造一个暗示,所以就没点进去看。结果刚刚稍微了解了一下,嗯……

当然我不太好评价什么,只是这似乎跟我理想中的开源精神是背道而驰的……

看了看 GitHub 镜像仓库那个 commit,没看到有评论还比较意外,不过看了看 PR 才释然,这才是我认识的会整活的网友。还是一样的,整这种活我是批判态度的,但是既然是后来者,我虽然理性上仍然不支持,但感性上却还是感觉这些无用功挺有意思。

噢,难怪没评论,原来是知乎上链接给错了,PR 上给了个新链接,这才对味嘛,这熟悉的感觉扑面而来。

唉,Russian trolls。唉,Finnish

顺带一提,巧了,10 月 24 日看到这个消息。

快捷键

imageCompression.pyw
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
32
import sys
import os
import subprocess
import shutil
import time

def compress_image(file_path):
base_name = os.path.splitext(os.path.basename(file_path))[0]
extension = os.path.splitext(file_path)[1]
temp_file_path = os.path.join(os.getenv('TEMP'), f"{base_name}_{int(time.time())}{extension}")

try:
startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
result = subprocess.run(['ffmpeg', '-nostats', '-loglevel', '0', '-i', file_path, temp_file_path], check=True, startupinfo=startupinfo)
if result.returncode == 0:
original_size = os.path.getsize(file_path)
compressed_size = os.path.getsize(temp_file_path)
if compressed_size < original_size:
os.remove(file_path)
shutil.move(temp_file_path, file_path)
else:
os.remove(temp_file_path)
print(f"Compressed file is larger than the original for {file_path}, skipping replacement.")
else:
print(f"Error compressing file {file_path}")
except subprocess.CalledProcessError:
print(f"Error compressing file {file_path}")

if __name__ == "__main__":
for file_path in sys.argv[1:]:
compress_image(file_path)
imageCompression2JPG.pyw
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
import sys
import os
import subprocess
import shutil

def compress_to_jpg(file_path):
base_name = os.path.splitext(os.path.basename(file_path))[0]
temp_file_path = os.path.join(os.getenv('TEMP'), f"{base_name}.jpg")
output_file_path = os.path.join(os.path.dirname(file_path), f"{base_name}.jpg")

try:
startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
result = subprocess.run(['ffmpeg', '-nostats', '-loglevel', '0', '-i', file_path, temp_file_path], check=True, startupinfo=startupinfo)
if result.returncode == 0:
original_size = os.path.getsize(file_path)
compressed_size = os.path.getsize(temp_file_path)
if compressed_size < original_size:
os.remove(file_path)
shutil.move(temp_file_path, output_file_path)
else:
os.remove(temp_file_path)
print(f"Compressed file is larger than the original for {file_path}, skipping replacement.")
else:
print(f"Error compressing file {file_path}")
except subprocess.CalledProcessError:
print(f"Error compressing file {file_path}")

if __name__ == "__main__":
for file_path in sys.argv[1:]:
compress_to_jpg(file_path)

不知道之前提到过没,图片压缩的 VBS 脚本改成 Python 了,同时使用 pyw 后缀避免控制台黑框闪屏。不过我另一个 pyw 脚本,通过 PowerToys Run 运行还是会有黑框。

但改 Python 原因不在此,而是因为我造了个 Win + Y 快捷键(当然还有对应的 Shift 版本)来进行图片压缩,这样就方便许多了,我也不用这几个脚本到处复制,存得到处都是了。

1
2
3
4
5
6
7
8
9
10
11
#y::{
ClipLists := GetSelectedPath(), ClipSaved := ClipLists.saved, clip_result := ClipLists.path
ScriptPath := A_ScriptDir . "\scripts\ImageCompression.pyw"
Run("pythonw `"" ScriptPath "`" `"" ListJoin(StrSplit(clip_result, "`r`n"), "`" `"") "`"")
}

#+y::{
ClipLists := GetSelectedPath(), ClipSaved := ClipLists.saved, clip_result := ClipLists.path
ScriptPath := A_ScriptDir . "\scripts\ImageCompression2JPG.pyw"
Run("pythonw `"" ScriptPath "`" `"" ListJoin(StrSplit(clip_result, "`r`n"), "`" `"") "`"")
}

咦有点怪,居然没用 Format 吗?现在懒得改了。

另外不只是用 Python 重写了,还额外加入了大小判断。之前遇到过好几次「压缩」后大小不减反增的现象,但迟迟未进行修正,重写过程中也解决了这个问题。

不过这个重写也过去蛮长一段时间了,现在才说,有点迟了。

这样后,我的笔记图片会方便一点。但其实还是不够。我现在想一下制约笔记添加图片的几个比较大的影响因素。首先是 Zathura 放大后,部分 PDF 重新变清晰的时间比较长(我说的就是《数据结构与算法》课程),所以我得先等一段时间。然后就是截图、命名、移动、插入这个流程,我觉得得抽个时间研究一下如何加速这个流程,现在这个还是太慢、太慢了,体验很不顺畅。

另外上面的图片压缩也并非是万能的,应该是昨天就遇到了一个问题。

昨天旧的书院群发了个集体合照,没错,就是那个我军训期间我为了午睡多睡会儿没去拍的那个。足足有 100M,当然对于专业的摄影师这点大小应该是远远不够看的,但对我来说其实已经是庞然大物了。

写到这里突发奇想去看了看我文件中大图片情况如何。最大一张不到 80M,也是一张照片,只不过尺寸没合照那么夸张,5483x3157。但还是令我蛮震惊的,毕竟只是一张封皮的图片,居然可以这么大,说实话若不是不想破坏收藏本身,完全可以处理一下的,因为对我来说这个意义真的不大。

然后基本上名列前茅的都是源自一个收藏的,然后还有几张不是这个收藏,但是同类。

第一张非那类收藏的,不过也能算收藏吧,就是一张地图了——广东省地势图-1:170万-4开.jpg,51.6M。看了看时间是去年七月中旬那会,在官网存了几张地图,不仅仅有广东的,还有江苏、苏州、南京、全国、世界地图。即使是一个区域的地图也存了不止一份,总大小 360M。

最大的应该是世界地图,107M,其次是全国地图,都是 eps 文件,因此 Everything 图片没计入。

嗯原来这个文件夹我有存下载地址呀,只不过直接放在文件名是不是有点懒了呢……地址在这,上面的链接就别点了。其实还有另外两个链接,但不打算看了,再扯远别的还怎么写,下载地图应该就是前面那个了。

再排开各式各样的收藏,然后就是苏州校区地图了吧,33.4M。还是很多收藏,所以再讲几张就算了,收藏占据了大半江山。有几张冰壶的动图,转的博文应该也有?几张 10+M 的,突然有点心疼……还有一张初中合照,原文有,博文无。

啊啊,扯远了。说回到书院那张大照片,我现在一拿到图片,尤其是大图片,第一个想法就是 Win + Y 压缩一下,结果呢毫无动静。试了几次后还是无果,直接命令行用 FFmpeg 才发现有报错。FFmpeg 输出为 png 时膨胀到 300+M。不过这个我也没想要刨根问底,最终就是删了了事。

话说回来,我现在 D 盘空间很紧缺呀,已经不足 50G 了。虽然说这可能与我 SeaDrive 布置在 D 盘,同时还肩负部分收藏的重任有关,但确实是有点少了。

然后再看了一下,WSL 空间也膨胀了不少。WSL 大小持续是 55.6G 很长一段时间了,但实际占用空间之前还不足 40G,而现在已经 51.3G 了。大小这么大的原因可能是,之前尝试过把 /dev 中的一些设备,例如 random 输出到文件了一下,虽然后面又删掉了,但可能有一定的关联吧。

所以说 WSL 膨胀应该才是主因?这个后面有时间调查一下。

再话说回来,话话又说回来,WSL 最近也有点问题了,可能不只是 WSL 的问题,还有部分 Windows 的问题,就是内存占用已经比之前高不少了,而且 CPU 占用率也有上升的趋势。好的话说回来,话说回来我本段开头一开始是想说什么呢?可能就是想说我这一段跑题太多了吧。

哦对了,应该还要稍微提一下 Start.ahk 改进的事情,一样是挺早以前的事情了,不过现在提一下倒也挺好。不过现在去洗澡就更好了。

Start.ahk
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
AHK_Dir := "C:/Program Files/AutoHotkey/"

Scripts := [
{path: "Basic/Abbreviation", admin: 0, dir: 1, recursive: 0},
; {path: "Basic/Correction/AutoCorrect.ahk1", admin: 0, dir: 0, recursive: 0},
{path: "Basic/Correction/Pinyin.ahk", admin: 0, dir: 0, recursive: 0},
{path: "Basic/Remap", admin: 0, dir: 1, recursive: 0},
{path: "Basic/Window/WinDrag/main.ahk1", admin: 0, dir: 0, recursive: 0},

{path: "General/Common", admin: 1, dir: 1, recursive: 0},
{path: "General/Health", admin: 0, dir: 1, recursive: 0},
{path: "General/Specific/Vim", admin: 0, dir: 1, recursive: 0},
{path: "General/Specific/VSCode.ahk", admin: 0, dir: 0, recursive: 0},
{path: "General/Specific/WindowsTerminal.ahk", admin: 0, dir: 0, recursive: 0},

; {path: "Project/Vark/main.ahk", admin: 0, dir: 0, recursive: 0},
]

normalizePath(path) {
return A_WorkingDir "/" path
}

executeScript(path, admin := false) {
ahkType := path ~= "\.ahk1$" ? -1 : path ~= "\.ahk$" ? 1 : 0
if (ahkType == 0) {
return
}
if admin
Run(Format("*RunAs `"{1}`"", path)) ; Should add #SingleInstance force in script file
else {
if ahkType == -1
Run(Format("`"{1}v1.1.37.02/AutoHotkeyU64.exe`" /restart `"{2}`" LAUNCH_FROM_START", AHK_Dir, path))
else if ahkType == 1
Run(Format("`"{1}v2/AutoHotkey.exe`" /restart `"{2}`" LAUNCH_FROM_START", AHK_Dir, path))
}
}

processItem(item, recursive := false) {
path := normalizePath(item.path)
property := FileExist(path)
if (InStr(property, "D")) {
loop files path . "/*", recursive ? "R" : "" {
executeScript(A_LoopFileFullPath, item.admin)
}
} else if (property) {
executeScript(path, item.admin)
}
}

for index, item in Scripts
processItem(item, item.recursive)

大约是两周前重写了一下 Start.ahk,主要应该就是加入了可以执行一个文件夹下所有脚本的功能,顺带稍微改进了一点可读性。

再稍微讲一嘴 Linux 那事。我本来还有点纳闷,写 GGB 好好的,咋突然就看到 Linux 的消息呢。结果刚刚就复刻了一下,估计就是写一半,按捺不住躁动的心,东西到处看看。刚刚也是,结果就是在相同的地方,一个完全八竿子打不着的地方看到了这个信息。当时估计就是第二次在一个完全不同的媒介看到了消息,因此勾起了我的兴趣去了解更多内容。

KaTeX\KaTeX

近期记笔记,主要是《机器学习》的笔记,引用前面的公式比较频繁。一开始就是这样朴素的 equation 加手动打标记:

1
2
3
4
5
6
7
$$
\begin{equation}
xxx
\end{equation}
$$

xxx $(1)$ xxx

但是这样实在是不「优雅」。加上这个标号,要是不记得对应关系,还得自己回去往上翻,很不好。

这时候自然就是 KaTeXers\KaTeX \mathrm{ers} 群众的智慧了,在 KaTeX issue #2003: Support \eqref and \label 下的一条评论找到了一个 alternative,我稍微加了点内容,同时改了一下 id 的前缀:

1
2
3
4
5
6
7
8
9
10
trust: (context) => ['\\htmlId', '\\href'].includes(context.command),
macros: {
"\\eqref": "\\href{##label-#1}{(\\text{#1})}",
"\\ref": "\\href{##label-#1}{\\text{#1}}",
"\\label": "\\htmlId{label-#1}{}",
"\\@eqref": "\\href{##label-#1}{(\\text{#2})}",
"\\@ref": "\\href{##label-#1}{\\text{#2}}",
"\\@label": "\\htmlId{label-#1}{\\tag{#2}}",
"\\@@label": "\\htmlId{label-#1}{\\tag*{#2}}",
}

后面这样

1
2
3
4
5
6
7
$$
\begin{equation}
xxx \label{1}
\end{equation}
$$

xxx $\eqref{1}$ xxx

就可以了。

加的 @ 命令是为了匹配更复杂的使用情况,例如说想要自定义 HTML id,同时与显示内容不一致等。为啥不用 star 呢?因为我一开始以为不能定义 star 命令,而 \makeatletter 默认启用。但我刚刚又看了一下,有 \@ifstar 命令……但我还没试过,有机会试试吧。

既然说了这个只是个 alternative,自然还是有着不能尽善尽美的地方的。但时间已经不多了,不足四分钟了,明天,明天我们再好好谈谈。

好的,到了魔法日了,继续聊。

这个方法的缺陷在于,它实质上没有改变什么,依旧是需要手动更新索引。也就是说一旦计数器跟之前不一样,这些 \eqref\label 也得更新。

那这玩意还有啥意义吗?当然还是有的,除了上面说的,可以查看公式出处外,其实从源码层面上,也能更清晰地展现这是一个公式引用。就像 \backslash\setminus 的区别?(这个例子举得不太好,因为这两个命令本身显示上就有区别)

有关这个公式引用的问题,其实 issue 下方还有在讨论,也有人应该在做相关的工作。其实现在除了等待这个特性被人完成并合并入主分支外,我也别无他法。只能期待这个功能早日实现吧。

但除此以外我其实还发现了另一个东西,叫 Temml。据称是实现了这个功能,而且从主页上看,它宣称支持的命令与 MathJax\mathrm{MathJax} 一个级别,比 KaTeX\KaTeX 多。

说实话这挺诱人的,有时间的话我很想尝试一下。

但是若是要迁移的话,其实是个大工程。我的笔记已经非常非常庞大了,要我逐个去检查有没有出啥稀奇古怪的问题是不太现实的(尤其是我还搞了很多很难复用的微调,很可能稍微动一下高塔就顷刻倒塌)。

此外,简单查了一下 Hexo 似乎是没有相关的插件支持的。若要迁移的话,可能还得靠 Copilot 帮我写个插件。

但是呢,还算是长知识了吧,除了两大巨头外,似乎又有新兴力量崛起了(四年了,也不算新了吧)。

有时间的话,我还是想去实验一下的。

25 日

先不打算继续写昨天的公式引用,因为我感觉要花点时间,毕竟还需要找一点链接,而我没保存。先谈点比较短的吧。

GIMPS

看到新闻,第 52 个梅森素数发现了,是 213627984112^{136279841}-1

当然,仅仅是这个消息其实是不足以让我在这块板上给它提供一席之地的。关键的是它的发现者,也是近 18 个梅森素数的发现者——互联网梅森素数大搜索(Great Internet Mersenne Prime Search, GIMPS)组织。

这是因为我曾经参与过 GIMPS 的计算任务中呐。可以说是挺久远的事情了,甚至不知道那会第 51 个梅森素数有没有被发现(2018 年 12 月 21 日)。

大约是初中的一个假期,可能是暑假吧,不知道从哪里了解到了这个项目,顿时被感动到了,感觉这个非常有意义,而且即便是普通人也能贡献自己的绵薄之力,积小流以成江海,不比挖矿啥的更有价值?于是就下载了它的软件,算了一阵子。

不过跟现在的我一样,热情来得快,去得也快,算了一段时间后就渐渐遗忘了,后面可能开学后,抑或是 MC[6] 调整后,可能软件还存在了一段时间,在我印象中。再到后面大调整,也许是中考那阵子?就最终消失了。

没想到再一次看到它,就是新的梅森素数被发现的新闻了。有点感慨,即使不知道该感慨些什么。

体测

本来不打算加入这一节的,但是我发觉到一开始比较适合在开头讲的内容忘了说,直接补充上去,顺序又不太好,于是就开个新节吧。

明儿去体测,看看身高有没有突破 180cm 大关。另外还有体重,现在不奢望能突破 55kg 大关了,别超过 57kg 就行了。

想初中那会,我还能沾沾自喜不过 50kg,现在 55kg 都已经离我远去了。这让我看着 52kg 那家伙,有点不服气。

不过他 BMI 17.9 左右,我要是按 56kg 算那就是 17.2,还是足以自傲的。

身高这东西,超过一定界限后就是种烦恼了。初中的时候身高还是班上垫底,而现在,即使是班上最高的那伙人,当时我还只能仰视,而现在却能平视甚至俯视了。

转机似乎在高二?不过这不是我要谈论的重点。总之就是,身高后,腿会特别累,无处安放,很不舒服。

唉,小时候,尤其是小学特别希望能长高。当然这可能有某个原因的影响,这个原因值得后面在私博回忆一下。但现在却不这么想了。

但长高了的总不可能萎缩回去吧?起码短时间内不会吧,也只好接受这个不太满意的现实了。这么看来,虽然我能俯视他,但还是给他扳回一城?

不对不对,我怎么能拿现在跟他比呢?要是拿我当时跟他比,52kg 我也未必没有底气呀。

这只是其中一个要聊的。另外一个就是今儿的跑步,成绩差多了,比昨天慢了 45s 左右,勉强跟标准线齐平。

分析了一下可能有两个原因,一个是可能跑前(大约一个小时)喝了牛奶,而乳糖不耐受我之前也提到过了,现在肚子又开始咕噜咕噜了。还有一个应该就是腿的问题了,今天跑时腿比较沉重,第一圈慢了五秒多,后面就更是断崖式下跌,腿很累。可能是这周连跑的原因?不过明天可以休息了,这很好。

另外就是这个标题了,明早要去体测。上周拉的引体,现在胳膊基本不痛了,明天战斗!

快到了

今天是 10.25,离万圣节还有不到一周,距离另一个日子也快到了。嗯,没错,就是快到了。每次想到我都有点想笑,写这个就是来拷打他的。

另外今天要是有机会的话去私博那边也补充点内容吧,主要是今天看到了 M8,太好了,感觉我不得不为其打开私博。

夜宵

晚上回宿舍路上发现十七食堂有夜宵了。思绪顿时回到了高三那会。

高一高二我是不吃夜宵的,那时一下晚自习就是飞奔回宿舍抢电梯。

但是在高三却吃起了夜宵,而且基本上是天天吃。吃的是啥香喷喷的东西(我没啥生活常识,加上时间有点久远了,就不一一列举了),或者是炒粉炒饭什么的。非常香,比正餐,不管是深中还是南大的正餐香。

那会吃夜宵跟我现在吃饭一样,看手机了解点资讯。不过那会倒是真正是在了解资讯,毕竟虽然还是常常玩手机,但不管怎么说时间还是比现在短上不少的。还记得江泽民前主席逝世的消息似乎就是晚上吃夜宵时看到的。

奇怪,我看了看日历,那天是周六,我咋还能在学校吃夜宵呢。

27 日:可能是周日回来的晚自习看到的?不过看了看消息一样还是周六的呀。不过无所谓了。

记事注解

这个也是前阵子就有过的想法,然后今天上面的脚注也能看出来。

其实记事这边我还是藏了不少隐语,有的明显能看出来是不知所云的,直接就能诱导我去思考、回忆,但还有的是完全嵌入了行文当中的,完完全全就是原文逻辑当中的一部分了。若没有最初想法的记忆,粗看时只会很快掠过了,这跟我留隐语的初衷就不符了。

因此我其实有一个想法,为记事写「注」,这样一来,即使是时间长了,我一样可以了解自己隐含的深意。

当前其实有几个障碍,因此目前只是脑海中的构想,像前面不少想法一样,没有留存下来,待记忆消散后可能就不再会提了。

最为关键的应该就是怎么作注?显然是不可以直接放在公博的,必须得是隐私的内容。但是这就涉及到了公私博的内容同步问题了:公博内容更新,作注的载体也会相应的变化,如何同步这样的更新呢?如果是作注的对象本身发生了更新又该如何是好呢?这个问题的具体表现就是,作注的语法该是什么?

我倒是找到了一个心仪的语法,没错,还是 MkDocs 的,那就是它的 Annotations 语法。

不管如何,这算是未来博客发展的一个目标吧。

WSL

今天下课后一时兴起,没回宿舍,一直呆到了吃晚饭时间。虽然说主要不是干这个,但最后稍微干了点,那就是清理了下 WSL 的空间,现在已经不足 40G 了。

主要就是使用了 ncdu 来查看空间占用。

最后发现 ~/.cache 占用空间非常恐怖,尤其是 pip 的,使用 pip cache purge 清理掉了。还有就是 VS Code cpptools 也不少,直接删掉了。另外之前做机器学习作业时错装的 PyTorch 也删掉了,全局重装了,大大减少了空间占用(之前直接 pip install torch……)等等操作。

说到这个 VS Code cpptools,也不知道是什么问题,我现在 VS Code WSL 打开 C++ 文件性能非常差,写一段时间后风扇狂转,CPU、内存都挺高,之前还不太会这样的。而且后面代码分析会一直转圈,这时候连变量重名名都不行了,必须要重新加载窗口才行。于是我直接删掉缓存也有这一方面的原因。

笔记

这段时间其实比起月初那会,没那么摆了。近段时间也稍稍看了看笔记,主要是《机器学习》与「概率论」(现在已经只有 100 人了,下次看估计就能下三位数了),修正了不少错误。

但其实还远远不够,笔记那边还记了很多待补充的内容也迟迟没有及时去补充。

本来想说下周大概有时间去补充一下的,但是下周《数据结构与算法》期中机考,而我笔记还没看过呢(严格来说,做平时作业时有直接拉到伪代码那里去看,然后敲几个字符后 Tab Tab Tab),于是估计又要继续往后推了。

即使是已经看过的笔记,内容其实也不足记的进度的一半,因此还是需要加点速啊。

现在看笔记的时间,很大程度集中在不太能联网的时候。例如说在周三游泳课来回的车上也只能看笔记了,抑或是食堂雅座也没网。当然,这种时候一般我会提前打开页面,即便是没网也能看笔记了。

还有一些能记的,不过呢是时候去写昨天的公式引用了。

27 日

今天真是个伤心日。唉,最大的悲伤,莫过于先给予与日俱增的希望,然后在最后摧毁掉吧……

本来不太想来写的,但是不来这里写又能做些什么呢?现在头也有点疼,可能又是染病了,估计跟早上淋雨有关。

然后伤心到晚上把跑步推迟到明天了。更气的是,本来早上雨,预报雨,我估计推迟也能算「不可抗力」了。结果晚上路就干了,我要补还是得补一天的份。

体测

今天才体测的。这是因为周六凌晨蚊子一直嗡嗡嗡,迟迟无法入睡,后面索性就下床拿手机上去玩了,玩到五点多,最后睡了不到三个小时,计入零星小睡。拿手机上去第一件事就是新预约周日同一段时间,然后取消掉周六的预约。后面中午爽睡快两个小时。

今天体测结果也挺悲的。身高看来是没涨啊,在家里时我感觉有涨,因为某一块地方之前是能擦过去的,而现在则会撞头。结果呢 178.5cm,从结果上看还是缩水了,不过之前的能穿鞋子。

体重更是悲。什么 56kg?58.5kg!冲击 60kg 大关了这下。感觉是家里的称不准,不然的话怎么会家里吃得这么丰盛、这么好,结果比学校吃得量这么点还轻 2kg 呢?

BMI 更是比不过了,我投降,我投降。

肺活量也比之前差,不过感觉之前的成绩也未必就是上一个同学保留的,毕竟我感觉我不太会吹,没用力吸气,也能吹差不多。

跳远跳了好几次,一直说我踩线,我都让了一点距离了。所以最后有个 2 开头的成绩我就懒得再跳了,反正也不记得之前是怎么样的。也是更差了。

唯一一个更好了的应该就是引体了。跳远跳多了我气喘吁吁,想要平复一下呼吸,玩了大概五分钟手机,但毕竟也没啥可玩的,没完全恢复就上了。不到十个感觉就有点吃力了,不过好在凭毅力还是完成了 20 个的最低限度目标。从感觉上来看,上次也是没尽力的,毕竟误解错满分了,不然感觉上次 20 个肯定没问题的。不过呢这次虽然感觉可能累点,但节奏还行,没有挂杆上调整一下的情况出现。

31 补充:忘了个体前屈,一样是退步了,推了两个,一正一负。这素质是越来越差了。

课程人数

现在看,「概率论」人数已经只有 96/184 人了。

现在有四次作业。我好不容易交了第三次作业,第四次又哼哧哼哧出来了。就不能给我留一个没作业的缓冲期吗,心累。《人工智能导论》也是,刚完成第二次,第三次又蹦出来啦。

不过这节重点不是这个。两次作业提交人数出来了。根据提交情况简单计算了一下情况:

  1. 第一次作业:133 人提交,其中 60 人大二,73 人大三
  2. 第二次作业:110 人提交,其中 41 人大二,69 人大三

这个比例看,大二退的人远远超过大三呐。

清理空间

清理了部分空间,现在 C 盘重回 90G,D 盘重回 100G。本来是打算将 D 盘一部分资料移到移动硬盘的,不过最后也没咋移,加上空间现在也不少了,也就作罢了。

用了工具箱里面可视化显示占用的工具来定位。主要有几个值得说的点吧。

首先就是 %TEMP% 目录罪魁祸首。其中又是 WSL 的锅最大,一个 wsl-crashes 文件夹装了 10 个 dmp 文件,占用 13G。

我全删了,同时 ~/.wslconfig 加了条设置限制为三个(没设置为 -1 完全限制死)

1
2
[wsl2]
MaxCrashDumpCount=3

还有一个 DiagOutputDir 有 1.6G,查了一下跟 WSLg 有关,这是一个 issue——WSLg generates a large number of RdClientAutoTrace files。有的用户甚至产生了几百 G。

这样算来,WSL 起码吃了我 20G,这次算是清了不少。

当然 %TEMP% 能删的我也先全删了,至少现在的空间占用还是让我好看一点吧。

一些东西 OneDrive 不知为何本来之前是释放的,但现在不是,然后又释放掉了。

还有就是软件了。之前存了不少软件安装包,想的是后面离线的时候可以再装。但实际想想意义不大,我装一般都是装最新的,若是这样还要去更新。而且离线场景可以说还是比较少的,约等于无。

于是大部分都删掉了,只有一些保留,例如说 TeX Live 的 iso 文件,这个太大了,更新也不多,因此就无所谓了。还有就是插件文件,例如说 LiteLoader 的一些插件什么的,这些我手动更新时会顺手把收藏那里一并更新了。

现在是拿了个空文件占位,后面可能写个脚本弄个映射表,换成 url 文件,直接打开下载页面,不用一个一个去搜索。

当然,其实还有一点就是等下次重装就可能会用上包管理器,例如 Scoop 之类的了,很多没必要再手动安装了。

此外还卸掉了一些可能不会用的软件。例如 Scoop,因为我现在确实没在用(诶不好说啊,但我还真的是卸了)。还有 OBS, Drawio, Zeal, Go 等等。Drawio 也给我从必装移到了选装。

TRY

尽力吧。已经不指望任何没有明确说明的消息了。还是将目光放在更脚踏实地的上面吧。

太坏了。

不过呢,11 后面还有 12 呢,只是我确实不敢再擅自期待了。

然后再想想,9.28 是喜,同时也有一点今日之愁,但更多还是喜。那下个月的类似时间点,以及年底三岛由纪夫的一部作品,是否会有这样的转折呢?

但当然我是不敢抱啥太大的期望了,有几张图就满意了。

31 日

月底了,而且还是 Hello Win,来写点吧。

今天本来应该是要复习明天的《数据结构与算法》机试的,不过呢从差不多两点半形策考完试,到现在十点,七个半小时毛也没做,可以说是稳定发挥了。

Typst

先聊个 Typst 吧。

通识课有个中期汇报,要做 PPT,当然时间其实晚了一周,但无妨。可能是因为近期 0.12.0 发布了,我一时兴起去学了点 Typst,具体就是把入门教程未完成的「小蓝书」一部分 Reference(看到了 Foundations,然后看了 Math)等简单过了一遍。

然后用了学长的 touying 做了个 PPT:

感受就是,以后我个人汇报的 PPT 就不再用 PowerPoint 了,一概用 Typst touying。

用的是 VS Code,而且还没咋磨合,有很多不便的地方,Vim 体验也没有原生顺手,还没有 Snippets。即便如此体验也还是很不错了,说实话我狠狠心动了,都有点想在作业、报告等中都平替掉 LaTeX\LaTeX 了。

看 Typst 教程的感受就是,一拍大腿,「对啊!就该这么搞嘛!」。然后写 Typst 时,我才发觉到我居然已经忘记了实时预览是多么美好的事情,我居然已经习惯了 LaTeX\LaTeXCtrl + S 然后等一会结果了(大文件还没尝试,MPE 的大文件预览也是慢得不行,博客的更是要等一段时间)。

我现在其实也没学多少,但我想相同的时间内 Beamer 我估计我都没整明白呢。

当然,更多的问题也会随着使用的深入而逐渐浮现,因此前面的冲动我也是一定要克制住,毕竟我的直觉告诉我前面是一个无底坑,又会要吃掉我不少时间与精力。

主要是要用 Typst,snippets 少不了,然后编辑器我也可能还想用 Neovim。用了 nvim 也许不想用 UltiSnips 了,改投奔 LuaSnip。然后 nvim 不学点 Lua 也说不过去吧……这样一来,又是沉溺于配置过程无法自拔了。

所以还是维持现状吧,寒假有空搞搞。

昨天还看了个机械键盘的视频。我是很能理解的,虽然说其实我不搞键盘,用的都是最便宜的那种。跟他们发烧于各种各样的轴体、键帽、人体工学等等类似,我也发烧于配置各种工具。也跟他们很多借口能够提升效率、有益健康等等一样,我也是打着提高学习效率的旗号这样做的。

要说有没有提高效率?那肯定是有的。但要说具体有多少呢?那还真不好讲。

但我是不好苛责我这个不多的喜好了,毕竟还是真的能学到点东西的,而且也不花钱,只是费时间,让孩子整去吧。

只是呢,这样看来我只是在一些小 trick 上比较领先,在很多正经的知识技术上就比较匮乏了。然而周围的人很少有看到像我这样折腾这些边角料的志同道合的人。

有点跑题了,其实我现在思绪也比较混乱。

再来几个稍微相关一点的东西吧。PPT 是周二那天晚上做的(上图显示今天是因为是我为了截图特意开的预览)。

说到周二那天也挺有意思,下午第一节华为的公开课,上课前特地去习概教室走了一圈签到,然后回到会场。当然抽奖苦手没中奖,只能捞个伴手礼,经典的本子与笔,只可惜我已经很久不写字了,一般只是打草稿画点东西和字母符号(当然今天形策考试写了不少,累死我了,也丑死我了)。

然后晚上有点没意识到要上课,六点出头才出门。当然比起极限那次到不算啥,只是呢我点了个排队很多的人的窗口。本来看很多人排的,于是我下楼还逛了一圈又回来,看没多少人就点了,疏忽了点完后去他处等单的情况,于是 25 才吃上饭。不过考虑到上次课也没签到的先例,看了看手机,这次也没发布签到,于是就悠哉悠哉吃饭,快七点才吃完。

然后去一楼随便找了个地方,插上插座开始写 PPT。当然其实一开始是坐着玩了会手机,然后大堂有个人好像在跟其他人视频,好像就是说啥同学们都有位置、插座,认真学习什么什么的,于是我有点羞愧,放下手机开始看电脑。

即便是周围不太安静,还是能专注于 PPT 的,甚至把跑步推迟了近一个钟,就是为了再敲一点。话说跑步,今天有雨,欠 0.5 天,而且明天似乎也有雨,好像是因为台风?喜,这下两天变一天喽。

然后那天用 VS Code 写了这么多,按键数据肯定不少吧?结果键鼠都只有两位数,这说明了 VS Code 已成为 gvim 后第二还是第三位被发现的受害者了。实际上也只有这些大牛被害后能被发现了,像是一些小门小户,给灭门了我都是毫无感知的。

11.1 补充:10.31 的 gvim 数据,键盘 0 鼠标 10。

笔记

早上上课复习笔记时有新的感触。那就是上课时有的时候,我是完全不知道我在记啥玩意的,纯粹是机械般地人工 copy 下来,没能跟上老师的思路,一脸茫然。但反而是重新回顾笔记时,当初很多感觉后面复习时得卡住的地方自然而然就搞懂了,通透了,这种感觉就很奇妙。

所以关键还是,终究是做不到一心二用吗?

或者说,我上课「记笔记」这件事情,在当时更多的还是关注在「记」这个动作,而非「笔记」这个载体与目标。

不过一开始我还会遮遮掩掩一下,现在我也会大大方方地承认了,我记笔记从来就不是为了希望能够掌握知识、课后温习、供他人参考等目的,或许有部分这些原因,但绝对不会是大头,我真正的目的就是「记」这个过程,我很享受这个过程,我感觉我在键盘顺畅地按下一个又一个的按键、屏幕上出现一个又一个文字与符号时,就像是在弹钢琴一般升华了(注:我没弹过钢琴)。也就是说我沉浸的就是「记」的过程,而非「记」的结果。

这可以说是近四年以来的因果,差不多四年前种下的种子,逐渐生根发芽,茁壮成长,并成长到了我一开始绝对没有料到的地步。

但冥冥之中自有天意,也许当那一天我被 Castel 文章里的动图深深地吸引时,就注定了我会走上这样一条「歪路」。

对现在的我来说这已经没什么了,不够劲。但对于当时未经世事的我来说无疑是打开了新世界的大门,相当震撼——帅,太帅了。

也许就是自那以后,我对数学的热爱,就转移到了对数学公式的热爱。我后面大部分的精力,都倾注到了如何更快、更好地打出精致优美的公式,而非公式本身的内涵与意义了。

教室中的学习

上周习概老师有事免了一节课,我忘了这回事照样背着我笔记本上课去,到了发现几乎无人的教室才想起来。不过来都来了,而且感觉教室学习效率会更高,于是还是留下了。为了方便我学习之余「休闲放松」,特地选了最后一排。

事实证明,的确是教室学习效率更高。

但其实我搞不明白为什么,宿舍跟教室的差别其实并不多,就在于几点:首先没有副屏,但这点无所谓的,我宿舍摆烂主要还是用的主屏;没有移动硬盘,但这其实也无关紧要,摆烂的主力军是 Edge,与移动硬盘里那点东西关联不大。其他就更没啥影响了,何况我还专门挑了个角落最后一排,连监控都看不到我在干嘛,就是为了方便我在教室都能随时开摆,但是结果就是在教室大部分时间都是在做作业。

当然没摆也是不可能的,只是呢仿佛攻守之势异也:在宿舍是学了一会,中间停顿时(比如装点东西,卡了一下等等)就会立刻分心去看点别的,时间非常碎;而在教室时则是看了会还是千篇一律,没啥好看的,还是回来继续死磕吧。

当然这其实就一次,也说明不了什么,也许下一次教室学习我就会摆大烂了。但我确实感觉这很有意思,到底是什么决定了我能否专注于学习呢?

Refined GitHub

一直在用一个浏览器插件——Refined GitHub,它的很多功能都是让我震惊「啊?居然不是 GitHub 自己有的吗?」的,可见是有多好用了。

突然注意到这个装了挺久的插件,倒也不是因为啥,而是因为看某个 commit 历史时,偶然间发现一些语义化 fix: feat: 等转化为了比较醒目的标签。也是让我挺惊喜的功能。

一开始也是以为 GitHub 更新了,去翻了翻博客没看到,才想到这个插件,查了一下更新历史果真如此

后面我还去翻了翻这个插件的其他功能,特别多,我还没读完,暂且搁置没读了,有时间再读。

Conda

我用了个 Conda 的 completion 以提供补全支持。

然而在使用过程中发现一个问题,我输入 conda install 然后按 Tab 看可用的输入时,会卡住,然后此时内存会飙升。一般这时候就会按 Ctrl + C 结束了,只不过按一次还不够,得多按几次:

然后有一次试了一下看看不杀会如何,下面是大致的记录。

首先就是内存上升。WSL 这边内存好像是给了 8G,这个就不停涨。到 70% 占用后还开始加速,然后到 92% 左右会掉到 85%,然后循环个几次,紧接着 Swap 会激增。后面 WT 还卡住了。磁盘占用也是拉满,最高内存占用可以到 6000+M。

上面第二张图倒不知道 btm(就是看这个进程状况的工具)为啥读速度也这么高。

后面读了一下 _conda 上面的说明,大致好像明白问题的缘故了,就是似乎是把整个索引下下来了。但尝试了一下解决方法也没整明白。于是直接找到 __conda_package_available 这个函数,第一行加个 return 废掉了这个功能。

另外我试了一下里面出现的 conda search --use-index-cache --json 命令,也没撑住。

闲聊

温水煮青蛙

然后这个月灵感基本上是完成了,下面就是随便聊点了。

今天辅导员 QQ 还找我了,确认我奖项只有个 EL 三等奖。然后说我成绩还是挺好的,就是奖项太少了,不够有分量,让我多参加活动。

我是深刻认可的。但其实并不是我不想参加什么活动,是没那个能力。每当我看到各种活动的内容时,我都要震惊一下,这是大学生能做的?真的假的?这种感觉像是井底的青蛙无法想象除了井口以外的天空,似乎视野一直限制在此了。

我也不是在妄自菲薄。我是有点能力的,这一点我确信。不过我能力的方向与很多人不太一样。就像是上面所写的那样,各种歪门邪道、奇技淫巧是我所擅长的,但是要正经的一些知识、能力与水平,我就真的是像竹篮一般,清澈的愚蠢了。

因此我也不由得感叹同辈,以及后辈的优秀,人与人之间的差距,即使是 10%(让我厚脸皮自称 10% 吧,这个数字不要紧)和 1%,感觉也比 10% 跟草履虫大。

这个现况也是我想要打破的,但的确是无从下手。像是迎面高速驶来一个物体,你的感觉与理智都紧迫地告诉你要赶紧离开,但你就是肾上腺素飙升,心提到嗓子眼,却迈不开步子,只能愣愣地注视着它快速接近。

我也不知道我想要学什么,因为其实千疮百孔,什么知识都匮乏,于是什么都想学一点,反而不知道该从何开始了。

打个比方就是,羊圈破了个窟窿,可以很有目的性地去将这个窟窿补全、加固。但如果羊圈已经风雨飘零,到处都是洞,反而不知道要从哪里开始补了。可能是因为贪心,明明不管补多大,只要开始补了总是好事。但是却常常纠结于每一步都要取得最佳,我第一步一定要先补个最大的窟窿,每一步都追求立竿见影,想要以最小的付出获得最大的收获。结果呢因为比不出一个最大的窟窿,一直是原地踏步,毫无进展。

这也能反映我并不像我所写的,或者同学说的那般淡然,我也是有着深深的焦虑与迷茫的。

唉,我还只是个十几岁的孩子,为何要直接将我放到大自然中野性地生存呢?我还迷恋在长辈的指引中,并不想独立成长。我想受老师、前辈们的引导,走在最舒服的康庄大道上,规规矩矩、按部就班地学习进步,并不想四处碰壁,迷茫无措。

这么看我心理还蛮年轻的呢,虽然说按难听的说法就是幼稚、巨婴了。

再随便唠点吧。

负反馈与零反馈

我挺喜欢「负反馈」这个属性的,也许是因为能从中看到自己的影子。

特别有意思,明明是应当给予正反馈的,但是呢就是不由自主地给出了负反馈。很喜欢这种心口不一、言行不一致。一方面狠狠地笑话他的幼稚,一方面可能也是在笑话自己吧。还有一种原因可能是因为,给惯了负反馈,当不得不给予正反馈时,冲击力会无与伦比的大。

只不过最近我还发现了一个新物种,那就是「零反馈」。零反馈这个可狡诈多了,负反馈虽然是负的,但起码还是有绝对值的,你取个绝对值就能看出在意程度了。但就像「喜欢」的反义词不是「讨厌」,而是「无感」一样,你输出越多负反馈,反而越证明了你越在意,从而让我等津津乐道,而波澜不惊似乎才是否定了这种在意,就像是所谓的「无言是最大的轻蔑」一样。

最有意思的当然不是那种真真正正的无感,而是伪装起来的「零反馈」。因为他并不是这么想的,但是他的行为似乎像是零反馈一般,捉摸不定,好像真的就是不在意了一样。这我觉得特别有意思,因为一不留神就会给他欺骗了,而且一步步撕下他的伪装,很带劲。

除了这两种外,还有一种情感表达的方式自然就是「正反馈」了,这种没啥可说的,我兴致也不高。

要说我本人的话,大致是「负反馈」和「零反馈」吧,可能偏向「负反馈」一点,毕竟我内心戏比较多,不像有的人心里话都在嘴硬、自己骗自己。很喜欢这样幼稚、别扭的情感表达方式,仿佛我还是一个无知无畏的孩童一般,笨拙又纯真。

这个月差不多就到此结束了,31 天有 11 天来写,挺笔耕不辍了。最后大小差不多是 106KB,虽然比不上 2023 年 12 月 118KB 的宏篇巨作,但是倒是远远超过了 2024 年 8 月暑假那会的 85KB,成为第三块大小上百 KB 的板子(只算公博就是第二块)。

那么,十一月见。


  1. 大概是更新到 24.04 后,中文输入法废了,期间稍微挣扎了一下,只不过现在还是不行。有机会还是要解决一下。 ↩︎

  2. 按我上面记的其实就是 a1,a2,a_1, a_2, \dots $a_1, a_2, \dots$,但是呢似乎还是 \ldots↩︎

  3. 实际上「课本」上的记号我一般都是一直遵守的。像是高中时的「补集」,我很长一段时间一直也是坚持使用 UA\complement_U A \complement_U A,然而课件、资料等大都是用的 CUAC_U A。只不过我现在也不管了,\complement 确实丑,还是 AcA^c A^c 方便。 ↩︎

  4. 真有意思,这个一开始是放在九月的,但其实当时已经过了零点,只是当时懒得新开,所以还放在九月。而九月时懒得写了,现在是写别的的时候联想到的。 ↩︎

  5. 指的是我没有直接关注,但会主动去看他的视频。一般是因为他除了发视频还发动态。 ↩︎

  6. 这个词可能需要添加注解,以免我后面看不明白了。 ↩︎