2024-11-12

39 篇热帖

1. I Don't Have Spotify (github.com)

IDHS (I Don't Have Spotify) 工具总结

核心功能

IDHS 是一个跨流媒体平台的链接转换工具。用户只需复制来自任一支持平台的链接(如 Spotify、Apple Music 等),粘贴到 IDHS 的搜索栏,即可获取该内容在其他所有支持平台上的对应链接。若原链接来自 Spotify,还可能提供音频预览以便确认。

注意:目前仅支持单个曲目、专辑、艺人和播客,不支持播放列表。

支持的流媒体服务

下表列出了 IDHS 的“适配器”(即支持转换的平台)及其功能特性:

适配器 反向搜索 使用官方API 验证链接
Spotify
Tidal
YouTube Music
Apple Music
Deezer
SoundCloud
Qobuz
Bandcamp
Pandora

技术架构

系统主要由两部分组成:解析器适配器,采用模块化设计。

  1. 解析器

    • 作用:识别传入链接的来源平台,并从链接中提取标准化的元数据(如标题、描述、类型、图片、可选的音频预览)。
    • 输出:基于提取的元数据,构建一个规范化的搜索查询字符串。例如,一个 Spotify 链接会被解析以获取 Open Graph 元数据并生成代表该曲目/专辑/艺人/节目/单集的查询。
  2. 适配器

    • 作用:接收解析器生成的标准化查询,并为每个目标平台(如 Spotify、YouTube Music 等)生成对应的链接。
    • 工作流程:每个适配器负责使用标准化的查询,在其对应平台上执行搜索(通过官方 API 或基于 HTML 的搜索)。随后返回一个包含类型、URL 以及 isVerified(是否为验证链接)、notAvailable(是否可用)等标志的结果。当平台提供可靠的匹配信号时,系统会优先返回“已验证”的链接。

关键说明:该系统通过公共搜索引擎或官方 API(如 Apple Music、YouTube、SoundCloud)进行搜索,并选择看似最相关的结果。无法保证返回的链接一定是用户想要的精确曲目,甚至可能不是一首歌。设计时要求保持请求速度快,并避免使用暴力重试以防触发速率限制。

可用形式与源码

  • Web 应用:在线版本。
  • 扩展程序:提供 Raycast 扩展。
  • 源代码:托管于 GitHub (raycast/extensions/tree/main/extensions/idonthavespotify)。

本地部署与配置

  1. 环境变量:需要在 .env 文件中配置以下变量(具体获取方式见说明):

    • TIDAL_CLIENT_IDTIDAL_CLIENT_SECRET:从 TIDAL 开发者门户获取。
    • YOUTUBE_API_KEY:从 Google 开发者控制台获取。
    • Spotify 认证说明:由于 Spotify 自2026年3月起限制了其 Web API,该项目不使用官方开发者 API,而是通过模拟 Spotify 网页播放器,提取一个基于 TOTP 认证的匿名访问令牌。该令牌会自动刷新(约1小时有效期),无需开发者账户。
    • URL_SHORTENER_API_KEY:如需运行 URL 缩短服务,需配置此变量(值需与 docker-compose.yml 中一致)。
  2. 启动应用

    • 使用 Docker Compose 启动服务:docker compose up -d
    • 安装依赖:bun install
    • 启动开发服务器:bun dev

其他信息

  • 项目欢迎贡献代码,可通过提交 PR 参与。
  • 工具图标由 deepai.orgtext2img 模型生成。
2. Visualizing World War II (nathangoldwag.wordpress.com)

这篇文章探讨了报纸在二战期间使用的历史地图,作为帮助公众理解这场全球冲突的视觉工具。这些地图不仅展示了地理和军事形势,还反映了当时的视角、宣传策略和对新战争形态的认知。

核心主题与目的: 文章强调,这些报纸地图是历史记录和大众传播的独特结合。它们旨在向普通读者解释复杂的全球战略,同时体现了战时的不确定性、宣传意图以及公众对信息的渴求。作者认为,这些地图如何描绘世界,能揭示当时人们的观点和对战争的理解。

关键地图与分析:

  1. 早期战争与不确定性

    • 1939年9月《洛杉矶时报》的地图展示了战争初期的状况,当时苏联、意大利和巴尔干国家仍保持中立。地图详细标注了铁路、海运路线、海军基地等,试图预测可能的冲突形式,并指示读者如何保存以追踪战况。作者指出,地图甚至遗漏了爱沙尼亚。
  2. 战前德国扩张与宣传

    • 一幅1939年5月的地图展示了德国在吞并奥地利、占领捷克斯洛伐克后的领土,并特别标注了斯洛伐克的独立和喀尔巴阡乌克兰被割让给匈牙利。来源是纽约的德国信息图书馆,这是一个旨在影响美国公众舆论的纳粹宣传机构,它将德国的扩张成就与美国得克萨斯州的规模进行对比。
  3. 预警与推测性地图

    • 1937年《洛杉矶观察家报》的地图推测了美国若在另一场世界大战中战败的后果,但未指明具体敌人,反映了战前对敌人联盟尚未明确的想象。
    • 1940年6月《旧金山观察家报》的地图分析了意大利在地中海的战略野心,正确预见了墨索里尼的目标,并突出了利比亚-西西里岛补给线和马耳他等关键点。
  4. 战争中期与全球视角

    • 珍珠港事件后,《芝加哥每日论坛报》的地图回顾了日本帝国过去五十年的扩张史,揭示了其长期动态。
    • “俄罗斯战争救援”组织的地图通过将德国占领的苏联领土“投射”到美国东海岸,试图让美国人切身感受苏联所遭受的破坏规模。
  5. 新兴战争领域与公众关注

    • 一幅世界地图专注于全球航空路线,反映了当时人们对制空权这一新战争领域的关注和恐惧。
    • 1941年《兰开斯特情报报》的地图探讨了德国入侵英国(“海狮计划”)的可能性,表明当时对这一问题的真实担忧。
  6. 战争记录与局限

    • 1940年德国入侵西欧当日(5月10日)的一幅地图,展示了报纸如何即时报道战略态势的剧变。
    • 1942年盟军“火炬行动”(北非登陆)的详细地图,既体现了报纸如何帮助后方家人追踪前线亲人,也显示了其信息的局限性——其中包含了关于自由法国军队穿越撒哈拉沙漠的虚构推进路线。
  7. 宏观历史视角

    • 一幅“十年变迁图”发布于1939年11月,但以1930年代全球动荡为背景(如西班牙内战、意大利入侵埃塞俄比亚、日本侵华等),展示了二战爆发前的长期地缘政治裂痕。

结论: 这些地图共同证明,在电视普及之前,报纸地图是公众理解一场复杂全球战争的重要视觉和认知工具。它们不仅是军事地理的描绘,更是战时宣传、新闻报道、公众焦虑和历史感知的珍贵载体,让我们看到身处历史中的人们如何努力把握并想象他们所生活的世界。

3. What I wish someone told me about Postgres (challahscript.com)

PostgreSQL 使用心得总结

数据规范化建议

  • 原则:除非有充分理由,否则应进行数据库规范化,即消除数据冗余。例如,用户邮箱不应存储在documents表中,而应通过外键关联到users表。
  • 反规范化场景:为提高读取性能(如缓存计算结果),可在数据库内或外部缓存层(如Redis)反规范化,但需承担数据不一致或写入复杂度增加的成本。

遵循 PostgreSQL 官方建议

  • 参考官方 Wiki 的“Don't do this”列表,关键建议包括:
    • 文本存储:统一使用 text 类型。
    • 时间戳存储:统一使用 timestamptz(带时区)类型。
    • 表命名:采用 snake_case 格式。

SQL 语法特殊性

  • 关键字大小写:SQL 关键字(如 SELECTWHERE)不区分大小写,可全小写书写以减轻打字负担。
  • NULL 的行为
    • NULL 表示“未知”,大多数与 NULL 的比较结果仍为 NULL
    • 使用 IS NULLIS NOT NULLIS DISTINCT FROM 等操作符处理 NULL
    • WHERE 子句仅匹配条件为 TRUE 的行,因此 NULL 行不会被匹配。
    • 函数 COALESCE 可返回第一个非 NULL 的参数。

优化 psql 命令行工具

  • 改善输出可读性
    • 启用分页器(如 less -S)处理长输出。
    • 使用 \x\pset expanded 切换至扩展显示模式。
    • \pset null '[NULL]' 明确标识 NULL 值。
  • 实用功能
    • 自动补全:输入关键词或表名后按 Tab 补全。
    • 快捷命令:如 \d 查看关系列表,\d table_name 查看表结构,\e 编辑查询,\h 获取语法帮助。
    • 导出 CSV:使用 \copy (SELECT...) TO 'file.csv' CSV HEADER 将查询结果导出为 CSV。

索引使用注意事项

  • 工作原理:索引(尤其是 B-tree)加速数据查找,但 Postgres 根据统计信息决定是否使用索引(可能选择顺序扫描)。
  • 局限性
    • 小表上索引可能无效。
    • 多列索引:列顺序很重要。索引 (a, b) 可优化 WHERE a=1 AND b=2,但对 WHERE b=5 优化有限。
    • 前缀匹配:若需用 LIKE 'prefix%' 查询,应使用 text_pattern_ops 操作符类创建索引。
  • 分析工具:使用 EXPLAIN 查看查询计划,辅助工具可帮助理解输出。

锁机制与并发问题

  • 锁类型:Postgres 提供多种锁模式(如 ACCESS SHAREROW EXCLUSIVEACCESS EXCLUSIVE),不同操作获取的锁可能冲突。
  • 潜在问题
    • 长时锁阻塞:长时间运行的 ALTER TABLE 语句(如添加非空默认列、改类型)会阻塞其他查询,导致应用超时。
    • 事务持锁:未及时提交的事务会持续持有锁,阻塞其他操作。应避免事务长时间闲置。

JSONB 的优缺点

  • 优势:提供灵活的 JSON 存储与查询,兼具文档数据库特性。
  • 缺点
    • 性能:可能比规范列慢,因缺乏统计信息。
    • 自文档性:缺乏固定模式,数据结构需外部约束。
    • 类型处理:比较操作需注意类型匹配,如 data['brand'] = '"JanSport"' 或使用 ->> 运算符提取为文本。
    • 函数复杂:JSONB 专用运算符和函数较多,记忆成本高。
4. The EdTech Revolution Has Failed (www.afterbabel.com)

教育科技革命已宣告失败。尽管全球学校自2010年代初开始广泛推行“一生一设备”政策,但经合组织(OECD)的审查表明,大多数教育科技并未实现其承诺的学业提升。相反,全球数学、科学和阅读测试成绩自同期开始持续下滑。

大量研究数据揭示了教育科技的负面效应:

  • OECD报告指出,在学校经常使用电脑的学生在大多数学习成果上表现更差,且技术未能缩小学生间的差距。
  • J-PAL全球研究中心在审查126项研究后得出结论:扩大电脑接触面并未改善K-12年级成绩,在线课程比面对面课程的成绩更低
  • 元分析显示,教育科技在数学、读写等领域的效应值(ES)普遍低于0.4这一教育基准阈值,仅在特定学习需求领域(ES=0.61)显示显著益处。

认知科学揭示了关键问题根源:数字设备本质上是“干扰机器”。人脑一次只能处理一个任务规则集,而学生使用数字设备时80%以上的时间用于游戏、社交媒体等多任务切换。这种切换会:

  1. 消耗时间:每次切换约需0.15秒,导致学习进程减慢。
  2. 降低准确度:规则冲突引发错误。
  3. 损害记忆:记忆更多由与反射相关的纹状体处理,形成难以应用的潜意识记忆。

常见的辩护理由缺乏说服力

  • “潜力论”:承认了当前未实现理想效果,不能作为大规模变革的依据。
  • “普遍性论”:混淆了“教授数字技能”(课程)与“通过数字设备教授所有学科”(教学法)。工具应根据学习目标选择,而非仅因普及而强推。
  • “使用不当论”:即使正确使用,数字工具也未必优于传统方法。增加学习时间即可提升成绩,但这并非数字设备的必然结果。

教育科技仅在有限情境下有价值

  1. 教师主导的教学:教师受控使用工具可避免学生分心。
  2. 弥补学习中断:当因灾害、疾病等导致无法面授时,可作为替代方案。
  3. 支持特定学习障碍:为无法使用非数字材料的学生提供替代途径。

目前,瑞典等欧洲及东南亚国家正减少教室中学生使用的数字设备。作者认为,基于现有证据,美国学校也应认真考虑类似转向,以改善学生的学习效果、人际关系、心理健康和身体健康。

5. YubiKey still selling old stock with vulnerable firmware
6. The death and life of prediction markets at Google (asteriskmag.com)

谷歌在二十年间运营了两个内部预测市场:2005年的Prophit和2020年的Gleangen。Prophit初期约有20%的员工参与,能对内部目标和竞争对手动向做出准确预测,但因其设计初衷是作为对外产品,且面临在线赌博合法性等监管障碍,在2010年外部发布失败后逐渐萎缩,于2011年关闭。核心团队成员事后反思,认为不应仅将其视为对外产品的跳板,而应作为独立的内部工具运营。

2020年疫情期间,作者在谷歌内部重新启动了预测市场Gleangen。尽管最初仅靠“20%时间”维持,但其参与者数量(约15,000人)和活跃度远超Prophit。Gleangen在预测疫情相关政策、办公安排等方面展示了价值,并与多个业务部门合作,尝试预测大型语言模型进展、数据中心成本等战略问题。

然而,Gleangen在将预测结果转化为管理决策支持方面面临挑战。文章指出,预测市场成功的关键在于其产出的信息价值大于运营成本。内部预测常受数据共享限制、管理层回避责任风险以及流程整合难度等因素制约。相比之下,预测竞争对手动向的障碍较小。

Gleangen在2022年获得正式编制。文章最后指出,企业预测市场的未来在于:为决策者提供更高价值的信息,并借助AI降低预测成本。近期研究表明,AI预测的准确性仍不及人类群体,但可用于评估和训练AI系统。尽管存在挑战,但外部预测市场的兴起(如Polymarket)以及Anthropic等公司开设内部市场,表明这一模式仍在发展中。

7. When muscles work out, they help neurons to grow, a new study shows (news.mit.edu)

研究发现:锻炼通过肌肉促进神经元生长

MIT工程师的新研究表明,锻炼时肌肉收缩不仅对整体健康有益,还能在细胞水平上促进神经生长。关键发现如下:

  • 生化信号的作用:肌肉在收缩时释放称为“肌肉因子”的生化信号混合物(包括生长因子、RNA和蛋白质)。当运动神经元暴露于这些信号时,其生长速度比未暴露的神经元快四倍,且生长更成熟,能更好地与其他神经和肌肉通信。
  • 物理影响的同等重要性:除了生化信号,锻炼的物理效应(如肌肉收缩产生的机械力)也能显著促进神经生长。实验中,神经元被反复拉动(模拟锻炼的机械刺激),其生长效果与暴露于肌肉因子中相似,表明物理和生化影响在神经生长中具有同等作用。
  • 实验方法:研究人员培养小鼠肌肉细胞,通过光刺激使其收缩,模拟锻炼过程。收集肌肉分泌的肌肉因子溶液,并将其应用于培养的运动神经元。同时,使用磁铁系统对神经元施加机械拉伸,以测试物理锻炼的效果。
  • 基因分析结果:遗传分析显示,锻炼刺激的神经元中,与生长、成熟和功能相关的基因表达上调,说明锻炼不仅促进神经生长,还增强其成熟度和功能。
  • 研究意义:该研究首次揭示了肌肉与神经之间的双向交流,即肌肉不仅受神经控制,还能通过生化和物理信号反向影响神经生长。这为开发基于锻炼的神经修复疗法提供了理论基础。
  • 应用前景:研究结果可能用于治疗神经损伤(如创伤性损伤)和神经退行性疾病(如ALS)。通过针对性刺激肌肉,有望促进神经再生,恢复运动功能。
  • 未来方向:团队计划进一步研究如何利用肌肉刺激来修复受损神经,并将此作为“锻炼即药物”策略的第一步,探索其在临床中的应用潜力。

该研究发表于《Advanced Healthcare Materials》期刊,强调了锻炼在细胞和分子层面的健康益处,为神经康复治疗开辟了新途径。

8. Jepsen: Bufstream 0.1 (jepsen.io)

Jepsen 对 Bufstream 0.1 的测试报告摘要

背景

Bufstream 是一个兼容 Kafka 的流处理系统,将数据直接存储在 S3 等对象存储服务中。Jepsen 对 Bufstream 0.1.0 至 0.1.3 版本进行了安全性与活性测试。测试发现,在 Bufstream 本身存在五个问题(三个安全性问题,两个活性问题),在更广泛的 Kafka 协议中发现了四个问题。这些问题影响了 Kafka、Bufstream 以及其他 Kafka 兼容系统。

测试方法

  • 配置:测试中使用了 acks = allenable.idempotence = trueenable.auto.commit = falseauto.offset.reset = earliest 以及 read_committed 隔离级别等安全设置。
  • 工作负载:主要使用了队列工作负载和中止工作负载,以验证数据的完整性、原子性和一致性。
  • 故障注入:包括进程暂停、崩溃、时钟偏移和网络分区,并针对 Bufstream 的子系统(代理、对象存储、协调服务 etcd)进行了专门的故障注入。

在 Bufstream 中发现的问题

以下问题已在 Bufstream 0.1.3 中修复:

  1. 消费者卡住 (#1):在最终读取阶段,消费者可能卡住,无法获取已确认的记录。原因是节点重启后返回了过时的缓存数据。
  2. 生产者/消费者卡住 (#2):由于 etcd 租约问题,短暂的故障可能导致客户端超时或无法获取记录,造成集群部分或完全不可用(元稳定故障)。
  3. 虚假的零偏移量 (#3):当 etcd 或 Bufstream 暂停/崩溃时,发送方可能收到错误的偏移量 0(应为 -1),而 Java 客户端将其误解为成功。
  4. 丢失的事务写入 (#4):已提交的事务中的记录可能消失。原因是用于跟踪事务编号的并发控制机制存在错误。
  5. 因服务器端过滤导致的写入丢失 (#5):为了限制响应大小而引入的过滤逻辑错误,导致滞后消费者看不到某些记录。

在 Kafka 中发现的问题

这些问题普遍存在于 Kafka 及其兼容系统中,尚未完全解决。

  1. 误导性错误消息 (KIP-588):事务超时时,官方 Java 客户端可能抛出错误的 ProducerFencedException,声称存在另一个使用相同事务 ID 的生产者,而实际上并没有。
  2. 关闭消费者可能无限期阻塞 (KAFKA-17734):Java 客户端的 Consumer.close() 方法在网络 I/O 方面存在 bug,即使设置了超时,也可能无限期阻塞。
  3. 事务失败后消费者偏移量不可预测 (KAFKA-17582):Kafka 文档未明确定义事务中止后消费者的行为。Java 客户端的行为不一致:有时前进(导致数据丢失风险),有时在发生再平衡时回退。官方建议用户在中止后手动回退消费者位置。
  4. 写入丢失、中止读取和撕裂事务 (KAFKA-17754)核心问题。Kafka 事务协议存在根本性缺陷,假设存在有序、可靠的传递,但实际网络并不可靠。这导致:
    • 中止读取 (G1a):消费者可能读取到已中止事务的数据。
    • 写入丢失:已提交的事务数据可能无法被观察到。
    • 撕裂事务:一个事务可能被分裂,部分写入丢失,部分保留。这违反了原子性。根本原因在于协议缺少序列号来排序同一客户端的请求,且 EndTxn 消息可能作用于错误的事务。

讨论与建议

  • 对 Bufstream 用户:应升级到 0.1.3 版本。但目前,由于 Kafka 事务协议的问题(KAFKA-17754),使用事务(特别是配合官方 Java 客户端)仍不安全。建议仅在完全了解风险的情况下使用事务。
  • 对 Kafka 团队
    1. 完善文档:需要一份权威的、集中的文档来阐明事务的确切语义、隔离属性和用户操作指南。
    2. 修复协议:KIP-890 提案(通过在每个事务提交时递增纪元来强制顺序)有望解决撕裂事务等问题,但仍需完成。
    3. 修正客户端:修复 Consumer.close() 的阻塞问题和误导性错误消息。
  • 总体评价:Bufstream 的整体架构(使用 etcd 协调、数据存储在对象存储)是可行的。发现的所有特定于 Bufstream 的问题均已修复。然而,由于 Kafka 事务协议的根本缺陷,涉及事务的端到端安全性无法仅由 Bufstream 解决,需要 Kafka 生态系统的协作。
11. New elliptic curve breaks 18-year-old record (www.quantamagazine.org)

文章摘要

本文报道了数学家Noam Elkies与Zev Klagsbrun发现一条具有前所未有的高“秩”的椭圆曲线,打破了保持18年的纪录。这一成果挑战了数学界关于椭圆曲线秩是否存在上限的争论。

椭圆曲线的重要性与未解问题 椭圆曲线(形如y² = x³ + Ax + B的方程)是数学中的古老对象,在数论(如费马大定理证明)和密码学中具有核心作用。数学家通过研究曲线上的“有理点”(坐标均为有理数的点)来理解其结构。这些有理点的分布模式由曲线的“秩”衡量:秩为0时仅有有限个有理点;秩为1时有无穷多但呈简单线性分布;秩越高,有理点来自越多“独立家族”,分布越复杂、密集。尽管绝大多数椭圆曲线秩为0或1,但存在无穷多高秩曲线,然而其秩是否存在上限仍是未解之谜。

纪录的打破 Elkies早在2006年通过切割K3曲面(一种复杂曲面)发现秩至少为28的椭圆曲线,打破了此前秩24的纪录。该纪录保持近20年,引发关于秩上限的猜测。2024年,Elkies与Klagsbrun合作,利用更高效的计算技术,从同一切割产生的曲线池中进行大规模筛选,最终找到一条秩至少为29的曲线。该曲线的方程系数A和B均为超过60位的数字,其29个独立有理点也涉及巨大的数值。

意义与争议 这一发现并未彻底解决“秩是否有上限”的争论。一方面,更高秩曲线的存在支持秩可能无上限的猜想;另一方面,寻找过程极其艰难,暗示更高秩曲线可能极为稀少。数学家认为,若能构造出一整族保证秩≥22的曲线(目前最高保证仅为秩≥17),则可能推翻秩有上限的现有证据。新成果标志着对椭圆曲线“极端边缘”的探索又推进一步,正如生物学家研究极端环境中的生命以理解本质一样,探索高秩曲线有助于揭示椭圆曲线的深层结构。

12. Watermark Anything (github.com)

Watermark Anything 项目总结

项目概述

该项目提供了论文《Watermark Anything》的实现代码和预训练模型。其核心功能是能够在图像中嵌入(可能多个)局部化的水印

最新进展

  • 2025年1月30日:该研究已被 ICLR 2025 接收。
  • 2024年12月12日:发布了基于 SA-1B 数据集子集训练的新模型权重,并以 MIT 许可证开源。新模型增强了对图像中移动水印对象的鲁棒性处理能力。

核心功能与技术要点

  1. 多水印局部嵌入:允许在图像的特定区域嵌入多个不同的水印消息。
  2. 可调节的不可见性与鲁棒性平衡:通过调整参数 wam.scaling_w 来控制。值越大,水印越鲁棒但图像质量下降越多;反之亦然。
  3. 水印检测与解码:不仅能检测水印是否存在,还能预测水印区域的掩码并解码出原始嵌入的消息。
  4. 多消息检测:利用 DBSCAN 聚类算法,从单张图像中解码出多个不同的嵌入消息。

使用流程

环境要求

  • 测试环境:Python 3.10.14, PyTorch 2.5.1, CUDA 12.4, Torchvision 0.20.1。
  • 通过 Conda 和 pip 安装指定依赖。

模型权重

提供两种预训练模型:

  1. 新模型(MIT 许可证):训练于 SA-1B 数据集,鲁棒性更强。可通过 wget 或 Hugging Face Hub 下载。
  2. 原始模型(非商业用途许可证):用于论文评估,训练于 COCO 数据集(已对人脸进行模糊处理)。

推理示例

项目提供了 Jupyter Notebook 示例,包含:

  • 单水印流程:定义一个32位消息,嵌入图像指定比例区域,然后进行检测和解码,并计算比特准确率。
  • 多水印流程:定义多个32位消息,分别嵌入图像的不同随机区域,然后进行检测,并通过聚类算法解码出多个消息。

训练说明

项目提供了完整的训练脚本,分为两个阶段:

  1. 预训练:主要针对模型的鲁棒性进行训练。使用 torchrun 启动,可配置多个GPU。参数包括数据集路径、优化器、调度器以及各种损失函数的权重。
  2. 微调:用于优化模型处理多水印和不可见性的能力。从预训练模型 checkpoint 恢复,并调整了相关参数,如 multiple_wroll_probability

相关项目与许可

  • 许可:代码和新模型(SA-1B)使用 MIT 许可证。原始论文模型使用 CC-BY-NC 许可证。
  • 相关项目:文中提及了 VideoSealAudioSealSegment Anything
  • 引用:建议用户在使用时引用 ICLR 2025 的论文。
13. How I ship projects at big tech companies (www.seangoedecke.com)

在大科技公司交付项目的实战经验

一、交付的挑战与核心认知

交付项目极富挑战,其默认状态是失败:项目会延迟、取消或带着严重缺陷上线。代码完成或任务关闭不等于项目交付,必须有人将此作为核心职责。交付应作为首要任务,若过度关注用户体验打磨等非核心事项,会导致项目无法落地。

二、什么是“交付”?

  • 交付是公司内部的社会共识:不是代码部署,而是领导层认可项目完成。即使技术上线,若领导不满意,也不算真正交付。
  • 理解公司目标是关键:可能是营收增长、用户扩张、满足特定客户需求或高管的战略项目。工程师需据此调整工作重点和沟通策略。

三、建立与维护领导信任

  • 信任是交付的前提:领导缺乏技术背景,依赖工程师的判断和沟通。信任破裂可能导致项目被取消或被他人接管。
  • 维持信任的方法
    1. 过往交付记录(如有)。
    2. 展现自信与掌控力(如“NASA指挥中心”般的专业性)。
    3. 专业、简洁、主动的沟通(如每日/每周更新)。
    4. 按时交付并非绝对,清晰沟通延误原因反而可能巩固信任。

四、技术执行与问题应对

  • 预见并解决问题:交付的核心技术工作是提前识别技术、协调或法律等潜在风险。需具备深度技术理解以快速调整方案。
  • 保持灵活精力:项目后期应逐步减少编码工作,预留90-100%时间处理突发问题。
  • 尽早测试与部署:使用功能标志、测试环境等让多方尽早体验,快速发现未预见问题。

五、交付心态与行动准则

  • 持续自问“能否现在交付?”:即使未完全就绪,也应部署到功能标志后,并思考如何解除阻碍。
  • 准备备用计划:为最坏情况(如延期)制定选择方案,展现对局面的掌控力。
  • 勇于行动:尽早执行关键变更,避免因恐惧而拖延部署。保持项目全程上下文,主导决策。

总结

成功交付项目需:将交付设为最高优先级;以领导层满意为目标;维护信任关系;提前预见问题并制定备用计划;后期减少编码专注调度;不断推动“可交付状态”;以勇气驱动行动。

14. Brian Kernighan Reflects on Unix: A History and a Memoir [video] (www.youtube.com)

Brian Kernighan 回顾 Unix:一部历史与回忆录

视频概述

这是 Book Overflow 播客频道的一期特别节目,邀请了计算科学先驱 Brian Kernighan 再次做客,与主持人 Carter 和 Nathan 一起讨论他的著作《Unix: A History and a Memoir》。视频时长约 1 小时,发布于 2024 年 11 月 11 日,获得 12,183 次观看和 329 个赞。

核心内容

在本期节目中,Kernighan 回顾了:

  • 贝尔实验室的工作经历:讨论他在 Unix 诞生地的体验
  • Unix 的设计理念:强调 Doug McIlroy 的简单性哲学,Unix 的组合性和可组合性
  • Unix 是否不可避免:探讨这一重大创新的出现是否有其必然性
  • 小团队与大创意:反思小规模团队如何实现深远的技术突破
  • Plan 9 和 UTF-8:讨论后续项目及 Unicode 的发展
  • Unix 的长期影响:包括管道(pipes)、可编程 shell、工具组合、stdin/stdout/stderr 等核心概念

章节索引

时间戳 主题
00:00 开场介绍
02:18 贝尔实验室、Unix 与写书动机
07:02 Doug McIlroy 与 Unix 的简洁性
13:12 Unix 是否不可避免?
22:00 创新精神、PIP-11 与文档准备
27:35 工具、可组合性与模式
33:04 awk、snobol 与关联数组
35:27 小团队与大创意
41:58 Plan 9 与 UTF-8
49:41 贝尔实验室之后的生活
54:00 贝尔实验室的谦逊与协作
55:22 Unix 的长期影响
59:46 结语

推荐书籍

  • 《Unix: A History and a Memoir》 — Brian Kernighan
  • 《On the Edge: The Art of Risking Everything》 — Nate Silver
  • 《Origin Story: The Trials of Charles Darwin》 — Howard Markel

频道信息

Book Overflow 是一个面向软件工程师的播客,由 Carter Morgan 和 Nathan Toups 主持,每周阅读并讨论一本技术书籍,旨在通过阅读最优秀的技术著作来提升工程师技能。频道拥有约 13,600 名订阅者。

15. Bluesky adds 700k new users in a week (www.theverge.com)

Bluesky一周新增70万用户,总用户超1450万

核心数据

  • 过去一周新增70万用户,总用户数突破1450万(Bluesky COO Rose Wang确认)。
  • 多数新用户来自美国,反映用户寻求X平台替代品的趋势。
  • 目前为美国App Store第二大免费社交应用(仅次于Meta的Threads)。

增长驱动因素

  1. 对X平台的不满:X政策变动(如允许被屏蔽用户查看帖子)促使用户迁移,此前单日曾新增50万用户。
  2. Threads的缺陷:用户抱怨Threads存在“ engagement bait”、内容审核问题及算法推荐不可控(“For You”信息流)。
  3. 政治与社会环境:美国大选结果可能推动用户转向非马斯克旗下平台;部分用户因X上仇恨言论增加而离开。
  4. Bluesky自身优化:新增置顶帖子、视频发布、私信等核心功能,并提供自定义订阅源、快速关注推荐列表等工具。

竞争对比

  • Threads月活已达2.75亿,规模远大于Bluesky。
  • Bluesky主打去中心化社交网络,支持用户自定义信息流与数据管理。

总结:Bluesky通过功能完善与外部平台问题形成对比,实现快速增长,成为X平台的重要替代选择。

16. Two upstart search engines are teaming up to take on Google (www.wired.com)

德国搜索引擎Ecosia与法国搜索引擎Qwant宣布组建一家名为**“European Search Perspective”(EUSP)** 的合资企业,旨在开发自有的网络索引,以减少对谷歌和微软必应搜索结果的依赖。

两家公司希望通过此举,能够更自主地定制搜索结果,以符合其自身使命(如Ecosia注重环保,可降低不可持续公司的排名)和欧洲用户的需求。合资公司由双方平分股权,Ecosia提供资金和数据,Qwant提供人力,技术基础设施由OVHcloud支持。

目前,谷歌与必应合计控制全球约95%的搜索市场。Ecosia和Qwant的市场份额虽小,但此次合作被视为在欧盟新法规限制大型科技公司“守门人”权力的背景下,一次重要的技术独立尝试。此外,必应去年提高授权费用也促使了这一决定。

开发独立的网络索引是一项艰巨的任务,但两家公司认为技术进步已使其变得可行且经济。他们计划2025年初在法国、年底在德国测试新的搜索结果,并声称不会牺牲用户体验速度。EUSP未来可能通过融资扩展,或将其索引数据授权给其他公司(包括用于AI训练)。

此次合作不仅着眼于法语和德语区市场,也看到了在全球其他服务不足地区(如埃塞俄比亚)改进搜索体验的机会,并学习韩国Naver等成功区域搜索引擎的经验,以期成为真正具有欧洲特色的替代选择。

17. Improving Steam Client Stability on Linux (ttimo.typepad.com)

该内容描述了访问NetworkSolutions.com网站时需要完成安全验证(CAPTCHA)的情况。其主要目的是通过验证来证明访问者是真人,从而获得对该网站资源的访问权限。

18. Making a trading Gameboy: A pocket exchange and algo trading platform (questdb.io)

制作交易Gameboy:一个口袋交易所与算法交易平台

本文分享了作者利用树莓派Pico微控制器,从零开始构建一个便携式、硬件化的ETF做市交易模拟游戏的完整经历。

项目起源与演变

  • 初衷:为孩子购买树莓派Pico电子套件,在完成简单项目(如计算器)后,发现Pico具备无线功能。
  • 初步想法:利用Pico连接API并在LED矩阵上实时显示股价。
  • 方向转变:单纯的看价游戏缺乏趣味,于是转向做市商(Market Maker) 模拟,因为其动态更复杂有趣(需持续双边报价、管理风险)。
  • 硬件迭代:从简单的LED显示,升级到带有按钮的Pimoroni Pico Display Pack 2.0,最终为了容纳更多控制按钮,设计并3D打印了定制外壳

核心游戏机制设计

游戏模拟ETF做市,玩家扮演做市商:

  1. 角色:在交易所持续提供买卖报价(Bid/Ask),同时响应场外(OTC)大宗交易请求。
  2. 控制:通过算法参数调整报价价差(Spread)和偏向(Skew)以吸引流量。
  3. 风险管理:积累的ETF头寸风险,可以通过在相关对冲市场(如S&P500期货)进行交易来对冲。自动对冲功能可设置。
  4. 事件:游戏会模拟经济数据发布等事件,导致价格大幅跳动和波动率飙升,玩家需及时撤单以避免被高频套利。
  5. 目标:捕获流量、赢得交易请求,同时控制风险和损失,最终实现盈利。

技术实现细节

硬件改进

  • PCB设计:使用开源工具 KiCad 设计电路板,集成微控制器、显示屏、按钮、电池管理等模块,解决了飞线焊接的杂乱问题。
  • 3D打印:利用 Autodesk Fusion 360 设计定制外壳,将PCB和电池包裹起来。

软件架构(基于MicroPython)

  1. 参考价格引擎:摒弃获取真实价格(延迟高且变化小),自生成基于随机游走的价格序列,并可注入“经济数据发布”事件以突增波动。
  2. 交易所与订单簿:模拟真实订单簿,使用堆(heapq) 数据结构维护买卖队列,实现价格-时间优先的匹配引擎。
  3. 代理系统:创建交易机器人(Bot)在订单簿中随机下单,形成市场背景流量。
  4. 玩家算法逻辑
    • 玩家的报价更新受延迟(turn_latency) 限制,模拟交易所对高频报价的节流。
    • 报价计算基于参考价格、价差参数和偏向参数。
    • 可设置自动对冲阈值,当净风险暴露超过阈值时,自动在对冲市场下TWAP订单。
  5. 图形显示:将屏幕划分为多个独立区域(参考价格、图表、控制面板、新闻、风险指标、订单簿深度、交易流等),各自独立渲染。

开发挑战与解决方案

  • 内存管理(RAM仅256KB)
    • 使用 const() 定义常量。
    • 在程序启动时主动调用 gc.collect() 进行垃圾回收,减少内存碎片。
    • .py 文件预编译为 .mpy 字节码文件,减少运行时编译的内存开销。
    • 读取大文件时使用缓冲。
  • 速度优化
    • 多进程:利用Pico的双核,一个核心运行交易所、机器人等后台逻辑,另一个核心负责玩家交互和显示。
    • 协程:使用MicroPython的 asyncio 库管理多个并行循环(报价更新、显示刷新等),避免顺序阻塞。
    • 超频:将CPU频率从默认133MHz超频至更高,提升性能。
  • 按钮处理:使用中断请求(IRQ)防抖动(debounce) 定时器来确保按键响应稳定且不重复触发。通过回调函数实现按钮功能的上下文切换。
  • 开发流程:使用 mpremote 工具脚本化文件复制和程序启动,替代手动操作,提高效率。

数据集成与可视化

  • 与QuestDB集成:Pico通过Wi-Fi将实时交易数据(参考价、报价、盈亏等)以HTTP请求写入QuestDB时序数据库。
  • Grafana仪表盘:使用Grafana连接QuestDB,以250毫秒的刷新频率实时展示游戏进程、报价走势和盈亏曲线,获得逼真的交易监控体验。

总结与收获

作者认为这是一个偶然但极具价值的项目,带来了三方面收获:

  1. 触觉创造:从纯粹的虚拟世界转向实体硬件创造,获得了动手制作的满足感。
  2. 工具发现:惊叹于3D打印机和现代CAD软件的能力,能够轻松设计和制作定制部件解决实际问题。
  3. 硬件潜力:对树莓派Pico和MicroPython的强大功能印象深刻,仅以极低成本(约8美元)就能运行复杂的交易所模拟系统。作者期待利用更新版本的Pico探索更多项目。
19. The Soul of an Old Machine: Revisiting the Timeless von Neumann Architecture (ankush.dev)

本文重读1946年《电子计算仪器逻辑设计的初步讨论》一文,探讨冯·诺依曼架构的核心思想及其历久弥新的影响。

历史背景与关键“位翻转”

  • 论文由Burks、Goldstine和von Neumann共同撰写,但因内部草稿泄露而冠以von Neumann之名,此泄露使工作无法申请专利,却可能加速了计算发展。
  • 作者提出两个根本性创新(“位翻转”):
    1. 存储程序:首次明确建议将“指令”与“数据”以数字代码形式存于同一可重编程内存中,使计算机可被编程而非物理重连。
    2. 通用设计:旨在构建一台可执行任何数值计算任务的通用机器,而非像其前身ENIAC那样的专用设备。

核心组件与设计洞察

  • 论文定义了现代计算机的基本组件(当时称为“器官”):
    • 控制:相当于今天的CPU,负责从内存自动取指令并执行。
    • 算术器官:相当于ALU,执行基本运算。论文已预见硬件复杂度(RISC)与指令复杂度(CISC)之间的权衡,如今处理器常采用CISC接口与RISC微操作的混合模式。
    • 内存:引入内存层次结构概念,承认物理限制需用多层存储(如高速电子存储与低速大容量存储)来平衡速度与容量。这种分层思想是现代缓存体系的雏形。
  • 描述了顺序执行(程序计数器)、条件跳转(实现循环与分支)等控制流基础。
  • 讨论了浮点数表示,von Neumann本人对其必要性持怀疑态度,认为它试图规避对问题的深入数学理解。尽管存在舍入误差等固有问题,浮点数现已成为标准。
  • 强调了可调试性:提议使用双机并行对比检测错误、支持单步执行以定位故障,这些是现代调试器与冗余系统的思想源头。

从历史视角看现代演进

  • 论文采用的40位字长源于其对二进制与十进制的分析:硬件本质是二态的(如触发器),二进制更经济高效。
  • 论文所描述的简单、顺序的冯·诺依曼模型已成为教学经典。然而,经过八十年的发展,现代硬件已极度复杂化
    • 指令级并行:乱序执行、分支预测、超标量设计使数百条指令可同时处于不同执行阶段。
    • 内存系统复杂性:多级缓存(L1/L2/L3)、内存墙问题依然存在,访问延迟从纳秒到数百微秒不等。
    • 多核与一致性:单芯片多核、超线程、NUMA架构等成为常态,硬件负责维持存储一致性视图。
    • 其他:向量处理(SIMD)、虚拟内存硬件支持(TLB、MMU)、预取机制等。

结论 冯·诺依曼架构奠定了现代计算的基础范式,但其实现已远超最初设计。理解底层硬件原理(从历史洞察到现代复杂性)对于充分发挥计算潜力、避免低效实现至关重要。正如文中所言,在获得第一台计算机的深入理解之前,你无法有效利用第二台。

21. Defensive Communication (1961) (reagle.org)

本文探讨了沟通中的防御性行为及其对人际关系的负面影响,指出减少防御性是改善沟通的关键。防御性行为源于个体感知到威胁时,将大量精力用于自我保护而非有效交流,这会引发对方的防御性反应,形成恶性循环,降低沟通效率。相反,支持性或减少防御的沟通氛围能促进信息准确接收。

作者通过八年的录音研究,总结了六对防御性与支持性沟通类别(见下表)。防御性气候易引发对方不安,而支持性气候则有助于降低防御。

防御性气候 支持性气候
评估:评判性语言易引发防卫。 描述:客观陈述事实,减少价值负荷。
控制:试图操纵或改变对方易引起抗拒。 问题导向:共同聚焦于解决问题。
策略:含糊或隐藏动机被视为操纵。 自发性:真诚、直接的表达。
中立:缺乏关心易被解读为冷漠。 共情:理解并尊重对方感受与价值。
优越感:强调地位或能力差异会引发自卑。 平等:建立互信、共同参与的关系。
确定性:武断、不容置疑的态度易被视为僵化。 试探性:开放、探索性的态度,愿意实验。

文章强调,防御性沟通会阻碍清晰表达和问题解决,对家长、教师、管理者、治疗师等具有重要启示。

22. TinyTroupe, a new LLM-powered multiagent persona simulation Python library (github.com)

TinyTroupe:LLM驱动的多智能体人格模拟库

核心概述

TinyTroupe 是微软开发的一个实验性Python库,用于模拟具有特定人格、兴趣和目标的“人”(称为TinyPersons)。这些人工智能代理可以在模拟环境(TinyWorld)中相互交互,并与用户互动,其行为由大型语言模型(如GPT-5-mini)驱动。该库的核心目标是增强人类想象力并为企业和生产力场景提供洞察,而非直接作为辅助工具。

主要应用示例

该库可用于多种场景,以低成本模拟人类行为并获取反馈:

  • 广告评估:在真实投放前,用模拟受众离线评估数字广告效果。
  • 软件测试:为系统(如搜索引擎、聊天机器人)提供测试输入并评估结果。
  • 数据生成:创建逼真的合成数据,用于模型训练或机会分析。
  • 产品与项目管理:从特定角色(如医生、律师)的视角,为项目或产品提案提供反馈。
  • 焦点小组与头脑风暴:模拟焦点小组,以极低成本获得产品反馈。

核心组件与原理

  1. TinyPerson:模拟的智能体,包含详细的人格特质、偏好、目标等。可通过JSON文件定义或编程方式创建,也支持使用“片段”复用常见特征。
  2. TinyWorld:智能体存在和交互的模拟环境,结构灵活。
  3. 设计原则
    • 编程化:智能体和环境通过Python和JSON定义,可灵活集成。
    • 分析导向:旨在理解人类、用户和社会,推荐使用Jupyter notebook进行模拟和数据分析。
    • 基于人格:鼓励对角色进行详细规范以提升真实感和控制力。
    • 多智能体:支持在定义明确的环境下进行多智能体交互。
    • 实验驱动:为实验者提供迭代定义、运行、分析和优化模拟的工具。

关键特性与更新(版本记录摘要)

  • 实证验证:提供SimulationExperimentEmpiricalValidator,可使用统计测试(t检验、KS检验)将模拟结果与真实世界调查数据进行比较,验证模拟有效性。
  • 交互式探索:提供Jupyter小部件,方便在Notebook中与模拟智能体进行交互式对话。
  • 成本追踪:在API客户端、环境和智能体层面均提供成本监控功能。
  • 智能体生成工厂TinyPersonFactory支持基于人口统计描述并行生成多样化的智能体群体。
  • 行动质量控制:智能体可配置以检查和改善其行为质量,确保符合人格设定。
  • LLM支持演进
    • 默认模型已从GPT-4系列更新为gpt-5-mini(旧版模型仍受支持)。
    • 新增实验性的视觉模态支持。
    • 包含对本地模型(通过Ollama)的有限实验性支持。
  • 缓存机制:提供模拟状态缓存和LLM API调用缓存,以降低运行成本。
  • 配置管理:支持通过config.ini文件进行静态配置,也支持通过config_manager进行运行时动态程序化配置覆盖。

安装与使用前提

  • 环境要求:Python 3.10+,推荐使用Conda环境。
  • API访问:需要Azure OpenAI服务或OpenAI API密钥。
  • 安装方式:推荐通过Git从官方仓库直接安装。
    pip install git+https://github.com/microsoft/TinyTroupe.git@main
    
  • 项目结构:包含库代码(/tinytroupe)、测试(/tests)、示例(/examples)、数据(/data)及研究出版物(/publications)。

注意事项

  • 法律声明:该库仅供研究和模拟使用。用户需对生成内容的准确性及使用负全责。严禁用于模拟敏感场景或进行欺骗、误导性用途。
  • 开发状态:项目仍处于积极开发中,API可能频繁变更,文档和功能可能不完善。
  • 贡献指南:欢迎贡献,特别是新的应用场景示例。贡献需遵循Microsoft开源行为准则,并可能需签署CLA。
23. Misguided Apple Intelligence ads (tidbits.com)

苹果公司似乎未能从今年早些时候因一则展示创意作品被工业压机无情碾碎的广告所引发的批评中吸取足够教训(参见《苹果为“压碎!”iPad Pro广告致歉》,2024年5月10日)。两则新的Apple Intelligence广告将“写作工具”和“回忆影片”功能描绘为不愿付出努力者的工具。

在第一则广告中,Apple Intelligence帮助一个浪费时间、惹恼同事的懒散员工,撰写出一封出人意料的专业邮件来给上司惊喜。尚不清楚上司是否印象深刻;他只是不相信这个人能写出专业的消息。

这是否意味着Apple Intelligence的目标用户是永远懒惰的人?那些积极的场景在哪里?比如一个有阅读障碍的孩子使用写作工具校对学校论文,或者一位商务人士用它来理解在会议前几分钟收到的复杂报告。

第二则广告传递了类似的暗示——即Apple Intelligence是粗心者的拐杖。广告中,一位女性在孩子给丈夫送上贴心的自制礼物后,才意识到自己忘记了丈夫的生日,于是她迅速使用Apple Intelligence制作了一段孩子们与父亲一起做木工的回忆影片。Apple Intelligence来救场了!显然,制作回忆影片比创建一个重复的年度日历事件更容易。

苹果为何要宣传一种观念,即Apple Intelligence可以挽救你因疏忽生活中最重要的人而造成的失误?很容易想象出一些积极的场景,让回忆影片增色,比如青少年在医院里与生病的祖父母分享照片,或者高中好友通过共享的运动照片重新联系。这些场景可能略显煽情,但回忆影片本身也趋向于那种风格。

目前来看,很可能在其下一个版本中,Apple Intelligence不会改变世界,甚至不会改变你的日常Mac体验。但它对某些人能有所作为。苹果如果展示它如何帮助那些本已努力做好工作、做个好人的人,效果会更好。

想象你在苹果的广告公司工作。你希望看到哪些展示Apple Intelligence功能的广告?

27. A stubborn computer scientist accidentally launched the deep learning boom (arstechnica.com)

深度学习崛起的偶然与必然

本文讲述了深度学习在21世纪初期意外兴起的历程,其核心是由三位关键人物在各自领域面对广泛质疑时的坚持所共同促成的。

核心人物与贡献:

  1. 李飞飞与ImageNet数据集:2007年,普林斯顿大学教授李飞飞构想并启动了创建一个前所未有庞大的图像数据集ImageNet的计划,旨在涵盖近2.2万个物体类别、1400万张标注图像。该项目当时受到同行质疑,被认为规模过大且对当时的算法无益。李飞飞团队利用亚马逊众包平台,在两年内完成了这项艰巨任务。尽管初期未受关注,但ImageNet随后成为推动计算机视觉革命的关键基准。
  2. 杰弗里·辛顿与神经网络:辛顿是神经网络领域的长期坚守者。早在1986年,他与同事推广了反向传播算法,使得训练多层(深度)神经网络成为可能。尽管在1990年代后期神经网络再次陷入低潮,辛顿始终相信其潜力,并为后续突破培养了关键人才(如杨立昆)。
  3. 黄仁勋与GPU通用计算:英伟达CEO黄仁勋于2006年推出CUDA平台,使GPU的并行计算能力能用于科学计算等非图形领域。尽管最初市场反应冷淡,但CUDA恰好为计算密集型的神经网络训练提供了理想的硬件平台。

关键转折点:2012年ImageNet竞赛

  • 辛顿的学生亚历克斯·克里泽夫斯基和伊尔亚·苏茨克维利用GPU(通过CUDA)和ImageNet数据集,训练了一个名为AlexNet的卷积神经网络
  • AlexNet在图像识别准确率上以压倒性优势(领先10个百分点)获胜,震惊了学术界。
  • 这一成果标志着深度学习的爆发性增长。它证明了当大规模数据集(ImageNet)强大的神经网络架构(尤其是CNN)GPU提供的并行计算能力三者结合时,能够取得前所未有的性能。

深远影响与启示:

  • AlexNet的成功立即在工业界引发反响。辛顿及其学生很快被谷歌收购,英伟达的GPU成为AI训练的行业标准,公司市值飙升。
  • 本文认为,AI的当前繁荣并非源于某个单一突破,而是这三股力量——辛顿对神经网络的坚持、李飞飞对大数据的远见、黄仁勋对GPU计算的开拓——跨越多年、相互作用的结果。它提醒我们,突破常源于挑战主流共识的“顽固”远见,而当前基于规模定律的成功范式也可能并非永恒。
28. High Levels of Banned PFAS Detected in Hershey's Packaging (grizzlyreports.com)

好时公司包装中检测出高浓度禁用PFAS“永久化学物”

核心发现

  • 独立检测发现,美国糖果巨头好时公司旗下多款知名产品(包括好时巧克力、Reese‘s、Almond Joy、Mounds、Kit Kat等)的塑料包装中,检出高浓度的全氟和多氟烷基物质(PFAS)。
  • 相比之下,其主要竞争对手玛氏(Mars)和雀巢(Nestlé)的同类畅销产品包装中,未检出或仅检出可忽略不计的PFAS。
  • 在针对好时产品的50次测试中,有19次发现包装中总氟含量超过10 mg/kg,最高读数达81.5 mg/kg。涉及品牌占好时总收入的约43%,且很可能有更多品牌受影响。

PFAS的危害与监管背景

  • PFAS特性:被称为“永久化学物”,因其几乎不可分解。它们具有致癌性,可导致激素紊乱、肝脏和甲状腺问题,并干扰疫苗效力。儿童尤其易受其害。
  • 监管趋势:美国至少13个州已立法,计划在2024年前逐步禁止PFAS用于塑料食品和糖果包装。美国食品药品监督管理局(FDA)也于2024年2月起不再授权在糖果包装中使用PFAS。截至目前,FDA的授权数据库中未显示好时公司获得任何PFAS使用许可。

检测详情与专家分析

  • 检测方法:委托了位于美国、德国和中国的四家独立实验室,采用包括光谱法在内的四种不同方法进行测试。
  • 意外发现:专家对在塑料包装中发现如此高浓度的PFAS表示惊讶,因为塑料包装通常无需防油防粘处理。高浓度可能源于生产过程中的脱模剂使用、不洁的生产工艺或出于美观考虑(使包装更光亮有质感)。
  • 规避监管嫌疑:对欧盟市场一款Reese‘s Pieces包装的详细分析未检出最常见的PFAS化合物(如PFOA和PFOS)。专家推测,好时可能故意使用不常见、更难检测的PFAS化合物,以规避检测和禁令,但其健康风险与常见PFAS类似。

对好时公司的风险评估

  1. 品牌声誉风险:好时是备受信任的美国消费品牌,且其产品主要消费者包括儿童。此次发现可能严重损害消费者信任,导致消费者转向竞争对手产品。公司在其详细的ESG报告中从未提及PFAS,暗示其可能缺乏专门的监控和消除流程。
  2. 诉讼与财务风险
    • 美国相关公司已为PFAS污染支付总计115亿美元赔偿,专家估计此类索赔总额可能远超2000亿美元的烟草和解案。
    • 此次受影响的品牌贡献了好时绝大部分收入和利润,使其面临的集体诉讼潜在赔偿额可能非常巨大。
    • 与当前一些诉讼案例(如可口可乐的橙汁品牌仅占其收入的2%)相比,好时暴露的财务风险更为集中和严重。
  3. 运营与估值影响
    • 公司可能需要审查并调整其被认为“高端”的厚实光亮包装的生产供应链,甚至重新设计包装,这将产生额外成本并可能影响产品定位。
    • 无法排除部分产品被召回的可能性。
    • 市场分析认为,该丑闻可能对好时股价产生高达20%的负面影响。

结论

多项独立测试一致表明,好时产品的包装存在严重的PFAS污染问题,而其主要竞争对手可以避免。这并非塑料包装的功能所需,可能反映了其供应链或生产环节的缺陷,甚至存在有意使用隐蔽化学物以规避法规的嫌疑。该问题给好时带来了显著的声誉、诉讼和财务风险。报告方已将相关发现通报给FDA、EPA、SEC等多家监管机构,并呼吁进行进一步的独立和官方调查。

30. Artificial Intelligence, Scientific Discovery, and Product Innovation [pdf] (aidantr.github.io)

文件未找到错误摘要

提供的文档内容显示一个 404 文件未找到 错误,表明请求的文件在指定地址不存在。错误消息指出,站点配置可能存在问题,例如在 GitHub Pages 中,根 URL 必须提供一个 index.html 文件,并检查文件名大小写和文件权限是否正确。建议参考完整文档以获取更多使用 GitHub Pages 的信息,并查看 GitHub 状态页面以获取最新更新。

该错误不包含关于人工智能、科学发现或产品创新的实际内容,仅是一个技术性通知,提示用户文件无法访问。

31. Emit-C: A time travelling programming language (github.com)

Emit-C:一种时间旅行编程语言
Emit-C(又称 emiT)是一种基于平行时间线的实验性编程语言。其核心概念是允许程序员将变量送回过去,改变历史事件,从而创建新的时间线分支。这种设计导致程序状态(包括源代码)可能持续变化,并容易引发悖论或时间循环。

核心特性

  • 时间扭曲:通过回到代码中提前定义的时间点,变量可返回过去并修改源代码,生成分裂的新时间线。
  • 变量状态:每个变量有“存活”或“死亡”状态。死亡变量永久失效,但可通过送回另一个变量阻止其被杀害,从而复活。
  • 悖论处理:若遇到悖论(如与过去的自己相遇或访问不存在的对象),当前时间线会坍塌,视为一种极端错误处理。

项目背景

  • 这是一个业余爱好项目,大部分代码在一下午内完成。
  • 提供了语法高亮工具、示例代码和语言规范(见spec文件夹)。
  • 鼓励用户分支或修改代码,并加入Discord社区交流。

关键字与功能

  • create:创建新变量。
  • kills:永久杀死变量。
  • warps:时间旅行至指定时间点,生成新时间线。
  • time:定义当前时间线的时间点。
  • dead:表示变量已被杀死或尚未存在。
  • alive:表示变量存活且当前存在。
  • exists:表示变量在时间线中是否曾存在。

计划功能

  • 允许在时间扭曲后插入代码片段(而非仅限于旅行点之后)。
  • 处理多个变量同时存活的冲突。
  • 添加Not运算符以简化编程。
35. I converted a Macbook into a PC (community.frame.work)

文章摘要:将MacBook转换为PC

本文记录了一项改造项目,核心是将一台2010年17英寸MacBook的外壳转换为功能性的PC。主要使用了Framework 13主板作为核心计算单元,并在其两侧添加了定制IO板。额外的电路板用于键盘控制、Magsafe充电和充电状态按钮,所有绿色PCB均由用户自制。

关键硬件组件

  • 主板:采用Framework 13主板,支持升级和维修,比原MacBook更易维护。
  • 屏幕:更换为LG的LP170WQ1屏幕,通过Framework 16 EDP电缆直接连接到主板。
  • 冷却系统:为补偿苹果原设计,添加了额外散热器和风扇。用户拆卸了旧热管并焊接新热管,将额外散热模块连接到主热管上。第一代原型使用i5 CPU时发热较高,但升级到Ryzen主板后温度控制更好。
  • 键盘控制:基于苹果原设计修改,使用MacBook主板上的键盘芯片实现。
  • IO板:完全自制,提供外部接口支持。

项目细节

  • 选用的MacBook型号已老旧且损坏,但保留了发光苹果标志等外观特征。
  • 改造后,PC功能完整,支持内部组件升级(如内存和存储),且散热效率更高。
  • 用户通过图片展示了拆卸过程,包括电路板布局和热管连接。

用户互动

  • 讨论中涉及定制PCB的可行性、冷却方案效果、屏幕兼容性等问题。用户回应称,15英寸MacBook可能更容易改造,而13英寸型号在电池空间上存在挑战。
  • 该项目展示了如何利用现代硬件复活老旧设备,同时保持外观一致性。
38. Every arthouse buff you know is pirating films (i-d.co)

艺术电影爱好者普遍通过非法渠道观影现象分析

文章指出,全球艺术电影爱好者因正规渠道缺失而普遍转向盗版资源。以匈牙利导演贝拉·塔尔1982年拍摄的《麦克白》为例,该片在主流流媒体及实体发行渠道均无法获取,导致影迷只能通过“随机档案网站”非法观看。类似情况普遍存在:许多获奖艺术片(如洪尚秀、万玛才旦、泽维尔·多兰的作品)从未在英美正式发行;印度等地区因审查制度限制,大量外语艺术电影无法通过合法渠道观看。

资源获取困境与非法平台兴起

  • 历史影片断档:2000年前后的媒介转换导致大量影片消失,如阿彼察邦·韦拉斯哈古《祝福》、费里尼纪录片《小丑》等均无合法观看途径。
  • 非法档案平台:网站如Rarefilmm通过策展方式提供数百部罕见影片,常从原始胶片转录;Letterboxd列表、Reddit社区和Archive.org等成为影迷搜寻资源的聚集地,Rarefilmm在X平台的关注者半年内翻倍。
  • 地下传播传统:私人社区(如Karagarga)长期分享冷门影片并添加字幕,Letterboxd的流行进一步刺激了需求。

电影创作者的矛盾态度

  • 支持派:导演克里斯托·摩西勒认为传播作品比遵守发行规则更重要,其早年通过盗版VHS学习纪录片手法。
  • 反对派:约翰·沃特斯建议导演若希望作品永久存续则勿售给流媒体平台,因其以分发而非保存为核心。他会对泄露的未发行作品申请下架以保护版权。
  • 平台局限:Netflix等流媒体主要服务大众市场,对艺术电影支持有限,且可能随时移除内容或转让版权。

盗版对电影遗产的双重影响

  • 积极面:非法传播帮助维系了许多影片的文化生命力,如沃特斯1968年短片《吃掉你的妆容》通过盗版获得 cult 关注;塔尔《麦克白》的盗版资源填补了15年的观看空白。
  • 矛盾解决:当官方修复版出现时(如肖恩·贝克2000年作品《四字单词》的4K修复),盗版网站会配合下架资源。

结论 艺术电影盗版现象的根源在于流媒体时代对 niche 影片发行与保存的系统性缺失。尽管非法平台推动了影片传播,但影片的最终存续仍依赖正规发行渠道的介入。当前模式下,能被观看的作品才能被记住。

39. Steve Jobs, NeXTSTEP, and early object-oriented programming (2016) (computerhistory.org)

Steve Jobs、NeXTSTEP与早期面向对象编程

文章探讨了支撑当今移动应用革命的技术根源,可追溯至史蒂夫·乔布斯创立的NeXT公司及更早的面向对象编程思想。

技术源流与NeXT的诞生

  • 苹果的iOS及开发工具包Cocoa Touch,其基础源自Mac OS X的Cocoa,而两者均建立在NeXTSTEP操作及开发环境之上。
  • 1985年,乔布斯离开苹果后创立NeXT。其硬件产品(如NeXT Cube)虽技术先进但价格昂贵,市场反应不佳。NeXT随后在1993年转型为专注于企业软件的公司。
  • 1996年,为替换过时的Mac OS,苹果收购了NeXT,旨在以NeXTSTEP为基础开发新系统(后成为Mac OS X)。1997年初,乔布斯以苹果雇员身份回归,并演示了源自NeXTSTEP的OpenStep技术,这预示了后来Cocoa开发环境的未来。

NeXTSTEP的革命性创新:面向对象编程

  • 对施乐PARC技术的补完:乔布斯1979年参观施乐PARC时,只注意到了图形用户界面,却忽略了联网技术和面向对象编程范式。NeXT则将后两者作为核心。
  • 编程范式的转变:施乐PARC的Alan Kay等人创造了Smalltalk语言,其核心是“对象”(包含数据与方法)之间的消息传递,这不同于传统的过程式编程。但Smalltalk程序需运行在虚拟机中,性能开销大且外观不统一。
  • Objective-C的优势:为解决Smalltalk的缺陷,Brad Cox在1980年代创造了Objective-C。它将Smalltalk式的对象概念引入C语言,兼具高级抽象与性能:开发者既能利用对象组织程序架构,又能用C优化关键代码;程序无需虚拟机,内存占用小、运行速度快且外观原生;还能直接使用大量现有的C库。
  • NeXT的实现:NeXT授权并进一步改进了Objective-C,将其作为NeXTSTEP的编程语言。配合AppKit图形界面库和Interface Builder可视化工具,开发者能通过图形化拖拽和连接对象来构建界面,极大减少了编码量。乔布斯称此举能将界面开发时间从90%降至10%,实现5到10倍的开发效率提升。

影响与遗产

  • 对“软件危机”的回应:面向对象编程和Objective-C被认为可能像工业革命中的标准化零件一样,通过可复用的软件对象库来解决软件开发的成本和复杂性危机,允许小型团队高效开发复杂应用。
  • 生产力证明:NeXTSTEP环境虽未普及,但被用于创造了万维网、早期电子商务网站,并被华尔街和情报机构用于开发关键应用。小型团队用它成功开发了功能齐全的商业软件。
  • 奠定苹果生态基石:NeXTSTEP的技术最终演变为Mac OS X的Cocoa和iOS的Cocoa Touch。AppKit、Interface Builder(现为Xcode的一部分)和Objective-C(虽已被Swift逐步取代)成为苹果数十年开发生态的支柱。
  • App Store的愿景与现实:这些技术使得独立开发者(indie)和小型团队能开发高质量应用,催生了App Store的早期繁荣。尽管后来市场成熟、竞争加剧,但乔布斯演示的技术本身已成为当今所有苹果应用开发的基石。

历史意义 文章指出,理解NeXTSTEP及其面向对象技术的历史至关重要。许多被认为“未来”的技术早已被发明,只是未能广泛传播。乔布斯通过回归苹果,将这一未来带给了世界。计算机历史博物馆正致力于保存和诠释这段软件历史。