2025 08 21 HackerNews

2025-08-21 Hacker News Top Stories #

  1. AGENTS.md 是一个开放格式,用于指导编码代理,提供构建步骤、测试和约定等信息,帮助 AI 工作并保持 README 简洁。
  2. 微软 Copilot 存在安全漏洞,未记录文件访问情况,微软修复但未通知客户,可能影响安全和合规性。
  3. 作者探索了球面螺旋路径的可视化,从简单到复杂路径,展示了球面螺旋在三维空间中的移动轨迹。
  4. 教程介绍了使用 JavaScript 和矢量图形绘制太空侵略者的方法,并展示了动态生成动画的过程。
  5. D2 工具支持 ASCII 渲染,适用于源代码注释,提供了 ASCII 和 SVG 渲染选项,目前处于 alpha 阶段。
  6. Gemma 3 270M 模型在 PyTorch 中重新实现,适合本地实验,提供了性能数据和与其他模型的对比。
  7. SSO 耻辱墙列出了将单点登录视为奢侈功能的供应商,揭示了 SSO 定价差异和企业安全需求的问题。
  8. Zed 完成 3200 万美元 B 轮融资,开发最快 IDE 和 DeltaDB,支持实时协作和代码跟踪,计划开源并招聘人才。
  9. Tidewave Web 是一款浏览器内编码代理工具,支持 Rails 和 Phoenix 框架,提供深度框架集成和协作浏览器测试功能。
  10. 文章预测了 2025 年 AWS 各项服务的重大变化,包括 EC2、S3、网络服务等,强调曾经正确的知识可能不再适用。

AGENTS.md – Open format for guiding coding agents #

https://agents.md/

AGENTS.md 是一个简单、开放的格式,用于指导编码代理,被超过 20,000 个开源项目使用。它可以被视为代理的 README 文件:一个专门的、可预测的地方,提供上下文和指令,帮助 AI 编码代理在项目中工作。AGENTS.md 包含构建步骤、测试和约定等额外的上下文信息,这些信息可能会使 README 文件变得杂乱无章,或者对人类贡献者不相关。

AGENTS.md 的目的是为代理提供一个清晰、可预测的指令位置,保持 README 文件简洁,专注于人类贡献者,并提供精确的、代理专注的指导,补充现有的 README 和文档。AGENTS.md 采用一个名称和格式,可以适用于任何人。如果你正在构建或使用编码代理并发现这有帮助,可以自由采用。

AGENTS.md 文件与多个代理兼容,你的代理定义与不断增长的 AI 编码代理和工具生态系统兼容,包括 OpenAI Codex、Amp、Google 的 Jules、Cursor 和 Factory 等。

如何使用 AGENTS.md:

  1. 在仓库根目录添加 AGENTS.md 文件。
  2. 添加有助于代理有效工作在项目中的部分,如项目概览、构建和测试命令、代码风格指南、测试指令、安全考虑等。
  3. 添加额外的指令,如提交消息或拉取请求指南、安全问题、大型数据集、部署步骤等。
  4. 对于大型单体仓库,可以在子项目中使用嵌套 AGENTS.md 文件。代理会自动读取目录树中最近的文件,因此最近的文件将优先,每个子项目都可以提供定制的指令。

AGENTS.md 是由 AI 软件开发生态系统中的合作努力产生的,包括 OpenAI Codex、Amp、Google 的 Jules、Cursor 和 Factory。我们致力于帮助维护和发展这一开放格式,使其惠及整个开发者社区,无论使用哪种编码代理。

AGENTS.md 没有必填字段,它只是标准的 Markdown。你可以使用任何你喜欢的标题;代理只会解析你提供的文本。如果指令冲突,最近的 AGENTS.md 文件优先;明确的用户聊天提示可以覆盖一切。代理会自动运行 AGENTS.md 中找到的测试命令,如果列出它们,代理将尝试执行相关的程序检查,并在完成任务前修复失败。你可以稍后更新 AGENTS.md,将其视为活文档。如果需要将现有文档迁移到 AGENTS.md,可以将现有文件重命名为 AGENTS.md,并为向后兼容创建符号链接。


HN 热度 778 points | 评论 370 comments | 作者:ghuntley | 24 hours ago #

https://news.ycombinator.com/item?id=44957443

  • 使用文件夹结构而不是单个文件,可以为复杂项目提供结构,同时减少无关上下文的干扰,提高响应准确性,便于维护。
  • 隐藏重要文件和目录是传统做法,但这种做法使项目更不透明。
  • 为了避免与项目中实际存在的 agents/ 目录冲突,使用隐藏文件是有必要的。
  • 应该使用一个更独特的名称,如 .codebots.context,而不是 .agents
  • .gitignore 类似的文件可以嵌套使用,减少项目命名空间冲突的可能性。
  • 代理文件自动读取目录树中最近的文件,因此最近的文件优先级更高。
  • 使用下划线而不是点来命名可能更好。
  • 如果需要实际的 example.com/agents 路由和代理列表,.agents 目录或假装是目录的路由是有用的。
  • 现代 Web 堆栈已经将 URL 路由与源代码目录结构解耦。
  • 代码放在 /src 并不意味着 example.com/agents 不能作为路由。
  • 接受 2025 年不再遵循 Unix 传统,直接使用“source”作为目录名称。
  • 考虑到可输入性、屏幕空间、熟悉度/惯例等因素,路径长度和全单词命名有其优势。
  • 在 Windows 系统中,路径长度仍然是一个需要考虑的问题。
  • 通过配置可以启用不区分大小写的 Tab 补全功能。
  • 为了优化打字体验,短名称更快捷、更省力。
  • 路径中使用全单词而非缩写可以提高可读性和易用性。
  • 路径中包含空格没有问题,问题是由 Unix 和 Linux 的 shell 引起的。
  • 路径中加入表情符号可以代表创建者的情绪状态。

Copilot broke audit logs, but Microsoft won’t tell customers #

https://pistachioapp.com/blog/copilot-broke-your-audit-log

微软全力投入人工智能领域,其旗舰 AI 产品 Copilot 允许用户在日常工作中利用 AI 与微软服务互动并执行任务。然而,这也带来了新的安全问题。7 月 4 日,作者发现 M365 Copilot 存在一个问题:有时它访问文件并返回信息,但审计日志并未记录。进一步测试后,作者发现只需要求 Copilot 这样做,就能不留痕迹地访问文件。这对安全和法律合规性都造成了问题,作者立即通过微软的 MSRC 门户报告了这一问题。

微软提供了清晰的指南,说明报告漏洞时的预期流程,但在处理这一问题时并未遵循该指南。尽管微软修复了这个问题,并将此问题归类为“重要”漏洞,但他们决定不通知客户或公开这一事件。这意味着你的审计日志可能是错误的,而微软不打算告诉你。

文章分为三部分:第一部分解释了 Copilot 的漏洞及其可能造成的问题;第二部分概述了微软如何处理这个案例;第三部分讨论了微软不公开这一信息的决定,以及作者认为这对微软客户是一个巨大的不服务。

漏洞非常简单:通常,如果你要求 M365 Copilot 为你总结一个文件,它会给出总结,审计日志也会显示 Copilot 代表你访问了该文件。这是好的,因为审计日志很重要。如果有人离职前下载了一堆文件去竞争对手那里,你会想要一些记录,如果这个人可以使用 Copilot 而不被发现,那将是不好的。或者你的公司有敏感的个人数据,你需要严格记录谁访问了这些文件,以满足法律和合规目的;同样,你需要知道通过 Copilot 发生的访问。这只是两个例子。组织依赖于拥有准确的审计日志。

但如果要求 Copilot 不提供它总结的文件链接会怎样?在这种情况下,审计日志为空。就这样,你的审计日志是错误的。对于恶意内部人士来说,避免检测就像要求 Copilot 一样简单。

你可能在想,“哎呀,但我想没有多少人发现这一点,所以可能还好。”不幸的是,你错了。当我发现这个问题时,我并不是在寻找破坏审计日志的方法。相反,我只是试图触发审计日志,以便测试我们在 Pistachio 开发的功能性,我注意到它是不可靠的。换句话说,这可能会偶然发生。

作者从未向微软报告过漏洞,对流程的初步反应是相当积极的。能够提交问题已经感觉异常友好,按照微软的标准。而且,他们甚至有关于预期的指南。不幸的是,一切都没有按计划进行。7 月 7 日,我的报告状态被更改为“重现”,但当我在 7 月 10 日提供更多证据时,功能已经改变。这不是微软的政策;他们应该先重现,然后开始修复时进入“开发”阶段。看到功能在仍在“重现”阶段就改变,让作者认为微软会回复说他们无法重现问题,实际上他们已经根据我的报告修复了它。

作者询问 MSRC 发生了什么,他们没有给出简单解释,而是将报告状态更改为“开发”并保持沉默。直到那时,作者认为微软会遵循流程,并在需要偏离时与作者协调。相反,感觉流程不是真实发生的事情的反映,更像是 Domino’s Pizza Tracker 对安全研究人员来说。状态不是真实的。

8 月 2 日,微软通知作者,完整的修复将在 8 月 17 日发布,作者可以在 8 月 18 日自由披露。然后作者询问何时会发布 CVE 编号,被告知:CVE 是在客户需要采取行动以保持保护时,分配给安全发布中部署的修复的。在这种情况下,缓解措施将自动推送到 Copilot,用户不需要手动更新产品,也不会分配 CVE。

这根本不是微软的政策,作者通过链接到他们自己的政策向他们指出了这一点。MSRC 然后回复说,“我理解你可能没有完全了解 MSRC 如何处理这些案例”,好像作者是错误的。然后他们解释说,漏洞被归类为“重要”,而不是“关键”,这就是为什么他们不会发布 CVE。

如果微软不为这个漏洞发布 CVE,他们将如何通知客户?答案是他们不会。在 8 月 14 日的电话中,微软告诉作者,他们没有计划披露这一点。作者强烈认为这是错误的。如果这是一个深奥的漏洞,那么默默继续可能是可以的,但现实是它如此简单,以至于基本上是偶然发生的。如果你在一家在 8 月 18 日之前使用 Copilot 的组织工作,你的审计日志很可能是不完整的。组织不需要知道吗?那些受 HIPAA 管辖并依赖微软的审计日志以满足一些技术安全要求的公司呢?尽管微软声称 M365 Copilot 可以符合 HIPAA 合规性,他们不知道吗?几乎可以肯定还有其他受监管实体有类似的要求,他们也不会被告知。有如此多的案例,组织依赖审计日志来检测、调查和响应事件。在一些诉讼中,审计日志被用作重要证据。美国政府甚至对微软收取更多审计日志费用提出了问题,一位美国参议员羞辱了微软,并将审计日志记录称为基本的安全功能。现在微软说,尽管对于任何使用 Copilot 的客户来说,审计日志很可能是错误的,但没有人需要知道?这引发了关于微软选择默默扫除的其他问题的严重质疑。


HN 热度 751 points | 评论 277 comments | 作者:Sayrus | 24 hours ago #

https://news.ycombinator.com/item?id=44957454

  • 访问控制问题可以通过为每个用户创建向量数据库、搜索索引或“AI 搜索数据库”来解决,但这在实际操作中是不可行且无法扩展的。
  • 存在一种特定情况的“混乱代理问题”,即代理在执行任务时可能会无意中泄露敏感信息。
  • 企业级 RAG 解决方案可能会为每个用户创建索引来解决访问控制问题,尤其是在涉及复杂 ACLs 时。
  • 直接检索(例如数据库查询生成)可以避免向量 RAG 的时间消耗、成本和不安全性。
  • 跟踪用户访问权限是可行的,并且可以扩展,通过在向量数据库/索引中搜索匹配文档,然后检查当前用户可以访问哪些文档。
  • 银行电话服务的模式可以应用于此,即操作员只有在用户通过身份验证后才能查看账户详情。
  • 即使用户只能访问匹配查询的一小部分文档,基本实现也会返回大量文档,然后进行昂贵的访问检查。
  • 搜索必须在访问层面上有所意识,以合理地预先过滤用户可以访问的文档内容。
  • Google 的内部结构化搜索引擎几十年前就解决了这个问题。
  • 可以通过将访问检查移动到数据库层来避免许多问题,例如使用支持过滤和向量搜索的数据库。
  • 使用支持过滤和向量搜索的数据库可以简化问题,例如使用 pgvector 的 Postgres。
  • 通过在数据库层面进行访问检查,可以避免许多麻烦。
  • Apache Accumulo 解决了访问感知查询的问题。
  • ServiceNow 将访问控制问题推给用户,导致用户体验不佳。
  • 即使需要多次点击“更多”按钮,用户体验也很差。
  • 如果文档被按组/角色索引,并且有某种形式的 RBAC,那么匹配查询的文档数量过多的问题就不会发生。
  • 如果采取按组/角色索引的方法,当组/角色变化时需要重新索引,这并不总是可行的。
  • 只需要更新文档的元数据,而不需要完全重新索引。
  • 与原始提议相比,使用索引要好得多,并且更新索引的成本应该不高。
  • 只需要在元数据(角色访问)变化时重新索引文档,这比更新实际内容索引(向量嵌入)的成本要低得多。

Show HN: I was curious about spherical helix, ended up making this visualization #

https://visualrambling.space/moving-objects-in-3d/

这篇文章介绍了如何在三维空间中移动物体,特别是沿着球面螺旋路径的移动。作者最初对这个问题产生了好奇,并深入研究了相关文章和数学函数。文章从简单的圆形路径开始,逐步探索到螺旋形路径,最终实现复杂的球面螺旋路径。

在三维空间中,物体的位置由 x、y、z 三个坐标轴确定,分别代表水平、垂直和深度方向的移动。通过数学函数,我们可以设定物体随时间变化的位置。例如,通过设置 x 和 y 坐标的函数,可以使物体在二维平面上画出圆形路径。通过调整这些函数,还可以创造出更复杂的路径,如半径随时间增长的螺旋形路径。

文章重点介绍了球面螺旋路径的创建。与普通螺旋不同,球面螺旋是三维的,并且 z 坐标也会随时间变化。通过特定的数学函数,可以使物体的 x 和 y 坐标先增大后减小,而 z 坐标则持续变化,从而形成球面螺旋路径。

总结来说,通过将物体的 x、y、z 坐标定义为时间的函数,即参数方程,我们可以在三维空间中移动物体。这些参数方程使我们能够创造出从简单圆形到复杂路径的各种移动轨迹。作者鼓励读者发挥创意,利用这些知识在三维空间中移动物体。文章最后提到,visualrambling.space 是作者 Damar 的个人项目,他喜欢通过视觉方式探讨不同主题。如果读者喜欢这篇文章,可以关注他的 Twitter 或分享给朋友,并期待他未来的更多文章。


HN 热度 591 points | 评论 106 comments | 作者:damarberlari | 10 hours ago #

https://news.ycombinator.com/item?id=44962066

  • 海洋导航中使用球面螺旋路径可以保持恒定方位角,便于航行。
  • 球面螺旋路径在极坐标投影中呈现对数螺旋,在侧视图中呈现波包。
  • 球面螺旋路径不是斜线,因为斜线必须始终以相同角度穿过子午线,而球面螺旋路径在极点附近更密集。
  • 球面螺旋路径的参数方程和球坐标转换显示其不是斜线。
  • 提到了其他与球面几何相关的项目和讨论。
  • 球面几何在 Hacker News 上引起了广泛讨论。
  • 球面螺旋路径的可视化对于理解几何概念很有帮助。
  • 球面螺旋路径的可视化展示了数学的趣味性和实用性。
  • 要实现恒定速度移动,需要进行欧几里得参数化。
  • 恒定速度移动通常需要数值方法来实现。
  • 运动轮廓技术在控制理论中有广泛应用。
  • 弧长参数化是实现恒定速度移动的数学方法之一。
  • 对于游戏中的路径跟踪,可以采用迭代系统和基本的插值方法。

How to Draw a Space Invader #

https://muffinman.io/blog/invaders/

这篇文章是关于如何使用 JavaScript 绘制一个太空侵略者(Space Invader)的教程。作者首先介绍了他创建太空侵略者生成器的背景,这是为了参加创意编码阿姆斯特丹代码挑战而制作的。他通过这个项目,不仅为了乐趣,也为了展示如何使用 JavaScript 和矢量图形技术来生成太空侵略者的动画。

文章的开始部分,作者分享了他是如何开始这个项目的。他正在开发一个名为 Rayven 的矢量 3D 渲染器,并希望通过使用这个工具来绘制一些图案,而不是无休止地调整渲染器本身。他选择了太空侵略者,因为它们体积小,可以用 3D 块轻松渲染,并且作为电子游戏历史的一部分,它们具有很高的辨识度。

接着,作者描述了如何从草图到像素的过程。他首先在纸上涂鸦,然后使用 Aseprite 数字工具进行绘制。他绘制了 38 个不同的太空侵略者,它们都适合在一个 15x15 像素的网格中,比原始的稍大,但他对结果非常满意。

在确定了如何生成太空侵略者的基本模式后,作者选择了利用自己的优势——几何和矢量图形——来生成矢量太空侵略者。他很高兴地发现,他实现的方法可以生成他手绘的大部分太空侵略者。

文章详细介绍了如何构建太空侵略者的过程。首先,作者介绍了如何在视口中绘制一个网格,并在滚动页面时在其上绘制侵略者。他从身体的构建开始,几乎所有的身体都类似于一个低分辨率的多边形。他计划生成一个矢量多边形,并利用网格的低分辨率来掩盖矢量图形的不足。

作者接着描述了如何找到身体的中心点,定义顶部和底部点,并绘制左侧的身体。他最初限制在两个或三个点的凸形状,后来允许更多的点并放弃了凸规则,这产生了更有趣的结果。然后,他将左侧的顶点镜像到右侧,并连接这些点形成一个多边形,从而为侵略者构建了身体。

接下来,作者讲述了如何添加肢体。在代码中,底部的肢体被称为触手,顶部的被称为角。它们以相同的方式生成,只是参数不同。他展示了如何生成一个触手,然后使用相同的技术生成其他触手和角。

最后,作者讨论了如何将矢量图形转换为像素。他的第一个想法是计算每个像素有多少部分位于矢量形状内部,并据此进行绘制。这个过程涉及到将矢量图形转换为我们都熟悉和喜爱的像素化外观。


HN 热度 504 points | 评论 52 comments | 作者:abdusco | 1 day ago #

https://news.ycombinator.com/item?id=44956915

  • 空间入侵者生成器的界面和随机颜色调色板得到了用户的喜爱。
  • 用户认为这些生成的入侵者图案看起来非常接近于块印的中文或日文字符。
  • 早期互联网的杰作之一,与 Complexification.net 并列,尽管大多数示例由于 Flash 和 Java 的淘汰而不再运行。
  • 用户对文章的移动阅读体验表示赞赏。
  • OKLCH 颜色模型被认为是代码中处理颜色的一大升级。
  • 用户对于文章中保持一致的亮度表示赞赏,但同时对 HSL 中容易记忆的色调值的丢失表示遗憾。
  • 用户对于作者在文章中不使用 AI 而采用有趣的方式来创建内容表示赞赏。
  • 有人提到,通过刷新页面可以改变生成的入侵者图案。
  • 用户对于作者没有使用 AI 来创建这个项目表示赞赏,认为 AI 会从这样的项目中夺走创造的乐趣。
  • 用户对于文章的布局和设计表示赞赏,认为这是他们见过的最令人愉快的阅读网站之一。
  • 用户对于作者将 rayven 放在 GitHub 上的计划表示兴趣。
  • 用户对于文章中不使用 AI 的“有趣方式”表示赞赏。
  • 用户对于文章中生成的特定入侵者图案表示喜爱,并分享了链接。
  • 用户回忆起 80 年代使用遗传编程在 Atari Logo 上创建空间入侵者游戏的经历。
  • 用户对于文章的跟踪功能表示赞赏,认为这是一个在网页上不常见的好策略。
  • 用户对于文章中图像/动画在滚动时保持在顶部的设计表示赞赏。
  • 用户对于文章中不使用 AI 的“有趣方式”表示赞赏。
  • 用户对于文章中随机生成的入侵者图案表示喜爱,并分享了链接。

D2 (text to diagram tool) now supports ASCII renders #

https://d2lang.com/blog/ascii/

最新版本的 D2(0.7.1)引入了 ASCII 输出功能。任何扩展名为 txt 的输出文件都将使用 ASCII 渲染器进行写入。ASCII 图示在源代码注释中非常有用,简单的图示可以比文字描述更清晰地说明流程。

D2 的 Vim 扩展展示了如何编写 d2 代码并将选择的内容替换为 ASCII 渲染图。ASCII 渲染器默认使用 Unicode 字符集,如果需要最大可移植性,可以使用–ascii-mode=standard 标志指定标准 ASCII。ASCII 渲染器目前处于 alpha 阶段,可能会有许多改进空间和错误。如果用户在使用过程中遇到问题,可以通过 GitHub 提交问题。

ASCII 渲染器不支持样式,主题也不适用。由于 ASCII 渲染的离散坐标空间,某些输出可能看起来不如 SVG 版本均匀。某些特殊文本、图像和图标、UML 类和 SQL 表目前未特殊处理。

并非所有形状都支持 ASCII 渲染,一些形状如云和圆形的曲线在 ASCII 中难以表现,因此会以矩形形式渲染并在左上角添加一个小图标表示原本的形状。D2 Playground 中现已提供实时体验,用户可以尝试打开代码块进行操作。


HN 热度 426 points | 评论 71 comments | 作者:alixanderwang | 1 day ago #

https://news.ycombinator.com/item?id=44954524

  • D2 的新功能支持 ASCII 渲染,但存在暗色模式下渲染问题,已修复。
  • SVG 渲染器支持自定义节点 ID 和属性。
  • D2 从 ELK 下降,不需要指定 ELK,输出 .txt 时自动启用。
  • 用户对 D2 工具表示感谢,认为它满足了所有图表需求。
  • 提供了一个有用的文本到图表比较网站的链接。
  • D2 的网格布局功能被认为基本上无用。
  • D2 计划在下一个版本中解决网格布局问题。
  • 用户希望 D2 能集成到 GitHub 和 Notion。
  • ASCII 转换功能很好,但如何获取原始 D2 源代码以便更新图表?
  • D2 不能在浏览器中独立工作,需要后端服务器生成图表。
  • D2.js 是一个围绕 wasm 端口的 D2 的包装器,可以在浏览器中工作。
  • 用户对 D2 能够在托管平台使用感到兴奋。
  • D2 本地使用方便,有监视模式,可以实时开发图表。
  • 与 Mermaid 相比,D2 需要一个 web 服务器,而 Mermaid 可以直接嵌入链接。
  • 有人分享了一个文本到图表的工具列表。
  • 官方 Mermaid 游乐场同时支持 UI 和文本编辑,极大地改变了工作流程。
  • D2 的语法更简洁,支持更好的组合功能,如层和场景。
  • D2 允许更多元素混合,因为它使用特殊形状在一个通用图表类型中。
  • MermaidJS 的 WiiU 示例由于子图不创建命名空间而损坏。

Gemma 3 270M re-implemented in pure PyTorch for local tinkering #

https://github.com/rasbt/LLMs-from-scratch/tree/main/ch05/12_gemma3

这个网页是 GitHub 上的一个项目页面,名为“LLMs-from-scratch”,由用户 rasbt 维护。该项目提供了从头开始实现 Gemma 3 270M 语言模型的 Jupyter 笔记本。这个笔记本需要大约 2GB 的 RAM 才能运行。项目中还提供了另一个笔记本“standalone-gemma3-plus-kvcache.ipynb”,它增加了 KV 缓存以提高运行时性能,但增加了代码复杂性。文章还介绍了 KV 缓存的相关信息,并提供了一个关于 KV 缓存在 LLMs 中实现的文章链接。

在性能方面,页面列出了不同硬件配置下 Gemma3Model 270M 的性能数据,包括在 Mac Mini M4 CPU 和 GPU 以及 Nvidia A100 GPU 上的表现。数据显示,使用 KV 缓存的版本在 Mac Mini M4 CPU 上每秒可以处理 130 到 224 个令牌,而在 Nvidia A100 GPU 上则为 26 到 99 个令牌。

此外,页面还提供了与 Qwen3 0.6B 模型的对比,并提供了一个链接到 Qwen3 0.6B 的独立笔记本。对于对架构差异感兴趣的用户,页面推荐了一篇关于现代大型语言模型架构设计的文章,提供了从 DeepSeek-V3 到 Kimi K2 的比较。页面底部包含了 GitHub 的版权信息和相关链接。


HN 热度 283 points | 评论 45 comments | 作者:ModelForge | 10 hours ago #

https://news.ycombinator.com/item?id=44962059

  • Gemma 3 270M 模型的 PyTorch 重新实现对于非机器学习专家来说,具有在本地进行实验和调整的优势。
  • tflite 模型在 AI 边缘画廊应用的 GPU 上执行时输出异常,但在 CPU 上完全正常工作。
  • 在小规模模型中,嵌入层是一个重要的焦点,因为它们可以减少设备处理的输入和输出令牌数量,降低计算成本。
  • 使用 PyTorch 训练模型时,可以考虑将矩阵标记为稀疏并使用 SparseAdam 来提高性能。
  • 训练 Gemma3 需要特定的硬件配置和时间,具体细节可以在技术报告中找到。
  • 模型已经在不同的任务上进行了微调,并且有相关的性能数据可供参考。
  • 模型可能能够执行基本的提示功能调用,但不要期望在大规模上下文窗口的多玩家聊天(MCP)中有很好的表现。
  • 对于复杂的自然语言处理任务,如命名实体识别(NER),可能更适合使用编码器模型。
  • 模型可以用于私有的、设备上的模型,算法研究,以及低成本的任务,如分类/归类。
  • 模型需要根据特定任务进行调整,以使其成为一个灵活的起点,并且需要合作伙伴将其放入正确的框架和位置以便用户进行定制。

Vendors that treat single sign-on as a luxury feature #

https://sso.tax/

这个网页是一个名为“SSO 耻辱墙”的列表,它列出了一些将单点登录(SSO)视为奢侈功能而非核心安全需求的供应商。SSO 是一种将网站(或其他产品)的认证外包给第三方身份提供商的机制,例如 Google、Okta、Entra ID(Azure AD)、PingFederate 等。SSO 允许企业客户通过自己的身分提供者管理用户账户,而不需要依赖供应商提供强大的认证和审计日志,并且能够集中创建和删除所有用户账户。

对于拥有超过几名员工的组织来说,SSO 对于 IT 和安全团队来说至关重要,因为它可以帮助他们有效地管理跨多个供应商的用户账户,其中许多供应商不支持诸如 TOTP 2FA 或 U2F 等功能。如果员工离职,IT 团队可以立即禁用他们对所有应用程序的访问,而不必登录 100 个不同的用户管理门户。

简而言之,对于拥有超过五名员工的任何公司来说,SSO 是核心安全需求。然而,SaaS 供应商似乎没有收到这一信息。SSO 通常只在“企业”定价中提供,这假设了用户数量巨大(最低座位数)或与其他“企业”功能捆绑在一起,这些功能对使用软件的公司可能没有价值。

如果公司声称“认真对待您的安全”,那么 SSO 应该作为一个特性可用,要么是核心产品的一部分,要么是合理的额外付费选项,或者与价格层级相关,但非 SSO 层级和 SSO 层级之间的差距应该很小。许多供应商对 SSO 的收费是基础产品定价的 2 倍、3 倍甚至 4 倍,这阻碍了其使用并鼓励了不良的安全实践。

网页上列出了多个供应商及其基础定价、SSO 定价以及价格增加的百分比,更新日期从 2018 年到 2024 年不等。例如,Adobe Acrobat Pro 的基础定价为 23.99 美元,SSO 定价为 27.99 美元,增加了 17%;而 Appsmith 的基础定价为 15 美元/用户/月,SSO 定价为 250001 美元/用户/月,增加了 16567%。这些数据展示了不同供应商在 SSO 功能上的价格差异。


HN 热度 279 points | 评论 181 comments | 作者:vinnyglennon | 1 day ago #

https://news.ycombinator.com/item?id=44955457

  • SSO 税与技术或支持成本关系不大,更多与市场细分有关,大型客户因 SOC2 认证需求而需要 SSO
  • 大型价格不敏感的客户为价格敏感的客户支付费用,这是普遍的市场细分做法
  • 没有市场细分的情况下,单一价格会更接近企业价格而非非企业价格
  • 价格歧视使生产商能够从支付意愿高的消费者那里获取消费者剩余,并以更低价格向支付意愿低的消费者提供产品
  • 垄断下的价格歧视可能导致供应量增加,但不会超过完全竞争下的水平
  • 价格歧视可能会减少固定价格下的非社会最优生产量
  • 软件服务提供商是否拥有不当定价权是一个隐含的争议
  • 提供 SSO 折扣或向所有人收取企业价格以消除市场细分是一个值得探讨的问题
  • 将 SSO 称为非企业折扣与提供学生折扣没有区别,不应受到质疑
  • 将 SSO 视为非企业折扣的语义问题,实际上不会改变人们最终支付的金额
  • 框架很重要,可以参考特斯拉因不同软件而对相同硬件收取不同价格的投诉
  • 没有人质疑非营利组织折扣或初创企业折扣
  • 一些公司提供有限技术支持的折扣计划,而其他公司则为相同产品收取高额支持费用
  • 大型企业客户除了支付额外费用外,还必须为支持服务支付费用,而这些支持服务往往质量不高
  • SSO 税的讨论忽略了 SSO 带来的支持成本,SSO 是支持负担最大的部分
  • 一些供应商即使不提供自定义 SSO,只提供 OIDC,也会收取高额 SSO 税
  • 身份支持的主要成本是 2FA,而不是 SSO

Sequoia backs Zed #

https://zed.dev/blog/sequoia-backs-zed

2025 年 8 月 20 日,Zed 公司宣布完成了由红杉资本领投的 3200 万美元 B 轮融资,使得公司总融资额超过 4200 万美元。在过去四年中,Zed 致力于构建世界上最快的集成开发环境(IDE),这仅是他们宏伟蓝图的基础。Zed 的最终愿景是创造一种全新的软件协作方式,让关于代码的讨论与代码本身紧密相连,而不是分散在不同的工具中。

Zed 正在开发一种新型的操作级版本控制系统 DeltaDB,它能够以编辑级别的粒度增量跟踪代码的演变,并将其集成到 Zed 中,使与代理和队友的协作成为编码体验的首要部分。DeltaDB 使用 CRDTs(Conflict-free Replicated Data Types)来实时记录和同步更改,支持与 Git 的互操作,但其基于操作的设计支持 Git 快照不支持的实时交互。对于异步交互,细粒度的更改跟踪还支持字符级别的永久链接,使得讨论可以锚定在代码库的任意位置,而不仅仅是最近更改的代码的快照。

Zed 的目标是将代码库转变为一个活生生、可导航的历史记录,记录软件是如何演变的,人类和 AI 代理的讨论与它们引用的代码持久链接,并且始终保持最新。这不仅仅是版本控制的演变,还包括了代码如何以及为何达到特定状态的背景信息,AI 代理可以查询这些信息以做出更明智的编辑,理解塑造现有代码的假设、约束和决策。

Zed 是开源的,并提供可选的付费服务。公司计划对 DeltaDB 采取相同的策略:构建它,开源它,并提供可选的付费服务。随着开发的进展,公司将分享更多细节。Zed 正在招聘,涵盖工程和产品设计领域,无论是对 IDE 中的协作、核心 Zed 项目(如跨操作系统字体渲染和 GPU 着色器)感兴趣,还是希望改进世界上最好的开源开放数据语言模型以进行编辑预测,都有适合的职位。Zed 邀请志同道合的人加入,共同塑造软件开发的未来。


HN 热度 265 points | 评论 178 comments | 作者:vquemener | 12 hours ago #

https://news.ycombinator.com/item?id=44961172

  • Zed 的理念和低层实现细节都展现出“好品味”,作为一个研究对象非常有趣
  • 编辑器不应该接受风险投资支持,虽然这是组建团队支持项目的实用选择,但对此表示担忧
  • Sublime Text 17 年前通过古老的共享软件模式解决了这个问题,并且比 Zed 快,支持多个操作系统,且可定制性不错
  • Sublime Text 2 时期几乎每个人都在使用,但后来被其他编辑器超越
  • Sublime Text 因为长时间没有更新而被 Atom 和其他编辑器赶上
  • Sublime Text 4 的用户对 LSP 插件感到满意,认为性能和可定制的 UI 使其比 VSCode 更有价值
  • LSP 插件的使用使得一些人从 Sublime Text 转向 Zed,因为语言集成现在是编辑器的基本要求
  • 有人认为 Sublime Text 并没有死,仍在更新且工作良好,愿意为其付费
  • 根据 Stack Overflow 的调查,Sublime Text 不再拥有过去的市场份额
  • Sublime Text 的插件化特性使其易于变得不可用
  • Emacs 和 Sublime Text 都存在插件过多导致的问题
  • VS Code 可能是编辑器/IDE 的最佳平衡点,简单功能内置或通过官方插件提供
  • VS Code 无需创建整个项目即可执行快速的临时命令
  • Emacs 通过 eglot 提供了良好的 IDE 功能
  • Sublime Text 4 存在许多插件问题,不再值得手动修复
  • 有人因为 Sublime Text 语言插件的维护者难以合作而回到 Emacs
  • Atom 和 VS Code 因其 JavaScript 扩展能力而超越了 Sublime Text
  • Sublime Text 在升级提示中使用了暗模式,导致用户感到不满
  • Sublime Text 4 采用了新的 3 年更新许可模式,让人感觉不舒服
  • Zed 在 Linux/Win/MacOS 上运行,速度非常快,比任何 Electron 应用都快
  • 有人对 Sublime Text 的速度表示怀疑
  • 有人认为接受风险投资会导致 Zed 最终被商业化,可能会看到越来越多的功能被锁定在付费订阅后面
  • 有人怀疑其他编辑器会跟随 Zed 的脚步,因为大家都在使用 Electron,对 Rust 的接受度不高,且 Rust 人才有限

Tidewave Web: in-browser coding agent for Rails and Phoenix #

https://tidewave.ai/blog/tidewave-web-phoenix-rails

Tidewave Web 是一款针对 Rails 和 Phoenix 的浏览器内编码代理工具,它能够在开发者自己的开发环境中直接运行,与网页应用并行工作,提供完整的页面和代码上下文。与传统编码代理不同,Tidewave Web 能够理解用户界面状态,知道框架结构,并在实际的开发环境中运行,无需用户描述屏幕内容或手动追踪代码路径。

Tidewave Web 的主要特点包括:

  1. 共享页面上下文:Tidewave 可以直接访问当前用户界面状态,并自动将其映射到相应的控制器、视图和模板,避免了描述所看内容或手动追踪代码路径的需要。
  2. 深度框架集成:Tidewave 能够在运行中的 Rails/Phoenix 应用中执行代码,查询数据库,监控日志,访问文档等,提供与开发者相同的工具。
  3. 协作浏览器测试:Tidewave 在浏览器中构建完整的功能并验证其工作情况,用户可以使用点击式检查器提出改进建议和请求更改。
  4. 在开发环境中运行:只需在 Rails/Phoenix 应用中添加一个包,连接现有的 GitHub Copilot 或 Anthropic 账户,然后在浏览器中访问 /tidewave 路由。

Tidewave Web 提供免费试用,用户每月可以发送 20 条用户消息。通过订阅 Tidewave Pro,每月支付 10 美元,用户可以解锁无限消息。目前,Tidewave Web 主要针对全栈 Rails 和 Phoenix 应用,不支持 React 或 Vue 等客户端框架,但 React 支持已在开发计划中。团队还在努力集成更多网络框架,如 Django、Flask 和 Next.js,并邀请用户加入等待列表或 Discord 服务器以获取最新信息。

Dashbit 团队拥有数十年构建、维护和贡献开发者工具、网络框架和编程语言的经验。Tidewave 旨在探索 AI 开发工具的新方向,使 AI 工具能够更深入地理解不同领域的技术和环境。Tidewave Web 为 Rails 和 Phoenix 提供的浏览器内编码代理只是开始,团队对未来的发展充满期待。


HN 热度 256 points | 评论 47 comments | 作者:kieloo | 15 hours ago #

https://news.ycombinator.com/item?id=44960316

  • Tidewave Web 作为 Rails 和 Phoenix 的浏览器内编码代理,能够更好地集成语言运行时和应用程序界面,提高开发效率。
  • Tidewave Web 能够识别视图和模板,与渲染页面相关联,自动化浏览器实现和验证功能,减少开发者的工作量。
  • 有用户认为 Tidewave Web 的浏览器集成可能带来一些好处,但不足以放弃现有的 IDE/CLI 工具和工作流程。
  • 有人提到 Playwright MCP 作为浏览器扩展运行,可以覆盖开发设置和登录部分,但不确定是否支持点选交互。
  • 有用户询问 Tidewave Web 是否支持 Ash 框架和 Django,开发者表示 Ash 框架应该可以正常工作,Django 也在开发计划中。
  • 一些用户在测试 Tidewave Web 时发现它在执行某些指令时存在困难,对大型任务的信任度不高,但认为它在处理 UI 部分的工作时表现出色。
  • 有用户提到在使用过程中遇到了 Anthropic API 的限制问题,并且对 Tidewave 的上下文窗口使用限制表示疑惑。
  • 一些用户对 Tidewave Web 的订阅费用表示犹豫,认为虽然不贵,但作为不完整的解决方案,需要与其他订阅服务叠加,可能会造成额外的经济负担。

AWS in 2025: Stuff you think you know that’s now wrong #

https://www.lastweekinaws.com/blog/aws-in-2025-the-stuff-you-think-you-know-thats-now-wrong/

AWS 在 2025 年的发展已经改变了一些我们曾经认为正确的知识。以下是一些关键的演变:

  1. EC2 服务的改进

    • 现在可以在不关闭实例的情况下更改安全组和 IAM 角色。
    • 可以在线调整实例大小、附加或分离 EBS 卷。
    • 可以强制 EC2 实例停止或终止,无需等待干净的关闭或超时。
    • 实例现在可以实时迁移到其他物理主机,减少了实例降级通知的出现。
    • 实例的可靠性显著提高,几乎不再出现突然消失的情况。
    • 现货实例的市场竞争不再激烈,价格波动更平缓。
    • 专用实例的需求减少,自 HIPAA BAAs 以来已近十年不再需要。
    • AMI 默认阻止公共访问,新账户默认启用,旧账户在 2023 年也已启用。
  2. S3 服务的变化

    • S3 现在是读后写一致的,不再是最终一致性。
    • 不再需要随机化对象键的第一部分以避免热点问题。
    • ACLs 已被弃用,新桶默认关闭。
    • 新桶默认启用阻止公共访问。
    • 新桶默认启用透明静态加密。
    • Glacier 曾是与 S3 无关的服务,现已被 S3 团队吸收为一系列存储类别。
    • Glacier 的恢复费用不再高昂且难以预测,恢复速度也不再缓慢。
  3. 网络服务的更新

    • EC2-classic 已淘汰,公共 IPv4 地址不再免费。
    • VPC 对等连接已改进,有 Transit Gateway、VPC 共享、资源共享等更好选项。
    • VPC Lattice 和 Tailscale 允许忽略 AWS 网络问题。
    • CloudFront 更新时间从 45 分钟缩短至 5 分钟。
    • ELB Classic 已弃用,ALBs 和 Classic Load Balancers 不再收取跨 AZ 流量的额外数据传输费用,但 Network Load Balancers 仍然收取。
    • Network Load Balancers 现在支持安全组。
    • 可用区 ID 现在可以通过 Resource Access Manager 确保跨账户一致。
  4. Lambda 服务的增强

    • Lambda 的超时时间延长至 15 分钟,支持 Docker 镜像,可以使用 EFS 共享存储,内存可达 10GB,/tmp 存储也可达 10GB。
    • 在 VPC 中调用 Lambda 不再缓慢。
    • Lambda 冷启动问题得到改善。
  5. EFS 和 EBS 服务的优化

    • EFS 不再需要在卷上放置大量无用数据以获得可用的 IO 配额。
    • EBS 新卷在空时提供全性能,从快照创建的卷需要预读整个磁盘以避免首次读取缓慢。
    • EBS 卷可以同时附加到多个 EC2 实例(仅限 io1 类型),但通常不建议这样做。
  6. DynamoDB 服务的改进

    • 现在可以在项目中包含空字段。
    • 性能变得更加可靠,不再需要使用 NDA 背后的支持工具来查看热键问题。
    • 定价变化使得 On Demand 运行成为更优选择。
  7. 成本节约工具的变化

    • 预留实例逐渐被淘汰,节省计划成为新的方向,但折扣不如以前。
    • EC2 现在按秒计费,短时间运行不再按小时计费。
    • 成本异常检测器擅长标记支出模式的突然变化,且免费。
    • 计算优化器也适用于 EBS 卷等,其建议值得信赖。
  8. 认证方式的更新

    • IAM 角色应存放权限,IAM 用户主要用于遗留应用程序。
    • IAM 身份中心取代了 AWS SSO,是人类与 AWS 账户交互的方式。
    • 可以为根账户配置多个 MFA 设备。
    • 组织成员账户不再需要配置根凭据。
  9. 其他变化

    • us-east-1 和其他区域的稳定性提高,中断变得罕见。
    • 虽然淘汰仍然少见,但 AWS 确实在淘汰一些服务。

HN 热度 243 points | 评论 151 comments | 作者:keithly | 9 hours ago #

https://news.ycombinator.com/item?id=44962844

  • S3 默认启用“阻止公共访问”是正确的决定,可以防止因配置错误导致的大量数据泄露。
  • 即使每年需要创建具有公共读取权限的 S3 桶,也会发现规则有所变化,需要重新学习。
  • “阻止公共访问”设置是一个冗余设计,可以防止人们犯大错误。
  • 如果启用了“阻止公共访问”,即使桶策略或 ACLs 配置不当,也不会允许公共访问。
  • 如果关闭“阻止公共访问”但桶策略设置得当,仍然可以控制访问权限。
  • 需要清晰的图表来展示哪些规则覆盖了其他规则。
  • AWS 的权限设置可能没有实际的“覆盖”,而是规则始终生效,可能与其他规则重叠。
  • 可以开发工具来描述当前生效的规则,以帮助开发者理解权限限制。
  • 使用 LLMs(大型语言模型)来阅读文档并提取 AWS 文档中的基本信息和示例代码。
  • 面试中询问技术熟悉度时,需要考虑技术的变化。
  • 如果了解变化,应该解释随时间变化的情况。
  • 更多人倾向于不使用 CloudFront,以避免额外成本和复杂性。
  • S3+CloudFront 非常流行,可以找到各种技术自动化设置的示例。
  • CloudFormation(云形成)设计糟糕,使用起来非常困难。
  • 如果亚马逊知道什么对他们有好处,他们应该用其他东西替换 CloudFormation。
  • 最后一次尝试使用 CloudFront 时,第三方 IAC 工具比 CloudFront 本身的功能更新得更快。
  • 将 CloudFront 放在 S3 前面比正确设置 S3 的权限和静态共享更简单。
  • S3 对于存储和提供静态网站非常简单,询问是否有好的廉价替代品。
  • 传统的网络托管商可以作为 S3 的替代品。
  • 通过 S3+CF+R53 托管静态网站的成本非常低。
  • GitHub Pages 仍然允许免费使用自定义域名,但商业网站是禁止的。
  • 软件分发成本非常低,每月大约 2 美元。
  • CloudFront 可以帮助将 S3 映射为签名 URL 和默认公共文件,提高网站速度,降低成本。
  • 对于中低流量,CloudFront 与 S3 结合使用成本较低,但对于高流量,CloudFront 成本可能会迅速增加。
  • 需要通过设置障碍来使桶公开可用是一个功能,而不是错误。
  • 每次尝试设置这些障碍时都会感到烦恼,因为障碍总是在变化。

Hacker News 精彩评论及翻译 #

Vendors that treat single sign-on as a luxury feat… #

https://news.ycombinator.com/item?id=44955882

This pops up on HN about once a year, and it’s worth calling out that the SSO tax has mostly nothing to do with technology or with support costs and mostly everything to do with market segmentation. One of the clearest segmentation signals you get is that bigger, less price-sensitive customers all require SSO (because their SOC2 attestations require it).

You can get irritated about pricing systems that soak price-insensitive customers, but remember that the big price-insensitive customers pay for the price-sensitive customers, which is why this kind of segmentation is practically universal.

Previously, on this, from me:

https://news.ycombinator.com/item?id=29892664

tptacek

这个话题每年大约会在 Hacker News 上被提起一次,值得指出的是,所谓的“单点登录税”基本上与技术或支持成本无关,而完全是市场细分策略的体现。其中最清晰的一个细分信号就是,所有规模更大、对价格不敏感的客户都要求提供SSO(因为他们的SOC2认证需要这样做)。

你可以对那种“盘剥”对价格不敏感客户的定价体系感到不齿,但要记住,正是那些大型的、对价格不敏感的客户,补贴了那些对价格敏感的客户,这也是为何这样的细分策略几乎是普遍存在的。

之前我就此发表过评论: https://news.ycombinator.com/item?id=29892664