2025-10-06

50 篇热帖

1. Fire destroys S. Korean government's cloud storage system, no backups available (koreajoongangdaily.joins.com)

韩国国家信息资源服务(NIRS)位于大田的总部发生火灾,摧毁了政府的G-Drive云存储系统。该系统自2018年以来使用,为约750,000名公务员提供每人30GB的存储空间,用于存储所有工作文件。火灾导致服务器室受损,96个关键中央政府系统被破坏,包括G-Drive。

由于G-Drive的大容量、低性能存储结构,没有外部备份,所有数据永久丢失。损失程度因机构而异:人事管理部损失最严重,因为强制文件存储在G-Drive上;政府政策协调办公室使用平台较少,损失较轻。

人事管理部表示所有部门预计会出现工作中断,正尝试从个人电脑本地保存的文件(过去一个月内)、电子邮件、官方文件和印刷记录中恢复数据。官方文件也存储在政府的Onnara系统中,可能在该系统恢复后找回。

虽然大多数系统每天备份到同一中心的单独设备和远程备份设施,但G-Drive的结构不允许外部备份,导致其脆弱性暴露。该事件引发了对政府数据管理协议的批评。

2. Why do LLMs freak out over the seahorse emoji? (vgel.me)

大语言模型为何对海马表情符号“反应过激”

本文探讨了大语言模型(LLM)普遍“坚信”存在一个实际并不存在的海马表情符号的现象,并分析了其背后的技术原因。

现象:错误的集体“记忆”

  • 测试显示,当被问及“是否存在海马emoji”时,GPT-5、Claude 4.5 Sonnet等主流模型均以100%的高置信度回答“是”
  • 这种信念与部分人类用户相似。社交媒体和网络上存在大量讨论和内容,声称记得曾有过海马emoji,甚至基于其“消失”产生了梗和虚拟货币,但实际上它从未被正式采纳(Unicode联盟曾于2018年拒绝相关提案)。
  • 模型可能因训练数据中人类用户的类似错误信念,或因归纳推理(认为既然有许多海洋动物emoji,理应有海马)而形成此错误假设。

技术原因:模型内部状态与lm_head的冲突

关键工具是logit lens,它通过将语言模型的最终输出层(lm_head 应用于中间层,来窥探模型内部逐层构建输出的过程。

  1. 内部构建意图:当模型试图输出“海马emoji”时,它会在中间层构建一个表示 “海马 + 表情符号” 概念组合的残差向量(例如,模型内部出现“sea”、“horse”及表情符号字节前缀的关联)。
  2. lm_head的匹配机制lm_head本质上是一个将内部残差向量与词汇表中所有token的嵌入向量进行相似度比较的线性层。模型必须构造出与目标token嵌入向量足够相似的残差,才能输出正确token。
  3. 失败的根本原因:由于海马emoji在词汇表中不存在,当包含“海马+表情”信息的残差向量被送入lm_head进行匹配时,无法找到真正的海马emoji。相似度计算会“退而求其次”,选择一个与“马”或“海洋动物”相关的、实际存在的emoji(如热带鱼或马的emoji)。
  4. 错误输出与后续行为:这个错误输出的emoji成为了模型的自回归输入。模型随即意识到输出与原意不符。不同模型对此的反应各异:
    • 有些(如Claude 4.5 Sonnet)会尝试重新生成,并最终修正回答,指出该emoji不存在。
    • 有些(如GPT-5的某些版本)可能会陷入“错误输出的循环”,持续生成不相关的emoji。
    • 另一些则可能忽略错误或快速自我纠正。

启示与推测

  • 在未实际尝试生成并看到lm_head返回的错误token之前,模型无法凭空“知道”其关于海马emoji存在的初始信念是错误的。
  • 文章推测,强化学习(RL) 训练可能对此有益。因为它允许模型基于自身输出的rollout(包括这类错误)进行学习,从而获取关于其输出层(lm_head)行为的、难以通过其他方式获得的信息,这有助于纠正此类“事实幻觉”。
4. My first contribution to Linux (vkoskiv.com)

为Linux内核贡献第一个补丁:修复富士通笔记本热键

作者拥有一台2005年的富士通Lifebook S2110笔记本,其键盘上方有一排热键,可通过硬件开关在“应用程序”和“播放器”两种模式间切换。在Linux系统下,“应用程序”模式的按键(A、B、Internet、E-mail)可正常工作并映射到XF86Launch1-4等事件,但“播放器”模式的媒体控制键(停止、播放、上一曲、下一曲)无响应,且内核日志出现Unknown GIRB result错误。

排查与驱动分析

  1. 确认问题:使用xev工具验证按键事件,发现“播放器”模式无事件输出。
  2. 定位驱动:通过lsmod找到加载的fujitsu_laptop模块,并在内核源码中grep错误信息,确认问题出自drivers/platform/x86/fujitsu-laptop.c
  3. 理解驱动机制
    • 驱动通过ACPI与固件交互,call_fext_func()函数用于读取固件按键事件环形缓冲区。
    • 初始化时,驱动会根据DMI信息(厂商、型号)匹配并选择特定的按键映射表(keymap)。若无匹配,则使用默认映射表。
    • 按键按下时,ACPI通知驱动,acpi_fujitsu_laptop_notify回调函数被触发,读取缓冲区中的扫描码(scancode),并根据当前映射表转换为Linux输入事件码(keycode)。
    • 作者发现其笔记本型号S2110未在驱动的DMI匹配表中,因此使用了默认映射表,而该表未包含“播放器”模式的扫描码定义。

修改与测试

  1. 定义新扫描码:扩展已有的KEY*_CODE宏定义,增加KEY5_CODE(0x414)至KEY8_CODE(0x417)以覆盖“播放器”模式的按键。
  2. 创建新按键映射表:定义keymap_s2110[],将上述扫描码映射到相应的Linux媒体控制键码(如KEY_STOPCD, KEY_PLAYPAUSE等)。
  3. 添加DMI匹配条目:在fujitsu_laptop_dmi_table数组中为LifeBook S2110添加条目,使其回调函数将全局keymap指针指向新的映射表。
  4. 本地测试:通过Arch Linux的构建系统编译并安装修改后的内核,确认所有热键在两种模式下均能正常工作,并成功在窗口管理器(i3)中绑定相关命令。

提交至上游

  1. 准备补丁:提交代码更改,使用scripts/checkpatch.pl检查代码风格,通过scripts/get_maintainer.pl获取维护者邮件列表。
  2. 发送邮件:遵循内核传统,使用git send-email将补丁发送给相关维护者及邮件列表。
  3. 并入主线:补丁获得维护者ACK,并于2025年5月被合入Linux 6.15主线,随后被反向移植到多个长期支持(LTS)内核版本。作者通过系统更新在设备上验证了上游内核已包含该修复。

总结

作者通过修复一个具体的硬件兼容性问题,实践了Linux内核的开发流程:从问题定位、驱动代码分析、补丁编写测试,到遵循社区规范提交至上游。整个过程涉及ACPI、输入子系统、DMI匹配等内核概念,展示了传统邮件列表工作流的有效性。此次修改虽小,但作者已准备好处理更复杂的核心代码贡献。

5. 1 Trillion Web Pages Archived (blog.archive.org)

互联网档案馆庆祝存档1万亿网页里程碑

里程碑事件 2025年10月22日,互联网档案馆庆祝其通过Wayback Machine(回溯机器)保存并可供访问的网页数量达到1万亿个。自1996年以来,该机构与全球图书馆及合作伙伴合作,致力于构建人类在线历史的共享数字图书馆,确保从重大新闻到个人页面的各类网站能为后代所访问。

庆祝活动回顾 为庆祝此里程碑,档案馆举办了一系列活动,强调了促成此成就的记忆、创建者与运动,并展望了网页保存的未来:

  1. Doors Open 2025(2025年开放日):包含实地档案馆参观和庆祝派对。活动“我们构建的网络”于10月22日举行并进行了录制。
  2. 演讲嘉宾:包括互联网档案馆创始人Brewster Kahle、万维网发明者Tim Berners-Lee(获颁2025年互联网档案馆英雄奖)、互联网发明者Vint Cerf、NPR的Katherine Maher、BBC News的Lily Jamali、Wayback Machine总监Mark Graham等众多嘉宾。
  3. 音乐表演Del Sol Quartet在档案馆内举办了“浩瀚的蔚蓝我们”音乐会,演奏了新作品,通过音乐反思人类集体行动如何汇聚成宏大而美好的事物。

活动照片 档案馆公开了多项活动的照片资料,包括10月7日的音乐会、10月21日的集会与开放日参观、以及10月22日的庆祝活动。

用户故事与影响力 1万亿网页不仅是数字,更代表了对人们生活、研究和记忆的真实影响。Wayback Machine已成为一项重要的公共资源,被应用于移民案件、个人历史、学术研究和调查性新闻等领域。档案馆鼓励用户分享自己的故事。

支持与捐赠 互联网档案馆呼吁公众通过筹款或直接捐赠来支持其继续为后代保存网络历史的工作。

6. Mise: Monorepo Tasks (github.com)

Mise: Monorepo Tasks 功能概览

功能简介:Monorepo Tasks 是 mise 任务系统的重大新功能,旨在为单仓库(monorepo)提供一流的内置支持。它允许在单一代码仓库中管理多个子项目的任务,同时每个项目可以拥有独立的工具、环境变量和任务定义。

核心特性

  • 统一的任务命名空间:所有子项目的任务会自动被发现并以其路径作为前缀,例如 mise //projects/frontend:build
  • 智能工具与环境继承:工具版本和环境变量可以在仓库根目录定义,并由子项目选择性继承或覆盖。
  • 强大的通配符模式:支持通过通配符(如 ...*)批量运行任务,例如 mise //...:test 可运行所有子项目的测试。
  • 一致的执行环境:无论从哪个目录运行,任务都会在其定义所在的配置根目录上下文中正确执行。
  • 自动信任传播:信任仓库根目录后,所有子目录的配置也会自动获得信任。

快速开始

  1. 在根目录的 mise.toml 中启用实验性功能:experimental_monorepo_root = true
  2. 设置环境变量:export MISE_EXPERIMENTAL=1
  3. 在各子项目的 mise.toml 中定义任务。
  4. 从任何位置使用统一命名空间运行任务。

与其他工具对比

mise 的 Monorepo Tasks 旨在平衡功能与简洁性,其优势在于:

  • 语言无关性:与专注于 JavaScript/TypeScript 的工具(如 Nx、Turborepo)不同,mise 能同等支持 Rust、Go、Python 等多种语言。
  • 综合管理:结合了任务管理和工具版本管理,这是许多简单任务运行器(如 Taskfile、Just)或大型构建系统(如 Bazel、Buck2)的侧重点不同。
  • 配置简单:使用 TOML 配置,相比 Bazel 等需要专门 DSL 和严格“密封构建”的复杂系统,mise 更易上手和集成。
  • 适用场景:非常适合多语言单仓库、希望统一管理工具与任务、追求简洁性的团队。

与其它类别工具的简要对比

  • 简单任务运行器:缺少统一发现、跨项目通配符和继承功能。
  • JavaScript 专用工具:在特定生态系统内功能强大,但语言支持受限。
  • 大规模构建系统:功能极其强大(分布式缓存、密封构建),但复杂度高、学习曲线陡峭。

当前状态与反馈

此功能目前为实验性状态,但已功能完整可用。其 API 可能会根据用户反馈进行迭代。开发团队鼓励用户试用并分享意见。

7. Structured Procrastination (structuredprocrastination.com)

结构化拖延

结构化拖延是一种将拖延特质转化为高效行动策略的方法。其核心理念源于罗伯特·本奇利的观察:“人能完成任何工作量,只要那工作不是他当时该做的事。”

核心原理: 拖延者并非无所事事,而是倾向于从事次要或看似有用的任务(如园艺、整理、社交),以此逃避更重要、更紧迫的事务。关键在于,当这些次要任务成为逃避“更重要任务”的途径时,拖延者反而能获得动力去完成它们。

实践方法:

  1. 任务列表排序:将待办事项按重要性从高到低排列。顶部位列最紧急、最重要的任务。
  2. 利用逃避动力:通过完成列表下方的、次重要的任务,来避免执行顶部任务。这使得拖延者能完成大量有价值的工作,并获得高效能的声誉。
  3. 设置“理想”的顶部任务:为确保体系运作,顶端任务最好具备两个特点:
    • 截止日期似紧实松:看似紧急,但实际延迟后果不严重。
    • 重要性似高实低:看似关键,但并非真正不可或缺。 这类任务能持续提供逃避动力,而拖延者最终往往能在其他“更重要”任务出现时,将它作为逃避手段轻松完成。

重要原则:

  • 增加任务而非减少:试图通过减少任务来消除拖延适得其反,会使仅剩的任务变成无法逃避的“最重要”事项,导致彻底停滞。
  • 自我欺骗的运用:该策略需要一定程度的自我欺骗,即认可那些被自己夸大了重要性的任务。作者认为,利用一种性格缺陷(自我欺骗)来抵消另一种(拖延)的负面影响,是可接受的。

实例说明: 作者以自身经历为例:他拖延撰写一篇本应早该完成的哲学文章,却在此期间完成了其他许多工作。同样,拖延填写课程书单,促使他做了其他有用的事,而实际书单提交时间远比想象中灵活。他曾担任驻院研究员时,以与学生打球、交流来逃避学术工作,反被赞誉为关心学生的好教授。

结论: 结构化拖延将拖延者的普遍倾向——逃避首要任务——重新定义为一个可管理、甚至可产生积极产出的过程。它通过巧妙的任务排序和对“重要性”的心理操纵,使拖延者能够高效运作并完成大量工作。

8. Show HN: Write It Down – Personal finance tracker (write-it-down.com)

Write It Down 个人理财跟踪器摘要

概述

Write It Down 是一款基于 Google Sheets 的个人理财跟踪工具,旨在帮助用户在一屏内查看整个月的财务状况,从而清晰了解资金流向。已有超过 2,633 名用户使用该工具跟踪财务。

核心特点

  • 快速启动:用户可在 1 分钟内开始跟踪财务。
  • 价格与许可:一次性支付 $8.99 即可永久拥有,无订阅费用。
  • 免费仪表板:包含一个免费仪表板,可连接多个表格,将数据合并成多年财富图表和类别趋势,提供单个表格无法显示的宏观视图。
  • 隐私与安全:表格内容为只读,不存储在服务器上,目前正接受 Google 审核。

版本详情

工具提供两个版本,均为一次性付款:

Sheet v1

  • 功能:跟踪收入、支出和自定义类别,适用于 Google Sheets,提供简洁仪表板。
  • 货币:仅支持美元。
  • 价格:$8.99。

Sheet v2

  • 功能:包含 v1 所有功能,增加多货币支持、预算与储蓄管理、最多 10 个账户跟踪,以及 50 条金钱提示。
  • 价格:比 v1 多 $3 美元(即 $11.99),强调多货币支持足以抵消额外成本。

用户场景与数据

  • 痛点:60% 的成年人无法说出上个月的花费;作者分享经历,发现随机收费每月累计高达 $300。
  • 优势:通过可视化财务数据,帮助用户识别不必要的支出,从而节省资金。

使用方式

  • 仪表板访问:提供独立仪表板链接,用于合并多个表格数据并生成趋势图表。
  • 兼容性:完全基于 Google Sheets,确保易用性和可访问性。
9. An illustrated introduction to linear algebra (www.ducktyped.org)

这篇文章通过两个具体例子介绍了线性代数的两个核心概念:高斯消元法行图像与列图像的视角对比

  1. 高斯消元法

    • 这是一种求解线性方程组的代数方法,历史悠久,早于线性代数本身。
    • 通过两个例子说明:
      • 硬币问题:用5分和1分硬币凑出23分,对应方程 (5x + 1y = 23),解为 (x=4, y=3)。
      • 营养配餐问题:通过牛奶和面包达到5克碳水化合物和7克蛋白质的目标,对应方程组: [ \begin{cases} x + 2y = 5 \ 2x + y = 7 \end{cases} ]
      • 使用高斯消元法逐步消去变量,最终解得 (x=3, y=1)。
  2. 行图像与列图像

    • 行图像(传统方程组视角):
      • 将每个方程画成一条直线,解为直线的交点。
      • 例如,营养问题的两条直线 (y = 2.5 - 0.5x) 和 (y = 7 - 2x) 相交于点 ((3,1))。
    • 列图像(线性代数视角):
      • 将问题重写为一个向量方程:
        [ x \begin{bmatrix} 1 \ 2 \end{bmatrix} + y \begin{bmatrix} 2 \ 1 \end{bmatrix} = \begin{bmatrix} 5 \ 7 \end{bmatrix} ]
      • 通过图形化方式,将牛奶和面包的“营养向量”(视为箭头)进行线性组合,以达到目标向量(点 ((5,7)))。
      • 该方法更直观地展示了如何用向量组合求解。
  3. 矩阵表示

    • 文章末尾引入矩阵形式作为预告:
      [ \begin{bmatrix} 1 & 2 \ 2 & 1 \end{bmatrix} \begin{bmatrix} x \ y \end{bmatrix} = \begin{bmatrix} 5 \ 7 \end{bmatrix} ]
      • 这等价于之前的向量方程,为后续讨论矩阵和点积做铺垫。

总结来说,本文通过生活化例子,初步展示了线性代数的实用性:高斯消元法提供代数解法,而行图像与列图像则从几何视角呈现线性组合与向量加法的概念。

10. Ask HN: What's the best hackable smart TV?

该Hacker News讨论汇集了用户对“最佳可破解智能电视”的建议和经验,核心观点围绕品牌选择、系统可定制性、作为显示器的适用性以及替代方案展开。

主要推荐:LG C系列OLED电视

  • 画质与性能:被广泛称赞拥有出色的OLED面板,支持FreeSync/G-Sync,刷新率好,文本可读性佳,且同尺寸下使用了与更高端G系列相同的面板。
  • 可破解性:其WebOS操作系统非常容易通过开发者模式获取root权限。拥有活跃的自制软件社区,可安装自制应用商店,获得无广告YouTube客户端、游戏串流(如Moonlight)等应用,甚至能重新定义遥控器按钮。
  • 使用建议:作为显示器使用时,建议连接后置为PC模式,禁用WiFi以避免广告和更新中断。用户可通过LG串口协议(如使用ESP32和Home Assistant)实现高级自动化控制。
  • 缺点:屏幕反光,在明亮房间中表现不佳。部分用户抱怨遥控器设计(如取消独立的暂停键)和WebOS某些操作逻辑。

普遍不推荐:三星

  • 系统问题:操作系统被多次批评反应迟缓、广告泛滥(会分析用户内容用于推送广告),且难以root。
  • 用户体验:有用户报告作为显示器使用时存在信号识别问题、频繁弹出更新服务条款的窗口,且设置可能被强制更新更改。
  • 隐私担忧:即使断开互联网,设备仍可能尝试发送数据。建议在路由器层面完全阻断其网络访问。
  • 例外:有用户喜欢三星“The Frame”的艺术模式和设计,但仍强烈批评其操作系统。

作为显示器的考虑因素

  • 核心区别:电视在“无信号”时会显示待机动画,而显示器会进入睡眠。这可以通过固件修改或外接设备解决。
  • 接口限制:大多数电视缺乏DisplayPort接口,迫使整个链路使用HDMI。
  • 自动化控制:LG电视的串口接口文档完善,可用于实现免联网的远程控制和自动化。

替代方案与实用建议

  • 外接设备方案:许多用户建议完全避免使用电视的内置智能系统,而是将其仅作为显示屏,外接NVIDIA Shield、小型PC、Raspberry Pi或Apple TV等设备。这能获得更流畅、无广告的体验,并完全掌控软件。
  • “哑电视”选择:可以购买廉价的“哑电视”或老式1080p电视,仅通过HDMI连接外部设备。商业/数字标牌显示器也被提及,它们功能简单、耐用且无消费级智能电视的烦恼。
  • 网络设置:对于必须联网的电视,使用Pi-hole、AdGuard DNS或在路由器层面设置VPN+广告拦截是常见的隐私和广告管理手段,但效果可能因广告商采用新追踪技术(如DoH)而打折扣。
  • 商店模式:将电视设置为“商店模式”可以禁用大部分智能功能,使其变为简单的HDMI显示器,但可能会启用一些图像后处理设置(如高亮度、动态平滑)。

其他品牌提及

  • 索尼(Android TV):被认为其Android TV系统相对干净,且可使用ADB安装自定义启动器来移除广告和臃肿软件。面板本身可能由LG制造。
  • 海信:有用户通过将其设为“商店模式”作为哑显示器使用。

关于分辨率与画质的讨论

  • 有用户认为对于作为显示器的文本工作,4K分辨率差异明显。但对于视频内容,由于流媒体压缩,4K优势可能不显著。
  • 1080p电视作为廉价方案被部分用户接受,尤其是在主要用途是文本工作而非高画质视频或游戏时。
  • HDR在廉价电视上效果可能不佳,甚至不如不使用。

总结建议:对于寻求“可破解”体验的用户,LG C系列(如C1) 因其出色的面板、容易获取的root权限和活跃的自制社区而成为首选。对于追求简洁和隐私的用户,外接小型计算设备(如NVIDIA Shield)至一台“哑”显示器或电视是更受推崇的终极解决方案,从而彻底规避内置智能系统的各种问题。

11. Modern messaging: Running your own XMPP server (www.codedge.de)

摘要

本文介绍了搭建个人XMPP(现代消息协议)服务器的原因、方法和关键配置,旨在帮助用户摆脱商业通讯服务的隐私监控,实现自主可控、加密的通讯。

搭建动机与背景

文章指出,主流商业聊天应用存在严重的隐私风险,包括数据被监听、用户文件被滥用以及数据泄露的可能。此外,欧盟正推动一项计划,旨在自动监控所有聊天、邮件和消息,这被认为是对言论自由的威胁。因此,作者选择自行搭建XMPP服务器。

选择XMPP服务器的理由

XMPP是一个成熟的开源标准,具有以下优势:

  • 资源要求低:可在Debian或树莓派OS上运行。
  • 功能全面:支持集群部署(高可用)、OMEMO端到端加密、文件共享、音视频通话以及多用户聊天室。
  • 生态完善:拥有成熟的客户端和解决方案。

搭建步骤与核心配置

搭建过程主要分为域名准备、服务器安装和详细配置。

  1. 域名设置: 需要为主服务器及多个子功能服务设置DNS A记录(支持IPv4和IPv6),包括主地址(xmpp.example.com)、聊天室(conference.)、代理(proxy.)、文件上传(upload.)、音视频(stun./turn.)等。

  2. 安装 ejabberd: 推荐使用ejabberd作为服务器软件。可通过添加官方Debian仓库或直接从GitHub下载.deb包进行安装。

  3. 防火墙端口: 必须开放特定端口,例如5222/5223(客户端连接)、5269(服务器间通信)、5443(网页管理/上传/WebSocket)、7777(文件传输代理)、3478/5349(STUN/TURN音视频服务)等。

  4. 关键配置项(ejabberd.yml): 配置以隐私保护为优先,部分设置可能不符合XMPP完全合规测试。

    • 数据库:使用sqlite作为后端数据库。
    • 安全:生成并配置4096位的DH参数;强制要求服务器间通信使用TLS(s2s_use_starttls: required)。
    • 监听器:详细配置了各端口的请求处理程序,如5443端口处理网页管理、文件上传、WebSocket等。
    • 管理员:通过ACL和访问规则设置root用户为管理员,并使用命令行创建该用户。
    • 文件上传:启用mod_http_upload模块,设置存储路径、最大文件大小(10MB),并通过cron任务定期清理上传文件。
    • 用户注册:可启用mod_register模块并必须启用验证码以防垃圾注册,同时设置最小密码强度。
    • TLS证书:使用ejabberd自身的ACME功能(通过/.well-known/acme-challenge)自动配置TLS证书,并在前端使用Nginx反向代理
  5. 连接方式与客户端

    • 通过提供host-metahost-meta.json文件,告知客户端服务器支持WebSocket连接(未启用BOSH)。
    • 推荐使用Profanity(命令行客户端)或Monal(macOS/iOS客户端)。

总结

本文提供了一套在Linux系统上自建隐私优先的XMPP服务器的完整指南,涵盖了从域名、安装、安全加固到核心功能(加密、聊天室、文件共享、音视频)配置的全过程,使用户能够搭建一个完全自主控制的通讯平台。

12. A macOS terminal command that tells you if your USB-C cable is bad (kau.sh)

这篇文章介绍了一个用于macOS终端的实用工具usbi,其主要功能是帮助用户判断USB-C数据线的质量(是否支持高速数据传输)。

核心功能

该工具通过解析macOS内置命令system_profiler SPUSBHostDataType的原始输出,将杂乱的硬件信息转化为清晰易读的格式。用户连接设备后运行脚本,即可快速了解当前USB数据线的连接状态和传输能力,从而区分出充电慢或数据传输性能差的低质量线缆。

开发与AI辅助

作者详细描述了使用AI辅助编程的经历:

  1. 第一版:用bash脚本实现,但由AI主导编写,导致代码结构混乱,难以维护和修改。
  2. 重写版本:选择Go语言重构,主要基于以下考虑:
    • 代码结构更清晰,易于后续调整。
    • 支持编译为跨平台可执行文件。
    • 利用AI(Claude)重写过程仅耗时约10分钟,大幅降低了开发成本。

核心观点

作者强调,这个小工具的价值不仅在于其功能本身,更在于它体现了AI对小型实用工具开发门槛的彻底改变。过去因开发成本过高而被认为“不值得投入”的项目,如今借助AI可以快速实现,这改变了人们对时间投入产出比的考量。

13. State Terror, American Style (paulkrugman.substack.com)

文章内容聚焦2025年9月30日发生在美国芝加哥的一次引发广泛担忧的执法事件。美国边境巡逻队特工出动直升机空降、破门进入公寓大楼实施突袭,声称针对帮派成员,但行动中包括美国公民在内的所有居民均被拘留,房屋被毁坏,儿童被从床上带走。作者指出,此类事件未获得与其严重性相称的媒体关注,表明许多人对特朗普政府迅速走向专制的速度和强度缺乏认知。

文章明确否定此次突袭与打击犯罪有关,因为芝加哥的凶杀案数实际已降至60年来的最低点。作者认为,政府行动的真实动机源于偏执的阴谋论,并旨在瓦解民主制度。文章引用了特朗普移民政策负责人斯蒂芬·米勒的言论,其将任何反对意见均定义为“恐怖主义”,并扭曲现实,例如将波特兰民众对执法者的呼喊描绘为“恐怖袭击”。

作者通过数据对比指出,美国国内左翼恐怖活动实际上极为罕见,右翼恐怖主义活动的减少可能是因为潜在施暴者认为特朗普政府已代为行事。文章进一步警告,威胁不仅针对移民,白宫备忘录已指示联邦调查局基于“反资本主义”、“反基督教”等极其宽泛的标准调查潜在国内恐怖组织,实质上为压制一切异见铺路。

作者分析,政府行为如此极端且迅速,可能源于特朗普等人正与时间赛跑。由于公众支持率低且反对多数主要政策,他们试图在民意反弹前利用政府机器恐吓对手。最后,作者呼吁公众和体制进行抵抗,不要为安抚MAGA运动而让步或淡化批评,并指出迄今为止,没有像特朗普这样不受欢迎的威权企图者能在公众反对下巩固权力。作者强调,此前对特朗普威胁的警告已被证明完全正确。

14. More random home lab things I've recently learned (chollinger.com)

家庭实验室近期学习笔记

网络环境概览 作者的家庭实验室包含一个双节点Proxmox集群(主节点为Dell R740XD,备用节点为树莓派5)、一台TrueNAS备份服务器、一台虚拟化的Proxmox备份服务器、两台UPS,以及Mikrotik/UniFi网络设备。监控通过Grafana+Prometheus/InfluxDB实现,并有一个自定义的Scala服务器用于聚合告警并通过Telegram推送。

树莓派5使用NVMe SSD 树莓派5通过一个廉价的GeekPi M.2 NVMe转PCIe适配器,可以支持全尺寸的NVMe SSD(需5V/5A电源)。作者移除了原装SD卡,因其性能急剧下降,诊断显示为SD卡即将故障的典型症状(I/O超时)。将操作系统直接安装到NVMe SSD上解决了此问题。

操作系统安装到NVMe SSD 由于Raspberry Pi OS的设计初衷是直接写入SD卡,安装到NVMe SSD需要一些额外步骤:

  1. 使用树莓派镜像工具将系统写入一个USB驱动器,并保存生成的firstrun.sh脚本。
  2. 修改config.txt文件以启用PCIe并忽略电流警告(开发测试用)。
  3. 从USB启动,在Pi上更新系统、固件并安装rpi-imager工具。
  4. 使用rpi-imager命令行工具结合之前保存的firstrun.sh脚本,将系统直接写入NVMe SSD。

在树莓派5上运行Proxmox 安装Proxmox后遇到两个主要问题:

  1. OOM Kill问题:即使内存充足,虚拟机也会因内存不足而被杀死。解决方法是在/boot/firmware/config.txt中明确设置内核页面大小为4K。
  2. 虚拟机网络/控制台不可用:虚拟机启动后无法从外部访问,控制台也无输出。根本原因是ARM架构的虚拟机必须使用OVMF(UEFI)BIOS,而非传统的SeaBIOS。此问题与网络配置无关。

技巧:使用kpartxchroot调试虚拟机 当需要直接访问和修改QEMU虚拟机磁盘时,可以使用kpartx挂载虚拟磁盘分区,然后chroot进入,便于进行调试或修复操作。

Proxmox Backup Server死锁问题 如果PBS使用的ZFS存储卷完全写满,会导致其无法运行垃圾回收操作,从而进入死锁状态,无法释放空间。

  • 原因:垃圾回收是操作系统层面的操作,需要少量空间;而直接删除.chunk文件可能破坏合法备份。
  • 解决方案:立即删除所有ZFS快照以释放被引用的空间。长期方案是为存储池设置配额(例如设为物理容量的95%),以防止其被完全填满。

其他实用工具

  1. CyberPower UPS管理软件:高端型号自带PowerPanel Business软件,提供事件日志、详细统计和高级设置,并支持SNMP协议以便集成到Grafana等监控系统。
  2. DAV服务器:作者使用Davis运行(Cal)DAV服务,用于共享日历,并通过ngrok流量策略安全地暴露必要端点。
  3. 食谱管理器mealie:作者高度评价这款自托管食谱管理工具,它格式标准、分类清晰,非常适合归档、开发和测试食谱,避免了依赖充斥着广告和无关内容的烹饪网站。

总结 作者通过一系列实践和排错,分享了家庭实验室中遇到的硬件兼容性、操作系统安装、Proxmox内存管理、备份服务维护以及实用自托管服务等方面的经验。

15. Show HN: Kent Dybvig's Scheme Machine in 400 Lines of C (Heap-Memory Model) (gist.github.com)

这是一个用约400行C代码实现的Scheme解释器,它基于Kent Dybvig的论文《Scheme的三个实现模型》第3.4节中描述的堆内存模型虚拟机。

主要组件与功能

  1. 词法分析器 (Lexer): 将输入字符串分解为token(如括号、符号),忽略空白字符。
  2. 读取器 (Reader): 将token流解析为内部S表达式表示。它使用静态数组 textPair 结构构建列表。
  3. 打印器 (Printer): 将内部S表达式表示输出为可读的字符串,支持列表和点对表示法。
  4. 编译器 (Compiler): 将S表达式编译为虚拟机指令序列。支持的操作包括:
    • quote, lambda, if, set!, call/cc 等特殊形式。
    • 函数调用(应用)。
    • 常量(数字、布尔值)和变量引用。
  5. 虚拟机 (Virtual Machine): 执行编译器生成的字节码。它通过五个寄存器(accum, next, env, rib, stack)来管理状态,并实现了以下核心指令:
    • refer (获取变量值), constant (加载常量), close (创建闭包)。
    • test (条件分支), assign (赋值)。
    • frame (保存调用栈帧), argument (准备函数参数), apply (应用函数)。
    • return (返回), conti (捕获当前续延), nuate (用捕获的续延恢复执行)。
  6. 主循环 (REPL): main 函数实现了一个简单的“读取-求值-打印”循环,不断读取用户输入,经过编译后交给虚拟机执行,并打印结果。

核心特点

  • 堆内存模型: 所有数据(包括S表达式和虚拟机指令序列)都通过一个全局的 Pair 数组 (text) 和 cons 函数分配在堆上。
  • 环境模型: 环境通过 extendgetset 函数管理,是关联列表的列表。
  • 续延捕获: call/cc 的实现通过在虚拟机栈上创建闭包来捕获当前续延。
16. Ohno Type School: A (2020) (ohnotype.co)

文章探讨了大写字母 A 在字体设计中的常见误区与正确原则:

  • 横杠位置:不应将横杠置于垂直中心线上,否则会导致上部负空间过小,使字母显得“高腰”且不美观。
  • 负空间平衡:设计的关键在于平衡字母顶部的三角形负空间和底部的负空间,使二者面积相近。
  • 笔画连接处:在笔画交接处(如A的顶部交汇点),避免保持完全一致的笔画粗细。连接处应适当减细,以防止视觉上显得过重;但调整需适度,且笔画粗细的变化并非字体对比度的决定性因素。
17. What GPT-OSS leaks about OpenAI's training data (fi-le.net)

OpenAI GPT-oss 训练数据泄露分析

本文探讨了OpenAI发布的开源权重模型GPT-oss如何泄露其训练数据细节,并证实GPT-5等模型的训练语料中包含了成人网站和垃圾信息短语。

嵌入矩阵与异常Token分析

通过分析GPT-oss使用的o200k分词器嵌入矩阵的L2范数(L2 norm),研究揭示了以下训练特征:

  • 低范数Token:约936个Token范数极低,表明它们未参与训练并受权重衰减影响,可用于估算初始化方差和梯度下降总步数。
  • 高范数英文Token:多为常见词或编程/推理词汇,暗示编程强化学习可能是训练的最后阶段,或推理Token获得了更大的梯度更新。
  • 高范数非ASCII Token(异常Token):包含大量中文博彩、成人网站词汇(如“大香蕉网”、“无码”等)及部分小语种罕见词汇。这些Glitch tokens在分词器中被意外地过度代表。

成员推断与数据来源验证

通过“成员推断(Membership Inference)”测试,向模型输入敏感的异常Token(如“毛片免费观看”),发现GPT-5能准确识别其含义且未触发安全拒绝,证实这些字符串确实存在于训练集中。自动化测试表明,被模型正确识别的异常Token在GitHub上的搜索命中率显著更高,暗示这些内容可能源自GitHub的垃圾代码仓库或内容审核黑名单。

安全隐患与附加用途

开源权重范式为生产模型引入了新的攻击向量。异常Token还可用于:

  • 模型识别:探测专有API管道(如Cursor Auto模式)背后实际调用的底层模型。
  • 样本效率评估:通过模型对罕见Token的认知程度,评估其样本效率的上限。
  • 拒绝服务攻击(DoS):在旧版模型(如gpt-4o)中,部分异常Token会触发无限循环补全,导致Token资源耗尽。

结论与建议

研究证实GPT-5和GPT-oss系列模型使用了成人网站等低质量短语进行训练。为缓解数据泄露及潜在安全风险,建议前沿AI实验室在构建分词器时主动剔除不常见的罕见字符串。

18. Show HN: I'm building a browser for reverse engineers (nullpt.rs)

为逆向工程师构建的浏览器

项目起源与初始挑战

作者的工作涉及AST转换、浏览器指纹识别和反机器人绕过,但现有工作流(手动分析脚本、使用Webcrack等工具)仍显低效。目标是构建一个集成了多种逆向工程功能的浏览器,成为“瑞士军刀”般的工具。

最初计划通过Chrome扩展实现。尝试在内容脚本中挂钩JavaScript函数(如Array.prototype.push),但因内容脚本运行在隔离环境中而失败。随后尝试向页面注入<script>标签,但同样因时机问题未成功。

关键突破:使用CDP与Electron原型

作者转向使用Chrome DevTools Protocol(CDP)。发现Page.addScriptToEvaluateOnNewDocument方法可以在页面脚本运行前注入代码,从而成功挂钩函数。使用Electron快速构建了原型,能够监控如Canvas API(toDataURL)等函数调用,并在侧边栏显示事件。

遇到OOPIF挑战与解决方案

当针对使用Cloudflare Turnstile的网站进行测试时,发现因Turnstile运行在沙盒化的、跨进程的iframe(OOPIF)中,注入的钩子无法生效。通过监听CDP的Target.attachedToTarget事件并自动附加到新目标,实现了在OOPIF中注入代码,成功捕获了事件。

应对反检测:深入浏览器底层

简单的JavaScript运行时挂钩容易被反机器人脚本检测(例如通过检查函数的toString()name属性)。修补这些漏洞如同“打地鼠”,且可能引入新的检测点。

因此,作者决定分叉Chromium。在Blink层(渲染引擎)直接修改toDataURL等API的实现,通过创建自定义的CDP域(名为“Snitch”)来发射事件。这种方式不修改JavaScript原型,从而更加隐蔽。

工具的其他核心功能

  1. 反混淆:自动检测并尝试使用集成工具(如deobfuscate.io)反混淆加载的JavaScript文件。
  2. 属性与函数覆盖:允许用户定义自定义脚本,覆盖跨所有框架(包括OOPIF)的函数或属性,且能绕过常见的完整性检查。
  3. 指纹负载解密:针对已知的指纹采集器(如FingerprintJS),自动拦截其外发请求,并解密/解码负载,以结构化形式展示。

现状与未来计划

项目已从周末原型发展为功能强大的研究工具。未来目标包括:

  • 摆脱Electron:将UI直接嵌入Chromium,以减少体积和潜在的泄漏。
  • 全面挂钩:探索在V8引擎层面或通过修改IDL代码生成器,在构建时自动插入钩子,以实现更深入、全面的API监控。
  • 是否开源:尚未决定是否将此工具开源。

附录:收集的Canvas指纹示例

文章最后展示了在研究过程中从TikTok、FingerprintJS、Cloudflare等网站收集到的多样化canvas指纹图像及其生成代码。

19. Link Khan: Activision-Blizzard buyout is 'harming both gamers and developers' (www.pcgamer.com)

微软收购动视暴雪后,前美国联邦贸易委员会主席莉娜·汗公开批评该交易损害了游戏玩家和开发者。她在X平台发帖指出,收购完成后随之而来的是大幅涨价和大规模裁员,印证了FTC当初反对该交易时提出的警告。

收购背景与争议: FTC在2022年起诉试图阻止该收购,理由是担心交易可能大幅减少市场竞争并导致垄断。然而,微软和动视暴雪当时坚称合并将有利于消费者和员工,并促进竞争。尽管法律程序尚未结束,交易仍于2023年10月完成。

收购后的负面影响:

  • 大规模裁员: 交易完成仅数月后,微软就裁减了动视暴雪和Xbox部门的1900名员工,并取消了一款长期开发的生存游戏。随后在2024年9月又裁员650人,2025年7月更是裁减了微软旗下9000名员工,导致多个游戏项目被取消和工作室关闭。
  • 服务涨价: Game Pass终极版和PC版Game Pass价格近期再次大幅上涨,这是自收购完成以来的第二次涨价,FTC曾对之前的涨价提出过严厉批评。

莉娜·汗的观点与现状: 莉娜·汗认为,随着市场集中度的提高,价格上涨往往随之而来。占主导地位的企业会变得“太大而无需在意”,从而在不担心后果的情况下损害消费者利益。她已于2025年1月卸任FTC主席,因此其言论不再具有监管效力,但文章认为她的批评是有依据的

总体而言,文章呈现了微软完成对动视暴雪的收购后,接连发生大规模裁员与核心服务涨价的情况,这些事态发展被前FTC主席引证为其当初反对该交易的依据。

20. Under the hood: Vec<T> (marma.dev)

Rust Vec<T> 内部结构解析

本文深入探究了Rust标准库中 Vec<T> 的内部实现结构,揭示了其并非简单的 ptrlencapacity 三个字段,而是由一系列分层的嵌套类型构成,每一层都在原始指针之上增添了一层安全与抽象。

逐层剖析

Vec<T> 的公开定义仅包含两个字段:

  • buf: RawVec<T, A>:管理内存缓冲区。
  • len: usize:记录已初始化的元素数量。

RawVec<T, A> 本身是一个仅限 crate 内部可见 (pub(crate)) 的结构体,其核心是另一个内部类型 RawVecInner<A>RawVecInner<A> 才真正持有了 ptrcap(容量),但两者均由新类型定义:

  • ptr: Unique<u8>
  • cap: Cap(一种管理容量边界的新类型,此处不展开)。

继续深入,Unique<u8> 是对 NonNull<u8> 的封装,而 NonNull<u8> 最终封装了一个原始的 *const u8 指针。

核心层次链如下: Vec<T>RawVec<T>RawVecInnerUnique<u8>NonNull<u8>*const u8(原始指针)。

各层的设计目的

  1. *const u8(原始指针):最底层的内存地址表示。它可以为空、悬垂或未对齐,不携带生命周期信息,使用它需要进入 unsafe 块。
  2. NonNull<u8>:一个简单的包装器,保证指针永不为空。这消除了空指针错误这一类问题,并允许编译器对 Option<NonNull<T>> 进行优化,使其与裸指针大小相同,实现了零成本抽象。
  3. Unique<u8>:在 NonNull 基础上,附加了所有权语义。它表明其拥有者(如 RawVecInner)是数据的唯一所有者,并有责任在离开作用域时释放该数据。创建 Unique<T> 是安全的,但在通过它访问数据(如 as_mut()as_ref())时,程序员必须在 unsafe 块中保证没有其他指针同时访问该内存,以换取编译时的借用检查和数据竞争防护。
  4. RawVec<T>:一个底层的内存管理实用工具。它负责与内存分配器交互,请求堆内存、在需要时扩容(通常容量翻倍),并在 Vec 被丢弃时释放内存。它只跟踪容量 (cap),不跟踪已用长度 (len)。这种关注点分离的设计使其可作为可重用组件(如被 VecDeque<T> 复用)。进一步拆分出 RawVecInner 是为了优化编译速度,使不依赖泛型 T 的部分不会为每个具体类型重复生成。
  5. Vec<T>:顶层的安全接口。它组合了 RawVeclen,隐藏了所有底层的 unsafe 复杂性。Vec 知道已分配块中的容量以及其中已初始化元素的个数,从而确保只能访问已初始化的元素,并提供安全易用的 pushpopinsert、索引等方法。

总结

Vec<T> 的设计并非隐藏阴谋,而是优秀工程实践和抽象分层的体现。从最不安全的原始指针开始,通过 NonNull 保证非空、Unique 明确所有权、RawVec 管理内存,最后由 Vec 提供安全的公共接口。每一层都履行特定职责,共同构建了一个安全、高效且零成本抽象的数据结构。这种分离关注点的模式也促进了代码重用,是Rust标准库设计哲学的典范。

21. Why we need SIMD (parallelprogrammer.substack.com)

SIMD 的必要性:CPU 架构演进与并行计算之路

SIMD 的定义与历史渊源

  • SIMD(单指令多数据)是 Flynn 分类法(1966年)中定义的一种并行计算架构,旨在通过单一指令同时处理多个数据元素。
  • 该分类法反映了计算机工程师对并行性的早期探索,与更基础的 SISD(单指令单数据)架构相对应。

CPU 并行化的发展历程

  • 并行性需求早于性能瓶颈出现:1968年,Gene Amdahl 提出 Amdahl 定律,指出程序加速受限于串行部分,但当时并行性潜力尚未被完全开发。
  • 流水线 CPU 通过同时执行取指、译码、执行等阶段,实现了类似汽车装配线的并行性。
  • 1990年代,超标量架构出现,CPU 可同时执行多条指令(指令级并行/ILP),编译器优化下通常可实现4-5条指令并行。
  • 晶体管数量大幅增长:Intel x86 CPU 从80286(1984年,13.4万晶体管)到 Pentium(首款超标量x86,350万晶体管)增长了26倍。

SIMD 的诞生与成本优势

  • 在流水线和超标量架构成熟后,CPU 设计者扩展指令集引入 SIMD,作为提升性能的低成本方式
  • SIMD 复用现有基础设施(缓存、预取器、译码硬件、指令依赖追踪硬件等),仅增加少量制造成本。
  • x86 平台首款 SIMD 指令集为 MMX(1996年),将浮点单元寄存器复用为打包整数数组,单条指令可处理8个字节级操作。
  • SIMD 的核心优势是 每条指令描述更多工作:例如,“同时加4对数字”比标量模式快约4倍。

x86 SIMD 指令集的演进

  • SIMD 宽度逐步扩展:MMX(64位) → SSE(128位) → AVX(256位) → AVX-512(512位)。
  • AVX-512 引入了按lane预测和专用掩码寄存器,功能更为强大,被广泛应用于字符串处理等场景。

SIMD 的软件生态挑战

  • 与历史上的架构改进(如集成FPU、超标量)不同,SIMD 需要软件更新才能发挥优势,部署周期较长。
  • 开发者需重写代码、测试,并经过操作系统等中间层分发,才能让终端用户受益。
  • 视频编解码等领域能快速部署SIMD优化,但其他领域(如3D渲染)进展缓慢。
  • 1990年代,MMX 试图用于3D渲染,但专用硬件(GPU)崛起,Direct3D 等抽象层使软件渲染失去竞争力。
  • 软件开发者需自行识别可优化场景,阻碍了SIMD的广泛采用。

当前与未来展望

  • Intel 曾尝试通过 Larrabee 和 Xeon Phi 推动软件渲染,未获成功,但由此开发了AVX-512。
  • Daniel Lemire 等研究者致力于SIMD在主流软件(如字符串处理)中的优化,推动性能提升。
  • 随着 AVX-512 逐渐普及,SIMD 有望实现更无缝的终端用户体验,实现Intel多年前的愿景。
22. The Debugging Book (www.debuggingbook.org)

《调试之书》摘要

《调试之书》 是由自动化调试、软件分析与软件测试领域的专家 Andreas Zeller 所著的一本书籍,旨在通过自动化技术改进软件调试过程,特别是自动定位错误及其根源。书中汇集了近年来成熟、可显著提升调试效率的新型技术,并附有可执行代码。

主要使用方式

本书提供四种使用模式:

  1. 在线阅读:在浏览器中浏览所有章节。
  2. 交互式笔记:章节可作为 Jupyter Notebook 进行交互式编辑和实验(处于测试阶段)。
  3. 代码复用:可下载章节或全书的 Python 代码用于个人项目。
  4. 演示文稿:章节内容可生成幻灯片用于教学演示。

目标读者与内容

本书面向:

  • 软件调试课程的学生。
  • 软件测试或软件工程课程的补充材料。
  • 软件开发者。

内容覆盖故障定位、程序切片、输入缩减、自动化修复等多种技术,并均配有可尝试的代码示例。

常见问题解答(关键点)

  • 交互性:交互式笔记本基于 mybinder.org 服务,启动可能延迟,且存在并发用户限制。替代方案包括下载代码在本地环境运行、下载 Notebook 使用本地 Jupyter,或使用提供的 Docker 镜像。
  • 平台兼容性:代码主要基于 Unix-like 环境,在 Windows 上运行可能需要 Linux 虚拟机或 Docker。
  • 语言适用性:工具使用 Python 实现以便快速演示概念,但书中许多技术(如黑盒方法、通用工具)是语言无关的,同样适用于 C 等语言。
  • 其他:章节底部有最新变更日志;每章底部有引用按钮;欢迎推荐论文或贡献新章节。

教学与课程应用

  • 可用于教学,但需遵守其许可证(知识共享协议)。
  • 建议在翻转课堂模式中使用:学生自学 Notebook 章节,课堂进行讨论和项目实践。
  • 注意:进行课程教学时,不应依赖公共 mybinder.org,应自行部署服务。
  • 幻灯片可通过下载 Notebook 或使用 RISE 扩展来自定义和展示。

贡献与许可

  • 欢迎提交代码修复和改进建议(需为 MIT 许可)。
  • 欢迎添加特定主题的文本、章节和 Notebook。
  • 许可:内容采用知识共享许可协议,源代码采用 MIT 许可。
23. Flightcontrol: A PaaS that deploys to your AWS account (www.flightcontrol.dev)

Flightcontrol:部署至您AWS账户的PaaS平台

核心价值

Flightcontrol是一个平台即服务(PaaS),允许用户直接将应用程序部署到自己的AWS账户中,提供服务器、Lambda函数、后台任务、定时任务、静态站点、数据库和Redis等服务支持。它旨在替代传统复杂的AWS运维流程,成为用户的“开发运维团队”,显著降低基础设施管理的时间和成本,同时赋予开发者更大的自主权。

解决的传统痛点

  • 传统方式:团队受困于复杂的Terraform脚本、手动配置和冗长的CI/CD流水线,雇佣昂贵的DevOps工程师又会影响开发效率。
  • Flightcontrol方式:大幅减少开发运维开销,让无需AWS或基础设施专业知识的开发者也能高效部署,节省数千美元和数月时间。

核心功能与工作流程

  1. 连接账户:一键连接您的AWS账户和Git仓库。
  2. 定义服务:在用户友好的仪表板中定义所需的服务(如服务器、API、数据库)。
  3. 全自动化:平台自动完成基础设施配置、CI/CD流水线和部署,所有操作均在您自己的AWS账户内进行,您保留完全的所有权和控制权。
  4. 简化操作:部署变得如同简单的git push或Webhook触发一样简单,无需维护复杂的基础设施即代码脚本。

支持的服务与架构

平台整合了最佳AWS服务,提供开箱即用的配置,支持广泛的服务类型,包括:

  • 计算:ECS Fargate或EC2实例、Lambda函数。
  • 内容分发与边缘计算:CloudFront CDN、S3、Lambda@Edge。
  • 数据库与缓存:RDS、ElastiCache。
  • 支持从单体应用到微服务的各种架构。

关键特性与优势

  • 开发友好:提供直观的仪表板,专为开发者设计,告别AWS控制台的复杂性。
  • 预览环境:可为每个拉取请求自动创建临时预览环境,便于测试,并在合并后自动清理。环境经过成本优化,共享资源,并支持数据库播种。
  • 卓越支持:提供24/7紧急支持(商业版),中位首次响应时间为6分钟。可通过电子邮件和Slack获得支持,还提供额外的DevOps支持附加服务。
  • 灵活性:支持可视化配置和代码配置。支持Monorepo,并可通过监视路径仅部署更改的文件。
  • 全球部署:支持28个AWS区域进行部署,贴近用户。
  • 可观测性:提供内置的指标和警报,并可集成Datadog等监控工具。
  • 智能构建:使用Nixpacks,无需编写Dockerfile即可构建多种语言和框架。
  • 性能优化:集成CloudFront的Stale-While-Revalidate和边缘Next.js ISR支持,提供极致速度。
  • 成本透明:按项目、环境和服务清晰了解AWS支出。
  • 运维便利:提供维护模式、部署钩子、通知(Slack/邮件)、回滚功能以及私有VPC网络支持。
  • 域名与安全:轻松连接自定义域名并自动配置HTTPS(SSL证书)。

适用场景与用户评价

适用于各类规模的企业,从初创公司到大型企业。用户评价强调其在以下方面的成功:

  • 降低运维负担:将基础设施开发运维工作量降至近零。
  • 提供可靠体验:在从Heroku、Fly.io等平台迁移后,找到了兼具可靠性、灵活性和简便性的解决方案。
  • 支持专业团队:特别适合缺乏专职DevOps人员的前端开发团队。
  • 提升效率:显著缩短构建时间,并通过AWS信用额度降低部署成本。
24. Bat: Cat with syntax highlighting (github.com)

Bat:带语法高亮的 cat 命令替代品

Bat 是一个功能强大的 cat(1) 命令替代工具,核心特性是语法高亮Git 集成

主要功能

  1. 语法高亮:支持大量编程和标记语言,为代码和文件内容提供清晰的颜色标识。
  2. Git 集成:能与 Git 通信,在输出左侧边栏显示相对于 Git 索引的修改(新增、修改、删除行)。
  3. 显示不可打印字符:通过 -A--show-all 选项,可以高亮显示和突出显示不可打印字符。
  4. 自动分页:默认情况下,如果输出超过一屏,bat 会自动通过分页程序(如 less)输出。可通过 --paging=never 禁用此行为,以完美替代 cat
  5. 文件拼接:即使设置了分页,bat 仍可用于拼接文件。当检测到非交互式终端(如管道输出到另一个进程或文件)时,它会像 cat 一样输出纯文本内容。

基本使用

  • 显示单个文件bat file.txt
  • 显示多个文件bat file1.txt file2.txt
  • 从标准输入读取:自动检测语法(如从 shebang 判断)。curl ... | bat
  • 指定语言:通过 -l 选项显式指定语言。echo ... | bat -l json
  • 作为 cat 替代bat > new_file.md 可快速创建文件。

与其他工具集成

  • fzf:用作预览器,例如 fzf --preview "bat --color=always ..."
  • find/fd:预览搜索结果。
  • ripgrep:通过 batgrep 工具作为彩色结果打印机。
  • tail -f:持续监控日志文件并高亮显示。tail -f log | bat -l log
  • git
    • git show ... | bat -l <lang>:高亮显示旧版本文件。
    • 组合 git diffbat 可高亮显示代码变更的上下文。
  • man:通过设置 MANPAGER 环境变量,可用作 man 手册的彩色分页器。
  • 格式化工具:结合 prettiershfmt 等,先格式化代码再用 bat 显示。
  • 帮助信息:可高亮 --help 输出。例如 cp --help | bat -plhelp

安装

Bat 支持多种操作系统:

  • Linux
    • Debian/Ubuntu (apt): sudo apt install bat(在某些旧版本上可执行文件名为 batcat)。
    • Alpine、Arch、Fedora、Gentoo、openSUSE 等均可通过各自的包管理器安装。
    • Snap 包:目前不推荐,可能存在问题。
  • macOS:可通过 Homebrew (brew install bat) 或 MacPorts 安装。
  • Windows
    • 前提条件:需要安装 Visual C++ Redistributable
    • 通过 WinGet (winget install sharkdp.bat)、Chocolatey 或 Scoop 安装。
    • 也可以从 GitHub Release 页面下载预构建的二进制文件。
  • 通用:可从源码编译(需要 Rust 1.79.0+)。cargo install --locked bat

定制化

  1. 主题
    • bat --list-themes 查看可用主题。默认根据终端背景色自动选择暗色或亮色主题。
    • 可通过 --theme 选项或 BAT_THEME 环境变量指定。
    • 可添加自定义主题(.tmTheme 文件)到 $(bat --config-dir)/themes 目录,并运行 bat cache --build 更新缓存。
  2. 输出风格
    • 使用 --style 选项控制显示哪些组件(如行号、网格、Git 修改标记等)。
    • 可通过 BAT_STYLE 环境变量或配置文件设置默认风格。
  3. 装饰:通过 --decorations 控制是否显示行号、边框等装饰性元素。在非交互式终端中默认不显示。
  4. 添加语法
    • 可以添加新的 .sublime-syntax 语言定义文件到 $(bat --config-dir)/syntaxes 目录,然后运行 bat cache --build
    • 使用 --map-syntax 选项可以添加或修改文件类型关联。
  5. 分页程序
    • PAGERBAT_PAGER 环境变量控制。
    • 使用 less 时,bat 会自动添加一些优化选项(如 -R 以支持颜色)。
  6. 制表符宽度:默认将制表符扩展为 4 个空格。可通过 --tabs 选项更改。
  7. 配置文件
    • 可以通过 --generate-config-file 生成默认配置文件。
    • 配置文件位置由操作系统决定,可通过 BAT_CONFIG_PATHBAT_CONFIG_DIR 环境变量自定义。
    • 配置文件内容为命令行选项列表,每行一个选项。
  8. 深色模式支持:可根据操作系统主题(如 macOS 或 GNOME 的深色模式)自动切换 bat 主题。

项目目标与替代品

Bat 旨在提供美观的高级语法高亮、Git 集成、作为 cat 的直接替代品以及用户友好的命令行界面。文章中提到了许多功能相似的替代工具。

许可证

Bat 以 MIT 许可证或 Apache 许可证 2.0 发布。

25. Mathematicians discover prime number pattern in fractal chaos (www.scientificamerican.com)

素数在分形混沌中发现新模式

素数(只能被自身和1整除的数)被称为数学的“原子”。长期以来,数学家一直在探索素数是真正随机的,还是存在未知的排列模式。近期,数论学家提出了一些关于素数模式的惊人猜想,尤其是在大数集合中表现出的概率模式。

黎曼假设与素数计数

1859年,数学家伯恩哈德·黎曼提出了一个假设,涉及著名的黎曼ζ函数。该函数用于计数不超过数x的素数数量,包含三个部分:平滑估计、来自ζ函数的修正项和小误差项。ζ函数的零点位置决定了修正振荡,黎曼假设声称所有非平凡零点都位于实部为1/2的临界线上。这一假设虽已验证到万亿级,但未被证明,是数学中的核心问题。

零点与随机测度

ζ函数的零点暗示其编码了素数的未知信息,并表明素数的间距尽可能有序。1970年代,休·蒙哥马利与弗里曼·戴森发现ζ函数零点的间距与量子系统的随机测度匹配,揭示了素数中的微妙模式。随机测度描述了大数素数集合的统计行为,但素数本质是确定的,只是其分布表现出类似随机序列的特征。

概率预言机与分形混沌

数学家使用随机测度作为“概率预言机”来预测素数行为,但这种方法不提供深层证明。2025年,沃里克大学的亚当·哈珀证明了高斯乘性混沌(一种随机分形测度)适用于素数模式研究。这种测度描述高度波动、尺度不变的随机性,常见于湍流或量子引力等混沌系统。哈珀的证明显示ζ函数零点的统计也可用随机分形测度捕捉。

过渡期与平方根屏障

哈珀、许文强和桑迪拉詹发现,当考虑较小素数集合时,概率模式会回归纯随机。他们计算了从随机分形测度到随机性的精确过渡区间(x到x+y)。在更小的区间(x到x+√x,即“超越平方根屏障”),哈珀在2023年猜想提出了比黎曼方程更好的素数计数方法。2025年,许文强和王维克证明了这一猜想,但依赖于物理学家的猜想,凸显了数学与物理的交叉。

结论

这些发现揭示了素数中深藏的概率模式,但素数本质是确定的。随机测度提供了预测工具,但无法完全解释素数的内在规律。数学家和物理学家仍在探索这些模式的深层含义,以期最终理解素数的真正结构。

26. Global Village Construction Set (www.opensourceecology.org)

全球村建设集(GVCS)概述

全球村建设集(GVCS) 是一个模块化、DIY(自己动手)、低成本、高性能的平台,旨在轻松制造50种不同的工业机器,这些机器足以建造一个拥有现代舒适生活的小型可持续文明。该项目开发开源工业机器,其制造成本仅为商业成本的一小部分,并且在线免费共享设计。

核心特点与结构

  • 模块化与可扩展性:GVCS类似于一个实体大小、可扩展的模块化乐高积木套装。它本身由多个“建设集”组成,而非单个机器。例如,“制造建设集”组件可用于构建其他任何机器。
  • 设计理念:追求终身设计和低维护,任何机器每年仅需几小时的维护即可保持运行。
  • 成本突破:通过简单、模块化、可扩展的设计和开源协作,该项目旨在打破成本壁垒,其目标价格点远低于同等生产效率的行业标准。

发展历程与里程碑

  • 起步阶段:第一台机器(压缩土砖机)于2007年建成。此后,项目稳步发展,持续改进机器的性能和生产效率。
  • 关键进展
    • 2012年:实现了压缩土砖机“一天生产”的里程碑,并计划将其他每台机器的生产时间都缩短至1天。
    • 2013年:使用项目内的拖拉机、砖机和土壤粉碎机建造了舒适的“微型房屋”。
  • 自我应用与提升:项目在农业、建造和制造领域持续“自我应用”其工具,并将设施建设成为一个世界级的开源、自由技术和去中心化生产研究中心。
  • 2014年及以后:转向可复制的工作坊生产模式,整合沉浸式教育与生产,旨在通过广泛传播其开放的企业模式来实现规模化。最终目标是通过创建一个开放的文档、开发和生产平台,展示这些机器如何为超越人为物质稀缺的世界做出贡献,从而迈向开源经济。
  • 完成状态(截至2018年):项目约完成了三分之一的机器开发。

完成标准与模型

该项目的完成度衡量标准是:为特定机器展示一个可复制的、开源的社会生产模式。这被称为“学习因子-e模型”,主要步骤包括:

  1. 概念验证
  2. 首个原型
  3. 完整文档
  4. 工作原型
  5. 开放的企业模型
27. Uv overtakes pip in CI (wagtail.org)

uv在CI环境中使用量超越pip的趋势分析

核心发现
在Wagtail项目的CI(持续集成)环境中,uv的安装使用率已达66%,超过pip34%,成为主流工具。类似趋势也出现在Django和FastAPI项目中:

  • Django的CI下载中uv43%(总下载量占比21%)
  • FastAPI的CI下载中uv60%(总下载量占比31%)

对Wagtail项目的影响
由于uv逐渐成为多数工具,项目方可能需要重新评估:

  1. 是否更新README中的安装步骤
  2. 教程和 workshop 的指导是否需适配uv
  3. 项目模板是否应优先采用uv而非pip

数据方法与局限

  • 数据来自PyPI下载统计(通过BigQuery查询),覆盖2024年1月至当前时间
  • 关键查询逻辑:按月份、安装器、CI标志分组统计下载次数
  • 注意:下载统计存在局限性(如缓存机制影响),CI下载比例可能低于实际值,且不同安装器的统计可比性有限

趋势意义
尽管数据月度有波动,但uv在CI中的使用率增长显著(如Wagtail项目中uv年下载量增长4倍),表明其在自动化环境中的接受度快速提升。

28. Apple's Unlawful Evil (pluralistic.net)

文章主要批评了苹果公司(Apple)移除合法应用ICEBlock的行为,并由此展开,批判其滥用应用商店控制权、违背保护用户安全的承诺,以及与谷歌(Google)等科技巨头在面对强权压力时选择妥协的现象。

核心事件: 苹果公司移除了合法应用 ICEBlock。该应用旨在帮助用户追踪美国移民与海关执法局(ICE)特工的动向,以应对文中所述的非法抓捕和绑架行为。移除行动是在美国司法部官员未经法院命令、仅通过社交媒体施压后进行的,苹果公司声称是“遵纪守法”,但作者指出这是谎言,是屈从于政治压力。

对苹果控制权的批判: 作者指出,苹果长期以“保护用户安全和选择”为由,垄断iOS软件分发渠道(App Store),实则滥用控制权来:

  1. 审查内容:以内容不当或政治敏感为由,移除过字典、模拟苹果工厂的游戏、记录美军无人机伤亡的应用等。
  2. 抽取高额佣金:对应用内消费收取30%的“苹果税”。
  3. 限制竞争:强制所有浏览器使用其存在安全漏洞的WebKit引擎,阻止更安全的浏览器进入iOS。

作者将此称为“封建式安全”:用户将安全交由苹果(数字领主)守护,但当领主决定攻击用户时,城堡便成了监狱。

ICEBlock事件的严重性: 移除ICEBlock不仅是信息审查,更直接威胁到用户的人身安全。因为ICE的行动已从驱逐非法移民扩大到针对任何“看起来像外国人”的城市居民,并导致大量人员被秘密关押和“消失”。苹果剥夺了用户规避这种现实威胁的重要工具。

其他科技公司的类似行为: 谷歌也下架了类似应用RedDot,并宣布将强制更新安卓设备以限制未经其批准的软件安装。作者对比了谷歌过去因中国政府监控用户而退出中国,如今却配合美国政府的抓捕行动,批评其双重标准。

结论: 作者认为,苹果和谷歌等公司自称“遵守法律”是假象,它们实际上是在主动协助强权(特朗普政府)侵害用户,超出了法律要求。无论是靠广告还是靠销售盈利,这些公司的本质问题都在于它们能否滥用权力并逃脱惩罚,它们都是“流氓资本家”。

文章其他部分包含作者的活动预告、书籍信息和往期内容链接,但非核心内容。

29. CPU cache-friendly data structures in Go (skoredin.pro)

Go语言CPU缓存友好数据结构摘要

核心性能影响

  • 缓存层级速度差异:访问L1缓存(1ns)比访问主内存(60ns)快约60倍。一次缓存未命中等于60次命中。
  • 伪共享:当不同CPU核心更新同一缓存行(通常为64字节)内的不同变量时,会导致缓存行频繁失效,严重降低并发性能(可慢10倍)。
  • 优化潜力:通过针对缓存优化数据结构,在特定场景下可获得5-10倍的性能提升。

关键优化技术

1. 消除伪共享

  • 问题:逻辑独立但物理相邻的变量(在同一缓存行)被不同核心修改。
  • 解决方案:对并发访问的数据进行缓存行填充(Padding),确保每个核心修改的数据独占一个缓存行。
  • 效果:在高并发计数器场景中,优化后性能可提升6.4倍(从45ns/操作降至7ns/操作)。

2. 数据导向设计 vs. 面向对象设计

  • 面向对象 (AoS):每个对象包含所有字段,顺序访问时会加载不必要的数据到缓存,造成浪费。
  • 数据导向 (SoA):相同类型的字段存储在连续数组中。顺序访问同类数据时,缓存利用率极高。
  • 效果:在物理引擎更新位置的场景中,SoA比AoS快7倍(12ns vs 85ns/实体)。

3. 热数据与冷数据分离

  • 原理:将频繁访问(热)的数据与很少访问(冷)的数据分开存储。
  • 应用:例如,用户数据中仅将ID和Score放在“热”结构体,而Name、Email等放在“冷”结构体。
  • 效果:在排序等操作中,可减少4倍的缓存未命中。

4. 预取与访问模式

  • 线性访问:CPU预取器可有效工作,性能高(如2.1ns/元素)。
  • 随机访问:导致频繁缓存未命中,性能差(如45ns/元素,慢20倍)。
  • 手动预取:在已知访问模式下,可提前访问未来数据以触发预取。

5. 分支预测优化

  • 可预测分支:先对数据排序,使条件判断(如 > 128)从随机变为连续(先全false,后全true),提升预测准确率。
  • 无分支编程:用位运算等算术操作替代条件判断,消除分支预测开销。
  • 效果:无分支版本在条件计数场景中可快3.6倍(2.3ns vs 8.2ns/元素)。

6. 缓存友好的哈希表

  • 使用Robin Hood哈希等线性探测方法,利用内存局部性。
  • 效果:在100万次查找中,比标准map快3倍(32ns vs 95ns/操作)。

实际应用与验证

生产环境优化案例

  • 分析管道:应用SoA设计后,事件处理速度提升14.5倍,缓存未命中率从78%降至12%。
  • 其他领域:游戏物理(碰撞检测快8倍)、数据库索引(顺序扫描快11倍)均有显著收益。

测试与验证策略

  1. 性能剖析:使用 perf 统计缓存未命中。
  2. 微基准测试:使用Go的测试工具精确测量特定优化。
  3. 跨架构测试:在不同CPU(Intel/AMD/ARM)和不同核心数下测试,以验证优化效果和检测伪共享。
  4. 数据规模测试:在小、中、大不同数据集上验证性能。

核心原则

  • 测量为先:硬件特异性强,必须基于实际基准测试进行优化。
  • 组合应用:将SoA、填充、预取、分支优化等技术结合使用,效果最佳。
  • 权衡安全:内存对齐等技术可能引入时序侧信道,需在安全与性能间权衡。
30. Embracing the parallel coding agent lifestyle (simonwillison.net)

5th October 2025

作者起初对并行运行多个编码代理持怀疑态度,因为AI生成的代码需要审查,而人类审查是主要瓶颈。然而,在过去几周里,作者逐渐接受了这种并行工作模式,并发现了几种可以有效并行处理任务的模式。

三种有效的并行代理应用模式:

  1. 概念验证研究: 用于回答问题或提供建议,而不对项目进行永久性修改。例如,验证库组合的可行性,或研究新依赖项(即使它们不在训练数据中,代理也能通过阅读代码库来学习)。
  2. 小型维护任务: 针对计划保留但风险很低的代码编辑。例如,修复测试套件中出现的弃用警告。将此类琐碎但分散注意力的任务外包给代理。
  3. 精心指定和引导的实际工作: 为代理提供详细规格说明(解决什么、如何解决),可以大大减少审查后续代码更改所需的工作量和精力,因为审查者已事先明确目标和方法。

作者的当前使用情况:

  • 工具: 日常使用Claude Code (Sonnet 4.5)、Codex CLI (GPT-5-Codex) 和 Codex Cloud(用于异步任务)。也尝试GitHub Copilot Coding Agent和Google Jules。
  • 工作方式: 经常在多个终端窗口中打开不同的编码代理,在不同目录下运行。对于确信不会出现恶意指令的任务,会使用YOLO模式(无需审批)。尚未使用git worktrees,而是通过对仓库进行新的检出(通常放在/tmp)来隔离任务。
  • 风险控制: 对于风险较高的任务,使用异步编码代理(如Codex Cloud),并计划更频繁地使用Docker容器来限制潜在问题的影响范围。对于风险最高的任务,由于其开源性质,代码泄露风险相对较低。
  • 其他体验: 偶尔使用GitHub Codespaces运行VS Code的代理模式,发现其在浏览器中运行效果很好,尤其适合研讨会和演示。

作者认为这类编码代理软件仍非常新,模型能力只是在最近几个月才变得足够强大。他计划随着对更有效使用方式的探索而继续撰写相关内容,并鼓励其他从业者分享经验。

文章最后推荐了Jesse Vincent、Josh Bleecher Snyder和Peter Steinberger关于使用编码代理工作流的相关阅读材料。

31. Bird photographer of the year gives a lesson in planning and patience (www.thisiscolossal.com)

2025年“年度鸟类摄影师”大赛结果揭晓。加拿大摄影师Liron Gertsman凭借一张精心拍摄的华丽军舰鸟飞越日全食的照片荣获年度鸟类摄影师及“飞行中的鸟类”类别金奖。这张照片是他历时一年多计划,并在墨西哥锡那罗亚州海岸进行一周实地勘察的成果,展现了记录非凡鸟类所需的非凡努力与耐心。

本届比赛共收到来自全球的超过3.3万幅参赛作品,并设有青少年类别。比赛以保护为核心使命,已向致力于资助保护鸟类草根行动的慈善机构Birds on the Brink捐赠了超过5,000英镑

大赛设有多个类别,广泛展示了鸟类多样化的习性与栖息地。例如:

  • 最佳肖像类金奖由Steffen Foerster获得,其作品近距离捕捉了一只南方巨鹱在饱餐后面部沾血的瞬间。
  • 城市鸟类类铜奖得主Benoit Henrion的作品描绘了法国一座教堂墙壁孔洞中探出头来的仓鸮
  • 环境中的鸟类类金奖授予Franco Banfi,他拍摄了白颈鸬鹚在墨西哥圣灵岛海底鱼群中饱餐的场景。

其他获奖作品还包括在瑞士阿尔卑斯山暴风雪中拍摄的红嘴山鸦特写、罗马尼亚上空飞越野花的欧洲蜂虎(11岁及以下组金奖)、印度万寿菊花丛上空疾飞的家燕(飞行中的鸟类类别银奖),以及一只站在垃圾堆上面临推土机威胁的大秃鹳(保护类别铜奖),该作品突出了物种生存的威胁。

获奖作品画廊可在比赛官网浏览,同时可购买由普林斯顿大学出版社出版的年度精选摄影集。2026年比赛现已开放投稿

32. A History of Large Language Models (gregorygundersen.com)

本文系统地回顾了大型语言模型(LLM)的发展历程,从早期概念到现代技术的关键突破。

核心主线:注意力机制与规模化 文章的核心脉络是“注意力机制”的演进以及“简单方法通过规模化取得成功”这一主题。作者将LLM的发展视为分布式表示、自回归框架、序列到序列模型、注意力机制和规模化训练共同作用的结果。

关键里程碑与发展阶段

  1. 分布式表示与语言建模的奠基:早期神经网络通过分布式表示(词嵌入)解决数据稀疏问题。2003年,Bengio等人的开创性工作首次将神经网络应用于语言建模,提出了用连续向量表示单词并学习词嵌入的前馈神经网络模型,奠定了基础框架。

  2. 自回归框架:上述模型采用自回归方式训练,即通过最大化给定前文预测下一个词的对数似然(等价于最小化交叉熵损失)。这一训练范式和生成新序列的方式,至今仍是LLM的核心。

  3. 突破瓶颈:从理论到实践:尽管概念先进,但早期神经网络语言模型训练困难。转折点是2012年AlexNet在计算机视觉领域的成功,它证明了利用GPU在大规模数据上训练深度神经网络的可行性,为后续研究铺平了道路。

  4. 词嵌入的规模化学习:2013年,Mikolov等人的Word2Vec模型通过简化架构(如采用对数线性模型)和高效训练技巧(如分层softmax、负采样),实现了在大规模数据上快速学习高质量词向量。这些词向量展现出非凡的语义和句法规律(如向量类比推理),证明了神经网络方法的潜力。

  5. 建模长距离依赖:序列到序列模型:为了处理变长序列和长距离依赖,研究引入了编码器-解码器架构(最初基于RNN/LSTM)。然而,将整个输入序列压缩为一个固定长度的上下文向量成为性能瓶颈。

  6. 注意力机制的诞生:为解决上述瓶颈,Bahdanau等人在2014年引入注意力机制。它允许解码器在每个步骤自适应地“关注”编码器输出的不同部分,显著提升了机器翻译等任务对长句子的处理能力。

  7. 注意力机制的多样化与简化:后续工作研究了多种注意力形式(如点积注意力、加性注意力;全局与局部注意力;自注意力与交叉注意力),并对其进行了分类和简化。

  8. Transformer架构的革命:2017年,Vaswani等人提出的Transformer架构是重大飞跃。其核心思想是完全基于注意力机制(特别是可并行化的多头自注意力),摒弃了循环结构。这使得模型能高效地并行训练并捕获长距离依赖,在翻译任务上实现了性能与效率的平衡。

  9. 训练范式的演进

    • 生成式预训练:在大规模无标注文本上,以上述自回归方式(预测下一个词)进行预训练,学习通用的语言表示。
    • 判别式微调:在预训练模型基础上,使用特定任务的标注数据进行微调,以适应下游任务。
    • 基于人类反馈的强化学习:为使模型输出与人类偏好和价值观对齐(如更有帮助、诚实、无害),采用RLHF进行进一步训练。该方法通过人类对模型输出的排序来训练奖励模型,并利用该奖励模型通过强化学习优化LLM。

核心洞察与现状

  • 规模定律与涌现能力:模型和数据的规模至关重要。随着参数从百万级增至万亿级,LLM展现出惊人的“涌现能力”,如复杂推理、少样本学习等,但其背后的原理尚不完全清楚。
  • 苦涩的教训:历史表明,能够充分利用计算资源的通用、可扩展方法(如基于预测下一词的简单目标进行大规模训练),往往能超越依赖人类领域知识的复杂但难以扩展的方法。
  • 现代LLM:当今的先进模型(如GPT系列、Gemini、Claude、LLaMA等)本质都是超大规模的、基于Transformer架构的模型,主要通过海量文本的自回归预训练,并通常结合微调与对齐技术(如RLHF)进行开发。

总之,LLM的发展是注意力机制、分布式表示、自回归目标和计算规模共同推动的结果,其核心是从简单原理中通过规模化涌现出复杂智能。

33. The death of industrial design and the era of dull electronics (hackaday.com)

工业设计在消费电子产品中的重要性不言而喻,它定义了产品的外观与用户交互体验。然而近年来,尤其是消费电子领域的工业设计似乎正在消亡。各类设备——手机、电视、电脑等——大多沦为缺乏特色的扁平塑料玻璃矩形,物理按钮和鲜明设计逐渐消失,只剩下基本的几何形状与单调表面。

历史上,20世纪塑料和电子技术的兴起曾带来设计解放,限制减少,设计创新在20世纪90年代至21世纪初达到高峰,出现了“Y2K美学”和“Frutiger Aero”等风格,强调未来感、透明感与色彩。但此后,设计转向了所谓“现代”或“简洁”的风格:曲线被移除,色彩被淡化或压制,产品变得呆板。

以手机为例,从曾经造型独特的诺基亚3310,演变为今天几乎所有机型都正面几乎全是屏幕、背面仅以摄像头排列稍作区别的“玻璃板”。电视也从拥有实体按键和边框的设计,变为正面仅是一块无边框屏幕、接口全部隐藏在背面的“无生命板状物”。不仅限于手机和电视,电脑、音响乃至汽车内饰都趋向触控化,物理控件被取代,交互大多转移到手机App上。

这种设计语言的转变带来了问题。例如,Sonos曾因更新App严重出错,导致其硬件产品几乎无法使用。而仅依赖触屏的交互(如某些汽车)已被证明效率和安全性更低。

软件界面设计也呈现出平行趋势,追求极简主义,采用扁平化、最简几何元素、减少色彩,这进一步导致硬件缺乏辨识度和情感吸引力,用户体验变得单调乏味。

文章最后指出,人们对物理媒体和复古计算的兴趣,可以被看作是对这种极度单调的现代电子产品的厌倦反应。如同为动物提供丰容活动以对抗无聊一样,人类也可能通过寻求能刺激感官、提供丰富互动的设备(即使是带有早期2000年代或90年代设计“瑕疵”的个人项目)来获取满足感,这或许是当前设计单调化背景下的一种自我调节。

34. Testing two 18 TB white label SATA hard drives from datablocks.dev (ounapuu.ee)

datablocks.dev 两款18TB白标SATA硬盘测试摘要

购买背景与选择动机

  • 作者此前使用全固态硬盘(SSD)方案,但面临小容量快速存储带来的“存储焦虑”,转而关注硬盘市场。
  • 在对比美国与欧洲市场后,发现欧洲的 datablocks.dev 提供价格更具竞争力的白标硬盘。
  • 白标硬盘 指无品牌标识、通电时间极短或为零的硬盘,可能有轻微外观瑕疵(如划痕、小凹痕),但功能完全正常,且价格低于品牌认证翻新盘(以18TB为例,便宜约16.7%)。
  • 最终选择两款18TB硬盘,因其是易于快速替换(可通过WD Elements/My Book硬盘盒获取)的最大容量型号。

货物接收与外观检查

  • 硬盘在合理时间内送达,包装适当:采用防静电袋密封,并用气泡膜充分包裹。
  • 外包装纸箱有轻微撞击痕迹,但硬盘防护良好。
  • 硬盘如描述般带有轻微划痕和小凹痕,但整体外观新颖,内部功能无异常。

初始格式化与性能测试

  • 使用 badblocks 工具对硬盘进行全盘格式化,耗时约24小时。
  • 写入性能:峰值达275 MB/s,结束时降至123 MB/s,属正常范围。
  • 需使用较大块大小(-b 8192)以避免命令错误。
  • 初期SMART数据符合预期,通电时间很短(但提醒:SMART数据可被重置,不完全可靠)。

实际使用体验

  • 噪音与散热:硬盘为7200 RPM,运行时有正常读写噪音(可通过泡沫或海绵减少),非静音环境可能受影响。日常使用温度在38-42°C之间,格式化时最高达51°C。
  • 存储架构:作者采用分层存储方案——1TB SSD用于高性能需求(数据库、容器),18TB硬盘用于大容量存储、备份和低频数据。
  • 性能感受:日常操作(如照片加载、媒体播放)与全SSD体验差异不大,备份虽稍慢但可在夜间进行。仅从系统监控图可观察到偶尔的iowait升高,但未显著影响其他工作负载。
  • 功耗:添加硬盘后整体功耗增加约10-20W,空载总功耗低于45W,日耗电量约1.2 kWh。
  • 连接方式:通过USB-SATA转接器(源自WD硬盘盒)连接,使用USB 3.0接口。

长期运行与可靠性

  • 截至写作时,硬盘已稳定运行50天以上,作者预期使用寿命至少5年,并计划提前更换部分硬盘以降低整体故障风险。
  • 后续6个月更新中,硬盘表现依然良好,而一块用于备份的希捷移动硬盘反而出现故障。
  • 其他欧洲用户(如拉脱维亚博主)亦反馈在datablocks.dev购物体验良好。

总结

  • 白标硬盘提供了高性价比的大容量存储解决方案,适合对噪音和功耗不敏感的环境。
  • 尽管存在外观瑕疵和噪音,但性能与可靠性在实际使用中表现正常。
  • 欧洲用户可考虑该渠道,但需注意库存波动较快。
36. After nine years of grinding, Replit found its market. Can it keep it? (techcrunch.com)

Replit 花了九年时间才找到市场,现在能否守住?

AI 编程初创公司 Replit 的崛起之路并非一帆风顺。在创始人兼 CEO Amjad Masad 带领下,公司历经多次商业模式失败,年收入长期停滞在约280万美元,直至去年不得不裁员一半以求生存。

转折点出现在去年秋季,公司推出了 “Replit Agent”,这是首个基于代理的编程体验,不仅能编写代码,还能进行调试、部署和配置数据库,扮演真正的软件工程合作伙伴角色。随后,Replit 做出了关键战略调整:放弃专业开发者市场,转而专注于为没有技术背景的白领创建软件开发者,开辟了一个全新市场。

这一决策立竿见影。公司年化收入在不到一年内从280万美元飙升至1.5亿美元,估值从2023年增长近三倍,达到30亿美元。与许多AI编程公司不同,Replit 声称已实现毛利率为正,企业客户交易的毛利率甚至达到80%-90%。

然而,挑战依然存在。Replit 的AI代理曾出现过安全问题,例如删除用户生产数据库。公司迅速推出了安全系统,将用户的练习数据库与生产数据库隔离。更根本的威胁来自Anthropic和OpenAI等AI实验室,它们推出了直接竞争的编码工具,并能通过自家模型优化性能。

Replit 的优势在于专注于非技术用户群体,以及其在部署和数据库管理方面构建的复杂基础设施。此外,公司资金充裕,现金储备达3.5亿美元。目前,Replit 计划扩大运营、加速产品开发并进行收购,但其创始人对未来发展保持着清醒认知,认为在快速变化的AI领域,当前的成功也可能转瞬即逝。

38. Nobel Prize in Physiology or Medicine 2025 awarded to immune system researchers (www.nobelprize.org)

2025年诺贝尔生理学或医学奖授予免疫系统研究人员

颁奖情况
2025年10月6日,卡罗林斯卡学院诺贝尔委员会宣布,将本年度诺贝尔生理学或医学奖授予以下三位科学家:

  • 玛丽·E·布伦科(美国系统生物学研究所)
  • 弗雷德·拉姆斯德尔(美国索诺玛生物治疗公司)
  • �的imon 坂口志文(日本大阪大学)

获奖理由:表彰他们在 “外周免疫耐受” 领域的发现,阐释了免疫系统如何避免攻击自身组织。

主要科学发现

  1. 免疫系统的自我调控机制
    人体免疫系统虽能抵御微生物入侵,但需精确调控以避免攻击自身器官。三位获奖者共同揭示了 调节性T细胞 的关键作用——它们是免疫系统的“安全卫士”,负责监视其他免疫细胞并维持对自身组织的耐受。

  2. 坂口志文的突破(1995年)
    在多数学者聚焦于胸腺中枢耐受的背景下,坂口志文发现了一类 此前未知的免疫细胞亚群(后命名为调节性T细胞),证明外周免疫耐受的存在,并指出这类细胞能防止自身免疫疾病。

  3. 布伦科与拉姆斯德尔的发现(2001年)
    二人通过小鼠模型发现,一种名为 “Foxp3” 的基因突变会导致小鼠易患自身免疫疾病。进一步研究证实,人类同源基因突变会引发严重自身免疫病 IPEX综合征

  4. 坂口志文的整合研究(2003年)
    坂口志文将上述发现联系起来,证明 Foxp3基因直接调控调节性T细胞的发育与功能,从而完整阐明了外周免疫耐受的分子机制。

科学意义与应用前景

  • 该研究 开创了外周免疫耐受领域,深化了对免疫系统平衡的理解。
  • 推动了针对 癌症、自身免疫疾病 的免疫疗法开发,部分疗法已进入临床试验阶段。
  • 为提高 器官移植成功率 提供了潜在的新策略。

获奖者简介

  • 玛丽·E·布伦科(1961年生):普林斯顿大学博士,现任职于系统生物学研究所。
  • 弗雷德·拉姆斯德尔(1960年生):加州大学洛杉矶分校博士,索诺玛生物治疗公司科学顾问。
  • 坂口志文(1951年生):京都大学医学博士,大阪大学免疫学前沿研究中心特聘教授。

颁奖信息

  • 奖金总额:1100万瑞典克朗,由三位获奖者均分。
  • 评奖机构:卡罗林斯卡学院诺贝尔委员会(由50名教授组成)。
  • 历史背景:自1901年起,诺贝尔生理学或医学奖授予对人类福祉作出最重要科学发现的研究者。
39. Gem.coop (gem.coop)

Gem.coop:Ruby生态系统的全新gem托管服务

概述

Gem.coop是一个面向Ruby生态系统的新gem服务器,由前RubyGems.org维护者和运营团队创建,旨在为社区提供快速、简单且兼容Bundler的托管服务,并针对未来进行优化。

核心特点

  • 实时同步:所有发布到RubyGems.org的gem均可通过Gem.coop访问,并实时更新。
  • 快速迁移:用户可通过修改Gemfile中的源地址立即使用:
    - source "https://rubygems.org"
    + source "https://gem.coop"
    
  • 社区导向:由社区拥有,强调透明、可持续和安全性。
  • 当前支持:已支持所有公开gem的打包和安装,并持续改进。

目标与愿景

提供快速、社区所有、透明、可持续且安全的gem托管服务,面向全球开发者。

订阅与动态

用户可订阅gem.coop新闻通讯以获取月度更新,跟踪项目进展。

团队成员

  • @deivid-rodriguez
  • @duckinator
  • @indirect
  • @kaspth
  • @martinemde
  • @olleolleolle
  • @segiddins
  • @simi
40. Battering RAM – Low-cost interposer attacks on confidential computing (batteringram.eu)

Battering RAM:针对机密计算的低成本硬件攻击

攻击概述

Battering RAM是一种针对现代处理器内存加密技术的物理层攻击方法。通过一个成本约50美元的自制硬件设备(内存中间设备),可以绕过Intel SGX和AMD SEV-SNP等机密计算技术的防护。该设备在系统启动时通过所有安全检查,之后可在运行时切换为恶意模式,实现对加密内存的未授权访问。

攻击原理与影响

  1. 工作原理:设备通过动态创建内存地址别名,利用内存加密的静态特性(相同物理地址始终映射到相同密文)实施重放攻击。
  2. 对Intel SGX的影响:可实现对SGX保护内存的任意明文读写,利用TME技术单密钥设计的缺陷,通过捕获和重放密文获得访问权限。
  3. 对AMD SEV-SNP的影响:可破坏SEV的远程认证功能,通过重放启动时的测量值,使恶意虚拟机镜像通过验证。
  4. 攻击范围:重新启用了此前已被缓解的BadRAM攻击,并绕过了启动时的别名检查机制。

技术特性

  • 低成本:设备总成本约50美元,远低于商业级设备(超10万美元)
  • 隐蔽性:启动时行为正常,运行时切换攻击模式,对操作系统不可见
  • 可重复性:攻击行为确定稳定,不依赖不可预测的时序故障
  • 开源设计:硬件原理图、固件和攻击代码已在GitHub公开

行业影响

  1. 技术局限:暴露了当前可扩展内存加密方案的根本缺陷——缺乏加密新鲜性保证
  2. 防御困境:软件或固件更新无法修复此类物理层攻击,需要根本性的架构重新设计
  3. 威胁模型重估:表明即使有硬件加密,物理访问仍可能破坏机密计算保护
  4. 厂商回应:Intel和AMD已确认该发现,但认为物理攻击超出其当前产品安全范围

关键限制

  • 仅适用于DDR4内存(目前仍占市场65%份额)
  • DDR5因总线结构变更不易受此特定攻击,但根本加密缺陷仍可能存在
  • 需要短暂的物理访问来安装设备,但之后可远程操作

与同类技术对比

相较于使用昂贵商业设备(超15万美元)的WireTap攻击,Battering RAM展示了低成本物理攻击的可行性,且能同时针对Intel和AMD平台,实现更全面的攻击能力。

41. Ken Parker, famed luthier, has died (kenparkerarchtops.com)

传奇之树:一把吉他背后的五百年历史与争议

本文讲述了伯利兹一棵拥有五百年历史的传奇桃花心木“The Tree”的故事,以及它如何成为音乐界追捧的珍宝,同时揭示了其背后复杂的环境与历史遗产。

传奇的起源与发现

  • 树木背景:这棵桃花心木在伯利兹的奇基布尔森林生长了五百年,高达30米,直径约3.6米,纹理独特扭曲,传说具有神秘特质。
  • 偶然发现:1965年,当地伐木工人发现了这棵巨树。由于当时没有电锯,他们用手斧和手锯花费数日将其砍倒。树木倒下后落入峡谷,因体积过大、环境险恶,伐木队未能将其运出,遂放弃。

珍贵的木材与市场炒作

  • 冒险提取:数年后,木材进口商罗伯特·诺瓦克听闻此树,深入丛林找到它。经过多年策划,他将树干在丛林中分段,长途运输至美国。
  • 稀缺性:由于几个世纪以来的殖民贸易和破坏性采伐,这种古老的桃花心木已极为稀有。诺瓦克的营销使“The Tree”木材价格暴涨,主要被富裕的建筑家具公司收购。
  • 吉他制作界的追捧:制琴师肯·帕克等人被木材惊人的美丽纹理(如涟漪、地形图般的图案)和优良的加工性能所吸引。他们不惜高价购买,并认为其音质温暖丰富。这引发了吉他界的“炒作文化”。

木材的魅力与争议

  • 音质争议:尽管许多人声称“The Tree”吉他音质独一无二,但神经声学实验表明,在无法看到吉他的情况下,演奏者难以区分不同木材制作的吉他。其独特音感可能部分源于心理预期和价格效应。
  • 历史黑暗面:文章揭露了桃花心木贸易的黑暗历史。从17世纪起,欧洲殖民者为建立种植园和满足家具需求,依靠奴隶劳动在加勒比海和中美洲大规模采伐古老桃花心木。这导致了不可逆的森林破坏、对原住民社区的驱逐,以及无数奴隶在危险作业中伤亡。
  • 文化反思:吉他手兼教育家阿尔西亚·萨利科尔指出,吉他文化中对稀有木材的痴迷可能导致人们忽视木材作为生态资源的真实关系,以及其采伐地社区的历史。

当下与遗产

  • 现状:由于滥伐,古老桃花心木已濒临灭绝,受到《濒危野生动植物种国际贸易公约》保护。“The Tree”的剩余木材也所剩无几。
  • 制琴师的观点
    • 肯·帕克:肯定木材的卓越品质,但澄清“它只是木材,不是魔法”。
    • 鲁本·福斯兰:看重木材所承载的树木五百年的生命故事,并将制作吉他视为赋予树木新生命的方式。
  • 音乐的延续意义:多位受访者认为,将木材制成乐器并演奏,是让其故事以民主的方式被更多人体验和传承的重要途径。

核心主题:这篇文章超越了单纯的工艺或音乐故事,探讨了珍贵自然资源背后的殖民历史、环境代价、市场伦理,以及文化创作如何与物质遗产交织。它呈现了一棵树从自然生命、到商品、再到文化符号的复杂旅程,引发对稀有性、历史记忆与艺术表达之间关系的思考。

42. Show HN: ut – Rust based CLI utilities for devs and IT (github.com)

ut 是一个基于 Rust 开发的快速、轻量级命令行工具集,旨在为开发者和 IT 专业人士提供一个集成的二进制文件,包含一系列常用工具,避免了安装和记忆多个不同实用程序的需要。

主要特点

  • 单一二进制:所有工具集成在一个可执行文件中。
  • 功能全面:涵盖编码、哈希、数据生成、文本处理、开发辅助、网络工具等多个类别。
  • 跨平台:支持 macOS、Linux 和 Windows。

安装方式

  • macOS/Linux (Homebrew): brew install ksdme/tap/ut
  • Linux/macOS (Shell脚本): 通过 curl 下载并执行安装脚本。
  • Windows (PowerShell): 通过 irm 下载并执行安装脚本。
  • 从源码编译: 使用 cargo install --git 命令。
  • 预编译二进制:可从 GitHub Releases 页面直接下载。

Shell 补全: ut 支持为 bash、zsh、fish、nushell、elvish 和 PowerShell 生成自动补全脚本,并通过相应命令(如 ut completions zsh)进行配置。

工具分类与功能概览

  1. 编码

    • base64: 支持标准与URL安全字符集的编解码。
    • url: URL 的解析、编码和解码。
  2. 哈希与安全

    • hash: 生成 MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512 等算法的摘要。
    • bcrypt: 使用 bcrypt 算法进行密码哈希(可配置成本因子)和验证。
    • jwt: 用于编码、解码(可检视)和验证(带签名)JWT(JSON Web Token)。
  3. 数据生成

    • uuid: 生成 v1, v3, v4, v5, v7 版本的 UUID。
    • token (别名: secret, password): 生成可定制长度和字符集的加密安全随机令牌。
    • lorem: 生成 Lorem Ipsum 占位文本。
    • random: 生成指定范围内的随机数(支持小数精度)。
  4. 文本处理

    • case: 在多种大小写格式间转换文本(如 lowercase, camelCase, snake_case, kebab-case 等)。
    • pretty-print (别名: pp): 解析并显示转义的换行符和制表符。
    • diff: 比较文本内容,提供字符级别的彩色差异输出。
  5. 开发工具

    • calc (别名: cal): 支持多种数字格式和数学函数(如三角函数、对数)的表达式计算器。
    • json: 包含一个强大的 JSON 构建器,可使用点符号构建复杂 JSON 结构。
    • regex: 带有实时高亮显示的交互式正则表达式测试器。
    • crontab: 解析 Cron 表达式并显示接下来的触发时间。
    • datetime (别名: dt): 在时区之间解析和转换日期时间。
  6. Web 与网络

    • ip: IP 和 CIDR 工具,包括 CIDR 块描述。
    • http: HTTP 工具,包括状态码查询。
    • serve: 启动本地 HTTP 文件服务器(支持目录列表和基础认证)。
    • qr: 生成二维码(可在终端显示或保存为 PNG 文件)。
  7. 颜色与设计

    • color: 颜色工具,支持在多种格式(如 hex, rgb, hsl, oklch)之间转换。
  8. 参考

    • unicode: 显示 Unicode 符号参考表。

开发与贡献

  • 项目使用 Cargo 构建和管理。
  • 项目的部分代码在 AI 助手(Claude Code)的辅助下,并经人工监督与协作完成。
  • 欢迎提交 Pull Request 参与贡献。
43. Aerocart cargo gliders (www.aerolane.com)

Aerocart货运滑翔机概述

产品与技术核心 Aerolane公司推出的AG-1是首款专为被现有涡轮螺旋桨货运飞机拖曳而设计的无动力货运滑翔机。该产品旨在通过“空中拖曳”技术,彻底改变航空货运的经济性与运力,实现自喷气发动机时代以来最大的能力跃升。

关键技术:自动驾驶与气流利用 公司拥有专利的自动驾驶技术,使Aerocart滑翔机能够安全地“冲浪”穿越复杂的尾流涡旋,精确完成起飞、飞行和降落过程。这项技术是实现可靠空中拖曳的核心。

主要优势与应用场景

  • 提升运力与节省燃料:通过为现有飞机增加拖曳的滑翔机单元,可指数级增加货运容量,同时显著降低燃料消耗。
  • 军事与防御应用:在对抗性环境中,能延伸现有飞机的航程,向简易着陆区快速投送物资,且无需让主资产冒险。该技术正在重新定义战略和战术空运。
  • 通用性:旨在将空中拖曳技术应用于每架飞机,提升整个机队的能力。

发展状态与理念

  • AG-1自2022年开始飞行,计划于2026年部署。
  • 公司理念源于二战时期美国和盟军使用的货运滑翔机,历史上已有大规模使用滑翔机拖运货物和人员的先例。Aerolane旨在以现代技术复兴并革新这一概念。
  • 公司指出当前航空创新常面临预算超支、进度延迟和效果不佳的问题,而Aerotowing技术旨在提供一种真正的阶跃式改进。
44. Toybox: All-in-one Linux command line (github.com)

Toybox:一体化Linux命令行工具

概述 Toybox 是一个多功能的Linux命令行工具集合,提供静态二进制文件下载,支持多种目标平台。用户可直接运行或通过构建进行安装。

下载与使用

  • http://landley.net/toybox/bin 下载预编译的静态二进制文件。
  • 示例:下载并运行 toybox-x86_64,执行 ./toybox-x86_64 echo hello world

构建方法 构建流程类似Linux内核,使用 make menuconfig; make; make install 模式。

  • 基本构建:make defconfig && make && make install
  • 支持交叉编译(如 CROSS_COMPILE=armv5l-),需配合相应工具链。
  • 环境变量可在 configure 文件中自定义。

运行机制 Toybox 生成一个多调用二进制文件,根据调用名称(如 cpmv)执行不同命令。

  • 安装时会创建命令符号链接到 $PATH
  • 直接使用 toybox 命令时,第一个参数指定子命令,无参数则列出所有可用命令。
  • help 命令提供单个命令的帮助信息。

配置系统 采用类似Linux内核的配置方式(如 allnoconfigdefconfigmenuconfig),通过 .config 文件选择功能。

  • 推荐使用 make defconfig 作为基础配置(allyesconfig 不推荐,可能启用未完成的功能)。
  • 版本升级时建议运行 make oldconfig 更新依赖。

构建基于Toybox的Linux系统 Toybox 内置简单的系统构建工具 scripts/mkroot.sh

  • 使用 make root 构建,并通过 chroot 进入。
  • 支持交叉编译和QEMU测试(例如构建sh4架构系统)。
  • 可扩展添加其他软件包(参见 scripts/root/dropbear 示例)。

相关演讲 文章列举了多项关于Toybox的演讲资源,包括:

  • 2013年嵌入式Linux会议:介绍Toybox的设计初衷。
  • 2019年ELC会议:Toybox与BusyBox的对比。
  • 其他技术讨论:如公共领域授权、跨架构开发等。

参与贡献 项目沟通渠道:

  • 官网:http://landley.net/toybox
  • 邮件列表:http://lists.landley.net/listinfo.cgi/toybox-landley.net
  • Git仓库:http://codeberg.org/landley/toybox
  • 补丁建议通过邮件列表提交,Android相关补丁需先进入上游Toybox。
45. Find Nearby Automated License Plate Readers (ALPR) (deflock.me)

DeFlock 项目摘要

项目概述

DeFlock 是一个开源项目,专注于映射美国各地的自动车牌读取器 (ALPR),帮助用户查找附近的 ALPR 位置。该项目通过网站和移动应用提供服务,旨在提高公众对监控设备的认识。

核心信息

  • 项目名称: DeFlock
  • 目的: 提供一个平台来定位和显示美国境内的自动车牌读取器,支持用户查看附近 ALPR 的分布情况。
  • 开源性质: 项目代码公开,可在 GitHub 仓库 (https://github.com/FoggedLens/deflock) 访问,鼓励社区参与和贡献。

结构和资源

关键功能

  • 地图显示: 基于地理位置显示 ALPR 位置,方便用户可视化查找。
  • 跨平台支持: 通过网站和移动应用(iOS 和 Android)提供无缝访问。
  • 数据开放: 开源结构允许用户可能贡献或更新 ALPR 位置数据,增强社区协作。

技术细节

项目使用结构化数据(如 JSON-LD)在网站中定义组织信息,表示为 "Organization" 类型,包括名称 "DeFlock"、URL 和相关链接,以支持搜索引擎优化和数据交换。

46. Germany outfitted half a million balconies with solar panels (grist.org)

德国阳台太阳能系统(Balkonkraftwerk)正迅速普及。截至2023年底,德国已有超过55万套阳台太阳能系统安装,其中一半于2023年完成。仅2024年上半年,新增装机容量就达到200兆瓦。这些系统通常由两块太阳能板组成,通过微型逆变器插入家用插座,直接为家庭供电,功率被法规限制在800瓦以内,足以驱动小冰箱或为笔记本电脑充电。

该技术的流行得益于其极低的安装门槛和成本。系统售价约500欧元,用户无需拥有房屋产权,只需自行组装并插入插座即可使用。德国政府自2019年起出台技术规范,允许系统使用标准插头并入网,随后持续简化许可和注册流程,并在2023年通过立法保护租户安装权利,防止房东无理阻挠。柏林、基尔等城市还提供了数百万欧元的补贴。

尽管单个系统发电量有限(一套600瓦系统年节省电费约100欧元,五年左右回本),其对全国总能源供应的贡献也微不足道(不足1%),但其意义超越了经济收益。用户表示,阳台太阳能让他们直观参与能源生产,获得“自我效能感”,并促使他们反思用电习惯,主动在阳光充足时使用电器,从而减少碳足迹。许多系统配有监测App,用户乐于分享发电数据,形成社区互动。

然而,该技术也面临阻力,部分房东出于安全或美观考虑反对安装。德国独特的租房文化、高昂的电价、有力的政策支持以及公众的环保意识共同推动了这一“民间能源转型”现象。尽管在其他国家因法规或技术兼容性问题推广受限,但在德国,阳台太阳能已如“雪球般”越滚越大,成为公民参与气候行动的具体实践。

47. A beginner's guide to deploying LLMs with AMD on Windows using PyTorch (gpuopen.com)

在Windows上使用AMD与PyTorch部署大型语言模型(LLM)初学者指南

核心概述

本文介绍了如何在Windows系统上,利用支持AMD的PyTorch,在本地AMD GPU或APU上部署和运行大型语言模型(LLM),无需依赖专业AI基础设施。

当前支持的平台与硬件

  • 操作系统:仅限 Microsoft® Windows® 11。
  • AMD 驱动程序:需要安装 AMD Software: PyTorch on Windows Preview Edition 25.20.01.14
  • 支持的硬件
    • AMD Radeon™ RX 7000 和 9000 系列 GPU。
    • 选定的 AMD Ryzen™ AI 300 和 AI Max APU。
  • 软件要求
    • Python 3.12(安装时需勾选“Add Python to PATH”)。

部署步骤详解

第一部分:环境配置

  1. 打开命令提示符:通过开始菜单搜索 cmd 打开。
  2. 创建并激活虚拟环境
    • 创建:python -m venv llm-pyt
    • 激活:llm-pyt\Scripts\activate
  3. 安装核心库
    • 安装支持 ROCm 的 PyTorch、TorchAudio 和 TorchVision。
    • 安装 Hugging Face 的 Transformers 和 Accelerate 库。

第二部分:测试LLM(以 Llama 3.2 1B 为例)

  1. 在已激活的虚拟环境中启动Python会话
  2. 运行模型代码:代码使用 transformers 库的 pipeline 功能加载模型并生成文本。首次运行会下载模型(数GB),后续运行速度更快。
    • 成功运行后,模型会根据提示“The key to life is”生成一段文本。

进阶:创建交互式AI聊天机器人

通过编写一个脚本,可以实现在终端中与AI进行多轮对话,并维持上下文记忆。

  1. 创建脚本文件 (run_chat.py):该脚本会循环接收用户输入,调用LLM生成回复,并维护一个对话历史列表。
  2. 运行聊天机器人:在命令提示符中运行脚本,即可开始交互式聊天。

重要注意事项

  • 关于警告信息:运行模型时可能会出现“Torch was not compiled with memory efficient attention”的警告。这是正常现象,因为当前Windows版AMD PyTorch预览版尚未包含该优化。PyTorch会自动回退到标准方法,代码运行不受影响。
  • 首次下载:首次运行需要下载模型文件,需确保网络连接并耐心等待。

总结

本指南为开发者提供了在搭载AMD消费级显卡的Windows PC上,使用PyTorch部署和运行基于Transformer的LLM的完整入门路径。通过遵循上述步骤,用户可以在本地硬件上体验AI模型推理。

48. ScribeOCR – Web interface for recognizing text, OCR, & creating digitized docs (github.com)

ScribeOCR 概述

ScribeOCR 是一个免费的开源Web应用程序,核心功能包括图像文字识别(OCR)、OCR数据校对以及创建完全数字化的文档。其在线服务可通过 scribeocr.com 访问,整个处理过程在用户浏览器内完成,无需上传数据至远程服务器。

三大主要应用场景

  1. 为PDF添加可搜索的文字层:可作为Adobe Acrobat等工具的替代品,用于识别PDF中的文字并创建可搜索的PDF文档。其优势在于能轻松纠正识别出的错误。
  2. 校对现有OCR数据:支持编辑和修正由其他应用(包括Tesseract HOCR文件)生成的OCR数据。通过将文字精准叠加在原始图像上进行校对,效率远高于传统方法。
  3. 创建文档与书籍的纯数字化版本:不同于其他OCR程序仅将粗略定位的不可见文字叠加在图像上,ScribeOCR能够生成文字原生、类电子书式的PDF,能准确还原原始文档格式,同时保持较小的文件体积。

技术架构与运行方式

  • 仓库说明:当前Git仓库仅包含用户界面代码。文字识别的核心功能由独立的 Scribe.js 库实现,相关问题需在其仓库讨论。
  • 运行方式
    • 在线使用:直接访问 scribeocr.com。
    • 本地运行:目前无独立桌面应用。需通过本地HTTP服务器提供文件服务,可使用npm执行相关命令进行克隆和启动。

核心功能特点:高效校对

校对是ScribeOCR的设计重点。其界面通过精确地将可编辑的OCR文字覆盖在源图像上来实现高效纠错。

  • 自定义字体优化:系统会根据OCR数据为每个文档生成定制的优化字体,使覆盖文字与原始扫描图像的对齐更精准。
  • 直观的错误指示:在校对模式中,低置信度的识别错误会以红色显示,使错误一目了然,从而将校对从98%的准确率提升至100%。

输出模式示例

文章通过一个扫描书籍页面的示例展示了三种视图:

  1. 原始图像:扫描件。
  2. 校对模式:彩色的OCR文字(含红色标识的错误)精准覆盖在图像上,便于对照修改。
  3. 电子书模式:仅显示已校正的纯文字层,既忠实于原始文档,文件又小巧。同时也支持导出传统的“文字覆盖在图像上”的PDF格式。

文档与支持

用户文档位于 docs.scribeocr.com。项目欢迎对文档的反馈,如有内容不清晰或缺失,可在仓库中提出问题。

49. Zürich voters ban noisy leaf blowers (www.swissinfo.ch)

苏黎世市民在公投中以61.7%的多数票通过了一项禁令,禁止使用汽油驱动的吹叶机。

根据新规,电池供电的型号也被限制使用,仅允许在每年的10月至12月期间使用。在其他月份,只有在特殊情况下(例如街头游行后的街道清洁)才可例外使用。

该限制适用于私人用户和市政工作人员。共有75,248名选民赞成这项对警察条例的部分修订,而46,717人反对,投票率为52.8%。

这场关于吹叶机的斗争在苏黎世已持续多年。早在2013年,绿党就提交了一份有4,329个签名的请愿书。导致此次禁令的倡议是由绿党和社会民主党在2022年提交的。此次公投源于一些议会政党发起的公投,以挑战市议会禁止吹叶机的决定,他们认为该禁令是“禁令文化的体现”。

50. Estimating AI energy use (spectrum.ieee.org)

AI能源消耗估算

核心数据:ChatGPT的能源使用

  • 日常消耗:ChatGPT每天处理约25亿个查询,按每次查询平均耗电0.34瓦时计算,日耗电量达850兆瓦时,相当于每日为1.4万辆电动汽车充满电。
  • 年度影响:年查询量近1万亿次,年耗电量约310吉瓦时,可为约2.9万个美国家庭供电一年。

行业整体规模

  • 当前消耗:据施耐德电气研究所报告,整个生成式AI行业2025年总耗电量预计为15太瓦时,相当于两个核反应堆的年发电量。
  • 查询量估算:按行业平均每查询耗电2.9瓦时推算,年查询量约为5.1万亿次

2030年预测与基础设施需求

  • 能源增长:到2030年,生成式AI年耗电量可能飙升至347太瓦时,需新增332太瓦时的能源供应。
  • 数据中心需求:这需要新建约38座“星门级”数据中心(每座功率1吉瓦,年耗电8.76太瓦时),相当于建设44个核反应堆的发电能力。
  • 查询量预测:届时每日查询量或达3290亿次,相当于全球人均每日约38次查询,主要受AI代理自动化交互趋势推动。

关键结论与不确定性

  • 能耗重心转移:能源消耗增长主要来自AI推理(模型使用阶段),而非训练阶段。
  • 变量因素:实际消耗可能因AI代理技术发展、能效提升等因素,与预测值存在较大偏差。