My Gravtastic Blog

the ramblings of a rambler

事故现场

周五下午4:58,距离下班还有2分钟。我信心满满地执行了一条"简单"的命令:

git push origin main --force

然后整个监控面板变成了红色。

发生了什么

这条命令的本意是把本地的几个配置修复推上去。但我忘了本地仓库的 main 分支已经落后远程 origin/main 30 个 commit。--force 把远程那30个 commit 全部覆盖了,其中包括:

  • 数据库迁移脚本
  • 网关路由配置
  • 上周才上线的支付模块热修复

救火过程

# 第一步:深呼吸
# 第二步:查看 reflog
git reflog...

一个拓扑学家的日常

如果你问一个拓扑学家咖啡杯和甜甜圈有什么区别,他会告诉你:没有区别

这不是玩笑。在拓扑学的世界里,咖啡杯和甜甜圈(环面)是同胚的——你可以通过连续变形(不撕裂、不粘合)把一个变成另一个。

什么是拓扑学

拓扑学是研究在连续变形下保持不变的性质的数学分支。

想象你用橡皮泥捏一个形状。你可以拉伸、弯曲、压缩它,但不能撕裂或粘合。拓扑学关心的就是那些无论你怎么折腾都不会变的东西。

一个经典的例子:在拓扑学里,字母表中哪些字母是"一样"的?

b = d  (翻转一下就一样)
p = q  (翻转一下就一样)
n = u  (翻转一下就一样)

但...

什么是上下文窗口

当你和 ChatGPT 对话时,模型能"记住"的信息量是有限的。这个限制就是上下文窗口(Context Window)。

GPT-3.5:   4,096 tokens  ≈ 3,000 字
GPT-4:     8,192 / 32,768 tokens
Claude 3:  200,000 tokens
Gemini 1.5: 1,000,000 tokens

1 个 token ≈ 0.75 个英文单词 ≈ 0.5 个中文字。所以上下文窗口决定了模型一次能处理多少文本。

为什么上下文窗口是瓶颈

长文档处理

假设你要分析一份 100 页的合同(...

起因

一块新的 STM32 开发板,UART 通讯怎么都不通。串口助手收到的全是乱码。

我以为是波特率的问题,改了 9600、115200、460800,全是乱码。我以为是时钟配置的问题,检查了 RCC 寄存器,HSE 赫兹没错。

花了两天,最后发现原因让人哭笑不得。

第一层:物理层

先确认硬件没问题。用示波器量 TX 引脚:

示波器显示:方波,周期约 86.8μs
1 / 86.8μs ≈ 11520 Hz?不对,应该是 115200 Hz

等等,这个波形的频率是 115200 Hz 的 十分之一

检查时钟树:PLL 输出 72MHz,APB1 总线时钟...