2024-01-30

50 篇热帖

2. Meta AI releases Code Llama 70B (twitter.com)

文章内容描述了一个错误发生的情况,并建议用户不要担心,可以再次尝试操作。指出隐私相关扩展可能导致在x.com上的问题,因此建议禁用这些扩展后重试。

4. I just wanted Emacs to look nice – Using 24-bit color in terminals (chadaustin.me)

在终端中启用24位颜色以美化Emacs的总结

背景与目标

作者受同事和David Wilson的“Emacs from Scratch”启发,希望在终端环境中的Emacs也能获得类似图形界面Emacs的美观效果,特别是支持Solarized等主题的24位颜色和字体。虽然图形界面Emacs自动支持24位颜色,但终端Emacs因历史限制通常只显示基础颜色。

技术挑战:ANSI转义码与颜色标准的历史

  • ANSI转义码:起源于1970年代,用于终端控制,其中SGR(Select Graphics Rendition)参数负责设置字符属性,如颜色、粗体等。
  • 颜色演变
    • 早期:8色(3位),后扩展为16色(4位,增加亮度位)。
    • 1999年:xterm引入256色支持,基于6×6×6 RGB颜色立方体和24级灰度。
    • 24位真彩色:通过SGR参数38(前景)和48(背景)实现,源自ISO 8613-6(1993)标准,其中参数“2”表示RGB直接颜色,“5”表示索引颜色(256色)。
  • 语法混乱:标准建议使用冒号分隔子参数(如38:2:<r>:<g>:<b>),但历史实现(如xterm)错误使用了分号(如38;2;<r>;<g>;<b>),导致兼容性问题。尽管后来部分终端支持冒号语法,分号语法因广泛使用仍更兼容。

terminfo系统的作用与局限

  • terminfo:通过TERM环境变量查询终端能力,用于生成适当的转义序列。
  • 关键能力colors(颜色数量)、setaf(设置前景色)、setab(设置背景色)。
  • 24位支持问题:terminfo将24位颜色模拟为1677万色的“调色板”,但牺牲了最暗的7种蓝色以保持向后兼容。此外,terminfo无法同时描述256色和直接颜色模式,且更新缓慢,难以准确反映现代终端的多样性。

实际配置指南

  1. 确保终端支持:大多数现代终端支持24位颜色,但需验证(例如使用colortest.rs程序)。
  2. terminfo安装:安装ncurses-term包以获取扩展终端描述(如xterm-directvscode-direct)。
  3. 嵌套终端处理:当终端嵌套(如本地终端→mosh→tmux→Emacs)时,每一层都必须正确解析和传递24位颜色转义序列。需确保所有组件(mosh、tmux等)版本足够新,并正确设置每层的TERM值(例如tmux中使用tmux-direct)。
  4. 特定环境配置
    • mosh:仅支持分号语法,需设置TERM=vscode-direct(或类似),可通过脚本检测mosh环境并自动设置。
    • ssh:自动传递TERM值,需确保远程主机安装对应terminfo记录。
    • tmux:在~/.tmux.conf中设置default-terminal "tmux-direct"
    • Emacs:使用(display-color-cells)验证颜色支持,注意terminfo限制可能导致某些蓝色不可用。

成果与未来展望

  • 成果:作者成功在终端Emacs中实现了美观的24位颜色主题,提升了工作体验。
  • 建议:terminfo系统已过时,应开发新的终端能力描述系统,例如:
    • 维护更新的现代终端数据库,忽略过时硬件终端。
    • 引入TERMVERSION变量以区分终端版本。
    • 支持更准确的颜色能力描述(如setf24setb24),并为旧程序提供向后兼容生成。

总结:实现终端24位颜色需理解历史标准与当前限制,通过正确配置terminfo和终端层,并考虑嵌套环境,即可在终端Emacs中获得丰富的视觉效果。

6. Researchers have found a faster way to do integer linear programming (www.quantamagazine.org)

整数线性编程(ILP)是解决许多实际问题的关键工具,但其计算效率一直是挑战。研究人员最近取得了几十年来最大的算法突破,大幅提升了其求解速度。

问题背景 ILP用于优化涉及整数决策变量的问题,如生产计划、航班调度等。自60多年前提出以来,其算法在计算步骤上一直相对缓慢。对于最简单的二元变量(0或1)情况,运行时间随变量数(维度)呈指数增长。当变量取更广泛的整数值时,算法运行时间会显著增加,研究进展缓慢。

历史方法与挑战 1983年,Hendrik Lenstra首次证明了ILP问题的可解性。他从几何视角入手,将问题的线性不等式约束定义为一个凸体(如多边形),将整数解视为一个格点(如网格上的点)。求解ILP就是在凸体与格点的交集中寻找解。Lenstra的算法通过将高维问题分解为低维子问题来搜索,但步骤较多。

1988年,Ravi Kannan和László Lovász引入了“覆盖半径”的概念,以帮助更高效地找到交集。覆盖半径确保了无论凸体在格点上如何放置,其内部总包含至少一个整数点。该半径的大小直接决定算法效率。他们证明了上界随维度线性增长,但并未带来显著的提速。此后的30多年里,改进甚微。

最新突破 由Victor Reis和Thomas Rothvoss做出的新突破,其灵感来自一个不相关的纯数学结果。2016年,Oded Regev和Noah Stephens-Davidowitz在格点研究中证明了特定形状内可容纳的格点数量。Reis和Rothvoss将此方法应用于其他形状,从而能更精确地估计ILP覆盖半径内包含的格点数量,进而大幅降低了覆盖半径的上界。

这一改进使得他们设计的新算法的运行时间达到(log n)^O(n),其中n为变量数。该运行时间已非常接近二元问题的理想情况,被视为ILP算法数十年来的最大进步,获得了2023年计算机科学基础会议的最佳论文奖。

意义与展望 这一成果被赞誉为数学、计算机科学和几何学交叉领域的胜利,为ILP提供了根本性的理论理解。尽管新算法因其复杂性尚未应用于实际物流问题,但它指明了理论发展的方向。研究者们仍对进一步逼近理想运行时间保持乐观,但这可能需要全新的思路。

7. Helios: A distribution of Illumos powering the Oxide Rack (github.com)

Oxide Helios 概述

Oxide Helios 是一个基于 illumos 的操作系统发行版,专门用于驱动 Oxide Rack。整个发行版由多个软件组件(称为 "consolidation")构建而成,由本顶级仓库中的工具和文档驱动。

组件构成

Helios 由多个公开和私有的组件构成,主要包括:

  • 公开组件:如启动镜像工具、构建脚本、Zone 品牌、illumos 核心操作系统、引导加载程序等。
  • 私有组件:如 AMD CPU 固件、Chelsio 网卡固件等(未来可能公开)。

注意:并非所有组件目前都公开。在构建时,可通过设置环境变量 OXIDE_STAFF=no 来跳过尚未公开的私有组件。

构建与安装指南

环境准备

  • 推荐在运行最新版 Helios 的物理或虚拟机上进行构建。
  • 需安装 developer/illumos-tools 包。
  • 需通过 Rustup 安装 Rust 和 Cargo。

获取与设置

  1. 克隆本仓库:git clone https://github.com/oxidecomputer/helios.git
  2. 运行设置:gmake setup(对于无私有组件访问权限,使用 OXIDE_STAFF=no gmake setup)。
  3. 此步骤会构建基于 Rust 的 helios-build 工具,并克隆相关项目仓库。

构建 illumos

  • Helios 的核心操作系统组件来自 illumos-gate 的 stlouis 分支。
  • 使用 helios-build 工具包装 illumos 构建工具,简化配置。
  • 快速构建./helios-build build-illumos -q,适用于开发期间,禁用部分检查。

安装已构建的软件包

  1. 本地安装./helios-build onu -t <启动环境名称>,将构建的软件包转换并安装,创建新的引导环境,需要重启生效。
  2. 通过网络仓库安装
    • 在构建机上运行 ./helios-build onu -D 启动包服务器。
    • 在目标机上配置软件包发布者指向构建机地址(例如 http://<构建机地址>:7891)。
    • 设置 on-nightly 为首选源,并将 helios 设置为非粘性。
    • 执行 pkg update 进行更新,然后重启。
  3. 仅生成包而不安装./helios-build onu -P,生成转换后的软件包仓库,可用于检查或传输。

修改与增量构建

  1. 进入构建环境./helios-build bldenv -q
  2. 针对特定组件修改:在环境内更改源文件,使用 dmake -S -m serial install 构建并安装到原型区。
  3. 增量测试选项
    • 完整重新构建:最正确但慢,使用 ./helios-build build-illumos -q
    • 重新生成包:在构建环境内运行 cd $SRC/pkg && dmake install,然后使用生成的包。
    • 直接替换文件:直接运行修改后的二进制文件,或通过 scp/rsync 复制到目标机,或创建新的引导环境/磁盘镜像。

OS 镜像归档

构建用于 Oxide 计算节点的 OS 镜像时,会生成一个镜像归档文件,包含:

  • 元数据oxide.json 文件,标识为 OS 镜像。
  • 启动 ROMimage/rom 文件。
  • 根文件系统image/zfs.img 文件。
  • 可能包含其他工程或诊断文件,但不属于承诺接口部分。

许可

除非另有说明,所有组件均根据 Mozilla Public License Version 2.0 授权。版权属于 Oxide Computer Company (2026)。

8. Show HN: Boardzilla, a framework for making web-based board games (www.boardzilla.io)

Boardzilla 简介

Boardzilla 是一个基于 Web 的棋盘游戏框架,旨在简化数字棋盘游戏的创建和玩耍过程。它提供一个在浏览器中玩和开发棋盘游戏的平台,使游戏制作变得容易。

核心特点:

  • 简化游戏规则的表达,降低开发复杂度。
  • 为玩家提供简洁的界面,方便他们做出游戏中的选择。

示例游戏: 该框架已应用于多个游戏,展示了其多样性和适用性,包括:

  • 7 Wonders Duel(2名玩家)
  • Cursed(1名玩家)
  • Dyngus Day(1至4名玩家)
  • 27Panic(2至4名玩家)
  • Hearts(4名玩家)
  • Hex(2名玩家)
  • Power Grid(2至4名玩家)
  • Skirma(2名玩家)
  • Stunt Kites(1至2名玩家)

这些游戏覆盖了不同玩家数量和类型,体现了框架的灵活性。

进一步信息: 用户可以通过阅读文档来学习如何使用 Boardzilla 制作自己的棋盘游戏。

9. Alzheimer’s cases tied to no-longer-used medical procedure (www.statnews.com)

阿尔茨海默病与已停用的医疗程序关联

核心发现

研究人员发现一组早发性阿尔茨海默病患者,年龄在30-50岁之间,没有经典症状或已知遗传突变。这些患者唯一的共同点是儿童时期接受过从人类尸体大脑中提取的生长激素治疗(该疗法用于治疗导致身材矮小的疾病,已于约40年前停用)。

传播机制

  • 这种尸体生长激素治疗可能无意中将β-淀粉样蛋白“种子”植入接受者大脑。
  • 几十年后,这些蛋白质发展成阿尔茨海默病特征性的斑块。
  • 这是阿尔茨海默病传播的首例已知病例,尽管研究人员强调该病不是传染病。

研究背景

  • 此前已知该疗法可传播朊病毒,导致致命的克雅氏病(CJD),因此被禁用。
  • 英国1959-1985年间有1800多人接受过尸体生长激素治疗,本研究仅发现5例阿尔茨海默病患者。

科学意义

  • 为阿尔茨海默病机制提供新见解,提示其可能与人类朊病毒疾病(如CJD)的传播机制相似。
  • 加剧了关于β-淀粉样蛋白在疾病中作用的长期争论:β-淀粉样蛋白是否足以导致疾病?
  • 患者大脑中炎症较少、tau蛋白存在较少,与典型阿尔茨海默病不同,引发新的科学问题。

注意事项

  • 该发现是“科学异常”,病例数极少。
  • 目前使用的合成生长激素不存在此风险。
  • 研究人员强调阿尔茨海默病不会通过护理等日常接触传播。
  • 提醒了神经外科器械消毒等操作的重要性。

研究详情

  • 8名患者在英国国家朊病毒诊所接受治疗(2017-2022年),无克雅氏病,5人确诊或可能患有阿尔茨海默病。
  • 症状出现年龄38-55岁。
  • 研究者排除了遗传因素、原发疾病本身作为原因的可能性,认为尸体生长激素治疗是唯一共同点。

全球背景

  • 医源性克雅氏病全球记录超200例(主要在法、英、美)。
  • 研究人员早有线索提示可能存在医源性阿尔茨海默病形式。
  • 绝大多数阿尔茨海默病为散发性(老年发病),少数为遗传性早发病例。
15. Everyone hates the electronic medical record (logicmag.io)

文章核心摘要

本文以电子病历系统引发的普遍不满为切入点,深入剖析了其失败根源及背后的系统性、历史性问题。文章指出,电子病历未能实现其承诺,反而成为临床人员职业倦怠、患者安全风险和医疗效率低下的主要原因,并揭示了其问题本质并非单纯的技术缺陷,而是深植于医疗体系的资本逻辑、历史路径依赖及社会不平等之中。

一、 问题现状与普遍不满 电子病历系统让医护人员将大量时间消耗在操作界面、处理冗余数据和完成行政文书工作上,而非用于直接照顾患者。系统本身存在设计复杂、界面不友好、不同机构间无法互操作等问题,导致临床工作中断、医嘱错误频发,甚至引发患者伤害或死亡的严重后果。医护人员与患者均对此深感困扰。

二、 历史与制度根源

  1. 医学教育与范式的转变:文章追溯了医疗记录从希波克拉底时期以患者叙事为核心的教学传统,到近代受德国实验室医学模式影响,逐渐转向以技术指标和标准化数据为重心的过程。1910年的《弗莱克斯纳报告》进一步强化了医学教育的“实验室中心”模式,削弱了患者的主体地位,并影响了医疗记录的形态。
  2. 2009年HITECH法案的催化:奥巴马政府为刺激经济,通过《HITECH法案》投入360亿美元强力推广电子病历。其初衷是提高准确性、效率和实现病历互操作,但实施过程追求速度而非质量。政府以补贴和强制手段,迫使医院快速采购并安装由不同厂商提供的、不互通的系统。这本质上是为刺激经济而非优化医疗流程的项目,导致系统“搭建起一座电子断桥”。

三、 失败的核心原因

  1. 技术服务于资本,而非健康:电子病历产业已成为一个利润丰厚的市场。厂商为抢占市场份额和获取补贴,匆忙推出产品,甚至将计费软件改造为临床系统。医院和诊所也缺乏经济动力共享数据。商业激励的扭曲是系统低效、不互通的根本原因。
  2. 行为经济学的“助推”与技术治理的局限:文章批判了奥巴马政府所依赖的“助推”理论(即通过设计选择架构引导行为)。这种政策框架试图以低成本、“政治中立”的技术手段解决复杂社会问题,实则是将系统性失败的责任转嫁给个人。它回避了对住房、经济保障等社会健康决定因素的资源再分配,其背后的科学基础也存在复制危机。
  3. 技术并未取代劳动,而是重组与转移了劳动:电子病历没有实现工作自动化,反而增加了医护人员的“认知劳动”和行政负担。他们需要花费大量时间将复杂的临床叙述转化为系统要求的结构化数据,并处理海量的系统警报和冗余文书工作。这实质上是将行政工作转嫁给了直接提供医疗服务的人员,加剧了职业倦怠。
  4. 企业化医疗的结构性压力:医疗领域的私营股本渗透和企业化经营,追求短期利润最大化,通过削减人手、增加工作量、使用资质较低的人员等方式进一步挤压了医护人员。电子病历的负担叠加了这些结构性压力,共同导致了当前的危机。

四、 系统性问题的映照 文章最终指出,电子病历的困境是美国医疗体系深层矛盾的缩影。健康主要由社会决定因素(如住房、安全、社区支持)塑造,而非仅靠医疗干预。然而,现行体系更倾向于通过技术“助推”个体行为,而非挑战造成不平等的权力结构和资源分配。

五、 可能的改变方向 作者借鉴社会理论,提出四种变革路径:1)体系崩溃后的重建(如COVID-19疫情暴露的裂痕);2)驯服现有体系,要求基于患者、劳工和社区的利益进行切实改革,需要跨职业团结和政治组织;3)逃离体系,但存在不平等;4)侵蚀体系,即在现有体系的裂隙中,通过社区自组织和互助行动(如黑豹党、艾滋病活动家的做法)构建替代性护理模式,并证明其可行性。

总而言之,文章论证了电子病历的失败并非孤立的技术问题,而是资本驱动、政策失误、历史路径以及社会不平等等多重因素交织的结果。真正的解决方案要求超越技术修补,转向对医疗体系及其所处社会结构的根本性反思与变革。

17. A Tour of the Lisps (www.fosskers.ca)

一次Lisp方言之旅:体验、反思与现状

探索的动机

作者在2023年期间系统性地尝试了多种主流Lisp方言,其动因主要包括:受Elixir语言启发,认识到实时调试和“深入程序内部”的优势;对Rust语言虽强大但缺乏“美感”的不满;受Jack Rusher演讲《停止编写死程序》的启发,意识到传统“编写-编译-运行”循环的局限;以及日常使用Emacs,其配置语言本身就是一种Lisp。

五种Lisp方言的实践与评价

作者在过去一年中使用以下五种Lisp编写了软件:

  1. Guile (Scheme的实现):具有Scheme的简洁与一致性,是GNU项目的一部分,许多系统默认安装。作者在此发现了“转换器”并喜爱,移植到其他Lisp。但其依赖管理困难,除非使用Guix系统,不利于大型项目。
  2. Common Lisp:经典方言。尽管有一些历史包袱,但拥有活跃的生态和热情的社区。具备顶级的可调试性和交互性(支持在运行的生产系统中调试外部库代码)。是编译型语言,却支持像Erlang一样的热交换,并可选用静态类型系统。是一门“高级用户的语言”。现代库可以覆盖部分历史API的怪异之处,但发现它们有时较困难。需要选择具体实现,且没有LSP,但现有的编辑器集成质量很高。
  3. Fennel:简洁、干净,编译为Lua,可轻松使用Lua库。原生支持TIC-80游戏引擎,作者用其编写了游戏。工具在改进,可生成静态二进制文件,但推荐直接管理依赖。缺乏Common Lisp的可调试性,因为它完全在Lua运行时内运行。
  4. Clojure:由Rich Hickey深思熟虑设计的现代语言。非常简洁,拥有顶级的易用性和工具支持。拥有优秀的数据结构字面量和强大且自筹资金的社区。与JVM深度集成让一些人却步,但有替代平台,包括一个基于C++的原生实现。可以说它“将Lisp带入了现代”。用于驱动了Aura使用的AUR数据镜像。缺点是错误信息较差,虽有部分生产环境调试和热交换能力,但缺少Common Lisp的“条件系统”。
  5. Emacs Lisp:优势在于随时可用。与编辑器的结合使其发现性极佳,尤其配合Org模式,最便于快速编写代码片段。作者编写了大量小脚本功能,无需离开编辑器即可一键执行。拥有活跃的生态系统和社区项目(如Doom Emacs)。但历史较久,存在一些历史遗留代码,缺少像一流的异步支持等“明显”功能。

重要收获与反思

  1. 从“秩序”到“务实”:作者曾过度追求类型系统带来的“秩序”和“恰如其分”。通过接触Clojure思维和实时的编辑器内测试,他认识到:可以从动态类型开始,待领域模型清晰后再使用渐进类型机制收紧API。测试在编辑器内越容易进行,对自上而下的类型系统和单元测试的需求就越少。
  2. 重新理解“调试”:Common Lisp(以及稍逊的Clojure)提供的工具,让他真正体验了始终“处于程序内部”的调试。不再需要打印调试,而是可以在运行时实时检查一切。他意识到传统其他语言中的“写-编译-运行”循环是荒谬的,并在Rust中感受到了这种痛苦。
  3. Lisp的核心并非宏:作者自己只写过两个小宏,函数通常就能解决问题。他认为Lisp的核心在于基于REPL的交互式开发——并非在REPL提示符下手动输入,而是在编辑器中直接编码并发送到REPL执行,结果以覆盖层形式返回。
  4. Lisp的现代实用性:确认Lisp完全可用于现代开发,可以编写真实、可维护的软件。并且注意到Lisp语言的薪资似乎相当高。

理想的Lisp模型与现状

作者心中理想的Lisp类似于Common Lisp和Clojure的融合,并具备更强但仍可选的静态类型特性(如枚举、特质/类型类)。他喜欢函数式编程,希望拥有Common Lisp的可调试性和原生编译能力。在语法上,他认为s表达式是Lisp语法的最佳选择,支持结构化编辑。同时,他欣赏Clojure为向量、映射、集合等常用集合使用特殊括号的做法。

当前状态:作者目前在个人项目中主要使用Common Lisp。一次工作中的经历(在Rust应用中因第三方库bug导致漫长的调试-修复-发布流程)让他感叹“如果这是Common Lisp,调试只需30秒”。他将Common Lisp和整个Lisp社区形容为“ chill cafés”——社区规模适中,项目质量普遍较高,成员都是自我选择的,体验积极。

关于“唯一语言”的看法:作者认为不存在“唯一真正语言”。无论选择哪种工具,都需要选择采用其内部的一个特性子集。尽管像Clojure和Rust这样较新的语言很好,但它们也不是人类最终的编程语言。但他目前对现状感到满意。

给新手的建议

  1. 从正确的工具设置开始(编辑器模式、LSP、依赖管理器、括号平衡器)。
  2. 拥抱REPL。
  3. 沉浸式学习(用Lisp配置编辑器、浏览器或操作系统)。
  4. 构建真实的东西。
  5. 寻求帮助(如Clojure Slack、Common Lisp资源、Doom Emacs或Lisp的Discord服务器、本地聚会)。
  6. 入门推荐从Clojure开始感受风格,然后转向Common Lisp了解各自优缺点。关键在于动手写代码,而非死读大部头教材(如《计算机程序的构造和解释》)。
18. Dracula Theme for Hacker News (draculatheme.com)
  • 用户规模:目前有 11,460 人正在使用该主题。
  • 订阅协议:提交邮箱地址即表示同意接收 Dracula 的新闻通讯,用户可随时取消订阅。
19. Prisoners in the US are part of a hidden workforce linked to popular food brands (apnews.com)

美国监狱劳工:连接流行食品品牌的隐藏劳动力

核心发现

一项为期两年的美联社调查揭露了一个复杂而隐蔽的供应链网络,将美国众多囚犯的强制劳动与全球知名食品公司和品牌联系起来。这些产品广泛存在于美国超市货架上,甚至出口海外。

运作模式与案例

  • 典型路径:例如,路易斯安那州立监狱(安哥拉监狱)的囚犯以极低工资(时薪仅几美分甚至无偿)饲养牲畜。这些牛通过无标记卡车运出,经拍卖后流入德州屠宰场,最终进入麦当劳、沃尔玛和嘉吉(Cargill)等巨头的供应链。
  • 广泛牵连:囚犯生产的商品出现在美国家庭厨房的众多产品中,如家乐氏(Kellogg's)的Frosted Flakes麦片、Ball Park热狗、通用磨坊(General Mills)的Gold Medal面粉、可口可乐以及Riceland大米等。这些商品在克罗格(Kroger)、塔吉特(Target)、阿尔迪(Aldi)和全食超市(Whole Foods)等几乎所有超市销售。
  • 规模估计:过去六年,仅从全美惩教机构追溯到的、与商业企业相关的农产品销售额就高达近2亿美元,且这被认为是保守数字。

囚犯的困境

  • 强制与惩罚:囚犯是美国最弱势的劳工群体之一。如果拒绝工作,可能危及假释机会,或面临单独监禁等惩罚。
  • 缺乏保护:他们通常被排除在几乎所有全职员工享有的劳动保护之外,即使在工作中受重伤或死亡也是如此。例如,一名囚犯在鸡肉加工厂工作时因机器故障死亡,其家属面临漫长诉讼。
  • 微薄报酬与严苛条件:在许多州,特别是南部,囚犯从事农业劳动时薪仅为2至40美分,部分州甚至不支付任何报酬。工作条件恶劣,存在高温、体力透支、甚至暴力胁迫的风险。

历史根源与法律依据

  • 宪法条款:强迫劳动的合法性主要源于美国宪法第十三修正案。该修正案禁止奴隶制和强制劳役,但“作为对犯罪的惩罚”除外。这一条款可追溯至南北战争后为重建南方经济而允许使用监狱劳工。
  • 争议与挑战:目前,该条款正受到联邦层面的挑战,多个州预计将在今年公投决定是否从州宪法中移除类似语言。
  • 与历史的相似性:一些囚犯如今仍在当年奴隶耕种过的土地上劳动,工作场景与过去惊人地相似。

公司关联与反应

  • 直接与间接关联:许多知名公司直接从监狱购买商品,或通过第三方供应商间接卷入。关联的品牌和超市包括麦当劳、沃尔玛、嘉吉、邦吉(Bunge)、通用磨坊、泰森食品(Tyson Foods)、汉堡王(Burger King)、山姆会员店(Sam's Club)等。一些公司甚至从监狱农场直接采购大豆、玉米和小麦。
  • 企业政策矛盾:调查发现,许多直接购买监狱产品的企业,其自身政策明确禁止使用此类劳工。但大多数涉事公司未回应调查。
  • 部分回应:嘉吉承认从部分州的监狱农场采购,称正在采取“适当的补救措施”;麦当劳表示将调查相关联系;全食超市则明确表示不允许其产品使用监狱劳工。

支持与批评的声音

  • 支持方观点:惩教官员和支持者认为,并非所有工作都是强制的。监狱工作能节省纳税人开支,为囚犯提供技能培训、生活目的感,有助于减少再犯,也是偿还社会债务的一种方式。
  • 批评方观点:批评者认为,囚犯应获得公平报酬、人道对待,且所有工作都应自愿。他们指出,即使囚犯获得了专业培训(如消防),其犯罪记录也使他们在获释后几乎无法找到工作。法律专家质疑为何仍强迫人们在田间劳动。

结论

这项调查揭示了一个根植于历史、受经济利益驱动、且法律上存在漏洞的庞大体系。它将美国的刑事司法系统与全球粮食供应链紧密相连,同时引发了关于劳工权利、种族公正和对“惩罚”定义的深刻伦理与法律争议。

21. Finding the Air Cannon (www.twobraids.com)

本文记述了作者通过技术手段定位并解决社区农业空气炮噪音问题的过程。

问题背景

  • 位于科瓦利斯南部的农场为驱赶加拿大雁,使用丙烷空气炮(声响达120分贝),并通过计时器控制发射。
  • 2024年1月5日起,一台空气炮开始每两分钟发射一次,全天不停,严重干扰了作者及众多邻居近一个月的睡眠。

传统定位尝试失败

  • 作者驾车到多条道路监听,初步判断声源来自科瓦利斯机场附近区域,但无法精确定位。
  • 机场工作人员否认使用空气炮,但能听到南方有炮声。
  • 机场南侧最显眼的农场(Venell Farms)强烈否认使用空气炮。
  • 由于无法进入无公共道路穿行的大片区域,且不愿擅闯私地,作者需要新策略。

技术定位方法

作者设计并实施了一套基于声音传播时间差的定位系统:

  1. 数据采集:在三个相距数英里的地点(Bellfountain Rd, Brooklane Dr, Rivergreen Ave)设立监听站。三人使用手机同步时钟,在同一时间段内记录同一时段内五次炮声的精确到达时间。
  2. 数据处理:记录到声音最先到达Bellfountain Rd站,约4秒后到达Brooklane Dr站,再过2秒到达Rivergreen Ave站。
  3. 建立模型与模拟计算
    • 在Google地图上标出三个监听点,并根据地图比例尺确定现实世界坐标。
    • 使用Python编写程序,在地图上划定疑似声源的搜索区域。
    • 程序遍历该区域内每个点(转换为现实坐标),根据声速(332.24米/秒)计算模拟声音到达三个监听站的时间。
    • 将计算出的到达时间差(A-B, A-C, B-C)与实测数据进行比对。
  4. 定位结果:程序成功找到了与实测时间差精确匹配的唯一点,从而确定了空气炮的确切位置——位于科瓦利斯机场西南方向的一处农田。

解决问题与后续

  • 通过县税务评估办公室查到该土地所有者是一家总部位于蒙茅斯的农场公司。
  • 作者致电农场主,对方确认在其地产上使用空气炮,但否认夜间运行。农场主承诺联系现场工作人员。
  • 巧合与结果:在通话当晚(1月25日),夜间空气炮声即停止。作者推测这并非巧合,而是农场主停止了夜间使用。
  • 此次噪音干扰持续了约20天,在当地多个社交平台引发讨论。
  • 作者出于避免骚扰的考虑,未公开农场名称,但指出并非大家怀疑的Venell Farms。
  • 作者表示,如夜间炮声再起,他已有便捷工具可从数英里外精确定位声源。

附录:定位程序核心逻辑

  • 程序依赖两个私有模块(configmanners, points)。
  • 核心函数test_fitness计算一个模拟点的理论到达时间差,并与实测时间差比较。
  • 主程序循环遍历搜索框内的所有像素点,调用test_fitness函数,最终输出偏差最小的点作为最佳定位结果。
25. Why Certificate Lifecycle Automation Matters (www.hezmatt.org)

文章通过分析证书透明度日志和已泄露私钥数据库的数据,探讨了证书生命周期自动化的重要性。研究发现,不同证书颁发机构(CA)的客户私钥泄露率存在显著差异,这与证书管理过程中自动化程度密切相关。

研究方法:

  • 收集所有已过期但私钥已被公开的证书。
  • 通过颁发者/序列号去重,统计各颁发者签发的泄露证书数量。
  • 将颁发者映射到所属组织,并汇总统计。
  • 使用crt.sh的签发量报告计算“泄露率”(签发总量与泄露证书数量之比)。

主要发现:

  • 按泄露证书数量排序,Sectigo(170)、ISRG/Let's Encrypt(161)、GoDaddy(141)位居前列。
  • 但按泄露率(从高到低)排序后,结果呈现三个梯队:
    • 高泄露率:Entrust(1:7,722)、GlobalSign(1:31,271)。数据样本较小,结论可能受个别客户影响。
    • 中等泄露率:SSL.com、GoDaddy、Sectigo(均在1:数十万级别)。
    • 低泄露率:DigiCert(1:1,786,586)、Let's Encrypt(1:1,959,480)。

关键分析:

  • Let's Encrypt的低泄露率:主要因为其完全基于ACME协议进行自动化签发,减少了人工处理私钥的机会。虽然自动化并非完美(仍有161个泄露),但显著降低了风险。
  • DigiCert的特殊性:其整体泄露率低,是因为其为CloudFlare、AWS等大型托管服务提供商签发了大量证书(约1.04亿),这些服务的私钥由服务商完全托管,人类无法接触。剔除这部分后,DigiCert普通客户的泄露率(1:498,732)与GoDaddy、Sectigo相当。
  • 其他机构:传统CA的客户多沿用数十年的人工管理流程(生成密钥和CSR、上传、手动部署),人为错误风险高。
  • 无泄露案例:签发量巨大的Google Trust Services和Microsoft(主要服务于其云平台)未出现在泄露列表中,进一步佐证了完全托管密钥模式的有效性。

结论与启示:

  • 核心结论:人为干预证书管理过程越少,私钥泄露风险越低。
  • 最佳实践
    • 完全托管的TLS服务(如CloudFlare、AWS Certificate Manager)是理想模式,人类完全没有机会接触私钥。
    • ACME协议自动化是次优选择,提供了标准化的自动化工具,但人为操作仍可能介入。
    • 传统的手动签发方式风险最高,泄露率约为自动化方式的四倍。
  • 根本原因:在处理敏感数据(如私钥)时,最大限度减少人为参与是提高安全性的关键。

研究局限性:

  • 数据源可能存在时间差。
  • 颁发者到组织的映射可能不完全准确。
  • 对CA业务模式的归类可能因未发现的中间CA而产生误差。
26. Launch HN: Univerbal (YC W23) – Language learning with a conversational AI tutor
28. Pub400.com – Your public IBM I 7.5 server (pub400.com)

PUB400.com 公共 IBM i 7.5 服务器简介

核心概述

PUB400.com 是一个免费的公共服务器,运行 IBM i 7.5 操作系统,面向所有用户开放。用户可注册账户进行编程学习和项目实践,系统主要用于技能训练与技术探索,不提供商业环境或可靠服务保障。

主要功能与资源

  • 用户账户:允许创建个人用户档案。
  • 存储空间:每用户获得 1GB 磁盘存储(包括现有用户,以庆祝25周年)。
  • 开发库:提供两个私有库用于项目存放。
  • 编程支持:支持 CL、RPG、SQL、COBOL 等语言编程,并鼓励学习 IBM i 系统。
  • 扩展技术:支持 Node.js 及其他 Web 技术(需联系管理员配置 HTTP 设置)。

使用限制与规则

  • 账户管理:禁止创建多个账户或运行商业环境。
  • 连接控制:对单个 IP 的连接数有严格限制。
  • 安全设置:用户库将排除其他用户访问。
  • 服务保障:无定期备份,不保证系统随时在线。
  • 定位说明:系统作为学习和实验的“游乐场”,不适合用于商业运营。

目的与定位

该服务器旨在帮助用户开始学习 IBM i 编程,提供一个自由实践的环境,以掌握相关技能并探索这一操作系统。

29. JetBrains CEO Transition (blog.jetbrains.com)

JetBrains首席执行官交接

JetBrains将于2024年2月1日迎来其24周年纪念日。在超过二十年的时间里,JetBrains已从一家单一产品、单一办公室的公司,发展成为拥有超过2000名员工、分布在全球40个办公地点、并提供30多种产品和服务的跨国企业。

随着人工智能扮演变革性角色的新时代来临,公司已建立了坚实的基础。作为这一新阶段的一部分,自2010年加入JetBrains、并在过去几年领导IntelliJ部门的Kirill Skrygan,将于2024年2月1日起正式出任首席执行官。

JetBrains重申将坚定致力于服务客户和合作伙伴,并继续提供他们所期望和依赖的产品及服务。公司特别指出,Kotlin及Kotlin基金会是其战略重点,未来将持续投入该语言及其生态系统的发展。

公司向即将卸任的首席执行官Maxim Shafirov表达了衷心感谢。Maxim自2002年加入公司,并在过去的11.5年里担任首席执行官。他的奉献和领导力助力JetBrains确立了其作为开发者市场领先工具提供商的地位。

Maxim Shafirov在感言中回顾了在JetBrains的22年时光,并对公司未来的发展、员工的专业成长以及团队间持续关怀的文化感到自豪。

JetBrains认为当前是开发者和整个IT行业的变革时期。凭借超过二十年服务开发者社区的经验,公司深刻理解客户的需求与未来的挑战。公司坚信,在已建立的坚实基础上,JetBrains将在未来多年持续为开发者提供最优秀的工具。

30. Men hand over Bitcoins worth two billion euros to German federal police (www.spiegel.de)

德国萨克森州警方在一项调查中临时扣押了5万枚比特币。据州刑事警察局发言人向德新社证实,按周二价格计算,这些比特币价值约20亿欧元。调查显示,一名涉案嫌疑人已自愿将这笔虚拟货币移交给了德国联邦刑事警察局。

调查针对两名年龄分别为40岁和37岁的男子。根据州刑事警察局的信息,两人被怀疑在2013年5月底前共同运营一个“领先的德国”非法盗版网站,并用网站收入购买了比特币。具体指控涉及“涉嫌以营利为目的非法传播受版权保护作品(违反著作权法)以及后续的营利性洗钱”。

目前的调查由德累斯顿检察院、萨克森州刑事警察局及莱比锡财政局税务稽查部门牵头,并得到了德国联邦刑事警察局、美国联邦调查局以及慕尼黑一家IT鉴定公司的支持。州刑事警察局发言人表示,截至目前尚未提起诉讼。

州刑事警察局指出,这是德国执法机构迄今查获的最大规模比特币资产。其中一名嫌疑人已将比特币转入德国联邦刑事警察局的一个所谓“钱包”(即加密货币账户)。关于这批比特币的后续处置,目前尚未做出最终决定。

31. The C Bounded Model Checker: Criminally Underused (www.philipzucker.com)

CBMC(C有界模型检查器)概述与使用指南

定义与功能

CBMC 是一款自动静态验证工具,用于检测 C 程序中的错误。它通过有界模型检查技术,分析程序所有可能的执行路径,验证断言是否成立,并检测内存安全等问题。

安装方法

  • 建议从 GitHub 官方仓库下载最新版本(如 cbmc-5.95.1),而非使用系统旧版包。
  • Linux 系统可通过下载 .deb 文件安装:
    dpkg -i ubuntu-20.04-cbmc-5.95.1-Linux.deb

基本用法

  1. 验证断言
    编写包含 assert 的 C 程序,使用 cbmc <文件名> 检查断言是否可能失败。
  2. 跟踪执行
    添加 --trace 参数查看导致错误的具体值和执行路径。
  3. 启用检查
    默认仅检查 assert 语句。需通过标志启用其他检查,例如:
    • --bounds-check:数组越界
    • --pointer-check:指针错误
    • --signed-overflow-check:有符号整数溢出
    • 完整标志列表见输出示例。

示例与发现

  1. 未初始化变量
    即使程序编译运行正常,CBMC 可能发现未初始化变量在特定值下触发断言失败。
  2. 条件防护
    若断言位于条件判断内,且条件约束了变量范围,CBMC 可验证断言不会失败。
  3. 函数正确性
    例如验证 myabs 函数返回值是否非负时,CBMC 可能发现边界值(如 -9223372036854775808)导致溢出,揭示函数缺陷。
  4. 内存安全
    通过 --bounds-check 等标志,CBMC 可检测缓冲区溢出等常见内存错误。

技术特点

  • 循环处理
    采用展开循环的方式分析,可通过 --unwinding-assertions 标志确保覆盖所有迭代。
  • 比较验证
    支持验证程序间的等价性或安全性属性,例如通过构造“乘积程序”验证信息流安全。
  • 后端支持
    支持多种 SAT/SMT 求解器(如 MiniSAT)。

应用与资源

  • 实际应用
    Amazon 等公司已在大型 C 项目(如 s2n-tlscoreJSON)中使用 CBMC 进行验证。
  • 相关工具
    与 ESBMC(支持 C++ 和浮点数)、Klee(符号执行)、Frama-C 等工具功能类似,但侧重点不同。
  • 学习资源
    官方文档、教程仓库(如 cbmc-training)及示例项目(如 cbmc-starter-kit)可供参考。

局限性

  • 对大规模或复杂程序的可扩展性有限。
  • 需手动指定检查标志,无一键启用所有检查的选项。
  • 循环展开可能受迭代次数限制,需结合不变式注释提高覆盖率。
32. John Deere Announces Strategic Partnership with SpaceX (www.deere.com)

John Deere(迪尔公司)宣布与SpaceX达成战略合作,旨在通过卫星通信技术扩大对农民的农村连接覆盖。该合作将利用SpaceX的Starlink卫星网络,为面临蜂窝网络覆盖不足的农民提供先进的卫星通信服务,以充分支持精准农业技术的使用。这是行业内首次此类合作。

迪尔公司表示,连接性对农民的价值超越单一任务,它能解锁以往受限或无法实现的机会。例如,在极短的时间窗口内完成精确作业、协调多台机器及管理设备性能等,均需依赖可靠的连接来提升整体运营效率、生产力和盈利能力。

该卫星通信解决方案将通过卫星互联网服务和加固型卫星终端,连接新旧农业机械。这将全面支持自主作业、实时数据共享、远程诊断、增强型自修复及机器间通信等功能,帮助农民提高作业效率并减少停机时间。

迪尔公司首席技术官指出,公司此前已通过卫星定位技术引领农业设备行业超过二十年,此次合作将使卫星通信服务大规模应用于农场,让受蜂窝网络限制的农民也能充分发挥精准农业技术的价值。该方案旨在确保客户既能充分利用现有技术,也能适配未来的新创新。

具体实施方面,迪尔经销商将在兼容机器上安装加固型Starlink终端,并配备4G LTE JDLink调制解调器以连接至迪尔操作中心。该解决方案计划于2024年下半年在美国和巴西首先进行限量发布。

33. The Big Little Guide to Message Queues (2020) (sudhir.io)

消息队列核心概念指南 (2020) 摘要

什么是消息队列及其用途

消息队列是用于在系统间传输信息(数据、元数据或信号)的机制。其核心价值在于解耦:生产者无需关心消费者的身份、负载、地理位置或处理时机,反之亦然。这种解耦使得各系统可以独立开发、测试、扩展和维护。典型的应用场景包括服务间通信、事件驱动架构、以及需要削峰填谷、提高系统弹性的场景。

核心语义与交付保证

消息队列通常提供三种交付语义:

  • 至少一次:最常见且最可靠。消息会被重复发送直至被确认。消费者必须设计为幂等,以处理可能的重复消息(例如通过数据库事务记录消息ID)。
  • 最多一次:消息可能丢失,但绝不重复。适用于对丢失不敏感但重复会导致严重后果的场景(如状态路由)。
  • 精确一次:理论上的理想状态,但在分布式系统中难以完全实现。通常通过“至少一次”结合生产者、队列和消费者的全链路幂等性来模拟。

顺序性与并行性的权衡

  • FIFO(先进先出)队列:严格保证消息顺序。但代价是只能由单一消费者串行处理,限制了吞吐量和扩展性,且队列系统本身成本更高、容量更低。
  • 并行队列:支持多消费者并行处理,吞吐量高。顺序为“尽力而为”,通常不严格保证。适合大多数可容忍乱序或可通过消息设计(如时间戳、序列号)处理乱序的场景。

扇出与扇入模式

  • 扇出:一条消息发送给多个消费者。通常通过主题实现:生产者发布到主题,主题将消息复制到多个订阅的队列。
  • 扇入:多个生产者的消息汇集到一个消费者。消费者可订阅多个主题/队列。 现代消息系统(如AWS SNS+SQS)通过“主题-队列”组合轻松支持这两种模式。

毒消息与死信队列

无法被消费的消息(格式错误、内容非法)称为“毒消息”。消息队列通常提供死信队列功能:当消息多次消费失败后,自动转移到此特殊队列,便于告警和排查。消费者需加强输入验证和异常处理。

流行消息系统概览

系统 核心特点 顺序与并行 交付语义 备注
AWS SQS + SNS 全托管,SNS(主题)+ SQS(队列)集成良好。 SQS支持普通队列(并行)和FIFO队列(顺序,容量有限)。 至少一次。 无服务器,按使用付费,扩展性强。
Google Pub/Sub 全托管,主题与订阅(队列)集成。支持拉取和推送模式。 可通过排序键实现顺序性。 至少一次,提供消息重放能力。
Apache Kafka 高吞吐,分布式,基于分区。主题下的分区保证顺序。 顺序性在分区内保证。通过增加分区数实现并行扩展。 至少一次(可配置)。 运维复杂,适合大数据量场景。有托管服务可选。
RabbitMQ 开源,功能丰富,支持多种协议。 默认FIFO。 支持最多一次和至少一次。 可自行部署或使用托管服务。
Redis Streams 基于Redis的流式数据结构,轻量。 天然FIFO,通过消费者组实现多消费者。 至少一次(需配置确认)。 适合对顺序有严格要求的场景。
NSQ 去中心化,无单点故障。 默认无序。 至少一次(内存模式)。 节点自动发现,易部署。
NATS 高性能,支持主题广播和分布式队列。 队列模式下随机分配。 支持最多一次和至少一次(流模式)。 易于运行,支持复杂网络拓扑。

总结与选型建议

消息队列通过解耦提升系统灵活性,但引入其复杂性和维护成本。选择时需权衡:

  1. 语义保证:明确业务对顺序、重复和丢失的要求。
  2. 运维模式:全托管服务(AWS/GCP)简化运维,开源自建则提供更大灵活性和控制力。
  3. 系统特性:根据吞吐量、顺序需求、集群规模等选择合适系统。
  4. 云平台绑定:若深度使用某云平台,其原生服务通常是集成度最高的选择。 核心在于理解系统提供的语义保证,并围绕其设计应用程序(如实现幂等性)。
34. Prediction markets have an elections problem (asteriskmag.com)

预测市场的选举困境

预测市场(通过金融激励让人们正确预测事件)在政治预测中表现不佳,尤其在重大选举中。以2020年美国总统大选为例,尽管约瑟夫·拜登在11月7日已被各大媒体宣布获胜,但预测市场的相关合约价格在数周后仍停留在90%左右,未能迅速升至99-100%。一种看似合理的解释是,市场可能计入了特朗普法律挑战成功的约10%机会。然而,其他市场行为否定了这一解释:在预测选举人团胜差的市场上,大量赌注押在“特朗普赢280+选举人票”这一完全不可能的结果上,而非符合“法律挑战可能成功”的合理情景。

多项学术研究证实了政治预测市场的低效性。研究发现,这些市场存在套利机会、过度高估低概率事件(小赔率偏差),且吸收新信息的速度缓慢。即便在2022年美国中期选举中(没有特朗普的干扰),预测市场的表现也逊色于专家预测模型(如FiveThirtyEight),甚至未能复制已公开且校准良好的专家预测,反而增添了负价值。

市场失灵的原因可归结为技术因素与心理因素。技术因素包括:交易量低、参与者少、手续费高、投资上限、资金时间价值扭曲以及法律限制(如美国商品期货交易委员会拒绝批准对政治竞赛的实体货币投注)。这些因素在政治市场中影响尤为显著。

然而,更深层的原因是心理和身份政治的影响。政治认同是现代人最强的身份来源之一,人们强烈忠诚于所属党派或政治标签。研究表明,体育迷对支持球队的预测准确性较低,因为他们过度高估了球队的胜率;投注行为常被视为表达忠诚,而非追求理性收益。这一效应在政治领域更为强烈。

因此,政治预测市场涌入了大量“愚蠢资金”——这些资金并非基于理性分析,而是身份认同的表达。这解释了特朗普、杨安泽、维韦克·拉马斯瓦米等拥有高热情在线支持者的候选人,其赔率常被高估的现象。它也解释了为何国家级市场与州级市场预测脱节:身份驱动的投注集中在高曝光度的国家级市场,扭曲了价格;而关注度较低的州级市场则被更理性的投注者主导,其聚合结果更能反映现实。

最终,市场的“聪明钱驱逐愚蠢钱”机制在政治预测市场中失效。与传统金融市场不同,政治预测市场缺乏对冲基金、亿万富翁等机构性“聪明钱”的大规模参与,而身份驱动的“愚蠢资金”规模庞大且情绪高涨,导致价格被非理性力量主导,如同GameStop等“迷因股票”所展现的状况。

总之,预测市场在政治预测中表现出可证实的低效、基于政治身份的偏差,且无法超越可及的专家分析。这并非要否定预测市场作为工具的前景,而是强调必须严肃对待其市场结构设计,确保提供正确的激励,尤其是在处理涉及强烈身份认同的议题时。

35. Dynamouse: Mouse driver for Mac studios (github.com)

Dynamouse: Mac工作室专用鼠标驱动

Dynamouse 是一款专为 Mac 系统设计的驱动程序,旨在解决多显示器、多鼠标工作站环境下的光标控制问题。它允许用户将每个物理鼠标设备(包括 MacBook 内置触控板)指定分配给特定的显示器,从而在多个屏幕相距较远的复杂设置中,无需将鼠标拖拽到另一屏幕即可直接控制。

核心功能与特性

  • 多设备映射:支持将无限数量的鼠标和显示器相互分配,也可将多个鼠标分配给同一显示器。
  • 系统托盘运行:仅在菜单栏显示,不在 Dock 中占用位置。
  • 灵活控制:可将特定鼠标设置为“不受控”状态,即不被 Dynamouse 管理。
  • 位置记忆:为每个鼠标记住其在每个屏幕上的光标位置。
  • 非强制约束:不锁定鼠标在屏幕边界内,用户仍可主动将鼠标拖拽至其他屏幕。
  • 自动启动:支持配置开机登录时自动启动。
  • 热插拔支持:能够处理 USB 设备的连接与断开。
  • 启动延迟:可设置启动延迟,以等待其他设备在登录后完成初始化。

系统要求与设置

软件首次启动时,会要求用户在“系统偏好设置”中授予辅助功能权限,以便监听指针设备并控制屏幕光标位置。此权限是软件正常运行的必要条件。

已测试设备

已验证兼容的设备包括:

  • Corsair HARPOON RGB 有线游戏鼠标
  • Corsair HARPOON 无线 RGB 游戏鼠标
  • Apple 妙控板 (MMMP3AM/A)
  • M1 MacBook 内置触控板

故障排除

  • 日志记录:可启用文件日志,记录在 ~/Library/Logs/@projectstorm/Dynamouse 目录下,便于问题提交。
  • 启动项更新:Mac 的启动项会使用安装时的二进制文件。更新软件后,建议先禁用再重新启用启动模式以加载新版本。
  • 权限重置:跨版本更新后,可能需要移除并重新添加 Dynamouse 的辅助功能权限(1.0.0 版本后此问题已减少)。

开发与发布

开发流程基于 pnpm:执行 pnpm install 安装依赖,pnpm watch 用于监听变化,pnpm start 启动。发布流程为自动化,当新标签推送至 master 分支时,会自动创建二进制文件并发布新版本。

36. Lessons from history's greatest R&D labs (www.answer.ai)

历史伟大研发实验室的经验教训

文章围绕新兴应用研发实验室 Answer.AI 的计划展开,通过分析历史上成功的研发实验室案例,总结了对 Answer.AI 的启示、经验法则及潜在陷阱。

Answer.AI 的定位与愿景

  • 应用导向:不同于追求通用人工智能(AGI)的实验室(如 OpenAI、Anthropic),Answer.AI 专注于利用现有基础模型开发实际应用,解决被大实验室忽视的“小而重要”的问题。
  • 规模与成本:初期融资仅 1000 万美元,远低于同类实验室,且计划保持小规模、精锐的团队。
  • 灵感来源:受爱迪生门洛帕克实验室及早期电气研究启发,将当前 AI 领域类比为 19 世纪电气化初期,强调通过系统性工程将技术潜力转化为实际应用。
  • 组织形式:虽为法律上的公司,但更接近“实验室”,追求长期高风险研究,而非短期盈利。投资者理解其本质,创始人保留决策权。

从爱迪生实验室学到的经验

  • 系统性工程:爱迪生并非仅发明单一产品,而是构建完整的系统(如电力分配网络),解决从发电到用户端的上百个技术问题。
  • 注重实用与实验:爱迪生以市场需求为导向,在研发早期就考虑制造性和商业可行性,坚信实验优于理论,通过海量试验迭代改进(如灯丝材料、地下布线)。
  • 团队扩展:实验室是爱迪生个人的“延伸”,招聘注重执行力而非顶尖学历,资源随其注意力转移。
  • 启示:适用于 Answer.AI 的宏大项目,需具备技术愿景、系统化思维和坚韧的实验文化。

从通用电气(GE)研究实验室学到的经验

  • 多样化项目管理:同时推进多个相关项目,旨在改进现有产品和生产工艺。
  • 人才运用
    • 应用型研究者(如柯立芝):兼具理论知识与实践技能,通过实验驱动解决具体问题(如钨丝灯泡)。
    • 基础研究者(如兰米尔):给予“长缰绳窄围栏”的自由——可在应用问题范围内自主探索好奇现象,最终既解决实际问题(灯泡黑化)又开拓新领域(表面化学)。
  • 启示:为 Answer.AI 提供平衡基础与应用研究的方法,尤其是如何有效部署不同专长的研究人员。

其他实验室的关键经验

  1. BBN 与 CMU 自动驾驶团队:平衡创新性与实用性。
    • BBN:作为“学术与商业的中间地带”,吸引顶尖人才,以小团队推动前沿技术(如 ARPAnet)。
    • CMU:采用类似公司的项目管理,同时结合学术激励(如将研究作为学位论文),促进技术整合与创新。
  2. 贝尔实验室:问题选择的艺术。
    • 通过系统工程师将多领域知识(技术、制造、成本)结合,识别高价值研究问题,确保资源投入最优方向。
  3. 思考机器公司的教训:投资者目标不一致
    • 技术成功但商业模式失败,因与部分投资者(如 DARPA)目标一致,而与私募投资者追求利润的目标冲突,导致战略摇摆。

复制历史实验室模式的挑战

  • 学术界:受传统结构(如教授自治、资金分散、论文导向)束缚,难以采纳更集中、目标驱动的模式(如“康普顿模型”)。
  • 企业界:受短期财报压力和股东预期影响,难以坚持长期高风险研发。
  • 历史消逝:20 世纪七八十年代的经济衰退、短视管理趋势导致工业实验室衰落,相关运营知识流失。

结论:走自己的路

Answer.AI 无需与学术界或企业研发部门竞争其“必做”项目,而应利用历史验证但已被遗忘的模式,专注于未被充分探索的应用研究领域。若其小规模实验成功,可能激励更多人复兴历史上的高效研发模式。

37. A mistakenly published password exposed Mercedes-Benz source code (techcrunch.com)

梅赛德斯-奔驰源代码泄露事件摘要

事件概述

安全研究公司RedHunt Labs于2024年1月例行扫描时发现,梅赛德斯-奔驰的一名员工将GitHub认证令牌(相当于密码)错误地发布到了一个公开的GitHub仓库中。该令牌于2023年9月底被发布,并一直暴露至被发现。

泄露详情与风险

  • 访问权限:该令牌授予了对梅赛德斯内部GitHub企业服务器的**“无限制且不受监控”** 的访问权限。
  • 暴露数据:攻击者可利用此令牌下载公司私有源代码仓库,其中包含:
    • 大量知识产权(源代码)。
    • 云服务密钥(如Microsoft Azure、AWS的密钥)。
    • 数据库连接字符串(包括一个Postgres数据库)。
    • 设计蓝图、文档、单点登录(SSO)密码、API密钥等关键内部信息
  • 未知风险:目前不清楚泄露的数据中是否包含客户信息,也不确定除研究人员外是否有第三方成功访问了这些数据。梅赛德斯拒绝透露公司是否拥有技术能力(如访问日志)来检测不当访问。

后续处理

  • 披露与响应:TechCrunch于2024年1月22日(周一) 向梅赛德斯报告了此安全问题。公司于1月24日(周三) 确认已撤销相关API令牌删除公开仓库
  • 官方声明:梅赛德斯发言人Katja Liesenfeld将此次事件归因于**“人为错误”**,并强调安全是公司的首要任务之一。公司表示将按常规流程分析此事件,并实施补救措施。

背景信息

  • 此次事件由RedHunt Labs的联合创始人兼首席技术官Shubham Mittal发现并向TechCrunch披露。
  • 近期汽车行业网络安全事件频发,文章同时提及现代汽车印度子公司上周也刚刚修复了一个暴露客户个人数据的漏洞。
38. Quickemu: Quickly run optimised Windows, macOS and Linux virtual machines (github.com)

Quickemu 是一个 QEMU 的封装工具,旨在简化创建和运行优化的 Windows、macOS 及 Linux 虚拟机的过程,无需复杂的配置。其主要特点和功能如下:

核心组件与工作原理

  • quickget:自动从上游下载所需操作系统的镜像文件,并生成相应的虚拟机配置文件。
  • quickemu:分析用户硬件,使用 quickget 生成的配置文件,以最优化配置启动虚拟机。
  • 用户只需选择想要运行的操作系统,其余工作由 Quickemu 自动完成。

项目起源与支持范围

  • 初衷:最初旨在快速测试 Linux 发行版,虚拟机及其配置可存储在任意位置(如外部USB存储器或用户主目录),且运行虚拟机无需提升权限。
  • 当前支持:已扩展至全面支持 macOS、Windows、多种 BSD 系统,以及众多非 Linux 操作系统,如 FreeDOS、Haiku、KolibriOS、OpenIndiana、ReactOS 等,总计支持近 1000 种操作系统版本。

主要功能特性

  • 主机支持:Linux 和 macOS。
  • 客户机系统支持
    • macOS:从 Mojave 到 Sequoia 多个版本。
    • Windows:10、11(含 TPM 2.0)及多个服务器版本。
    • ARM64 客户机:支持在 ARM 主机上原生运行,或在 x86_64 主机上模拟运行。
    • Ubuntu 及其所有官方衍生版。
  • 共享与集成
    • 完整的 SPICE 支持,包括主客机剪贴板共享。
    • 多种文件共享方式:VirtIO-WebDAVd(Linux/Windows)、VirtIO-9p(Linux/macOS)、Samba(若主机安装 smbd)。
    • QEMU Guest Agent 支持。
  • 性能与设备
    • VirGL 加速。
    • USB 设备直通。
    • 智能卡直通。
    • 全双工音频。
    • 布拉耶盲文支持。
  • 启动与网络
    • 支持 EFI(含或不含安全启动)和传统 BIOS 启动。
    • 自动 SSH 端口转发至客户机。
    • 网络端口转发。

快速开始

  1. 获取系统与配置:运行命令 quickget <操作系统名称>。 示例:quickget nixos unstable minimal
  2. 启动虚拟机:运行命令 quickemu --vm <生成的配置文件>。 示例:quickemu --vm nixos-unstable-minimal.conf。 运行不带参数的 quickget 可查看所有支持的操作系统列表。

文档与资源 项目提供详细的 Wiki 文档,涵盖安装指南、创建各类虚拟机的步骤、高级配置、可选前端界面以及参考资料。

39. A confusing probability question: Red and green balls in an urn (colab.research.google.com)

摘要: 本文围绕一个令人困惑的概率问题展开,涉及瓮中的红球和绿球。主题可能探讨概率计算中的悖论或常见误解,例如条件概率、贝叶斯定理或抽样问题的应用。内容结构预计包括问题介绍、数学模型分析、计算步骤和结论性解释。关键功能在于通过具体实例澄清概率概念,帮助读者理解如何避免在实际应用中出错,增强逻辑推理能力。整体旨在提供教育性指导,适用于概率学习或教学场景。

40. The first human received an implant from Neuralink yesterday (twitter.com)

总结:

  • 内容概述: 该内容是一个网站错误消息,指示用户在访问时遇到问题,并提供了可能的原因和解决方法。

  • 关键信息:

    • 错误原因: 消息推测问题可能由隐私相关扩展引起,导致与网站(如x.com)的冲突。
    • 解决建议: 建议用户禁用这些隐私扩展后重新尝试访问。
  • 目的: 消息旨在帮助用户诊断和解决技术障碍,以恢复网站的正常功能。

42. Darknetlive Sold to Incognito Market (darkdot.com)

文章摘要

核心事件: 2022年11月,暗网毒品市场 Incognito Market 收购了知名暗网新闻站点 Darknetlive。收购后,该网站被用于压制批评、操纵公众认知,以利于Incognito Market。

背景与影响

  1. 历史角色:Darknetlive自2018年上线以来,一直是少数能对Tor隐藏服务(即“暗网”)进行公正报道、及时预警诈骗行为的新闻源。
  2. 转变:收购后,网站未再发布任何关于Incognito Market自身问题的警告,其原有的监督功能丧失。
  3. 类比担忧:此举被视为2019年美国FBI查封另一主要暗网新闻站DeepDotWeb事件的重演,DeepDotWeb被查封后所有文章被移除,导致集体记忆消失。Darknetlive的易主被视为其最终也将面临被政府查封命运的先兆。

行业困境

  • 新闻真空:如今愿意报道暗网安全议题的记者极少,主流媒体对暗网社区事件关注不足,导致诈骗和虚假信息难以曝光。
  • 监控环境:稀少的独立新闻报道为激进的监控技术滥用提供了便利。西方政府擅长查封Tor隐藏服务,其具体技术手段未公开,对记者和吹哨人构成风险。

所有者的集中化危险

  • 收购方Pharoah(Incognito市场管理员)已控制包括Darknetlive在内的多个关键暗网站点(如Libre、Sector等),形成了前所未有的中心化网络。
  • 作者认为,这种中心化极其危险,因为一旦某一节点被政府针对或发起者进行诈骗,整个网络都可能崩溃。Pharoah快速重建了Darknetlive网站,展现其技术能力,但中心化策略注定了其资产最终将被查封或在诈骗中消失的结局。

结论

  • 文章预测Darknetlive.com终将消失,这对希望暗网保持黑暗的势力是胜利,而对用户安全则是损失。
  • 原管理员DNL1对暗网安全的贡献可能随之被遗忘。
  • Incognito市场近期已出现加密货币提现和存款不稳定的现象,作者暗示其可能面临问题。
  • Darkdot团队已备份Darknetlive原始网站,并承诺在Pharoah的“狭隘天才”不可避免地崩溃后重新发布。
44. Penn Jillette wants to talk it all out (www.cracked.com)

Penn Jillette 是一位著名的魔术师与喜剧演员,作为“Penn & Teller”组合的一员而广为人知。他涉猎广泛,包括书籍写作、表演及政治评论。本次采访中,他深入探讨了个人经历、当前社会议题以及对艺术与政治的看法。

个人背景与影响

  • 他是鲍勃·迪伦的忠实粉丝,办公室内挂着迪伦电影《Renaldo and Clara》的海报。
  • 他将迪伦视为英雄,认为迪伦对他的世界观有深刻影响。
  • 他的职业生涯涉猎魔术、喜剧、写作和电视节目(如《Penn & Teller: Fool Us》)。

对艺术与科技的看法

  • 人工智能(AI):他不担心AI取代艺术家,认为历史上每项新技术都曾引发类似恐慌。但他指出,科学家朋友对AI在关键领域(如空中交通管制)的应用表示担忧。
  • 魔术的本质:他认为现场魔术是一种“娱乐知识论”,探索人们如何确定真相,它依赖于共享的现实(如重力、时间)。

对社会与政治的观察

  • 主要担忧:他担忧社会通过将仇恨、愤怒和攻击性货币化而遭到破坏,认为这是当前政治极化和错误信息泛滥的根源之一。
  • 政治立场转变:他长期自称自由主义者,但在新冠疫情期间因收到参加反口罩示威的邀请而彻底放弃该标签,认为这暴露了自由主义立场的问题。他现在投票给民主党,并认为特朗普及其MAGA运动可能对美国构成根本性威胁。
  • 对特朗普的批评:他指出特朗普缺乏幽默感和同理心,并认为特朗普“交易中必有赢家和输家”的观点是反美国和反资本主义的。
  • 国际冲突与身份认同:他评论了以色列-哈马斯冲突,认为拜登总统处境艰难。他分享了自己在犹太文化认同上的困惑,并反思了自己作为白人男性在种族、反犹太主义等议题上因缺乏亲身经历而应有的谦逊。

对当前世界的看法

  • 共享现实的崩塌:他认为人类历史上首次出现缺乏共享现实的情况,即使是在错误的现实之上。
  • 乐观与隐忧:尽管存在全球变暖和政治风险等重大威胁,但各种衡量指标(如饥荒减少、教育普及)显示世界正在进步。

职业观与遗产

  • 雄心与成就:他认为自己的雄心相对适度,目标一直是像父亲一样以热爱之事谋生。成功远超预期。
  • 遗产观:他反感谈论“遗产”或“未来”,认为自己的工作是创造短暂的“遗迹”,如同现场表演。他推崇迪伦作为“歌舞艺人”的心态——专注于当下的一场场演出,而非不朽之作。

此次访谈展现了Jillette作为一位持续思考者与提问者的形象,他乐于通过对话检验和修正自己的观点,并坚守现场表演所代表的共享现实与真实性。

47. Launch HN: Dashdive (YC W23) – Track your cloud costs precisely
49. Building a USB to Mac ADB keyboard adapter (paperstack.com)

构建USB转Mac ADB键盘适配器

本文介绍了作者为将经典的Apple Extended Keyboard II连接到现代USB Mac电脑而构建自制适配器的过程。

项目背景与动机

作者因工作需要使用Mac电脑,但更偏爱Linux系统。为了结合复古计算爱好,他选择了1990年代初的Macintosh Extended Keyboard II。由于该键盘使用苹果专有的ADB(Apple Desktop Bus) 接口,而现代Mac仅支持USB,因此需要一个适配器。作者决定自行构建,而非购买商用产品。

技术方案与核心组件

项目基于开源QMK固件,该项目虽常用于定制键盘,但也包含ADB转USB的适配器代码。

  • 硬件:采用廉价的Pro Micro兼容开发板(基于ATmega32U4微控制器)、一个1kΩ(作者实际可能使用了4.7kΩ)电阻以及一个ADB 4针DIN连接器。
  • 电路连接:遵循QMK文档的接线图,将ADB的DATA、VCC、GND和Power SW引脚通过电阻连接至开发板。关键注意事项:QMK文档中的PD0引脚对应开发板的D3引脚

制作与烧录过程

  1. 硬件组装:在洞洞板上焊接电路,组件极少。
  2. 固件安装:作者指出适配器专用的README说明已过时,应遵循QMK主文档。
    • 安装QMK工具:python3 -m pip install --user qmk,并设置PATH环境变量。
    • 运行qmk setup安装所有依赖。
    • 在QMK仓库根目录编译适配器固件:qmk compile -kb converter/adb_usb -km default
    • 烧录至微控制器:qmk flash converter_adb_usb_rev1_default.hex
    • 重要经验:使用质量可靠的USB线缆,劣质线缆会导致烧录失败。
  3. 外壳制作:作者使用Tinkercad设计、Cura切片并用Ender 3 Pro 3D打印机制作了一个外壳来容纳电路板。尽管对外壳尺寸与焊接后的线缆长度略有遗憾,但整体适配良好。

成果与社区反响

  • 成果:适配器成功工作,在系统USB设备列表中显示为“QMK ADB to USB Keyboard Converter”。作者已将其连接并使用。
  • 后续问题:尚未解决功能键映射的问题;且作者个人发现,实际上更喜欢现代外接键盘的手感。
  • Hacker News讨论:文章引发了关注,社区指出了标题易产生误解(误以为是USB键盘转ADB),并补充了相关历史背景(ADB早于PS/2)。许多用户提供了替代项目现成商用适配器建议,例如:
    • 支持反向转换(USB键盘接ADB Mac)的项目。
    • 适用于更老型号Mac的适配器。
    • Griffin iMate、Drakware、TinkerBoy、Wombat等商用ADB转USB适配器。

总结

该项目是一个成功的、材料成本较低的复古计算机接口转换DIY项目,展示了如何利用QMK开源生态将老式ADB外设接入现代系统。整个过程涉及硬件焊接、开源固件编译烧录及3D打印外壳制作,并为爱好者社区贡献了实践经验。

50. How to Build an Origami Computer (www.quantamagazine.org)

这篇文章介绍了两位数学家证明折纸具有“图灵完备性”的研究,这意味着折纸在理论上可以执行任何可能的计算。研究由康奈尔大学的 Inna Zakharevich 和富兰克林与马歇尔学院的 Thomas Hull 于2023年9月完成。

文章首先回顾了通用计算的概念起源,从艾伦·图灵的“图灵机”到扫雷游戏、康威的“生命游戏”等看似不实用的计算方案,这些都被证明是图灵完备的。Zakharevich 在观看解释“生命游戏”图灵完备性的视频后,推测更复杂的折纸也应该具备此性质,并联系了专业研究折纸数学的 Hull 进行合作。

证明的核心是设计一套将计算输入、输出和逻辑运算(如 AND、OR)编码为纸张折叠的方法。他们使用“折痕图案”来指定折叠位置,其中纸褶的折叠方向代表真或假的输入/输出值。通过设计特定的“装置”(复杂的折痕组合)来模拟逻辑门。他们最终发现,仅需使用 AND、OR、NAND 和 NOR 四种逻辑门,并通过编码一维版的“生命游戏”这一已知的图灵完备系统,成功证明了折纸的图灵完备性。研究中最具挑战性的部分是设计出能够正确整合这些逻辑门并避免信号干扰的连接装置。

研究者强调,一个实际的折纸计算机将极其低效和不实用,需要巨大的纸张和漫长的时间。但在原理上,如果条件充足,它可以执行任意复杂的计算。文章最后指出,折纸数学正从被视作“有趣但无用”的领域,发展到在工程中具有实际应用价值,例如用于设计可折叠的太空太阳能板、医疗支架和水下机器人等,这凸显了折纸与数学及工程学之间日益加深的联系。