FoxThinking #40: 落在纸带上的输出

哦,图灵机,一个非常著名的思维模型。

图灵机和纸带,其中图灵机可以对纸带覆写入(就算只是一个写出黑点或者用空白覆盖黑点)和读入纸带。 其中图灵机内部会维护一张状态表,例如只需两个状态:

  • 状态 A: 将当前格写出黑点,读写头向右移动一格,然后切换到状态 B 。
  • 状态 B: 将当前格写成空白,读写头向右移动一格,然后切换回状态 A 。

运行这个就能实现在纸带上写出一直循环黑白黑白黑白的输出了。

不过除了会无限运行的图灵机,也有很多没事做的人会去关心「运行步数最多还能停下来的图灵机」,这种图灵机 叫做「忙碌海狸图灵机」,或许觉得海狸就是种看起来忙忙碌碌的生物吧。只有一个状态的图灵机自然只有一种,之后有两状 态的……直到 2024 年,人们才总算宣布找到了五状态下的图灵机 1 。是的,是在 2024 年,不是 1974 年或者 1984 年, 而是在有着可以每秒做出百亿亿计算的超级计算机 2024 年。

看起来容易理解也很简单图灵机里就藏着无数的复杂「魔鬼」。因为图灵机最重要的点是还能进行读入,状态表内可以增 加「当前纸带如果是……就切换到状态……」这种规则。就算读入的是全白纸带,之前写下的内容会影响之后图灵机的状态。 之前的输出影响到了后面的输出,就是这样简单的现象,才让图灵机变得难以琢磨。细细想下,这似乎也是现实中复杂性 的来源:在纸上的政令,如何影响整个社会?在金融市场上每秒能高达数千次的买卖操作的自动化程序又会怎么影响之后的 趋势?甚至连生命这种现象,不也是无时无刻因为自身的动作影响到了后续的状态吗 2

现在人们也在不断发布步数更多的忙碌海狸图灵机,不过一般都是预先在「无限上挖洞」,构造能尽量多步数的循环但最后确保能停下。可这 种依然是「简单」的,或许拿闭着眼乱填的状态图灵机就会在写下完全杂乱不堪的输出运行比隔壁某人精心构造的图灵机多出千倍步数后停下,但 这会是凭着超级计算机算到宇宙寂灭都还没停下的图灵机。所以这就是吊诡的地方,不给出预先证明乱填状态的图灵机到底是复杂的还是简单的?最佳答 案是:「不知道」,这也是在 2024 年才证明了五状态最忙碌的忙碌海狸图灵机的原因吧。

阅读

《周易大全》

感觉每代人都会有每代人「礼崩乐坏」,总感叹今不如古。但我觉得对于《周易》的解释,新情况总会有新说法,毕竟其实连《周易》本身就有不同版本,甚 至连阴阳符号都会不同,看起来「言之凿凿」的卦的排列顺序背后的义理,在其它版本就解释不通了。本身作为卜筮的记录本在大能注传后才会形成典籍,这样不免动 了想象后面会不会有人忍不住重新排列或重新解释原文以用来适配现代社会……

《编译器设计原理:基于Racket的增量式设计》

逛图书馆的工业技术区计算机地,掠过成片的机器学习、大模型的区域,在 26 年出版的书中总算找到了感兴趣的了。为什么要找新出的?因为我发现基本上 之前出版的感兴趣也值得看的书已经过完了,剩下的都是积灰也不奇怪的XXX从入门到精通、XX天XX语言学习之类的书。选这本除了是基于 Racket 外,还有就 是我确实想看看编译器领域的书,学学类型理论和词法作用域。我平时对以「深入底层」然后开始说因为底层怎么怎么样然后这层就怎么怎么样的人经常性无语, 这种人就是区分不了「应然」和「实然」的区别。就像语言描述文档给出推荐实现是这么这么做,但可能有些语言实现为了效率会用脏脏手段直接力大砖飞实现, 但这也代表不了什么,通常情况下混淆不同抽象层级的事物总是不好的。只是有时候学习确实要穿越抽象屏障,但那也是在有个预期,做好准备的情况下。之前鼓 捣 orgmode 解析器跟正则及其不同状态搏斗我整感叹不是这块料,不过这就像是我说「不习惯吃水果」,但这更多只是出于懒散,如果有人将水果洗净切块还送 上小叉子,那我也会说「谢谢,你怎么知道我喜欢吃水果」,不用跟正则搏斗的话我倒也不是不能学学编译器啊哈哈。

不过这本书粗略翻了翻,应该不是纯入门的书,十六开本两百页的规格是它作为书最后的体面,比起隔壁超级大砖头的龙书轻巧的让人胆颤。如果真是水果,那也是干瘪 犹如古墓中埋了千年的无花果干……不过难得有用 lisp 描述的编译器领域的书,还能怎么办呢,学吧。

《UX设计的艺术与科学》

也是感兴趣的在二六年出版的书,里面讲到用户需求层级;

  • 愉悦性
  • 可用性
  • 可靠性
  • 功能性

然后区分功能性和可用性的区别,可用性看起来是功能性,但有可用性意味着产品更容易学习、发现和使用。看到这段就想起 Emacs ,这就是那种有着庞大功能性 但可用性欠佳的「产品」啊,Emacs 应该确实需要引入写交互性质的设计帮助用户发现自己和掌握相关功能而不是靠神秘黑客千倍的代代相传或是敢于投入几千小时 维护社区配置集的「志愿者」。自由软件确实很缺少 UX 设计,毕竟很多功能都是贡献者感到自己想要就提交了的功能,而如果作者没有 UX 概念的话不做整合 就很容易形成超多按钮的「杂牌电视遥控器」,也不知道上面有什么功能到底该怎么用。

Quest for the eternal Dock - lambdock - jointhefreeworld

这段时间所用的状态栏 Waybar 经常出现卡死的问题,看到这个 Scheme 写配置的原生 wayland 桌面组件程序,也是急头白脸冲过去试了下。但配置了几下发现还是 不行,除了一些无效配置 BUG 外,还有就是 lambdock 更多是作为 dock 而我其实更想要的是 bar ,里头缺少相关配置。只能说 REPL 确实让人心动,但现在 用《人月神话》的话来说:还只是程序,距离成为编程产品还差大概三倍的工作量 3 。我也没精力翻 gtk 相关的规范为这个项目做贡献,那只能充满希望的等等 看了!

lobste.rs is now running on SQLite | Lobsters

作为有着一定访问量的网站, lobsters 选择将所用的数据库迁移到 sqlite 上也是挺有魄力的。总之诉诸权威, lobsters 都能用 slqite ,那么之后的 应用也有更多可能选择用 sqlite 了。看讨论区发现有看到挺多观点的,之前的应用用 sqlite 只是简单开启下 WAL ,但或许 sqlite 也有很多其它值得调整 的配置项?

Calculating Empires

一份人类科技「地图」,能为某门领域提供大概的视图,或许能用来入门吧,不过即使是光看着也挺好看了。

一呼百应

《魔兽世界》

因为更新了新版本又回来吭哧吭哧开始做任务滚装等数值了,也是终于迈出了全新的一步,把双问号高难副本的「前有单挑」成就打出来了。然后刷相关消息在设计 师「想让玩家在单人玩法中也能装备毕业」、「会增加一个庞大的单人玩法」下继续感叹(之前也感叹过):作为大型多人在线角色扮 演游戏(MMORPG)中的头牌,最大卖点是几十个人犹如交响乐团在指挥下攻坚地牢 BOSS 的刷装备社交游戏,设计师也开始不断分精力推出不社交的也能刷装备的游戏 模式,这里头的社会变化可见一斑呐。

脚注

1 Coq-BB5 - BusyBeaverWiki

2 参考;康威生命游戏、兰顿蚂蚁

3 [美]小弗雷德里克·布鲁克斯. 人月神话(40 周年中文纪念版). 清华大学出版社. 2015, 第 5 页.