本文探讨了《Entombed》在 1983 年为 Atari 2600 设计的独特迷宫生成算法。由于内存仅有 128 字节,原版游戏无法存储持续滚动的迷宫,因此会使用一个神秘的 32 项查找表,在本地逐行生成迷宫。五个相邻单元格构成一个形状不寻常的四格骨牌窗口,根据这些单元格决定下一个格子是墙壁、通道还是随机结果。生成完成后,还会进行两轮修正,修改已完成的线路,以减少重复内容和封闭区域,但该算法既不能保证生成完美的迷宫,也不能保证迷宫一定可以通关。
受这一算法启发,作者为一款受《Wolfenstein 3D》启发的光线投射游戏实现了一个基于《Entombed》的迷宫。这个改编版本将每一行表示为 32 位数值,保留所有生成的行,移除原版镜像化的游戏区域,扩大迷宫,并允许玩家和敌人破坏墙壁。项目后来采用了类似“后室”(Backrooms)的视觉风格,并使用 Three.js 重新制作,加入视觉效果和类似《暗黑破坏神》的缩略地图,以便在浏览器中游玩。
本文介绍了如何在 Mac OS X Leopard 或 Snow Leopard 上恢复 iChat AV 的音视频通话功能。iChat 最初依赖 Apple 已停用的 SNATMAP 服务来发现用户的公网 IP 地址和 UDP 端口,以建立点对点 RTP 通话。如今,其 HTTP 配置请求会重定向到 HTTPS,而操作系统过时的 TLS 协议栈无法处理这种重定向,导致通话双方只能交换无法使用的局域网私有地址。
作者通过数据包捕获和借助大语言模型进行的逆向工程,重新实现了 SNATMAP 协议,并将其构建为一个简单的 Python UDP 服务器。16 字节的请求包含类型、随机数、本地 IP 和本地端口;响应则返回随机数,以及服务器观察到的公网 IP 和端口。
作者在实验室中使用两台虚拟 OpenWrt 路由器和两台 Mac 进行测试,随后将该服务部署到公网,并通过 `/etc/hosts` 将 `configuration.apple.com` 映射到该服务的 IP 地址。完成用户配置并启用 NAT 源端口保留后,旧版 iChat 再次可以通过互联网正常通话,并且也能使用现代的 Logitech C920 网络摄像头。
这篇文章认为,Common Lisp 可能是最适合 LLM 辅助编程的语言,因为它能缩短反馈周期。它采用基于映像的开发方式,无须重启即可更新函数;出现错误时,还可以直接进入交互式调试器,查看调用栈和变量。这让 LLM 能够检查问题、修改代码,并立即恢复程序运行。 由于代码和数据都采用相同的列表表示形式,Lisp 能够提供强大的宏,从而用领域特定抽象扩展语言。因此,企业可以把其产品理念直接编码到语言中,帮助用户安全地定制 ERP 等系统。宏还可以大幅精简大型程序——据称,其代码长度可能只有 Python 版本的六分之一或七分之一——从而降低 LLM 的令牌成本,并让更多程序内容保留在上下文中。 作者也看重 Common Lisp 自 1994 年以来一直保持的稳定性,以及其较小的依赖生态系统,这降低了供应链风险。尽管熟悉 Lisp 的工程师不多,相关的包生态系统也相对有限,但当 LLM 能够编写、移植和维护代码,而优秀的工程师又能快速掌握这门语言时,这些缺点可能就没那么重要。
作者回顾了自己的开源历程:从 2011 年在 TShock 提交的一个 issue,到 2014 年在 GitHub 合并最初的几个 PR。其中,一次满怀热情、涉及 300 行代码的清理修改,被一位素不相识的人在一夜之间合并。这一经历体现了开源的核心:信任、共同努力与人与人的连接。 如今,AI 生成的 issue 和 PR 大量涌入各类仓库,其中既有看似合理却存在错误的成果,也有垃圾内容和未经请求的代码改写。创建贡献几乎只需片刻,但审查这些贡献的成本依然很高,对志愿维护者尤其如此。自动化审查淹没了人与人的讨论,而凭空生成、并不存在的问题报告,则浪费了宝贵的时间。 因此,一些项目和平台正在限制或关闭外部贡献,包括 Hono、curl、OpenJDK、Godot、Ladybird,甚至 GitHub 本身。作者每天都使用 AI,也不责怪维护者做出这些理性的选择;但他感到遗憾的是,贡献如今变成了一种负担,而不再是一份礼物。如果找不到简单的解决方案,开源可能会变得更小,并逐渐演变为仅限受邀者参与,从而恰恰排除那些曾为开源增添活力的热心外来者。
为确保我们维护本网站的安全,请勾选下方的复选框,确认您是真人如果您无法完成上述操作,请通过以下链接联系我们,并提供相关情况的截图: https://ioppublishing.org/contacts/
**photoc** 是一款基于终端的照片工作流工具,可用于审阅、整理、筛选和预处理图像。它支持 JPEG 处理,以及从 Sony ARW 文件读取元数据;暂不支持其他 RAW 格式、HEIC 和 Windows。
主要功能包括:
- 查看元数据、存储统计、时间线、重复照片、锐度以及 JPEG 完整性。
- 按日期、相机、ISO、光圈、GPS 信息等元数据查询照片。
- 预览并应用基于元数据的重命名,或按日期/拍摄场次整理文件夹。
- 创建压缩副本和联系表,不修改原文件。
- 分享前移除 GPS 信息和指定的身份识别元数据。
- 通过 Shell 脚本自动执行工作流;大多数检查命令都支持 JSON 输出。
文件变更默认不会执行:重命名和排序需要使用 `--apply`,清除元数据需要使用 `--in-place`。photoc 绝不会删除或覆盖文件。重命名和排序计划会在执行前进行验证,失败后会尝试回滚,但仍建议事先备份。
在 macOS 或 Linux 上可通过 Homebrew tap 安装,也可使用经过校验和验证的 Shell 安装程序安装预编译可执行文件。运行依赖和平台要求可能不同;此外也支持从源代码安装和手动安装。