每日HackerNews RSS

无需处理Linux、虚拟机、编译器或Python即可编写应用程序。立即开始。 无需安装。直接在浏览器中编写应用程序。跳过所有设置步骤! 无需编辑JSON。资源通过友好的用户界面管理。 云端。随时随地访问!这很好,不是吗? 更多功能即将推出。这仅仅是个开始!未来还有更多。

黑客新闻 新的 | 过去的 | 评论 | 提问 | 展示 | 工作 | 提交 登录 在线 Pebble 开发 (repebble.com) 3 分,teekert 1 小时前 | 隐藏 | 过去的 | 收藏 | 1 条评论 帮助 zb3 30 分钟前 [–] 无需安装,无需编辑 json,无需登录要求.. 哦,等等,不是那个.. 回复 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:

## Beagle SCM:代码数据库 传统的SCM系统,如Git,虽然强大,但已经变得过于复杂,更像文件系统而非代码数据库。这种复杂性会降低开发速度,尤其是在AI辅助开发兴起的情况下。Beagle旨在通过充当数据库来解决这个问题,它存储抽象语法树(AST),而不仅仅是blob,从而实现代码的语义查询和操作。 Beagle将操作简化为四个核心命令——GET、POST、PUT和DELETE,模仿HTTP,并利用URI进行寻址。它引入了repos、branches(更接近Git仓库)、twigs(比branches更轻量,用于临时工作)和overlays(类似于Photoshop的图层,分离代码、提示和配置)的层次结构。 关键特性包括确定性的、非侵入式的CRDT合并,允许安全灵活的分支和代码混合。Beagle支持高级查询——搜索特定符号或AST子树——超越了简单的`grep`功能,这既对开发者有益,也对LLM有益。该系统优先采用结构化但更简单的方法来管理代码,这对于处理越来越多的AI生成代码至关重要。最终,Beagle旨在成为一个简单、可靠的工具,用于将代码作为超文本进行管理,其中IDE充当浏览器,而Beagle充当`curl`/`wget`的等效工具。

黑客新闻 新 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 Beagle CRDT SCM 外部接口 (gist.github.com) 7 分,作者 gritzko,4 小时前 | 隐藏 | 过去 | 收藏 | 讨论 帮助 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请YC | 联系 搜索:

启用 JavaScript 和 Cookie 以继续。

## 雏鸡中的“bouba/kiki效应”与语言争论 一项最新研究(预印本已发布)表明,即使在天真的小鸡中,也存在“bouba-kiki效应”——声音与形状的直观联想。这强化了大脑跨不同感官编码结构相似性的观点,暗示语言并非完全基于任意标签。 Hacker News的讨论引发了关于语言任意性的争论。一些人认为,这种效应表明内在的认知结构*塑造*了语言,而另一些人则认为语言在很大程度上仍然是任意的,并指出其在不同文化中的巨大差异。一个关键点是,这种效应是否揭示了声音和形式之间更深层的联系,可能与语音中的频率和视觉形状有关。 该研究涉及42名受试者。一位评论员最初错误地将一句关于科学进步的引言归功于戏剧《继承的阵风》,突显了即使在人类中也存在错误信息(并引发了更正)。这场讨论涉及普遍翻译的意义以及我们感知和分类世界的基本方式。

## MeshTNC:面向消费级无线电的LoRa数据管道 - 摘要 MeshTNC是一种固件,旨在使现成的无线电,特别是MeshCore支持的无线电,能够进行LoRa数据传输和接收。它提供了一个串行命令行界面(CLI),用于控制无线电功能,例如传输原始十六进制数据、配置无线电参数(频率、带宽等)以及记录数据包。 主要功能包括:LoRa数据包和BLE嗅探,并将数据记录到串行端口;KISS-TNC模式,与现有的APRS软件(如Linux内核和流行的客户端)兼容;以及在MeshTNC设备之间建立基于AX.25的IP网络的能力。 安装涉及在Visual Studio Code中使用PlatformIO,通过meshcore flasher或开发者工具刷写固件,并通过串行端口连接(默认波特率115200)。CLI提供用于无线电控制、记录和在串行模式与KISS模式之间切换的命令。KISS模式允许MeshTNC充当传统的TNC,从而可以使用APRS工具。 详细文档和示例可在网上找到,包括设置基于LoRa的基本网络说明。

Hacker News 新闻 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 MeshTNC 是一个工具,可以将消费级的 LoRa 无线电变成兼容 KISS TNC 的设备 (github.com/datapartyjs) 7 分,by todsacerdoti 1 小时前 | 隐藏 | 过去 | 收藏 | 讨论 帮助 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系方式 搜索:

## SDLC 的衰落与 AI 原生开发的兴起 传统的软件开发生命周期 (SDLC) – 需求、设计、实现、测试、评审、部署、监控 – 并非仅仅加速,而是随着 AI 编码代理的出现而瓦解。AI 促成了一个紧密的 **意图、构建、观察和重复** 循环,取代了线性、阶段性的流程。 进入该领域的工程师通常甚至 *不了解* SDLC,因为他们直接借助 AI 辅助将想法转化为可用的代码,绕过了诸如 sprint 计划和详尽代码审查等传统流程。 SDLC 的每个阶段都正在被从根本上改变:需求变得迭代,设计通过 AI 建议 *发现*,实现自动化,测试与编码同步进行,代码审查在很大程度上已过时,部署是持续的。 在这个新范式中成功的关键不是流程,而是 **上下文**。向 AI 代理提供清晰、详细的上下文至关重要。虽然监控仍然至关重要,但它必须从以人为本的仪表盘发展为允许代理自我纠正的自动化反馈循环。 未来属于能够有效引导 AI 的“上下文工程师”,以及利用直接影响代理行为的可观察性技术的团队——而不是那些坚持过时工作流程的团队。

一篇 Hacker News 的讨论围绕着“软件开发生命周期已死”的文章展开,引发了关于其观点的争论。核心论点是,人工智能驱动的自主开发从根本上改变了软件创建,可能使传统的软件开发生命周期阶段,如广泛的规划、设计文档和代码审查变得过时。 然而,许多评论者强烈不同意“已死”的说法。多位经验丰富的开发者表示,他们*从未*遇到过文章批判的那种僵化的瀑布式软件开发生命周期——在这种流程中,需求会被预先冻结,设计优先于所有编码。他们描述了更多迭代的、以概念验证为驱动的方法。 人们对需求如果不是来自传统的项目经理角色,将从何而来表示担忧,并且对让人工智能代理在代码库上不受控制地运行持怀疑态度。虽然承认工作流程*将会*适应更廉价的编码方式,但一些人认为完全抛弃既定实践是“荒谬的”。最终,这场讨论凸显了人工智能驱动开发的乐观愿景与当前软件工程实践的现实之间的紧张关系。

## EDuke32:终极《Duke Nukem 3D》体验 EDuke32是一个免费、开源且积极开发的《Duke Nukem 3D》经典第一人称射击游戏的源代码移植版本,使其能够在现代平台(如Windows、Linux和macOS)上运行,甚至超越这些平台!它由一个专注的社区创建,通过数千项改进,为玩家和模组制作者提供了比原版游戏更好的体验。 主要特性包括一个尖端的“Polymer”渲染器,提供动态光照、实时阴影和高级纹理支持,需要强大的显卡才能充分利用。EDuke32修复了原版游戏中存在的许多错误,确保在现代系统上的稳定性,并支持极高的分辨率。 除了《Duke Nukem 3D》之外,它还包含《Shadow Warrior》(VoidSW)的移植版本,并支持《NAM》等经典游戏。凭借扩展的脚本系统、全面的控制台和现代控制方式,EDuke32提供了显著增强且可定制的游戏体验,并在开发二十多年后持续发展。

一篇最近的 Hacker News 帖子重点介绍了 **EDuke32**,这是经典第一人称射击游戏 **Duke Nukem 3D** 的开源移植版。 这篇帖子引发了用户们怀旧的讨论。 评论者称赞 Duke Nukem 3D 在当时具有开创性,并提到了它的关卡设计、图形、音效以及独特的“成人”主题——对于它的年代来说,争议、性内容和血腥场面的比例很高。 一位用户 fondly 回忆了使用笔记本电脑玩这款游戏的早期多人游戏体验,而另一位用户则提到最近作为“老派射击游戏”复兴的一部分重新游玩它,并继续享受 Doom 和 Quake 的模组。 本质上,这场讨论庆祝了 Duke Nukem 3D 经久不衰的遗产和可重玩性,这要归功于 EDuke32 项目。

作者强烈厌恶现代前端开发中的“魔法”——对复杂且常常不甚理解的技术的依赖,例如JavaScript库、框架(尤其是React),以及现在,AI生成的代码。这源于对控制权的渴望,以及对这些抽象化会降低开发者的能动性并造成长期维护噩梦的信念。 虽然承认像npm和大型语言模型这样的工具的实用价值,作者更喜欢在个人项目中坚持使用原始的HTML、CSS和JavaScript,优先考虑理解和持久性而非速度。他们承认这种立场在商业上不可行,甚至拒绝了需要使用React的客户工作。 核心论点是,虽然抽象化可以加速开发,但往往以牺牲理解为代价。代码库变得依赖于“咒语”——效果不明的函数,并在原始开发者的理解丧失时变得脆弱。对于长期项目,作者认为保持对代码的深刻理解至关重要,因此手工制作,即使速度较慢,也是更可取的方法。归根结底,这是一种对工艺而非便利的偏好。

## 黑客新闻讨论总结:“我不喜欢魔法” 一篇名为“我不喜欢魔法”的文章引发了黑客新闻的讨论,讨论的核心是软件开发中的抽象与对基础理解的渴望之间的 tension。原文作者表达了对 React 等复杂框架的不适,更倾向于使用 HTML、CSS 和 JavaScript 等“原始”技术。 许多评论者争论这种对抽象的反感是否合理。一些人同意,认为“魔法”(不透明的代码行为)会阻碍调试和长期维护。另一些人则认为所有软件都依赖于抽象层——甚至编译器和操作系统——并且专业化是必要的。 许多人指出框架对团队协作和生产力的好处。 一个关键的争论点是“魔法”的定义,一些人区分了有用的抽象和那些掩盖底层功能的抽象。AI 辅助编码的兴起也进入了讨论,一些人认为它可能会进一步降低对深入理解的需求。最终,这场讨论突出了软件开发中不同的理念,在控制和理解与实用主义和效率之间取得平衡。

## zclaw:适用于ESP32的微型AI助手 zclaw是一款轻量级AI个人助手,专为在ESP32板上运行而设计,固件尺寸非常小(<= 888KB)。它使用C语言编写,可以实现对计划任务、GPIO引脚和持久内存的自然语言控制。 用户可以创建自定义工具,并通过Telegram或托管Web中继与zclaw交互。它支持流行的LLM提供商,如Anthropic、OpenAI和OpenRouter,并在ESP32-C3、S3和C6板上进行了测试。 设置过程简化为一行启动脚本,然后进行烧录和凭证配置。提供了全面的文档和各种脚本,用于构建、烧录(包括安全选项)、测试和基准测试性能。zclaw非常适合寻求有趣且可黑客改造的AI驱动ESP32项目的爱好者和开发者。

Hacker News 新闻 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 zclaw: 在 ESP32 上运行的个人 AI 助手,体积小于 888 KB (github.com/tnm) 10 分,tosh 发表于 1 小时前 | 隐藏 | 过去 | 收藏 | 1 条评论 帮助 johnea 发表于 7 分钟前 [–] 我其实不需要任何帮助…回复 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:

Inputlag.science 是一个致力于理解和解决输入延迟——玩家操作与屏幕反应之间的延迟——的资源站点,尤其是在游戏系统中。 输入延迟曾经是一个小问题,但随着游戏技术的日益复杂,它变得越来越严重。 该网站解释说,延迟增加源于现代系统的复杂性以及开发者对导致延迟因素的认识不足。 它将“延迟链”分解为三个关键组成部分:控制器、游戏引擎和显示器。 Inputlag.science 旨在教育开发者和消费者,提供识别和减轻输入延迟的知识和测量技术,尤其侧重于控制器和游戏引擎方面。 最终目标是帮助将游戏体验的响应速度恢复到早期水平。

Hacker News 新闻 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 Inputlag.science – 游戏输入延迟知识库 (inputlag.science) 16 分,由 akyuu 48 分钟前发布 | 隐藏 | 过去 | 收藏 | 1 条评论 帮助 wa008 2 分钟前 [–] 输入延迟是那种你感觉到了才能解释的东西。很高兴终于有一个资源能够分解整个链条——控制器、引擎、显示器——而不是像所有人一样只责怪显示器。 引擎部分似乎是大多数开发者忽略的部分。锁定在 60fps 并不意味着 16ms 的延迟,而且这个差距让我感到惊讶。回复 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:

## Rust 中的类型驱动设计:将验证转移到类型系统 本文探讨了 Rust 中一种强大的设计模式——利用类型系统来强制不变式并减少运行时验证。受 Haskell 文章启发,它提倡“解析,而非验证”,意味着将约束*编码到*类型中,而不是在运行时检查它们。 传统方法通常使用 `Option` 或 `Result` 来处理潜在的失败(例如除以零)。虽然功能性很好,但这会将验证逻辑推入函数中,并要求调用者处理潜在的错误。另一种选择是创建新的类型——例如 `NonZeroF32`——来*保证*某些属性。这会将责任转移到类型构造器,确保不可能存在无效状态。 这种方法具有代码清晰度提高、冗余减少(避免重复检查)和对重构的抵抗力增强等优点。示例包括使用 `String`(`Vec<u8>` 的新类型)进行 UTF-8 验证,以及探索 `NonEmptyVec` 以保证向量不为空。 核心原则是使非法状态*不可表示*,并尽早证明不变式,让编译器强制正确性。虽然并非万能药,但采用这种“类型驱动设计”可以编写出更健壮和可维护的 Rust 代码。

一个Hacker News讨论围绕着软件设计中的“解析,而非验证”概念,尤其是在Rust中。链接的文章(harudagondi.space)探讨了这个想法,提倡强大的解析来防止无效数据*进入*系统,而不是依赖于后期的验证检查。 一位评论者指出,这个原则可以通过依赖类型——在Idris等语言中找到——来扩展,从而在*编译时*强制执行约束。这意味着诸如访问越界数组之类的错误可以在程序运行之前被防止,而无需事先知道数组的长度。 该讨论还包括许多链接到过去Hacker News讨论“解析,而非验证”原则的帖子,展示了它在开发者社区中持续的相关性和受欢迎程度。这些链接跨越了数年,表明了对这个话题持续的兴趣。

更多

联系我们 contact @ memedata.com