2025-06-10

43 篇热帖

2. Magistral — the first reasoning model by Mistral AI (mistral.ai)

The most powerful AI platform for enterprises. Customize, fine-tune, and deploy AI assistants, autonomous agents, and multimodal AI with open models.

3. Apple announces Foundation Models and Containerization frameworks, etc (www.apple.com)

苹果发布“液态玻璃”设计及Foundation Models框架等新技术

2025年6月9日,加利福尼亚州,库比蒂诺 — 苹果公司今日宣布了为其开发者工具带来的一系列新技术与增强功能,旨在帮助开发者跨Apple平台打造更精美、更智能且更具吸引力的应用体验。

核心更新要点如下:

  1. 全新“液态玻璃”软件设计:全新的软件设计风格将更专注于内容,并为iOS 26、iPadOS 26、macOS Tahoe 26、watchOS 26和tvOS 26带来更富表现力和愉悦感的体验,同时保持操作的熟悉感。

  2. Foundation Models框架:该框架加入了现有的工具套件,允许开发者直接利用设备端智能来构建应用功能。

  3. Xcode 26集成大语言模型:Xcode 26将利用如ChatGPT等大语言模型,使开发者能够使用Xcode的“Coding Tools”及其他智能功能。需注意,ChatGPT的使用受其自身数据政策约束。

  4. 丰富的开发者API生态:这些新技术加入了苹果不断扩充的开发者工具和技术集合。目前,苹果提供了超过25万个API,帮助开发者将应用与Apple的软硬件功能集成,涵盖机器学习、增强现实、健康与健身、空间计算及高性能图形等多个领域。随着每个平台发布,苹果都会扩展和优化这些技术。

  5. Apple Intelligence设备与语言支持:文章所提及的Apple Intelligence功能需要特定的硬件支持,包括iPhone 16全系、iPhone 15 Pro/Pro Max、iPad mini (A17 Pro) 以及搭载M1及更新芯片的iPad和Mac设备,并需开启该功能,且Siri和设备语言需设置为同一支持的语言(包括英语、法语、德语、意大利语、葡萄牙语(巴西)、西班牙语、日语、韩语或简体中文)。更多语言支持(包括丹麦语、荷兰语、挪威语等)预计于年底前推出。

其他说明

  • 功能特性可能发生变动。
  • 部分功能可能因语言、地区或当地法律法规的限制而无法使用。
  • 本文提及的特性适用于Apple TV 4K(第2代及更新机型)。
4. Apple introduces a universal design across platforms (www.apple.com)

苹果发布跨平台通用设计

苹果公司于2025年6月9日预览了其全新的软件设计,旨在使应用程序和系统体验更具表现力和愉悦感,同时保持即时的熟悉感。其核心是一种名为“液态玻璃”的新材质。该设计首次跨越所有平台——iOS 26、iPadOS 26、macOS Tahoe 26、watchOS 26 和 tvOS 26——以建立更统一的和谐感,同时保持各平台的独特性。

核心创新:液态玻璃材质

  • 特性:这种半透明材质会反射和折射周围环境,并能动态变换以更好地聚焦内容,为控件、导航栏、应用图标、小组件等带来新的活力。
  • 技术基础:设计灵感来源于visionOS,充分利用了苹果在硬件、芯片和图形技术方面的进步。液态玻璃采用实时渲染,能根据周围内容智能调整颜色,并在明暗环境下自适应,对移动做出动态反应,创造出活泼的体验。
  • 应用范围:该材质广泛应用于用户日常交互的小型元素(如按钮、开关、滑块、文本和媒体控制),以及大型元素(如应用导航的标签栏和侧边栏)。同时,它也增强了锁屏、主屏幕、通知和控制中心等系统体验。
5. Marines being mobilized in response to LA protests (www.cnn.com)

More than 700 Marines based out of the Marine Corps Air Ground Combat Center in California have been mobilized to respond to the protests in Los Angeles, and the troops will join the thousands of National Guard members who were activated by President Donald Trump over the weekend without the consent of California’s governor or LA’s mayor.

6. Containerization is a Swift package for running Linux containers on macOS (github.com)

Containerization is a Swift package for running Linux containers on macOS. - apple/containerization

7. RFK Jr. ousts entire CDC vaccine advisory committee (apnews.com)

Health Secretary Robert F. Kennedy Jr. has removed every member of a scientific committee that advises the Centers for Disease Control and Prevention on how to use vaccines.

8. Container: Apple's Linux-Container Runtime (github.com)

A tool for creating and running Linux containers using lightweight virtual machines on a Mac. It is written in Swift, and optimized for Apple silicon. - GitHub - apple/container: A tool for creating and running Linux containers using lightweight virtual machines on a Mac. It is written in Swift, and optimized for Apple silicon.

10. Denuvo Analysis (connorjaydunn.github.io)

Denuvo 分析总结

核心机制

Denuvo 是一种反篡改与数字版权管理(DRM)系统,主要用于保护电子游戏等数字媒体免遭盗版和逆向工程。其核心是一种半在线DRM机制。

工作流程

  1. 程序首次启动时,Denuvo 收集当前系统的硬件识别信息。
  2. 将硬件信息发送至 Denuvo 服务器。
  3. 服务器将一组“被窃取的常数”(从原游戏代码中移除的关键字节)与硬件信息通过可逆数学函数进行混合,生成许可证文件并返回给客户端。
  4. 客户端保存此许可证文件,后续启动无需再次联网。
  5. 程序跳转到原始入口点(OEP)执行游戏代码。运行时,Denuvo 再次收集硬件信息,并尝试从许可证文件中解密出原始常数,以供游戏指令使用。

关键保护与检查机制

许可证文件与常数

  • 游戏中的选定函数被转换为由 Denuvo 虚拟机(VM)执行的字节码。
  • 这些函数中不变的指令部分(常数)被从二进制文件中移除,存入许可证文件并与硬件信息加密。
  • 运行时,VM 会利用实时收集的硬件信息和对应的“许可证 DWORD”(包含加密常数)进行逆运算,解密出原始常数以执行指令。若硬件信息不匹配,则解密失败,导致游戏崩溃。

用户完整性检查(硬件信息采集点)

Denuvo 使用多种向量验证运行环境的唯一性,包括但不限于:

  • KUSER_SHARED_DATA: 读取 Windows 内核共享内存区域中的系统版本、物理页面数等信息。
  • CPUID 指令: 获取处理器型号、特性等信息,是最常用的检查之一。
  • SYSCALL (NtQuerySystemInformation): 调用内核系统信息查询。
  • NTDLL.DLL 检查: 检查此关键系统库的函数字节、相对虚拟地址(RVA)及其映像数据目录(如导出、导入表等),因为其内容随 Windows 更新而变化。
  • 进程环境块(PEB): 获取进程的操作系统版本等信息。
  • 其他指令与 API: 如 XGETBV(读取扩展控制寄存器)、GetWindowsDirectoryWGetVolumeInformationWGetComputerNameWGetUsernameW 等。

代码完整性检查

  • CRC 校验: 对虚拟机重要处理器等代码段进行校验,防止钩挂和篡改。
  • 随机 .VM 段读取: 从 VM 节中随机读取字节并用于计算,若字节被修改(如被设置断点),则会导致后续计算错误和未定义行为。

高级混淆与保护技术

  1. 虚拟机(VM)
    • 位向量存储:不连续存储寄存器值,而是将单个字节/位分散存储于不同地址,极大增加了分析和追踪的难度。
  2. 随机性
    • 不依赖标准随机指令或 API,而是利用游戏自身的寄存器值(如玩家生命值、地址重定位)通过模运算生成随机分支,使模式匹配和修补极其困难。
  3. 混合布尔算术(MBA)
    • 利用数学等价性,将简单的算术或逻辑操作(如 mov, add)转换为由大量布尔运算和算术运算混合构成的复杂、难以阅读的表达式,同时保持语义不变。Denuvo 大量应用此技术进行混淆。
  4. 动态加解密 CPUID
    • 在 VM 中,有时会先解密一个 CPUID 指令,执行后再快速重新加密。这需要使用自旋锁(Spin-Lock)来同步多线程访问,而锁本身也可能被加密,形成嵌套保护。
  5. 反异常挂钩
    • 早期破解者常用异常处理来钩挂 CPUID/SYSCALL 指令。Denuvo 的对策是:在执行这些指令前,将重要值写入栈的高位“未使用”空间。当异常触发时,Windows 会向该位置写入 EXCEPTION_RECORD,从而覆盖 Denuvo 的关键值,导致后续计算错误,使简单的异常钩挂失效。

破解难度与方法分析

  • 修补硬件检查:面对众多、分散且随机化的检查点,手动逐一修补几乎不可能。
  • 修补常数解密:理论上更可行,因为解密例程目前无明显校验。但在海量指令(约1000万条以上)中精确定位解密点极具挑战性。
  • 完全恢复二进制:需要修复/反虚拟化成千上万条指令,难度极高,但已知有极少数成功案例。
  • 使用虚拟机欺骗:通过虚拟机监控程序(Hypervisor)拦截 CPUID 等指令并返回伪造信息是最有前景的方法之一,但需要解决 NTDLL 等系统级检查的欺骗问题。

结论

Denuvo 是一种极其强大和复杂的 DRM 保护方案。它通过结合半在线许可证、深度硬件绑定、虚拟机、高级混淆(MBA、位分散)以及针对已知破解技术的针对性防御,成功地将游戏保护期限延长数月甚至数年。尽管存在理论上的破解路径(如 Hypervisor 方案),但其全面的防御体系使其在可预见的未来仍将是该领域的主导力量。

11. Mikeal Rogers has died (b.h4x.zip)

Mikeal Rogers 因侵袭性癌症不幸离世。他是Node.js社区的核心人物,在DigitalOcean早期将开发者布道转变为一种“激进的好客”精神,通过深夜的策略讨论、绘制创意草图,以及在高压时刻的支持,为技术社区带来了活力与连接。

他将技术才华、清晰思维与毫无保留的人性相结合,始终相信代码是人际连接和社区建设的桥梁。Mikeal践行开源精神,视其为提升他人的承诺,而非仅是一纸许可。他经常在凌晨三点坚持观点,也耐心指导初级工程师,坚信脆弱与严谨可以共存,团队既需要共同打磨产品,也需要共享欢笑。

他倡导三大原则:无自我的好奇心、无保留的慷慨、无门槛的社区。作者深受其影响,并将延续这些理念,以纪念这位挚友。文章末尾附有三张图片,作为对Mikeal的追忆。

12. Europe needs digital sovereignty – and Microsoft has just proven why (tuta.com)

欧洲数字主权:现状、风险与行动

核心问题:美国科技公司的“主权云”承诺不可信

  • 关键证词:微软法国法律负责人于2025年6月在法国参议院作证时承认,即便数据存储在欧洲的数据中心,也无法保证欧洲公民和企业的数据不被美国政府访问,且无需通知欧洲当局。
  • “主权清洗”:美国科技巨头(如微软、谷歌、亚马逊)所推销的“主权云”产品,本质上无法满足欧洲数据主权要求,因为其运营需遵守美国法律(如《云法案》),数据可能被美国政府跨境调取。

事件警示:美国管辖权对欧洲构成直接威胁

  1. 国际刑事法院(ICC)事件
    • 2025年,美国总统特朗普因对ICC调查以色列官员的不满而实施制裁。
    • 微软应美国政府要求,封锁了ICC首席检察官的微软邮箱账户,导致其工作严重受阻。
    • 此事件表明:美国公司必须遵守美国法律,即便其服务对象是欧洲重要机构。
  2. 数据保护冲突
    • 微软等公司多次被指违反欧盟《通用数据保护条例》(GDPR),例如:
      • 微软Outlook将用户数据上传至云端。
      • 微软Office 365因数据保护问题在德国学校被禁用。
      • 丹麦因隐私问题禁止学校使用谷歌邮箱。

数字主权的定义与紧迫性

  • 定义:对数字基础设施(通信、软件、数据存储)的独立控制,不依赖外国提供商,确保数据安全并符合本地法律。
  • 关键风险
    • 美国公司可能根据美国法律向美国政府提供欧洲数据,侵犯GDPR和欧洲国家安全。
    • 美国政治决策可直接影响欧洲数字通信,如ICC事件所示。
  • 欧洲行动
    • 法国:计划在2027年前用主权解决方案替代Microsoft Teams和Zoom;2026年4月宣布在政府桌面系统中以Linux替代微软。
    • 其他地区:德国石荷州正替换微软Office为开源方案;丹麦数字化部计划减少对微软的依赖;里昂等城市停用微软产品。

欧洲的解决方案与呼吁

  1. 可行替代方案:欧洲已有隐私优先、安全的本土服务,例如德国Tuta邮件服务(提供端到端加密,数据存储在德国)。
  2. 行动建议
    • 公共采购:欧盟机构、政府和地方当局应将“欧洲企业”作为技术采购的硬性要求。
    • 开源与迁移:优先采用开源解决方案,避免供应商锁定。
    • 立法与战略:通过政策推动技术栈迁移,支持欧洲科技产业发展。
  3. 长期目标
    • 摆脱对美国科技的依赖,保护关键基础设施。
    • 通过公共采购支持欧洲科技产业,增强竞争力并创造税收。

结论

数字主权是欧洲维护数据安全、战略自主和公民权利的核心。微软律师的证言和ICC事件暴露了美国云服务的根本风险。欧洲必须立即行动,选择受欧洲法律管辖的本土服务,共同构建自主、安全的数字未来。

14. Discrete Mathematics: An Open Introduction [pdf] (discrete.openmathbooks.org)

《离散数学:开放导论》第四版 摘要

基本信息

  • 作者:Oscar Levin,北科罗拉多大学数学科学系
  • 版本:第四版(2025年更新)
  • 许可:Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International
  • 在线版本http://discrete.openmathbooks.org

教材概述

本书面向本科一、二年级数学和计算机科学专业学生,特别是未来打算教授中学数学的学生。教材采用探究式教学方法,鼓励学生通过问题解决来学习离散数学。第四版改进包括:近300道新增练习题(总计超过750道)、新增概率、关系和离散结构章节、改进的计数章节呈现方式,以及将"探究!"活动分为开放性问题和结构化预览活动两类。

主要章节内容

第0章:导论与预备知识

介绍离散数学的定义——研究个体分离和独特对象的数学。涵盖四种主要主题:组合数学(计数理论)、序列、符号逻辑和图论。介绍了离散结构的基本概念,包括集合(无序元素集合)、函数(每个输入恰好对应一个输出的规则)、序列(有序数字列表)、关系(元素对之间的关系)和(由顶点和边组成的离散结构)。

第1章:逻辑与证明

数学陈述(1.1节):陈述是可判断真假的声明性语句。分为原子陈述和分子陈述。介绍五种逻辑连接词:合取(∧)、析取(∨)、蕴含(→)、双条件(↔)和否定(¬),每种都有真值表。量化符包括全称量化(∀)和存在量化(∃)。

蕴含(1.2节):蕴含 P→Q 仅在 P 为真且 Q 为假时为假。相关陈述包括逆命题(Q→P)、逆否命题(¬Q→¬P)和否命题(¬P→¬Q)。蕴含与其逆否命题逻辑等价。必要条件和充分条件的概念被详细解释。

逻辑规则(1.3节):通过真值表确定陈述的逻辑等价性和推导规则的有效性。关键等价关系包括德摩根定律:¬(P∧Q)≡¬P∨¬Q 和 ¬(P∨Q)≡¬P∧¬Q。蕴含的否定为 P∧¬Q。量化陈述的否定规则:¬∀x P(x)≡∃x¬P(x)。

证明(1.4节):介绍三种主要证明风格:

  • 直接证明:假设 P,推导出 Q
  • 逆否证明:假设 ¬Q,推导出 ¬P
  • 反证法:假设结论为假,导出矛盾

关于离散结构的证明(1.5节):应用定义来证明关于集合(子集关系的元素追踪证明)、函数(单射性证明)和关系(传递性证明)的命题。

第2章:图论

问题与定义(2.1节):图 G=(V,E) 由非空顶点集 V 和边集 E(V 的二元子集)组成。关键概念包括图的同构、子图、二部图。握手引理:图中所有顶点度数之和等于边数的两倍。由此推出任何图中奇数度顶点的个数必为偶数。

(2.2节):树是无环连通图。重要性质:树中任意两顶点间存在唯一路径;至少有两个度为1的顶点(叶子);有 v 个顶点的树恰好有 v-1 条边。每个连通图都有生成树。根树为树增加了层次结构。

平面图(2.3节):可以在平面上无边交叉绘制的图。欧拉公式:对于连通平面图,v-e+f=2。K₅ 和 K₃,₃ 是非平面图。欧拉公式应用于凸多面体,证明了恰好存在五种正多面体(正四面体、正六面体、正八面体、正十二面体、正二十面体)。

欧拉路径与回路(2.4节):图有欧拉回路当且仅当所有顶点度数为偶数;有欧拉路径当且仅当至多两个顶点度数为奇数。哈密顿路径(访问每个顶点恰好一次)没有简单的判别准则。

着色(2.5节):四色定理:任何平面图的色数不超过4。布鲁克斯定理:除完全图和奇圈外,色数不超过最大度。维辛定理:边色数等于最大度或最大度加1。

关系与图(2.6节):关系是有序对的集合,具有自反性、对称性和传递性等性质。等价关系将集合划分为等价类,而划分又定义等价关系。

二部图匹配(2.7节):霍尔婚姻定理:二部图存在完美匹配当且仅当对于每个子集 S⊆A,满足 |N(S)|≥|S|。

第3章:计数

帕斯卡三角(3.1节):帕斯卡三角中的数与多种计数问题相关——格点路径数、给定权重的比特串数、k 元素子集数。n 选 k 记作 C(n,k),读作"n choose k"。二项式定理:(x+y)ⁿ 的展开系数即为帕斯卡三角第 n 行。

组合结果(3.2节):求和原理:不相交事件的总结果数为各自结果数之和。乘积原理:m 种方式与 n 种方式的组合有 m·n 种。

非不相交结果(3.3节):包含-排除原理(PIE):|A∪B|=|A|+|B|-|A∩B|。三集合形式更加复杂。

组合与排列(3.4节):排列 P(n,k)=n!/(n-k)! 计数有序选择;组合 C(n,k)=n!/[k!(n-k)!] 计数无序选择。选择组合还是排列取决于结果是否区分顺序。

多重集合计数(3.5节):**棒与石(星星与横线)**技术:将 n 个相同物体分给 k 个容器的方式数为 C(n+k-1,k-1)。

组合证明(3.6节):通过给出同一计数问题的两种不同答案来证明二项恒等式。

概率应用(3.7节):在均匀概率分布下,P(E)=|E|/|S|。互补概率、加法规则、乘法规则和条件概率。独立事件满足 P(A∩B)=P(A)P(B)。条件概率 P(A|B)=P(A∩B)/P(B)。

第4章:序列

描述序列(4.1节):序列可用封闭公式或递归定义描述。已知序列包括平方数、三角数、2的幂和斐波那契数列。部分和与差分是分析序列的重要工具。

增长速率(4.2节):等差序列:常数差,封闭公式 a_n=a+dn。等比序列:常数比,封闭公式 a_n=a·rⁿ。

多项式序列(4.3节):若序列的第 k 阶差分为常数(Δₖ-常数),则封闭公式为 k 次多项式。通过多项式拟合求解系数。

指数序列(4.4节):特征根技术用于求解线性齐次递推关系 a_n=αa_{n-1}+βa_{n-2}。求解特征方程 x²+αx+β=0 的根 r₁,r₂,则解为 a_n=ar₁ⁿ+br₂ⁿ。重根时解为 a_n=arⁿ+bnrⁿ。

数学归纳法(4.5节):证明 P(n) 对所有 n≥a 成立需证:基础情况 P(a) 为真;归纳步骤:假设 P(k) 为真,证明 P(k+1) 为真。

强归纳法(4.6节):在归纳步骤中假设 P(j) 对所有 j≤k 为真,证明 P(k+1) 为真。适用于需要多个前项的情况。

第5章:离散结构回顾

集合(5.1节):集合的基本记法、子集关系、集合运算(并、交、差、补)和笛卡尔积。韦恩图用于可视化集合运算。幂集 𝒫(A) 是 A 的所有子集的集合。

函数(5.2节):函数 f:X→Y 的满射(每个陪域元素至少是一个域元素的像)、单射(每个陪域元素至多是一个域元素的像)和双射(既是满射又是单射)。像集和逆像的概念。递归定义函数的方式。

第6章:附加主题

生成函数(6.1节):将序列编码为幂级数的系数。通过代换、乘法、微分和差分等技术构建生成函数。利用偏分式分解求解递推关系。

数论导引(6.2节):整除关系、除法算法、余数类、同余(模 n 运算)的性质和运算规则、求解线性同余方程、线性丢番图方程的求解(通过转化为同余方程)。

教材特色

  1. 探究式教学:每节以"探究!"问题开始,激发兴趣
  2. 结构化预览活动:帮助学生在阅读前建立基础
  3. 逐步练习:从练习题到挑战性附加练习,循序渐进
  4. 交互式在线版本:提供即时反馈和随机化练习
  5. 多样的计数问题:从帕斯卡三角到包含-排除原理,再到生成函数
  6. 注重证明:从第1章开始系统教授多种证明方法
  7. 连接实际应用:将抽象概念与真实问题联系
15. The Danish Ministry of Digitalization Is Switching to Linux and LibreOffice (politiken.dk)

丹麦数字化部长Caroline Stage Olsen(M)宣布将从下个月开始在她的部门内逐步淘汰微软产品。计划安排为:约一半员工将在一个月后及整个夏季过渡到使用安装了LibreOffice(而非Office 365)的电脑。如果进展顺利,预计所有员工将在今年秋季全面转向开源解决方案。

此决定是在即将发布未来四年新数字化战略的背景下宣布的,该战略首次将数字主权列为优先事项,并由国家、地区和市政当局共同商定。

16. Show HN: Munal OS: a graphical experimental OS with WASM sandboxing (github.com)

Munal OS:基于WASM沙箱的实验性图形操作系统

Munal OS是一个完全用Rust编写的实验性操作系统,采用unikernel设计、协作调度和基于WebAssembly(WASM)的沙箱安全模型。它旨在重新审视操作系统设计原则,探索在现有工具支持下,构建一个功能完备的OS所需的核心组件,并在代码简洁性上进行实验。

主要特性

  • 全图形界面:支持高清分辨率,并提供鼠标和键盘输入。
  • 应用程序沙箱:所有用户应用运行在WASM沙箱中,实现内存隔离和安全访问控制。
  • 网络支持:内置网络驱动和TCP/IP协议栈。
  • 自定义UI工具包:提供多种控件、响应式布局和灵活的文本渲染。
  • 内置应用:包括一个支持DNS和基本HTTPS/HTML的网页浏览器、一个文本编辑器和一个Python终端。

核心架构设计

Munal OS在设计上摒弃了几个传统的操作系统核心组件:

  • 无引导加载程序:整个OS被编译为一个单一的EFI二进制文件,内核、WASM引擎和应用均嵌入其中。启动后立即退出UEFI引导服务,仅使用系统时钟。
  • 无虚拟地址空间与页映射:保持UEFI提供的恒等映射地址空间,不操作页表。类似于用户/内核态的区分通过WASM沙箱来实现,从而防止应用直接访问内核内存。
  • 无中断:不支持多核,也未实现CPU中断。所有操作均在一个全局事件循环中线性进行,包括轮询输入/网络驱动、绘制桌面界面、运行WASM应用步骤以及刷新GPU帧缓冲区。
  • 基于VirtIO的轮询驱动:通过PCI驱动与QEMU虚拟机通信,实现了键盘、鼠标、网络和GPU的VirtIO驱动。所有驱动均采用轮询方式,不依赖中断。这意味着该系统目前仅能在支持VirtIO的虚拟化环境中运行。

应用与执行环境

  • WASM沙箱:集成Wasmi WASM引擎运行应用,实现沙箱隔离。内核提供一套自定义的“系统调用”API,允许应用查询输入事件、操作TCP套接字以及发送输出帧缓冲区。
  • 语言灵活性:所有示例应用均用Rust编写,但任何可编译为WASM的语言理论上均可用于开发。
  • 协作调度:应用在每个事件循环迭代中获得CPU时间,需主动让出。虽然当前未实现,但理论上可通过WASM引擎的“燃料限制”功能终止占用CPU过长的应用。
  • 应用监控:每个应用拥有独立的日志流和资源(如帧时间、内存)消耗的“审计”视图。
  • 部分兼容WASI:实现了WASI Preview1标准的最小子集,主要为了允许应用不使用#![no_std]即可编译。

UI工具包

Munal OS使用名为Uitk的即时模式UI工具包,用于桌面界面和应用开发。它支持基本控件、全局样式表以及通过内容ID缓存机制避免不必要的重绘。

构建与运行

项目要求特定的Rust Nightly版本和QEMU版本。构建过程首先编译所有WASM应用,再编译内核,最后启动QEMU。提供run.sh脚本简化此过程。

致谢

项目灵感来源于Rust OS教程,并使用了smoltcp、Rustls、RustPython等多个开源库。

17. Sly Stone has died (abcnews.go.com)

Sly Stone(本名Sylvester Stewart),开创性放克乐队Sly and the Family Stone的灵魂人物,于82岁高龄去世。据其家人声明,他在与慢性阻塞性肺病及其他健康问题长期抗争后安详离世,子女、挚友与家人陪伴在侧。

Stone 1943年生于德克萨斯州,幼年随家迁往旧金山湾区。1960年代初担任电台DJ,涉猎广泛音乐类型。1966年,他与兄弟Freddie及姐妹Rose等组建Sly and the Family Stone,将福音、迷幻与放克等多种风格融合创新。乐队是首个种族融合的美国主流摇滚乐队,其高能量现场演出备受瞩目。

乐队1967年发行首张专辑《A Whole New Thing》反响有限,但随后单曲《Dance to the Music》(1967)登上公告牌流行榜第8名,开启巨星之路。1969年专辑《Stand!》及其单曲《Everyday People》(乐队首支冠军单曲)和《Hot Fun in the Summertime》将乐队推至世界之巅。同年,乐队在伍德斯托克音乐节凌晨演出,成为传奇。

然而,成名后乐队深陷药物问题(Stone本人承认依赖可卡因与PCP)、内部纷争与演出失约,70年代后未能重现辉煌。Stone的独唱生涯也未取得同等成功。但他作为音乐先驱的遗产备受认可:1993年入选摇滚名人堂,乔治·克林顿称赞其为“史上最伟大的放克乐队”和“我所知最伟大的创作者”。2023年,Stone出版回忆录《Thank You (Falettinme Be Mice Elf Agin)》,2024年纪录片《Sly Lives!》上映。

Stone曾与模特Kathy Silva在1974年演唱会现场结婚,育有一子Sylvester Jr.,另有两女Phunne与Novena Carmel。家人表示,Stone近期完成了个人生平电影剧本,该项目未来将与公众见面。家人感谢公众的关怀,并祝愿所有被其音乐触动的人获得和平。

18. Rust compiler performance (kobzol.github.io)

Rust编译器性能分析

Rust编译器缓慢的反馈循环和长编译时间是最常被抱怨的问题。尽管存在这些抱怨,Rust项目确实高度重视编译器性能,并投入了大量努力进行改进。以下是关键要点总结:

当前进展与成就

  • 持续的性能优化:Rust团队每周对性能改进和退化进行分类处理,并在每个合并的PR后运行全面的基准测试套件。他们积极欢迎性能优化,并快速回退引入退化的PR。
  • 显著的性能提升:通过实验数据展示,以hyperqueue项目为例,从2022年5月的rustc 1.61.0到2025年5月的1.87.0,清理构建时间从26.1秒减少到14.7秒,实现了1.77倍的加速。增量重建也从约0.39秒优化至0.26秒。这证明编译器性能在过去几年中有了实质性改善。

持续的挑战与根本原因

尽管有进步,对许多开发者而言编译速度仍不够快。目标是在增量模式下实现近乎即时的、与代码变更量而非代码库总大小成比例的重建。实现这一目标面临多重挑战:

  • 技术复杂性:编译器代码库庞大(约60万行Rust代码),存在技术债务。非平凡的改进非常困难,许多低垂果实已被摘取。优化常常涉及权衡(如针对特定目标优化可能影响其他平台或增加资源消耗)。
  • 优先级冲突:性能只是众多优先级之一。维持编译器稳定性、定期发布、支持大量目标平台(8个一级目标,91个二级目标)、处理新语言特性和功能、修复错误和维护基础设施同样消耗大量资源和注意力。
  • 资源与贡献者限制:Rust项目主要由志愿者驱动。贡献者的兴趣多样,并非所有人都专注于性能优化。重大重构(如trait solver重写)可能耗时数年。资金支持和长期维护是加速进展的关键因素。

潜在的改进路径

  1. 工作流优化:例如“重新链接而非重新构建”的提案,旨在减少大型Cargo工作空间中的编译量,通过更智能的编译过程提升效率。
  2. 大规模重构:如并行前端、替代代码生成后端、默认使用更快的链接器、推迟代码生成等“北极星”方法。这些需要深入评估、获得团队共识、投入巨大实施和维护成本。
  3. 可选优化:一些现有优化(如针对特定指令集或内存分配器)可以被用户选择启用,但因兼容性和资源权衡无法成为默认。

结论

改进Rust编译器性能是一个持续且复杂的过程,它平衡着技术挑战、多重项目优先级以及资源限制。尽管面临困难,团队对实现显著的增量构建速度提升抱有希望,并致力于通过目标明确的工作流改进和持续的基础优化来推动进展。项目的健康发展依赖于更广泛的贡献,包括性能工作在内的所有领域的维护和支持。

19. Why agents are bad pair programmers (justin.searls.co)

为何AI代理是糟糕的结对编程伙伴

文章指出,大型语言模型(LLM)代理因编码速度远超人类思考节奏,不适合担任结对编程搭档。

核心问题

  • 代理过快的输出速度使人类难以实时阅读、理解和跟上思路。
  • 这会导致人类搭档逐渐脱离、失去上下文,最终在代理遇到障碍或构建了错误方案时,无法及时介入或补救。

建议的解决方案

作者提出两种替代方案:

  1. 采用异步工作流:放弃编辑器内的代理结对模式,转而使用如GitHub Coding Agent等工具,将任务拆解后由代理独立完成,再通过拉取请求进行代码审查。
  2. 降低交互节奏:继续在编辑器内结对,但切换到节奏较慢的“编辑”或“提问”模式(例如进行“乒乓式结对”),以实现生产力与质量控制的平衡。

对未来工具的改进建议

作者希望AI工具开发者能设计出更接近人类协作体验的代理,具体功能包括:

  • 允许用户设定代码或文本的输出速度。
  • 提供暂停功能以便中途提问或纠正方向。
  • 开发超越聊天模式的用户界面,例如集成任务列表或关联GitHub议题。
  • 让代理表现出更多“自我怀疑”,主动寻求确认和讨论。
  • 引入高级语音聊天,以模拟更自然的人际结对体验。

结论:当前AI代理的极速特性反而破坏了协作潜力,需要通过调整交互设计来使之成为更有效的伙伴。

20. Malleable software: Restoring user agency in a world of locked-down apps (www.inkandswitch.com)

可塑软件:在封闭应用的世界中恢复用户自主权

核心问题

传统物理环境是可塑的,用户可以自然地调整和改造空间。然而,数字时代中,大规模生产的软件过于僵化,迫使用户适应工具,而非工具适应用户,导致效率低下、挫败感和用户能动性的丧失(例如医生被强制填写无关字段导致职业倦怠)。

可塑软件的目标

我们倡导一种新的计算生态系统,即可塑软件,旨在让任何人都能以最小摩擦调整工具以满足自身需求。这包括从小的修改到深度改造,甚至创建能与现有工具协作的新工具。

现有方法的局限

  • 设置:仅限于开发者预设的选项。
  • 插件:扩展能力受限于开发者设计的API,且跨应用不通用。
  • 修改:需逆向工程,维护困难,且受平台限制。
  • 开源:虽提供源代码,但修改需要专业技能和精力,门槛较高。
  • AI辅助编码:能降低编码门槛,但无法解决修改现有工具工具间数据共享与组合等根本问题。

三大设计原则

1. 从用户到创建者的平缓斜坡

系统应允许用户从被动使用开始,逐步、平滑地过渡到编辑和创建。避免技能要求出现陡峭的“悬崖”。例如:

  • 电子表格:提供原地编辑工具链,从查看、输入到修改公式、扩展功能,难度渐进。
  • HyperCard:通过“级别”模式,从只读到全面编程,分步解锁能力。
  • 网页定制:提供样式修改、宏录制、用户脚本等轻量技术,逐步导向扩展开发。

2. 工具,而非应用

应用如同“牛油果切片器”,功能专门化但通用性差,且应用间数据隔离。我们需要更像“刀”的通用、可组合工具。

  • 共享数据:工具应操作共享的现实。例如文件系统允许不同工具编辑同一文件;Airtable等低代码平台允许同一数据创建多种视图;实时协作中不同工具可协同编辑同一数据。
  • 组合用户界面:工具需在共享工作区中协作。探索方向包括复合文档(如OpenDoc)、动态连接UI元素的“纠缠器”、以及基于物理空间的组合(如Dynamicland)。

3. 社区化创建

个人主义不足以支撑可塑软件。我们需要支持社区共同构建和维护适合其需求的共享解决方案。

  • “本地化软件”比面向全球的软件更容易构建,因为可以更直接地响应用户需求。
  • 技术基础设施需要支持这种社会技术系统,允许技能水平不同的人协作,并支持代码的分享与分支。

Ink & Switch的研究原型

为了探索可塑软件,作者团队构建了一系列原型。

基础设施探索

  • PushPin:基于Automerge(一个本地优先的同步库)的媒体画布,降低工具开发门槛,但面临视图选择和组件协调挑战。
  • Cambria:解决不同工具间数据模式不兼容问题,支持实时模式转换。
  • Farm & Patchwork:将代码本身作为数据存储和同步,并引入通用版本控制的概念(如历史查看、分支),支持非正式探索和协作。Patchwork已用于团队内部工作,并验证了在可塑环境中,机会驱动的小工具创建(如段落字数统计工具)和AI辅助快速开发的可行性。

动态文档探索

探索如何为静态媒体层叠交互行为,无需编程。

  • Potluck:通过检测器从任意文本中解析结构并添加计算(如食谱量化),但处理复杂关联文本有困难。
  • Embark:基于结构化大纲的旅行规划,支持丰富的嵌入视图(如地图、日历),并展示了富上下文嵌入带来的强大交互能力。

挑战与展望

实现可塑软件面临重大挑战,包括隐私与安全商业模式文化转变。这需要技术、经济和文化的共同努力。

可塑软件可能缺乏封闭开发的统一设计美感,但它会像老房子一样,随着时间发展出独特的“魅力”,承载着过去使用的痕迹并适应当前的需求。赋予每个人演化其数字环境的权利,对于激发创造潜力和保持能动性至关重要。

21. Thiings (www.thiings.co)

Thiings 收藏集是一个包含超过10,000个AI生成3D图标的合集。

该合集的核心特点在于其图标均由人工智能技术生成,提供了大量且多样化的3D风格图标资源。这些图标可用于各类设计项目,为用户提供丰富的视觉素材选择。

22. Liquid Glass – WWDC25 [video] (developer.apple.com)

Liquid Glass – WWDC25 总结

核心概念

Liquid Glass 是苹果软件视觉与交互设计的一次重大演进。它并非模仿物理世界材质,而是一种全新的数字元材料,能动态地弯曲、塑造和聚焦光线,同时拥有类似轻质液体的有机运动特性

设计理念与灵感来源

其设计融合了从 Mac OS X Aqua 界面到 iOS 7 实时模糊、iPhone X 流体感、Dynamic Island 灵活性以及 visionOS 沉浸式界面的所有经验。它与苹果现代产品的圆润屏幕沉浸感设计语言相辅相成。

核心动态特性

  1. 镜头效果:通过弯曲光线而非散射光线,在透明物体上产生自然光晕,从而定义UI层级、实现内容分离,同时保持背景内容可见。
  2. 有机运动:交互时,Liquid Glass 会瞬间弯曲并焕发光芒,提供响应感和活力。它具有凝胶般的灵活性,能随用户操作和环境动态变化而流畅形变。
  3. 状态转换:元素通过渐变调制光线而非淡入淡出的方式显现或消失,保持材料的视觉完整性。控件可在静态(安静)交互(激活) 状态间切换。

自适应特性

Liquid Glass 能根据上下文、尺寸和平台自动调整:

  • 内容适配:下方内容滚动时,其阴影、色调和明暗模式会自动调整以确保可读性。可独立在浅色与深色模式间切换。
  • 尺寸适配:当尺寸变大(如菜单展开),其材质特性会改变以模拟更厚实的材质,表现为更深的阴影、更明显的镜头效果。
  • 跨平台统一:在 iPad 和 Mac 上,Liquid Glass 形成了控件和导航的独立功能层,与窗口的圆角完美契合。侧边栏的外观会受到应用内环境光的影响。
  • 滚动边缘效果:与 Liquid Glass 协同工作,在滚动内容上方创建平滑过渡,确保浮动元素的清晰度,并能智能切换淡出或调暗效果。

应用指南

  1. 使用场景
    • 最佳用途:用于应用中浮动在内容之上的导航层
    • 避免滥用:不应将其用于内容层(如下方列表),也应避免玻璃叠加玻璃
  2. 两种变体
    • 常规:最通用,具备所有自适应视觉效果,适用于任何尺寸和内容。
    • 透明:永久更透明,需配合调暗层确保可读性。仅当元素位于富媒体内容之上、内容层可承受调暗、且其上的内容醒目明亮时使用。
  3. 可读性与着色
    • 符号和字形会随玻璃背景自动切换明暗以实现最大对比度。
    • 可引入着色来强调主要操作,但应有选择地使用,避免为所有元素着色。
    • 着色技术能根据背景内容亮度调整色调,既体现材质感又保证可读性。
  4. 无障碍功能:支持系统级设置,包括降低透明度增强对比度减少动态效果,以适配不同需求。

总结

Liquid Glass 为苹果全平台带来了统一的设计语言,融合了硬件与软件。它通过创新的光影效果和流畅的交互,创造了更有机、沉浸和流畅的应用体验,标志着苹果视觉与交互设计新纪元的开启。

23. Apple has announced its final version of macOS for Intel (tedium.co)

苹果公司宣布 macOS Tahoe 将是最后一个支持英特尔 Mac 的操作系统版本,正式结束了长达 20 年的英特尔 Mac 时代。这一消息是在 WWDC 2025 的“平台现状”演讲中宣布的,而非在主旨演讲中,旨在减少对普通用户的冲击。

与当年 PowerPC 向 Intel 过渡时的突然不同,此次苹果提前一年公布了这一决定,并承诺可能会为英特尔 Mac 提供安全更新,给予了用户和开发者更充足的过渡时间。苹果强调,其全面转向 Apple silicon 已两年,新架构支持了 Apple Intelligence 等先进功能。

尽管决定合理,但这可能加速硬件淘汰。不过,2019 和 2020 款的英特尔 Mac 预计仍会获得一段时间的安全更新,且可以尝试安装 Linux(如 T2Linux 项目已解决部分兼容性问题)。文章还指出,以通胀调整计算,当前 Mac Mini 的入门价格比 20 年前更低。

作者表达了个人对英特尔 Mac 时代的怀念,特别是其允许“黑苹果”等非官方玩法所带来的灵活性和自由度,这催生了一种独特的文化。如今,作者主要使用 Linux,但苹果通过英特尔 Mac 无意中提供的灵活性对其产生了深远影响。

24. Finding Atari Games in Randomly Generated Data (bbenchoff.github.io)

该项目探索从随机生成的数据中寻找Atari 2600游戏。生成了约300亿个4kB的随机数据文件,通过启发式方法筛选后剩余约10,000个,再用Atari 2600模拟器测试是否为可运行的游戏。项目旨在利用GPU和AI快速生成并筛选随机数据,以发现有趣的ROM。

问题范围与启发式方法

Atari 2600 ROM为4kB数据,可能性极多。为高效搜索,使用启发式方法预先筛选:

  • 操作码合理性:检查数据中有效6502操作码的比例(商业游戏首千字节中通常超过75%)。
  • 重置向量:最后两字节需指向有效入口点(0xF000-0xFFFF),生成时尝试所有可能向量。
  • 输入输出检测:分析TIA(图形/声音)和RIOT(I/O/定时器)寄存器访问模式,如常用TIA寄存器(WSYNC、GRP0等)和RIOT的镜像地址访问。
  • 控制流指令:统计分支和跳转指令数量,以检测循环和结构。

通过分析所有商业Atari ROM(1,530个),建立阈值,如操作码比例≥58%、TIA访问≥50次、RIOT访问≥13次等。并定义复合评分(权重基于操作码、TIA、RIOT、分支和跳转)来排序ROM的“游戏性”。

技术实现与挖掘过程

最初使用单线程Python脚本,速度慢(约300-400 ROM/秒)。后改用CUDA在GPU上并行处理:

  • 生成随机4kB ROM(减去两字节用于重置向量)。
  • GPU上应用启发式分析,使用查找表计算操作码、TIA/RIOT访问等指标。
  • 仅将“有趣”ROM(通过启发式)发送至CPU,用MAME模拟器测试视觉输出(检测黑屏和动态视频)。
  • 实现速度达62,150 ROM/秒。

结果与发现

  • 生成约18亿ROM,456个通过启发式筛选。
  • 其中16个有静态视频输出,11个有动态视频。
  • 发现一个名为“51014”的ROM,显示黄色背景、红色条纹,并对摇杆输入响应,表现出游戏行为。
  • 项目证明随机数据可能产生可运行的Atari ROM,因Atari 2600硬件简单,无保护机制。

未来工作与结论

其他平台(如NES、Game Boy)更复杂,因内存映射器和启动保护,随机数据更难产生可运行ROM。未来可考虑分布式计算项目,类似SETI@Home,大规模搜索随机数据。项目代码开源在GitHub仓库。

总结:该项目通过启发式和GPU加速,从随机数据中筛选出Atari游戏,展示了随机性与简单硬件结合的可能性,发现了视觉有趣的ROM及一个原型游戏。

25. Las Vegas is embracing a simple climate solution: More trees (www.npr.org)

拉斯维加斯通过增加树木种植应对极端高温

面对气候变化加剧的城市高温问题,拉斯维加斯正采取一项直接解决方案:大规模种植树木。

问题背景

  • 极端高温事件:去年夏天,拉斯维加斯创下120华氏度(约49摄氏度)的高温记录,热浪持续超过两个月。
  • 严重影响:克拉克县法医办公室指出,高温是导致当地超过500人死亡的因素之一,专家认为全国范围内此类死亡可能被低估。
  • 立法行动:今年5月,州立法者通过法案,要求该州主要城市和县制定“热缓解计划”,该法案已签署成为法律。

核心措施:植树降温

  • 目标与行动:拉斯维加斯市计划到2050年种植6万棵树,即每年超过2000棵。市、县政府和非营利组织正在合作,优先在最炎热的“城市热岛”社区开展植树活动。
  • 科学依据:研究显示,树木能通过蒸腾冷却和提供阴凉,将周围环境温度降低至少10华氏度。文章举了一个实地测量的例子:当气温为95华氏时,树荫下的地面温度为87华氏度,而阳光直射的长椅温度高达130华氏度。
  • 树种选择:城市林务官布拉德·达斯勒尔介绍,他们主要引入耐旱、耐寒的非本土遮荫树种,例如来自墨西哥北部的橡树和澳大利亚的桉树。树种选择讲究策略,例如在公园种植熊橡树,在中间带种植耐热性更强的印度玫瑰木。

关注公平与社区影响

  • “阴凉差距”:研究证实,高温对低收入社区影响尤为严重,因为这些区域树木覆盖少、住房能效低。内华达州南部热韧性实验室的数据显示,东拉斯维加斯和北拉斯维加斯等相对贫困地区,温度可能比其他地区高出11度。
  • 经济压力:居民需要支付更高的空调费用,并可能被迫在维持适宜室温与食物、药品等基本需求之间做出选择。
  • 社区参与:克拉克县定期举办树木赠送活动,为符合条件的居民提供免费树木。居民拉卢·班克斯计划在自家房屋附近种树,以期降低夏季电费。

面临的挑战

  • 极端气候:沙漠环境给树木生长带来挑战,树木需同时耐受高温和低温。
  • 水资源紧张:该地区目前正经历“异常”级别干旱。专家在权衡用水分配的同时认为,从社区长期可持续性来看,为树木用水是值得的。

教育与长远影响

植树行动也延伸至学校。例如,布克小学的园艺俱乐部让学生参与种植树木、水果和蔬菜,旨在培养下一代的环保意识和实践技能。

26. Kennedy guts CDC's vaccine panel of independent experts (www.nbcnews.com)

美国卫生与公众服务部部长小罗伯特·F·肯尼迪宣布,解雇疾控中心(CDC)免疫实践咨询委员会(ACIP)的全部17名独立专家成员。

决定与指控

  • 肯尼迪在《华尔街日报》的评论文章中宣布了这一决定,声称该委员会存在“持续的利益冲突”,并已成为疫苗的“橡皮图章”。
  • 他呼吁对ACIP进行“彻底改革”,但未说明将任命何人填补空缺,也未提供时间表。HHS称ACIP将于6月25日至27日召开下一次会议。

委员会的角色与程序

  • ACIP由儿科医生、流行病学家等医学和公共卫生专家组成,负责向CDC提出关于疫苗接种对象、时间安排等的建议。
  • 委员会成员需经过严格审查,并被要求披露利益冲突,在涉及相关疫苗投票时回避。CDC曾公布部分成员过往参与制药公司资助研究的信息,但许多专家认为,只要妥善披露,这些行业经验具有重要价值。

各方反应与批评

  • 专业人士批评:多位专家和前任官员强烈反对。美国儿科学会的医生称肯尼迪的说法“是对众多科学家的严重侮辱”。前CDC主任、前代理主任等批评这是“制造混乱”,将削弱疫苗指导的可信度,并担忧这会给儿科医生带来困难。
  • 政治承诺违背:波士顿大学的教授认为,此举是为了用更认同其议程的人替换专业人员。肯尼迪曾在确认听证会上承诺不改变ACIP,参议员比尔·卡西迪也表示将继续沟通,确保委员会不被“除了怀疑外对疫苗一无所知”的人填满。
  • 内部担忧:一名匿名CDC雇员称肯尼迪的言论是“一种特殊的误导”。一名匿名ACIP成员指出,此举明确意味着“CDC在疫苗领域将不再可信”,迫使保险公司等机构转向专业协会寻求建议。

背景与影响

  • 肯尼迪是知名反疫苗倡导者,上任后已采取多项削弱疫苗获取能力的行动。
  • 当前美国正面临疫苗可预防疾病(如麻疹、百日咳)和流感相关死亡的上升,此举可能进一步降低公众对联邦政府疫苗指导的信任。
27. Launch HN: Chonkie (YC X25) – Open-Source Library for Advanced Chunking

Chonkie 是一个由 Shreyash 和 Bhavnick 创建的开源 Python 和 TypeScript 库,专为高级文本分块和嵌入生成而设计,旨在解决 RAG 等应用中自定义分块逻辑繁琐、现有工具功能单一或过于臃肿的问题。

核心功能与分块策略

  • 支持多种分块方法,包括基础的 Token、句子、递归分块。
  • 提供高级策略:语义双重分块(先语义分割后合并相关块)、代码分块(通过 AST 分析寻找代码最佳分割点)、后期分块(基于长文档嵌入生成块向量)、砍伐分块(结合递归分块与 LLM 验证,以降低 LLM 调用成本和令牌数获得高质量块)。

技术优势与特点

  • 轻量高效:默认安装包约 15MB,比某些替代品(80-170MB)小得多。在测试中,其 Token 分块速度比 LangChain 和 LlamaIndex 快达 33 倍。
  • 灵活易用:支持主流分词器(transformers, tokenizers, tiktoken),基础功能零外部依赖。采用模块化依赖系统,可按需安装。
  • 性能优化:实施激进缓存和预计算,语义分块采用运行均值池化以提高效率。

嵌入与集成

  • 除分块外,提供了简易的嵌入创建方式,支持 SentenceTransformer、Model2Vec、OpenAI 等,并可自定义嵌入处理器。
  • 目前重点构建检索集成,已创建 “handshakes” 函数,便于与 pgVector、Chroma、TurboPuffer、Qdrant 等向量数据库交互。

应用场景与未来

  • 虽然主要为 RAG 优化,但生成的块专为高质量嵌入和向量检索设计,也适用于语义搜索或为智能体设置上下文。
  • 开发团队正专注于简化检索流程的集成,并欢迎社区提出需求。同时提供托管和本地部署的商业版本,包含 OCR、额外元数据、全嵌入供应商支持和管理向量数据库。
28. The curious case of shell commands, or how "this bug is required by POSIX" (2021) (notes.volution.ro)

本文主要探讨了Unix/Linux系统中system(3)函数与sh -c命令使用方式所带来的安全问题,并深入分析了其根源、影响及应对方案。

核心问题

许多常用工具(如sshwatchi3tmux等)在接收“命令”参数时,并非直接调用execve(2)执行,而是通过glibcsystem(3)函数,最终将参数传递给sh -c执行。这种设计导致任何用户输入如果未经妥善处理,都可能被解释为shell命令,引发严重的安全风险(如shell注入攻击)。

问题根源

  • 规范与实现system(3)的规范要求将命令字符串传递给sh -c执行。POSIX相关手册(如system(3p)sh(1p))未对此行为的风险作出充分警告。
  • 安全影响:直接拼接用户输入与命令字符串会导致多个问题:参数被错误解析、特殊字符(如空格、引号、;$等)触发shell展开或命令注入。文中以ssh为例,说明其简单地将参数用空格连接后传递给远程的sh -c,极易出错。

解决方案与建议

  1. 根本方案:避免使用依赖system(3)的工具。优先选择那些安全设计的工具或编程语言模块(如Go的os/exec、Rust的std::process、Python的subprocess)。
  2. 若必须使用
    • 检查工具是否有禁用sh -c的选项(如watch -x)。
    • 在命令和参数前使用bash的@Q扩展进行正确转义。
    • 使用exec --前缀以确保执行正确的可执行文件并处理以连字符开头的命令名。
    • 注意可能存在多层解析(如i3的配置和sh的解析)。
  3. 意识与行动:开发者应意识到此问题,在编写脚本时仔细处理输入,并对工具进行模糊测试。同时,应向有问题的开源工具提交错误报告或功能请求。

深层缺陷:“1000分奖励bug”

作者揭示了一个更基础的问题:当要执行的命令名以连字符(-)开头时(如-x),system(3)调用sh -c的方式会导致命令被误解析为sh的选项。这是因为sh -c会将其后的第一个非选项参数作为命令字符串,而非紧接着的参数。例如,sh -c "-x"会导致错误。正确的实现应为sh -c -- "-x"。作者已向glibc、Linux man pages项目和POSIX小组提交了缺陷报告,glibc开发者回应称此行为是POSIX规范所要求的,凸显了规范本身的设计缺陷。

工具评价

  • 应避免的工具(耻辱墙):OpenSSH、Ruby的system和反引号功能、Python的os.systemos.popen、Node.js的child_process.exec等直接暴露system(3)风险的接口。
  • 安全的工具(荣誉墙):Go的os/exec、Rust的std::process、Python的subprocess等明确避免使用shell且提供安全默认值的模块。

总结

文章指出,当前许多Unix工具和编程语言库中与system(3)相关的设计存在固有的安全风险。开发者必须谨慎处理传递给这些工具的命令和参数,了解其背后的执行机制,并尽可能采用更安全的替代方案。文中揭示的sh -c解析连字符开头命令名的缺陷,更是暴露了从规范层面就需要修正的问题。

29. AI Saved My Company from a 2-Year Litigation Nightmare (tylertringas.com)

这篇文章分享了一位企业创始人利用人工智能(AI)应对长达两年法律诉讼的经历和教训,核心在于揭示美国法律系统对被告的弊端,并展示如何运用AI作为“教练”与工具,实现低成本高效辩护。

美国法律系统对被告极为不利。其“美国规则”使得即使胜诉,原告也极少需要承担被告的律师费,导致被告最佳结果也只是维持原状,却需支付高昂成本(或达百万美元以上)。诉讼早期试图通过“驳回动议”让法官直接驳回案件几乎不可能,因为法官必须假设原告指控的事实为真。后期“简易判决”虽有机会,但门槛极高,需证明案件无事实争议且法律适用明显错误,而诉讼中几乎总存在事实争议。因此,约98%的民事案件最终以和解告终,被告实质上陷入“囚徒困境”:要么支付高额和解费立即了结,要么投入更多资金且承担庭审风险。

作者作为初创公司Calm Company Fund的创始人,首次被起诉后,最初犯下“委托陷阱”错误——将案件完全交给律师处理,导致费用飙升,反而成为对方谈判筹码。他意识到,若预算有限,必须采取“创始人模式”主动管理诉讼,目标是最大限度减少开支并积累谈判杠杆。

AI在此成为关键工具。作者的工作流程包括:利用Claude或ChatGPT的项目功能上传所有相关文件;将AI视为“教练”而非绝对权威,用以理解法律原则与流程;借助AI快速进行合同分析与条款关联;让AI起草法律文件草稿,大幅节省律师起草时间与费用。使用中需注意AI可能虚构案例,必须核查引用。

与律师合作时,作者建议采取主动角色,明确预算约束与战略方向。若律师抗拒客户端的策略参与,应考虑更换。通过AI大幅降低自身法律支出,反而能形成成本优势,成为谈判筹码。作者强调,AI不能完全替代人类决策,但能极大地增强创业者对复杂法律事务的理解与控制力。

文末提出三项行动建议:预先建立AI法律研究系统;用AI审核商业保险的覆盖缺口;坚持“不与不信任之人做生意”原则,从源头降低风险。核心启示是,AI可以成为创业者在法律对抗中的“平衡器”,帮助其理解过程、控制成本,并主动塑造谈判局面。

30. TimeGuessr (timeguessr.com)

TimeGuessr 项目概述

TimeGuessr 是一个在线项目,其核心信息与法律合规性相关。该项目明确提供了以下两份关键文件:

  1. 使用条款

    • 这份文件规定了用户使用 TimeGuessr 服务或产品时需要遵守的规则、条件和限制。
    • 通常包括用户权利与义务、知识产权声明、免责声明、责任限制等条款。
  2. 隐私政策

    • 这份文件详细说明了 TimeGuessr 项目如何收集、使用、存储、保护和分享用户的个人数据。
    • 其内容旨在向用户透明化其数据处理实践,并确保符合相关的隐私保护法规。

总结: TimeGuessr 项目通过提供《使用条款》和《隐私政策》,确立了其运营的法律框架,旨在明确用户与项目方之间的契约关系,并保障用户的知情权与数据隐私。

31. WWDC25: macOS Tahoe Breaks Decades of Finder History (512pixels.net)

WWDC25:macOS Tahoe打破数十年Finder图标传统

在WWDC25主题演讲中,macOS Tahoe的Finder图标方向发生了反转,深色部分从传统的左侧移至右侧。作者认为这一改动违背了数十年的设计传统,应被撤回。

历史演变

Finder图标自1996年的System 7.5.3起,其深色部分始终位于左侧,该设计历经Mac OS 8、Mac OS X公测版(2000年)、Panther(2003年)、Lion(2012年)、Yosemite(2014年)及Big Sur(2020年),基本保持了一致性。

作者建议与行动

作者认为,尽管新图标旨在与Liquid Glass设计语言同步,但应保留传统。他使用Apple新推出的Icon Composer应用测试了将现有Big Sur Finder图标适配Liquid Glass风格,效果良好(支持透明与着色模式)。作者已将该问题作为反馈(FB17840162)提交给Apple。

后续更新

macOS Tahoe开发者测试版2中,Finder图标已恢复为传统方向

32. A bit more on Twitter/X's new encrypted messaging (blog.cryptographyengineering.com)

X/Xchat 加密消息协议的安全分析总结

核心安全问题

X/Xchat 的端到端加密存在根本性缺陷,主要风险在于密钥管理方案

  1. 无私向前保密:不同于 Signal 协议,Xchat 使用接收方的长期公钥加密每条消息,无法抵御长期密钥泄露导致的历史消息解密风险。
  2. 私钥由X公司控制:用户私钥存储在X公司的服务器上。用户需使用密码(如PIN)登录X的密钥存储系统以获取私钥。虽然这种设计支持无状态客户端(如网页浏览器),但服务提供商能访问解密密钥,严重违背端到端加密原则。
  3. 密钥存储基于 Juicebox 协议:Xchat 使用 Juicebox 协议将用户密钥材料分片存储在三台服务器上,理论上可防止单点故障或泄露。

Juicebox 协议设计与X的部署问题

设计目的:解决端到端加密应用中用户私钥难以安全存储和跨设备同步的问题。核心思路是用用户易记的弱密码(如PIN)加密强密钥,并辅以服务器端暴力尝试防护。

关键机制

  • 密码强化:服务器存储一个强秘密,与用户密码通过阈值混淆伪随机函数混合,生成强加密密钥。
  • 尝试限制:服务器限制错误密码尝试次数,达到上限后锁定或销毁账户相关密钥。
  • 分布式部署:通过多个服务器分片实现容错和安全性。

X部署的安全隐患

  • 无可信执行环境:Juicebox 理想的安全性依赖于使用硬件安全模块或跨不同信任方部署服务器。证据表明,X 的部署可能全部为纯软件实现,且所有服务器均由X公司控制。
  • 无法验证的HSM声明:X工程负责人声称使用了HSM,但缺乏公开的密钥生成仪式、审计或代码验证。技术分析(如时序分析)暗示其可能运行的是不安全的“软件HSM”测试模式。
  • 单方控制风险:若所有服务器由同一实体控制,该实体可绕过尝试限制,暴力破解弱密码,从而恢复任何用户的私钥并解密其消息。

Juicebox 协议技术细节

  • 核心密码原语阈值混淆伪随机函数。服务器持有一个密钥,客户端输入密码,双方联合计算PRF输出,服务器不获知用户密码,客户端获得强密钥。
  • 注册与验证:用户首次注册时获得强密钥并生成一个验证标签存于服务器。后续登录时,客户端需证明获得了正确的密钥,以重置服务器的错误尝试计数器。
  • 潜在攻击
    1. 慢速猜测攻击:攻击者可进行少量猜测,等待真实用户登录重置计数器,从而缓慢累积尝试次数。
    2. 跨服务器协调不足:若服务器间不同步尝试计数,攻击者可对不同的服务器子集分别尝试,突破总尝试次数限制。
    3. 服务器ID重用攻击(理论风险):若恶意服务器使用与合法HSM服务器相同的领域ID,可能窃取验证标签,从而对合法服务器进行无限次尝试。

结论与建议

目前,不应假设 Xchat 能提供真正的端到端加密保护。其核心弱点在于密钥存储方案在X的部署下可能无法抵御服务提供商自身的访问或法律强制要求。在X提供可独立审计的HSM使用证明及多组织分布式部署证据之前,用户应视为X公司具备解密任何Xchat消息的能力。若追求强安全性,应选择使用经过验证的协议(如Signal协议)并采用分布式信任模型或可信硬件的服务。

33. Implementing DOES> in Forth, the entire reason I started this mess (boston.conman.org)

在Forth中实现DOES>的摘要

背景与挑战

DOES>是Forth中的一个定义词,用于创建具有自定义行为的单词,但其实现机制复杂。作者最初对DOES>的工作原理感到困惑,类似于JavaScript程序员使用闭包而不必了解其底层实现。本文详细描述了作者在6809架构上使用间接线程代码(ITC)实现DOES>的过程,并解释了其时间方面和关键功能。

示例:创建形状打印单词

文章以一个示例开始,展示如何用CREATEDOES>定义单词SHAPE,用于打印ASCII艺术形状:

  • STAR:打印星号。
  • .ROW:根据8位值的每一位打印星号或空格。
  • SHAPE:使用CREATE创建新单词,编译8个数据字节到新单词的身体中,然后通过DOES>定义运行时行为。
  • MAN:使用SHAPE定义的具体形状,数据为十六进制值。

CREATEDOES>的工作原理

  • CREATE:创建一个新字典条目,其默认动作是推送单词身体地址到栈。例如,MAN的结构包括链接、名称、xt(执行令牌)和身体。
  • DOES>:修改新创建的单词,使其不仅推送身体地址,还执行DOES>之后的代码。这是一个即时单词,在编译时执行,具有三个时间方面:
    1. 编译时(时间1):在编译定义单词(如SHAPE)时,DOES>被编译,生成一个运行时xt(forth_core_does.runtime_xt),并布局一个指令JSR forth_core_create.does_hook,同时将后续代码编译到当前单词中。
    2. 定义时(时间2):当运行定义单词(如SHAPE)创建新单词(如MAN)时,DOES>的运行时修改新单词的xt,将其指向shape.does(包含DOES>之后的代码)。
    3. 运行时(时间3):当运行新创建的单词(如MAN)时,它执行JSR forth_core_create.does_hook,该钩子推送身体地址到栈,并设置环境以执行DOES>代码。

实现细节

  • 代码结构:作者提供了汇编级别的细节,展示SHAPEMAN的编译结果。SHAPE的xt包含多个Forth单词的运行时xt,如forth_core_create.xtforth_core_literal.runtime_xt等,最后以forth_core_does.runtime_xt结束。
  • DOES>的运行时:在时间2,DOES>的运行时(forth_core_does.runtime_xt)获取新单词的xt,将其替换为shape.does,并结束SHAPE的执行。
  • 钩子机制forth_core_create.does_hook是一个扩展,它从栈中拉取返回地址(指向DOES>代码),推送当前Forth IP(Y寄存器)到返回栈,然后跳转到DOES>代码执行,同时推送身体地址到数据栈。

挑战与原因

  • 作者指出JonesForth(一个已知的Forth实现)没有实现DOES>,可能是因为其使用直接子程序调用,要求内存既可写又可执行,而现代系统通常禁止这种操作。
  • 实现DOES>的困难在于其时间方面的复杂性,需要协调编译、定义和运行时三个阶段。

结果

最终,运行MAN会打印一个星号形状的ASCII艺术:

   **   
   **   
  ****  
 * ** * 
*  **  *
  *  *  
  *  *  
  *  *

作者成功实现了DOES>,尽管存在内存可写可执行的潜在问题,但对此成果表示满意。

总结

本文通过示例和汇编代码详细解释了在Forth中实现DOES>的方法,强调了其三个时间方面和钩子机制。实现基于ITC和6809架构,解决了作者最初的困惑,并提供了技术见解。

34. Faster, easier 2D vector rendering [video] (www.youtube.com)

YouTube 上盡享你喜愛的影片和音樂、上載原創內容,並與親友和世界各地的人分享。

35. Show HN: PyDoll – Async Python scraping engine with native CAPTCHA bypass (github.com)

PyDoll:异步Python爬虫引擎

PyDoll 是一个原生异步、完全类型化的Python爬虫引擎,专为规避反爬机制高性能而设计。它通过WebSocket直接连接Chrome DevTools Protocol(CDP),实现对Chrome、Edge等Chromium内核浏览器的自动化控制。

核心特性与优势

  1. 无需WebDriver:不依赖WebDriver二进制文件,避免了navigator.webdriver标志和兼容性问题。
  2. 异步与类型安全:基于asyncio构建,100%经过mypy类型检查,提供完整的IDE自动补全和静态错误检查。
  3. 结构化数据提取:引入基于Pydantic的提取引擎,通过定义模型即可将DOM直接映射为结构化的Python对象,极大简化了数据提取流程。
  4. 内置规避能力:支持类人鼠标移动、真实键盘输入以及浏览器指纹配置管理,以绕过反爬检测。

主要功能

  • 状态化自动化与规避:提供命令式API进行页面导航和交互。通过设置humanize=True参数,可实现带有类人时序的鼠标和键盘操作,有效对抗基于行为分析的反爬系统。
  • 结构化数据提取:用户定义Pydantic模型(ExtractionModel),使用tab.extract()tab.extract_all()方法,即可获得类型化、已验证的数据。支持CSS/XPath自动检测、HTML属性提取、自定义转换和嵌套模型。
  • Shadow DOM与iframe支持:能完全操作Shadow DOM(包括闭合模式)和跨域iframe,可在其中发现、查询和交互元素。
  • 网络控制
    • 拦截与监控:拦截请求以阻止广告、跟踪器;监控网络流量用于API发现。
    • 认证HTTP请求:使用tab.request发起继承浏览器会话(如Cookie、头部信息)的HTTP请求,实现UI自动化与API调用的混合工作流。
    • HAR录制:录制网络活动并导出为HAR文件,可用于重放请求。
  • 类人鼠标操作:移动轨迹基于贝塞尔曲线、遵循Fitts定律时序、具有最小抖动速度曲线和生理震颤噪声,并提供过冲修正。
  • 浏览器配置:通过browser_preferences对数百项Chrome内部设置进行精细控制,以构建一致的浏览器指纹。
  • 并发与连接管理:支持多标签页、浏览器上下文(隔离会话)的并发管理,并可连接到运行在Docker或远程服务器上的浏览器实例。
  • 其他实用功能:提供@retry装饰器(支持自定义恢复逻辑和指数退避)、页面资源打包(保存为.zip离线查看)等。

安装与使用

通过pip安装,无需外部依赖:

pip install pydoll-python

代码示例展示了两种典型用法:一是使用命令式API进行带规避的Google搜索模拟;二是使用声明式模型从“quotes.toscrape.com”网站提取名言数据,展示了嵌套模型、属性提取和自定义转换。

项目信息

PyDoll遵循MIT许可证开源,欢迎社区贡献。其官方网站提供详细文档,项目可在GitHub上获取,并设有赞助支持渠道。

36. Show HN: High End Color Quantizer (github.com)

patolette 是一个用于颜色量化和抖动处理的 C / Python 库,目前处于 beta 阶段。

核心特点与功能

  • 核心算法:实现了一种加权变体的 Xiaolin Wu PCA 量化器。
  • 关键特性
    • 避免了轴对齐的细分。
    • 支持 CIEL*u*v*ICtCp 色彩空间。
    • 可选择使用显著性图为视觉突出的区域分配更高权重。
    • 可选 KMeans 优化步骤。
  • 状态:仍在开发中,尚不适合生产环境,但已可用。

安装

目前没有 PyPI 包,需手动构建安装。支持 Linux (Debian)macOSWindows。安装步骤涉及克隆仓库、安装依赖(如 flannOpenBLASlibomp)和编译。

  • x86 优化:可通过 CMAKE_ARGS 环境变量为内置的 faiss 设置指令集扩展(如 AVX2、AVX512)以提升 KMeans 性能。

基本用法

库本身不处理图像解码/编码。典型流程如下:

  1. 使用第三方库(如 Pillow)读取图像并转换为 sRGB [0, 1] 色彩空间的 NumPy 数组。
  2. 调用 quantize 函数,传入图像尺寸、颜色数据、目标颜色数(如 256)及可选参数(如色彩空间、瓦片大小、KMeans 迭代次数)。
  3. 函数返回成功标志、调色板、调色板映射图和信息。将映射图应用于调色板即可得到量化后的图像。

参数与配置

  • 色彩空间
    • CIEL*u*v*:调色板质量极高,尤其适合非常低的颜色数量,但结果平滑度较低。
    • sRGB:结果相对平滑且一致,但调色板质量最低,不太适合低颜色数。
    • ICtCp(默认):前两者的良好折衷,生成较平滑的结果且调色板质量不错。
  • 瓦片大小 (tile_size):用于缓解调色板生成中大集群主导小集群的问题。当非零时,会引入一个基于显著性图的加权步骤。瓦片尺寸越小,效果越强。默认为 512。

当前限制与注意事项

  1. 内存使用:当前内存消耗较高。4K 分辨率以内相对安全,6K 及以上可能进入危险区,取决于系统内存。
  2. 速度:性能尚未优化,相比中位切分/八叉树等快速方法较慢。
  3. C API 不完整:v1 版本前,C API 缺少显著性图加权功能。
  4. 不支持 RGBA:暂不支持带透明度的图像。
  5. 法律提示:该软件包含受美国专利 US9454712B2(Adobe Inc. 所有)覆盖的内容。BSD-3-Clause 许可不包含对该专利的授权。用户在使用前应自行审查专利权,商业用途可能需要获得专利许可。

依赖与致谢

依赖于 faissflannOpenBLAS 等库。其技术基于 Xiaolin Wu 的颜色量化论文、最小屏障显著目标检测论文、Riemersma 抖动算法等研究。

37. Show HN: Somo – a human friendly alternative to netstat (github.com)

Somo:人类友好的网络监控工具

Somo 是 netstat 的一个现代化、用户友好的替代品,用于在 Linux 和 macOS 上监控套接字和端口。它提供了美观的表格视图、丰富的过滤和排序功能,并支持交互式操作。

核心亮点

  • 界面友好:以清晰美观的表格形式展示网络连接信息。
  • 功能强大:支持对输出结果进行过滤和排序。
  • 交互操作:可在检查连接后,交互式地终止进程。
  • 输出灵活:支持 JSON 格式输出和自定义输出格式。
  • 简化命令:将常用的 netstat -tulpn 命令简化为 somo -l
  • 跨平台:完全支持 Linux 和 macOS 操作系统。

安装方法

提供多种安装方式:

  • 通过 Cargocargo install somo。为使用 sudo 权限,可创建符号链接。
  • Debian:从项目发布页面下载 .deb 安装包。
  • Arch Linux:使用 yay -S somo
  • Nix:使用 Nix Flakes 构建。
  • Homebrewbrew install somo(适用于 macOS 和 Linux)。

主要功能

强大的过滤能力

可以通过多种标志过滤连接:

  • 按协议--tcp (TCP), --udp (UDP)。
  • 按端口--port (本地端口), --remote-port (远程端口)。
  • 按地址与进程--ip (远程IP), --program (程序名), --pid (进程ID)。
  • 按连接状态--open (打开), --listen (监听), --established (已建立)。
  • 按IP版本--ipv4, --ipv6

输出与排序

  • 紧凑视图:使用 --compact 获得更简洁的表格。
  • 排序:使用 --sort 按指定列(如 proto, local_port, pid 等)升序排序,配合 --reverse 可降序。
  • JSON输出:使用 --json 以 JSON 格式输出。
  • 自定义格式:使用 --format 定义输出模板,例如 --format "PID: {{pid}}, Port: {{local_port}}"

实用工具

  • 进程管理:使用 --kill 标志可在查看后交互式终止选定的进程。
  • 服务名注释:使用 --annotate-remote-port 可为远程端口显示 IANA 注册的服务名称(如 443 -> https)。
  • 配置文件:运行 somo generate-config-file 可创建配置文件,用于设置默认运行参数。
  • 自动分页:输出内容超过终端高度时会自动使用分页器(可通过 --no-pager 禁用)。
  • Shell 补全:支持为 Bash、Zsh、Fish 和 Elvish 生成命令补全脚本。

平台支持

  • Linux:完全支持。
  • macOS:完全支持。
38. Denmark: Minister for Digitalization wants to phase out Microsoft (nordjyske.dk)

丹麦数字化部长卡罗琳·斯塔吉计划从下个月起,在部内逐步淘汰微软产品。其目标是今年夏天让一半员工开始使用LibreOffice替代微软的Office套件,若进展顺利,整个部门将在秋季前完全停用Office。

斯塔吉表示愿意亲自带头试用,并强调若转换过程过于繁琐,短期内可退回原有方案。此举源于部长希望减少丹麦对美国大型科技公司的依赖,提升“数字主权”。该计划与即将发布的、由国家、地区和市政府共同商定的数字化战略相关,该战略将数字主权列为优先事项。

当前国际形势及与美国的关系,推动了丹麦关于数据保护和美国数字基础设施使用的讨论。议会中的左翼党团和替代党均主张与美国科技巨头脱钩,要求政府尽快制定实现数字主权的计划。

39. The hunt for Marie Curie's radioactive fingerprints in Paris (www.bbc.com)

居里夫人在巴黎的放射性指纹追寻

2025年6月,记者携盖革计数器前往巴黎居里博物馆,探寻玛丽·居里(居里夫人)工作场所中残留的放射性痕迹。这些痕迹是居里夫人在20世纪早期徒手处理镭、钋等放射性元素时留下的。

发现的痕迹与评估 在居里夫人曾经的办公室和实验室里,门把手、椅子靠背、书页、仪器甚至一份1902年计算镭原子量的关键实验笔记上,都检测到了轻微的放射性读数(约0.24微西弗/小时),远低于安全限值。专家确认这些残余放射性已渗入物体内部,表面污染已被清除,不会对游客或工作人员构成风险。这些痕迹被视为重要的科学遗产。

艰苦的研究条件 居里夫人及其丈夫皮埃尔·居里于1898年发现镭和钋。他们的早期研究在巴黎大学一个漏雨的棚屋里进行,条件极其简陋,没有任何安全防护,直接暴露于放射性粉尘和有毒化学气体中。他们通过处理数吨沥青铀矿渣提炼出微量新元素。

遗产的保护与销毁 放射性痕迹的管理面临两难:是作为历史遗产保存,还是作为核废料处理?法国放射性废物管理机构Andra的专家在居里夫人孙女家中发现一个她曾使用的柜子,其门把手和抽屉处有无法清除的镭污染。出于对未来所有者安全的考虑,该柜子最终被切割并在核废料设施中焚化。

放射性风险的认知变迁 当时,居里夫妇对放射性危害缺乏认知,甚至观察到镭能灼伤皮肤后,还认为这可用于治疗肿瘤。居里夫人本人可能因长期接触X射线和放射性物质,最终死于白血病。如今,安全规程已天差地别,研究人员必须在授权实验室使用防护设备操作放射性材料。

精神的传承 尽管涉及放射性遗产,但居里夫人实验室所在的建筑至今仍是活跃的癌症研究园区的一部分,现代研究人员在此工作。博物馆馆长认为,这些物质痕迹是连接过去与未来的纽带,体现了居里夫人对科学无畏探索和严谨合作的“居里精神”,激励着新一代科学家。

40. "Localhost tracking" explained. It could cost Meta €32B (www.zeropartydata.es)

Meta(Facebook/Instagram母公司)被指控采用了一种名为“localhost跟踪”的技术,在用户不知情且未获得有效同意的情况下,将其移动浏览器上的浏览活动与用户的真实社交账号关联起来。该技术规避了Android系统的隐私保护,即使用户在使用VPN、浏览器隐身模式或删除Cookie的情况下,追踪依然有效。

技术原理

该技术通过手机上的两个“隐形通道”实现:

  1. 后台监听应用:用户手机上的Facebook或Instagram应用在登录状态并切换至后台后,会创建一个服务,持续监听本地网络端口。
  2. 网站追踪脚本:用户通过手机浏览器访问集成了Meta Pixel(追踪代码)的网站。该脚本会利用WebRTC等技术,将一个标识符(_fbp cookie)通过本地网络发送给正在后台监听的Meta应用。
  3. 身份关联:后台应用收到该标识符后,会将其与用户已登录的真实Facebook/Instagram账号信息打包,发送至Meta服务器。至此,用户的匿名网页浏览活动便与其真实身份绑定。

影响与违规指控

  • 规模巨大:全球约22%的顶级网站受到影响,在美国,超过1.7万个网站在未获用户同意的情况下启动了此类追踪。
  • 违规严重性:Meta面临同时违反三项主要欧盟法规的指控,罚款可累计计算:
    • 《通用数据保护条例》:因未获有效同意处理个人数据、违反数据最小化原则,最高可罚全球年收入的4%。
    • 《数字服务法案》:若基于特殊类别数据(如推断出的健康、政治观点)进行定向广告,最高可罚年收入的10%。
    • 《数字市场法案》:该法规明确禁止未经用户明确同意,合并来自不同核心平台服务的个人数据。此技术涉嫌在Facebook、Instagram等服务间合并数据,初犯罚款上限为年收入的10%,屡犯可升至20%。
  • 潜在罚款:基于Meta 2024年超过1640亿欧元的全球年收入,这三项罚款的理论上限合计约为320亿欧元。
  • 监管背景:Meta已被认定为“守门人”和“超大型在线平台”,且有违规前科。监管机构对其缺乏配合调查的态度及系统性规避隐私保护的行为持严厉看法。

关键结论

该事件揭示了一种设计精巧、绕过现有隐私保护框架的用户跟踪方法,导致用户在未明确知情同意的情况下,其广泛的网络行为被直接关联到现实身份。Meta因此面临来自多部法规的、空前严厉的叠加处罚风险。

41. The Xerox Alto, Smalltalk, and rewriting a running GUI (2017) (www.righto.com)

文章介绍了在复古Xerox Alto计算机上成功运行Smalltalk-76环境的过程,并重点展示了该系统的一个非凡特性:可在系统运行时实时查看和修改其代码。作者通过实际修改一个运行中的滚动条(ScrollBar)代码来演示这一功能。

主要内容概述:

  1. 历史意义:Smalltalk是影响力深远的编程语言和环境,首次引入了“面向对象编程”这一术语,并奠定了现代图形用户界面(GUI)的基础,包括桌面隐喻、重叠窗口、弹出菜单等。其GUI曾直接启发了苹果Lisa和Macintosh的设计。
  2. Xerox Alto:这台于1973年诞生于Xerox PARC的计算机具有革命性意义,是GUI、高分辨率位图显示、以太网等技术的先驱。本文基于一台修复后的Alto。
  3. Smalltalk环境演示
    • 桌面环境:展示了带有绘图程序、类浏览器、文件查看器和代码输入窗口的Smalltalk-76桌面。
    • 动态代码修改:使用内置的类浏览器,作者定位到滚动条的“show”方法,修改了其绘图代码(将 clear: white 改为 clear: black),并通过弹出菜单选择“compile”。代码被重新编译后,无需重启系统,所有现有和新窗口的滚动条立即变为黑色背景。这体现了Smalltalk强大的动态性和透明度。
    • 代码透明性:系统几乎所有代码(包括数学函数如平方根计算)都可用Smalltalk编写并可在类浏览器中查看。
  4. 技术特点与性能:Smalltalk语法独特(使用如 ⇒、⇑、⦂ 等特殊符号)。虽然基础操作有优化,但整体性能较慢,曾被形容为“庄严”到“蜗牛”般的速度,促使Xerox PARC开发了更快的Dorado计算机。
  5. 现代影响与延续:Smalltalk对后续众多面向对象语言(如Java、Python、Objective-C)及设计模式产生了深远影响。其版本(如Smalltalk-80)被授权,并衍生出Pharo、Squeak、GNU Smalltalk等现代实现,Squeak更启发了儿童编程语言Scratch。
  6. 体验方法:读者可通过Living Computers Museum提供的Contralto模拟器体验Alto Smalltalk,但速度依然缓慢。

核心要点:文章的核心在于展示Smalltalk-76系统可在运行时无缝修改自身代码这一超越时代的交互式开发特性,以及它作为现代GUI和面向对象编程鼻祖的重要历史地位。

42. Dubious Math in Infinite Jest (2009) (www.thehowlingfantods.com)

《无尽的玩笑》中的可疑数学(2009)摘要

本文作者Mike Strong作为大卫·福斯特·华莱士的粉丝,在两次阅读小说《无尽的玩笑》后,记录了文中出现的四处数学错误,并进行了分析。作者指出,华莱士本人具有数学素养,但这些错误仍然存在,他并未对此提出理论解释,仅希望引发讨论。

四处数学错误详述

  1. 网球比赛概率错误(第259页)

    • 全知叙述者声称108局网球比赛以54局平局结束的概率为1/2^27。
    • 作者指出,正确概率应通过组合数学计算:108! / (54! × 54! × 2^108),约等于0.0766,远高于叙述者给出的约7.45×10^(-9)。
    • 作者通过4局比赛平局概率(正确为6/16,而非1/2)的枚举示例,进一步证明叙述者的计算方法错误。
  2. 积分中值定理误用(第1023-1024页脚注)

    • 角色Mike Pemulis在描述如何分配核武器时,提及使用积分中值定理
    • 作者指出,该定理仅证明满足条件的点(x')的存在性,并未提供求解(x')的方法,因此难以应用于实际计算。
    • 附加排版错误:脚注中该定理的数学表达式缺少积分符号(∫)。
  3. 导数表达错误(第1063页脚注)

    • Mike Pemulis声称函数(x^n)的导数为(nx + x^{n-1})。
    • 正确导数应为**(nx^{n-1})**。作者认为此错误可能为排版失误。

背景与意图

  • 作者最初因华莱士的数学文章《龙卷风巷中的衍生运动》而重新关注小说中的数学错误。
  • 文章指出,这些错误均出自两位“应具备数学能力”的角色:叙述者和Mike Pemulis。
  • 作者强调,本文仅为记录,不提供错误原因的理论,并欢迎读者提出见解。

总结

文章系统梳理了《无尽的玩笑》中四处数学不准确之处,涉及概率计算、定理应用与导数表述,其中两处可能为排版错误。作者以严谨的数学推导指出错误,并保持开放态度邀请讨论。

43. Me an' Algernon – grappling with (temporary) cognitive decline (tidyfirst.substack.com)

作者通过个人经历探讨了认知衰退的挑战与应对。童年时阅读《献给阿尔吉侬的花束》曾让他对智力提升感到兴奋,而如今重读却因对认知丧失的共鸣而感伤。

过去5-7年间,作者出现了一系列神经系统症状,包括短期记忆严重下降、社交回避、面孔失认、处理复杂问题能力下降以及社交脱抑制(无故激怒他人且无法理解原因)。这些症状影响了他的编程工作和人际关系。

经过梅奥诊所的全面检查,排除了脑瘤和额颞叶痴呆等致命疾病。医生诊断其症状属于“额颞叶表型模仿症”(即症状类似但并非真正的额颞叶痴呆),约20%出现此类早期症状的患者不会进一步恶化。病因未明,有理论认为与创伤后应激障碍(PTSD)有关,但治疗面临困难与不确定性。

作者坦言,认知能力的下降威胁到他的职业与自我认同。尽管如此,他选择公开经历,以鼓励有类似困扰的人寻求帮助,并学会适应“新常态”。文中提到“增强编程”工具(被比喻为“大脑外骨骼”)帮助他重拾编程热情与能力,部分弥补了因正常衰老和认知变化带来的耐心流失。

回顾这段经历,作者意识到过度将自我价值与智力绑定是错误的。最终,他强调:认知能力并非理所当然,应珍惜并善加利用。