2024-04-05

22 篇热帖

1. M 4.8 – 2024 Whitehouse Station, New Jersey Earthquake (earthquake.usgs.gov)

地震事件页面应用程序说明

该应用程序名为“Earthquake Event Page”,主要用于提供地震事件相关信息。其关键功能包括:

  • 浏览器兼容性:支持大多数最新浏览器,用户可查看具体支持的浏览器列表。
  • 实时服务:提供实时通知、feeds 和 web 服务,以便用户获取地震事件的动态更新。

应用程序的设计旨在方便用户通过兼容的浏览器访问内容,并利用实时功能增强信息获取效率。

2. Ask HN: What is the most useless project you have worked on?

摘要:Hacker News 帖子:你工作过的最无用的项目是什么?

这篇文章是Hacker News上的一个帖子,用户分享了一个在工作中参与的被认为无用的项目经历。

  • 背景:用户在一家公司的管道自动化部门工作。团队因维护问题决定弃用一个内部工具。
  • 项目创建:团队随后创建了一个自动化管道,用于实现这个遗留工具,以防其他团队需要使用。
  • 任务分配:本月,团队中一人发现了改进场景,因此用户被要求在这个遗留工具上实施更改,以增强管道自动化的韧性。
  • 矛盾点:用户完成更改后,提交的拉取请求未被批准,因为该团队成员要求细致调整以提高在“完全不可能场景”下的韧性。然而,同一周,团队领导通知所有其他团队,该内部工具已被弃用,不应再使用。
  • 用户困惑:用户质疑工作的意义:既然工具已被弃用,为何还要继续自动化和改进一个无人应使用的工具?这引发对“无用工作”的反思。

帖子通过个人故事询问社区是否有类似经历,突出了工作中资源浪费和矛盾任务的问题。

3. The design philosophy of Great Tables (posit-dev.github.io)

Great Tables 的设计哲学

表格的定义与核心要素

表格本质上是一种将数据以行和列进行排列的文本化展示形式。其核心由三部分构成:

  • 单元格:包含实际数据。
  • 列与行的结构:有序地组织数据。
  • 列标签:描述每列所包含的数据类型。

表格的历史演变

  • 起源:表格可追溯至史前时期的网格图案(如洞穴壁画),并在古代用于记录天文、地理及经济交易。苏美尔泥板(约公元前3200年)已展现出包含行、列、小计和总计的成熟表格结构。
  • 20世纪中叶的黄金期:随着铅印、打字机等精密排版技术的发展,表格设计达到了形式与功能的平衡高峰。美国人口普查局1949年出版的《表格展示手册》是这一时期的典范,其详细的设计原则至今仍具参考价值。
  • 现代挑战:个人电脑和电子表格软件(如VisiCalc、Excel)的普及使表格创建民主化,但早期的软件功能简陋(无法打印、格式化有限)。尽管后来有所改善,但电子表格生成的表格在美观度和专业性上仍难以媲美专业排版。同时,数据分析工作流常面临困境:要么在Python中生成粗糙的表格,要么依赖Excel破坏数据处理的可复现性。

Great Tables 的解决方案

Great Tables 旨在用编程方式重现20世纪中叶表格的优雅设计,让用户能在Python中创建美观、专业的出版级表格。其核心方法是将表格分解为六个独立组件进行构建:

  1. 表头:包含标题和副标题。
  2. 列标签:定义各列内容,并可通过“列跨度标签”将相关列分组。
  3. 存根头:表格左上角,用于放置对行信息的描述。
  4. 行存根:用于行标识信息(如行标签)和行分组。
  5. 表体:存放数据单元格的核心区域。
  6. 表脚:用于添加脚注、来源说明等附加信息。

开发者通过一系列以 tab_ 开头的方法(如 tab_header(), tab_spanner())来添加和配置这些组件,实现表格的结构化搭建。

核心功能:格式化与显示

  • 格式化:通过众多以 fmt_ 开头的方法(如 fmt_date(), fmt_number(), fmt_scientific()),可以灵活地处理数字、日期、货币等数据的显示格式,以满足不同领域的规范。独特的是 fmt_nanoplot() 方法,它允许在单元格内嵌入微型图(纳米图),直观展示数据序列的趋势(如病情发展),同时鼠标悬停时仍可查看具体数值。
  • 专注于展示:Great Tables 明确定位于发布与演示场景,旨在生成静态的、信息密度高且美观的总结性表格(如用于报告、论文)。它通过 opt_*() 系列方法提供样式优化,确保表格易于阅读、提供充分上下文并符合文档或机构的风格。它不同于用于数据探索和交互式筛选的数据库表格界面。

总结

Great Tables 的设计哲学源于对表格悠久历史与精妙设计的深入研究,旨在用现代编程工具(Python)解决当代数据分析工作流中“生成美观表格”的痛点。它通过模块化的组件设计和丰富的格式化功能,致力于帮助用户创建兼具清晰结构、专业外观和信息传达效率的出版级表格。

4. So you wanna de-bog yourself (www.experimental-history.com)

摘要:解救自己出困境

文章探讨了人们陷入心理困境(比喻为“沼泽”)的常见原因和错误逃脱策略。作者通过幽默的个人经历,描述了困境的本质:无论努力与否,都感觉无路可走,导致停滞不前。

困境的三种力量

作者指出,使人陷入沼泽的力量主要有三种,每种都有多种表现形式,核心是心理障碍而非外部问题。

常见错误策略

  1. 激活能量不足:无法付出努力,停留在原地,常因承担不喜欢的项目而感到 resentful。
  2. 保龄球沟槽:在错误方向上努力,但因获得赞赏而持续,导致停滞。
  3. 等待大奖:拒绝任何不完美的选项,期待完美解决方案,往往徒劳无功。
  4. 回避勇敢:害怕做勇敢的事(如说实话、冒险),错过勇气带来的愉悦感。
  5. 平庸陷阱:坏但不过分的困境让人无法激发逃离动力,浪费生命。
  6. 抚慰问题:花时间思考问题而不解决,成为焦虑的借口。
  7. 糟糕的逃脱计划
    • “努力尝试”谬误:简单地希望改变而不采取具体行动。
    • 无限努力幻想:相信有未使用的努力储备,忽视时间分配。
    • 责怪上帝:将问题归咎于不可改变的事物(如时间不足)。
    • 牙刷问题 vs 毕业文凭问题:一些问题需要持续努力(如心理健康),而非一次解决。
    • 奇幻变形:期望未来成为不同的人,而不改变行为。
    • 操纵木偶:试图控制他人行为来解决问题,忽略他人自主性。
    • 自我制造的沼泽:设定游戏规则(如“地板是岩浆”),假装假问题为真。
    • 超级监视:关注世界所有问题,导致负担过重。
    • 刺猬化:放大自己的问题,轻视他人的问题,拒绝合理建议。
    • 痴迷微小预测器:纠结无关紧要的细节(如简历格式),分散注意力。
    • 认为生活是苦难:错误相信满足不可能,而实际拥有改善生活的资源。

总结与启示

作者强调,给这些错误策略命名至关重要,因为它提醒我们困境并非独一无二。识别模式可以帮助我们采取行动、培养勇气并接受持续努力。在2024年,作者鼓励读者从困境中学习,及时调整方向,避免陷入自我制造的沼泽。

5. FFmpeg 7.0 (ffmpeg.org)

FFmpeg 7.0 发布概要

FFmpeg 是一个完整的跨平台解决方案,用于录制、转换和流式传输音频与视频。

FFmpeg 7.0 "Dijkstra" (2024年4月5日发布)

这是一个主要版本,对大多数用户而言最值得注意的变化包括:

  • 原生 VVC 解码器:处于实验阶段,需进行更多模糊测试。
  • IAMF 支持:沉浸式音频文件的读写。
  • 多线程 ffmpeg CLI 工具:转码管道的主要组件(解复用器、解码器、滤镜、编码器、复用器)现在并行运行,旨在提高吞吐量、CPU 利用率和降低延迟。

重要变更

  • 不向后兼容:移除了 6.0 版本之前弃用的 API。
  • 通道布局 API 重构:移除了旧的基于比特掩码的通道布局 API,取而代之的是支持自定义通道顺序和 Ambisonics 等功能的 AVChannelLayout API。
  • 构建要求:现在需要兼容 C11 的编译器。

该版本包含大量新支持的格式和编解码器、新滤镜、API 以及众多错误修复。相较于 6.1 版本,代码库新增了近 2000 次提交,由约 100 位作者贡献,涉及超过 2000 个文件、10 万行代码。

其他重要版本亮点摘要

  • FFmpeg 8.1 "Hoare" (2026年3月):新增 xHE-AAC Mps212 解码器、EXIF 元数据解析、基于 Vulkan 计算的 ProRes 编解码器、D3D12 相关编码和滤镜、Rockchip 硬件编码等。内部变化包括为即将进行的 swscale 重写奠定基础。
  • FFmpeg 8.0 "Huffman" (2025年8月):引入基于纯 Vulkan 计算实现的编解码器(如 FFv1、ProRes RAW),支持 Vulkan AV1 编码、硬件加速解码(如 Vulkan VP9、VAAPI VVC)以及 OpenHarmony 平台支持。基础设施开始现代化。
  • FFmpeg 7.1 "Péter" (2024年9月):VVC 解码器成熟稳定,新增原生 AAC USAC 解码器,支持 MV-HEVC 和 LC-EVC 解码,以及 Vulkan 编码支持(H264/HEVC),实现了完整的 Vulkan 解码-滤镜-编码管道。
  • FFmpeg 6.1 "Heaviside" (2023年11月):引入 Vulkan 解码硬件加速(支持 H264, HEVC, AV1),新增多种滤镜和解码器,内部替换了 FFT/MDCT 实现为更快的 libavutil/tx
  • FFmpeg 6.0 "Von Neumann" (2023年2月):引入新的发布策略(每年主要版本,ABI 变更)。新增众多解码器、滤镜,QSV 和 NVenc 支持 AV1 编码,CLI 工具性能改进。
  • FFmpeg 5.0 "Lorentz" (2022年1月):重大重构,移除旧编解码 API 和 libavresample,改进 Vulkan 支持,新增 libplacebo 集成和 DoVi 支持。
  • FFmpeg 4.4 "Rao" (2021年4月):新增众多解码器、编码器、滤镜和协议支持,如 VAAPI AV1 解码、libplacebo 滤镜。
  • FFmpeg 4.3 "4:3" (2020年6月):引入 v360 滤镜,QSV 和 VAAPI 扩展支持,新增 Vulkan 支持及多个 Vulkan 滤镜。
  • FFmpeg 4.2 "Ada" (2019年8月):新增 tpad 滤镜,通过 libdav1d 支持 AV1 解码。
  • FFmpeg 4.1 "al-Khwarizmi" (2018年11月):新增 deblocktmix 等滤镜,通过 libdavs2 支持 AVS2 解码,原生 VP9 解码器。
  • FFmpeg 4.0 "Wu" (2018年4月):移除 ffserver,新增 VideoToolbox HEVC 编码器,通过 libaom 开始支持 AV1。
  • FFmpeg 3.4 "Cantor" (2017年10月):新增 deflickerpseudocolor 等滤镜,支持 D3D11VA 解码,新增 libvmaf 滤镜。
  • FFmpeg 3.0 "Einstein" (2016年2月):原生 AAC 编码器不再被视为实验性,新增超过 30 个滤镜,支持 VP9 硬件加速(DXVA2, VA-API)。
  • 更早版本 (2013-2015):经历了重要的编解码器支持扩展(如 HEVC、VP9)、硬件加速集成、滤镜库丰富化、基础设施维护和安全更新等持续发展过程。

项目发展: FFmpeg 项目长期接受 Google Summer of Code (GSoC) 学生参与,贡献了多项功能改进。项目曾获得德国 Sovereign Tech Fund 等赞助支持。开发活动持续进行,定期发布版本,推荐用户、分发商和系统集成商升级至最新稳定版。

6. Mario meets Pareto: multi-objective optimization of Mario Kart builds (www.mayerowitz.io)

《马力欧遇见帕累托:马里奥赛车组装的多目标优化》内容摘要

本文探讨了在《马力欧赛车》中组建最优卡丁车时所面临的多目标优化问题。文章指出,寻找最佳驾驶角色(或组装方案)不能仅凭单一的“速度”属性做出判断,因为玩家必须在速度与加速等属性之间进行权衡。

核心概念与关键点

  1. 问题的复杂性

    • 若仅比较速度,像酷霸王或瓦里奥等角色看似是明确的选择。
    • 但引入“加速”属性后,问题变得复杂,因为速度和加速往往呈反比关系,不存在在两个属性上都绝对最优的选项。
  2. 帕累托前沿(Pareto Front)

    • 文章介绍了“帕累托效率”这一关键概念来筛选选项。
    • 一个选项如果在其速度加速属性上都不被任何其他选项同时超越,则被称为“帕累托有效”。
    • 所有这样的有效选项共同构成一条“帕累托前沿”。前沿上的每个点代表一种在速度和加速间取得平衡的、未被完全超越的可行方案。
  3. 示例与应用

    • 文章以角色“Koopa”为例,说明了被“主导”(dominated)的情况:角色“Cat Peach”在相同加速下速度更快,而角色“Toadette”在相同速度下加速更好。因此,Koopa不在帕累托前沿上,是次优选择。
    • 文章建议玩家应专注于识别并选择帕累托前沿上的高效选项。
  4. 最终决策的个性化

    • 帕累托前沿提供了一组客观的最优选项集合,但最终选择取决于玩家的个人偏好和游戏风格
    • 玩家需要根据自己对速度或加速的重视程度,在前沿上选择最适合自己的那个平衡点。

总结

文章通过《马力欧赛车》的组建决策,生动地阐释了多目标优化理论。核心思想是:在相互冲突的目标(如速度与加速)间寻找最佳平衡时,应首先利用帕累托效率筛选出所有未被主导的最优选项集合,然后再根据个人偏好从该集合中做出最终选择。这提供了一种系统性的决策框架,超越了仅凭单一数据或直觉做出的选择。

7. An IRC client in your motherboard (axleos.com)

本文作者使用 Rust 语言在 UEFI 预启动固件环境中实现了一个图形化的 IRC 客户端。该客户端能够连接至 IRC 服务器进行聊天,并利用了 QEMU 的 vmnet 网络后端以及作者为 axle 操作系统用户空间编写的 GUI 工具包和 TrueType 渲染器。

项目背景与基础 UEFI 是取代传统 BIOS 的新一代主板固件标准,它为操作系统引导加载程序提供了 64 位环境和丰富的 API。一个有趣的应用场景是网络启动,这意味着 UEFI 固件本身集成了网络栈(包括 NIC 驱动和 TCP 实现),允许在操作系统加载前就进行网络通信。本项目正是利用了这一点,在固件层面实现了社交媒体(IRC)功能。

技术实现与挑战

  1. Rust 中的 TCP 协议实现:这是项目中最复杂部分。UEFI 的 TCP 编程模型要求使用全局状态和可重入回调,涉及散射-聚集缓冲区以及事件、令牌、句柄等复杂概念。作者特别指出了 UEFI 回调机制的令人困惑之处:
    • NOTIFY_SIGNAL 模式会在事件发生时调用回调。
    • NOTIFY_WAIT 模式下,调用 wait() 会在事件发生前反复调用回调以“推动”进程,其行为与直觉相悖。
    • 这种设计使得异步缓冲接收数据包变得困难,最终作者采用了一个包含短超时定时器的 NOTIFY_WAIT 循环来解决。
  2. 鼠标支持:客户端通过 UEFI 的 Simple Pointer Protocol 支持鼠标操作,用于交互和滚动。但该协议在标准的 OVMF(QEMU 的 UEFI 固件)中不可用,作者编译了包含 UsbMouseDxe 驱动的自定义固件才使其工作。
    • 光标缩放:作者对比了线性缩放和 log2 缩放算法,后者能让用户快速移动光标同时保持精细控制,更符合主流操作系统的用户体验。
  3. 文本渲染与滚动视图:为将 GUI 工具包适配到 UEFI,作者实现了针对滚动视图的“瓦片化”内容渲染方案,按需分配像素缓冲区内存以支持无限扩展的画布。
    • TrueType 渲染优化:由于逐像素调用(putpixel)在滚动视图上效率极低,作者将“多边形堆栈”作为图形层的基本绘制图元,使滚动视图可以一次性为整个字形分配所需的瓦片,大幅提升渲染效率。

GUI 工具包的改进 为开发 UEFIRC,作者对 axle 的 Rust GUI 工具包 libgui 进行了多项改进,包括:支持左键释放事件、动态调整标签大小、全面转向 TrueType 字体渲染、改进字形布局信息以及为文本输入视图增加按键回调支持等。

总结 该项目是一个技术演示,展示了在 UEFI 固件这一非常规环境中实现复杂网络应用(IRC 客户端)的可行性。它不仅深入探索了 UEFI 网络栈和 GUI 编程,也推动了作者自身 Rust GUI 工具包的演进。尽管其实际使用价值有限,但它生动地体现了在系统启动最早期阶段就进行网络交互的可能性。

9. German state ditches Microsoft for Linux and LibreOffice (www.zdnet.com)

石勒苏益格-荷尔斯泰因州政府转向开源软件

核心决定
德国石勒苏益格-荷尔斯泰因州政府宣布,将为其约30,000名员工放弃微软的Windows和Office,转而采用Linux操作系统LibreOffice办公套件,旨在建立基于自由、开源系统的数字化主权IT工作空间。

主要动机:数字主权
此次转型的核心驱动力并非技术优越性,而是对“数字主权”的追求。欧盟语境下的数字主权强调:

  • 保护公民数据免受外国公司的过度收集。
  • 增强欧洲科技公司的竞争力。
  • 确保政府对所用IT解决方案拥有完全控制权,并能独立行动。
    州数字化部长Dirk Schrödter指出,使用专有软件时,政府无法影响其数据处理流程,且存在数据流向第三国的风险,而政府有责任保障公民和企业数据的安全。

其他益处
除数字主权外,该决定还预期带来:

  • 成本节约
  • IT安全性提升
  • 数据保护增强
  • 不同系统间的无缝协作

具体替换计划

  • 办公套件:Microsoft Office → LibreOffice。
  • 操作系统:Windows → 待定的Linux桌面发行版。
  • 其他应用
    • SharePoint → Nextcloud。
    • Exchange/Outlook → Open Xchange/Thunderbird及Univention Active Directory连接器。

背景与先例

  • 慕尼黑案例:德国巴伐利亚州首府慕尼黑曾于2004年转向Linux,但十年后因政治原因回归Windows。
  • 中国案例:中国政府机构已逐步用基于Ubuntu的麒麟Linux替换Windows,主要动机同样是掌握本地IT控制权。
    尽管Linux爱好者可能期望更彻底的技术替代,但数字主权已成为推动这一转变的关键现实因素。
10. Cloudflare acquires PartyKit to allow developers to build real-time multi-user (blog.cloudflare.com)

Cloudflare收购PartyKit以支持开发者构建实时多人应用

核心目标: Cloudflare宣布收购开源平台PartyKit,旨在简化开发者构建实时、协作、多人应用程序的过程。此次收购标志着Cloudflare在重新定义有状态(stateful)无服务器计算边界方面迈出的重要一步。

核心技术:Durable Objects 与 PartyKit

  • Durable Objects(持久对象): Cloudflare于2020年推出,是其无服务器计算模型的关键组件。与传统临时、无状态的函数不同,Durable Objects是有状态的,能够在多个请求之间维护状态,并作为构建实时应用的理想同步点,尤其与WebSockets结合使用。
  • PartyKit的角色: PartyKit始于2022年,其初衷是进一步探索Durable Objects的能力,并通过更熟悉的组件和框架(如YjsReact)降低其使用门槛,使开发者能快速创建和部署项目。

收购带来的关键优势

  1. 简化状态管理: PartyKit利用Durable Objects,提供了一种无缝的状态管理模型。开发者无需依赖复杂的外部数据库,即可构建有状态的无服务器函数,如同在单机上运行一样。这极大地简化了开发,并支持实时计算、协作编辑和多人游戏等用例。
  2. 简化实时交互与扩展: 解决了大规模WebSocket连接扩展的挑战。Cloudflare Workers与Durable Objects结合,为构建可扩展、高效的实时应用(如聊天、游戏、协作工具)提供了服务器less框架。
  3. 赋能游戏与多人应用: 该技术组合为游戏和多人平台提供了低延迟、高交互性的解决方案。开发者可以利用这些集成工具创建沉浸式、无延迟的游戏体验。
  4. 支持本地优先应用: Cloudflare的愿景是推动本地优先应用成为标准。这种应用允许用户在断网(如飞机、火车上)时继续工作,数据本地存储,恢复网络后再同步。PartyKit的技术将强化这一能力。

对开发者和用户的后续计划

  • 项目兼容性: 现有PartyKit项目将继续正常运行。
  • 费用结构: 使用PartyKit不会产生额外费用,仅需支付标准的Cloudflare Workers等服务使用费。
  • 路线图扩展: 将增加更多功能,包括在现有Workers和Pages项目中使用PartyKit,并扩展与React、Vue、Angular等流行框架的集成。

收购意义

此次收购不仅是双方团队的里程碑,更是为全球开发者推动的一次飞跃。它共同致力于为下一代互联网应用奠定基础,确立了“无服务器的未来是有状态的”这一发展方向。

12. A Lego model of financial capitalism (www.asomo.co)

这篇文章通过一个房地产开发的具体案例,以“乐高模型”为比喻,阐述了金融资本主义的基本运作机制。

核心在于金融交换:人们用金钱交换对未来金钱的承诺,这构成了金融市场。金融市场存在零售(个人)与批发(大型机构)两个层面。文章聚焦于批发层面,即大型投资机构如何为大型项目筹集资金。

具体案例中,一个开发商想在曼哈顿建造一座豪华办公楼,需要约1亿美元。他通过一家精品投资银行(BlueGate Partners)进行融资。融资分为两个阶段:

  1. 股权融资:首先成立一个法律实体(Bloks Inc.)。开发商自己投入500万美元,获得25%的股权。投资银行为其寻找其他股权投资者(如家族办公室、基金),筹集剩余的1500万美元。股权投资者获得的是相对回报(取决于项目表现,如股息)。
  2. 债务融资:其次筹集8000万美元的债务。投资银行引入商业银行(创造货币提供贷款)和通过向专业基金及高净值人士出售债券来完成。债务投资者获得的是固定回报(利息和本金),且在法律上具有优先受偿权。

文章重点解释了杠杆(或称财务杠杆) 效应:

  • 股权与债务的比例设定为1:4(20%股权,80%债务)。
  • 债务放大了股权投资者的回报。如果项目整体盈利20%(例如建筑以1.2亿美元售出),由于债务利息固定,所有利润增长均由股权投资者分享,其回报率可高达100%。
  • 反之,如果项目亏损(例如建筑以9000万美元售出),亏损也首先由股权投资者承担,导致其损失被急剧放大。

在获得全部资金后,金钱被“注入”项目(如同给电池充电),用于调动建筑商、供应商和工人完成项目建设。项目完成后,开发商或选择出租管理,或选择整体出售给更大的持有者(如房地产投资信托基金REIT)以实现利润。

文章最后指出,上述是基础的金融机制,但现实中可以复杂化,衍生出更多高阶玩法,例如:离岸金融(构建复杂的法律结构)、金融工程(创造混合型金融工具如可转换债券)、为融资再融资(进一步叠加杠杆)、证券化(将贷款打包分层出售)、以及使用衍生品(如信用违约互换CDS)等。这些复杂操作有时会显著增加系统的风险。

13. Reading more Ursula Le Guin (2019) (theoutline.com)

本文探讨了人类历史叙事中的暴力竞争逻辑,并通过科幻作家厄休拉·勒古恩的“载体袋理论”,提出了另一种看待历史、故事与人类未来的方式。

文章首先批判了以“矛”为代表的传统历史观。这种观念将人类历史描绘为一系列无休止的征服与胜利的故事:原始猎人捕获猎物并赢得地位,历史本质上是“伟人”或“强者”不断获胜的线性叙事。这种思维甚至延伸到当代,表现为一种技术傲慢,认为人类终将通过“技术解决方案”(如向太空发射巨型反射镜)来“击败”气候变化。

勒古恩提出了截然不同的“载体袋理论”作为反驳。她认为,人类最早的工具并非用于杀戮的矛,而是用于收集和携带的容器(如袋子、葫芦)。这一理论将人类的起源故事从“狩猎-杀戮-占有”的线性征服叙事,转变为“采集-携带-分享”的循环社群叙事。故事本身也从单一英雄的个人冒险,变成了众多平等角色相互交织、充满复杂性与共时性的“载体袋”故事——一种杂乱、非线性、无英雄的集体叙述。

勒古恩将此理论视为一种叙事方法论,用以构建更真实的世界。以她的小说《一无所有》为例,它描绘了一个充满矛盾的无政府主义社会,体现了她通过写作探索不同政治可能性的思想。她发现,这种视角让她找到了更深层的人类文化归属感。

文章最后将“载体袋理论”应用于气候变化危机。它指出,若继续沉溺于“人类必将获胜”的征服故事,可能会将我们一同毁灭。真正需要的是放弃英雄叙事,拥抱一种没有明确胜利者、承认人类与自然不可分割、包含多元时间线与集体行动的“载体袋”故事。只有改变讲述世界的方式,我们才可能让更多生命得以存续。

14. JetMoE: Reaching LLaMA2 performance with 0.1M dollars (research.myshell.ai)

JetMoE:以低于0.1万美元成本达到LLaMA2性能

核心亮点

  • 极低训练成本:JetMoE-8B训练成本低于0.1万美元(使用96×H100 GPU集群训练2周,约0.08万美元),性能超越Meta AI投入数十亿美元资源训练的LLaMA2-7B,表明大语言模型训练成本可远低于普遍认知。
  • 开源与学术友好:仅使用公开数据集训练,代码完全开源,无需专有资源;支持消费级GPU微调,大幅降低实验室计算门槛。
  • 高效推理:推理时仅激活2.2B参数(总参数8B),显著降低计算成本;相比同类推理计算量的模型(如Gemma-2B),性能持续领先。

性能评估

  • 基准测试:采用Open LLM Leaderboard和LLaMA2相同评测方法。JetMoE-8B在多个关键指标(如MBPP、Hellaswag、MMLU、TruthfulQA、WinoGrande)上超越LLaMA2-7B、LLaMA-13B及DeepseekMoE-16B。
    • 示例对比
      • JetMoE-8B平均得分53.0,优于LLaMA2-7B的51.0和LLaMA-13B的51.4。
      • 在MT-Bench聊天评估中,JetMoE-8B-chat得分6.681,接近LLaMA-2-13b-chat(6.650)并超越多个13B级别模型。
  • 计算效率:以2.2B激活参数实现高性能,推理效率优于同规模模型(如Gemma-2B)。

技术细节

  • 模型架构:基于ModuleFormer的稀疏激活设计(Mixture of Experts),包含24个模块,每个模块含MoA(注意力头混合)和MoE(MLP专家混合)层,每层8个专家并激活2个。
  • 训练配置
    • 数据:1.25T公开数据集 tokens(包括RefinedWeb、Pile、Github数据等)。
    • 两阶段训练:
      1. 恒定学习率(5.0×10⁻⁴)预热,训练1T tokens。
      2. 指数学习率衰减,追加250B tokens高质量数据。
    • 批量大小:4M tokens。

资源与开源

项目信息

  • 作者:Yikang Shen、Zhen Guo、Tianle Cai、Zengyi Qin(技术咨询联系Yikang Shen,媒体与合作联系Zengyi Qin)。
  • 致谢:感谢Shengding Hu对数据混合的建议,以及Exabits(GPU集群支持)和Lepton AI(聊天演示支持)。
  • 合作邀请:欢迎需要资源(GPU、数据、资金)的研究者联系Zengyi Qin进行合作。
15. Tool Use (function calling) (docs.anthropic.com)

工具使用(函数调用)概述

工具使用(Tool Use)或函数调用(Function Calling)是一种赋予大型语言模型(LLM)能力的机制,使其能够与外部系统、服务或数据进行交互,从而执行超出其自身知识范围或文本生成能力之外的任务。它本质上是将模型从一个“聊天生成器”转变为一个能够行动和决策的“智能体”。

核心运作机制

该机制通常包含以下关键环节:

  1. 工具定义:开发者需要预先向模型描述一组可用的“工具”。每个工具通常包含:

    • 名称:一个清晰的标识符。
    • 功能描述:用自然语言说明该工具的作用,以便模型理解其用途。
    • 输入参数:调用该工具所需的参数及其类型和说明。
  2. 模型决策与调用:当用户提出一个需要外部信息或操作的请求时,模型会分析请求,并判断是否需要以及应该调用哪个工具。模型随后生成一个结构化的输出(通常是JSON格式),指定要调用的工具名称和所需的输入参数。

  3. 执行与返回:应用程序代码接收模型的调用指令,实际执行对应的函数或API调用,并将执行结果返回给模型。

  4. 结果整合与响应:模型接收工具返回的结果,将其融入自身的上下文和知识中,最终生成一个连贯、完整的自然语言回复给用户。

主要价值与应用场景

  • 扩展知识边界:让模型能够获取实时信息(如天气、股价、新闻)或访问私有数据库。
  • 执行具体操作:完成如发送邮件、创建日程、在电商平台下单、控制智能家居设备等任务。
  • 提高回答准确性:对于需要精确计算、数据查找或逻辑验证的问题,通过调用专用工具获得可靠答案。
  • 连接现有系统:将自然语言界面连接到企业已有的API、软件或服务,实现便捷的语音或文本交互。

关键挑战

  • 调用准确性:模型可能误解用户意图,选择错误的工具或提供错误的参数。
  • 幻觉问题:模型可能“编造”出不存在的工具或参数。
  • 执行风险:调用外部工具(尤其是涉及写操作或敏感信息的)可能带来安全风险,需要严格的权限控制和校验。
  • 复杂对话管理:在多轮对话中维护工具调用的上下文和状态需要精心设计。

总结

工具使用(函数调用)是LLM从被动的生成模型转向主动的、能与环境交互的智能体的关键技术之一。它通过结构化地定义和调用外部功能,极大地扩展了模型的实用性,使其能够成为连接数字世界与物理世界的强大接口。其成功实施依赖于清晰的工具定义、准确的意图识别、安全可靠的执行后端以及有效的结果整合。

16. Show HN: Kyoo – Self-hosted media browser (Jellyfin/Plex alternative) (github.com)

Kyoo:一个自托管的媒体浏览器(Jellyfin/Plex 替代品)

Kyoo 是一个专注于视频内容(电影、剧集与动画)的自托管媒体服务器,旨在成为 Jellyfin 或 Plex 的替代方案。其核心设计目标是低维护性,无需用户手动整理文件夹结构或编辑元数据;即使文件命名混乱,也能正确扫描媒体信息,否则将被视为程序错误。Kyoo 没有插件系统,所有功能均为内置。

主要特性

  • 动态转码:可随时切换画质,支持自动质量调节,并提供即时的跳转预览,无需等待转码器。
  • 视频预览缩略图:将鼠标悬停在进度条上即可预览视频内容。
  • 片头/片尾自动检测:通过音频指纹识别(或章节标题匹配)自动识别片头与片尾。
  • 增强的字幕支持:支持 PGS、DVB、SSA/ASS 等格式,并在可用时使用视频内嵌字体。
  • 动漫名称解析:能够准确匹配格式复杂的动漫文件名(例如包含字幕组、分辨率、编码等信息)。
  • Helm Chart:提供官方 Helm Chart,支持 Kubernetes 集群部署(多副本支持正在开发中)。
  • OIDC 连接:支持通过任何兼容 OIDC 的服务(如 Google、Discord、Authelia)进行登录认证。
  • 观看列表同步(即将在 v5 中重新实现):自动同步观看记录到关联服务(如 SIMKL)。
  • 下载与离线支持(即将在 v5 中重新实现):可下载视频供离线观看,进度恢复在线后自动同步。

客户端与翻译

  • 客户端:目前主要支持 WebAndroid 客户端(v5 版本中即将推出)。前端基于 React-Native 和 Expo 构建,欢迎开发者贡献代码。因硬件成本和年费问题,暂无 Apple 设备(iOS, tvOS)的官方支持计划
  • 翻译:可通过 Weblate 平台轻松添加或改进语言翻译。

与现有方案的区别

从技术角度看,Jellyfin 和 Plex 通常依赖 SQLite 并将所有组件打包在单一容器内。Kyoo 则采用更灵活的多容器架构(例如独立的转码器)。其核心理念是 “一次设置,无需操心”,避免了手动重命名文件或遵守特定文件夹结构的要求,可以直接从下载目录工作,极大减轻了服务器管理员的维护负担。Kyoo 的功能范围专注于电影、电视剧和动漫流媒体,不包含音乐、电子书或游戏等功能。

入门与社区

  • 入门:提供基础安装指南,包括启动服务、配置 OIDC 或硬件转码。
  • 社区:可通过 Discord 进行提问、讨论开发进度、功能建议或 Bug 报告。
  • API 文档:提供了用于与其他服务集成的 API 文档。
  • 贡献:欢迎提交问题报告、拉取请求,共同改进项目。
  • 实时演示:可访问 kyoo.zoriya.dev 查看使用无版权电影的在线演示。
17. Language models as compilers: Simulating pseudocode execution (arxiv.org)

标题: 语言模型作为编译器:模拟伪代码执行

核心内容: 本文提出了一种名为 Think-and-Execute 的新颖框架,旨在提升大型语言模型(LLM)的算法推理能力。算法推理要求理解复杂模式并将其分解为一系列推理步骤,这对LLM仍具挑战。

现有方法的局限性:

  1. 使用编程语言(如Python)来表示解题逻辑(例如“思维程序”PoT)虽然受其精确语法启发,但在单次推理中即时生成正确且可执行的代码并非易事。
  2. 为特定实例生成的代码无法复用于其他实例,即使它们属于同一任务且需要相同的逻辑。

Think-and-Execute 框架: 该框架将语言模型的推理过程分解为两个步骤:

  1. 思考(Think): 发现用于解决给定任务的任务级别逻辑(即所有实例共享的逻辑),并用伪代码来表达该逻辑。
  2. 执行(Execute): 将生成的伪代码进一步适配到每个具体实例,并模拟执行该代码。

实验与发现:

  1. 在七个算法推理任务上的大量实验证明了 Think-and-Execute 的有效性。
  2. 与执行实例特定推理的强基线方法(如思维链CoT和思维程序PoT)相比,该方法能更好地提升语言模型的推理能力,表明发现任务级别逻辑是有益的。
  3. 与自然语言相比,伪代码能更好地指导语言模型的推理,即使这些模型是经过自然语言指令训练的。
18. Xr0: C but Safe (xr0.dev)

Xr0 是一个用于 C 语言的验证器,旨在消除多种顽固的未定义行为,包括释放后使用、重复释放、空指针解引用以及未初始化内存的使用。

它通过类似 C 的注解来验证代码。这些注解附加在每个可能不安全的函数上,表达其调用者安全使用该函数所需了解的信息。例如,为 alloc 函数添加的注解 [ return malloc(1); ] 表明调用者必须释放返回的内存。对于条件更复杂的情况,如 alloc_if 函数,注解 [ if (x) return malloc(1); ] 明确指出调用者仅在 x != 0 时需要进行释放。

Xr0 的核心思想在于防止那些通过多层函数调用悄然潜入的、非常微妙的安全漏洞。它通过将确保安全所需的所有信息分布到每一个函数调用中,使得任何细微的错误都难以隐藏。这相当于将程序每个部分的安全语义与其它所有部分“量子纠缠”在一起。

可以将其理解为一个能够适应程序结构需求、信息无比丰富的类型系统。开发者仍然需要自行确保代码安全,而 Xr0 的作用是检查开发者的工作成果。因此,Xr0 被比作“魔杖”而非“魔法师”,真正的魔力源于程序员本身。

Xr0 仍在开发中,目前仅验证 C89 标准的一个子集。其最主要的限制是尚未实现对循环和递归函数的验证,目前暂时通过公理化注解来弥补。计划中的 Xr0 1.0.0 版本将支持编写无未定义行为的 C 程序,但目前它已可用于验证程序的特定部分。Xr0 使用纯 C 编写,并且是开源项目。

若想了解 Xr0,最好的方式是亲自尝试。通过使用调试器并阅读教程可以理解其工作方式。更深入的内容可参考相关论文以及项目愿景和路线图。用户也可以通过 Discord 或邮件与开发团队交流。

19. Fake AI law firms are sending fake DMCA threats to generate fake SEO gains (arstechnica.com)

许多“虚假律师事务所”通过填满网站的库存图片和AI生成律师头像,掩饰其真实身份。这些头像常表现出AI生成特有的“空洞凝视”,AI检测公司Reality Defender确认这些图片均由GAN模型生成。律师简历表面看似合规,却包含异样设定:部分律师号称毕业于哈佛、耶鲁、斯坦福和芝加哥大学,另一些则是“亚利桑那州法学院”随意生成的名称。例如Sarah Walker的业务涵盖“版权违规”与“刑事司法”,甚至在捍卫艺术家权利与处理高风险刑事案件间切换,其履历明显矛盾。

制造这种虚假律师事务所并向网站主发出伪法律威胁的动机在于获取“反向链接”(backlinks),这是提升SEO搜索排名的重要手段。无论是通过交换、生成或虚假需求,这些链接可令目标网站在谷歌等搜索引擎中获得更高排名,而搜索算法一直难以有效判断链接质量和上下文,促使部分网站主继续购买反向链接。Tech4Gods网站负责人承认为其电子产品评论站购买过反向链接,并表示争议图片并非所有,暗示可能遭到前合作者恶意操作。对于虚假律师事务所“Commonwealth Legal”的法律威胁,受访者Ernie Smith表示截至期限并未收到进一步回复。

20. Deep sea mining could be worse for the climate than land ores (planet-tracker.org)

深海采矿:比陆地采矿对气候影响更甚的“神话”

核心质疑

报告《深海采矿的气候神话》直接挑战了深海采矿公司的核心宣传论点,即开采多金属结核是一种比陆地采矿更低碳的替代方案。

关键研究发现

  1. 评估差异巨大:目前仅有三项学术研究评估了深海结核与陆地矿石在“结核至商品”全生命周期的气候影响。其中两项由深海采矿公司资助。这三项研究的结果差异巨大,使得深海结核的气候影响评估结果高达高出28%或低至76%,存在极大的不确定性,不足以作为决策依据。

  2. 排放根源在于冶炼:无论矿石来自深海还是陆地,超过70%的温室气体排放都来自金属冶炼加工过程。因此,气候影响更取决于冶炼所用的燃料和电力来源、工艺效率与技术,而非矿石的开采地点。

  3. 严重干扰海洋碳循环

    • 扰动碳库:深海采矿车辆会搅起沉积物羽流。据估计,每开采1平方公里,每年将扰动约172.5吨碳。而在已批准采矿许可的克拉里昂-克利珀顿区,每年每平方公里仅固存13.9公斤碳
    • 破坏固碳服务:沉积物羽流可能通过遮挡阳光、降低光合作用来影响海洋上层的碳封存。附着在被开采结核上的生物的碳封存作用也将完全停止。鉴于结核形成需要数千万年,这类损害本质上是永久性的

报告结论与建议

  • 气候风险:深海采矿可能是显著的温室气体排放源,并会破坏关键的海洋碳汇,从而加剧气候变化。
  • 金融风险:这给投资深海采矿的金融机构带来了政策、监管和声誉方面的风险。
  • 行动呼吁:报告呼吁金融机构支持对深海采矿实施暂停,并转而支持陆地采矿和金属生产的脱碳,例如推广可再生能源驱动的采矿电气化,以及发展低湿法冶金等低碳金属加工路线。
21. Understanding and managing the impact of machine learning models on the web (www.w3.org)

本文档由W3C团队撰写,旨在分析以机器学习模型为基础的AI系统对Web产生的系统性影响,并探讨Web标准化在此过程中可能发挥的作用。文档指出,机器学习模型的训练大量依赖Web内容,其生成内容又能通过Web大规模传播,这正在打破Web生态系统的既有平衡。

核心议题与影响领域:

  1. 伦理与社会影响

    • 透明度:需要建立机制,清晰标识AI生成的内容或AI驱动的服务,以维护信息真实性、防止误导。
    • 隐私与数据控制:训练数据可能包含个人信息,存在泄露风险。标准可推动个人数据存储(如Solid)等去中心化架构,增强用户对数据的控制。
    • 安全:AI降低了伪造音视频的成本,加剧了网络钓鱼和欺诈风险,威胁在线信任。
    • 可持续性:模型训练与运行能耗巨大。W3C缺乏评估其标准环境影响的框架,亟需将可持续性纳入考量。
    • 创作者权益与消费者权利平衡:大规模内容抓取训练模型,但未普遍回溯来源或给予补偿,可能削弱创作者发布开放内容的意愿。
  2. 对Web互操作性的挑战

    • 当标准化行为由机器学习模型实现时,如何定义、测试和确保跨实现的互操作性成为难题。
    • 模型的不确定性(相同输入可能产生不同输出)进一步挑战了传统的互操作性验证方法。

标准化学探索方向: 文档列举了若干潜在的标准化学探索方向,以应对上述影响:

  • 建立Web内容用于训练的同意机制。
  • 标准化AI生成内容的标签方案(如C2PA、IPTC标准)。
  • 在模型卡片中公开训练数据来源。
  • 暴露基于模型的Web API。
  • 采用个人数据存储以降低隐私风险。
  • 加强数字身份和凭证机制以抵御仿冒。
  • 为Web标准建立环境影响评估框架。
  • 建立基于模型推理(包括非确定性模型)的互操作性管理框架。

文档强调,其目的是为W3C社区及相关方提供讨论框架,以寻求可持续的解决方案,增加AI对Web的积极影响,减少潜在危害。它呼吁社区就这些议题及其他未提及的领域提供反馈。

22. Cory Doctorow on Kagi Search (pluralistic.net)

科里·多克托罗评Kagi搜索

核心观点:谷歌搜索的“退化”是一种选择

文章作者科里·多克托罗认为,谷歌搜索质量持续下降并非技术局限,而是公司主动选择的商业模式所致。他将这种现象称为“退化”(enshittification)——即大型平台为追求利润最大化,将价值从用户(搜索者)和商业客户(广告商、出版商)转移至自身。

谷歌搜索的今昔对比

  • 早期:谷歌曾以卓越的搜索体验击败AltaVista和Yahoo,带来“魔法般”的感受。
  • 现状:占据约90%市场份额后,搜索结果充斥着机器人生成的垃圾内容、垃圾邮件、诈骗信息和无用内容。重要资源常无法在前列结果中找到。
  • 商业模式:谷歌每年花费数百亿美元确保自己成为各类设备和服务上的默认搜索引擎,此举虽成本高昂,但其巨额利润足以支撑股票回购(如800亿美元)和裁员(如解雇1.2万名技术人员)。公司策略是“购买默认地位”,而非提升产品本身质量。

Kagi搜索作为替代方案

作者的个人体验

  • 在朋友推荐下尝试Kagi后,发现其搜索结果质量显著优于谷歌,能快速找到谷歌已无法显示的重要资源,且几乎无垃圾内容。
  • Kagi提供高级功能如“镜头”(lenses),可针对特定类型资源进行搜索,体验从“魔法”升级为“魔术”。

Kagi的商业模式与技术架构

  • 收费模式:提供100次免费查询后,需付费(个人版10美元/月,家庭版20美元/月最多6账户)。
  • 技术细节(据404 Media报道):Kagi并非完全自建索引,而是通过匿名API调用谷歌、Yandex、Mojeek、Brave等传统搜索引擎索引,结合自有的网络和新闻索引构建结果页。因此,它本质上是谷歌等搜索引擎的“高度定制化匿名前端”。

关键启示

  • Kagi的存在证明谷歌搜索质量下降是主动选择的结果。谷歌选择维持广告密集、质量低下的搜索页面,因为这比提供优质产品更赚钱。
  • 谷歌每年投入巨额资金,就是为了防止用户尝试其他搜索引擎,从而避免用户经历“另一个魔法时刻”。

“太大而不关心”的垄断心态

作者引用FTC主席莉娜·可汗在《每日秀》中的观点,将科技垄断者描述为“太大而不关心”(too big to care)。这与“太大而不能倒”、“太大而不能关”类似,但更凸显了企业因市场支配地位而丧失提升产品质量的动力。

  • 谷歌过去因担忧竞争对手和监管而关注质量,员工也曾推动其关注。
  • 如今,作为搜索市场的垄断者,谷歌已不再有这种关心的必要。

文章其他内容

  • 链接推荐:包含撤稿观察名单、Kickstarter项目、关于资本家的评论等。
  • 历史回顾:收录了过去15年、10年、5年和1年前的各类文章链接,涉及技术、社会、政治等多个话题。
  • 活动与出版物:列出了作者近期的活动安排、最新及即将出版的书籍。

核心结论

谷歌搜索质量的退化并非不可避免的技术退步,而是其在垄断地位下为最大化利润而做出的商业模式选择。Kagi通过聚合优化现有搜索引擎(包括谷歌)的结果,提供了更优的用户体验,反衬出谷歌故意降低产品质量以获利的本质。科技巨头已进入“太大而不关心”的阶段。