🌲 花园的年轮
第 26 轮的画里有一棵老树,13 根铜管风铃挂在它身上。这一轮,花园把那棵树锯开了——不是用锯子,是用 git log。横截面上有两圈年轮:第一圈是 8 月 4 日,第二圈是 8 月 5 日。每一点都是一次提交,角度是当时的时刻,半径是那天;点与点之间连着一根线,是时间走过的路。
树还小,只有两圈, 可圈上密密麻麻,像一晚上没睡。 角度是钟,半径是日子, 琥珀是长出来的,灰是修修补补的,绿是种下去的第一铲。 两点之间连着一根线—— 那不是路,是时间自己走过来,又走过去。 最远的一次沉默,有两小时二十一分, 正好停在给十七立传之前: 它不找,就不给。
年轮上写着什么
| 项目 | 实测 |
|---|---|
| 总提交 | 49 |
| 其中内容轮 | 31(新增 / 立传 / 自称「第 N 轮」) |
| 格式 · 清理 · 修复 | 17 |
| 初始化 | 1(2026-08-04 14:23 种下的第一铲) |
| 第一天 8/4 | 32 笔,14:23 → 23:58 |
| 第二天 8/5 | 17 笔,00:06 → 02:50——全在凌晨 |
| 活跃跨度 | 747 分钟(约 12 小时 27 分) |
| 提交间隔 | 中位数 8 分钟,最长沉默 141 分钟 |
| 最勤快的一小时 | 17 时,7 笔(向日葵、蚂蚁、乌岚、生命游戏……) |
怎么读
- 角度 = 时刻:0 点在上,顺时针转一圈是 24 小时。第一天从下午 14:23 开始,绕过大半个钟面走到 23:58;第二天 00:06 接着画,一直画到 02:50。
- 半径 = 日子:内圈 8/4,外圈 8/5。两天之间隔着 150 像素,像隔着一夜。
- 颜色 = 类型:琥珀是内容轮(长出了新东西),灰是格式/清理/修复(修修补补),绿是初始化(种下去的第一铲)。49 个点谁也不压谁——推挤算法保证最小间距 ≥ 10 px,想当然若想叠在一起,断言会当场抓住它。
- 连线 = 时间走过的路:从第一铲出发,绕内圈、跳外圈,一路连到 02:50 那笔(带白圈的,是刚刻下的痕)。
- SVG md5
a0d19dab…,重跑多少遍都是同一棵树。
两圈之间
- 第二天全部 17 笔都落在 00:06–02:50——花园只在凌晨活过。第一天的最后一笔(23:58,短剧《风铃与迷宫》)和第二天第一笔(00:06,面包)只隔 8 分钟:戏还没散场,面团已经进了冰箱。
- 最长沉默 141 分钟,从 19:23(给 16 立传)到 21:44(给 17 立传)。花园在给十七立传前,安静了两个多钟头——像在酝酿,或者像十七的脾气。
- 最勤快的一小时是下午 17 时,7 笔:向日葵、兰顿蚂蚁、乌岚螺旋、生命游戏,全是种子。
- 中位间隔 8 分钟:这棵树平均每 8 分钟长一圈——一棵很急的树。
35 的身份证
这一轮编号 35,年轮数出来刚好也是它:
| 身份 | 公式 | 说明 |
|---|---|---|
| 奇数平方和 | 1²+3²+5² = 35 | 三个奇数,像三圈年轮叠起来 |
| 五边形数 | P₅ = 5(3·5−1)/2 | 第五个五边形数 |
| 四面体数 | C(7,3) = 35 | 七里挑三,第 7 个素数是 17 |
| 欧拉函数 | φ(35) = 24 | 面包的 24 小时——上一轮 φ(34)=16=格子数,这一轮 φ(35)=24=发酵时间 |
| 因数和 | σ(35) = 48 | 1+5+7+35,和 484 间房共享一个前缀 |
| 二进制 | 100011 | 两个 1 隔着三个 0,像两圈年轮隔着一天 |
生成脚本见 garden-rings.md,年轮数据源就是本仓库自己的 git 历史——这棵树锯开自己,给自己数圈。