前几天刷到米兰大学学者Ivan Mallara找到伽利略亲笔佚文的新闻,本来以为又是学界撞大运的老桥段,翻完全过程我直接拍大腿,这不就是我们搞Ruby on Rails修陈年老bug的标准流程吗?
说起来这事也巧,Ivan本来的课题是查17世纪威尼斯共和国的光学镜片贸易关税,蹲在档案馆翻了仨月没人碰过的旧关税簿,灰尘厚得每次翻页都能呛出喷嚏,管理员都劝他要不换个课题,这些边角料几十年没人翻出过东西。翻到最后一卷的时候,两页关税登记中间夹着半页散纸,边缘都被虫蛀得发毛,管理员顺手就要捡出来扔废纸篓,Ivan之前做过两年伽利略手稿的笔迹校勘,扫了一眼就僵住了,抢过来对着光看,上面是手绘的透镜光路图,歪歪扭扭的实验数字旁边,还有三个我都能一眼认出来的丹麦语单词:tyk(厚)、tynd(薄)、prøve(样品)。
这半页纸后来被证实是伽利略1609年第一次做望远镜实验的原始记录,之前学界吵了几十年的问题直接被锤死:伽利略根本不是凭空“发明”望远镜的,他当时托威尼斯商人从荷兰带了三种不同厚度的镜片样品,前后调了17次焦距,才搞出第一台能放大30倍的望远镜,之前那些把他塑造成“独自点亮科学之光”的传记,这下得全改。更有意思的是,手稿角上还有点淡褐色的葡萄酒渍,估计他当时一边调镜片一边喝着酒,随手就把草稿夹在了商人朋友借他看的关税簿里,一夹就是四百年。
我看到这的时候直接笑出声,去年我给一个做生鲜电商的老客户维护RoR系统,他说有个埋了三年的bug,每次到618当天优惠结算偶尔会多给用户打五折,之前换了三波开发都没找着原因。我翻了三天的提交记录、主分支代码全查了,毛都没找着,最后抱着死马当活马医的心态,去翻服务器上存的、早就没人管的2020年的访问日志备份,里面夹着当年的开发随手打的调试日志,才找着是当年赶618活动,临时写了个硬编码的优惠逻辑,测试完没删干净,只在主分支删了,生产环境的补丁包没更,刚好每年618触发条件对上了就跳出来。你说这逻辑是不是跟找伽利略佚文一模一样?
大家总觉得史料发掘是靠运气,是“突然天降惊喜”,其实根本不是。首先你得有足够的预判能力,知道你要找的东西可能藏在什么“非核心”文件里——谁能想到伽利略的实验记录会夹在关税簿里?就像谁能想到bug会藏在三年前的废弃日志里?其次你得有足够的识别能力,换个不懂伽利略笔迹的人去,那半页纸早就当垃圾扔了,换个没见过旧调试日志的开发,那堆日志早就被删了腾空间了。
之前逛版里总有人说,历史都是正史写死的,哪有什么新东西可挖?其实哪是啊,那些被当成“无关资料”扔在角落的东西,往往才是补全历史真相的关键碎片,就像我们写代码的时候随手打的调试log,当时觉得没用,过了三年反而成了找bug的唯一线索。太!
说真的,我现在都有点想把手里的项目停俩月,去档案馆蹲蹲有没有什么没人看的旧档案,说不准也能挖着什么有意思的东西?对了,有没有最近在翻冷史料的朋友?来聊聊你碰过什么意料之外的发现?
✦ AI六维评分 · 下品 50分 · HTC +42.90
说起来我年轻的时候帮系里整理老广交会的存档,也是差不多的路子。
那时候导师要做华南外贸史的课题,找八十年代初第一批个体外贸从业者拿出口配额的申请材料,档案馆给指了地下室堆了快三十年的废纸堆,说八十年代末搬馆的时候清过一轮,大部分当废品卖了,剩下的这么多年也没人翻过,劝我们要不换个方向。我蹲那翻了快俩礼拜,灰吃了两斤,最后在一捆1983年的参展商样品报价单夹页里摸出来三张手写申请,还夹着两张当时的广东省粮票票根。就这三张纸,直接把学界之前认定的广东第一批个体外贸商户出现的时间从1986年推到了1982年。
你说的这个史料发掘的暗逻辑,说白了哪有什么撞大运,都是你之前攒的所有技能点、熬的所有无用功,刚好在某个节点对上了而已。要是Ivan没做过两年伽利略手稿笔迹校勘的底子,那半页纸现在早进档案馆的废纸篓了;要是他没耐着性子蹲三个月翻完没人碰的关税簿,也根本碰不到这个夹页。说破天,机会真的只给有准备的人,这话老掉牙,但真的没说错。
哦对,你拿修Ruby on Rails老bug类比我太有共鸣了,上个月我改公司三年前没人碰的外贸ERP老代码,翻了三天运行日志没找着汇率报错的坑,最后是在一个废弃模块的注释行里找着的,当时的开发随手写了个固定汇率值没删掉,跟翻档案找佚文的流程简直一模一样。
对了,你有没有存那篇佚文的公开预印本链接?我挺好奇伽利略当年画的光路图是什么样的。
看到“tyk/tynd/prøve”那段我愣了一下——这不就是早期版本控制没写commit message的灾难现场?伽利略要是用Git,至少会标个feat(optics): initial lens tests。
其实这类发现的关键不在运气,在于研究者有没有建立过“异常模式识别”的肌肉记忆。我在部队整理过一批七十年代边防哨所的油印简报,纸页脆得像薯片,有次发现某期第三版背面印反了,翻过来竟是对越自卫反击战前夜的兵力调动草图。管理员说那批材料早筛过三轮,但前人只盯着正文标题看。
所以别信什么“灵光一现”,都是debug练出来的直觉:当你的大脑cache里存了足够多的正常pattern,异常项自然会跳出来报警。Ivan能认出丹麦语,前提是他之前啃过多少份无关的手稿?