每日HackerNews RSS

## 星际飞行:复古游戏深度解析 《星际飞行》于1980年代发行,是一款开创性的沙盒太空探索游戏,玩家可以完全自由地驾驶星舰——采矿、战斗和外交都是可行的途径。 整体故事随着玩家发现一个来自古代种族的威胁而展开,该威胁导致恒星耀斑并摧毁生命。 过去和现在都广受赞誉,《星际飞行》深刻影响了后来的开放世界游戏。 最近,一位狂热爱好者开始逆向工程《星际飞行》,并发现这个过程极具挑战性。 与通常使用大量汇编代码的游戏不同,《星际飞行》是用Forth编写的,这是一种极简主义编程语言。 这导致可执行文件结构与原始源代码非常接近,并且仍然存在令人惊讶的调试信息。 该游戏的代码严重依赖于间接线程——一种节省空间但速度较慢的方法——并利用了大量的代码覆盖,从而使分析变得复杂。 该项目成功地解除了游戏的汇编,揭示了其错综复杂的内部结构,并提供了对开发者原始思维过程的迷人一瞥。 最终解编译的代码和数据是公开可用的,为探索经典游戏的核心提供了一个独特的机会。

Hacker News 新闻 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 逆向工程游戏《星际飞行》(1986) (github.com/s-macke) 11 分,by tosh 2 小时前 | 隐藏 | 过去 | 收藏 | 1 条评论 帮助 twoodfin 0 分钟前 [–] 很难表达《星际飞行》的游戏设计在当时限制下的有效性。将故事嵌入到几乎完全自由探索和冒险的巨大星系中,手法高超。你能感觉到创作者离当时可行的存档系统有多近:基本上,磁盘是一个内存镜像。随着游戏的进行,它会重写自身,所以如果你卡住了,就没有“重置”选项。文档强调:只用原始磁盘的副本玩!! 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:

## Perlin Terminal:你的命令行中的精美噪声 Perlin Terminal 使用 24 位真彩色和半块字符,将令人惊叹、流畅的 Perlin 噪声动画直接带到你的终端,从而提高视觉保真度。享受流畅的 60 FPS 的流动渐变和有机运动。 该程序提供多种颜色主题——海洋、火焰、极光和矩阵——每种主题都能创造出独特而迷人的效果。它易于自定义,可调整噪声比例、动画速度,甚至 Perlin 噪声种子。 安装很简单,可以使用 `cargo install --git https://github.com/denisepattenson/perlin-terminal` 或从源代码构建。使用 `--theme` 和 `--scale` 等标志控制动画,并使用 Ctrl+C、Q 或 Esc 干净地退出。需要支持 24 位真色彩的终端和 Rust 1.70+。

Hacker News 新闻 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 Show HN: Rust 的 Perlin 噪声终端动画(60 FPS,真彩色)(github.com/denisepattenson) 8 分,denisepattenson 发布 57 分钟前 | 隐藏 | 过去 | 收藏 | 3 条评论 帮助 villgax 2 分钟前 | 下一个 [–] Denise 我的朋友,请在 README 中添加一些截图。回复 fc417fc802 13 分钟前 | 上一个 | 下一个 [–] 没有演示视频吗?我很感兴趣,但没那么感兴趣。回复 thanatos519 17 分钟前 | 上一个 [–] 这很酷。在我的 320x90 kitty 中运行良好!回复 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:

## DjVu:被忽视的文档格式 DjVu 是一种在处理扫描文档(尤其是书籍和学术论文)方面明显优于 PDF 的文件格式。虽然现代 PDF 已经采用了一些 DjVu 的创新技术,但在高效处理扫描内容方面仍有所不足。PDF 通常将扫描件视为简单的图像(如 JPEG),导致文件体积庞大且文本表现力差。然而,DjVu 能够智能地将文档分析为文本和图像的混合体,丢弃冗余数据,从而实现显著更好的压缩。 DjVu 由后来创立深度学习的先驱们(包括 Yann LeCun 和 Léon Bottou)创建,它利用小波和算术编码(IW44 和 JB2)等先进的压缩技术来实现令人印象深刻的文件大小。它甚至包含可能容易受到攻击的元素,突出了像 PDF 这样复杂格式中固有的安全风险。 尽管 DjVu 具有技术优势,并有可能创建一个庞大的在线图书馆,但由于操作系统和浏览器缺乏原生支持,它未能获得主流应用。如今,访问 DjVu 文件通常需要专门的软件,例如在已 root 的电子阅读器上使用 Koreader,这对于一种理想的便携式扫描内容格式来说,是一个令人沮丧的障碍。作者认为,DjVu 保存的知识甚至可能超过许多现代、数字原生信息的价值。

黑客新闻 新 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 DjVu 及其与深度学习的联系 (2023) (scottlocklin.wordpress.com) 4 分,by tosh 4 小时前 | 隐藏 | 过去 | 收藏 | 讨论 帮助 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:

这篇帖子比较了两款绘图逻辑游戏(picross/nonogram)的设计:“Squeakross”在美观上令人愉悦,而作者自己的“bicross”则侧重于解题的确定性。作者在享受“Squeakross”魅力的同时,指出其谜题可能存在模棱两可的解法——特别是“Elementary Switches”,根据线索可能存在多种有效排列。 “Bicross”则采用独特的程序生成系统,旨在*保证*谜题的可解性。它采用三步流程:生成随机网格,计算提示,然后严格测试是否存在*唯一*解。这种测试涉及迭代应用约束传播——根据行和列的提示逻辑推断方块的位置——并丢弃无法通过这种方法明确解出的任何谜题。 这种方法虽然计算量大(生成和拒绝5-10个关卡),但确保玩家无需猜测。作者对这个“蛮力”生成循环的速度感到惊讶,即使限制在10x10网格内,也能实现快速的关卡切换。最终,帖子强调了一种设计权衡: “Squeakross”允许模糊性以提供更轻松的体验,而“bicross”则优先考虑逻辑上的确定性。

黑客新闻 新 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 约束传播的乐趣 (eli.li) 3点 由 rickcarlino 3小时前 | 隐藏 | 过去 | 收藏 | 讨论 帮助 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请YC | 联系 搜索:

## Windows 原生构建的困境与解决方案 在 Windows 上维护原生项目,往往演变成支持复杂的 Visual Studio 安装程序,而不是自己的代码。仅仅将“Visual Studio”列为依赖项,就会给贡献者带来令人沮丧的体验,需要特定的工作负载(如 C++ 构建工具和精确的 SDK 版本),并且经常导致花费数小时排查难以理解的构建错误。这与 Linux 不同,在 Linux 上,工具链可以通过包管理器轻松管理。 核心问题在于 Visual Studio 的整体性——将编辑器、编译器和 SDK 混为一体——以及其组件缺乏版本控制。这导致安装时间过长、安装过程不透明以及环境不一致(“在我机器上可以运行!”)。 为了解决这个问题,开发者 marler8997 创建了 **msvcup**,一个将 MSVC 工具链视为现代、版本化的依赖项的 CLI 工具。它解析 Microsoft 的组件清单,直接从 Microsoft 的 CDN 下载必要的包,并将它们安装到隔离的、版本化的目录中。 **msvcup** 提供快速、可重现的构建、交叉编译支持,并消除了对 Visual Studio GUI 的需求。它已被证明可以成功地从头开始构建 raylib 等项目,而无需完全安装 Visual Studio,从而为更精简的 Windows 原生开发体验提供了一条途径。

一篇 Hacker News 帖子强调了一位开发者简化原生 Windows 开发的努力,摆脱“UNIX 中心”的方法。核心论点是,现代 Windows 开发本身并没有问题,而是被最近的 WinUI/WinAppSDK 变更(Project Reunion)复杂化——这些变更在很大程度上可以避免。 评论区显示,使用命令行、传统编译器 (cl.exe) 和 Vim 等编辑器,以及 Visual Studio 构建工具的稳定长期支持 (LTSC) 版本,是一种令人惊讶地可行的工作流程。多位用户报告说,他们已经成功地使用这种方式构建实用工具。 更复杂的设置包括从 GitHub Actions runners 中提取工具链,并使用 Bazel 等工具来管理大型协作项目。总的来说,讨论指向了一条更可控、更轻松的 Windows 开发体验,特别是对于那些寻求稳定性和避免持续框架更新的人来说。

## Copapy:用Python轻松实现实时计算 Copapy是一个Python框架,专为确定性、低延迟计算而设计,目标应用包括机器人、航空航天和嵌入式系统。它旨在将类似PyTorch框架的快速迭代优势带入实时、嵌入式开发领域。 Copapy允许开发者编写类似Python的代码,通过“复制和修补”编译器编译成高度优化、静态类型的机器代码。这带来了内存安全、最小的运行时错误和确定性执行——对于可靠的硬件控制至关重要。它支持自动微分以进行高效优化,目前支持x86_64、ARMv6/7和AArch64架构,并且只需一个C编译器即可简化移植到其他架构。 主要特性包括浅的学习曲线、详细的类型提示和较小的依赖足迹。目前Copapy仍是一个概念验证,缺乏直接的硬件I/O,但核心计算引擎是可用的,并且基准测试显示与NumPy相比具有良好的性能。 持续开发重点是用于SIMD优化的数组模板以及对ARM*-M目标的支持。Copapy是开源的,欢迎通过GitHub贡献。

Hacker News 新闻 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 展示 HN:用于硬实时 Python 的复制和补丁编译器 (github.com/nonannet) 3 分,Saloc 发表于 3 小时前 | 隐藏 | 过去 | 收藏 | 讨论 我构建了 Copapy 作为一项实验:Python 能否用于硬实时系统? Copapy 不使用解释器或 JIT,而是通过跟踪 Python 代码构建计算图,并使用自定义的复制和补丁编译器。结果是速度非常快的原生代码,没有 GC,没有系统调用,也没有运行时内存分配。 复制和补丁编译器目前支持 x86_64 以及 32 位和 64 位 ARM。它作为一个小的 Python 包,没有其他依赖项 - 没有交叉编译器,只有 Python。 目前的重点是机器人和控制系统。这个项目还处于早期阶段,但已经可用并且易于尝试。 期待您的反馈! 帮助 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:

Go的包完整性非常强大,这得益于Go校验和数据库,它确保所有用户访问的是每个模块版本的相同、经过验证的源代码,即使在去中心化模块获取的情况下也是如此。该数据库在首次使用时对模块版本进行加密哈希处理,并验证后续获取,防止恶意篡改,例如强制推送的标签或打字劫持攻击。 然而,依赖GitHub等代码托管平台会引入漏洞——它们的网页界面不会将源代码与校验和数据库进行验证。像`go mod download`以及即将推出的`go mod verify -tag`命令可以在本地提供帮助,但pkg.go.dev等服务仍然链接到潜在的未经验证的代码。 新的替代方案,如pkg.geomys.dev,通过直接从Google模块代理访问模块压缩文件,提供经过验证的源代码查看。虽然目前信任该代理,但未来的更新旨在整合透明日志证明检查,以增强安全性。这项工作由Geomys支持,并获得Ava Labs和Teleport等公司的资助,确保可持续的开源维护。

黑客新闻 新 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 检查 Go 模块的源代码 (filippo.io) 6 分,by todsacerdoti 2 小时前 | 隐藏 | 过去 | 收藏 | 讨论 帮助 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:

## 版本控制的未来:超越 Git 软件开发正在演变——随着 LLM 扮演核心角色,开发者花费在*编写*代码上的时间减少,而更多地用于*理解*和导航现有代码库。这种转变凸显了 Git 日益增长的局限性,尤其是在涉及 AI 代理和大型单仓库的协作开发兴起的情况下。 Git 的主要问题包括难以管理代码模块、非确定性合并、缺乏超越基本搜索的代码智能,以及僵化的“全有或全无”数据模型。Git 将代码视为非结构化的 blob,阻碍了对变更的高级查询和理解。 作者正在开发 Git 的替代品,放弃兼容性,转而进行根本性的架构重构。这个新系统将专注于版本控制*数据结构*(如抽象语法树),而不是 blob,采用正式的、确定性的合并算法和强大的、结构感知的查询语言——本质上,一个用于代码的数据库。 这旨在解决长期存在的问题,并促进与 AI 的更好协作,从 Git 的基础设计上实现显著的飞跃。

这个Hacker News讨论的核心是,尽管Git无处不在,但它是一个有缺陷的版本控制系统——尤其是在面对现代AI驱动的开发和大型代码库时。发帖者认为Git本质上是一个文件系统,而代码管理需要一个数据库,并分享了一个gist来阐述他们的想法。 评论者们争论“Git兼容性”的必要性,许多人认为与GitHub的无缝集成对于采用至关重要。另一些人则提议“向前兼容性”——允许迁移*到*新系统——而无需复制Git的缺点。 关于Git的痛点有:单仓库(monorepo)的困难、大文件处理以及令人困惑的用户界面。还链接了一些关于Git演进的相关讨论。提到了几个旨在解决这些问题的项目,包括Trustfall和一个名为“lit”的项目。一个普遍的观点是,需要一个更好的虚拟文件系统,可能具有写时复制功能,以支持现代开发工作流程,尤其是涉及LLM和AI代理的工作流程。

## 快速模式对决:Anthropic vs. OpenAI Anthropic 和 OpenAI 最近都推出了其编码模型的“快速模式”,大幅提升了交互速度。然而,两种方法以及结果却大相径庭。OpenAI 的快速模式声称超过每秒 1000 个 token(比标准速率快 15 倍),但依赖于一个更小、能力较弱的模型 GPT-5.3-Codex-Spark,该模型运行在配备巨大内部内存的 Cerebras 专用芯片上。 Anthropic 的方案通过减少“批处理”来实现高达 2.5 倍的速度提升——本质上是优先考虑即时响应,而不是最大化整体吞吐量,成本增加 6 倍。 虽然 OpenAI 的速度令人印象深刻,但 Spark 能力的降低导致更多错误,尤其是在工具调用等复杂任务中。Anthropic 优先考虑模型保真度,即使速度提升较慢。这种差异源于 OpenAI 利用新硬件(Cerebras 芯片)和精馏模型,而 Anthropic 优化现有基础设施。 最终,作者质疑“快速、能力较弱的推理”是否真的是人工智能的下一个重大飞跃,认为准确性对于有用的 AI 代理仍然至关重要。

一场 Hacker News 的讨论围绕着加速大型语言模型 (LLM) 推理的技术,起因于 seangoedecke.com 上的一篇文章。用户们争论 Claude 和 OpenAI 产品等模型之间速度差异的原因。 虽然原文提出批量处理和推测解码是关键的加速方法,但评论者提供了其他的解释。有人认为 Anthropic 通过将请求路由到其最新、最快的硬件来优先考虑速度,而 OpenAI 则专注于成本效益。另有人指出积极的量化可能是一个因素。 一个更广泛的观察指出策略发生了转变:OpenAI 似乎受到投资者驱动,优先考虑盈利能力,而 Anthropic 似乎有更多的灵活性来投资于性能和营销,这可能会影响他们长期保持领先的能力。这场讨论突出了硬件、软件和商业决策在 LLM 性能中的复杂相互作用。

夜空浩瀚。对于许多初学者,甚至经验丰富的观测者来说,这种丰富性反而成为了一种障碍。成千上万的目标。无尽的清单。选择太多,却缺乏从哪里开始的清晰方向。Stargazing Buddy 通过提供视觉观测和天体摄影的精选路径,消除了这种障碍。

黑客新闻 新 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 观察夜空的实用指南,适用于真实天空和真实设备 (stargazingbuddy.com) 7 分,constantinum 发表于 2 小时前 | 隐藏 | 过去 | 收藏 | 讨论 帮助 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请YC | 联系 搜索:

更多

联系我们 contact @ memedata.com