每日HackerNews RSS

启用 JavaScript 和 Cookie 以继续。

## Safelaunch:防止“在我机器上能运行”的部署问题 一位开发者创建了 **Safelaunch**,一个用于解决部署失败却在本地测试通过的令人沮丧问题的工具。这个问题源于开发环境和生产环境之间的差异——通常是一些简单的事情,例如缺少环境变量或配置不匹配。 Safelaunch 会将你的 `.env` 文件与 `.env.example` 进行比较,突出显示部署*之前*缺少的必需变量。它充当后端配置的“拼写检查器”,防止因这些容易被忽视的错误而导致崩溃。 目前,Safelaunch 作为本地 CLI 工具运行,并且可以集成到 CI/CD 管道中。创建者正在寻求反馈,以确定这个问题——以及 Safelaunch 的解决方案——是否广泛适用于他们自己的工作流程之外。

## 构建更好的编辑器:一次个人旅程 对现有的文本编辑器感到不满——即使尝试了 Helix、VS Code 和 Vim 等许多编辑器——一位程序员开始构建自己的编辑器。现有工具在对其工作流程至关重要的领域表现不足:高效的项目范围搜索、无缝的 SSH 访问以及功能完善的集成终端。 该项目优先考虑个人需求而非广泛的功能集,专注于为开发人员特定语言和习惯量身定制的简化体验。主要成果包括一个受 Howl 启发的快速文件浏览器、一个高度优化的正则表达式引擎,用于语法高亮和搜索,以及一个基于 Alacritty crate 构建的终端模拟器。通过诸如按需高亮和最小化终端重绘等技术来提高性能。 该开发者强调构建自定义工具的好处:完美适应个人工作流程、加深技术理解、提高生产力,最重要的是,重燃编程的乐趣。这个过程虽然具有挑战性,但却非常有价值,将重点从与工具作斗争转移到创造性问题解决,并重新点燃了对这项技艺的热情。最终,这段经历倡导工程师们拥抱构建自己的工具,在奋斗中找到乐趣,并获得由此带来的个性化力量。

黑客新闻 新 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 我正在编写自己的文本编辑器,并且每天都在使用它 (jsbarretto.com) 16点 由 todsacerdoti 1小时前 | 隐藏 | 过去 | 收藏 | 讨论 帮助 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请YC | 联系 搜索:

这个故事源于1994年的一封邮件,讲述了加利福尼亚州帕洛阿尔托市发生的一起怪异事件。一个城市变压器室,容纳着为市中心办公楼供电的一百万瓦设备,被发现装满了大约2000加仑的废弃食用油。 多年来,附近一家餐厅一直在非法将炸油倾倒进变压器室,错误地认为它通往雨水下水道。变压器的热量使油脂保持熔化状态,造成了严重的火灾隐患。如果变压器过热,可能会点燃油脂,导致一场巨大的“超级油火”。 问题浮出水面是因为餐厅顾客抱怨有腐臭味。城市公用事业部门最终发现了问题,切断了电源,移除了油脂,并更换了变压器。幸运的是,没有人受伤,一家餐厅暂时无法提供油炸食品。

这个Hacker News讨论围绕一篇1994年关于一场大规模油锅起火的文章,很可能发生在餐厅。对话很快偏离到几个有趣的岔路。 一个话题探讨了“mother of all…”这个短语的起源,追溯到萨达姆·侯赛因在海湾战争期间使用“mother of all battles”,以及随后迪克·切尼等人的采用。 另一个话题关注废弃食用油的经济学,指出其价值以及存在专门回收用于生物柴油生产的公司——甚至包括英国的麦当劳。这引发了关于环保抗议有效性的争论,一位评论员认为某些行动可能会无意中*增加*生态破坏。 最后,有人提出了一个关于变压器尺寸的技术问题(伏安与瓦特),并幽默地表示更喜欢听起来“更酷”的兆伏安。这场讨论突出了实际解决方案(回收油脂)和环保行动主义的复杂性。

## Zig 开发更新 - 2026 (截至 3 月 10 日) 最近的 Zig 开发主要集中在重要的内部改进和扩展功能上。一个包含 30,000 行代码的 PR 彻底修改了编译器的类型解析逻辑,从而实现了更快的增量编译(修复了过度分析问题),并允许编译器在分析未使用的类型字段时“更懒”——这对于用作命名空间的类型是有益的。依赖循环错误信息也得到了显著改进,提供了清晰的解决指导。 在标准库方面,`std.Io.Evented` 接近完成,为 I/O 操作提供用户空间堆栈切换(纤程/协程),但仍被认为是实验性的。努力仍在优先使用原生 Windows API 而不是 Win32 包装器,以提高性能和可靠性,避免不必要的分配和故障。 `zig libc` 子项目正在取得进展,用 Zig 包装器替换了 vendored C 代码,用于 libc 函数,从而减少了代码重复并提高了编译速度。这也为未来与 Zig 功能(如 io_uring 和资源泄漏检测)集成打开了可能性。已经删除了超过 250 个 C 文件。 最后,团队承认并表示与在城市中面临问题的抗议者站在一起。

Zig – 类型解析重新设计和语言变更 (ziglang.org) 14 分,Retro_Dev 1 小时前 | 隐藏 | 过去 | 收藏 | 1 条评论 帮助 h4ch1 3 分钟前 [–] 我真的很想听听在生产/半严肃应用中使用 Zig 的人怎么说;在软件稳定性重要的情况下。你对不断变化的语言有什么体验?你的更新/重写周期如何?有没有你可能使用的包落后于语言的情况?我知道 Bun 在一定程度上成功地使用了 Zig,想知道其他人怎么样。 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:

请启用 JavaScript 并禁用任何广告拦截器。

黑客新闻 新 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 EQT 正在考虑以 60 亿美元出售 Linux 先驱 SUSE,消息人士称 (reuters.com) 11 分,由 shscs911 发表于 2 小时前 | 隐藏 | 过去 | 收藏 | 1 条评论 帮助 stuaxo 31 分钟前 [–] 私募股权 + 公司被大幅虚高的这种现象 - 最终只有一种结果,可能不是这个买家,但未来某个买家会遇到,整个模式存在严重问题,从 Y Combinator 资助的初创公司开始。回复 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:

## 从递归到迭代:用栈安全换取清晰度 本文探讨了一种将优雅的递归代码转换为迭代形式的技术,用于像JavaScript/TypeScript这样的语言,以避免堆栈溢出错误。虽然递归通常是固有递归问题的最易维护的解决方案,但对于深度嵌套的数据结构来说,它可能会有问题。 核心思想是使用可变数据结构手动模拟调用堆栈——本质上将每个堆栈帧表示为一等值。这允许迭代执行,而无需依赖语言的调用堆栈。这个过程并非完全可自动化,但很大程度上是机械化的,产生可理解的(但不太清晰的)代码。 作者通过链表、二叉树,最后是互递归树和森林来演示这一点。复杂性随着分支数据结构的增加而增加,需要类似堆栈的结构来管理延迟计算。 鉴于复杂性增加,使用基于属性的测试(使用`fast-check`)进行严格测试至关重要,以确保正确性。基准测试显示,与递归版本相比,性能下降了大约2.2倍,对于某些场景来说,这是一个合理的权衡,以换取堆栈安全。该技术存在局限性,尤其是在多态递归函数方面。作者寻求进一步的探索和相关的参考文献。

Hacker News新 | 过去 | 评论 | 提问 | 展示 | 工作 | 提交登录通过显式调用栈模拟移除递归 (jnkr.tech) 6 分,gsky 2 小时前 | 隐藏 | 过去 | 收藏 | 2 评论 帮助 juancn 11 分钟前 | 下一个 [–] 这可以通过机械方式完成,这本质上是编译器所做的事情。但是的,这是一种有用的技术,特别是当存在尾递归时,显式堆栈会消失,递归变成一个普通的循环,硬件非常喜欢。回复 le-mark 44 分钟前 | 上一个 [–] 我曾经看到一个 COBOL 大型机批处理程序,它将中间值写入文件,退出,并根据退出代码重新提交自身,再次处理该文件,并重复,直到中间文件为空。这完全是一个巨大的技巧,用于绕过 COBOL 中缺乏调用堆栈和递归。回复 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:

## Bippy:React 内部机制探索 Bippy 是一套工具,用于访问 React 的内部“fiber”——代表组件和 DOM 元素的执行核心单元——而无需修改 React 代码本身。通常,这些内部机制是无法访问的,但 Bippy 通过伪装成 React Devtools 来绕过这一限制,从而访问 fiber 树和相关数据。它支持 React 17-19 版本,并且不需要事先了解 React 的源代码。 主要功能包括遍历 fiber 树(`traverseFiber`)、识别渲染的组件(`traverseRenderedFibers`)以及检查 props、state 和 context。Bippy 通过拦截 React 与 `window.__REACT_DEVTOOLS_GLOBAL_HOOK__` 对象的通信来实现这一点,该对象传统上由 React Devtools 使用。 **使用方法:** 在 React 之前导入 Bippy,以接入其内部机制。像 `instrument` 这样的函数可以安全地修补全局 hook,而 `secure` 则添加了错误处理。像 `getFiberFromHostInstance` 这样的工具可以将 DOM 元素链接到其对应的 fiber。 **重要提示:** Bippy 主要是一个开发工具。虽然提供了安全保障,但在生产环境中使用时应谨慎考虑,并参考 React-Scan 等项目以实现更强大的功能。它是一个强大的工具,用于理解 React 的内部运作和调试复杂应用程序。

Hacker News 新闻 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 Bippy: React 内部工具包 (bippy.dev) 14 分,handfuloflight 发表于 2 小时前 | 隐藏 | 过去 | 收藏 | 2 条评论 帮助 gnabgib 发表于 3 分钟前 | 下一个 [–] (2024) 可能是 2023 (基于 html 源码) https://web.archive.org/web/20241225102920/https://www.bippy... 回复 KnlnKS 发表于 28 分钟前 | 上一个 [–] 很酷的项目。这个库在 devtools 之外还有什么用途吗?回复 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:

## 保护光标云代理中的密钥 光标云代理虽然简化了工程工作流程,但也带来了新的凭证泄露风险。每个代理都在隔离的虚拟机中运行,需要密钥才能执行诸如数据库访问和私有包安装等任务。常见的陷阱——硬编码凭证、将密钥存储在提交的文件中以及烘焙在快照数据中——都会产生漏洞。 Infisical 提出了一种解决方案:**仅将 Infisical 机器身份凭证存储在光标的密钥 UI 中。** 然后使用这些凭证在运行时从 Infisical 动态拉取所有其他密钥,从而避免将其存储在光标内部。 这可以通过使用 `infisical run` 将密钥作为环境变量直接注入到进程中,或使用 `infisical export` 将密钥写入必要的文件(如 `.env`)来实现。 重要的是,这种方法确保密钥在每次启动时都是最新的、可审计的并且可以轮换。 此外,Infisical 建议将机器身份限定到特定环境(开发、生产、CI),并具有有限的访问权限,从而最大限度地减少潜在泄露的影响范围。 通过最大限度地减少光标中存储的内容并利用像 Infisical 这样强大的密钥管理系统,团队可以保护其代理并避免烘焙在其中的、长期存在的凭证带来的风险。

黑客新闻 新 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 安全密钥管理,用于光标云代理 (infisical.com) 12 分,由 vmatsiiako 1小时前 | 隐藏 | 过去 | 收藏 | 1 条评论 帮助 rossjudson 16 分钟前 [–] “如果你不小心”会产生安全风险吗?安全风险无论你是否小心都会产生。你能做的最好的是减少你正在创建的新攻击面。 https://infisical.com/blog/secure-secrets-management-for-cur... 回复 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请YC | 联系 搜索:

## 生成模型:一种科学的实用性方法 当前关于生成模型的讨论,常常缺乏对其实用性的严格、科学评估。与其通过建模工具和任务来分析工具X是否对任务Y有用,不如基于“感觉”和广泛的应用来做出声明,而缺乏批判性评估。作者提出一个基于三个关键因素来评估生成模型实用性的框架:**编码成本**、**验证成本**以及**过程与成果**的重要性。 **编码成本**比较了提示模型与直接创建所需输出的努力程度。**验证成本**评估了确保生成结果满足要求的难度。最后,**过程**的重要性认识到,某些任务,例如教育或某些工程实践,优先考虑*如何*做,而不仅仅是*做什么*。 作者认为,当编码成本低廉和/或验证非常容易,*并且*过程不重要时,实用性会增加。复杂的任务通常会增加编码和验证成本,从而降低实用性。此外,生成模型不太可能对依赖过程的任务有帮助。 最终,确定实用性需要领域专业知识以及对这些权衡的仔细考虑——这是一种工程形式。虽然承认这些模型的潜力,但作者强调“合理”的输出并不等同于“有用”的输出,并且增加模型复杂度并不能自动转化为增加价值。

黑客新闻 新 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 反向信号:生成模型何时有用 (williamjbowman.com) 8 分,由 takira 1小时前发布 | 隐藏 | 过去 | 收藏 | 讨论 帮助 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请YC | 联系 搜索:

## Firetiger 现在可以连接到您的私有数据库 Firetiger 数据库代理旨在自动化数据库管理(Postgres、MySQL、ClickHouse),但大多数有价值的数据库都位于私有网络中,这带来了连接性挑战。传统的解决方案,如 VPC 对等互联或 VPN,复杂且容易出现问题。 Firetiger 通过 **网络传输** 来解决这个问题,首先是 **Tailscale**。Tailscale 简化了网络之间的安全连接,允许 Firetiger 代理访问您的数据库,*而无需*将其暴露到公共互联网。 操作方式如下:您使用 Tailscale 的基于身份的访问控制在您的 Tailnet 中授予 Firetiger 访问权限,创建凭据,并配置 Firetiger Tailscale 网络传输。这将建立一个安全加密的连接。 这意味着您现在可以利用 Firetiger 的自动化 DBA 和自定义代理来监控和管理您私有托管的数据库,消除盲点并简化操作——即使在复杂的网络配置下也是如此。提供了一个详细的指南,其中包含完整的设置示例。

黑客新闻 新 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 使用Tailscale与代理建立网络:将它们置于正确的对话中 (firetiger.com) 12 分,由 matsur 1小时前发布 | 隐藏 | 过去 | 收藏 | 1 条评论 帮助 Avicebron 31分钟前 [–] 推理是在网络中进行吗?回复 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请YC | 联系 搜索:

更多

联系我们 contact @ memedata.com