每日HackerNews RSS

受到Simon Willison利用Claude将遗留库带到网络上的成功启发,作者尝试对Graph::Easy(一个用于生成ASCII流程图的Perl库)做同样的事情。最初的目标是创建一个Web应用,使用WebPerl展示该库迷人且可移植的图表——结果出乎意料地成功。 然而,作者随后追求了一个更雄心勃勃,但最终未能实现的目标:使用大型语言模型(LLM)将Graph::Easy移植到TypeScript。尽管最初充满乐观,但多次尝试——包括各种提示策略、测试驱动开发,甚至将任务分解到多个LLM“代理”——都无法准确地复现原始Perl的输出。 核心问题在于该库根深蒂固的复杂性,历经数十年的积累,以及LLM无法掌握生成正确ASCII艺术所必需的空间推理能力。作者得出结论,用编码代理复制多年精心开发既是对该工艺的不尊重,也是在根本上不现实的,凸显了当前LLM在处理细微且成熟的代码库方面的局限性。

黑客新闻 新 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 我无法发布的端口 (ammil.industries) 6点 由 cjlm 1小时前 | 隐藏 | 过去 | 收藏 | 1条评论 abstractspoon 15分钟前 [–] 来得容易去得快 回复 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请YC | 联系 搜索:

## “迷你框架”的问题 作者在一家大型科技公司工作四年,观察到一种反复出现的模式导致开发者痛苦:创建“迷你框架”——小型、团队构建的框架,构建在现有共享技术栈*之上*。这些框架源于对核心技术栈的不满,旨在简化任务或提高性能,并以引入新概念和声称“神奇地”解决问题为特征。 然而,作者认为这些迷你框架是有害的。它们通常缺乏完整性,与原始框架的演进发生冲突(违反“更容易更改”原则),反映了创建者的主观思维模型,并导致技术栈碎片化。至关重要的是,由于所有权掌握在少数人手中,它们通常缺乏长期维护。 作者不主张构建迷你框架,而是提倡创建*库*——不引入新概念的扩展。如果框架确实是必要的,应该从头开始构建,与具体的业务需求相关联,并将其视为一项重大工作,而不仅仅是“另一个抽象”。核心信息是,在向代码库添加复杂性和新概念之前,要仔细考虑其影响,因为这些看似有帮助的层通常会造成比它们解决的问题更多。

一个黑客新闻的讨论围绕着一篇反对创建“迷你框架”的博文——在现有库或大型框架之上构建的小型内部框架。核心争论在于框架与库的定义:框架调用*你的*代码,而你调用库。 评论者普遍认为,由于潜在的糟糕抽象和强制采用,封装现有框架存在风险,尤其是在大型公司中。然而,封装库可以减少 API 表面积,更容易替换,并提高可测试性。 对原文的主要批评是它缺乏对“迷你”框架的定义清晰度,以及大小是否是真正的问题,建议使用“临时框架”可能更好。作者澄清说,这篇博文源于他在谷歌工作期间的观察,旨在突出一个普遍存在的问题,而非特定于公司的。

Libc++ 正在其头文件中越来越多地应用 C++17 的 `[[nodiscard]]` 属性, 效仿 Microsoft STL。该属性会标记函数的使用,其中返回值被故意忽略,通常表示一个错误。虽然对于像 `malloc` 这样的函数很有用,但普遍应用存在争议。一些函数,例如 `unique_ptr::release`, 故意没有被标记,因为丢弃其返回值可能是故意的,尽管这种情况不常见。 最近一个涉及 `map::operator[]` 的案例突显了这个问题。最初 Libc++ 标记了 `[[nodiscard]]`,但在 Google 报告了合法的用法后,该标记被撤销,这些用法仅仅是为了其副作用(修改 map)而调用该函数。作者认为 `map[key]` 是 `map.try_emplace(key)` 的一个糟糕替代品,供应商不应该鼓励这种做法。 结论是,虽然 `[[nodiscard]]` 可以提高代码质量,但上下文很重要。使用 `m[k]` 习惯用法代码库应该重构为使用 `m.try_emplace(k)` 或显式转换为 `void`,以确认预期的副作用。

Hacker News 新闻 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 Map: Operator[] 应该被标记为 Nodiscard (quuxplusone.github.io) 8 分,由 jandeboevrie 发表于 2 小时前 | 隐藏 | 过去 | 收藏 | 讨论 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:

要使用 Mastodon 网页应用程序,请启用 JavaScript。或者,尝试为您的平台使用 Mastodon 的原生应用程序。

一场 Hacker News 的讨论围绕着美国对参与《数字服务法案》(DSA) 的欧盟政府官员实施的最新制裁。制裁被澄清为前往美国的旅行禁令,而非财务处罚。 对话迅速转向这些制裁的背景,特别是与欧盟最近对 X(前身为 Twitter)的罚款有关。分享了一个链接,提供了解释,认为该罚款并非关于审查,而是合规问题。 进一步的讨论分支出于对数字欧元和独立金融系统的呼吁,提及对美国影响以及将制裁用作政治工具的担忧。一些评论员指出叙事中潜在的偏见,引用了雅克·鲍德的案例和正在进行的“宣传战”,而另一些人则质疑制裁对瑞士公民的影响。

## 人工智能对全球的影响:2025年总结 到2025年,人工智能的进步——特别是基础模型和代理推理——正在推动解决全球挑战的有效方案。这项工作侧重于加深我们对地球系统的理解,并在气候适应力、公共卫生和教育等领域改善人类福祉。 主要成就包括显著扩展的洪水预报,目前覆盖全球150个国家超过20亿人口,以及WeatherNext 2,一种预测模型,其预测速度提高了八倍,分辨率也得到了增强。人工智能还在加速医疗保健领域的疾病管理和治疗发现。 此外,像LearnLM和Gemini这样的人工智能工具正在彻底改变教育,通过谷歌翻译提供更智能的翻译,并促进新的学习体验。这表明了一个明确的趋势:人工智能正走出研究领域,为全球社区带来切实利益。

Hacker News 新闻 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 Google 2025 回顾:年度研究突破 (blog.google) 8 分,由 Anon84 发表于 2 小时前 | 隐藏 | 过去 | 收藏 | 1 条评论 7373737373 发表于 10 分钟前 [–] 我想知道 DeepMind 何时/是否会尝试解决寻找潜在室温、环境压力超导体的问题(以及是否可以像蛋白质折叠一样进行处理)回复 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:

启用 JavaScript 和 Cookie 以继续。

黑客新闻 新 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 使用契约和场景模拟扩展 Go 测试 (funnelstory.ai) 4 点赞 by preetamjinka 1 小时前 | 隐藏 | 过去 | 收藏 | 讨论 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:

启用 JavaScript 和 Cookie 以继续。

一个黑客新闻的讨论围绕着“Windows Utility”(christitus.com),一个用于“去臃肿化”Windows的工具。用户们争论它对Windows 11和Windows 10的相关性,并澄清该工具通过GitHub ([https://github.com/ChrisTitusTech/winutil](https://github.com/ChrisTitusTech/winutil)) 积极维护,最近的更新是三周前。 虽然主页面看起来过时(最后更新于2022年),但底层的工具是当前的。有人对Windows优化工具普遍存在担忧,因为它们会通过更改低级设置来使故障排除复杂化。然而,该工具被描述为一个PowerShell自动化/去臃肿化脚本,面向高级用户,调整被分为“必要”(低风险)和“高级”两类,并且更改记录以便可能的回滚。一位用户开玩笑地说,典型的Windows故障排除方法是:重新安装并进行优化。

## 企业客户权限扩展 初创公司通常会转向企业客户,从而需要强大的权限系统。最初,简单的查询时权限检查(在*每次*请求时检查角色和关系)是可行的,但随着数据规模扩大,它很快会成为性能瓶颈,可能导致客户流失。 核心问题是读写性能之间的权衡。一种简单的做法使用递归数据库查询来确定访问权限,但对于嵌套数据而言会变得缓慢。**基于角色的访问控制 (RBAC)** 通过*预计算*权限并将它们存储在专用数据库表中来解决此问题,从而能够通过简单的连接进行快速查找。这会将复杂性转移到写操作上——在创建或共享资源时更新权限表。 更高级的技术,如**基于属性的访问控制 (ABAC)**,提供了灵活的声明式规则,但难以高效地列出资源。对于分层数据,**物化路径**(存储完整路径)和**闭包表**(预计算所有祖先-后代关系)可以消除递归查询,但同样以增加写操作的复杂性为代价。 最终,从简单的方法开始,并在需要时迁移到 RBAC 是明智的。优先考虑重建脚本以确保数据一致性,因为维护预计算的权限对于长期可扩展性至关重要。

黑客新闻 新 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 企业级可扩展的权限系统 (eliocapella.com) 3 分,由 eliocs 1小时前发布 | 隐藏 | 过去 | 收藏 | 讨论 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请YC | 联系 搜索:

一篇最近发表在BlockHacks.io上的文章警告称,现代Next.js应用程序可能在典型的安全措施(如日志记录和身份验证)应用*之前*就容易受到远程代码执行(RCE)攻击。核心问题在于Next.js处理反序列化、水合和服务器操作的方式,允许攻击者控制的输入在流程的早期执行。 作者强调,看似无害的500内部服务器错误实际上可能表明攻击者已成功绘制出应用程序的执行流程并优化恶意载荷。传统的安全工具,如Web应用程序防火墙(WAF)和应用程序日志,通常会错过这些早期阶段的攻击。 关键的攻击面包括Next.js中间件、React服务器组件(RSCs)和服务器操作。该文章寻求来自其他观察到类似生产环境行为的人的反馈,评论者指出文章风格令人困惑,并质疑BlockHacks宣传的“区块链安全审计”与此Web应用程序漏洞的相关性。

一位名为amindiro的开发者使用Triton重新构建了FlashAttention,以更深入地理解其性能优化。由于对仅仅依赖研究论文感到沮丧,他们开始了一个“性能考古”项目,深入研究GPU的内部运作。 这个过程包括使用Nsight Compute进行详细的性能分析,分析生成的PTX和SASS代码,以及调试共享内存冲突和内存I/O瓶颈等问题。通过这次亲手重建,amindiro发现了为什么诸如分块和在线softmax等特定技术至关重要——它们不仅仅是数学捷径,而是硬件必需品。 这篇帖子记录了这段旅程,旨在提供类似于Simon Boehm对矩阵乘法的深入分析,并寻求经验丰富的GPU工程师对观察到的行为的反馈。

更多

联系我们 contact @ memedata.com