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

【HN中文日报】AI时代开发新趋势:Perplexity 爬虫翻车,Node.js 拥抱 Web 标准,还有你的电子设备能不能安静点?!

意外富翁的头像
|
|
|
111 ## 今天 Hacker News 社区聊了啥? NO.20250804 今天的新闻有点意思!Perplexity 爬虫被 Cloudflare 抓包,偷偷摸摸绕过网站规则,看来 AI 也开始耍小聪明了。Node.js 迎来现代化,拥抱 Web 标准,开发效率要起飞!还有,你有没有被电子设备的各种提示音吵到崩溃?快来看看这篇吐槽文,引起极度舒适!当然,还有关于编程语言、AI 模型性格控制、开源摄像头固件等硬核内容等你来探索,信息量巨大,速速点击阅读吧! ![Hacker News 中文精选](/static/mascot_article.webp) --- ## 对象应该闭嘴:对过度噪音的控诉 本文作者控诉了现代电子设备中泛滥的、不必要的噪音提示,认为这些噪音不仅烦人,有时甚至会带来安全隐患。作者以自己的汽车为例,详细描述了各种恼人的噪音问题,并呼吁设计师们在设计产品时,优先考虑用户的安静需求。 作者首先提到他的汽车,LPG 燃料不足时的尖锐提示音和全屏警告信息,在高速行驶时非常危险。作者认为,只有在出现严重问题时,汽车才应该发出警报,而不是为了提醒驾驶员 LPG 燃料即将耗尽(而汽油箱是满的)。作者进一步指出,这种噪音提示无法配置,会吵醒车内睡觉的人,反而降低了安全性。 接着,作者将矛头指向其他家用电器,例如洗衣机。洗衣机完成循环时的闹钟虽然可以禁用,但每次转动旋钮或按下按钮时发出的“哔”声却无法关闭。作者认为,这些声音对视障用户毫无用处,而且启动时的“可爱”音调更是毫无意义。烘干机也存在类似的问题,即使衣服已经烘干,仍然会发出无法关闭的提示音。 厨房里的电磁炉也未能幸免,如果触摸感应按钮上有水或抹布,就会发出巨大的噪音。作者认为,在这种情况下,什么都不做或者闪烁指示灯会更好。最糟糕的是婴儿监视器,开机时会发出哔哔声,这可能会吵醒正在睡觉的孩子。 作者也列举了一些正面的例子,例如没有声音的洗碗机、只有在门未关好时才会发出微弱噪音的冰箱,以及无法发出任何声音的电子书阅读器。最后,作者呼吁设计师们在设计产品时,多考虑用户的安静需求,避免在已经充满噪音的世界中增加更多的干扰。 评论区里,有用户分享了自己因为汽车噪音问题而花费巨额维修费的经历,表达了对电子产品过度干扰的厌烦。另有用户指出,UI 工程师的绩效通常与用户参与度挂钩,导致他们为了提高点击量而添加不必要的功能。还有用户提到,一些随机库中的实例化对象不应该写入标准输出和标准错误,这与文章的主题有异曲同工之妙。总的来说,评论区也反映了人们对电子设备噪音问题的普遍不满。 - 原文: [Objects should shut the fuck up](https://dustri.org/b/objects-should-shut-the-fuck-up.html) - Hacker News: [https://news.ycombinator.com/item?id=44786367](https://news.ycombinator.com/item?id=44786367) - 作者: gm678 - 评分: 22 - 评论数: 5 - 发布时间: 2025-08-04 22:33:49 --- ## Perplexity 秘密使用爬虫绕过网站 No-Crawl 指令 Cloudflare 发现 Perplexity 秘密使用未声明的爬虫绕过网站的 robots.txt 规则和网络封锁,这种行为违背了互联网的信任基础。Cloudflare 已将 Perplexity 从验证 Bot 列表中移除,并添加了规则来阻止这种秘密爬取行为。 文章指出,Perplexity 最初会使用其声明的 User-Agent 进行爬取,但当遇到网络封锁时,会伪装其爬虫身份以绕过网站的限制。Cloudflare 观察到 Perplexity 不断修改 User-Agent,更换源 ASN,甚至忽略 robots.txt 文件。为了验证这一行为,Cloudflare 创建了多个全新的域名,并在 robots.txt 文件中禁止所有爬虫访问。尽管如此,Perplexity 仍然能够提供关于这些受限域名的详细信息。 Cloudflare 进一步发现,Perplexity 不仅使用其声明的 User-Agent,还会使用伪装成 macOS 上 Google Chrome 的通用浏览器。这种未声明的爬虫使用 Perplexity 官方 IP 范围之外的多个 IP 地址,并轮换这些 IP 以规避 robots.txt 策略和 Cloudflare 的封锁。此外,Cloudflare 还观察到来自不同 ASN 的请求,试图进一步逃避网站的阻止。 文章强调,良好的爬虫应该透明、行为良好、目的明确、区分活动并遵守规则。OpenAI 是一个典范,它清晰地列出了其爬虫并详细解释了每个爬虫的目的,尊重 robots.txt 文件,并且不试图规避 robots.txt 指令或网络级别的封锁。Cloudflare 使用 ChatGPT 进行了相同的测试,发现 ChatGPT-User 会获取 robots.txt 文件并在被禁止时停止爬取。 Cloudflare 的 Bot 管理系统能够识别 Perplexity 的隐藏 User-Agent 并阻止其通过管理挑战。因此,已经设置了阻止规则的 Bot 管理客户已经受到了保护。文章最后建议用户可以通过 Cloudflare 的 Bot 管理功能来保护自己免受这种秘密爬取行为的影响。 (由于未提供评论内容,跳过评论相关的输出) - 原文: [Perplexity is using stealth, undeclared crawlers to evade no-crawl directives](https://blog.cloudflare.com/perplexity-is-using-stealth-undeclared-crawlers-to-evade-website-no-crawl-directives/) - Hacker News: [https://news.ycombinator.com/item?id=44785636](https://news.ycombinator.com/item?id=44785636) - 作者: rrampage - 评分: 188 - 评论数: 78 - 发布时间: 2025-08-04 21:39:30 --- ## 英国社会分层的遗传相关性研究 本文研究了英国人群中复杂性状的基因组范围变异的地理聚类现象,探讨了社会经济地位 (SES) 驱动的迁移对遗传变异的影响。研究发现,在控制了祖先差异后,33 个分析性状中有 21 个在遗传水平上表现出显著的地理聚类,表明内部迁移可能导致了特定性状相关基因的区域聚集。 研究重点关注了教育程度 (EA) 相关的等位基因,发现降低 EA 的等位基因倾向于聚集在社会经济地位较低的地区,例如煤矿区。更有趣的是,离开煤矿区的人群平均携带更多增加 EA 的等位基因,这表明迁移模式与遗传倾向之间存在关联。研究还发现,地理聚类的程度与复杂性状和区域 SES、健康和文化指标之间的遗传关联相关。这意味着遗传变异的地理分布可能受到区域环境和社会经济因素的影响,反过来也可能影响这些区域的健康和文化特征。 总的来说,这项研究强调了在基因研究中考虑地理因素的重要性。基因组复杂性状变异的地理聚类可能会影响孟德尔随机化等研究设计的有效性,因为它可能引入基因-环境相关性,从而导致对因果关系的错误推断。此外,这种聚类还可能影响双胞胎和家庭研究中遗传力的估计,并可能影响全基因组关联研究 (GWAS) 的信号。因此,了解基因组复杂性状变异的地理分布驱动因素对于准确解释遗传研究结果至关重要。未来的研究应该进一步探索迁移、社会经济因素和基因变异之间的复杂关系,以更全面地了解人类复杂性状的遗传基础。 - 原文: [Genetic correlates of social stratification in Great Britain (2019) [pdf]](https://research.vu.nl/ws/portalfiles/portal/127420931/Genetic_correlates_of_social_stratification_in_Great_Britain.pdf) - Hacker News: [https://news.ycombinator.com/item?id=44785016](https://news.ycombinator.com/item?id=44785016) - 作者: djoldman - 评分: 34 - 评论数: 16 - 发布时间: 2025-08-04 20:41:13 --- ## 低成本光学脑成像技术的新进展 本文介绍了在光学脑成像领域取得的突破性进展,重点在于降低成本和提高可访问性。科学家们正在探索使用激光穿透人脑进行成像的新方法,这为神经科学研究和临床应用带来了新的可能性。 文章详细阐述了新型光学脑成像技术的原理和优势。这些技术旨在克服传统脑成像方法(如MRI和PET)的局限性,比如成本高昂、设备庞大以及对人体具有潜在危害等问题。通过优化激光波长、改进传感器灵敏度以及开发新的图像重建算法,研究人员得以在保证图像质量的同时,显著降低成像系统的成本。 此外,文章还探讨了这些低成本光学脑成像技术在不同领域的潜在应用。例如,它们可以用于早期诊断神经退行性疾病(如阿尔茨海默病),监测脑损伤后的恢复情况,以及研究大脑在执行各种认知任务时的活动模式。由于设备更加便携和易于操作,这些技术还有望在发展中国家和资源匮乏地区得到广泛应用,从而促进全球范围内的脑科学研究和医疗保健水平的提升。 文章还强调了该领域面临的挑战,例如如何进一步提高图像分辨率和穿透深度,以及如何解决激光对人体组织的潜在影响等问题。尽管如此,低成本光学脑成像技术的快速发展无疑为我们理解大脑的奥秘打开了一扇新的大门。 - 原文: [Scientists shine a laser through a human head](https://spectrum.ieee.org/optical-brain-imaging) - Hacker News: [https://news.ycombinator.com/item?id=44785238](https://news.ycombinator.com/item?id=44785238) - 作者: sohkamyung - 评分: 36 - 评论数: 13 - 发布时间: 2025-08-04 21:07:18 --- ## 基于 GHz 速率的神经形态光子芯片与原位训练 这篇论文介绍了一种新型的光子神经形态芯片,它在模拟大脑的事件驱动和异步动态方面取得了重要进展,旨在推动下一代机器智能的发展。该芯片在互补金属氧化物半导体兼容的硅平台上实现了全栈式、受大脑启发的计算。 文章的核心在于展示了该光子尖峰神经网络 (PSNN) 芯片的几项关键创新。首先,它实现了千兆赫兹 (GHz) 级别的非线性尖峰动态,这使得芯片能够快速处理信息。其次,该芯片具备原位学习能力,通过监督式突触可塑性进行学习,无需外部干预。第三,它采用视网膜启发的尖峰编码方式,实现了信息量丰富的事件表示,解决了时空数据集成和节能动态处理方面的长期挑战。 该神经形态光电系统通过其无帧、事件驱动的工作方式,在 KTH 视频识别数据集上实现了 80% 的准确率,同时处理速度比传统的基于帧的方法快约 100 倍。这意味着该芯片在处理实时动态视觉和自适应决策等应用方面具有巨大潜力,例如自动驾驶汽车和机器人导航。这项工作代表了神经形态计算在可扩展光子平台上的一个飞跃,具有低延迟和高吞吐量的优势。总的来说,该研究为开发更高效、更智能的计算系统开辟了新的道路。 由于没有评论内容,这里跳过评论分析部分。 - 原文: [GHz spiking neuromorphic photonic chip with in-situ training](https://arxiv.org/abs/2506.14272) - Hacker News: [https://news.ycombinator.com/item?id=44784297](https://news.ycombinator.com/item?id=44784297) - 作者: juanviera23 - 评分: 75 - 评论数: 8 - 发布时间: 2025-08-04 19:21:05 --- ## 探讨理想的数组编程语言:未来硬件趋势与用户可扩展性 本文作者畅想了一种理想的数组编程语言,它能够充分利用现代硬件的异构性,并提供高度的用户可扩展性。作者认为,随着硬件朝着多核、多节点、多种子系统(如GPU、FPGA)的方向发展,编程语言需要能够感知这些变化并进行优化。 作者强调了用户可扩展的秩多态(Rank Polymorphism)的重要性,认为这是区分数组语言的关键特征。Numpy虽然提供了一定的秩多态性,但并非第一类语言特性,需要借助Numba等JIT编译器才能实现真正的数组语言功能。类似地,JAX和XLA编译器也需要Pallas或Triton这样的内核语言才能满足所有使用场景。理想的数组语言应该具备数组语言的基础,并允许直接编写内核,或者通过组合原语来实现编译器可推理的优化。 文章还提到了值语义和自动缓冲区管理的重要性,以及编译步骤中离线编译与在线编译的权衡。此外,作者还讨论了SIMT(单指令多线程)和自动并行化,以及数组感知类型系统和语法设计。总而言之,作者设想的数组语言,需要能够适应不断变化的硬件环境,并为用户提供足够的灵活性和控制力,以便充分利用底层硬件的性能。 最后,作者还提到了Mojo语言在用户可扩展性方面的尝试,例如通过暴露MLIR原语,将更多细节从编译器推向语言层面,从而减少对编译器内置功能的使用。 - 原文: [My Ideal Array Language](https://www.ashermancinelli.com/csblog/2025-7-20-Ideal-Array-Language.html) - Hacker News: [https://news.ycombinator.com/item?id=44785224](https://news.ycombinator.com/item?id=44785224) - 作者: bobajeff - 评分: 26 - 评论数: 4 - 发布时间: 2025-08-04 21:05:08 --- ## PHP:编程界的丰田卡罗拉 本文将 PHP 比作编程语言中的丰田卡罗拉,探讨了它作为一种实用、易于上手且经济实惠的语言的地位。尽管 PHP 经常受到“严肃”程序员的嘲笑,但它仍然是 Web 开发领域的重要力量,驱动着全球 70% 到 80% 的网站。 文章指出,PHP 和 JavaScript 有着惊人的相似之处,它们都诞生于 1995 年,都在 1997 年实现了某种程度的标准化,并在 2010 年代获得了 Facebook、Google 和 Microsoft 等科技巨头的支持。如今,两者都基于 Go 语言进行了重大改进,例如 FrankenPHP 和 TypeScript 编译器。 作者认为,PHP 已经发展成为一种现代编程语言,具备许多先进的特性,包括开源、面向对象编程(OOP)特性、函数式编程结构、类型检查系统以及强大的包管理器 Composer。虽然 PHP 仍然存在一些缺点,例如 `goto` 运算符和一些令人不快的语法,但它在过去十年中经历了重大的改进,并且拥有一个致力于消除安全漏洞的团队。 总而言之,作者呼吁那些“严肃”的程序员们放下身段,重新审视 2025 年的 PHP,因为它仍然是 Web 开发领域中不可忽视的力量。PHP 就像丰田卡罗拉一样,虽然不那么引人注目,但它可靠、实用,并且能够完成工作。 - 原文: [The Toyota Corolla of programming](https://deprogrammaticaipsum.com/the-toyota-corolla-of-programming/) - Hacker News: [https://news.ycombinator.com/item?id=44785759](https://news.ycombinator.com/item?id=44785759) - 作者: secstate - 评分: 44 - 评论数: 34 - 发布时间: 2025-08-04 21:49:00 --- ## 使用有向距离函数 (SDF) 实现完美抗锯齿 本文深入探讨了在有向距离函数 (SDF) 上实现高质量抗锯齿的技术,着重讲解了 `linearstep` 函数的应用,并讨论了如何根据像素大小和数值导数来调整抗锯齿的宽度,以达到最佳的视觉效果。文章旨在帮助开发者理解 SDF 抗锯齿的原理,并提供实用的代码示例。 文章首先介绍了 SDF 的基本概念,即 SDF 能够返回指定坐标到形状的带符号距离,符号表示坐标位于形状内部还是外部。然后,文章讲解了如何使用 `linearstep` 函数实现线性过渡,并解释了过渡区域宽度 `w` 与 SDF 梯度之间的关系。通过调整 `w` 值,可以控制抗锯齿的程度。文章还讨论了如何根据 SDF 的符号约定(正数表示内部或外部)来调整公式。 接下来,文章重点介绍了如何确定合适的 `w` 值。对于 2D 场景,如果可以获取像素分辨率,则可以使用像素大小作为 `w` 值。文章给出了一个计算屏幕坐标的示例,并展示了如何根据坐标空间调整 `w` 的计算公式。对于 3D 场景或需要将 2D SDF 映射到 3D 平面的情况,文章推荐使用数值导数 `fwidth(d)` 来计算 `w` 值。`fwidth` 可以根据片段计算变量的变化率,从而实现像素级别的抗锯齿,即使在透视变换下也能保持一致。 总而言之,文章由浅入深地介绍了 SDF 抗锯齿的实现方法,并提供了多种实用技巧,可以帮助开发者在各种场景下实现高质量的抗锯齿效果。文章强调了理解 SDF 梯度和坐标空间的重要性,并鼓励开发者根据实际情况调整参数,以达到最佳的视觉效果。 - 原文: [Perfecting anti-aliasing on signed distance functions](https://blog.pkh.me/p/44-perfecting-anti-aliasing-on-signed-distance-functions.html) - Hacker News: [https://news.ycombinator.com/item?id=44784141](https://news.ycombinator.com/item?id=44784141) - 作者: ibobev - 评分: 56 - 评论数: 13 - 发布时间: 2025-08-04 18:55:47 --- ## 《Bluey》的世界是如何构建的:专访艺术总监 Catriona Drummond 本文采访了动画片《Bluey》的艺术总监 Catriona Drummond,深入探讨了该剧的视觉风格和世界构建过程。Drummond 分享了创作灵感、技术挑战以及如何通过背景设计来增强故事叙述和情感表达。 Drummond 强调了《Bluey》的背景设计并非简单的装饰,而是故事叙述的重要组成部分。她和团队致力于创造一个既真实又充满想象力的世界,让孩子们能够产生共鸣,同时也能吸引成年观众。为了实现这一目标,他们从现实生活中汲取灵感,比如澳大利亚的昆士兰州,并将其融入到动画的细节之中。 文章还介绍了《Bluey》团队在技术方面面临的挑战,尤其是在将手绘风格与数字动画相结合时。Drummond 解释说,他们需要找到一种方法,既能保留手绘的温暖和质感,又能充分利用数字技术的效率和灵活性。 此外,文章还探讨了《Bluey》的色彩运用和光影效果。Drummond 认为,色彩是表达情感和营造氛围的重要工具。她和团队精心挑选每一种颜色,以增强故事的叙述和角色的情感。光影效果也被用来创造深度和层次感,使《Bluey》的世界更加生动和引人入胜。 总而言之,这篇文章深入剖析了《Bluey》的视觉风格和世界构建,揭示了幕后团队如何通过精心的设计和技术创新,打造出一个备受喜爱的动画世界。对于动画制作人员和爱好者来说,本文提供了宝贵的见解和灵感。 - 原文: [How we built Bluey’s world](https://www.itsnicethat.com/features/how-we-built-bluey-s-world-cartoon-background-scenery-art-director-catriona-drummond-animation-090725) - Hacker News: [https://news.ycombinator.com/item?id=44755827](https://news.ycombinator.com/item?id=44755827) - 作者: skrebbel - 评分: 111 - 评论数: 64 - 发布时间: 2025-08-01 20:33:20 --- ## LLM 字体识别能力探究:现状与挑战 本文探讨了大型语言模型(LLM)在字体识别方面的能力,作者通过搭建一个实时基准测试,让 LLM 识别 dafont.com 论坛上用户请求识别的字体。该基准测试只使用 LLM 从未见过的图像,以避免模型记忆带来的偏差。作者使用了 `gpt-4o-mini` 和 `gemini-2.5-flash-preview-05-20` 这两个 LLM 模型,并允许每个模型进行最多五次猜测,最终结果显示,LLM 在字体识别方面的表现相当糟糕。作者认为,这可能是因为任务难度过高,或者是因为 LLM 确实没有见过这些图像。 文章还分享了基准测试的实现细节,包括使用 Python 脚本抓取 dafont.com 数据,使用 Simon Willison 的 llm 包与 LLM 交互,以及使用 Observable Framework 构建仪表板。作者强调了基准测试中避免数据污染的重要性,并认为 LLM 并非万能,在解决所有任务之前还有很长的路要走。 评论区主要集中在以下几个方面: * **字体设计的独特性:** 有评论指出,某些字体可能只是为特定文本绘制的,并非通用字体。 * **模型选择的影响:** 有评论认为,作者选择的 LLM 模型可能不够强大,更昂贵的模型可能会有更好的表现。 * **字体相似性的干扰:** 有评论提到,字体之间存在高度相似性,尤其是在免费字体网站上,这可能会导致 LLM 做出错误的猜测。 字体形状本身不受版权保护,导致大量克隆字体出现。 - 原文: [Do LLMs identify fonts?](https://maxhalford.github.io/blog/llm-font-identification/) - Hacker News: [https://news.ycombinator.com/item?id=44746347](https://news.ycombinator.com/item?id=44746347) - 作者: alexmolas - 评分: 20 - 评论数: 8 - 发布时间: 2025-07-31 22:56:24 --- ## 迎接 2025:Node.js 的现代化开发模式 Node.js 经历了一系列显著的变革,现代 Node.js 拥抱 Web 标准,减少外部依赖,并提供更直观的开发者体验。文章探讨了 Node.js 的现代化开发模式,并阐述了这些转变对应用程序的重要性。 文章首先指出 ES Modules (ESM) 已经成为新的标准,并推荐使用 `node:` 前缀来明确内置模块的引用,避免潜在的命名冲突,使得依赖关系更加清晰。 其次,Node.js 已经原生支持 Fetch API, 从而不再需要 `axios` 或 `node-fetch` 等外部依赖库,同时还内置了超时和取消操作的支持。 此外,文章还介绍了内置的测试运行器, 开发者无需再纠结于选择 Jest、Mocha 或 Ava 等第三方测试框架。 最后,文章还提到了 Async/Await 模式的成熟运用, 结合错误处理和并行执行模式,可以更高效地进行异步编程。 总的来说,Node.js 正在积极拥抱 Web 标准,减少对外部库的依赖,并提供更强大的内置功能, 从而简化开发流程,提高开发效率。 拥抱这些现代化的开发模式,能够帮助开发者构建更健壮、更易于维护的 Node.js 应用程序。 - 原文: [Modern Node.js Patterns](https://kashw1n.com/blog/nodejs-2025/) - Hacker News: [https://news.ycombinator.com/item?id=44778936](https://news.ycombinator.com/item?id=44778936) - 作者: eustoria - 评分: 764 - 评论数: 351 - 发布时间: 2025-08-04 03:16:18 --- ## PDF 解析的痛点:深入探索 PDF 文件结构与解析难点 本文深入探讨了 PDF 文件解析的复杂性,揭示了理想化的 PDF 规范与现实中 PDF 文件结构的巨大差异,以及由此带来的解析难题。文章旨在帮助开发者更好地理解 PDF 文件的内部结构,并为开发更健壮的 PDF 解析器提供指导。 文章首先介绍了 PDF 文件解析的基本流程,包括定位版本头、交叉引用表(xref)指针、对象偏移量以及 trailer 字典。理想情况下,解析器应该能够根据这些信息轻松地构建 PDF 文件的对象图,并提取所需的内容。然而,现实情况远非如此简单。文章指出,PDF 文件往往不严格遵守规范,例如 `%%EOF` 标记可能不在文件末尾,`startxref` 指针可能拼写错误,甚至指向错误的位置。更糟糕的是,PDF 文件可能包含垃圾数据,导致所有对象偏移量都发生偏移。文章还提到,xref 表本身也可能存在问题,例如对象偏移量不正确,或者 `/Prev` 指针指向错误的位置。 文章通过对大量 PDF 文件的分析,总结了 PDF 解析中常见的错误类型,并提供了相应的解决方案。例如,对于包含垃圾数据的 PDF 文件,可以通过计算版本头的偏移量来调整对象偏移量。对于 xref 表中对象偏移量不正确的 PDF 文件,可能需要采用启发式方法来猜测正确的偏移量。 总而言之,PDF 解析是一个充满挑战的任务,需要开发者具备深入的 PDF 文件结构知识,以及处理各种异常情况的能力。 由于没有评论内容,这里跳过评论分析部分。 - 原文: [So you want to parse a PDF?](https://eliot-jones.com/2025/8/pdf-parsing-xref) - Hacker News: [https://news.ycombinator.com/item?id=44780353](https://news.ycombinator.com/item?id=44780353) - 作者: UglyToad - 评分: 337 - 评论数: 189 - 发布时间: 2025-08-04 06:24:29 --- ## 如何编写优秀的设计文档 本文主要讨论了如何编写优秀的设计文档,强调设计文档应像数学证明一样,旨在说服读者设计方案在特定情况下是最优的。 文章指出,编写设计文档的首要目的是为了理清作者自己的思路,将模糊的想法变得严谨。文档组织应像代码组织一样清晰,避免出现“意大利面条式”的混乱结构。好的设计文档应让读者阅读过程流畅自然,不感到困惑,并能预先考虑到读者可能提出的异议并给出解答。作者还强调了编辑的重要性,建议尽可能删除不必要的词语,提倡简洁明了的表达。此外,文章还分享了一些具体的技巧,例如使用短段落,每个段落只表达一个中心思想,以及将复杂的计算或模拟过程放在附录中。通过大量的实践和参考他人文档,可以不断提高设计文档的编写水平。 ## 评论区观点 评论中 @nickm12 提出了类似三层洋葱结构的组织方式,由外到内分别是问题陈述、功能规范和技术规范。这种结构强调每一层都应基于前一层,确保问题被理解、需求充分必要、功能规范满足需求、技术规范实现功能和非功能需求。这种分层结构有助于读者理解设计思路,并能在早期发现问题。 - 原文: [Writing a good design document](https://grantslatton.com/how-to-design-document) - Hacker News: [https://news.ycombinator.com/item?id=44779428](https://news.ycombinator.com/item?id=44779428) - 作者: kiyanwang - 评分: 463 - 评论数: 121 - 发布时间: 2025-08-04 04:21:54 --- ## OpenIPC:开源IP摄像头固件,掌控你的设备 OpenIPC 是一个开源项目,旨在为各种品牌的 ARM 和 MIPS 架构 IP 摄像头提供替代固件,替换那些封闭、不安全且缺乏支持的官方固件。它允许用户完全掌控自己的摄像头,无需担心后门、恶意软件或数据泄露等安全问题。 OpenIPC 提供预编译的二进制文件,方便用户安装,同时也提供完整的源代码,鼓励开发者参与改进。它基于 Buildroot 构建 Linux 发行版,并使用 Majestic、Divinus、Mini 或 Venc 等流媒体组件。虽然 Majestic 目前尚未开源,但其作者正积极寻求资金支持,以便未来能够开放源代码。 OpenIPC 的目标是为各种摄像头提供通用支持,首先确保基本的视频和音频流传输功能。此外,它还支持 IPEYE 云存储、YouTube 和 Telegram 直播、SOCKS5 代理和虚拟隧道等功能。该项目还涉及无人机、建筑头盔、测量工具、医学研究和水下钓鱼等专业设备的应用。使用 OpenIPC,用户可以自由地控制摄像头的行为,并根据自己的需求进行定制。 评论区里,有用户表示非常需要这样的项目,并分享了使用 TP-Link Tapo 摄像头遇到的问题,即必须保持永久联网才能使用,这引发了对其数据安全性的担忧。另一位用户则直接表达了对 OpenIPC 项目的赞赏。这些评论反映了用户对开源、安全和可控的摄像头固件的需求。 - 原文: [Open IP Camera Firmware](https://openipc.org/à) - Hacker News: [https://news.ycombinator.com/item?id=44758463](https://news.ycombinator.com/item?id=44758463) - 作者: zakki - 评分: 6 - 评论数: 2 - 发布时间: 2025-08-01 23:41:50 --- ## 别再摆烂了!开发者必读:代码评审的重要性 这篇文章强调了在AI辅助编程时代,开发者仍然需要认真阅读和审查代码的重要性。作者指出,盲目依赖AI工具可能会导致代码架构弱化、知识流失以及安全漏洞等问题。 文章首先介绍了“Vibe-Coding”的概念,即人与AI之间通过对话完成编码的过程。虽然AI工具可以快速生成代码,但如果开发者不进行代码审查,可能会带来以下三个问题: 1. **架构弱化:** AI生成的代码可能不符合既定的架构规范,导致代码库逐渐混乱。 2. **知识流失:** 过度依赖AI可能导致开发者对代码实现细节的理解不足,从而失去对自身领域的掌控。 3. **安全漏洞:** AI可能在代码中引入安全漏洞,例如未进行权限验证等。 为了解决这些问题,文章提出了两种负责任的Vibe-Coding方法: 1. **快速原型开发:** 在开发不熟悉的功能或生成测试代码时,可以使用AI的自动模式。但在结束会话前,务必审查AI生成的代码并进行必要的调整。 2. **同步监督:** 对于核心业务逻辑和关键修复,需要对AI的生成过程进行同步监督,确保代码质量和安全性。 总而言之,AI工具可以提高开发效率,但开发者不能因此而放松警惕。只有通过认真阅读和审查代码,才能确保代码质量、维护系统架构并避免安全漏洞。 - 原文: [Read your code](https://etsd.tech/posts/rtfc/) - Hacker News: [https://news.ycombinator.com/item?id=44785562](https://news.ycombinator.com/item?id=44785562) - 作者: noeclement - 评分: 81 - 评论数: 59 - 发布时间: 2025-08-04 21:33:20 --- ## 利用 Persona Vectors 监控和控制语言模型的性格特征 Anthropic 提出了 Persona Vectors 的概念,旨在理解和控制 AI 模型的性格特征,就像大脑中控制情绪的部分一样。通过识别模型神经网络中的活动模式,可以监控、减轻甚至防止不良性格特征的出现。 这篇文章介绍了 Anthropic 如何通过识别 AI 模型内部的活动模式来控制其性格特征。他们称这些模式为“性格向量”,类似于大脑中在不同情绪或态度下“亮起”的部分。性格向量可以用来监控模型在对话或训练过程中性格的变化,减轻不良性格转变,或者在训练过程中防止它们出现,甚至识别导致这些转变的训练数据。 Anthropic 的自动化流程以性格特征(例如“邪恶”)和自然语言描述作为输入,识别“性格向量”,即模型神经网络中控制该特征的活动模式。他们通过比较模型在表现出该特征时的激活与不表现出该特征时的激活来提取性格向量。为了验证性格向量的有效性,他们将这些向量人为地注入到模型中,观察其行为如何变化。实验表明,注入“邪恶”性格向量会导致模型谈论不道德行为,注入“谄媚”性格向量会导致模型奉承用户,注入“幻觉”性格向量会导致模型捏造信息。 性格向量可以用于监控模型在部署过程中性格的变化,例如由于用户指令、恶意攻击或对话过程中的逐渐漂移。它们还可以用于减轻训练中不希望出现的性格转变。例如,通过测量性格向量激活的强度,可以检测模型是否正在向相应的特征转变,从而允许开发者或用户进行干预。此外,性格向量还可以用于识别导致这些转变的训练数据,从而避免在训练过程中引入不良特征。 总的来说,Persona Vectors 为理解和控制 AI 模型的行为提供了一个有希望的工具,有助于确保它们与人类价值观保持一致。 - 原文: [Persona vectors: Monitoring and controlling character traits in language models](https://www.anthropic.com/research/persona-vectors) - Hacker News: [https://news.ycombinator.com/item?id=44777760](https://news.ycombinator.com/item?id=44777760) - 作者: itchyjunk - 评分: 380 - 评论数: 126 - 发布时间: 2025-08-04 00:38:06 --- ## 农民的生活、工作与死亡:家庭的形成 本文探讨了前现代社会农民家庭的形成,重点关注婚姻模式,因为家庭是当时社会的基本单位。文章强调了理解这些模式对于理解过去社会至关重要。 文章指出,尽管前现代社会的死亡率普遍较高,但婚姻模式在不同文化中差异显著。几乎所有人类文化都存在某种形式的婚姻,即个体之间相对永久的结合,以创建一个新的家庭单位,生育后代。然而,不同文化在婚姻的发生率、时间以及是否存在一夫多妻制方面存在显著差异。 文章特别强调了区分精英阶层和农民阶层的婚姻模式的重要性。精英阶层的婚姻往往受到家族联盟、继承人需求等因素的影响,而农民则更多地受到经济因素的制约。因此,精英阶层通常比非精英阶层更早结婚。文章还提到了多妻制,指出它在许多社会都存在,但在农业社会中相对较为罕见。 文章还指出,西欧中世纪的婚姻模式非常特殊,其特点是初婚年龄较晚(女性20多岁中期,男性20多岁末期)。文章通过玛丽亚·特蕾莎的婚姻为例,说明了精英阶层的婚姻模式与普通民众的差异。 - 原文: [Life, Work, Death and the Peasant: Family Formation](https://acoup.blog/2025/08/01/collections-life-work-death-and-the-peasant-part-iiia-family-formation/) - Hacker News: [https://news.ycombinator.com/item?id=44765562](https://news.ycombinator.com/item?id=44765562) - 作者: Khaine - 评分: 194 - 评论数: 62 - 发布时间: 2025-08-02 15:39:42 --- ## 如何配置 BorgBackup 和 borgmatic (2023) 本文详细介绍了作者在 macOS 系统上配置 BorgBackup 和 borgmatic 的方法,包括创建定时备份任务、恢复文件、导出密钥以及验证备份的步骤。文章还分享了使用 LaunchAgent 定时运行 borgmatic,以及如何结合 fzf 实现类似 Time Machine 的日期选择界面。 文章首先强调了在 macOS 上使用 LaunchAgent 定时运行 borgmatic 的方法,并提供了一个示例 `.plist` 文件,用于配置每小时运行备份任务。作者还指出,与 systemd 相比,launchctl 在进程隔离和安全加固方面提供的支持有限。 接着,文章介绍了如何使用 `borgmatic extract` 命令和 fzf 工具,以交互式的方式选择备份存档并恢复文件,实现类似 macOS Time Machine 的体验。此外,文章还提供了导出密钥到纸质文档的命令,方便用户在密钥丢失时恢复备份。 文章还详细讲解了如何验证备份的完整性,包括使用 `borgmatic export-tar` 命令导出备份数据,并使用 `gtar --compare` 命令与文件系统中的数据进行比较。最后,文章介绍了如何通过抽样测试来验证备份和恢复过程的正确性,并提供了使用 `find` 或 `mdfind` 命令随机选择文件,以及使用 `borgmatic export-tar` 命令导出这些文件的方法。文章还给出了在 bash 中使用 `mapfile` 和 `awk` 命令组合生成 `--path` 参数的示例。 由于原文中没有评论内容,所以没有评论分析。 - 原文: [How I configure BorgBackup and borgmatic (2023)](https://www.justus.pw/garden/borgbackup.html) - Hacker News: [https://news.ycombinator.com/item?id=44754092](https://news.ycombinator.com/item?id=44754092) - 作者: justusw - 评分: 26 - 评论数: 4 - 发布时间: 2025-08-01 15:54:32 --- ## Python 如何从一种语言发展成一个社区 本文探讨了 Python 如何从最初的编程语言发展成为一个充满活力的社区,并分析了其成功背后的原因。文章着重强调了 Python 社区的文化、贡献模式以及对新技术的开放态度,这些因素共同促成了 Python 的蓬勃发展。 Python 的崛起不仅仅是因为其简洁易懂的语法,更在于其背后强大的社区支持。这个社区鼓励协作、分享知识,并积极维护和扩展 Python 的生态系统。文章指出,Python 社区的开放性和包容性吸引了来自不同背景的开发者,共同推动了 Python 的创新和应用。从最初的科学计算领域,到Web开发、数据科学、人工智能等多个领域,Python 几乎无处不在。这种广泛的应用也反过来促进了社区的壮大,形成了一个正向循环。 文章还提到了 Python 社区在应对挑战方面的能力。面对新的技术趋势和市场需求,Python 社区能够迅速适应并做出调整,例如在云计算、大数据等领域,Python 都能够找到自己的定位并发挥重要作用。此外,Python 社区还非常注重教育和培训,通过各种线上和线下活动,帮助更多的人学习和掌握 Python,为 Python 的未来发展奠定了坚实的基础。Python 的成功经验也为其他编程语言和技术社区提供了宝贵的借鉴。一个活跃、开放、包容的社区是技术发展的关键驱动力。 - 原文: [How Python grew from a language to a community](https://thenewstack.io/how-python-grew-from-a-language-to-a-community/) - Hacker News: [https://news.ycombinator.com/item?id=44777766](https://news.ycombinator.com/item?id=44777766) - 作者: lumpa - 评分: 97 - 评论数: 61 - 发布时间: 2025-08-04 00:38:53 --- ## 联想 ThinkBook Plus Gen 6 评测:可卷曲屏幕的未来笔记本 联想的 ThinkBook Plus Gen 6 是一款具有可卷曲屏幕的创新笔记本电脑,它将 14 英寸屏幕扩展到 16.7 英寸,为用户带来独特的体验。这款售价 3300 美元的笔记本电脑不仅仅是一个概念,而是一款真正可以使用的设备,尽管它也有一些缺点。 这款笔记本最大的亮点在于其可扩展的屏幕,只需按下一个按钮,屏幕就能从 14 英寸扩展到 16.7 英寸,分辨率也随之增加。这种设计为用户提供了更大的垂直空间,非常适合处理文档、代码编辑和电子表格等多任务处理。扩展后的屏幕也使视频通话更加舒适,因为摄像头更接近视线水平,有助于改善人体工程学。 ThinkBook Plus Gen 6 的屏幕采用 OLED 材质,色彩鲜艳,对比度高,视觉效果出色。虽然屏幕表面是塑料材质,没有玻璃那么坚硬,但这也意味着更不容易被刮伤。不过,屏幕在某些角度下可能会出现一些折痕和波纹,尤其是在屏幕下方卷起的部分。 为了容纳可卷曲屏幕,联想在设计上做出了一些妥协。机身采用铝制材料,这使得 ThinkBook Plus Gen 6 比其他同尺寸的笔记本电脑更重,重量达到了 3.72 磅。铰链也比较紧,需要双手才能打开,并且倾斜角度有限。此外,扬声器的位置也比较尴尬,位于机身前部,声音容易被手腕遮挡。 尽管存在一些缺点,ThinkBook Plus Gen 6 仍然是一款令人印象深刻的笔记本电脑。它拥有出色的键盘和触控板、强大的性能和良好的电池续航能力。如果你追求创新和独特的体验,并且不介意较高的价格和一些小瑕疵,那么 ThinkBook Plus Gen 6 绝对值得考虑。 总的来说,这款笔记本电脑代表了笔记本电脑设计的一次大胆尝试,尽管价格昂贵且存在一些小问题,但其创新的可卷曲屏幕设计和出色的性能使其成为一款引人注目的产品。它为用户提供了一种全新的多任务处理方式,并为未来的笔记本电脑设计指明了方向。 - 原文: [ThinkBook Plus Gen 6 – Lenovo’s rollable laptop](https://www.theverge.com/reviews/717491/lenovo-thinkbook-plus-gen-6-rollable-laptop-review) - Hacker News: [https://news.ycombinator.com/item?id=44783862](https://news.ycombinator.com/item?id=44783862) - 作者: xrayarx - 评分: 53 - 评论数: 52 - 发布时间: 2025-08-04 18:10:54 --- ## 类型化语言更适合“随心编码” 这篇文章探讨了在AI辅助编程中,类型化语言(如TypeScript、Rust、Go)相比动态类型语言(如Python)的优势,尤其是在“随心编码”(vibecoding)这种快速原型开发模式下。作者认为,类型化语言的安全性保证,以及编译时检查,使得开发者即使不精通这些语言,也能在AI的帮助下更快速、更安全地进行大型项目重构和开发。 作者分享了自己在TextCortex使用Claude Code重构TypeScript前端代码的经验,强调了编译时类型检查的重要性。Claude Code在每次任务完成后都会运行`tsc`命令,确保代码能够编译通过,这使得作者能够以比Python更高的效率进行开发,并且显著提高了代码的稳定性。作者认为,尽管LLM存在抽象泄漏的问题,但它们在快速原型开发方面的能力已经超越了Python,同时避免了Python的一些缺点,例如较低的安全性保证、运行速度慢以及可能存在的模糊性。因此,作者预测,即使Python很受欢迎,但在公司生产环境中的采用率可能会下降。 评论区对该文章的观点展开了热烈的讨论,出现了多种不同的声音。 * **质疑与反驳:** 有人指出,作者的结论可能缺乏充分的评估,并认为LLM擅长Python是因为训练数据集中Python代码量远大于其他语言。也有人认为,可以通过添加类型注解并使用ruff和ty等工具来获得类型化语言的优势。 * **经验分享:** 一些评论者分享了他们在Rails和TypeScript中使用LLM的经验,发现TypeScript在LLM辅助下表现更好,更容易实现“随心编码”。 * **担忧:** 有人对LLM生成的大量代码的质量表示担忧,认为频繁添加数千行LLM生成的代码可能会降低代码库的质量。 * **类型系统的作用:** 还有人认为,类型系统不仅是一种安全保障,也是一种约束,可以帮助AI生成更健壮的代码。同时,强制使用严格的linting规则也有助于提高代码质量。 * **动态类型语言的优势:** 也有观点认为,LLM可能更擅长动态类型语言,因为它们不需要解决类型错误,从而节省了上下文tokens。在渐进类型语言中,LLM可能会通过使用`any`类型来规避类型错误。 - 原文: [Typed languages are better suited for vibecoding](https://solmaz.io/typed-languages-are-better-suited-for-vibecoding) - Hacker News: [https://news.ycombinator.com/item?id=44780878](https://news.ycombinator.com/item?id=44780878) - 作者: hosolmaz - 评分: 235 - 评论数: 190 - 发布时间: 2025-08-04 07:55:31 ---

  

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