## Susam Pal 关于计算、数学与更多:Lobsters 访谈摘要 本次访谈的对象是 Susam Pal,一位专注 Lisp 编程和终身学习者,探讨了他多样化的兴趣和对计算的 подхода. Pal 的旅程始于 Logo,进而深入研究 Lisp (目前使用 SBCL) 和 Emacs,这些工具他广泛用于个人项目,例如数学粘贴板 (MathB) 和静态网站生成。虽然他精通其他语言 (Python, Go, Rust, C++),但 Lisp 仍然是他工作的核心。 他强调“为了乐趣而计算”,由探索和分享驱动——这体现在交互式数学黑板 (Muboard) 和极简主义绘图语言等项目中。Pal 优先考虑领域理解而非工具,让问题决定使用的语言。他提倡通过清晰的词汇和小型、专注的函数进行可组合的设计,这与 Unix 哲学和 Forth 的分层方法相呼应。 作为一位终身数学爱好者,Pal 强调了严格证明的乐趣,并分享了有影响力的教科书 (Kreyszig, Apostol, Stewart)。他认为数学和计算之间存在着紧密的联系,从数论基础的密码学到数学思维对代码清晰度和正确性的影响。尽管生活繁忙,他仍然平衡探索与专注,优先学习并通过博客和在线论坛分享他的热情。虽然 MathB 最终因审核负担而关闭,但其存档仍然可用。
## LLM 反模式:经验教训
在与大型语言模型 (LLM) 合作了 15 个月后,出现了一些适得其反的模式。**首先**,避免冗余上下文;LLM 的“记忆”有限。发送重复的、几乎相同的信息(例如连续的截图)会浪费 token 并降低性能。
**其次**,发挥 LLM 的优势。不要要求它做它*不*擅长的事情——比如直接计数——而是利用它的编码能力来*生成*解决方案。通过代码进行工具调用也被证明比直接提问更可靠。
**第三**,避免用过多的上下文(超过约 128k token)使 LLM 不堪重负。随着模型难以管理信息,准确性会下降,可能会“忘记”关键细节。
**第四**,由于训练数据的限制,LLM 在处理晦涩或最近发明的课题时会遇到困难。预计准确性会降低,并相应地进行补偿。
**最后**,保持积极的监督——不要成为“感觉编码员”。密切监控 LLM 的输出,因为它可能会引入细微的错误或安全漏洞(例如泄露敏感数据),如果无人检查,则可能发生。
该项目详细描述了一个完全由继电器驱动的控制器设计,用于构建一种“站立马车”(本质上是悬浮滑板),采用1884年左右的技术——不使用半导体,而是依赖继电器、汞和黄铜。其目标是仅使用同期组件复制现代BLDC悬浮滑板控制器。
该系统采用48V电池为三相BLDC电机供电,转子位置通过霍尔传感器或簧片开关检测。一个六步继电器换向器控制电机方向(前进/后退)。倾斜由汞倾斜开关管理,提供缓和或全力扭矩的倾斜。安全问题通过脚踏断路开关来解决。基于继电器的DC-DC转换器为指示器提供5V。
**至关重要的是,该项目明确*不安全***,涉及高电流和潜在危险材料。 警告建造者自行承担风险,并鼓励他们通过公共存储库贡献改进,该存储库采用MIT/CERN开源硬件许可的组合——戏称为“最宁静的电流修士团执照(1884)”。
## JSON Schema:术语解析
JSON Schema 定义了 JSON 数据的结构和约束。其核心在于,**模式(schema)** 是一个 JSON 文档,描述了有效数据*应该*呈现的样子——指定类型、必需属性和允许的值。然而,模式本身也是 JSON,因此需要**元模式(metaschema)**——定义其他模式结构的模式,本质上是对模式本身进行验证。
为了管理不断演进的功能,JSON Schema 被组织成**方言(dialect)**,代表特定版本(如 Draft 2020-12),每个方言都由唯一的元模式定义。在较后版本中引入的**词汇表(vocabularies)** 通过将关键字分组为功能集合(核心、验证、元数据)进一步模块化模式,从而促进可重用性和可扩展性。
本质上:数据*由*模式验证,模式*由*元模式验证。方言捆绑词汇表,定义允许的关键字。
理解这些术语可以释放强大的数据验证和文档能力。虽然术语可能很复杂,但实际使用通常只需要掌握模式、`$schema` 关键字(指定方言)以及核心关键字,如 `type` 和 `properties`。通过词汇表扩展模式以使用自定义关键字,可以实现特定领域验证,使 JSON Schema 具有惊人的通用性。
## 人工智能与语言的静默革命
数十年以来,我们一直设想人工智能为机器人伴侣,但它的影响已经深深融入我们的日常生活——并微妙地重塑着我们的沟通方式。除了简单的拼写检查,自动更正等工具已成为智能手机使用的必需品,强制使用标准英语,甚至可能*减缓*语言的自然演变,甚至导致词汇量缩小。
最近,人工智能已经从纠正转向语言的*创造*。苹果的QuickType在您输入时建议单词,而谷歌的Smart Reply则生成完整的电子邮件回复。虽然方便,但这些功能会使表达同质化,限制细微差别,并可能反映内在的偏见——例如,为“好…”的人建议“男人”,或将“菲律宾人”主要与“食物”联系起来。
至关重要的是,Smart Reply甚至绕过了我们最初的思考过程,提供预先编写好的回复,引发了对沟通中能动性和真实性的质疑。我们有风险进入一个互动感觉像是无意的图灵测试的世界,不确定我们是在与人还是与人工智能交谈。
虽然人工智能提供了不可否认的好处,但其快速发展需要仔细考虑。我们必须以怀疑的态度对待这些“能动性自动化”技术,认识到不受约束、以好奇心驱动的开发可能会从根本上改变——甚至可能降低——人类语言的丰富性和表现力。
## Nyno 3.0:多语言工作流引擎
Nyno 3.0 是一款开源工作流引擎,旨在利用您已知的语言(Python、PHP、JavaScript 和 Ruby)构建和连接自动化流程。它允许您从这些语言的脚本中创建可重用的命令步骤,并在高性能工作引擎中执行。
工作流使用简单、人类可读的 YAML 文件(.nyno)定义,通过共享上下文路由命令并在步骤之间传递数据。Nyno 能够动态扩展,为每种语言生成多个工作进程(在生产环境中最多可达每个 CPU 核心一个),以提高吞吐量。
安装最简单的方法是通过 Docker/Podman,但也可以直接安装在 Linux 上,前提是仔细管理依赖项(包括 Best.js)。Nyno 旨在通过为基于工作流的应用程序提供灵活且可扩展的后端来简化 AGI 开发。它使用 Best.js 以实现速度,并在设置完成后提供 `http://localhost:9057` 处的 GUI。
为了将文本渲染整合到他的Geotoy项目中,作者开发了一条将文本转换为3D网格的流程。该过程首先使用JavaScript库`svg-text-to-path`,通过API密钥利用Google Fonts,生成代表所需文本和字体样式的SVG路径。为了避免浏览器应用程序臃肿并确保API密钥的安全使用,创建了一个最小的Bun Web服务器来处理文本到路径的转换。
生成的SVG路径随后使用基于Rust的`lyon`库进行处理。`lyon_extra`解析路径,`lyon_tessellation`将其转换为三角形,处理复杂的形状和曲线。这被封装在一个WebAssembly模块中,供项目使用。
最后,2D网格通过复制顶点、翻转绕组顺序和创建连接的三角形条带被挤出成3D。作者强调创建2-流形/水密网格的重要性,他的实现已经做到这一点,从而可以进行进一步的网格处理,例如布尔运算。完成的功能现在是他的Geoscript语言中的内置函数,即使对于复杂的脚本也能证明其速度和可靠性。