zhulink logo
自动夜间模式 日间模式 夜间模式
侧栏
0

【HN中文日报】AI 颠覆开发?德国审查迷雾重重?程序员速看今日份科技圈大事件!

意外富翁的头像
|
|
|
## 今天 Hacker News 社区聊了啥? NO.20250824 今天科技圈有点意思!AI 编码 Agent 越来越火,想知道怎么自己撸一个?还有德国 ISP 疑似搞事情,DNS 背后隐藏着什么秘密?想提升开发效率?买个快 CPU 真的值!更有 CSS 新函数 `random()` 让你轻松玩转网页动效。速览精华,带你get最新技术趋势,避开那些坑! ![Hacker News 中文精选](/static/mascot_article.webp) --- ## 动态修改 Python 函数的源代码:一个危险又迷人的技巧 本文探讨了如何通过 `compile` 和 `exec` 函数在运行时动态更改 Python 函数的源代码。这种技术为构建更灵活的 AI 机器人开辟了新的可能性,但也带来了严重的安全隐患。 文章的核心在于展示如何利用 Python 的动态特性,在程序运行过程中修改函数的行为。每个函数都有一个 `.__code__` 属性,通过 `compile` 函数将新的源代码编译成字节码,然后使用 `exec` 函数将其导入到特定的命名空间,最后替换现有函数的 `.__code__` 属性,从而实现动态修改函数的功能。作者最初的动机是为了解决 LlamaBot 中 `AgentBot` 的局限性,它将函数执行、函数调用确定和用户响应生成混杂在一起。通过动态编译和执行代码,`ToolBot` 能够生成引用运行时现有变量的 Python 函数,并在同一 Python 环境中执行它们,从而构建更强大的工具。`ToolBot` 的核心在于工具选择,而不是工具执行。它返回要调用的工具到外部环境,从而让你完全控制执行过程。其中,`write_and_execute_code` 是一个强大的工具,它允许 LLM 生成代码并访问当前命名空间中的变量。 虽然这种技术很强大,但作者也强调了潜在的安全风险。动态执行代码可能会导致恶意代码注入和执行,因此在使用时需要格外小心。 - 原文: [Dynamically patch a Python function's source code at runtime](https://ericmjl.github.io/blog/2025/8/23/wicked-python-trickery-dynamically-patch-a-python-functions-source-code-at-runtime/) - Hacker News: [https://news.ycombinator.com/item?id=45003750](https://news.ycombinator.com/item?id=45003750) - 作者: apwheele - 评分: 48 - 评论数: 29 - 发布时间: 2025-08-24 20:28:52 --- ## Clearcam:为你的监控摄像头添加AI物体检测 Clearcam 是一个开源项目,旨在为 RTSP 摄像头或 iPhone 添加物体检测、追踪和移动通知功能。通过 Clearcam,你可以轻松地将 AI 技术集成到现有的监控系统中,实现更智能的安全监控。 该项目基于 AGPL-3.0 许可,这意味着你可以自由地使用、修改和分发它,但也需要以相同的方式开源你的修改版本。Clearcam 允许用户自定义需要检测的物体类型,并设置相应的通知规则,例如当检测到人或车辆时发送警报。它还支持物体追踪,可以记录物体在摄像头视野中的移动轨迹,方便后续分析。Clearcam 的移动通知功能可以让你随时随地掌握监控区域的动态,及时采取行动。 该项目在 GitHub 上获得了 88 个 star 和 5 个 fork,表明它在开发者社区中具有一定的受欢迎程度。如果你对智能监控和 AI 技术感兴趣,不妨尝试一下 Clearcam,为你的摄像头赋予更强大的功能。 - 原文: [Show HN: Clearcam – Add AI Object Detection to Your IP CCTV Cameras in a Minute](https://github.com/roryclear/clearcam) - Hacker News: [https://news.ycombinator.com/item?id=45003420](https://news.ycombinator.com/item?id=45003420) - 作者: roryclear - 评分: 59 - 评论数: 25 - 发布时间: 2025-08-24 19:34:15 --- ## 德国 ISP 篡改 DNS 以破坏网站 本文讲述了德国一家大型 ISP(Telefonica)在作者曝光了其参与的审查组织 CUII 后,修改 DNS 工作方式,疑似针对作者网站进行干扰的故事。 作者创建了一个网站 cuiiliste.de,用于查询被 CUII 屏蔽的域名,因为 CUII 拒绝公布此类列表。CUII 是一个由德国四大 ISP(包括 Telefonica)和主要版权所有者组成的私人组织,决定哪些网站应该被屏蔽。最近,Netzpolitik.org 基于作者收集的信息发表了一篇文章,揭露了 CUII 的最新失误:他们屏蔽了已经不存在的域名。此前,通过查询 ISP 的 DNS 服务器,如果返回 `notice.cuii.info` 的 CNAME,就可以判断一个网站是否被 CUII 屏蔽。但包括 Telekom、1&1 和 Vodafone 在内的其他 ISP 已经停止使用这种方式,而是直接从 DNS 记录中删除被屏蔽的网站,让人无法分辨网站是被屏蔽还是根本不存在。 Telefonica 在作者的网站上查询了 `blau-sicherheit.info` 这个域名是否被屏蔽,而这个域名似乎是 Telefonica 自己的测试域名。随后,Telefonica 修改了其 DNS 服务器,停止将屏蔽的域名重定向到 `notice.cuii.info`,而是直接假装域名不存在。作者认为,Telefonica 这样做是为了了解其网站的工作方式,并使其更难追踪 CUII 的错误。作者花了一下午的时间修复了这个问题,但现在更难确认一个屏蔽是否真的是 CUII 造成的,因为 ISP 可能出于其他原因屏蔽网站。作者推测,Telefonica 的行为可能是为了掩盖 CUII 未来的失误,减少透明度和监督。 评论区主要围绕 CUII 的性质和审查制度展开讨论。 有人指出,CUII 声称自己执行法院的屏蔽命令,但这并不妨碍他们屏蔽其他网站。另有评论提到,CUII 的屏蔽流程现在基于法院命令,而非任意的公司决定。还有评论认为,西方传统的审查制度是通过版权来实现的,而现在美国和欧洲都在寻找其他方式进行审查。 - 原文: [A German ISP changed their DNS to block my website](https://lina.sh/blog/telefonica-sabotages-me) - Hacker News: [https://news.ycombinator.com/item?id=45003033](https://news.ycombinator.com/item?id=45003033) - 作者: shaunpud - 评分: 457 - 评论数: 269 - 发布时间: 2025-08-24 18:27:19 --- ## 如何构建一个编码 Agent:免费 Workshop 本文介绍了如何构建一个编码 Agent,强调了理解其基本原理的重要性,并指出这已成为 2025 年软件工程师必备的技能。文章作者 Geoffrey Huntley 分享了他关于构建编码 Agent 的 Workshop 内容,并鼓励大家亲自动手实践。 文章的核心观点是,构建一个编码 Agent 并没有想象中那么困难,本质上就是 300 行代码在一个循环中运行,不断地向 LLM(大型语言模型)输入 token。作者认为,理解这些基本原理能够帮助开发者从 AI 的消费者转变为 AI 的生产者,从而利用 AI 自动化工作流程。他提到,现在许多公司都在寻找能够利用 AI 自动化任务的工程师。文章还指出,目前市面上流行的编码 Agent,如 Cursor、Windsurf、Claude Code、GitHub Copilot 和 Amp,其底层原理都是相似的,都是通过 LLM token 在循环中运行实现的。因此,与其花费大量时间评估各种 Agent 产品,不如学习如何自己构建一个。作者还强调了 LLM 的选择,不同的 LLM 具有不同的特性,例如 Grok 适合安全研究,而 Anthropic 和 OpenAI 则更注重伦理。 文章还提到,那些没有及时学习和应用 AI 技术的开发者可能会落后于时代。作者用“悬崖”的比喻,将那些不愿尝试 AI 自动化的人比作停留在悬崖左侧的人,而那些积极拥抱 AI 的人则已经通过自动化工作流程获得了优势。因此,作者鼓励开发者们积极学习和实践 AI 技术,不要成为被时代淘汰的人。 - 原文: [How to build a coding agent](https://ghuntley.com/agent/) - Hacker News: [https://news.ycombinator.com/item?id=45001051](https://news.ycombinator.com/item?id=45001051) - 作者: ghuntley - 评分: 295 - 评论数: 96 - 发布时间: 2025-08-24 11:21:14 --- ## Bicyclopedia:交互式自行车部件指南 Bicyclopedia 是一个交互式的自行车部件探索项目,旨在帮助自行车爱好者和初学者更好地了解自行车的各个组成部分。该项目通过动画和描述,生动地展示了自行车的结构和功能。 该网站使用交互式的方式,允许用户点击自行车上的不同部件,然后显示相应的描述和信息。作者提到,如果你使用屏幕阅读器或者禁用了 JavaScript,可能无法看到图像和动画,但仍然可以阅读描述和源代码。这个项目是作者在澳大利亚工作假期期间,为了记录自己学习到的自行车知识而创建的。 这个项目的目标受众是自行车初学者,所以内容可能不够全面,但作者希望确保信息的准确性,并欢迎大家提供反馈。作者也分享了项目的背景,他本身是一名软件工程师,因为在自行车店工作才开始深入了解自行车。 评论区里,用户对 Bicyclopedia 提出了各种建议和看法。有人认为,文本显示速度过慢,建议采用鼠标悬停显示全文的方式。还有人建议,与其做这个项目,不如改进 Sheldon Brown 的自行车知识库。此外,还有用户指出,网站缺少一些部件,比如垫圈、邓禄普气门和 Schwalbe Click Valve,并且对轮径的解释不够清晰。 一些用户也提到了用户体验问题,例如,初次访问时没有明确的引导,导致用户流失。另一些用户则建议使用 SVG 动画来改善交互体验。总体来说,用户对这个项目的创意表示赞赏,并提出了许多有价值的改进建议。作者也积极回应,表示会认真考虑这些反馈,并努力完善项目。 - 原文: [Show HN: Bicyclopedia](https://bicyclopedia.lemoing.ca/) - Hacker News: [https://news.ycombinator.com/item?id=45003296](https://news.ycombinator.com/item?id=45003296) - 作者: lemoing - 评分: 33 - 评论数: 8 - 发布时间: 2025-08-24 19:15:26 --- ## 提升开发效率:购买更快的 CPU 是值得的投资 文章探讨了购买高性能 CPU 对提高软件开发效率的价值,尤其是在 AI 辅助编程工具流行的当下,更快的 CPU 可以显著缩短编译时间,提升开发者的工作效率。文章通过实际的性能测试数据,对比了不同 CPU 在编译 Linux 内核和 TLS 操作等任务上的表现,强调了顶级 CPU 在提高开发效率方面的巨大优势。 文章指出,尽管 AI 编码订阅服务价格不菲,但如果能通过更快的 CPU 提升哪怕 1% 的效率,这笔投资也是值得的。作者通过对比不同年代的 CPU 性能,以及桌面 CPU 和笔记本 CPU 的性能差异,强调了升级到最新、最快的 CPU 的必要性。作者认为,如果公司愿意为 AI 编码订阅付费,那么也应该为开发者提供最好的硬件工具。文章还提到,云服务器也遵循类似的规律,新一代的服务器通常在相同价格下提供 2-3 倍的性能提升。 评论区对文章的观点展开了热烈的讨论,主要集中在以下几个方面: * **公司硬件投入不足:** 有评论指出,即使是大型科技公司在开发者硬件上的投入也显得吝啬,限制了开发者的工作效率。 * **代码效率问题:** 也有开发者认为,应该强制开发者在较慢的机器上工作,以促使他们编写更高效的代码,解决软件膨胀的问题。 * **CPU 性能提升幅度:** 一些评论者对文章中“顶级 CPU 比三年前的型号快 3 倍”的说法表示怀疑,认为实际提升可能只有 50%。 * **瓶颈分析:** 有评论指出,仅仅提升 CPU 速度可能无法显著提升开发效率,因为编译器可能受到 IO 或内存的限制。需要综合考虑各个环节的瓶颈。 * **桌面 CPU 与笔记本 CPU 的比较:** 有评论指出,文章对比的是新款桌面 CPU 和旧款笔记本 CPU,不够客观。应该参考更专业的评测网站。 * **单核性能限制:** 还有评论提到,许多软件仍然受限于单核性能,而单核性能的提升近年来并不明显。 总的来说,评论区对购买高性能 CPU 提升开发效率的观点存在争议,但都强调了需要综合考虑各种因素,包括代码效率、硬件瓶颈以及实际应用场景。 - 原文: [It is worth it to buy the fast CPU](https://blog.howardjohn.info/posts/buy-a-cpu/) - Hacker News: [https://news.ycombinator.com/item?id=45001778](https://news.ycombinator.com/item?id=45001778) - 作者: ingve - 评分: 83 - 评论数: 104 - 发布时间: 2025-08-24 14:03:15 --- ## Common Lisp 的交互式软件环境:Seed Seed 是一个基于 Common Lisp 的交互式软件环境,它提供了一个用于开发和运行 Common Lisp 程序的平台。这个项目托管在 GitHub 上,并使用 GPL-3.0 许可。 Seed 旨在提供一个现代化的、交互式的 Common Lisp 开发体验。它可能包含代码编辑器、调试器、REPL (Read-Eval-Print Loop) 以及其他工具,以方便 Common Lisp 程序的开发、测试和部署。通过交互式环境,开发者可以更快速地迭代和实验,从而提高开发效率。该项目目前有 99 个 star 和 4 个 fork,表明它在 Common Lisp 社区中受到一定的关注。 Seed 的目标是创建一个易于使用且功能强大的 Common Lisp 开发环境。它试图简化 Common Lisp 应用程序的开发过程,并为开发者提供他们所需的工具,以便更有效地编写、调试和运行代码。该项目可能还包括对各种 Common Lisp 库和框架的支持,从而进一步简化开发过程。 该项目在 GitHub 上的存在使得开发者可以轻松地访问源代码、提交问题和贡献代码。GPL-3.0 许可确保了 Seed 可以自由地使用、修改和分发,这有助于促进其在 Common Lisp 社区中的采用。 - 原文: [Seed: Interactive software environment based on Common Lisp](https://github.com/phantomics/seed) - Hacker News: [https://news.ycombinator.com/item?id=45001979](https://news.ycombinator.com/item?id=45001979) - 作者: todsacerdoti - 评分: 58 - 评论数: 8 - 发布时间: 2025-08-24 14:57:19 --- ## 城市树木靠泄漏管道应对干旱 城市街道上的树木比公园里的树木更能抵抗干旱,原因在于它们从泄漏的供水管道中获取水分。研究人员通过分析树干样本中的铅同位素,揭示了这一现象。 这项研究由加拿大魁北克大学蒙特利尔分校的André Poirier及其同事进行,他们研究了蒙特利尔两个街区的挪威枫树和银枫树。研究发现,街道上的树木在干旱时期,其树干中的水分和汁液流动减少的程度低于公园里的树木。通过分析树木年轮中的铅同位素,研究人员发现街道树木的水分来源与城市供水系统有关。这意味着泄漏的供水管道为这些树木提供了额外的水源,帮助它们在干旱时期存活下来。 这项研究强调了城市基础设施对城市生态系统的意外影响。虽然漏水管道通常被认为是需要修复的问题,但它们在干旱时期可能对城市树木的生存至关重要。这项发现对于城市规划和管理具有重要意义,尤其是在气候变化导致干旱日益频繁的背景下。未来的研究可以进一步探讨如何优化城市水资源管理,以更好地支持城市树木的生长和健康。例如,可以考虑有控制地向树木根部提供水源,或者开发更耐旱的树木品种。 总而言之,这项研究揭示了城市树木适应干旱的一种独特机制,并提出了关于城市水资源管理的新视角。它提醒我们,城市环境中的各种因素之间存在着复杂的相互作用,需要综合考虑才能实现可持续的城市发展。 - 原文: [Trees on city streets cope with drought by drinking from leaky pipes](https://www.newscientist.com/article/2487804-trees-on-city-streets-cope-with-drought-by-drinking-from-leaky-pipes/) - Hacker News: [https://news.ycombinator.com/item?id=44986723](https://news.ycombinator.com/item?id=44986723) - 作者: bookofjoe - 评分: 11 - 评论数: 2 - 发布时间: 2025-08-23 00:46:42 --- ## SSD性能的隐藏面:SSD-IQ基准测试 本文主要探讨了现有SSD评估指标的局限性,并提出了新的SSD-IQ基准测试方法,旨在更全面地评估数据中心SSD在实际工作负载下的性能表现。 文章指出,当前SSD厂商通常使用顺序读写、随机读写等几个“头条”指标来宣传其产品,但这些指标无法反映SSD在写入放大和负载下的延迟等关键特性。由于NAND闪存的特性,SSD的写入操作并非原地写入,而是通过复杂的内部逻辑(如垃圾回收)来实现。垃圾回收会导致写入放大,即每次逻辑写入都会导致多次额外的内部写入,从而降低写入吞吐量和设备寿命。此外,SSD在负载下的延迟特性也很复杂,例如,为了隐藏NAND闪存的高物理写入延迟,SSD通常会在DRAM中缓冲写入操作,但这会导致写入尾部延迟出现不可预测的峰值。这些问题对于数据库系统的预写日志(WAL)尤其不利。 为了解决这些问题,文章提出了SSD-IQ基准测试,引入了四个额外的指标来更好地表征SSD的性能,特别是对于写入密集型工作负载。通过对九个主要厂商的数据中心SSD进行实验,文章揭示了即使在相似的“头条”指标下,不同SSD的性能也存在显著差异。这表明,选择合适的SSD对于数据库系统的性能至关重要。SSD-IQ旨在鼓励厂商优化SSD控制器,使用更全面和透明的性能标准。 - 原文: [SSD-IQ: Uncovering the Hidden Side of SSD Performance [pdf]](https://www.vldb.org/pvldb/vol18/p4295-haas.pdf) - Hacker News: [https://news.ycombinator.com/item?id=44985619](https://news.ycombinator.com/item?id=44985619) - 作者: jandrewrogers - 评分: 14 - 评论数: 4 - 发布时间: 2025-08-22 23:13:22 --- ## 德国版权清算中心:网站封锁委员会将依赖司法机构 德国的版权清算中心计划调整其网站封锁策略,未来封锁决定将更多地依赖法院的裁决。这意味着,在对网站进行封锁之前,需要经过司法程序的审核。 文章指出,过去版权清算中心下属的委员会在决定是否封锁侵权网站方面拥有较大的自主权。现在,为了提高决策的公正性和透明度,他们将更多地依赖法院的判决。这一变化旨在平衡版权保护和网络自由之间的关系,确保封锁措施的合理性和合法性。具体来说,如果版权所有者认为某个网站侵犯了他们的版权,他们需要首先向法院提起诉讼,由法院来判断该网站是否应该被封锁。版权清算中心将根据法院的判决来执行相应的封锁措施。这种做法可以减少误判的可能性,并为网站运营者提供申诉的机会。此外,文章还提到,这一变化可能会对德国的网络环境产生一定的影响,因为网站封锁的流程将变得更加复杂和耗时。 由于没有评论内容,因此跳过评论分析。 - 原文: [Germany's Copyright Clearing House now requires courts for website blocks](https://www.heise.de/en/news/Copyright-clearing-house-Committee-for-website-blocking-to-rely-on-judiciary-10490128.html) - Hacker News: [https://news.ycombinator.com/item?id=45003602](https://news.ycombinator.com/item?id=45003602) - 作者: nsdfg - 评分: 39 - 评论数: 10 - 发布时间: 2025-08-24 20:06:17 --- ## 重新聚焦:中断后的23分15秒魔咒? 你可能经常听到一个说法:被打断后需要23分15秒才能重新回到工作状态。 这篇文章深挖了这个数字的来源,发现它并没有明确的论文依据,而更多是来自对Gloria Mark的采访。 文章作者一开始想引用这个“23分15秒”的说法,结果发现引用的论文里根本没有这个数字。于是,作者开始追溯这个数字的源头。 他查阅了多篇相关论文,包括关于任务切换和中断的研究,但都没有找到这个具体的时长数据。 尽管有些研究提到了恢复时间,但并没有给出具体的数值。 最终,作者发现这个数字主要出现在对Gloria Mark的采访中,她是最初研究中断对工作影响的学者之一。 虽然她的多篇论文中没有明确提到这个数字,但在华尔街日报等媒体的采访中,她多次提到了“23分15秒”的恢复时间。 所以,这个广为流传的数据,更多的是来自于访谈,而非严谨的学术研究。 这也提醒我们,在引用数据时,要尽可能追溯到原始的研究出处,避免以讹传讹。 ## Reddit 社区的讨论 Reddit 上的讨论主要集中在以下几个方面: * **对数字来源的质疑:** 很多人都对这个“23分15秒”的数字表示怀疑,认为它可能被夸大了,或者并不适用于所有情况。 * **个人经验的分享:** 一些人分享了自己的经验,表示被打断后确实需要很长时间才能重新进入状态,而另一些人则认为他们可以很快地恢复。 * **提高效率的建议:** 有些人提出了减少中断、提高工作效率的建议,比如使用番茄工作法、关闭通知等。 * **对研究方法的讨论:** 有人对Gloria Mark的研究方法提出了质疑,认为可能存在偏差或局限性。 总的来说,Reddit 上的讨论更加务实和多样化,大家更倾向于结合自己的实际情况来思考这个问题,并探讨如何更好地应对工作中的中断。 - 原文: [The cost of interrupted work (2023)](https://blog.oberien.de/2023/11/05/23-minutes-15-seconds.html) - Hacker News: [https://news.ycombinator.com/item?id=44999373](https://news.ycombinator.com/item?id=44999373) - 作者: _vaporwave_ - 评分: 220 - 评论数: 138 - 发布时间: 2025-08-24 05:45:06 --- ## Valve 新员工手册:了解扁平化管理和公司文化 本文档是 Valve Software 在 2012 年为新员工编写的手册,旨在帮助新员工快速了解公司的运作方式和文化。Valve 是一家独特的公司,它采用扁平化的管理结构,鼓励员工自由选择项目并发挥创新能力。 手册详细介绍了 Valve 的核心价值观,包括自筹资金、拥有知识产权以及不仅仅是一家游戏公司。Valve 将自己定位为一家娱乐、软件和平台公司,致力于创造充满激情的产品。 手册重点解释了 Valve 的扁平化结构,意味着没有管理层,员工之间没有上下级关系。这种结构旨在消除组织障碍,让员工的工作能够直接服务于客户。新员工被鼓励积极参与项目,甚至有权批准和发布产品。手册还涵盖了新员工如何选择项目、团队合作、工作时间、风险管理以及绩效评估等方面的内容。此外,手册还强调了招聘的重要性,Valve 致力于寻找具有“T 型”技能的人才,即在某个领域具有深厚专业知识,同时又具备广泛的知识面和协作能力。 手册最后讨论了 Valve 的不足之处以及当扁平化管理失效时会发生什么,并鼓励新员工为公司的未来发展做出贡献。 由于没有评论内容,因此略过评论分析。 - 原文: [Valve Software handbook for new employees [pdf] (2012)](https://cdn.akamai.steamstatic.com/apps/valve/Valve_NewEmployeeHandbook.pdf) - Hacker News: [https://news.ycombinator.com/item?id=45002301](https://news.ycombinator.com/item?id=45002301) - 作者: Michelangelo11 - 评分: 157 - 评论数: 117 - 发布时间: 2025-08-24 16:02:12 --- ## "Wildthing" 模型:角色反转 ChatGPT 对话训练 这篇文章介绍了一个名为 "Wildthing" 的模型,它通过角色反转的 ChatGPT 对话进行训练。这种训练方式旨在让模型更好地理解用户意图,并生成更自然、更符合用户期望的回复。 文章提到,传统的 ChatGPT 模型主要基于人类提问和模型回答的数据进行训练,而 "Wildthing" 则反其道而行之,让模型扮演用户的角色,从而学习如何更好地提出问题和引导对话。这种方法可能会暴露一些问题,比如人类用户在对话中可能不够流畅或清晰,但同时也可能带来新的视角和理解。作者认为,通过角色反转,模型可以更深入地理解对话的本质,并提高其生成回复的质量和相关性。 此外,文章还探讨了角色反转训练的具体实现方式,例如是否可以通过简单地交换输入标签来实现类似的效果。作者也分享了一些使用 "Wildthing" 的体验,例如让模型模拟用户并观察其表现。 评论区对 "Wildthing" 模型提出了各种看法。有人认为,基于不够流畅的人类对话进行训练可能会降低模型的智能水平。也有人分享了使用体验,例如模型在处理非英语问题时表现不佳,或者出现了一些意料之外的回复。还有人质疑角色反转训练的必要性,认为可以通过其他方式达到类似的效果。一些用户尝试用中文与模型互动,但结果并不理想。总体而言,评论区对 "Wildthing" 模型的实用性和效果持保留态度,并提出了许多值得思考的问题。 - 原文: [Wildthing – A model trained on role-reversed ChatGPT conversations](https://youaretheassistantnow.com/) - Hacker News: [https://news.ycombinator.com/item?id=45001740](https://news.ycombinator.com/item?id=45001740) - 作者: iamwil - 评分: 64 - 评论数: 31 - 发布时间: 2025-08-24 13:51:43 --- ## 使用线扫描相机进行火车摄影的图像处理 本文主要介绍了使用线扫描相机拍摄火车照片后,如何对图像进行处理,以获得高质量的图像。文章详细讲解了从相机原理到图像处理的各个步骤,包括感兴趣区域的检测、速度估计、重采样、去马赛克、去除垂直条纹、降噪、倾斜校正和颜色校准等。 线扫描相机的工作原理是使用单列或双列像素高速扫描。当火车经过时,相机捕捉其图像。由于背景是静态的,因此在图像的每一列中都会重复出现条纹。这种相机非常适合捕捉火车,因为它能以最小的透视失真捕捉火车的全长,非常适合火车模型爱好者。 文章作者使用Alkeria Necta N4K2-7C相机,该相机具有4096×2的拜耳阵列图像传感器,并将原始数据保存为16位二进制数组。为了检测移动的物体,作者计算了一个“能量函数”,该函数基于图像梯度,可以有效地识别图像中垂直结构而非水平结构的区域。 速度估计是图像处理的关键步骤,作者通过比较拜耳阵列中两个绿色通道的差异来估计物体速度。该方法包括将图像分成小块,计算不同位移下的绝对差值,然后使用迭代重加权高斯方法进行亚像素峰值插值,最后用鲁棒样条拟合位移估计值。 文章还详细介绍了如何去除垂直条纹、进行降噪、倾斜校正和颜色校准等步骤,以获得最终高质量的火车图像。作者分享了他在Vibe编码方面的经验,并展示了其他摄影师使用线扫描相机拍摄的火车照片。 - 原文: [Line scan camera image processing for train photography](https://daniel.lawrence.lu/blog/y2025m09d21/) - Hacker News: [https://news.ycombinator.com/item?id=44996938](https://news.ycombinator.com/item?id=44996938) - 作者: dllu - 评分: 379 - 评论数: 62 - 发布时间: 2025-08-24 00:09:21 --- ## ESP32 串口通信的秘密:Serial.begin(115200) 真的有用吗? 这篇文章探讨了在使用 ESP32-S3 这类具有原生 USB 支持的开发板时,Arduino 代码中常见的 `Serial.begin(115200)` 是否真的起作用。作者通过实验发现,当 ESP32 通过 USB 连接时,数据传输速率与 `Serial.begin` 中设置的波特率无关。这是因为 ESP32-S3 没有 UART,而是直接通过 USB CDC(USB 虚拟串口)进行通信。 作者通过音频数据传输测试,发现实际传输速率远高于 115200 波特率应有的速度。进一步的测试表明,通过 USB 连接,数据传输速率可以达到 5Mbit/s 甚至更高,接近 USB 全速的理论上限。作者还对比了 Arduino 和 ESP-IDF 框架下的传输速度,发现 Arduino 表现更好,并指出 ESP32 TinyUSB 实现中可能存在问题。文章最后给出了测试代码的 GitHub 链接,鼓励读者自行验证。总而言之,对于使用 USB CDC 的 ESP32 来说,`Serial.begin()` 中的波特率设置在很大程度上是被忽略的。 评论区主要围绕以下几个观点展开: * **USB CDC 的工作原理:** 评论中有人指出,USB CDC 虚拟串口并不依赖于波特率,因为这并非真实的串口通信。`Serial.begin()` 只是为了兼容现有的库函数,实际数值会被忽略。 * **波特率的用途:** 另有评论提到,波特率信息可能会传递给 USB 设备,以便在需要模拟真实串口适配器时使用。 * **单位混淆:** 有评论指出作者在 megabits (Mb) 和 megabytes (MB) 的使用上存在混淆。 * **软件推荐:** 有人询问文章中使用的 "WebSerial Audio Studio" 软件,并分享了类似的开源替代品。 * **文档问题:** 还有评论质疑某些微控制器缺乏全面的文档支持。 - 原文: [Setting serial baud rate on ESP-IDF does nothing](https://atomic14.substack.com/p/this-number-does-nothing) - Hacker News: [https://news.ycombinator.com/item?id=44997023](https://news.ycombinator.com/item?id=44997023) - 作者: iamflimflam1 - 评分: 29 - 评论数: 26 - 发布时间: 2025-08-24 00:24:00 --- ## macOS 开发利器:轻量级端口监控工具 Port Kill Port Kill 是一款轻量级的 macOS 状态栏应用,专为开发者设计,用于监控和管理端口占用情况。它能帮助开发者快速定位并结束占用特定端口的进程,提高开发效率。 这款工具的主要功能是在 macOS 状态栏显示当前正在监听的端口,并允许用户通过简单的操作结束占用这些端口的进程。对于经常需要在本地运行多个服务的开发者来说,Port Kill 能够有效避免端口冲突,简化调试流程。通过图形化界面,开发者无需频繁使用命令行,即可轻松管理端口。 Port Kill 的主要特点是轻量级和易用性。它占用资源少,不会对系统性能造成明显影响。同时,简单的界面和操作方式使得即使是不熟悉命令行的开发者也能快速上手。此外,开源的特性也意味着用户可以根据自己的需求进行定制和扩展。 - 原文: [Show HN: Port Kill – A lightweight macOS status bar development port monitor](https://github.com/kagehq/port-kill) - Hacker News: [https://news.ycombinator.com/item?id=45000982](https://news.ycombinator.com/item?id=45000982) - 作者: lexokoh - 评分: 81 - 评论数: 29 - 发布时间: 2025-08-24 11:08:15 --- ## AI 如何识别猫:图解指南 本文深入探讨了人工智能如何通过神经网络识别图像,特别是识别猫。文章解释了神经网络的基本原理,从简单的分类器到复杂的网络结构,再到如何处理图像数据,揭示了 AI 识别图像的底层逻辑。 文章首先介绍了分类任务的概念,用区分地图上不同区域的例子,引出神经网络如何通过调整参数来找到最佳边界。接着,文章详细解释了神经元的工作原理,包括权重和偏置如何影响输出,以及如何通过训练来调整参数。然后,文章阐述了神经网络的结构,即由多层神经元组成,每一层的输出作为下一层的输入,从而实现更复杂的分类任务。文章还解释了如何将图像数据转换为神经网络可以处理的数字形式,例如将像素灰度值作为输入。通过大量的训练数据,神经网络可以学习到图像的特征,从而识别出猫。文章还提到,研究人员仍在不断探索神经网络的内部运作机制,以期更好地理解和改进 AI 技术。总而言之,文章以清晰的图解和深入浅出的解释,帮助读者理解了 AI 识别图像的基本原理。 - 原文: [How can AI ID a cat?](https://www.quantamagazine.org/how-can-ai-id-a-cat-an-illustrated-guide-20250430/) - Hacker News: [https://news.ycombinator.com/item?id=44964800](https://news.ycombinator.com/item?id=44964800) - 作者: sonabinu - 评分: 156 - 评论数: 48 - 发布时间: 2025-08-21 02:36:28 --- ## 美国最高法院允许 NIH 削减 20 亿美元的研究经费 美国最高法院裁定,特朗普政府可以继续削减正在进行的研究经费,这一决定将阻碍针对终止拨款的诉讼。 这项裁决影响了 NIH 发布的近 20 亿美元的研究经费,实际上推翻了之前的判决,允许特朗普政府继续推进其在 2 月底开始的科学经费削减计划。最高法院认为,研究人员提起的恢复经费的诉讼应该由专门处理合同的法院进行审查,而不是他们最初提起的地区法院。 不过,最高法院也明确指出,地区法院可以审查 NIH 用于终止拨款的指导方针,并维持了下级法院关于这些指导方针非法且不应使用的命令。下级法院曾在 6 月份表示,特朗普政府在多样性、公平和包容 (DEI) 方面削减的拨款带有种族歧视色彩。 这意味着,虽然研究人员可能难以通过诉讼恢复被削减的经费,但 NIH 在制定拨款指导方针时需要更加谨慎,避免出现歧视性做法。这项裁决对科研经费的分配和管理具有重要影响,也引发了关于政府干预科研的讨论。 - 原文: [US Supreme Court allows NIH to cut $2B in research grants](https://www.nature.com/articles/d41586-025-02721-5) - Hacker News: [https://news.ycombinator.com/item?id=45004235](https://news.ycombinator.com/item?id=45004235) - 作者: rntn - 评分: 43 - 评论数: 5 - 发布时间: 2025-08-24 21:49:06 --- ## 将 Claude Code 变成最佳设计伙伴 本文探讨了如何利用 Claude Code 进行更高效的软件开发,核心在于将 Claude Code 从单纯的代码实现者转变为协作设计伙伴。作者分享了通过创建和维护“活文档”的方式,克服 AI 在处理复杂任务时的局限性,并提升开发流程的整体质量。 作者最初直接在提示中描述任务,但发现这种方式在任务复杂时存在问题,例如对话成为唯一的真理来源,容易遗忘早期指令,以及上下文长度限制。为了解决这些问题,作者开始采用让 Claude Code 先编写计划文档的方法,将该文档作为真理来源。这个计划文档包含了功能描述、实现细节(包括代码片段或伪代码)以及代码质量检查命令。 在协作设计过程中,作者会与 Claude Code 讨论实现方案,挑战其提出的方法,有时甚至发现最初的方案更好。这种互动类似于与同事讨论方案,或者使用橡皮鸭调试法,通过解释思路来解决问题。更重要的是,作者将计划文档视为“活文档”,在实现过程中不断更新,确保其与实际代码保持同步。每次提交代码时,都会检查并更新计划,从而克服了 AI 开发中的上下文限制问题。 通过这种方式,Claude Code 不仅可以根据最新的计划继续实现功能,而且更新后的计划文档也为代码审查提供了有用的信息。总的来说,这种工作流程创建了一个清晰的真理来源,消除了上下文限制问题,并促使开发者进行更深入的架构思考。最终,AI 不仅仅是代码的实现者,更成为了一个协作设计伙伴,提升了开发过程的质量和效率。 评论区中,一位用户分享了他们使用 Claude Code 的经验,通过创建包含项目架构、模型规范、构建序列等多个 Markdown 文件的项目,并利用 Databricks 专家、Pydantic 专家和 Prompt 专家等子代理来辅助开发计划文件,显著提升了 Markdown 文件的质量。 - 原文: [Turning Claude Code into my best design partner](https://betweentheprompts.com/design-partner/) - Hacker News: [https://news.ycombinator.com/item?id=45002315](https://news.ycombinator.com/item?id=45002315) - 作者: scastiel - 评分: 147 - 评论数: 67 - 发布时间: 2025-08-24 16:06:03 --- ## 解读 Claude Code:构建卓越 AI Agent 的秘诀 本文深入探讨了 Claude Code 的成功之处,旨在为开发者提供构建更优秀的 LLM Agent 的指导。文章分析了 Claude Code 的架构、提示工程和工具设计,并总结出一些关键经验,帮助开发者在自己的项目中复现 Claude Code 的“魔力”。 Claude Code 之所以令人愉悦,关键在于其对 LLM 能力边界的深刻理解。它扬长避短,利用提示和工具弥补模型的不足,同时让模型在擅长的领域发挥优势。其控制循环简单易懂,易于调试。文章作者通过分析 Claude Code 的网络请求日志,总结出了一系列构建类 Claude Code Agent 的实用技巧,并已将其中的大部分应用到了 MinusX 中。 文章强调了“**保持简单**”的重要性。LLM 本身就难以调试和评估,任何额外的复杂性(如多 Agent、Agent 切换或复杂的 RAG 搜索算法)都会使调试难度成倍增加。因此,应尽可能保持架构的简洁,避免过度工程化。 **文章总结了以下几个关键点:** 1. **控制循环:** 保持单一主循环,最多允许一个分支。使用较小的模型处理各种任务,例如读取文件、解析网页、处理 Git 历史以及总结对话。 2. **提示工程:** 利用 `claude.md` 模式协作并记住用户偏好。使用特殊的 XML 标签、Markdown 和大量示例。 3. **工具设计:** LLM 搜索优于 RAG 搜索。设计优秀的工具,区分高层级和低层级工具。让 Agent 管理自己的待办事项列表。 4. **可控性:** 控制 Agent 的语气和风格。使用 "**PLEASE THIS IS IMPORTANT**" 这样的强调方式。编写包含启发式方法和示例的算法。 文章还深入探讨了控制循环的设计,强调了可调试性优于复杂的多 Agent 系统。Claude Code 采用单一主线程,并通过生成子 Agent 的方式处理分层任务,限制最大分支数为 1,并将结果作为工具响应添加到主消息历史中。 此外,文章还强调了使用较小模型的重要性。Claude Code 大量使用 `claude-3-5-haiku` 模型来处理各种任务,这不仅降低了成本,也提高了效率。在提示工程方面,Claude Code 使用了大量的启发式方法、示例和强调提醒,其系统提示长达约 2800 个 tokens,工具描述更是占据了 9400 个 tokens。用户提示始终包含 `claude.md` 文件,用于存储用户上下文和偏好。 总而言之,Claude Code 的成功在于其对 LLM 能力的深刻理解、简洁的架构设计、精良的提示工程和实用的工具设计。通过学习和借鉴 Claude Code 的经验,开发者可以构建出更高效、更可靠、更令人愉悦的 AI Agent。 - 原文: [What makes Claude Code so damn good](https://minusx.ai/blog/decoding-claude-code/) - Hacker News: [https://news.ycombinator.com/item?id=44998295](https://news.ycombinator.com/item?id=44998295) - 作者: samuelstros - 评分: 374 - 评论数: 260 - 发布时间: 2025-08-24 03:07:42 --- ## CSS `random()` 函数:让你的网页更具活力 CSS `random()` 函数的到来,为网页设计带来了新的可能性,无需 JavaScript 即可实现随机效果,让网页元素呈现出更生动、更具活力的状态。 文章详细介绍了 `random()` 函数的基本用法,它接受三个参数:`random(min, max, step)`,分别定义了随机数的最小值、最大值和步长。通过调整这些参数,开发者可以精确控制随机数的范围和精度。文章通过创建星空和随机矩形等生动案例,展示了 `random()` 函数在实际应用中的强大功能。例如,在星空案例中,`random()` 函数被用于随机设置星星的位置、大小和颜色,营造出逼真的星空效果。此外,文章还深入探讨了如何结合 CSS 自定义属性和 `element-shared` 关键字,实现更高级的随机效果,例如在所有四角星上应用相同的随机旋转角度,从而模拟真实的衍射光线。`random()` 函数与 CSS 网格布局结合,可以创建出各种有趣的随机矩形图案,为网页设计增添更多创意。 总而言之,CSS `random()` 函数为开发者提供了一种强大的工具,可以轻松地为网页添加随机性和动态效果,从而提升用户体验和视觉吸引力。 - 原文: [Rolling the dice with CSS random()](https://webkit.org/blog/17285/rolling-the-dice-with-css-random/) - Hacker News: [https://news.ycombinator.com/item?id=44977833](https://news.ycombinator.com/item?id=44977833) - 作者: zdw - 评分: 121 - 评论数: 20 - 发布时间: 2025-08-22 04:43:51 --- ## Apache Kafka 诞生的原因:解决 LinkedIn 的数据集成难题 本文深入探讨了 Apache Kafka 被创建的初衷,即解决 LinkedIn 在 2012 年左右面临的复杂数据集成问题。Kafka 的出现并非偶然,而是为了应对当时 LinkedIn 现有数据架构的诸多挑战。 LinkedIn 当时依赖网站活动数据(例如点赞、发布等)来支持各种核心功能,包括欺诈检测、职位匹配、机器学习模型训练以及网站的基本特性。这些活动数据不仅用于报告,而且是网站核心功能的关键依赖,因此需要极其稳定的基础设施。然而,LinkedIn 的旧基础设施由两个主要的点对点数据管道组成,一个用于批量数据仓库加载,另一个用于近乎实时的可观测性。这两个管道都存在诸多问题,例如大量的手工维护、积压的数据缺口以及缺乏集成性。 为了解决这些问题,LinkedIn 需要一个能够提供强大管道基础设施、可扩展性、正确的模式处理、高扇出、实时性、即插即用集成能力以及责任转移的系统。具体来说,旧系统的 XML 模式解析耗时且容易出错,管道脆弱,模式演变困难,无法实时检查活动指标,运营服务器指标与活动数据分离,无法进行深入的运营指标分析,并且数据只能发送到单个目的地。 Kafka 的诞生解决了其中的五个主要问题:鲁棒性、可扩展性、高性能、持久性和容错性。通过构建一个分布式系统,Kafka 提供了内置的复制、故障转移和持久性保证,这意味着单台机器的故障不会中断管道。Kafka 的分布式特性和主题分片实现了水平扩展,能够处理大量数据。 总而言之,Kafka 的出现是为了解决 LinkedIn 当时面临的实际数据集成挑战,它提供了一个可靠、可扩展、实时的平台,能够处理各种数据流,并支持各种下游应用。 - 原文: [Why was Apache Kafka created?](https://bigdata.2minutestreaming.com/p/why-was-apache-kafka-created) - Hacker News: [https://news.ycombinator.com/item?id=44988845](https://news.ycombinator.com/item?id=44988845) - 作者: enether - 评分: 167 - 评论数: 158 - 发布时间: 2025-08-23 03:31:41 --- ## 家庭项目:在自家土地上安葬母亲的故事 这篇文章讲述了一个家庭在母亲去世后,决定将她安葬在自家土地上的故事。作者记录了他们如何克服法律和后勤上的挑战,最终完成了这个充满爱意的家庭项目。 文章详细描述了作者一家在母亲去世后所面临的各种问题。首先是法律问题,他们需要确认在自家土地上安葬是否合法。其次是后勤问题,包括用什么安葬、墓地选址以及如何挖掘墓穴。作者的兄弟们决定亲手制作棺材,邻居也慷慨地提供了木材。他们还咨询了当地的健康部门,确保墓地符合规定。最终,他们选择在母亲生前喜爱的菜园附近挖掘墓穴,并得到了邻居的帮助。 整个过程充满了挑战,但也充满了温情。作者一家齐心协力,克服了各种困难,最终完成了这个特殊的家庭项目。他们不仅为母亲找到了一个安息之所,也加深了彼此之间的感情。这篇文章展现了家庭的爱与支持,以及在面对死亡时的坚强和勇气。 由于原文中没有评论内容,因此无法进行评论观点的总结和分析。 - 原文: [A Family Project (2022)](https://bittersoutherner.com/feature/2022/a-family-project) - Hacker News: [https://news.ycombinator.com/item?id=44987617](https://news.ycombinator.com/item?id=44987617) - 作者: NaOH - 评分: 15 - 评论数: 1 - 发布时间: 2025-08-23 02:01:02 ---

  

🫵 来啊,说点有用的废话!