2026-05-18

21 篇热帖

At least 25 Flock cameras have been destroyed in five states since April 2025

关于美国 Flock 安全摄像头遭到破坏的总结 (Summary of the Destruction of Flock Safety Cameras in the United States)

TL;DR: 美国各地的人们正在破坏、砸碎和拆解 Flock 安全摄像头。自 2025 年 4 月以来,至少有 25 个摄像头在五个州被毁坏。弗吉尼亚州一名男子因系统性破坏 13 个摄像头面临 25 项刑事指控,他声称是为了维护第四修正案。随着公众对 Flock 与美国移民和海关执法局(ICE)的联系的记录证据的曝光,公众愤怒日益增长,一些城市正在隐藏摄像头位置。Reddit 论坛上几乎普遍支持这些破坏行为。 这就是一家价值 75 亿美元的监控公司无视公众反对时会发生的事情。

主要内容:

本文报道了在美国各地对 Flock 安全摄像头进行破坏活动的日益增长的现象。这些摄像头主要用于扫描车辆牌照,并被安装在约 6000 个美国社区。以下是一些关键点:

  • 破坏事件: 自 2025 年 4 月以来,至少在加利福尼亚州拉梅萨、俄勒冈州尤金和斯普林菲尔德、弗吉尼亚州苏福克、伊利诺伊州格林维尤和康涅狄格州利斯本等地发生了摄像头破坏事件。破坏方式包括砸碎、拆解和破坏摄像头支架。
  • 弗吉尼亚州事件及肇事者: 41 岁的 Jeffrey S. Sovern 在苏福克系统性地破坏了 13 个摄像头,并为他的法律辩护设置了 GoFundMe 页面,并明确表示他这样做是为了维护第四修正案的权利。
  • 公众愤怒的原因: 公众对 Flock 的愤怒源于该公司与 ICE 的联系。数据表明,当地和州警察通过 Flock 网络进行超过 4000 次与移民相关的搜索,包括明确标记为“ICE”、“ICE+ERO”和“ICE WARRANT”的搜索。 此外,一些执法机构直接与美国边境巡逻队共享 Flock 网络数据。
  • 城市和政府的反应: 许多城市,例如路易斯维尔,正在试图阻止公开摄像头位置,声称是为了保护公共安全。然而,一些城市在法律诉讼后被迫公开了摄像头位置。
  • Flock 的回应: Flock 公司 CEO Garrett Langley 曾声称大规模监控可以消除所有犯罪。Flock 公司官方声明表示他们尊重公众的担忧,并重视建立信任,但这些表态并未平息公众的愤怒。
  • 取消合同和政治风向: 46 个城市已经正式拒绝 Flock 摄像头,包括奥斯汀、尤金、山景城和圣克鲁兹。这表明政治风向正在发生转变。
  • 更大的意义: 这些破坏事件不仅仅针对 Flock 公司,更代表着对不受公众控制的监控基础设施的抵制,以及对数据被滥用于移民执法目的的担忧。

总结:

Flock 安全摄像头遭到破坏事件反映了公众对日益增长的监控以及其潜在滥用(尤其是与移民执法相关)的担忧。 随着越来越多的证据表明 Flock 网络被用于移民搜索,以及城市对公众意见的忽视,这种破坏行为可能会持续下去。 这表明,在技术发展与公民自由之间,需要进行更广泛的讨论和平衡。

Eric Schmidt speech about AI booed during graduation

亚利桑那大学毕业典礼上的争议:Eric Schmidt谈人工智能引学生抗议

主要内容:

前谷歌CEO Eric Schmidt 在亚利桑那大学的毕业典礼上发表讲话时,因谈论人工智能而多次遭到学生抗议和嘘声。此次演讲旨在探讨科技发展对社会的影响,并鼓励毕业生塑造未来。

演讲内容概要:

  • 回顾科技发展: Schmidt 以自身学生时代为起点,回顾了计算机的崛起(1982年《时代》杂志“年度人物”)、其演变为笔记本电脑和智能手机,以及互联网和社交媒体的普及。他指出,科技在连接人、普及知识、改善生活方面发挥了积极作用。
  • 科技的阴暗面: Schmidt 同时承认,科技发展也带来了负面影响,例如社交媒体平台放大了社会矛盾,鼓励愤怒情绪,粗化了人们的交流方式和待人接物的方式。
  • 人工智能的类比: Schmidt 将人工智能与计算机的变革性影响进行类比,此举立即引发了学生们的嘘声。
  • 理解学生担忧: Schmidt 表达了对学生们担忧的理解,承认他们对未来的恐惧,包括对人工智能的潜在威胁、就业机会减少、气候变化、政治分裂等问题。
  • 未来可塑性: Schmidt 强调未来并非已成定局,鼓励毕业生积极参与人工智能的发展,塑造未来的走向。
  • 价值观倡导: Schmidt 呼吁毕业生拥抱自由、开放辩论、平等,并鼓励与意见相左的人进行交流。他特别强调了移民对美国社会的贡献,呼吁保持美国对有抱负人才的吸引力。
  • 总结: Schmidt 祝贺毕业生,并鼓励他们塑造未来的世界。

学校回应:

亚利桑那大学发言人 Mitch Zak 表示,邀请 Schmidt 是因为他在科技、创新和科学领域的杰出领导力和全球贡献。 Schmidt 帮助谷歌成长为世界最具影响力的科技公司之一,并继续通过慈善和科学倡议推动研究和发现,包括支持亚利桑那大学重要工作的合作项目。

其他类似事件:

此前,房地产高管 Gloria Caulfield 在 UCF 大学毕业典礼上提及人工智能也遭到学生们的嘘声,显示出对人工智能的担忧在学生群体中普遍存在。

总结:

Eric Schmidt 在亚利桑那大学的毕业典礼上的演讲,引发了学生们对人工智能未来发展的担忧和抗议。 这反映了对科技发展潜在负面影响的日益增长的关注,以及对毕业生积极参与塑造未来社会的期望。

Show HN: Auto-identity-remove – Automated data broker opt-out runner for macOS

好的,这是对原文内容的摘要,中文呈现,且字数控制在800字以内:

Auto-Identity-Remove:自动数据经纪商退出工具

Auto-Identity-Remove 是一款跨平台的自动化工具,旨在帮助用户从超过500个数据经纪商网站和数据库中移除个人信息。该工具支持 macOS、Linux 和 Windows 操作系统,并能每月自动执行退出流程,包括自动解决验证码 (CAPTCHA)、跟踪退出状态,以及通过 iMessage 通知用户完成情况。

主要功能:

  • 每月自动运行: 自动搜索数据经纪商网站,查找用户个人信息。
  • 自动退出: 自动填写并提交退出表格。
  • 验证码处理: 利用 CapSolver 服务自动处理验证码(成本约为 $0.001/次)。
  • 状态跟踪: 记录已成功退出的经纪商,避免重复提交。
  • iMessage 通知: 完成退出流程后,通过 iMessage 发送结果摘要。
  • 手动操作提示: 对于需要手动操作的网站,会自动在浏览器中打开。

使用要求:

  • Node.js 18+
  • macOS、Linux 或 Windows 操作系统
  • 安装 Playwright 浏览器 (使用 npx playwright install chromium 命令)

快速上手:

  1. 克隆代码仓库:git clone https://github.com/stephenlthorn/auto-identity-remove.git
  2. 安装依赖:npm install
  3. 运行交互式设置脚本:node setup.js (创建 config.json 文件并配置每月自动运行任务)
  4. 手动运行:./run.sh

设置流程:

node setup.js 会引导用户输入以下信息:

  • 个人信息(姓名、城市、州、邮编、电子邮件、电话号码)
  • 别名(姓名变体)
  • CapSolver API 密钥
  • 需要登录的网站账号(存储在 config.json 中,并被 Git 忽略)
  • iMessage 手机号码
  • 每月自动运行任务的计划时间(默认在每月1日上午9点)

CapSolver (可选但推荐):

CapSolver 是一个 AI 驱动的验证码解决服务,可以自动处理一些数据经纪商网站上的验证码,避免需要手动干预。

文件结构:

  • setup.js: 交互式设置脚本和任务调度器
  • watcher.js: 主程序
  • brokers.js: 数据经纪商列表和退出策略
  • run.sh: 手动触发脚本
  • config.example.json: 配置文件模板 (复制并重命名为 config.json)
  • package.json: Node.js 项目配置文件
  • config.json: 个人信息配置文件 (被 Git 忽略)
  • state.json: 退出历史记录 (被 Git 忽略)
  • logs/: 运行日志 (被 Git 忽略)

状态跟踪:

state.json 文件跟踪每个经纪商上次成功退出的时间,默认的重新检查窗口为90天。

信心评估:

该工具覆盖了 500 多个数据经纪商,分为两类:

  • 显式经纪商 (42 个): 手动映射,经过测试验证。
  • 通用运行器 (~490 个): 采用启发式方法,尝试四种策略。

✅ Submitted 并不意味着数据已被完全删除,建议使用 node watcher.js --verify 命令进行验证。

未来发展:

  • California 将于 2025 年 8 月 1 日推出 Delete Registry,用户可以注册以自动移除数据。

总结:

Auto-Identity-Remove 是一款功能强大的工具,可以帮助用户自动从大量数据经纪商网站中移除个人信息,提高个人隐私保护水平。

Where Are the Vibecoded Photoshops?

总结:关于“vibecoding”的指控与真相

这篇文章主要批判了围绕着人工智能辅助创作(这里称之为“vibecoding”)出现的指控,以及这种指控背后隐藏的焦虑和误解。作者认为,这种指控缺乏实质依据,并且有害于创新和创作。

主要观点:

  • “vibecoding”的缺失: 尽管AI工具普及,且声称任何人都能通过提示词生成复杂作品,但实际中却几乎看不到真正意义上的“vibecoded”作品,例如“vibecoded”的Photoshop、Excel、编译器等。
  • 指控的本质: 指控“vibecoding”并非基于对作品的实际评估,而是基于对AI辅助创作的预设偏见,即认为AI使创作变得简单。这种指控本身就是未经验证的输出,与被指控者所指责的现象如出一辙。
  • 创作的层次: 作者将创作过程划分为三个层次:
    • Level 1: 编写代码,处理语法和细节。AI降低了这一层级的门槛。
    • Level 2: 验证和测试,确保代码的正确性和可靠性。
    • Level 3: 决定要构建什么,以及如何设计整体架构。 真正的门槛在于Level 2和Level 3,而AI并没有触及这些层面。
  • 焦虑的根源: 那些指责“vibecoding”的人,实际上是害怕自己赖以生存的技能被AI取代。他们将Level 1的技能视为自己的身份和价值,而AI降低了Level 1的门槛,威胁了他们的自我认同。
  • 作者的立场: 作者拒绝使用“vibecoding”这一指控,因为他深知这种指控对被指控者造成的伤害。他拥有丰富的创作经验,并且了解真正的创作门槛所在。
  • 透明与勇气: 作者选择公开表达自己的观点,并积极使用AI工具,而不是畏惧指控。他认为,应该鼓励创新和分享,而不是因为害怕被指责而退缩。

作者的例子:

  • SoulPlayer: 一个通过Python测试程序生成C64汇编和二进制代码的项目,拥有完善的验证体系。
  • AI音乐视频: 作者制作了十六个AI音乐视频,花费数周时间,并开发了自定义的推理工具链来获得最大的控制权。
  • demoscene背景: 作者的demoscene经验让他有能力轻易地指责其他人的作品是“vibecoded”,但他选择不这么做。

结论:

作者认为,“vibecoding”的指控是一种恐慌和焦虑的表现,它缺乏事实依据,并且阻碍了创新。真正的威胁并非AI本身,而是那些因害怕失去自身价值而试图攻击他人的心态。作者呼吁人们不要轻易使用这种指控,而是应该关注创作的真正价值和挑战。

Show HN: Files.md – Open-source alternative to Obsidian

Files.md: 一个简单的、本地优先的 Markdown 文件应用 (Files.md: A Simple, Local-First Markdown File Application)

Files.md 是一个简单应用,用于管理你的 .md 文件,强调隐私,数据不会发送到服务器。它旨在成为一个通用工具,用于存储各种信息,例如:

  • 笔记 (Notes)
  • 文档/项目 (Documents/Projects)
  • 日记/习惯 (Journal/Habits)
  • 清单/任务 (Checklists/Tasks)

核心理念: 你应该拥有你的文件和打开它们的软件。该项目由开发者 Zakirullin 历时 5 年打造,并接受 GitHub 赞助。

主要特点:

  • 本地优先 (Local-First): 文件存储在你的设备上,确保数据隐私。
  • 无安装 (No Installation): 仅需浏览器即可使用。
  • 离线工作 (Offline Support): 即使没有网络连接也能正常工作。
  • 简洁 (Simple): 仅包含必要功能,限制可以激发创造力。
  • 开源 (Open Source): 代码开源,易于理解和扩展。
  • LLM 友好 (LLM-Friendly): 代码结构便于 LLM 扩展和定制。
  • 可移植性 (Portable): 仅需打开 web/index.html 即可运行,无需构建系统。
  • 可选同步 (Optional Synchronization): 支持通过 iCloud/Dropbox/Google Drive 同步,或自托管服务器。
  • Telegram 机器人 (Telegram Bot): 提供移动设备访问文件的便捷方式。

使用方式:

设置 (Setup) 文件存储位置 (Location) 设备间同步 (Sync) 服务器需求 (Server) 适用场景 (Ideal for)
本地优先 (Local-First) 设备上的文件夹 (Device Folder) 否 (No) 无 (None) 最大化隐私,数据不离开设备
云文件夹同步 (Cloud Folder Sync) 现有云文件夹 (Cloud Folder) 是 (Yes) 无 (Cloud Provider) 无需运行服务器即可跨设备同步
自托管服务器 (Self-Hosted Server) 你的服务器 (Your Server) 是 (Yes) 一个 Go 二进制文件 (One Go Binary) 完全控制,设备间同步,可选 Telegram 机器人集成
托管 (Hosted) 托管服务器 (Managed Server) 是 (Yes) api.files.md 立即尝试,无需设置

使用方法:

  1. 在 Chrome 浏览器中打开 app.files.md
  2. 点击地址栏右侧的“Install files.md”。
  3. 打开一个本地文件夹以持久化更改。
  4. 偶尔刷新页面 (Cmd+Shift+R) 以获取更新。

核心思想:

该项目鼓励用户利用自己的大脑进行深度思考,而不是依赖复杂的模板或 AI 工作流程。 文件结构简单,每个文件包含一个想法,并通过链接连接相关想法,模拟大脑的思维方式。

其他功能:

  • 聊天功能 (Chat): 用于快速记录想法。
  • 各种脚本 (Useful Scripts): 用于处理 Markdown 文件,例如添加 Whoop 指标、转换 Wikilinks、插入反向链接等。
  • 详细的文档 (Documentation): 提供关于部署、自托管服务器、同步流程和集成测试的文档。

总结:

Files.md 是一款注重隐私、简洁易用的 Markdown 文件管理应用,强调本地优先和用户自主性。 它提供多种使用方式和同步选项,并鼓励用户利用自己的大脑进行深度思考,而不是过度依赖复杂的工具。

It is time to give up the dualism introduced by the debate on consciousness

意识的“难题”:罗维利的观点

本文总结了理论物理学家卡洛·罗维利对意识问题的观点,他认为当前围绕意识展开的争论反映了人类对自身形象的恐惧,类似于历史上对达尔文进化论的抵制。

历史背景与传统观念

罗维利指出,西方文明在中世纪将人类视为由身体和灵魂两个独立实体构成,灵魂被认为是与物质世界分离的、永恒的、承载记忆、情感和主观性的存在。现代意识辩论受到这种根深蒂固的观念的影响,而科学知识的进步试图更新这些观念。

对“意识难题”的质疑

罗维利批评了哲学家戴维·查尔莫斯提出的“硬问题”概念,即即使完全理解大脑的运作,也无法解释为什么大脑活动会伴随主观体验。他认为,查尔莫斯假设了“解释鸿沟”,即大脑过程与体验之间存在无法逾越的差距,但这种假设缺乏根据。罗维利质疑我们如何能在尚未理解的情况下,预知我们理解后的认知状态。

科学与体验的关系

他强调,科学并非对绝对客观世界的独立观察,而是对经验的集体组织。科学的视角是内在于世界的,我们的知识和理论是帮助我们理解世界的工具,而不是对现实的外部视角。 意识不是存在于大脑过程之外,而是这些过程本身,不同的视角会产生不同的描述,这并非神秘的“鸿沟”。

“哲学僵尸”的谬误

罗维利认为,查尔莫斯提出的“哲学僵尸”概念(外表和行为与人类完全相同,但没有主观体验)是一种修辞技巧,旨在区分行为和内体验。他指出,如果僵尸声称知道主观体验是什么,那么它就与人类无法区分;如果僵尸声称没有主观体验,那么它与人类的区别取决于预先假设的,即存在非物质的意识。

灵魂与自然

罗维利认为,我们拥有灵魂,有内在的自我,有情感和精神生活。这些体验并非附加于物理状态,而是从对物理状态的完整描述中得出的。他主张放弃意识辩论中引入的二元论,拥抱灵魂与自然一致的现实。

结论

罗维利最终认为,所谓的“意识难题”是虚构的,我们的精神生活可以与宇宙中的任何其他现象一样,遵循自然规律。他呼吁人们放弃对灵魂的二元论观念,认识到我们是自然界的一部分。科学的进步并非要否定灵魂的存在,而是要更深入地理解大脑和身体的运作机制,而无需假设灵魂是与自然分离的。

Meta deletes popular 1M follower account after Kuwaiti request

总结:关于 x.com 隐私扩展问题

这段内容提示用户在使用 x.com (推特) 时可能遇到的问题。

主要信息:

  • 问题: 用户在使用 x.com 时遇到了问题。
  • 可能原因: 某些与隐私相关的浏览器扩展程序可能导致此问题。
  • 解决方案: 建议用户禁用这些隐私扩展程序,然后再次尝试。

总结:

简而言之,如果在使用 x.com 时遇到问题,请尝试禁用你的浏览器中的隐私扩展程序,这可能是问题的根源。

GenCAD

GenCAD:图像条件下的CAD生成模型 摘要

GenCAD 是一种图像条件下的 CAD 生成模型,其主要创新在于不仅能生成 3D CAD 模型,还能生成完整的参数化 CAD 命令历史记录,即 CAD 程序。

问题背景: 传统的 AI 模型训练在处理复杂的 CAD 数据结构(如边界表示 B-rep)时面临挑战。为了便于数据获取,通常采用网格、体素或点云等表示方法,但这牺牲了 CAD 模型在工程任务、制造和设计空间探索中至关重要的精确性和可修改性。

GenCAD 的解决方案: GenCAD 提出了一种图像条件下的生成模型,能够生成参数化 CAD 命令序列(CAD 程序),并利用几何内核将其转换为 3D 实体模型。

模型架构: GenCAD 架构包含四个关键步骤:

  1. 自回归 Transformer 编码器: 用于学习 CAD 命令序列的潜在表示。
  2. 对比学习模型: 用于学习 CAD 命令序列和 CAD 图像潜在空间之间的联合表示。
  3. 潜在扩散模型: 根据 CAD 图像生成 CAD 命令序列的潜在表示。
  4. 解码器模型: 将 CAD 潜在表示转换为 CAD 命令序列。

核心优势: GenCAD 的核心优势在于它不仅生成 3D 实体模型,更重要的是生成了完整的 CAD 程序,从而实现更精确和可修改的 3D 建模,并有望提升自动化设计流程。该工作代表了 CAD 领域的一步进步。

Prolog Coding Horror

Prolog 编程的陷阱:避免 "恐怖"

本文旨在警醒 Prolog 程序员,避免一些常见的编程习惯,这些习惯虽然看似方便,却可能导致程序出现严重缺陷。文章强调了使用纯粹、单调的 Prolog 子集的重要性,以确保程序的正确性和可维护性。

主要问题与解决方案:

  1. 丢失解决方案 (Losing Solutions):

    • 问题: 使用 !/0, (->)/2var/1 等非纯粹、非单调的语言结构,可能导致程序未能找到所有正确的解决方案。
    • 解决方案: 使用 [clean](data#clean) 数据结构、[dif/2](concepts#builtins) 约束以及 [**if\_/3**](metapredicates#if%5F3) 等元谓词。
  2. 全局状态 (Global State):

    • 问题: 修改全局数据库(例如使用 assertz/1retract/1)会导致程序中隐藏的依赖关系,使得程序难以理解和维护。
    • 解决方案: 使用谓词参数或 semicontext notation 将状态信息传递给谓词。
  3. 不纯粹的输出 (Impure Output):

    • 问题: 直接在终端打印结果,而不是将结果作为 Prolog 术语返回,会降低可测试性,并限制代码作为关系的通用性。
    • 解决方案: 使用纯粹的 Prolog 代码描述解决方案,并让 Prolog 解释器负责打印。如果需要特殊格式,可以使用 [**format\_//2**](dcg#output) 等函数。
  4. 低层次语言结构 (Low-Level Language Constructs):

    • 问题: 坚持使用低层次的结构(如 (is)/2, (=:=)/2, (>)/2),会使 Prolog 难以教学、学习和理解,并且在教学过程中迫使学生同时学习声明式和操作式语义。
    • 解决方案: 采用约束代替低层次的算术操作,例如使用 [**declarative integer arithmetic**](clpfd)

“恐怖阶乘”示例:

文章用“恐怖阶乘”示例说明了上述问题。原始版本(包含!/0)在最通用的查询下会丢失解决方案,而另一个版本则会引发实例化错误。通过采用约束(#>#=),可以编写出更通用、更清晰的阶乘函数,并能找到所有解决方案。

结论:

文章建议程序员在适当的地方进行反叛,但要避免使用过时的特性。 关键在于使用声明式结构,使 Prolog 程序更具通用性,同时保持可接受的性能。 最终目标是编写纯粹、单调的 Prolog 代码,以避免上述“恐怖”问题。

WriteUp: 16 Bytes of x86 that turn Matrix rain into sound

16字节x86汇编探索算法密度:Sierpinski分形与声音 (16 Bytes of x86 Assembly Exploring Algorithmic Density: Sierpinski Fractal and Sound)

本文档描述了一段在2026年Outline Demoparty上发布的16字节x86实模式DOS汇编代码,展示了在极度限制条件下实现的技术挑战。这段代码利用计算机的视频内存进行计算,绘制无限的Sierpinski分形,同时将该几何图形解释为音频数据。

代码:

int 10h          ; 2 bytes
mov bh, 0xb8     ; 2 bytes
mov ds, bx       ; 2 bytes
L:
lodsb            ; 1 byte
sub si, byte 57  ; 3 bytes
xor [si], al     ; 2 bytes
out 61h, al      ; 2 bytes
jmp short L      ; 2 bytes

主要内容:

  1. 画布:预备的空白 (The Canvas: A Primed Void)

    • int 10h 初始化视频模式0,建立40x25文本模式网格。
    • mov ds, bx 将数据段(DS)指向0xB800,VGA/CGA文本缓冲区的物理地址。
    • BIOS在初始化屏幕时,并非填充绝对零值,而是将每个字符空间(字符和颜色属性)初始化为ASCII字节0x20(空格)和颜色字节0x07(灰白色背景)。
    • 统一的内存状态对于后续的算法计算至关重要,避免意外数据干扰。
  2. 引擎:加法前缀和 (The Engine: Additive Prefix Sums)

    • 代码模拟零状态,使用xor替代add,并每次向前移动16字节。
    • 在65536字节的实模式段中,每次移动16字节需要4096步才能遍历整个段。
    • 循环迭代过程中,每次将累加器AL的值加到内存单元,并将更新后的值读回累加器,形成运行前缀和。
    • 经过计算,最终单元格的值可以表示为:$$A^{(p)}[k] \equiv 2 \binom{k+p}{p-1} \pmod{256}$$
  3. 结晶:XOR与Sierpinski位移 (Crystallization: XOR and the Sierpinski Shift)

    • 使用xor替代add隔离了位平面,由于初始值是2 (二进制00000010),因此只有Bit 1受到影响,形成0x000x02之间的切换。
    • 这种切换与Stephen Wolfram的elementary cellular automaton的规则60完美匹配:$$Cell^{(p)}[k] = Cell^{(p-1)}[k] \oplus Cell^{(p)}[k-1]$$
  4. 机器的声音:将数据转换为音频 (The Voice of the Machine: Translating Data to Audio)

    • out 61h, al 指令将计算结果发送到PC扬声器。
    • 端口61h控制扬声器锥体,Bit 1控制其运动。
    • 分形算法仅隔离和切换Bit 1,因此Sierpinski三角形的几何结构直接指示扬声器锥体的运动。
    • CPU执行速度决定了采样率,生成的1和0序列直接生成不同脉宽和频率的方波。
  5. 56字节步长:八度变化和对角线剪切 (The 56-Byte Step: Octave Shifts and Diagonal Shears)

    • 代码使用-56字节的步长,而不是16字节。
    • -56字节的步长等价于向前移动24字节(在80字节网格上),即12列。
    • 循环需要8192步才能遍历所有地址,绕行7次,频率降低一个八度,音调更低更深。
    • 代码将混合数据字节(ASCII字符数据和音频信号)发送到系统端口61h,这种巧合允许视觉数据安全地作为音频信号,而不会导致硬件崩溃。
    • 步长导致分形以10个均匀间隔的垂直列呈现对角线结构。
Two EA-18 fighter jets collide at Mountain Home airshow, pilots ejected safely

山羊城空军基地发生海军飞机相撞事故,所有机组人员安全撤离

事件概要:

2026年(具体日期未明确)在爱达荷州山羊城空军基地举行的“空中卫士节”(Gunfighter Skies)航展期间,两架美国海军EA-18G“咆哮者”电子战机相撞坠毁。所幸,两架飞机上的四名机组人员均安全弹射逃生,目前正在接受医疗评估。

事故细节:

  • 涉事飞机: 两架隶属于华德岛海军航空电子战中队129的EA-18G“咆哮者”电子战机。
  • 事故发生时: 飞机正在进行航展表演。
  • 目击者描述: 一位目击者 Shane Ogden 拍摄到两架飞机相撞,随后一起螺旋坠落,弹射后机组人员安全降落。飞机坠落地面后爆炸成火球。
  • 天气情况: 当地国家气象局报告,事故发生时能见度良好,风速高达每小时29英里。
  • 伤亡情况: 所有机组人员安全逃生,基地内无人受伤。
  • 道路封闭: 爱达荷州运输部门因事故和调查,SH-167公路从Simco Rd到SH-67,靠近山羊城空军基地路段已封闭,预计将持续多天。

航展背景及安全记录:

  • “空中卫士节”航展: 旨在庆祝航空历史,展示现代军事能力。本届航展是自2018年以来的首次。
  • 往期事故:
    • 2018年航展期间,一名滑翔机飞行员坠亡。
    • 2003年,一架“雷鸣鸟”特技飞机在执行特技动作时坠毁,飞行员成功避开人群并弹射逃生。
  • 行业安全改进: 空中航展行业多年来一直在努力改进安全措施,美国每年举办约200场航展。
  • 近期安全记录: 2022年达拉斯航展发生两架古董军用飞机相撞,造成6人死亡。过去十年,美国航展的平均死亡人数接近每年一人,2024年和2025年没有发生死亡事故。

官方回应:

  • 366战斗机中队指挥官David Gunter上校: 表示感谢所有参与人员的安全,赞扬了应急响应团队的专业精神,并感谢观众的耐心和支持。
  • 银翼爱达荷(Silver Wings of Idaho): 表达了对事件的难过和对所有机组人员安全的感激之情,并感谢所有应急人员的迅速反应和专业表现。强调安全始终是首要任务。

总结:

本次事故虽然令人遗憾,但所有机组人员均安全逃生,突显了应急响应机制的有效性以及近年来航展行业在安全方面的努力。 事故原因正在调查中,SH-167公路将暂时封闭。

EU weighs restricting use of US cloud platforms to process government data

欧盟考虑限制成员国使用美国云平台处理敏感政府数据

以下是对原文的总结:

欧盟正在考虑制定规则,限制其成员国政府使用美国云服务提供商处理敏感数据。据CNBC消息,知情人士透露,欧盟正在就此问题进行讨论。

主要要点:

  • 限制目标: 欧盟计划限制成员国政府使用美国云服务处理敏感数据。
  • 背景原因: 文章作者认为,鉴于美国国内政治局势以及美国对欧洲的态度,依赖美国云基础设施是一种“愚蠢且自败自乱”的想法。作者提到,美国民众对欧洲持有负面情绪,并且这种情绪在过去几年中难以改变。
  • 成员国依赖: 许多成员国已经对谷歌、微软和亚马逊等美国云服务产生了依赖,这使得减少对美国服务的依赖变得困难。
  • 荷兰案例: 文章作者以其家乡荷兰为例,指出该国最近批准了一家政府身份服务公司及其相关个人数据被出售给美国公司,尽管荷兰议会的多数议员反对。
  • 可能的实施方式: 文章建议欧盟直接立法,禁止将敏感数据交给美国公司。
  • 未来展望: 作者预见到,由于主要成员国的压力,任何拟议的限制措施可能会被大幅削弱。

总而言之,欧盟正在考虑一项措施,以应对对美国云服务提供商的依赖,并保护敏感政府数据,但实施过程中可能面临成员国之间的阻力。

Multiple commencement speakers booed for AI comments during graduation speeches

2026年5月17-18日新闻摘要

以下是对新闻内容的总结:

主要新闻事件:

  • Kars4Kids广告问题: 加利福尼亚州要求Kars4Kids停止投放广告,原因是其广告宣传可能误导了捐赠者。
  • 圣地亚哥伊斯兰中心枪击案: 圣地亚哥发生一起针对伊斯兰中心的致命枪击事件。
  • 空中表演灾难: 新视频显示了空中表演灾难的惊险瞬间。
  • 埃博拉疫情: 一名美国人在非洲埃博拉疫情爆发中检测出埃博拉病毒,疫情正在蔓延。
  • Luigi Mangione州审判: 法官正在裁决关键证据是否可以在Luigi Mangione的州审判中使用。
  • 少年篮球进球: 一名六年级学生在同学面前投篮得分,创造了鼓舞人心的时刻。
  • 死囚犯案件: 一名死囚犯正在为推翻其定罪而战,理由是催眠证人的证词存在问题。
  • 意外友谊: 一通拨错的电话意外地促成了一段不太可能的友谊。
  • 爱达荷州空军基地空中相撞: 在爱达荷州空军基地举办的航展上发生空中相撞事件,导致基地封锁。
  • 恶劣天气: 数百万人在警戒中,预计会出现危险的恶劣天气。
  • 世界卫生组织(WHO)声明: 世界卫生组织宣布埃博拉疫情为全球健康紧急事件。
  • 华盛顿祈祷集会: 数千人参加了华盛顿的祈祷集会。
  • 特朗普的政治行动: 特朗普总统在期中选举前夕针对政治对手发起了攻击。
  • 缅因州磨坊爆炸: 缅因州一家木材厂发生大规模伤亡爆炸事件。
  • 对北京的思考: 反思了在北京举行的备受瞩目的会议。
  • 中国年轻人的观点: 采访了中国年轻人的对美国的看法。
  • 特朗普的中国之行: 报道了特朗普总统在华盛顿的高风险峰会。
  • 美国寻求起诉古巴: 美国寻求起诉古巴前领导人劳尔·卡斯特罗。
  • 涉嫌恐怖主义的嫌疑人被捕: 一名与伊朗有关联的嫌疑人被指控策划针对美国犹太社区的恐怖袭击。

总而言之,新闻内容涵盖了国内外多个重要事件,涉及法律、健康、政治、社会和突发事件等多个领域。

VoIP brings back old-fashioned pay phones to rural Vermont (2025)

总结:佛蒙特工程师复兴公共电话亭,赋予其现代意义

本文讲述了佛蒙特州工程师帕特里克·施洛特 (Patrick Schlott) 如何利用旧的公共电话亭,并赋予其现代功能的故事。施洛特,一名在 Beta Technologies 公司工作的工程师,受 Futel 和 PhilTel 等免费电话项目的启发,在佛蒙特州安装了六个以上的免费公共电话亭。

主要内容:

  • 复兴公共电话亭: 施洛特通过修复和安装旧公共电话亭,旨在为那些没有手机或在某些地区没有手机信号的人提供便利。
  • 技术原理: 这些电话亭通过简单的 VoIP 网关连接到互联网,用户可以拨打美国和加拿大的任何电话,无需付费。施洛特使用 ATA (Analog Telephone Adapter) 将 VoIP 电话线连接到电话亭。
  • 安装地点: 电话亭主要安装在图书馆、学校和市政厅等公共场所,满足了学校禁用手机后学生的需求,并为那些手机欠佳或没有手机信号的地区提供通讯支持。
  • 功能扩展: 除了拨打电话,施洛特还在电话亭中添加了一些特殊功能,例如拨打 0 号时,他的手机会接听,拨打 211 可连接到佛蒙特州联合道路,拨打 988 可连接到自杀热线,并确保在紧急情况下可以传递正确的 E911 地址。
  • 资金来源: 施洛特的项目主要通过捐款和个人资金支持。
  • 怀旧价值: 施洛特保留了电话亭的硬币机制,供那些熟悉“红盒”和“电话黑客”等概念的人探索和体验。
  • 未来计划: 施洛特计划在未来增加硬币功能,纯粹为了娱乐。
  • 逆向工程: 在修复过程中,施洛特经常需要进行逆向工程,以解决电路图差异和解锁电话亭等问题。

总而言之,施洛特的项目不仅复兴了过时的技术,还为社区提供了有价值的公共服务,并为技术爱好者提供了探索和学习的机会。

AI eats the world (Spring 26) [pdf]

2026-Spring-AI.pdf 文件摘要

这份 PDF 文件名为 "2026 Spring Final",创建日期和修改日期均为 2026 年 5 月 18 日 11:12:35Z。该文件使用 macOS Version 26.5 (Build 25F71) Quartz PDFContext 创建,并使用 Keynote 作为创建者。

文件格式和结构:

  • PDF 版本: PDFFormatVersion=1.4
  • 线性化: IsLinearized=false (表明文件未进行线性化处理)。
  • 表单: IsAcroFormPresent=false (表明文件中没有交互式表单)。
  • XFA: IsXFAPresent=false (表明文件中没有使用 XFA 格式)。
  • 集合: IsCollectionPresent=false (表明文件不是 PDF 集合的一部分)。
  • 签名: IsSignaturesPresent=false (表明文件中没有数字签名)。
  • 页数: 文件包含 79 页。

其他信息:

  • 生成器: Producer=macOS Version 26.5 (Build 25F71) Quartz PDFContext
  • 创建者: Creator=Keynote
  • 标题: Title=2026 Spring Final

重要说明:

由于文件中没有提供任何内容,因此无法对文档的内容进行总结。以上只是对 PDF 文件元数据和基本结构进行的描述。

Linux security mailing list 'almost unmanageable'

Linux 内核安全邮件列表因 AI 报告重复而“几乎完全无法管理”

摘要:

Linux 内核维护者 Linus Torvalds 近期公开表示,由于多位研究人员使用人工智能 (AI) 工具发现漏洞并向内核安全邮件列表报告,导致列表变得“几乎完全无法管理”。重复报告是主要问题,造成了大量无意义的讨论和工作。

主要要点:

  • 重复报告问题: 多个研究人员使用相同工具发现相同的漏洞,导致大量重复的报告涌入安全邮件列表。
  • 低效沟通: 维护者花费大量时间转发报告或告知报告已修复,造成“完全无意义的讨论”。
  • AI 报告的公开性: Torvalds 认为 AI 检测到的漏洞通常不是机密信息,在私有列表中处理这些报告是浪费时间,并加剧了重复问题。
  • 建议的使用方式: Torvalds 建议合理使用 AI 工具,鼓励研究人员在 AI 发现的基础上,提交补丁并提供有价值的贡献,避免仅仅发送未经深入理解的报告。他强调了在 AI 发现的基础上,贡献实际价值的重要性。
  • 对比观点: 与此同时,另一位内核维护者 Greg Kroah-Hartman 近期表示,AI 已经成为自由开源软件 (FOSS) 社区中越来越有用的工具。

总结:

Torvalds 对 AI 报告的观点并非反对其使用,而是强调了合理使用 AI 工具的重要性,以避免不必要的重复和无效工作,并鼓励研究人员提供有价值的贡献,从而提升 Linux 内核的安全性和开发效率。

Most Americans don't trust AI – or the people in charge of it (2025)

人工智能:专家乐观,公众担忧 - 一份皮尤研究中心报告解读

这份皮尤研究中心最新报告揭示了人工智能领域专家与美国公众对人工智能的看法存在显著分歧。

核心发现:

  • 乐观差距: 约四分之三的人工智能专家认为人工智能将对他们个人有益处,而只有四分之一的美国公众持相同观点。 专家普遍认为人工智能将改善工作,公众则担心人工智能会取代他们的工作岗位。
  • 信任缺失: 无论是专家还是公众,都希望对人工智能的使用拥有更多控制权,并且对政府和私营企业负责任地监管人工智能表示不信任。
  • 政府监管困境: 报告指出美国政府在技术监管方面的表现不佳,国会常常举行缺乏实质性的听证会,显示出对互联网的理解不足。
  • 公众无力感: 大多数美国人认为他们对人工智能驱动的未来没有发言权。
  • 性别差异: 男性人工智能专家比女性更倾向于表达对人工智能的乐观和兴奋。同时,专家和公众都认为人工智能的设计更多地反映了白人男性的视角,而非女性和黑人或西班牙裔社区的视角。
  • Z 世代的复杂态度: 一项盖洛普和沃尔顿家族基金会联合发布的报告显示,Z 世代高度参与人工智能工具(如ChatGPT和Copilot)的使用,其中近一半的人每周使用一次。 然而,Z 世代对人工智能的总体态度是焦虑(41%)而非兴奋(36%),仅有27%的人感到充满希望。他们担心人工智能会损害他们的批判性思维能力,并且对人工智能的产出与人类产出一样值得信任表示怀疑。
  • 机构政策的缺失: 大多数 Z 世代学生表示他们的学校缺乏明确的人工智能政策,超过一半的 Z 世代职场人士也表示他们的雇主缺乏相关政策。 然而,研究表明,当机构制定明确的人工智能规则时,年轻人更倾向于使用这些工具、信任它们,并为未来做好准备。

总结:

总而言之,人工智能技术正在快速发展,但公众的信任度却滞后。虽然系统变得越来越智能,但人们的怀疑情绪仍然存在,尤其是在那些需要与人工智能共存最久的人群中。 Z 世代的经验表明,机构制定清晰的政策和规则对于建立信任和促进人工智能的积极应用至关重要。


人工智能:专家乐观,公众担忧 - 皮尤研究中心报告解读 (中文)

这份皮尤研究中心最新报告揭示了人工智能领域专家与美国公众对人工智能的看法存在显著分歧。

核心发现:

  • 乐观差距: 约四分之三的人工智能专家认为人工智能将对他们个人有益处,而只有四分之一的美国公众持相同观点。 专家普遍认为人工智能将改善工作,公众则担心人工智能会取代他们的工作岗位。
  • 信任缺失: 无论是专家还是公众,都希望对人工智能的使用拥有更多控制权,并且对政府和私营企业负责任地监管人工智能表示不信任。
  • 政府监管困境: 报告指出美国政府在技术监管方面的表现不佳,国会常常举行缺乏实质性的听证会,显示出对互联网的理解不足。
  • 公众无力感: 大多数美国人认为他们对人工智能驱动的未来没有发言权。
  • 性别差异: 男性人工智能专家比女性更倾向于表达对人工智能的乐观和兴奋。同时,专家和公众都认为人工智能的设计更多地反映了白人男性的视角,而非女性和黑人或西班牙裔社区的视角。
  • Z 世代的复杂态度: 一项盖洛普和沃尔顿家族基金会联合发布的报告显示,Z 世代高度参与人工智能工具(如ChatGPT和Copilot)的使用,其中近一半的人每周使用一次。 然而,Z 世代对人工智能的总体态度是焦虑(41%)而非兴奋(36%),仅有27%的人感到充满希望。他们担心人工智能会损害他们的批判性思维能力,并且对人工智能的产出与人类产出一样值得信任表示怀疑。
  • 机构政策的缺失: 大多数 Z 世代学生表示他们的学校缺乏明确的人工智能政策,超过一半的 Z 世代职场人士也表示他们的雇主缺乏相关政策。 然而,研究表明,当机构制定明确的人工智能规则时,年轻人更倾向于使用这些工具、信任它们,并为未来做好准备。

总结:

总而言之

Mistral's CEO: Europe has 2 years to stop becoming America's AI 'vassal state'

欧洲人工智能发展面临“两限”:避免依赖美国需加速行动

核心观点: Mistral AI 公司的 CEO Arthur Mensch 警告称,欧洲在未来两年内必须大力发展自身的人工智能基础设施,否则将面临永久性地依赖美国科技巨头的风险。

主要内容:

  • 时间紧迫: Mensch 在法国国民议会的听证会上表示,欧洲避免人工智能依赖美国的时间窗口非常狭窄,仅剩两年。
  • 关键要素: 人工智能领域的竞争将集中在芯片、能源和算力供应的控制上。欧洲若未能掌握这些关键要素,可能沦为美国人工智能领域的“附庸国”。
  • 欧洲的行动: Mensch 强调,Mistral AI 致力于采用开源策略,以确保欧洲能够独立控制人工智能系统,并与美国科技巨头竞争。公司已与法国国家存款银行集团建立合作关系,旨在加强欧洲的“数字主权”,并发展生成式人工智能和 GPU 算力基础设施。
  • 美国优势: Mensch 指出,美国公司正在积极抢占资源,预计明年将投入高达万亿美元用于人工智能相关领域。欧洲若行动迟缓,将难以追赶。
  • 基础设施建设: Mistral AI 计划到 2029 年建设 1 吉瓦的人工智能算力,但他认为欧洲需要更大的基础设施投资。
  • 监管与市场挑战: Mensch 批评了欧洲碎片化的监管和资本市场,认为这些因素阻碍了欧洲初创企业的发展。
  • 自主权的重要性: Mensch 认为,如果欧洲依赖美国进口数字服务,将失去与美国进行谈判和施加影响的筹码。

总结:

Mensch 的警告突显了欧洲在人工智能领域面临的紧迫挑战。欧洲必须加快发展自身的人工智能基础设施,否则将面临永久性地依赖美国科技巨头的风险,并可能丧失数字主权。

'We mould trees to grow into the shape of chairs'

Full Grown:用耐心和时间塑造树木的艺术 (Full Grown: The Art of Shaping Trees with Patience and Time)

Full Grown 是一家位于英国德比郡的公司,致力于将活树生长成家具和照明设备。该项目创始人 Gavin 和 Alice 已经从事这项工作二十余年,并预计这可能是一个长达 50 到 100 年的旅程。

项目起源与灵感:

Gavin 的灵感可以追溯到童年时期,他看到一棵茂盛的盆景树,形状酷似一把椅子。 后来,他因患有罕见的先天性疾病 Klippel-Feil 综合征(颈椎异常融合)接受了多次手术,这段在医院的经历让他有时间反思和学习耐心,这也为他的项目奠定了基础。 朋友后来指出,他通过这个项目所经历的塑造过程,与他自身的经历有异曲同工之妙。

发展历程:

  • 早期探索 (美国): Gavin 在离开 Chesterfield College 后,在美国加利福尼亚州从事家具制作,他通过缝合漂流木的方式,意识到树木可以被塑造成有用的形状。
  • Full Grown 的成立 (2006): Gavin 和 Alice 在 2006 年在德比郡创立了 Full Grown 公司。两人从小相识,在分别出国后成为了伴侣,并共同踏上了这条道路。 Gavin 负责设计,Alice 负责沟通。
  • 漫长的学习过程: 两人坦言,他们当时并没有预料到这项工作的复杂程度,需要经过多年的学习和实践才能掌握技术。 Gavin 最初预计学习周期为 2-3 年,但实际上需要 12-13 年。
  • 第一代产品 (2012): 经过大量的尝试和错误,以及持续的耐心,Full Grown 在 2012 年推出了第一代椅子、台灯和其他实验作品。

核心理念与当前状态:

Full Grown 的核心理念是“在与世界进行最微妙的互动中创造有用的、美丽的物体”。目前,公司在果园中种植了数十件活着的作品,包括凳子、长椅,以及一些正在制作中的吊灯。他们使用的树种包括柳树、橡树和灰树等。

总结:

Full Grown 的项目体现了对自然和时间的尊重,通过耐心和精湛的技术,将活树塑造成独特的家具和照明产品,展示了一种可持续、富有创意的设计理念。

The History of ThinkPad: From IBM’s Bento Box to Lenovo’s AI Workstations

联想ThinkPad:持续传承的商业笔记本传奇 (Lenovo ThinkPad: A Continuing Legacy of Business Laptops)

TL;DR: 自1992年10月起,ThinkPad系列笔记本电脑一直持续生产,经历了IBM(1992-2005)和联想(2005至今)两个所有者。它是市场上持续时间最长的商业笔记本电脑系列之一,并且从1992年的700C到2026年的P14s Gen 6,在视觉设计上保持了惊人的连续性。 尽管IBM在2005年将ThinkPad品牌出售给联想,但IBM的工程和设计理念得以延续,并促使联想在2010年售出了超过6000万台ThinkPad电脑。 如今,ThinkPad依然具有存在的价值:2026年,搭载96GB DDR5内存、AMD处理器、Copilot+ NPU和TrackPoint按钮的14英寸P14s Gen 6,依然能够在商务机身中运行700亿参数的大型语言模型。

为什么ThinkPad依然重要

作者自2001年2月起就一直使用ThinkPad,从最初的二手1995年701c开始,已经使用了近25年。ThinkPad品牌一直是作者的日常工作工具。

ThinkPad的持续生产历史可以追溯到1992年,经历了IBM和联想两个所有者的更迭。以下表格总结了ThinkPad发展历程中的关键时期和型号:

时代 年份 关键型号
IBM经典时代 1992-2000 700C, 701c, 600, 770
IBM后期时代 2000-2005 T20, T40, T43p, X20, X41 Tablet
联想过渡时代 2005-2010 T60, T61, X300, W500 (2008)
联想成熟时代 2010-2018 X220, X1 (2011), X230, T430, X1 Carbon Gen 1, T440s, P50
现代时代 2018-2024 T490, T14 Gen 1-4, X1 Carbon Gen 6-11, X1 Nano
AI工作站时代 2024-2026 T14 Gen 5-7, P14s Gen 6, X1 Carbon Gen 12-14

ThinkPad的独特之处在于,它不仅仅是一个产品线,而是一种贯穿整个产品线的设计语言。 标志性的黑色楔形外观、红色的TrackPoint、舒适的键盘、强大的企业级安全功能以及兼容不同CPU架构的扩展坞,都源于这一设计理念。

诞生之谜 (1992)

1992年10月5日,IBM推出了ThinkPad 300、700和700C系列笔记本电脑。其中,700C是旗舰型号,配备了10.4英寸的主动矩阵彩色TFT屏幕、黑色外壳和键盘中心的TrackPoint II。 700C的最初版本采用了“IBM Magenta”红色TrackPoint帽,后来才采用了更深红色的版本。

1992年11月在Comdex秋季展会上,700C系列首次公开亮相。根据_InfoWorld_的评论,彩色显示屏是700C的主要亮点。 IBM将700C的价格定在美国$4,350左右。

十二个关键ThinkPad型号 (1992-2025)

年份 型号 重要性 改变 ThinkPad的延续
1992 700C 起源。第一个翻盖笔记本电脑。黑色外壳和主动矩阵彩色TFT。 笔记本电脑显示技术的成本降低。 基础。
1995 701c 蝴蝶键盘。MoMA收藏品。 外形因素实验的顶峰;屏幕尺寸增大。 TrackPoint,黑色
The occasional ECONNRESET

博客文章总结:TCP 连接重置 (ECONNRESET) 问题排查

本文档记录了作者在排查一个由两个服务组成的系统中的 TCP 连接重置 (ECONNRESET) 问题经历。问题表现为:一个服务作为客户端连接到另一个服务提供的监听套接字,但在读取数据时,客户端服务偶尔会收到 ECONNRESET 错误,但日志中没有其他错误信息。

问题复现与分析:

作者创建了一个简单的服务端和客户端程序来复现问题。服务端监听本地端口,接收连接后,将 60 万个 x 字节的数据发送给客户端。客户端连接到服务端,并尝试接收数据。通过使用 --spam 标志,客户端在接收数据之前先发送少量数据,可以触发 ECONNRESET 错误。

使用 tcpdump 工具观察网络流量,证实了服务端确实发送了 TCP RST 数据包。通过 strace 工具追踪服务端和客户端进程的系统调用,发现服务端在发送数据后就退出,且 sendto 调用成功,没有崩溃。

初步假设与验证:

作者的初步假设是,服务端在 close 调用之前,套接字上存在未读取的 pending 数据,导致发送 RST。为了验证这个假设,作者在服务端 close 调用前添加了 sleep(1) 延迟,发现可以清晰地观察到 RST 的发送时间延迟。

实际场景:

问题出现在生产环境中,由 gunicorn (运行 Flask 应用) 和 nginx (反向代理) 组成。nginx 将 HTTP 请求传递给 gunicorn,但有时只传递了 HTTP 请求头,而没有体。gunicorn 默认情况下,如果应用程序不访问请求体,则不会读取它。gunicorn 在发送响应后关闭套接字,如果请求体未被读取,则会触发 RST。

解决方案:

作者通过在 Flask 应用中添加一些代码,强制读取 HTTP 请求体,解决了 ECONNRESET 问题。

后续步骤:

  • 验证 close 调用是 RST 的根本原因,并查找相关 RFC 文档。
  • 确定 gunicorn、flask 或应用程序本身是问题的根源,并上报给相关项目。
  • 考虑潜在的 DoS 风险,并使用 nginx 的 client_max_body_size 参数进行限制。

总结:

本文档详细记录了作者排查 TCP 连接重置问题的过程,并通过简单示例、网络抓包和系统调用追踪等方法,最终找到了问题的根源并提供了解决方案。 问题的本质是服务端在关闭连接前没有完全读取客户端发送的所有数据,导致客户端收到 RST。