【HN中文日报】今日份科技狠活儿:AI安全拉胯?土里也能存电?还有超实用效率神器等你来挖宝!

意外富翁 · 4个月前 · News · 37 · 0

今天 Hacker News 社区聊了啥? NO.20250825

哈喽!今天这期日报绝对让你大呼过瘾!AI 浏览器自动花钱?这安全漏洞也太刺激了!还有颠覆认知的储能方案,用泥土就能存电,成本暴降1000倍!想提升效率?键盘导航、网络延迟监控,各种实用工具安排上!更有趣闻八卦,带你了解日本最“诡异”的车站和中世纪饮用水的真相!赶紧点进来,一起探索这些科技新知吧!

Hacker News 中文精选


macOS 上的 SQLite 数据库编辑器:Base

Base 是一款专为 macOS 设计的 SQLite 数据库编辑器,旨在提供简洁、强大且舒适的用户体验,适合所有用户使用。它通过直观的界面和强大的功能,简化了 SQLite 数据库的管理和操作。

Base 提供了详细的模式检查器,可以轻松管理数据库结构,无需深入研究 SQL 即可查看表模式、列类型、约束和关系。其直观的表格编辑器简化了表的创建和修改,无需编写复杂的 CREATEALTER 语句,通过清晰的界面添加、组织列并定义约束,使数据库设计变得简单易用。Base 还提供简单的数据浏览器,可以轻松浏览、过滤和编辑表内容,直接编辑单元格,并使用强大的过滤工具快速找到所需数据。SQL 编辑器支持智能自动完成和语法高亮,可以将常用查询存储为可重用代码段,即时查看查询结果,适用于学习 SQL 和高效运行复杂查询。Base 支持从 CSV 和 SQL 转储文件导入数据,并将结果导出为 SQL、分隔文本、JSON 和 Excel 格式,方便数据迁移和共享。

评论区对 Base 的评价普遍积极。有用户表示一直在寻找这样一款简洁的 SQLite 客户端,并惊讶于之前从未听说过它。也有用户称赞 Base 是 macOS 上最好的 SQLite 编辑器,已经使用了近十年。另有用户表示正在使用 DBeaver,但 DBeaver 对 SQLite 的优化不足,存在需要刷新全局连接才能看到更改的常见问题,因此决定尝试 Base。还有用户提出了一个小问题,即更改图标为深色模式后未生效。总体而言,用户对 Base 的界面设计、功能和易用性都表示满意,并认为它是一款值得推荐的 SQLite 数据库编辑器。


探索 OKLCH 色彩模型:更符合人眼感知的色彩方案

OKLCH 是一种新型色彩模型,旨在提供更符合人眼感知的色彩体验,让色彩操作更加直观。与 RGB、HSL 等传统色彩模型相比,OKLCH 在色彩的亮度一致性、色调可预测性以及渐变效果等方面都具有显著优势。

文章详细介绍了 OKLCH 色彩模型的原理和优势。OKLCH 基于 OKLab 色彩空间,使用亮度(Lightness)、色度(Chroma)和色相(Hue)三个值来定义颜色。亮度表示颜色的明暗程度,色度表示颜色的鲜艳程度,色相则表示颜色的种类。OKLCH 的关键优势在于其感知均匀性,这意味着在 OKLCH 中,亮度值的等量变化在人眼看来也是均匀的亮度变化。这使得创建和调整色彩更加直观和可预测。

文章还通过实例展示了 OKLCH 在实际应用中的优势。例如,在创建一系列颜色不同的按钮时,使用 OKLCH 可以轻松地保持所有按钮的亮度一致,只需调整色相即可。此外,OKLCH 在创建渐变时也能避免传统 sRGB 渐变中常见的颜色浑浊问题,呈现更加平滑自然的过渡效果。OKLCH 还能表示超出 sRGB 色域的颜色,充分利用现代显示器的色彩表现能力。

文章还提到了 OKLCH 的浏览器兼容性,以及在不支持 OKLCH 的浏览器中使用 CSS @supports 指令进行降级处理的方法。作者还推荐了一个名为 oklch.fyi 的在线工具,可以帮助开发者生成 OKLCH 色彩方案,并将现有的 CSS 变量转换为 OKLCH 格式。

评论区中,@chrismorgan 指出 OKLCH 在渐变处理方面存在潜在问题,尤其是在色相插值时可能导致颜色超出 sRGB 色域。他建议在需要感知均匀性的情况下,可以考虑使用 Oklab 色彩空间进行插值,以获得更安全和可预测的结果。Tailwind CSS v4 在其 beta 阶段也尝试过使用 Oklch 进行渐变插值,但最终选择了 Oklab 作为更稳妥的默认方案。@twhb 则推荐了 oklch.com 网站,认为它对建立 OKLCH 的直观理解很有帮助。

总的来说,OKLCH 是一种很有前途的色彩模型,它在色彩感知均匀性方面具有显著优势,但在实际应用中也需要注意潜在的问题。开发者可以根据具体需求选择合适的色彩模型,并在必要时进行调整和优化。


提升键盘导航体验:一个小小的浏览器改进

这篇文章讨论了如何通过一个小改动来改善 Firefox 和 Chrome 浏览器的键盘导航体验,尤其是在现代网页中,许多元素并非传统的链接,而是依赖 JavaScript 实现交互。作者分享了一个简单的扩展,让用户在通过浏览器的查找功能高亮文本后,按下 Enter 键就能触发对应元素的点击事件。

文章指出,Firefox 的 "快速查找链接" 功能(通过 ' 键触发)在链接导航上表现良好,但对于按钮和 div 等非链接元素,浏览器的内置查找功能(/ 或 Ctrl+F)只能高亮文本,无法通过 Enter 键触发点击。为了解决这个问题,作者创建了一个浏览器扩展,该扩展监听 Enter 键的按下事件,并自动点击当前选中的元素。实现原理是获取当前选区的父 HTML 元素并模拟点击,然后移除选区。作者认为,这个小小的 hack 可以显著提升键盘导航的效率。此外,作者还分享了另一个主题,关于如何优化 Firefox 的电池和 CPU 使用率。

评论区里,大家分享了各自的键盘浏览技巧和扩展推荐。Vimium 和 Surfingkeys 扩展都受到了推荐,它们通过 Vim 风格的快捷键来操作浏览器,能高效率地进行网页浏览。也有用户提到使用键盘滚动网页的问题,指出 PageUp/PageDown 和方向键在某些网站上的表现不尽如人意。另有用户指出,在 Chrome 浏览器上,Control + Enter 组合键可以直接触发部分元素的点击事件。还有人建议浏览器原生支持 headingMaps 和 landmarks,通过键盘快捷键访问,提升语义化网页的导航体验。最后,有人提到,在 Firefox 搜索框中输入内容后,先按 Esc 键关闭搜索框,再按 Enter 键也能实现点击效果。


土合站:日本最诡异的车站?

这篇文章介绍了位于日本群马县和新泻县交界处的土合站,这个车站因其独特的结构和氛围而被认为是日本最诡异的车站之一。特别是前往新泻方向的站台,需要步行15分钟,下70米、近500级台阶才能到达深入新清水隧道的站台。

文章详细描述了前往北部站台的恐怖体验:光线昏暗,能听到附近河流的水声,让人感到不安。站台位于山洞深处,被称为“日本第一鼹鼠站”。虽然站台上有一个留言区,但墙上的匿名留言和照片更增添了诡异的气氛,让人联想到寂静岭。更令人毛骨悚然的是,这座车站位于被称为“死亡之山”的谷川岳附近,谷川岳因其危险的攀登而导致800多人丧生。

评论区对土合站的“诡异”程度有不同的看法。有人认为,真正让人觉得诡异的是需要爬很多楼梯,而不是灯光。有人觉得像巴黎的地铁站。也有人提到柏林有更可怕的车站,指的不是车站的外观,而是里面的人。还有人觉得这个车站有“后室”的氛围。有人认为照片加了绿色滤镜,使其看起来更恐怖。也有人觉得这里是《黑客帝国》尼奥大战史密斯的地方。也有人提到了位于本州和北海道之间的青函隧道中的两个已关闭的车站,认为它们可能更符合“诡异”的标准,因为它们位于海平面以下149米。总的来说,大家对土合站的“诡异”之处有不同的理解,有人侧重于其物理结构带来的不便和幽闭感,有人则更关注其历史背景和文化象征意义。


OAuth 协议详解:保障用户授权安全的 Illustrated Guide

本文深入浅出地讲解了 OAuth 协议,通过实际案例 YNAB 连接 Chase 银行账户,详细阐述了 OAuth 的工作原理,旨在帮助开发者和科技爱好者理解 OAuth 如何在保障用户安全的前提下,实现第三方应用的数据访问授权。

文章首先介绍了 OAuth 产生的背景,解决了传统用户名密码授权方式的安全隐患。OAuth 的核心在于使用 access token,它类似于特定用户的 API 密钥,允许应用在用户授权范围内代表用户执行操作或访问数据。文章通过 YNAB 连接 Chase 银行的例子,生动地展示了 OAuth 的流程:用户在 YNAB 上发起连接 Chase 的请求,YNAB 将用户重定向到 Chase 进行登录和授权,Chase 允许用户选择授权 YNAB 访问哪些账户,最后重定向回 YNAB。

文章强调了直接在 URL 中传递 access token 的风险,因为 URL 容易被泄露。OAuth 使用 authorization code 作为中间步骤,Chase 将 authorization code 通过 URL 传递给 YNAB,YNAB 再通过后端 HTTPS 请求,使用 authorization code 从 Chase 获取 access token,从而保证了 access token 的安全性。

文章还详细解释了 OAuth 中的关键术语:resource owner(资源所有者,即用户)、OAuth client(OAuth 客户端,即第三方应用)、authorization server(授权服务器,即用户登录的服务器)、resource server(资源服务器,即存储用户数据的服务器)和 scopes(授权范围,即用户允许应用访问的权限)。通过这些术语的解释,读者可以更清晰地理解 OAuth 的运作机制。总而言之,OAuth 通过用户授权流程和授权码交换流程,实现了安全可靠的第三方应用授权。


核电池的复兴:未来能源的长期解决方案?

本文探讨了核电池技术卷土重来的可能性,以及它在机器人、无人机、传感器、太阳能发电场、航天器和生物医学植入等领域的潜在应用。

核电池并非利用核裂变,而是通过捕获放射性同位素衰变时释放的辐射能量来发电。目前的研究主要集中在使用镍和氢的放射性同位素,通过半导体吸收辐射并将其转化为电能,或利用热电装置将辐射产生的热量转化为电能。与传统化学电池相比,核电池的主要优势在于其超长的寿命,可以持续数十年甚至数个世纪,并且在重量更轻的情况下提供更多的能量。

然而,核电池的商业化面临着成本、安全和许可等诸多挑战。文章提到,追踪和妥善处理废弃核电池也是一个重要问题。尽管如此,越来越多的公司和研究机构正在积极研发核电池技术,并在半导体和电化学方法上取得了进展,这为核电池的未来发展带来了希望。

核电池在深空探测任务中具有独特的优势,因为在远离太阳的地方,太阳能的效率会大大降低,而核电池可以提供长期可靠的电力。此外,核电池还可以为地球上偏远地区的设备供电,例如气象站和导航灯塔。尽管面临挑战,但核电池作为一种潜在的长期能源解决方案,值得我们持续关注和投入。


AI泡沫正在破裂?科技巨头开始紧张

本文讨论了人工智能领域是否正在经历泡沫破裂,以及科技巨头们对此可能产生的担忧。文章指出,AI的炒作可能已经过度,实际应用价值可能低于预期,导致投资者和企业重新评估其AI战略。

文章首先提到,AI领域曾经被过度炒作,许多公司纷纷涌入,希望从中获利。然而,随着时间的推移,人们逐渐意识到AI并非万能,其应用也存在诸多限制。例如,AI在处理复杂问题时仍然存在困难,需要大量的数据和计算资源,并且容易受到数据偏差的影响。

此外,文章还指出,一些科技巨头可能已经开始对AI的投资回报产生怀疑。尽管他们在AI领域投入了大量资金,但实际产生的效益可能并不显著。这导致他们开始重新评估其AI战略,并可能减少相关投资。

文章还探讨了AI泡沫破裂可能带来的影响。一方面,这可能会导致AI领域的投资减少,一些初创公司可能会倒闭。另一方面,这也可能促使企业更加理性地看待AI,更加注重实际应用和价值创造,从而推动AI技术的健康发展。

最后,文章暗示,科技巨头们应该对AI泡沫破裂保持警惕,并及时调整其战略,以应对可能出现的风险和挑战。他们需要更加注重AI的实际应用,并避免过度炒作,才能在AI领域取得长期的成功。

文章有5条评论,但内容缺失,无法进行总结和分析。


超低成本储能:用泥土储存太阳能,成本比电池低 1000 倍

本文介绍了一种名为 Standard Thermal 的创新储能方案,旨在利用廉价的太阳能光伏发电,实现全天候、全年候的能源供应,其成本可与美国的天然气竞争。

Standard Thermal 的核心技术是将太阳能转化为热能,并储存在大量的泥土中。 具体来说,在泥土堆中埋设电加热元件,将太阳能光伏阵列产生的电力转化为热能。管道穿过泥土堆,通过流体循环将热量输送给用户。 这种储能系统的资本成本极低,不包括太阳能光伏部分,仅为每千瓦时 0.1 美元,比电池便宜 1000 倍。

该方案特别适用于以下场景:

  • 拥有超过 300 千瓦的超大太阳能阵列,且有热需求的太阳能开发商,可以将夏季过剩的电力储存起来,用于冬季供热。
  • 被迫使用丙烷或燃料油的偏远能源用户,尤其是一年使用超过 5 万加仑丙烷的用户。
  • 高纬度地区的太阳能开发商,可以将夏季过剩的电力储存起来,用于冬季供热。
  • 改造燃煤电厂,利用储存的热能产生蒸汽,驱动涡轮机发电。

Standard Thermal 的目标是实现能源的超级富足,让每个人都能以低廉的价格获取能源。 该公司已经在俄克拉荷马州的 100 千瓦测试基地进行了原型设计,并计划在 2026 年初完成融资。

该方案的优势在于:

  • 成本极低,远低于电池储能。
  • 可扩展性强,只要有土地,就可以提供数百兆瓦的热需求。
  • 模块化设计,易于复制和粘贴,降低了开发成本和风险。
  • 适用于多种场景,包括偏远地区的能源供应、高纬度地区的季节性储能以及燃煤电厂的改造。

SmallJS:将 Smalltalk-80 编译为 JavaScript

SmallJS 是 Smalltalk-80 语言的一个开源实现,它可以编译成 JavaScript 代码,在现代浏览器或 Node.js 环境中运行。它采用文件而非镜像的方式,方便开发者在自己喜欢的 IDE 中进行开发,特别针对 Visual Studio Code 做了优化,支持语法高亮和单步调试。

SmallJS 的核心特点在于其完全面向对象的特性,允许开发者在各个层面进行定制。为了方便使用,Smalltalk 的类和方法名与 JavaScript 中对应的名称保持一致。它已经封装了许多 JavaScript 库,涵盖了浏览器端的 Document、Window、HTML 元素、事件、CSS、流,以及 Node.js 端的 HTTP 服务器、Express、数据库、文件、多线程等功能。项目还提供了示例,帮助开发者快速上手。

SmallJS 的目标用户是希望学习比 JavaScript 更优雅的语言,并用它来构建前后端应用的开发者。

评论区里,有用户提到了 SmallJS 和 Amber 这两个项目,并分享了使用 Pharo 的经验。还有人提到了 Amber 也是一个类似的项目。有人对网站上出现的罗马尼亚国旗感到好奇。总的来说,大家对 SmallJS 表现出了一定的兴趣。


使用 Git Annex 管理大型文件:同步、备份和归档你的数据

Git Annex 允许你使用 Git 管理大型文件,而无需将文件内容存储在 Git 中。它提供了同步、备份和归档数据的功能,支持离线和在线操作。通过校验和与加密技术,确保数据的安全可靠。

Git Annex 特别适合需要管理大量文件,例如音视频、数据集或者设计素材的开发者和用户。它将 Git 的强大功能和分布式特性引入到大型文件的管理中。Git Annex 适用于喜欢使用命令行的 Git 用户,同时提供了 Git Annex Assistant,将 Git Annex 转化为易于使用的文件夹同步工具,降低了使用门槛。

Git Annex 的核心优势在于其灵活的文件存储方式。文件内容可以存储在本地硬盘、USB 驱动器、云存储服务甚至离线存储介质上。Git Annex 会跟踪文件的位置,并在需要时提示用户。这对于需要长期归档数据,或者需要在多个设备之间同步大型文件的用户来说非常方便。

Git Annex 采用简单的存储库格式,确保即使在未来 Git Annex 不再流行,用户仍然可以访问自己的文件。它还支持多种特殊远程存储,例如 S3、WebDAV 等,方便用户将文件存储在云端。

Git Annex 的使用场景非常广泛。例如,档案管理员可以使用 Git Annex 管理大量的离线存储驱动器,游牧工作者可以使用 Git Annex 在笔记本电脑、USB 驱动器和云服务器之间同步文件。

评论区观点

评论区里,有用户分享了自己使用 Git Annex 管理所有数据的经验,强调了其自动跟踪文件位置、确保备份数量和校验和的功能。同时,也建议新手先创建一个测试仓库,按照教程进行尝试。

也有用户表达了对 Haskell 语言的依赖问题的担忧,认为其依赖数量庞大,可能与其他应用程序产生不兼容。不过,也有人指出 Git Annex 是由 Joey Hess 创建的,他还制作了 moreutils 和 etckeeper 等实用工具。

还有用户提到了 Git LFS,并质疑 Git Annex 的优势。有人指出 Git Annex 在某些情况下可能比 Git LFS 慢。另外,有用户提到之前使用 Git Annex 集成云存储服务进行备份时,遇到过不稳定和数据不一致的问题,希望了解这方面是否有所改进。


Adobe Reader 安装包大小的历史变迁

本文探讨了 Adobe Reader 安装包体积随时间推移的增长趋势,并将其与轻量级替代品 SumatraPDF 进行了对比。

文章指出,最新版本的 Adobe Reader 25.x.y.z 64 位 Windows 11 安装包大小已达到 687,230,424 字节。安装后,该程序包含 AI 功能、自动更新程序,以及大量 Acrobat 在线服务的广告,并提供新旧两种 GUI 界面。

为了进行对比,SumatraPDF-3.5.2 的安装包大小仅为 8,246,744 字节。它不包含 AI、自动更新程序(尽管可以检查新版本,但作者认为不必要)以及云存储广告。作者认为通过 scoop 安装 SumatraPDF 是更明智的选择。

文章通过图表展示了多年来 Adobe Reader 安装包大小的增长情况,并尽可能使用了 64 位版本的安装包数据。这种体积的膨胀引发了对软件臃肿和资源消耗的担忧。

作者通过对比鲜明的数据,暗示了在功能需求不高的场景下,轻量级 PDF 阅读器的优势。对于追求简洁高效的用户来说,SumatraPDF 这样的替代品无疑更具吸引力。

该文章也引发了人们对于软件开发方向的思考,是否应该在保证核心功能的同时,尽量减少不必要的附加功能,从而降低软件的体积和资源占用。


Agentic AI 浏览器安全性测试:点击、支付,然后失败

本文探讨了 Agentic AI 浏览器在自动化在线任务(如购物和处理电子邮件)方面的应用,以及由此产生的安全风险。研究表明,由于安全措施的缺失或不完善,AI 浏览器容易受到网络钓鱼、虚假商店和恶意提示的攻击,用户对此毫不知情,也无法进行干预。

研究人员构建并测试了三种场景:虚假的沃尔玛商店、真实的富国银行网络钓鱼网站,以及 PromptFix——一种利用虚假验证码隐藏提示注入,直接控制用户 AI Agent 的新型攻击方式。结果表明,攻击面比以往任何时候都更广,攻破一个 AI 模型可能意味着同时危及数百万用户。

Perplexity 的 Comet 是目前唯一一款公开可用的 AI 浏览器,它不仅可以总结或搜索,还可以自主浏览、点击链接和执行任务。因此,研究人员选择 Comet 作为主要测试对象,对其进行了安全测试。

首先,研究人员使用 Comet 访问了一个虚假的沃尔玛商店,并指示其购买 Apple Watch。Comet 立即接管了浏览标签,扫描网站 HTML,找到正确的按钮并导航页面。尽管网站存在许多表明其并非真正的沃尔玛的线索,但 Comet 忽略了这些线索,找到了 Apple Watch,将其添加到购物车,并在未经确认的情况下,自动填写了浏览器自动填充数据库中保存的地址和信用卡详细信息。几秒钟后,“购买”完成。

研究人员还测试了 Comet 处理网络钓鱼邮件的能力。他们伪造了一封来自“银行”的网络钓鱼邮件,其中包含指向真实网络钓鱼页面的链接。Comet 收到邮件后,立即将其标记为来自银行的待办事项,并在没有任何验证的情况下点击了链接。一旦虚假的富国银行登录页面加载,Comet 就将其视为合法的,并提示用户输入凭据,甚至帮助填写表格。

测试结果表明,Agentic AI 浏览器在安全方面存在严重缺陷,容易受到各种网络攻击。

由于文章中没有评论内容,这里跳过评论相关的输出。


挑战数学极限:忙碌的海狸猎手发现超越常规数字的庞大数字

本文讲述了“忙碌的海狸”问题,即寻找运行时间最长的简单计算机程序,以及最近在确定 BB(6) 下限方面取得的突破性进展,这个数字已经大到无法用标准数学符号写出。

文章解释了“忙碌的海狸”游戏的规则:对于给定的规则数量 n,找到运行时间最长的 n 规则图灵机。这个运行时间最长的机器被称为“忙碌的海狸”,其对应的步数就是忙碌的海狸数 BB(n)。虽然原则上可以通过列出所有可能的 n 规则图灵机并模拟运行来找到忙碌的海狸,但实际上,随着规则数量的增加,复杂性会迅速增加,需要巧妙的数学技巧来测量运行时间。

文章回顾了寻找 BB(6) 的历史,包括 Shawn Ligocki 和他的父亲 Terry 在劳伦斯伯克利国家实验室的工作,以及 Pavel Kropitz 作为本科生使用大学实验室的计算机网络所做的贡献。2022 年,Ligocki 再次利用新的计算资源打破了 Kropitz 的记录,引发了一系列快速的记录刷新。最近,一位神秘的贡献者在 Busy Beaver Challenge 中证明了 BB(6) 的一个新下限,这个下限比 2022 年的下限还要大得多,使得 BB(6) 变得“非常巨大”。

文章还提到了阿兰·图灵在 1936 年证明的停机问题,即不存在一种通用的程序来判断一个计算机程序是否会最终停止或永远运行。忙碌的海狸问题与停机问题密切相关,因为确定图灵机是否会停止是一个极其困难的问题。


《UNIX-HATERS Handbook》:一本幽默吐槽 Unix 系统的经典之作

这本书以幽默风趣的口吻,辛辣地讽刺了 Unix 系统的各种弊端,从用户体验到设计哲学,无一幸免。作者们以“UNIX-HATERS”自居,汇集了大量对 Unix 系统的吐槽和批评,内容涵盖了 Unix 的历史、设计缺陷、用户界面、文档、邮件系统等等。

书中首先从 Unix 的起源和发展入手,指出其设计理念上的问题,例如过于简洁的命令、不一致的接口、难以理解的错误信息等。这些问题导致用户在使用 Unix 时经常会遇到各种困惑和挫折。书中还吐槽了 Unix 的文档,认为其晦涩难懂,难以帮助用户解决实际问题。此外,书中还对 Unix 的邮件系统进行了批判,认为其复杂繁琐,难以使用。

这本书并非完全否定 Unix 的价值,而是以一种幽默的方式,促使人们反思 Unix 的设计理念,并思考如何改进操作系统,使其更加用户友好。尽管 Unix 在不断发展演变,但书中提出的许多问题仍然具有现实意义,值得我们深思。这本书也成为了程序员和技术爱好者们茶余饭后调侃 Unix 的经典素材。


如何通过降低速度来提高效率:抖动设计手册

本文探讨了在高并发场景下,如何通过引入延迟(jitter)来避免服务过载,从而提高系统的整体稳定性和效率。文章深入分析了同步请求带来的问题,并提出了一种基于可测量约束的抖动策略,旨在最小化过载风险和额外延迟。

文章首先解释了同步请求(Synchronized demand)的概念,即大量客户端几乎同时发起请求的情况。这种情况通常由缓存过期、定时任务、服务故障恢复等因素引起,可能导致请求量瞬间激增,超出系统处理能力,进而引发队列积压、超时和重试等问题。

为了应对同步请求带来的挑战,文章提出了一种基于抖动的解决方案。抖动的核心思想是在客户端引入随机延迟,将集中的请求分散到一段时间内,从而降低峰值负载。文章指出,均匀抖动(Uniform jitter)是一种有效的策略,因为它既能减少峰值,又能保证公平性,即每个客户端都承受相同的延迟分布。

文章还详细介绍了如何根据系统的具体约束条件来确定抖动的参数。这些约束条件包括系统容量、服务时间、重试策略等。文章强调,抖动参数的选择应该基于可测量的指标,而不是主观判断。

此外,文章还讨论了如何在预防和恢复阶段应用抖动策略。在预防阶段,可以通过随机化 TTL、分散定时任务、去同步化健康检查等方式来避免同步请求的产生。在恢复阶段,可以根据系统容量的变化动态调整抖动参数,以实现安全平稳的流量疏导。

最后,文章强调了验证的重要性。通过监控峰均比、尾部延迟、重试率等指标,可以评估抖动策略的效果,并及时进行调整。

评论区目前没有评论,所以无法进行观点总结。


深入理解色彩空间:数字世界的色彩奥秘

本文深入探讨了色彩空间的概念,解释了其在数字世界中的重要性,以及如何将人眼感知的复杂色彩映射到计算机可以理解和显示的格式。

文章首先解释了颜色的本质,即不同波长的光,以及人眼如何通过视杆细胞和视锥细胞感知颜色。三种视锥细胞分别对短波(蓝色)、中波(绿色)和长波(红色)的光敏感。由于人眼对不同波长的光敏感度不同,因此相同能量的不同波长光所感知的亮度也不同。文章还提到,光强度与亮度感知之间存在非线性关系,使得颜色在生物层面上就非常复杂。

随后,文章回顾了数字色彩的历史。早期计算机由于内存限制,采用索引颜色,使用颜色查找表(CLUT)存储颜色信息。随着硬件发展,出现了真彩色显示器,可以直接存储每个像素的RGB值。为了解决不同设备颜色还原能力不同的问题,国际色彩联盟(ICC)开发了色彩配置文件,用于描述设备的色彩能力,实现跨设备的色彩转换。微软和惠普联合开发的sRGB成为了Web和消费设备的事实标准。

文章详细解释了色彩空间的概念,将其定义为一种组织颜色的方式,使其可以被复制。色彩空间需要一个色彩模型(例如RGB、CMYK、LAB)和一个特定的范围(色域)。RGB色彩模型通过红、绿、蓝三原色的组合来表示颜色,而CMYK色彩模型则通过青、品红、黄、黑四种颜色的组合来表示颜色,主要用于印刷。LAB色彩模型则更接近人眼对颜色的感知,L表示亮度,A和B表示颜色对立维度。

色域是色彩空间可以表示的颜色范围。不同的色彩空间具有不同的色域,例如sRGB、Adobe RGB和P3。sRGB色域较小,适合Web和消费设备,而Adobe RGB和P3色域更大,可以表示更丰富的颜色,适合专业图像处理和视频编辑。文章还介绍了色彩配置文件(ICC Profile),用于描述设备的色彩特性,实现色彩管理和转换。通过色彩管理,可以确保在不同设备上颜色显示的一致性。

总而言之,色彩空间是一个复杂的概念,涉及到颜色感知、数字表示和设备还原等多个方面。理解色彩空间对于开发者和科技爱好者来说至关重要,可以帮助他们更好地处理图像、视频和用户界面中的颜色。


识别恶意爬虫:Tencent 的 "Thinkbot" 及其应对策略

本文讨论了如何识别和应对恶意网络爬虫,特别是名为 "Thinkbot" 的爬虫,以及其背后可能与 Tencent 相关的 IP 地址。作者分享了通过分析 User-Agent 字符串和 IP 地址来识别恶意爬虫,并采取封锁 IP 段的措施来减轻其影响。

文章指出,一个名为 "Thinkbot" 的爬虫,虽然声称如果带来麻烦可以封锁其 IP 地址,但实际上使用了大量的 IP 地址,并且这些 IP 地址都属于 Tencent。作者认为,这可能是 Tencent 为了降低 Great Firewall 的成本而采取的一种策略,即通过大量爬虫抓取内容,如果被封锁也没关系。

为了应对这种情况,作者手动添加了大量的 Tencent 的 IP 段到防火墙规则中,阻止了数十万个 IP 地址的访问。虽然这种方法可能并不彻底,但至少可以起到一定的缓解作用。作者也表达了对当前互联网环境的担忧,认为恶意爬虫泛滥,导致维护网站的成本增加。

评论区观点:关于爬虫和反爬虫的讨论

评论区主要围绕爬虫和反爬虫展开了讨论,观点各异。

  • 8organicbits 分享了自己编写友好爬虫的经验,即使严格遵守 robots.txt 协议、限制爬取速度、明确标识 User-Agent,仍然会遇到反爬虫机制,例如 robots.txt 下载缓慢。
  • bob1029 认为,除非爬虫活动严重影响网站性能,否则花费大量精力进行反爬虫是一种浪费。他建议通过优化网站性能来应对爬虫带来的负载,这也能提升用户体验。
  • firefoxd 提到自己因为发布了一篇关于 zip 炸弹的文章,导致博客被大量爬虫攻击,需要不断调整反爬虫策略。
  • boris 也遇到了类似的爬虫问题,并分享了一些应对策略,例如限制特定 URL 的带宽、禁用 Keep-Alive 连接等,但效果有限。他指出,大部分流量来自伪装成真实浏览器的爬虫,这些爬虫使用大量的 IP 地址,并且不发送 Referer URL。

英国政府或将利用 4chan 案例扩大网站屏蔽范围

英国政府可能以 4chan 为例,进一步扩大网站屏蔽范围,以执行其《在线安全法案》(OSA)。该法案声称旨在保护儿童,但因审查内容(从战区新闻到对法案本身的批评)而备受争议。

文章指出,OSA 对英国成年人访问某些网站提出了身份验证要求,并对允许儿童访问不适宜内容的网站处以巨额罚款。一些网站因此选择直接禁止英国访客。英国政府认为,批评 OSA 的人要么是想保护儿童,要么是与网络掠夺者为伍。这种二元对立的划分旨在压制异议。文章还提到,英国政府曾要求海外公司删除批评政府政策的帖子,并警告 VPN 用户,他们不验证身份的行为不利于保护儿童。

美国也在尝试引入海盗网站屏蔽,而英国则准备利用过去 15 年的经验,屏蔽未能履行 OSA 规定的常规网站。文章分析了 2012 年屏蔽海盗湾的案例,认为其成功之处在于:目标明确(海盗湾公然侵权)、过程单方面(海盗湾未参与诉讼),以及争议最小化。现在,Ofcom 需要说服公众,屏蔽非盗版网站同样有益。4chan 论坛可能成为一个理想的案例,因为它符合 Ofcom 的要求。


使用 Sping 诊断网络延迟:一款现代化的 HTTP/TCP 延迟监控工具

Sping 是一款现代化的终端 HTTP/TCP 延迟监控工具,它以实时可视化和丰富的终端 UI 为特色,可以帮助开发者诊断网络延迟问题。它提供了对 HTTP、HTTPS 和 TCP 协议的支持,并能细分 DNS、连接、TLS、请求和响应等阶段的耗时。

Sping 的主要特点包括:

  • 实时可视化: 通过交互式图表和实时统计信息在终端中展示延迟数据。
  • 阶段分解: 详细展示 DNS 解析、连接建立、TLS 握手、请求发送和响应接收等各个阶段的时间消耗。
  • 异常检测: 使用 MAD (Median Absolute Deviation) 算法自动检测延迟异常值。
  • 阈值告警: 可以设置警告和临界阈值,并在超出阈值时返回相应的退出代码。
  • DNS 控制: 支持 IPv4/IPv6 选择和 DNS 缓存。
  • 高级统计: 提供百分位数 (p50, p90, p95, p99) 和标准差等统计数据。
  • 多种输出格式: 支持交互式 UI、纯文本、JSON 和 JSON 导出。
  • 认证: 支持 Bearer tokens 和 basic auth 认证方式。
  • 丰富的终端 UI: 提供美观的图表、彩色日志和响应式布局。
  • 配色方案: 提供 8 种主题配色方案,包括 sunset, ocean, forest, volcano, galaxy, arctic, neon, monochrome。

安装 Sping 非常简单,只需要使用 pip 即可:

pip install service-ping-sping

Sping 提供了多种使用方式,例如:

  • 监控 HTTP 请求:sping google.com
  • 监控 TCP 连接:sping tcp://google.com:80
  • 使用自定义选项:sping https://api.example.com --interval 0.5 --count 20
  • 输出 JSON 格式数据:sping google.com --json --count 5
  • 设置告警阈值:sping example.com --warn 100 --crit 500 --percentiles
  • 选择配色方案:sping example.com --palette ocean

Sping 的异常检测功能基于中位数绝对偏差 (MAD) 分析,可以自动检测延迟峰值。它会计算最近 30 个成功请求的延迟中位数和 MAD,并将超过 6 倍 MAD 的延迟视为异常值。

总而言之,Sping 是一款功能强大且易于使用的网络延迟监控工具,可以帮助开发者快速定位和解决网络问题。其现代化的界面和丰富的功能使其成为开发和运维人员的得力助手。


中世纪饮用水的真相:打破“饮酒避水”的迷思

这篇文章旨在打破一个常见的误解:中世纪的人们为了避免饮用不干净的水而主要饮用啤酒或葡萄酒。作者通过历史资料和文献,论证了中世纪的人们实际上也经常饮用,并且认为干净的水是可以安全饮用的。

文章首先指出,许多学者未经考证就重复“中世纪人饮酒避水”的说法,但事实上,有大量证据表明中世纪的人们经常饮用清水。当时的文献中,人们对饮用水的描述很随意,并没有将其视为不健康的。相反,医生们虽然对饮用水有一些细致的看法,但并没有普遍反对饮用清水,也没有建议用酒精饮料来代替。

作者引用了 Paolo Squatriti 的研究,表明在意大利和高卢地区,人们在确认水质纯净(清澈、无异味、冰凉)后会饮用。此外,Stephen Harris 和 Bryon L. Grigsby 在《关于中世纪的误解》中也提到,饮用水的来源很多,如河流、雨水、融化的雪,而且人们经常用水来稀释葡萄酒。

文章还列举了许多中世纪的例子,例如 Fortunatus 提到 Radegund 饮用蜂蜜水,Gregory of Tours 描述人们在路边村庄寻找饮用水,甚至赞扬池塘水。圣徒传记中也经常出现圣人饮用清水的记载。13 世纪的医生 Arnaud de Villeneuve 认为水比酒更能解渴,14 世纪的 Maino De Mainer 认为酒和水是常用的饮料。

文章还提到,用面包和水来惩罚僧侣是很常见的做法,如果当时人们真的认为水会导致疾病,这种惩罚就显得非常残酷。这进一步说明,当时的人们并不认为饮用清水是不安全的。

最后,文章强调中世纪的人们能够区分好水和坏水。他们知道什么样的水是健康的,什么样的水应该避免饮用。即使是对于有杂质或异味的水,人们也会通过煮沸或与酒混合等方式来改善水质,使其可以饮用。

总而言之,这篇文章通过大量的历史证据,有力地驳斥了“中世纪人饮酒避水”的说法,还原了中世纪时期人们饮用清水的真实情况。



评论 0 条

暂无评论,来种下第一颗种子。