2024-10-16

37 篇热帖

1. FTC announces "click-to-cancel" rule making it easier to cancel subscriptions (www.ftc.gov)

FTC发布“一键取消”规则,简化订阅取消流程

规则核心要求

美国联邦贸易委员会宣布最终规则,要求商家必须让消费者取消订阅的难度不得高于注册时的难度。该规则大部分条款将在《联邦公报》刊登180天后生效。

规则适用范围与关键条款

  • 适用范围:适用于几乎所有媒体中的“负面选择”(即消费者未明确拒绝即被视为同意续费)营销计划。
  • 主要禁止行为
    1. 禁止误导:不得对负面选择营销中的任何重要事实进行虚假陈述。
    2. 强制事前披露:在获取消费者账单信息并收费前,必须清晰、显著地披露重要条款。
    3. 获取明确同意:在收费前,必须获得消费者对负面选择功能的明示知情同意。
    4. 提供简易取消渠道:必须提供一个简单的取消机制,并立即停止收费。

规则制定背景与动机

  • 该规则是对1973年《负面选择规则》的现代化修订,旨在应对数字经济中日益增长的不公平或欺骗性订阅及循环付款实践。
  • FTC每年收到数千起相关投诉,且数量持续增长:从2021年日均42起增至2024年日均近70起。
  • 2023年3月提出拟议规则后,收到了来自消费者、政府机构、消费者团体和行业协会的超过16,000条评论。

最终规则的调整

基于公众意见评估,最终规则做出了一些调整,其中最显著的是

  • 删除了要求商家每年向消费者发送订阅提醒的条款。
  • 删除了禁止商家在消费者寻求取消时,在未征询其意愿的情况下向其介绍计划修改或续订理由的规定。

批准情况

委员会以3比2的投票结果通过了该最终规则。委员Melissa Holyoak和Andrew N. Ferguson投了反对票。委员Rebecca Kelly Slaughter发表了单独声明,委员Holyoak发表了单独的反对声明。

2. Sqlite3 WebAssembly (sqlite.org)

Sqlite3 WebAssembly 项目摘要

该网站是 SQLite 官方项目中关于 WebAssembly (WASM) 和相关 JavaScript API 的文档中心,旨在使 SQLite 数据库能在支持 WASM 的现代浏览器中使用。

网站概述与资源

文档涵盖以下关键内容:

  • 项目信息:包括项目简介、最新动态、常见问题解答、开发计划以及技术支持渠道(主要通过 SQLite 论坛)。
  • 使用指南
    • 提供三步快速入门教程,演示如何加载和运行 SQLite WASM 模块及关联的 JS API。
    • 列出了下载途径,包括主项目下载页、预发布快照和 npm 模块。
    • 包含构建说明,详述如何使用 Emscripten 构建 WASM 模块及 JS 代码。
  • API 文档
    • API 索引是核心,描述了不同的 API 变体及其加载和访问方式。
    • 附有代码示例手册,提供客户端代码的实用“食谱”。
    • 涵盖持久化存储选项、在 JS API 中使用 C 结构体、创建虚拟表和表值函数等高级主题。
    • 提供了模块符号应用,用于生成 API 符号列表。
  • 其他信息:包括项目许可证和文档维护说明。网站使用客户端存储保存浏览偏好(如明暗模式),但强调服务器不处理或传输用户信息。

实际应用与第三方项目

多个第三方项目已集成此技术,展示了其应用场景:

  • 数据库浏览工具:如 SQLime。
  • 本地优先平台:如 Evolu。
  • 框架集成演示:如与 Next.js 集成的 SQLiteNext,以及与 Vite 工具链集成的 sqlite-wasm-esm。
  • 存储方案创新:如 sqlite-wasm-http(提供只读 HTTP 访问)。
  • 历史与先驱:列举了早期在浏览器中使用 SQLite 的项目,如 sql.js(2012年),以及在 OPFS 存储、IndexedDB 存储等方面做出创新的项目,如 wa-sqlite、absurd-sql。
  • 其他衍生项目:包括在浏览器中运行 PostgreSQL 的 postgres-wasm,用于操作 WASM C 结构体的辅助库 Jaccwabyt,以及在服务器和浏览器中协作的 CoWasm 等。

第三方文档与文章

提供了由第三方发布的关于 SQLite WASM 的重要技术文章,例如:

  • 谷歌 Chrome 团队撰写的关于从 WebSQL 迁移到 OPFS 存储的文章。
  • VMware OCTO 团队关于为 WASI 构建 SQLite3 的文章。
3. Traveling with Apple Vision Pro (azadux.blog)

苹果Vision Pro旅行使用体验概述

苹果Vision Pro已成为飞行旅程中的必备设备,尤其适合飞机和火车旅行,能提供选择性隔离环境并沉浸于电影或工作的机会。

打包与安检

  • 不推荐官方旅行盒,因其体积过大。建议使用默认的Vision Pro保护套和通用VR镜头保护盖,直接放入背包。
  • 机场安检时,Vision Pro通常不会引起额外询问,X光扫描下外观不显眼。

核心功能与体验

  • 旅行模式:自动检测移动环境并激活,主要依赖SLAM摄像头追踪,避免IMU数据漂移。需注意头部倾斜会影响虚拟界面水平。
  • 电池续航:约2.5-3小时,适合短途。长途飞行可借助座位电源或高输出充电宝(如60W的12k mAh电池组)。
  • 舒适度:第三方头带(如VR Cover)可改善重量分布。透视模式和EyeSight功能允许用户保持对周围环境的感知,便于与乘务员互动。
  • UI交互:眼动追踪与手指捏合操作相对低调,减少手臂动作,适合公共场合。

观影体验

  • 应用与画质:优先使用原生visionOS应用(如Apple TV+),支持原生比例、高分辨率、HDR和高帧率(96fps)。iPad应用会存在黑边。
  • 虚拟环境:可选部分虚拟环境(如“白沙滩”)缓解现实物体(如座椅)与虚拟屏幕的深度冲突。电影院模式提供沉浸式巨幕体验。
  • 隐私优势:无需担心画面内容干扰邻座,且屏幕亮度不影响他人。
  • 特殊格式:支持3D电影和IMAX原生宽高比,提供高质量家庭观影体验。
  • 音频:AirPods Pro 2提供降噪和空间音频。可关闭“上下文空间化”以直接播放环绕声混音。
  • 注意事项:在黑暗环境中追踪可能下降;用餐时需摘下设备;部分下载内容可能因网络或授权问题无法播放。

工作与效率

  • Mac虚拟显示:无线连接MacBook,将笔记本屏幕扩展为更高分辨率虚拟显示器(如从1710×1112提升至2560×1440),解决飞机座位角度限制,并提供隐私保护(MacBook屏幕自动黑屏)。
  • iPhone镜像:可投影至Vision Pro,但交互性有限,仍需手持操作,视频播放可能存在AirPlay问题。

其他特性

  • 暗光环境工作:可在全黑环境中使用(追踪降为3DoF,但UI交互仍为6DoF),为其他VR头显不具备的功能。
  • 社交接受度:在飞机上佩戴Vision Pro较少引发侧目,且透视模式有助于保持社交互动。

总结

Vision Pro作为第一代产品,虽存在重量较大、价格高昂、系统生态不完善等缺点,但其在旅行中提供了卓越的沉浸式观影和工作效率提升。作者认为它是经常飞行者的理想伴侣,并预测未来几代产品将成为常旅客的标配。

4. The C23 edition of Modern C (gustedt.wordpress.com)

《Modern C》C23版本现已免费发布,可通过以下链接下载:

本书主要更新以适配C23新标准,旨在与ISO发布进程同步。新版本对内容进行了多处修订,并重点涵盖以下C23特性:

  • 整数相关改进:新增位精确类型 _BitInt(N)、溢出检查算术头文件、位操作头文件、128位类型支持及枚举类型增强。
  • 新语法与工具:引入 nullptr 常量、属性注解、类型推断(auto/typeof)、默认初始化 {}(支持可变长数组)及任意类型的 constexpr 常量。
  • 其他内容:新增复合表达式、lambda、国际化支持及程序失败处理方案。
  • 过渡支持:提供附录和临时头文件,便于在现有平台上快速迁移至C23。

Manning出版社的早期访问计划(MEAP)仍开放中,但纸质版具体出版时间未定。

5. The Internet Archive is back online (arstechnica.com)

互联网档案馆网站遭黑客攻击与数据泄露事件概述

  • 攻击与篡改:上周,黑客入侵了互联网档案馆的网站,并在其页面上显示挑衅信息,声称其安全存在漏洞,并提及已有3100万用户数据被泄露至“Have I Been Pwned”(HIBP)平台。
  • 数据泄露细节:泄露的数据包含注册会员的认证信息,具体涉及电子邮件地址、用户名、密码修改时间戳、经Bcrypt加密处理的密码哈希值及其他内部数据。
  • 防御与应对措施:互联网档案馆创始人布鲁斯特·卡勒于10月9日表示,网站已成功抵御了一次分布式拒绝服务(DDoS)攻击,并因数据泄露和网站篡改事件而正在加紧安全升级。
  • 再次攻击与服务中断:次日(10月10日),卡勒报告DDoS攻击再次发生,导致网站被迫下线。他强调机构正以数据安全为最高优先级,暂时牺牲服务可用性以进行系统检查与加固。
  • 恢复时间线:卡勒在10月11日更新,估计服务将在数天内恢复(而非数周),并感谢外界关心与支持。
  • 当前状态:截至报道时,互联网档案馆网站已恢复在线运行。
6. Hofstadter on Lisp (1983) (gist.github.com)

这篇文章是道格拉斯·霍夫斯塔特(Douglas Hofstadter)于1983年在《科学美国人》专栏上对Lisp编程语言的介绍,旨在阐明其核心思想与魅力。

  • Lisp的地位与特点:文章指出,Lisp是当时人工智能(AI)研究中首选的编程语言,原因在于其设计的“清晰”与“优雅”。它拥有一个如数学般自然的核心,赋予了语言极大的灵活性。
  • 交互式编程范式:Lisp的核心体验是交互式的。用户通过一个“Lisp精灵”(即Lisp解释器)进行对话。解释器遵循“读取-求值-打印”循环,允许用户逐条输入“愿望”(表达式)并立即获得结果,这支持了渐进式的程序开发和调试。
  • 核心数据结构:原子与列表:Lisp程序通过操纵“结构”工作,这些结构分为两种类型:
    • 原子:不可分割的基本单位,如数字(1729)、符号(pi, foo)或字符串。原子可以有值,有些值是固定的(如数字本身),有些则可以通过setq进行赋值和修改。
    • 列表:由原子或其他列表组成的有序集合,是Lisp灵活数据结构的体现。列表用括号表示,例如 (a b c)。空列表即nil,是一个关键概念。
  • 关键函数与操作
    • carcdr:分别用于获取列表的第一个元素和剩余部分组成的列表。
    • cons:用于构造一个新列表,将一个元素添加到现有列表的前面。通过反复使用cons可以从nil开始“构建”列表。
    • 引用:单引号 ' 用于防止表达式被立即求值,使其作为数据(列表或原子)本身被处理。
  • 函数定义与Lambda:Lisp允许用户使用deflambda关键字定义新函数。lambda用于指定函数的参数和定义。例如,可以定义一个rac函数来获取列表的最后一个元素。通过组合已有函数来定义新函数,体现了Lisp强大的抽象能力。
  • 条件表达式cond函数用于实现条件分支,它按顺序检查一系列条件子句,返回第一个条件为真的子句所对应的结果。
  • 求值与副作用:文章讨论了表达式求值的过程,以及函数式编程(应用式风格)的思想。纯粹的函数式风格避免副作用(如修改变量状态),仅通过计算和返回值来工作。虽然Lisp支持副作用操作(如setq),但文章倾向于在可能时采用更纯粹的函数式风格。
  • 最终挑战:文章最后以一个定义幂函数(power)的挑战结束,要求读者运用所学概念,定义一个能计算任意底数和指数的函数。
7. New Mersenne Prime discovered (probably) (www.mersenne.org)

GIMPS项目最新进展与新梅森素数发现

重大发现:目前最大的已知素数

  • 2024年10月21日,GIMPS宣布发现了新的梅森素数 2¹³⁶²⁷⁹⁸⁴¹ - 1
  • 这是目前已知的最大素数,拥有 41,024,320位,比上一个纪录大了超过1600万位。
  • 该发现结束了近28年来由普通个人计算机主导发现最大素数的时代。
  • 发现者:Luke Durant(36岁,美国圣何塞研究员)。
  • 发现方式:使用免费GIMPS软件,通过组织分布在全球17个国家的云GPU构建的“云超算”进行搜索。2024年10月11日,爱尔兰都柏林的一台NVIDIA A100 GPU首先报告其为可能素数;次日,美国德克萨斯州圣安东尼奥的一台NVIDIA H100通过Lucas-Lehmer测试确认其素数性。
  • 官方认可:功劳归于“L. Durant, M. Preda, G. Woltman, A. Blosser et al.”,以表彰整个GIMPS志愿者群体的贡献。
  • 背景:梅森素数形如 2ᴾ - 1,目前仅发现52个。GIMPS项目自1996年成立以来,已发现其中18个。

关键项目里程碑

  • 2025年9月8日:所有小于第50个梅森素数 M(77232917) 的梅森数均已通过验证,该素数被正式确认为第50个。
  • 2025年6月23日:所有小于第49个梅森素数 M(74207281) 的梅森数均已通过验证,该素数被正式确认为第49个。
  • 这些里程碑的达成,得益于GIMPS志愿者多年来不懈的重复验证工作。

重要技术更新与项目动态

  • 2024年11月30日:GIMPS官方商店开设,销售连帽衫、T恤、马克杯等,利润用于支持项目。
  • 2024年3月6日:Prime95软件发布 30.19版本,在分配足够内存时,ECM第二阶段速度大幅提升。
  • 2021年4月8日:停止分配首次Lucas-Lehmer测试任务,全面转向使用带证明的PRP测试。用户需升级至Prime95 30.3+版本。
  • 2020年9月10日
    • 发布Prime95 30.3版本,引入基于Krzysztof Pietrzak突破性研究的 PRP证明 技术。该技术可将验证工作的计算量降低至原来的一半以下,有望使GIMPS的长期处理能力翻倍。
    • 通过SRBase项目,BOINC平台的GPU用户现在可以参与梅森数的试除因子分解工作。
  • 项目现状:截至2025年9月,所有指数低于80,766,113的梅森数均已通过测试和验证;所有指数低于140,455,177的梅森数至少已测试过一次。

参与方式与奖励

  • 如何参与:任何拥有个人电脑的用户均可免费下载GIMPS软件(如Prime95)贡献空闲算力。
  • 奖励
    • 发现新的梅森素数可获得 $3,000 GIMPS研究发现奖。
    • 电子前沿基金会为第一个发现 1亿位 素数的个人或团体提供 $150,000 奖金。
  • 项目统计:每日有超过300万CPU/GPU核心参与运算,峰值算力超过300万GFLOP/s。

梅森素数简介

  • 定义:梅森素数是形如 2ᴾ - 1 的素数,其中P本身也是素数。
  • 意义:寻找梅森素数是数论中的经典问题,对加密学等领域有潜在价值,同时也是一项计算挑战。
  • GIMPS项目:自1996年成立以来,通过分布式计算模式,利用全球志愿者的计算资源,已成为发现大素数的主要力量。
8. Why don't we use awnings anymore (2022) (thecraftsmanblog.com)

遮阳篷的历史、功能与消失原因

在1950年代之前的城市建筑中,遮阳篷曾极为常见,从普通住宅到白宫等大型建筑均有覆盖。这些结构如今已基本消失,其原因与空调的普及密切相关。

遮阳篷的工作原理

遮阳篷是一种被动式加热和冷却系统,通过覆盖窗户顶部来阻挡夏季高角度阳光,减少室内热量进入;而在冬季,较低角度的阳光能透过遮阳篷照入室内,提供自然温暖。这种设计无需人工调节,依靠巧妙的建筑学原理实现全年温度调节。金属框架可耐用数十年,布料覆盖层每8-10年根据气候和暴露情况更换一次。19世纪的建筑工匠在缺乏现代工具和能源规范的条件下,运用此类技术创造出持久舒适的建筑。

遮阳篷消失的原因

遮阳篷的衰落主要归因于20世纪中叶空调技术的广泛应用。随着空调逐渐进入美国家庭,人们不再维护或更换遮阳篷,转而依赖机械制冷。当时能源成本较低,但1970年代能源价格上涨后,社会转向绝缘隔热措施(如增加墙体保温),而忽视了遮阳篷的节能价值。实际上,阻挡阳光入窗是控制室内热量的直接方法。

当前状况与展望

如今,遮阳篷主要用于商业场所的招牌、雨棚以及可伸缩式露台遮阳,但覆盖单个窗户的遮阳篷已罕见。随着能源成本持续上升,作者认为遮阳篷有望重新流行,因其简单有效且能降低全年供暖和制冷费用。文章呼吁读者考虑添加遮阳篷以节约能源,并鼓励在评论区分享看法。

9. MacOS sometimes leaks traffic after system updates (mullvad.net)

MacOS系统更新后可能出现流量泄露

当前状况

  • 问题现象:macOS系统更新后,防火墙功能可能失效,无法正确执行防火墙规则。
  • 影响范围:虽然大部分流量仍会通过VPN隧道(因路由表指定),但部分应用程序(特别是苹果自家应用及服务)可绕过路由表,直接发送外部流量。
  • 已知版本:该问题涉及macOS 14.6至最近的15.1测试版。

后续计划

  • 厂商行动:已将该问题报告给苹果公司,期待未来版本修复。
  • 自行调查:继续研究此问题,为苹果提供更多细节,并探索应用内可行的临时解决方案。

如何检查是否受影响

可通过终端命令进行测试:

  1. 防火墙规则测试

    • 添加一条阻止所有流量的防火墙规则:
      echo "block drop quick all" | sudo pfctl -ef -
      
    • 尝试发送外部流量(通过curl命令):
      curl https://am.i.mullvad.net/connected
      
    • 测试后需清理规则:
      sudo pfctl -d
      sudo pfctl -f /etc/pf.conf
      
  2. 应用泄露测试

    • 确保未连接VPN。
    • 查询默认网络接口:
      route get mullvad.net | sed -nE 's/.*interface: //p'
      
    • 连接VPN后,使用该接口测试:
      curl --interface <接口名称> https://am.i.mullvad.net/connected
      
    • 判断标准:若返回“未连接到Mullvad”,则表明存在流量泄露;正常应显示已连接或无法连接服务器。
10. Reflections on Palantir (nabeelqu.substack.com)

Palantir 近期加入标普500指数,市值逼近千亿美元,风投追捧其前员工,这与其在2016-2020年间因政府合同(如与ICE合作)饱受抗议和道德争议的“间谍技术”形象形成鲜明对比。一位在职八年的前前线部署工程师(FDE)分享了其见解。

独特的工作模式与文化: 公司分为两类工程师:直接驻扎客户现场的前线部署工程师和开发核心产品的工程师。FDE模式要求工程师深入客户(如空客、医疗机构)工作数月,获取深层业务流程知识,快速构建定制化软件解决方案以解决具体问题(如提升A350生产线效率)。这种“现场优先”的方法虽然导致高额差旅成本,但获得了宝贵的隐性知识。随后,产品团队将这些解决方案“产品化”,逐步构建出强大的企业数据平台Foundry,成功实现了从服务公司到产品公司的转型(2023年毛利率达80%)。

公司文化独特,兼具高强度的使命感和浓厚的思辨氛围。员工常讨论哲学,面试可能围绕维特根斯坦展开。公司内部术语丰富,形成了独特的智力世界。其扁平化结构(员工头衔极少)鼓励自主和挑战权威,虽有时导致方向不明确,却催生了许多创新想法。这种文化吸引了大量特立独行、不为市场薪酬所动的人才,包括前情报和军事人员。

核心能力与道德困境: 公司的核心是数据整合——即获取、清洗并连接企业分散、杂乱的数据。这最大的挑战常是组织政治,而非技术。Palantir在平台中内置了强大的数据安全控制,反而常使客户数据更安全。

围绕公司的道德争议主要涉及与政府机构(尤其是国防、情报部门)的合作。作者将客户分为三类:道德中立的商业客户、明确有益的公共项目、以及涉及艰难抉择的灰色地带(如移民执法、军事、能源)。公司立场是与大多数“灰色地带”机构合作,相信民主进程能推动其向善,并通过具体决策(如与ICE不同部门的合作取舍)来权衡。作者认为,完全回避这些关键领域是责任的推卸,投身其中虽伴随道德不确定性,但能产生实际影响(如反恐、疫情药品分发)。

对AI未来的启示与公司前景: 作者认为,数据整合是部署企业级AI的关键基础。未来AI代理将深度参与业务工作流,而这依赖于对关键业务数据的读写访问。Palantir十年间积累的与大型传统行业(制造、医疗、国防)的合作经验及数据整合能力,为其在AI时代抓住机遇奠定了坚实基础。作者对公司的未来持乐观态度。

(注:总结基于文章内容,客观呈现作者观点与描述,不包括个人评论或外部信息。)

11. Meta's open AI hardware vision (engineering.fb.com)

Meta 的开放 AI 硬件愿景

Meta 在 OCP 全球峰会上展示了其最新的开放 AI 硬件设计,旨在通过共享设计来激发合作与创新。随着 AI 模型(如拥有 4050 亿参数的 Llama 3.1 405B)变得越来越复杂,Meta 正在大规模扩展其基础设施,并推动开放硬件解决方案的发展。

AI 基础设施需求急剧增长

  • Meta 的 AI 训练集群已从 16,000 个 GPU 扩展到当前的两个 24,000 个 GPU 集群,并预计计算需求将持续快速增长。
  • 未来 AI 集群将需要极高的带宽(每个加速器每秒数太字节),以及能够处理拥塞的多层无阻塞网络架构。

新硬件平台发布

  1. Catalina:面向 AI 的开放机架架构
    • 基于 NVIDIA Blackwell 平台设计,采用模块化和灵活设计。
    • 引入了支持高达 140kW 功率的 ORv3 高功率机架,采用液冷方案。
    • 旨在赋能他人根据自身 AI 工作负载定制机架。
  2. Grand Teton 平台扩展
    • 在原有支持 NVIDIA 加速器的基础上,现已扩展支持 AMD Instinct MI300X 加速器。
    • 采用单体集成设计,简化部署,提升了计算能力、内存和网络带宽。

网络架构创新

  • 推出 解耦调度架构,这是一种开放的、供应商无关的网络后端,基于 OCP-SAI 标准和 Meta 的 FBOSS 网络操作系统。
  • 开发了基于 Broadcom 和 Cisco ASIC 的新型 51T 架构交换机。
  • 分享了 Meta 设计的第一个网络 ASIC 模块 FBNIC

开放合作推动未来

  • 与微软合作:共同开发 Mount Diablo 解耦电源机架,采用 400VDC 技术,提高效率和可扩展性。
  • Meta 强调,开源软件框架、标准化模型以及开放的 AI 硬件系统对于释放 AI 全部潜力至关重要。
  • Meta 鼓励业界参与 OCP 社区,共同应对 AI 基础设施挑战。
12. I Self-Hosted Llama 3.2 with Coolify on My Home Server (geek.sg)

这篇文章记录了作者在家庭服务器上使用Coolify平台自托管部署Llama 3.2模型的完整过程。作者受他人迁移到自托管VPS的启发,旨在重新利用闲置的旧服务器(AMD Ryzen 9 5950X CPU, GeForce RTX 2060 GPU),用于运行AI任务和业务应用。

主要目标与技术栈:

  • 使用Coolify(开源PaaS)简化应用部署与管理,替代复杂的Kubernetes。
  • 部署Ollama并运行Llama 3.2模型,通过GPU加速提供本地API。
  • 通过Cloudflare Tunnel安全地将服务暴露到公网,使用通配符域名和SSL证书,避免开放服务器端口。
  • 长远计划包括托管Next.js网站、Supabase数据库等。

关键实施步骤与挑战:

  1. 基础安装:安装Ubuntu 24,启用SSH,并通过脚本安装Coolify。过程中遇到权限问题,需以root身份运行脚本。
  2. 网络与域名配置:Coolify默认的localhost服务器无法直接绑定域名,需额外添加服务器(使用IP 172.17.0.1)。配置Cloudflare Tunnel是实现公网访问的关键,但需要正确设置通配符域名(如 *.example.com)以获得免费SSL证书。
  3. 部署Ollama:通过Coolify的图形界面部署Ollama及Open WebUI服务,并配置其通过Cloudflare Tunnel访问的域名。初次运行时,模型在CPU上执行,速度慢且资源占用高。
  4. 启用GPU加速(核心难点)
    • 安装NVIDIA CUDA工具包以支持GPU计算。
    • 安装nvidia-container-toolkit,使Docker容器能访问GPU。
    • 修改Coolify中Ollama服务的Docker Compose配置,添加GPU设备保留,从而让容器利用主机GPU。
    • 完成后,模型推理速度提升10倍以上,CPU负载显著降低。
  5. 安全与后续:计划使用Caddy为本地LLM API添加密钥认证,以安全地对外提供服务。

总体体验与成果: 整个过程挑战与收获并存,从系统安装、平台配置到解决GPU加速的复杂依赖,每一步都是重要的学习经验。最终成功在家庭服务器上搭建了一个高效、安全的AI运行环境,为业务应用提供了本地化的AI能力支持。作者强调,本文旨在提供一份从零开始的详细指南。

13. Medical student's apparent celiac disease responded to giardiasis treatment (www.backpacker.com)

安德斯·约翰逊在2006年夏天开始出现严重的胃肠道问题、抑郁和脑雾,尽管食欲旺盛却持续消瘦。医生最初考虑乳糜泻的可能性,但检测结果仅为临界阳性。约翰逊开始严格遵循无麸质饮食,症状得到部分缓解,但始终未获得明确诊断。

2015年,一位朋友提示他可能患有慢性贾第鞭毛虫病,而非乳糜泻。贾第鞭毛虫病是一种可治疗的肠道寄生虫感染,但其慢性形式可能导致类似乳糜泻的症状。尽管常规检测呈阴性,约翰逊利用自己微生物学专业的资源进行了自主检测,在样本中发现了贾第鞭毛虫包囊。

医生据此为他开具了抗生素、抗真菌药和抗原虫药物的联合治疗方案。数周后,约翰逊通过双盲测试证实,自己已能正常消化麸质,症状完全消失。

内科医生利奥·甘兰德解释称,这种情况属于慢性贾第鞭毛虫病引起的非乳糜泻麸质不耐受。他指出,乳糜泻的诊断可能存在不确定性,且慢性贾第鞭毛虫病的检测容易出现假阴性,单一粪便样本检测的准确率仅约50%。该病的症状多样,可能表现为便秘、关节炎或头晕等,而非典型的肠道不适。

甘兰德医生建议,若怀疑患有慢性贾第鞭毛虫病,应考虑是否有相关暴露史(如野外饮用未处理的水),并推荐寻求有肠道寄生虫治疗经验的医生进行抗原检测,或讨论经验性治疗的可能性。

约翰逊目前从事微生物学研究,他庆幸自己的专业知识使他得以解决这一健康难题,并最终能够再次享用含麸质的食物。

14. Un Ministral, Des Ministraux (mistral.ai)

文章总结:Un Ministral, Des Ministraux

本文是Mistral AI团队于2024年10月16日发布的公告,介绍了其最新推出的两款面向设备端计算和边缘场景的模型:Ministral 3BMinistral 8B。这两款模型被统称为“les Ministraux”,旨在提供高效、低延迟的本地化推理解决方案。

核心亮点与特性

  • 定位与突破:这是在Mistral 7B发布一周年之际推出的新型号,声称在100亿参数以下类别中,在知识、常识推理、函数调用和效率方面树立了新标杆。
  • 技术特性:两款模型均支持长达128k的上下文长度(目前在vLLM上为32k)。Ministral 8B采用了一种特殊的交错滑动窗口注意力机制,以实现更快、更节省内存的推理。
  • 主要应用场景:旨在满足对本地、隐私优先推理日益增长的需求,适用于设备端翻译、离线智能助手、本地分析和自动驾驶机器人等场景。它们还可与更大模型(如Mistral Large)协同工作,作为多步骤智能体工作流中高效的功能调用中间层。

性能表现

文章通过多个基准测试图表展示了les Ministraux的性能优势。

  • 预训练模型:在与Gemma 2 2B、Llama 3.2 3B、Llama 3.1 8B和Mistral 7B的对比中,表现优异。
  • 指令调优模型:在指令遵循和通用能力评估中,同样超越了同级别及部分更大参数的模型。特别值得注意的是,Ministral 3B在大多数基准上已超越了之前的Mistral 7B

可用性与定价

两款模型自发布之日起可用。

  • Ministral 8B:API名称 ministral-8b-latest,定价为每百万token(输入和输出)0.1美元,提供商业和研究双许可。
  • Ministral 3B:API名称 ministral-3b-latest,定价为每百万token 0.04美元,提供商业许可。
  • 部署与获取:用户可通过云合作伙伴部署,或联系Mistral AI获取商业许可和针对特定用例的无损量化支持。Ministral 8B Instruct的权重已可用于研究。

总结

Mistral AI通过发布les Ministraux,进一步巩固了其在高效、小型化模型领域的领导地位,强调其在边缘计算和隐私敏感型应用中的价值,并预示着将持续推动前沿模型的发展。

15. Redbox left PII on decommissioned machines (digipres.club)

Redbox退役设备的硬盘中存在隐私泄露问题。当有人访问这些硬盘时,可以获取一个包含详细信息的文件,该文件记录了所有曾经租借过的影片标题、租借者的电子邮件地址,以及租借的时间和地点。这意味着大量个人可识别信息(PII)没有被妥善移除就转移或弃置,存在数据泄露风险。

16. The Rise and Fall of Matchbox's Toy-Car Empire (www.hagerty.com)

火柴盒玩具车帝国的兴衰

火柴盒品牌真人电影的筹备,引发了对其传奇历史的关注。文章详细阐述了火柴盒从诞生、鼎盛到最终被竞争对手收购的完整历程。

创立与崛起 火柴盒的故事始于二战后的伦敦。工程师约翰·奥德尔莱斯利·史密斯罗德尼·史密斯于1947年共同创立了莱斯尼公司。公司最初生产各类家居产品,1952年,奥德尔为女儿制作了一款能放入火柴盒的微型压铸玩具车,这成为品牌的起点。此后,公司专注于生产这类小尺寸、高性价比的压铸玩具车,并以“Matchbox”(火柴盒)为品牌名,迅速风靡全球。到1960年代末,莱斯尼公司成为全球最大的玩具车制造商,每分钟可生产上千辆玩具车,其产品行销世界。

巅峰与挑战 在创始人奥德尔的工程天赋和莱斯利·史密斯的商业头脑共同推动下,火柴盒达到鼎盛。公司甚至拥有自己涂装的巴士为员工提供通勤服务。然而,1968年,竞争对手美泰公司推出了风火轮系列。风火轮以炫酷的改装车、动感设计和红轮子为卖点,迅速抓住了市场,给走写实、经典路线的火柴盒带来了巨大冲击。尽管火柴盒推出了“Superfast”系列应对,但仍面临严峻竞争。

衰落与易主 1980年代初,英国经济衰退重创了制造业,莱斯尼公司于1982年倒闭。火柴盒品牌随后几经转手,最终在1997年被其老对手美泰公司收购。至此,火柴盒与风火轮这对昔日的竞争对手,成为了同一屋檐下的“兄弟”。

合并后的定位与发展 并入美泰后,火柴盒与风火轮形成了差异化定位:

  • 风火轮:主打天马行空的改装、赛车文化和夸张的赛道玩具。
  • 火柴盒:则保留了其英国血统,更注重真实性、细节还原和现实生活中的车型(如工程车、家用车、经典车),其“活动部件”系列也以精细的开门、开盖等结构为特色。

遗产与未来 创始人奥德尔在公司出售后仍投身于玩具设计,直至1999年。他于2007年去世,墓志铭上写着“我是一个出色的工程师”。火柴盒品牌的故事,是一个关于创新、韧性与时代变迁的传奇。如今,随着基于此品牌的新电影项目启动,这段历史将继续被书写。

19. Efficient high-resolution image synthesis with linear diffusion transformer (nvlabs.github.io)

Sana: 高效高分辨率图像合成的线性扩散Transformer

Sana是一个高效的文本到图像框架,能够合成高达4096×4096分辨率的高保真图像。其核心目标是在保证强大文本-图像对齐的前提下,实现极快的生成速度,甚至可以在笔记本电脑GPU上部署。

核心设计以实现高效性

  1. 深度压缩自编码器:与传统仅8倍压缩的自编码器不同,Sana训练了一个压缩因子高达32倍的自编码器。这使得潜在token数量减少了16倍,对于高效训练和生成4K等超高分辨率图像至关重要。

  2. 高效线性DiT:用线性注意力完全替代了DiT中传统的二次方注意力,将计算复杂度从O(N²)降低到O(N)。结合混合前馈网络,这在高分辨率下提升了效率,延迟降低1.7倍,且无需位置编码。

  3. 解码器专用小型LLM作为文本编码器:使用Gemma等小型解码器专用大语言模型作为文本编码器,以增强对提示词的理解和推理能力。通过设计复杂的人类指令并利用其上下文学习能力,显著提升了图像-文本对齐效果。

  4. 高效训练与推理策略:提出自动标注和训练策略(如使用多个视觉语言模型生成多样重述描述,并基于CLIP分数选择高质量描述)来加速收敛。推理方面,提出的Flow-DPM-Solver将采样步数从28-50步减少到14-20步,同时性能更佳。

整体性能与部署

  • 性能:Sana-0.6B模型规模小但竞争力强。在512×512分辨率下,其吞吐量比同等规模的PixArt-Σ快5倍,并在FID、CLIP分数等多项指标上显著领先。在1024×1024分辨率下,其性能优于多数小于3B参数的模型。
  • 与顶级模型对比:在DPG-Bench上与FLUX-dev准确率相当,GenEval上略低,但Sana-0.6B的吞吐量快39倍。
  • 轻量级部署:Sana-0.6B可在16GB笔记本电脑GPU上运行,在不到1秒内生成1024×1024图像,实现了低成本的内容创作。

相关应用与生态

  • ComfyUI集成:已开发插件用于集成Sana,并提供了工作流示例。
  • Sana-LoRA Dreambooth:支持通过diffusers库进行LoRA微调,以训练定制化模型。
  • Sana ControlNet:实现了专为Transformer设计的ControlNet架构,可在生成高质量图像的同时实现明确的可控性。

项目致力于开发高效、轻量、加速的AI技术,并提供快速的开源解决方案。

20. All possible plots by major authors (2020) (www.the-fence.com)

该文章以戏谑的方式,对多位经典及知名作家的标志性情节模式进行了幽默的归纳与总结。文章开篇提出一个反问:我们常赞美经典作家想象力无限,但为何他们笔下的情节却总似曾相识?

随后,文章通过一系列简短的段落,为每位列出的作家概括了一个极具代表性(且夸张化)的情节套路:

  • 安东尼·特罗洛普:涉及支票兑现错误等琐碎问题,导致幸福受阻的漫长叙事。
  • 伊夫林·沃:关于阶层焦虑与上帝恩典主题的社交尴尬剧。
  • 亨利·詹姆斯:源于一个社交邀请的、充满心理博弈与潜在危机。
  • 格雷厄姆·格林:在与英国官僚机构(如外交部)纠葛中,努力保住一丝尊严的徒劳尝试。
  • 莎士比亚:被归纳为两个模式——成为国王但铸成大错,以及如同《换妻》真人秀的意大利版故事。
  • 塞缪尔·理查森:以书信体描述纯洁女性面临浪荡子威胁的险境。
  • 大卫·福斯特·华莱士:描绘一种无法言表的精神痛苦与焦虑。
  • 马塞尔·普鲁斯特:巴黎唯一异性恋者的一系列冗长午餐。
  • 盖斯凯尔夫人:同情工人苦难却嫁入资本家家庭的北方工业小镇生活。
  • 伊恩·麦克尤恩:艺术家与科学家的二元对立,最终以电影化的结局收场。
  • E.M.福斯特:离开英国后陷入混乱,需一位直率姑妈拯救的故事。
  • 科马克·麦卡锡:世界再无法复原的绝望基调,穿插马匹意象。
  • P.G.伍德豪斯:角色姓名滑稽,围绕为保护姑妈厨师而制造的意外婚约。
  • 艾伦·本内特:舞台上逐渐衰落的机构象征着衰落中的英国。
  • 简·奥斯汀:家族施压下需审慎缔结的与迷人新来者的联盟。
  • 丹·布朗:常春藤名校人文学科教授身陷生死危机,配有法国女伴的冒险。
  • 阿加莎·克里斯蒂:谎言构筑的家庭生活被连环死亡和比利时侦探的询问打破。
  • 扎迪·史密斯:被指挪用现代主义情节的当代小说。
  • 艾丽斯·默多克:被视为对萨特存在主义回应的牛津/汉普斯特德性喜剧。
  • 欧内斯特·海明威:充斥着饮酒细节的行程叙述,及对同伴的厌恶。
  • 约翰·班维尔:爱尔兰乡间宅邸中,艺术史家长篇对比天空与普桑画作。
  • 哈罗德·品特:戏剧式的父子对峙,包含长时间的停顿。
  • F·斯科特·菲茨杰拉德:富有的新婚夫妇在法国南部刻意制造不幸福。
  • 田纳西·威廉斯:愤怒的男性主角大吼着要酒喝的经典场景。
  • 奥斯卡·王尔德:对反复撰写风俗喜剧的俏皮评论。
  • D.H.劳伦斯:在中部地区阳光下,于性行为前阐述一系列个人见解。
  • 托马斯·哈代:概括为谎言、苦难、自杀、强奸与粮食价格。
  • 弗吉尼亚·伍尔夫:上中产阶级家庭用艺术爱好转移对性与一战关注的故事。
  • 汤姆·斯托帕德:一部套娃式、最终落入中学教学大纲的剧中剧。

文章通过这种高度浓缩、带有机智讽刺的笔法,展现了一种文学观察:尽管作家众多,但其情节模式常可提炼出一些反复出现的核心主题与叙事套路。

21. Amazon reveals first color Kindle, new Kindle Scribe, and more (www.aboutamazon.com)

Amazon 发布新款 Kindle 设备系列

全新 Kindle 产品线概览

亚马逊推出全新 Kindle 设备系列,包括首款彩色 Kindle、重新设计的 Kindle Scribe、有史以来最快的 Kindle Paperwhite,以及新款入门级 Kindle(新增抹茶色)。

首款彩色 Kindle:Kindle Colorsoft

  • 彩色显示:采用氧化物背板和定制波形,提供高对比度、快速翻页体验。
  • 技术细节:定制的彩色显示屏配备氮化物 LED 灯和智能算法,增强色彩与亮度,支持标准和鲜艳两种色彩模式。
  • 实用性:支持无线充电、长达 8 周的电池续航,并具备防水功能。

重新设计的 Kindle Scribe

  • 书写体验:屏幕具有纸张质感,支持 300 ppi 高清显示,Premium Pen 提供真实书写手感。
  • 创新功能:Active Canvas 允许在书籍内直接书写笔记,笔记会随文本动态调整位置;新增 AI 驱动的笔记本功能,可快速总结笔记并转换为易读的脚本字体。

最快 Kindle Paperwhite

  • 性能提升:翻页速度提升 25%,采用氧化物薄膜晶体管显示屏,对比度更高。
  • 设计与规格:7 英寸显示屏(首次采用),机身更薄,电池续航长达 3 个月;防水设计,提供 16 GB 存储(标准版)和 32 GB 存储(签名版)。

入门级 Kindle 与儿童版

  • 新款 Kindle:重量仅 158 克,300 ppi 防眩光显示屏,最大亮度提升 25%,提供抹茶色新选择。
  • Kindle 设备:包括 Kindle Kids 和 Kindle Paperwhite Kids,配备多彩保护壳、两年无忧保修,并附赠 6 个月 Amazon Kids+ 订阅服务,提供适龄书籍和有声书。

附加服务与可持续发展

  • Kindle Unlimited:所有新款 Kindle 设备附赠 3 个月订阅,可访问海量电子书、有声书、漫画和杂志。
  • 环保包装:采用 100% 可回收材料,平均 99% 为木纤维基材料,减少油墨使用。

价格与上市时间

  • Kindle:109.99 美元起,现已发售。
  • Kindle Paperwhite:159.99 美元起,现已发售;签名版 199.99 美元。
  • Kindle Colorsoft 签名版:279.99 美元,10 月 30 日发货,现可预订。
  • Kindle Scribe:399.99 美元起,12 月 4 日发货,现可预订。
22. The richest people borrow against their stock (2021) (www.forbes.com)

美国富豪通过质押股票借款避税的现象分析

核心现象

许多美国最富有的人(包括埃隆·马斯克和拉里·埃里森)通过质押其持有的上市公司股票作为抵押来获得信贷额度,以此避免出售股票并缴纳资本利得税。在当前低利率和税收环境下,借款的成本远低于出售股票所需支付的税款。

具体案例与数据

  • 埃隆·马斯克:质押了8830万股特斯拉股票(约占其持股的36.2%),价值超940亿美元,作为“常青信贷额度”以获取现金。
  • 拉里·埃里森:作为甲骨文联合创始人,虽公司2018年禁止员工质押股票,但作为唯一例外,其质押了3.17亿股(约280亿美元),占其持股27%。
  • 整体规模:在纽约证券交易所和纳斯达克上市的公司中,共有560名高管/董事及5%以上股东质押股票,平均质押金额4.27亿美元,总质押价值达2390亿美元。
  • 福布斯400富豪:其中32位公开质押了其持有的上市公司股票。若排除马斯克,其余31人的质押股票价值占上述总质押价值的56%。

运作机制与优势

  • 借款人将股票作为抵押品,从银行获取贷款,通常利率极低。
  • 他们无需出售股票,从而避免了资本利得税。
  • 这种方式被视为有效的“购买、借款、持有至死”财富管理策略的一部分。

公司政策与争议

  • 多数大公司禁止质押:约68.4%的标普500公司完全禁止质押股票,22%有条件允许,仅3.4%完全允许。
  • 为创始人开特例:一些公司如甲骨文、金德摩根(Kinder Morgan)和丹纳赫(Danaher)为其创始人或大股东设立了质押禁令的豁免条款。
  • 治理风险
    1. 追缴保证金风险:若股价大跌,质押者可能被迫抛售股票以满足保证金要求,引发股价螺旋式下跌(如绿山咖啡创始人案例)。
    2. 控制权与经济利益错配:质押后,股东可能失去部分经济利益但仍保留投票权。

行业观点与普遍性

  • 财富顾问称,在资产超过5亿美元的超高净值客户中,质押股票借款“相当普遍”。
  • 借款用途多样,包括用于个人消费、购买更多股票(杠杆投资)或投资于SPACs(特殊目的收购公司)等机会。
  • 税务专家认为,这种行为“完全合法”,并质疑为何有人会不这样做。

监管与透明度局限

  • 许多细节未被公开披露:持股低于5%或不在公司任职的个人无需向SEC报告质押情况;多数福布斯400富豪的财富主要来自私人公司,其质押行为不透明。
  • 报告不显示实际借款金额,仅显示质押的股票数量和价值。
24. Show HN: Graphite, a Blender-inspired 2D procedural design Rust app (graphite.rs)

Graphite: 一个受 Blender 启发的 2D 程序化设计 Rust 应用

概述 Graphite 是一款免费、开源的矢量图形编辑器与动画引擎,目前处于 Alpha 阶段。它融合了基于图层的合成与基于节点的生成式设计,提供完全非破坏性的编辑工作流,旨在成为一站式、程序化的 2D 内容创作工具箱。其长远目标是演进为一个类似游戏引擎的通用图形工具集,涵盖图形设计、动态图形、图像编辑、数字绘画、页面布局及视觉特效合成等广泛领域。

核心特点与理念

  • 非破坏性编辑:所有设计决策均绑定于可后续调整的参数,便于快速迭代和创意修改,例如通过滑块调整参数即可改变图案密度、大小或形状分布。
  • 程序化与基于节点的工作流:艺术作品以节点图形式表示,支持自定义、组合、自动化、复用和共享创作流程,特别适合生成式设计管线。
  • 矢量优先且无限可缩放:专注于程序化矢量图形编辑,支持无限平移和缩放而不会出现像素化,并支持导出任意分辨率。
  • 一体化愿景:旨在取代多个专业软件,计划集成矢量编辑、栅格处理、动画、页面布局等功能,避免用户在不同程序间切换。

技术架构与性能

  • 基于 Rust 与 Web 技术:核心使用 Rust 开发,利用 WebAssembly 和 WebGPU 技术,在浏览器中实现接近原生的高性能,尤其适合图形密集型任务。目前主要是一个轻量级的离线 Web 应用。
  • 跨平台与本地化运行:设计为桌面优先(Windows, Mac, Linux 原生应用正在候选发布阶段),同时可通过浏览器快速访问。无论在哪个平台,应用均在用户本地硬件上私有运行,无需服务器。
  • 当前为 PWA:在原生桌面应用正式发布前,用户可将其作为渐进式 Web 应用(PWA)安装,获得类桌面体验。

当前功能与未来路线图

  • 当前功能(Alpha版):主要聚焦于程序化矢量图形编辑,提供矢量编辑工具、基于节点的图层系统。是一个免费且开源的工具。
  • 计划中的未来功能
    • 完善的栅格图像处理能力。
    • 正式发布 Windows、Mac、Linux 原生桌面应用及持续更新的 Web 版本。
    • 实现实时协作编辑。
    • 从节点系统编译独立程序(未来构想)。
    • 将资产管线部署至工作室生产环境(未来构想)。

社区、支持与发展

  • 开源与可持续性:作为免费开源软件,项目依赖社区支持以维持开发成本和独立性,鼓励用户通过捐赠成为会员或一次性捐款。
  • 社区活动:计划于2025年10月在德国卡尔斯鲁厄举办首次线下社区见面会。
  • 开发者参与:提供 Google Summer of Code 2025 的带薪实习机会,面向热爱 Rust、图形学、编译器开发或算法研究的学生及开源新手,申请截止日期为2025年4月8日。
  • 获取方式:Web 应用已上线,桌面应用可通过其 Discord 社区的公告频道获取测试版本。项目提供入门教程供用户上手,并通过通讯邮件和社交媒体分享重要进展。
25. Amazon buys stake in nuclear energy developer in push to power data centres (www.ft.com)

根据文章标题“Amazon buys stake in nuclear energy developer in push to power data centres”,可以推断该文章的核心内容是:

亚马逊公司正投资入股一家核能开发公司,此举旨在为其庞大的数据中心业务寻求稳定的电力供应。 这一行动反映了科技巨头为满足其能源密集型运营的可持续性和可靠性需求,正在积极寻求多元化能源解决方案,核能因其零碳排放和稳定供电的特性,可能成为亚马逊为其数据中心提供动力的重要选择之一。

(注:由于文章主体内容为付费订阅墙,无法获取更详细的交易对手、交易金额、具体战略规划等具体信息。)

26. Damas-Hindley-Milner inference two ways (bernsteinbear.com)

Damas-Hindley-Milner 类型推断

Damas-Hindley-Milner (HM) 是一种用于 Standard ML 及 ML 家族语言的类型系统,它支持参数多态(也称为泛型)。该系统在程序语言设计中达到了一个平衡点:表达能力强,且存在无需程序员提供类型注解的成熟类型推断算法。

核心思想

HM 的核心是基于约束的类型推断。算法根据变量和表达式的使用方式来生成类型等式约束,并求解这些约束。例如,看到 a + b,可推断 ab 及其结果均为 int 类型。算法通过维护类型变量作为占位符,以及类型构造器(如函数类型 ->、列表类型 list)来表示约束。

关键数据结构

  • 单态类型 (MonoType):每个表达式具有的单一类型,是类型变量类型构造器应用的结果。
  • 类型方案 (Forall):用于表示多态,形式为 forall 'a. type,是单态类型的泛化包装。

两种主要推断算法

1. 算法 W

  • 特点:纯函数式,无副作用,通过显式传递替换 (Subst) 来传播类型约束。替换是从类型变量到单态类型的映射。
  • 过程:函数 infer_w(expr, ctx) 返回一个替换和一个类型。对于每个表达式(如字面量、变量、函数定义、应用、let 绑定),生成约束,并通过组合替换来合并新旧信息。
  • 统一 (Unify):函数 unify_w 是核心,它尝试使两个类型相等,并生成相应的替换。过程中需进行发生检查以避免无限递归类型。

2. 算法 J

  • 特点:使用命令式风格,利用并查集 (Union-Find) 数据结构维护类型变量的等价关系,通常比算法 W 更高效、代码更简洁。
  • 过程:函数 infer_j(expr, ctx) 返回一个类型。它为每个表达式结果引入一个新类型变量,并通过 unify_j 直接就地合并类型约束。
  • 统一 (Unify)unify_j 函数使用并查集的 findmake_equal_to 操作来合并等价类。

Let 多态与泛化

为了让类型推断可判定,并实现多态,系统在 let 绑定处进行泛化 (Generalize)

  1. 变量使用:在上下文中查找其类型方案,并实例化 (Instantiate)(即用新类型变量替换绑定变量)。
  2. let 绑定:先推断值 v 的类型 ty,然后将 ty 泛化为类型方案 forall ... ty,再将其添加到上下文中用于推断体 b 的类型。

Scrapscript 语言的 HM 扩展

文章还简要讨论了将 HM 应用于 Scrapscript 语言时需要的扩展:

  • 递归:通过在 let 绑定(特别是函数定义)时将函数名提前加入上下文来支持。
  • 更多数据类型:如列表,需约束所有元素类型相同。
  • 模式匹配:为模式中的变量绑定新类型变量,并统一匹配分支。
  • 行多态:用于支持具有可扩展字段的记录,但尚未完全实现。
  • 其他:包括变体、类型最小化(为错误信息提供友好名称)等未来方向。

总结

HM 类型系统为语言提供了强大的自动类型推断能力。算法 W 和 J 是两种经典的实现路径,前者更易于理论证明,后者在实践中常更高效。文章通过在 Scrapscript 中的实现展示了其核心机制及向更实用语言扩展的思考。

27. Digital River runs dry, hasn't paid developers for sales since July (www.theregister.com)

Digital River拖欠开发者销售款项事件概述

核心事件: 美国老牌电子商务提供商Digital River自2024年7月起,未能向通过其MyCommerce平台销售软件和数字产品的众多商家支付货款。

公司背景:

  • Digital River是一家有数十年历史的美国电子商务服务公司,曾为大量软件开发者提供在线支付处理服务,宣称年交易额曾超过30亿美元。
  • 公司为私人所有,母公司为纽约的Danube Private Holdings II, LLC,并在多地设有子公司(如德国、爱尔兰、英国)。

受影响商家的遭遇与反应:

  • Traction Software Ltd:与之合作超20年,表示过去三个月销售款项完全中断,且缺乏公司支持与直接联系。公司称,Digital River在付款停止后仍继续收取其客户的销售款,直到商家自行将其从订单系统中移除。该公司怀疑Digital River无意支付,且可能正处于新CEO领导下的清算过程中。
  • Softland:该公司于8月15日停止使用MyCommerce服务,原因是7月的款项未收到。其CEO Lorant Barla对Digital River能否履行义务表示怀疑,指出该公司未遵守合同付款条款,且回复迟缓,已丧失信誉。
  • 众多其他商家:在论坛、社交媒体和评论网站上均有大量关于付款被扣留的投诉。目前受影响商家正在尝试组织集体诉讼。

公司内部变动与财务状况:

  • 高管变更:Barry Kasoff于8月出任新CEO,其同时是一家专注于“周转管理”的战略咨询公司的总裁。
  • 裁员与成本削减:公司据报道进行了大规模裁员,英国子公司将此归因于2022年底开始实施的成本削减措施。
  • 财务困境:英国子公司2023年12月的财务文件包含审计报告,指出公司依赖母公司的持续流动性,而母公司正经历负面财务趋势、潜在违约和流动性问题,并持有大量已多次再融资的外部债务。

公司单方面变更合同条款:

  • 2024年9月16日,Digital River通知客户将于10月16日对其主服务协议进行修改。
  • 新协议内容(针对德国子公司)包括:新增MyCommerce平台费;退款手续费从25美元降至20美元;设置最低付款门槛(2500美元或电汇至单一欧元支付区外10000美元);新增每小时185美元的二级客户支持服务。
  • 有商家发现其MyCommerce账户中未经同意就“预先签署”了未来日期的新协议,质疑公司擅自更改合同。

公司方面的回应:

  • 在领英上回复称,根据主服务协议,公司有权更新协议以反映服务、法规或财务状况的变化。
  • 其律师事务所Mintz & Gold代表公司致函追讨款项的商家,声称正在核实发票和索赔金额,并表示“Digital River对所主张的债务提出异议”,不认为商户的债务索赔是有效义务。

总结: Digital River因严重的财务问题,自2024年7月起停止向合作商家支付销售款项,同时被指单方面修改合同、增加收费、延长付款期限。此举导致众多软件开发者损失收入,引发强烈不满和集体诉讼。公司新任CEO的背景和公司的财务审计报告均暗示其面临严峻的经营和流动性危机。

29. It's not enough for a program to work – it has to work for the right reasons (buttondown.com)

文章标题:程序不仅需要运行正确,更需要基于正确的原因运行

文章内容摘要:

程序仅仅能运行是不够的,它必须基于正确的原因运行。代码如果因错误的原因而正常工作,往往会在你最不期望的时候出现故障。由于“基于正确原因正确”的目标远比“基于任何可能原因正确”更为严格,我们不能将首次成功视为预期目标。因此,作者提出了BSOS(对成功保持怀疑) 这一原则。

BSOS的实践方法:

  • 验证的局限性: 测试、静态检查、模型检查等验证手段能增强代码信心,但我们也需怀疑其成功。测试通过可能是因为正确测试了正确代码,也可能是因为未能测试到错误代码。测试驱动开发提倡先写失败测试,至少能确保测试机制在起作用。
  • 验证的盲区: 主流验证方法擅长解释失败(如测试输出不符、类型错误),但成功往往“信息贫乏”。难以区分代码是忠实实现了功能,还是仅仅返回了固定结果(如return false)。
  • 关键技巧——“使其工作,使其失败”: 如果代码因正确原因运行,应能预测如何使其失败(如改变运行时条件或修改代码本身)。若代码在预期破坏下仍能运行,则说明对其模型理解有误,其成功实属“错误原因”。

与“快乐路径”和“悲伤路径”的关联:

  • 快乐路径指代码在一切正常时的行为;悲伤路径则处理各种错误情况(如重试、权限不足、数据库约束冲突)。在多数软件中,处理悲伤路径的代码远多于快乐路径。
  • BSOS要求不仅验证快乐路径,同样需验证悲伤路径的正确性。即便悲伤路径代码“工作”,也需怀疑:错误处理代码是否真正执行?是否无条件执行?是否实现了预期的退避策略?是否在重试后仍正确处理错误?
  • 研究表明,35%的灾难性分布式系统故障源于“错误处理器中的微小错误”,这些系统成熟且久经考验。因此,对成功保持怀疑,尤其应对悲伤路径的成功保持更高的警惕

博客推荐: 文章最后推荐了 Red Blob Games 博客。该博客虽侧重于计算机游戏编程,但核心内容是优秀的交互式计算机科学算法指南,例如A*算法介绍和噪声函数概述等。

30. How I failed to make a game: Raycasting on the GBA (mcejp.github.io)

GBA光线追踪游戏开发失败总结:技术尝试与反思

项目初衷与规则

作者在启发下,尝试为GameBoy Advance平台构建可玩的2.5D光线追踪引擎。为避免陷入“游戏引擎陷阱”,设定了明确规则:专注于游戏而非引擎、快速制作资源占位、使用简单技术栈(C++和Python)、保持设计方向一致。初期遵循较好,但后期发现技术开发兴趣超过内容制作,项目搁置后进行复盘。

技术实现亮点

  • 开发栈:使用C++(C++20特性极少)、CMake、ARM工具链及Tonclib访问硬件。
  • 优化策略:对关键代码(如精灵缩放)生成展开循环,利用GCC优化,避免过早使用汇编。
  • 资源管理:设计简单管线,通过CMake处理资源编译依赖,生成C++头文件直接包含编译数据,避免复杂二进制格式。
  • 工具集成:使用Tiled编辑器创建地图,通过Python脚本转换坐标系(需处理旋转与锚点差异)。
  • 性能监控:强调基准测试的重要性,应对微小优化带来的累积性能差异。

遇到的挑战与失败原因

  1. 内容制作困难:想象中的宏大游戏与实际制作差异大,作者不擅长美术,外包成本高;地图制作时缺少合适纹理。
  2. 控制方案不佳:最终采用“坦克式”方向键控制加侧移/射击,但未充分研究同类游戏的解决方案。
  3. GBA屏幕缺陷:屏幕伽马曲线异常、色彩淡化、对比度低,影响体验,成为项目放弃的最后一根稻草。

项目总结

项目代码已开源(黑屏处理第三方资源),但未达成可玩目标。作者强调技术尝试有价值,但内容制作与平台限制是主要障碍,为未来项目提供了教训。

32. Floss/fund: $1M per year for free and open source projects (floss.fund)

FLOSS/fund 项目:每年100万美元资助全球自由及开源软件

Zerodha宣布启动 FLOSS/fund,一个致力于为全球自由及开源软件(FOSS/FLOSS)项目提供财务援助的专项基金,年度承诺资金为 100万美元。单个受助项目可获得 1万至10万美元 的资助。

背景与动机: Zerodha在其金融科技产品与服务的构建中严重依赖高质量的FOSS技术栈,其成功直接归功于开源社区。然而,许多关键的FOSS项目在资金可持续性上面临困境,尽管云服务商等商业实体从中获取了巨大利润。Zerodha认为,支持其赖以生存的FOSS生态系统是合乎逻辑的商业策略,也是对开源精神的回馈与义务。此举旨在践行黑客的善意与互惠精神,并鼓励其他企业建立类似的结构化资助计划。

基金运作与创新提案: 基金将设立专门团队进行非临时性、规范化的运营(类似专注于资助的开源项目办公室)。申请将面向全球开放,依赖项目方主动提交。初期由内部委员会遴选,未来计划引入社区投票机制。

为解决当前FOSS项目资助中“临时性、信息不透明、沟通成本高”的痛点,项目提出了 funding.json 标准化提案。这是一个可机器读取的清单文件,建议置于项目代码仓库或网站中,用以结构化地声明:

  • 实体信息(维护者/组织)。
  • 项目详情(描述、许可证、标签)。
  • 资金需求(接受的支付渠道、具体的资助计划,如服务器费用、开发者报酬等)。
  • 历史财务数据(可选)。

通过此标准,项目可以方便地公开其财务需求,供资助方(如FLOSS/fund)自动爬取、索引和发现,从而简化申请流程,提高透明度。所有通过funding.json提交的申请将被收录并发布在 dir.floss.fund 目录门户上。

核心动机总结:

  1. 个人层面:作为FOSS黑客,践行善意与互惠。
  2. 商业层面:保障赖以生存的开源生态系统繁荣,避免“公地悲剧”。
  3. 行业层面:鼓励同行企业设立资助计划,推动FOSS可持续发展讨论。
  4. 实验层面:探索 funding.json 能否大规模改善FOSS项目资金需求的可发现性。
33. FreeBSD/EC2 boot performance over time (www.daemonology.net)

这篇文章记录了FreeBSD操作系统在亚马逊EC2云环境中随时间变化的启动性能。测量标准是从EC2实例状态从“pending”(待处理)变为“running”(运行中)开始计时,直到TCP端口22(SSH端口)变为“open”(开放),即发送的SYN包收到SYN/ACK响应为止。性能测量针对两种不同的实例架构:使用c5.xlarge实例测量amd64(x86_64)架构,使用c6g.xlarge实例测量arm64(aarch64)架构。

35. Try to fix it one level deeper (matklad.github.io)

文章核心思想是:在遇到软件bug时,不应仅仅修复表面问题,而应“再深入一层”,去识别并解决导致此类问题的根本原因或系统性缺陷,尽管这会花费更多时间。

作者通过四个具体工作实例阐述了这一理念:

  1. 数据库错误信息:最初只是为磁盘空间不足的情况添加了更清晰的日志,但随后意识到问题在于缺乏统一的“致命错误处理基础设施”,因此建立了相关框架。
  2. 代码格式问题:在审查一个修复拼写错误的PR时,发现代码格式被意外改变,这暴露了CI流程中缺失了gofmt检查这一根本问题,并对此进行了修复。
  3. 编译参数混淆:一个日志信息错误源于两个相似的编译时配置参数的混淆。作者起初统一了参数,但同事进一步指出可以完全移除这种参数化设计,从而更彻底地消除了此类问题。
  4. 代码重构与重入问题:在重构代码时,作者为了理清逻辑添加了断言defer assert(postcondition)。该断言因意外的代码重入而失败。尽管可以用.next_tick简单绕过,但他选择去探索更根本的解决方案,以消除此类问题的隐患。

总结而言,作者倡导在软件开发中采取“治本”而非“治标”的策略。识别并关闭一类问题的产生途径,虽然短期内增加了工作量,但从长期看能提升代码的健壮性和可维护性。这种工作方式要求开发者不满足于表面的快速修复,而是深入探究问题背后的系统性原因。

37. How Israel’s bulky pager fooled Hezbollah (www.reuters.com)

以色列情报机构摩萨德策划并实施了一项长达数年的复杂行动,通过改造的寻呼机对真主党发动了前所未有的打击,极大地加剧了中东局势的紧张。

行动核心:伪装成普通电池的寻呼机炸弹

  • 技术设计:以色列特工将六克PETN塑性炸药薄片置于两块电池单元之间,并使用一种高度易燃的非金属材料作为雷管。这种三层“三明治”结构被封装在标准的锂电池外壳中。由于没有金属组件,该炸弹既能通过X光检查,也能躲过真主党使用机场安检扫描仪进行的初步排查。
  • 隐藏弱点与伪造背景:电池因内置爆炸物导致体积异常且续航能力差。为应对真主党的尽职调查,特工们创建了完整的“传说”:他们虚构了虚假的在线商店、产品页面和论坛讨论,并利用台湾知名品牌“金阿波罗”的授权,将定制的AR-924型寻呼机及其配套的LI-BT783电池推向市场,使其看起来是真实存在的商业产品。

行动执行与后果

  • 诱敌深入:真主党为避免手机通信被以色列窃听,于2024年初转用更安全的寻呼机。以色列特工通过极具吸引力的低价策略成功向真主党采购人员推销了AR-924寻呼机。
  • 精准打击:2024年9月17日,数千台寻呼机在黎巴嫩真主党据点同时爆炸(通常先发出提示音),造成严重伤亡。次日,针对经过改造的对讲机发动了第二波袭击。两次袭击共导致39人死亡,超过3400人受伤。
  • 各方反应:袭击发生后,以色列官方未直接承认或否认参与,但国防部长称赞摩萨德成果“非常令人印象深刻”。美国官员表示事先未获通知。真主党领导人称此事件无异于“宣战”,并启动了内部调查。作为回应,以色列随后对真主党发动了全面战争,包括地面入侵和空袭,导致真主党大部分高层领导身亡,包括负责调查此次安全漏洞的高级官员。

此次行动展示了将传统间谍技术(为特工和物品建立虚假背景)应用于现代消费电子产品,以实现精确且大规模袭击的新型作战模式。