2026-01-14

27 篇热帖

AI Generated Music Barred from Bandcamp

Bandcamp 关于生成式 AI 的政策声明 - 总结

以下是 Bandcamp 关于生成式 AI 的政策声明的总结:

核心目标: Bandcamp 致力于维护平台上艺术家创造力和激情的社区,并确保粉丝对他们所发现的音乐的信心,即这些音乐是人类创作的。

政策要点:

  • 禁止完全或主要由 AI 生成的音乐和音频: 完全或实质上由 AI 生成的音乐和音频不允许发布在 Bandcamp 上。
  • 禁止模仿: 使用 AI 工具模仿其他艺术家或风格的行为严格禁止,这与 Bandcamp 现有的禁止模仿和侵犯知识产权的政策相符。

举报机制: 如果用户发现疑似完全或严重依赖生成式 AI 创作的音乐或音频,请使用 Bandcamp 的举报工具将其标记,以便由 Bandcamp 团队进行审查。

权利保留: Bandcamp 保留对任何疑似由 AI 生成的音乐进行删除的权利。

后续更新: Bandcamp 将持续关注生成式 AI 领域的快速发展,并及时公布相关政策更新。

总结: Bandcamp 的政策旨在保护艺术家的人类创作,并维护平台上的音乐真实性和原创性。

Scott Adams has died

Scott Adams, whose "Dilbert" comic strip satirized corporate life before controversial comments he made on race sidelined him, has died at 68.

Influencers and OnlyFans models are dominating U.S. O-1 visa requests

美国内容创作者涌现O-1工作签证申请潮 (The Surge of O-1 Work Visa Applications Among US Content Creators)

近年来,越来越多的美国内容创作者(如网红和社交媒体影响者)开始申请O-1工作签证。据金融时报报道,自2014年至2024年,此类签证的批准数量每年增长了50%。

O-1签证类别

O-1签证允许非移民在美国临时工作。O-1类别分为两个子类别:

  • O-1A: 授予在科学、教育、商业或体育等领域具有杰出才能的个人。
  • O-1B: 授予具有“杰出才能或成就”的个人。

申请者案例

文章采访了一些成功获得或正在申请O-1签证的网红,分享了他们的申请经历。

  • Julia Ain: 25岁的加拿大内容创作者,在疫情期间开始在TikTok上直播,目前在各个社交媒体平台拥有超过130万粉丝。她的收入主要来自Fanfix平台订阅,每月收入数万美元,并以此申请了O-1B签证。
  • Luca Mornet: 法国网红,在纽约时尚学院学习期间意识到学生签证F-1限制了他作为网红赚钱的能力,毕业后申请了O-1B签证。
  • Dina Belenkaya: 俄罗斯以色列国际象棋选手和内容创作者,在Instagram、Twitch和YouTube上拥有大量粉丝,已成功获得O-1B签证,并搬到美国北卡罗来纳州的夏洛特(被认为是美国的国际象棋之都)。
  • Boy Throb: 一个由四人组成的美国乐队,为了让印度成员Darshan Magdum获得签证,他们努力在TikTok上获得100万粉丝,并最终成功。他们为此花费了超过1万美元的法律和处理费用。

申请条件与流程

申请O-1B签证需要提交至少六项监管标准中的三项证据,例如在杰出活动中表演、获得国家或国际认可、以及记录商业或评论上的成功。申请者通常会展示他们的粉丝数量、收入和社交媒体指标作为证据。

行业观点

移民律师Michael Wildes认为,内容创作者经济是美国例外主义的下一个前沿,他们正在推动零售和商业利益。 然而,一些评论家认为这种趋势反映了“帝国末期”的症状。网红们则认为,内容创作是一个需要付出大量努力的合法职业,并且是现代美国梦的体现。

Signal leaders warn agentic AI is an insecure, unreliable surveillance risk

总结:Signal 警告行业,警惕不安全的 AI 代理 (Summary: Signal Warns the Industry of Unsafe AI Agents)

Signal 公司领导层在 39C3 (39th Chaos Communication Congress) 大会上发出了警告,呼吁行业在威胁得到缓解之前,暂停当前 AI 代理的推进。 Meredith Whittaker (Signal 总裁) 和 Udbhav Tiwari (战略与全球事务副总裁) 在名为“AI 代理,AI 间谍”的演讲中,强调了当前 AI 代理的实施方式存在严重的安全、可靠性和隐私问题。

主要担忧和问题:

  • 安全漏洞: 微软的 Windows 11 Recall 功能,通过定期截图、OCR 和语义分析,将用户活动记录到一个数据库中。Signal 指出,这种方式易受恶意软件攻击和间接提示注入攻击,从而绕过端到端加密 (E2EE)。简单地阻止屏幕录制并不能解决根本问题。
  • 可靠性问题: Whittaker 强调 AI 代理本质上是概率性的,而非确定的。即使每个步骤的准确率很高 (例如 95%),随着步骤的增加,最终行动的成功率也会迅速下降。一个包含 30 个步骤的任务,成功率可能降至 4.2%。目前最好的模型甚至有 70% 的失败率。
  • 隐私问题: 目前尚无有效的方法在保证隐私、安全和用户控制的同时,实现 AI 代理。

Signal 提出的缓解措施:

  1. 停止不负责任的部署: 避免 AI 代理对数据库的明文访问,防止恶意软件利用。
  2. 默认选择退出: 将用户选择退出 AI 代理作为默认设置,并强制开发者进行显式选择。
  3. 提高透明度: AI 公司必须提供关于其运作方式的透明信息,并允许对各个环节进行审计。

Signal 认为,如果行业不重视这些警告,消费者对 AI 代理的信任可能会迅速丧失,从而危及这项技术的发展前景。目前,对 AI 代理的部署需要进行“分诊”,并在安全、隐私和可靠性得到解决之前,谨慎推进。

关键人物:

  • Meredith Whittaker: Signal 总裁
  • Udbhav Tiwari: Signal 战略与全球事务副总裁
  • Jon Henshaw: Coywolf 创始人,作者。
We can't have nice things because of AI scrapers

Anubis 保护服务器的摘要

主要内容:

Anubis 是一种旨在防止网站被人工智能公司大规模抓取(scraping)的解决方案,以避免由此造成的服务器宕机和资源不可用。

核心机制:

  • 工作量证明 (Proof-of-Work): Anubis 采用了类似于 Hashcash 的工作量证明机制。这意味着用户在访问页面时需要完成一些计算任务,这在单个用户层面几乎可以忽略不计,但在大规模抓取时会显著增加成本。
  • 临时方案: Anubis 目前被视为一个临时方案。最终目标是使用指纹识别技术(例如通过字体渲染方式)来识别和区分合法用户和无头浏览器(headless browsers),从而避免向合法用户展示工作量证明页面。

技术限制:

  • JavaScript 依赖: Anubis 依赖于现代 JavaScript 特性,因此需要禁用诸如 JShelter 之类的插件,这些插件可能会禁用这些特性。

总结:

Anubis 是一种通过增加抓取成本来保护网站服务器免受大规模抓取的机制。它目前依赖工作量证明,但未来计划通过更精确的指纹识别技术来优化用户体验。

90M people. 118 hours of silence. One nation erased from the internet

伊朗互联网大中断事件总结 (Summary of the Iran Internet Blackout)

以下是对内容的主要总结,不超过800字。

事件概述:

2026年1月,伊朗爆发大规模抗议活动,由于经济危机和通货膨胀,9000万伊朗人民受到影响。政府采取了前所未有的手段,切断了该国与互联网的连接,造成了长达150多个小时的“数字沉默”。

事件过程:

  • 平静时期 (Act I): 2025年12月,伊朗抗议活动爆发,但互联网依然稳定运行,每天有120万条路由更新。
  • 尖叫 (Act II): 2026年1月8日凌晨3点(UTC时间),政府下令切断互联网。路由器流量急剧增加,路由信息混乱,网络自我破坏。
  • 传染 (Act III): 伊朗国内所有主要的网络运营商(包括Irancell、MCI、Rightel、Shatel、Afranet等)同时崩溃,这表明这是一次协调一致的破坏行动。
  • 协议清洗 (Act IV): 政府优先保留IPv4协议,几乎完全切断了现代互联网协议IPv6,并试图控制国家信息网络。
  • 零点时刻 (Interlude): 在一个特定的时间点(1月8日11:00 UTC),IPv6完全失效,IPv4严重受损,Starlink信号也消失。
  • 三线攻击 (Act V): 互联网中断采取了三方面协同攻击:协议层(IPv6被完全切断,IPv4受损)、卫星层(Starlink信号被干扰)、路由层(BGP路由崩溃)。
  • 狩猎 (Act VI): 公民试图通过VPN、加密通讯工具和Tor等方式绕过封锁,但政府积极追踪并封锁这些工具。
  • 大脱钩 (Act VII): 中断前,伊朗有48家国外运营商提供连接,中断后仅剩44家,净损失了20家。俄罗斯的Rostelecom完全切断了与伊朗的连接,而阿塞拜疆的Delta Telecom则成为了伊朗仅存的互联网生命线。

关键发现:

  • 同步性 (Evidence A): 10个主要的网络运营商在同一3小时窗口内同时崩溃。
  • 内部隔离 (Evidence B): Afranet网络(负责伊朗国内服务)的流量激增,证明此次中断不仅仅是为了屏蔽外部世界,更是为了重新配置整个国家信息网络。
  • 协议优先: IPv6被比IPv4更彻底地切断,表明政府希望控制过去,扼杀未来。
  • 基础设施武器化: 政府不仅切断了公民的互联网连接,还重新塑造了网络拓扑结构,使其更容易被控制。

人道主义代价:

  • 估计有2万多人死亡。
  • 2571+人得到独立证实。
  • 18000多人被捕。
  • 614+个抗议地点。

国际反应:

  • 联合国发起了调查,呼吁恢复互联网连接,结束暴力压制,并释放被拘留的抗议者。
  • 美国考虑对伊朗的贸易伙伴征收关税,并与马斯克讨论恢复Starlink服务。
  • 英国实施了针对伊朗能源、交通和核领域的制裁。
  • Amnesty International 谴责互联网中断侵犯人权。

总结:

这次互联网中断不仅仅是一次技术故障,更是一次有计划的军事行动,旨在压制抗议活动,并控制伊朗的网络环境。这次事件凸显了互联网在现代社会中的重要性,以及政府滥用技术力量的潜在危险。

The truth behind the 2026 J.P. Morgan Healthcare Conference

J.P. 摩根医疗保健大会:一个地下的世界? (J.P. Morgan Healthcare Conference: A Subterranean World?)

这篇文章探讨了每年在旧金山举行的 J.P. 摩根医疗保健大会的怪异之处,将其与 17 世纪学者阿塔纳修斯·基尔赫尔的著作《地下世界》(Mundus Subterraneus)中的奇幻世界进行了类比。文章提出了一个大胆的假设:这个会议可能不是表面看起来那样,而是一个复杂的社会约定,甚至可能与隐藏在加利福尼亚州地下的巨大生物有关。

核心要点:

  • 基尔赫尔的《地下世界》: 文章以阿塔纳修斯·基尔赫尔的著作开篇,描述了基尔赫尔基于二手资料构建的地下世界的奇幻地图,充满了河流、海洋、空气通道以及各种奇异生物,例如巨人和龙。这象征着人们对未知世界的探索,以及基于传闻和猜测建立的信念。
  • J.P. 摩根医疗保健大会的神秘性: 作者指出,尽管 J.P. 摩根医疗保健大会每年都在旧金山西斯汀酒店举行,并且有网站、文章和社交媒体帖子证实其存在,但很少有人真正参与过会议。 就像基尔赫尔从未真正深入地下一样,作者也从未亲身经历过会议的实际场景,而是像其他人一样,绕着会议“运转”。
  • 人工智能主题: 会议的六个核心主题都围绕人工智能展开,包括药物发现、诊断、运营效率、远程医疗、合规性和伦理。这集中了对人工智能的讨论,让人感到有些不自然。
  • 与“大月球骗局”的相似之处: 文章将会议的报道与 1835 年的“大月球骗局”进行了对比,当时《纽约太阳报》声称天文学家约翰·赫歇尔发现了月球上的生命。 尽管这些说法是虚假的,但它们因为使用了看似真实的细节而获得了成功。作者认为,J.P. 摩根医疗保健大会的报道也呈现出相似的特征:缺乏个人轶事和情感,语言空洞,让人怀疑其真实性。
  • 舍林点 (Schelling Point): 文章引入了经济学家托马斯·舍林的概念——舍林点,指的是在没有沟通的情况下,人们会自发聚集的地点。作者认为,J.P. 摩根医疗保健大会的举办地点和时间,可能是一种深植于人类基因中的协调本能的体现。
  • 加利福尼亚州与地下生物的联系: 文章提出了一个大胆的假设:加利福尼亚州可能建立在一个巨大的生物之上,而西斯汀酒店正是这个生物的心脏位置。作者推测,每年会议期间,药物通过酒店的管道输送到这个生物体内,维持其生命。
  • 行业集会与生物维护: 作者认为,生物技术行业的蓬勃发展,实际上是为了维持这个生物的生命,而人类应用只是为了回收投资。临床试验的失败,以及行业集中在旧金山等地的现象,都是与此相关的。
  • 西斯汀酒店的永恒: 作者强调,西斯汀酒店从未关闭或停止运营,即使在地震中也幸存下来。这表明酒店在维持加利福尼亚州生物的生命中扮演着关键角色。

总结:

文章以一种戏谑和思辨的方式,质疑了 J.P. 摩根医疗保健大会的真实性和意义。它提出了一个大胆的假设,即这个会议可能不仅仅是一个行业集会,而是为了维护一个隐藏在地下的巨大生物而存在的。 尽管这种说法可能显得荒谬,但文章通过类比、历史事件和经济学概念,为这种观点提供了一些有趣的论据,并引发了对我们社会中隐藏力量和协调机制的思考。

ASCII Clouds

内容摘要

这份内容描述了一系列参数设置,它们可能用于一个视觉效果生成或图像处理程序。 这些参数主要控制了噪声、视差(Vignette)、颜色以及图形符号(Glyph)的表现。

以下是各项参数的详细说明:

1. 噪声 (Noise)

  • Cell Size (单元格大小): 18 - 表明噪声生成的基本单元大小。
  • Wave Amplitude (波幅): 0.50 - 控制噪声波形的振幅,影响噪声的强度。
  • Wave Speed (波速): 1.00 - 控制噪声波形的传播速度。
  • Noise Intensity (噪声强度): 0.125 - 整体控制噪声的强度。
  • Time Speed (时间速度): 1.5 - 控制噪声随时间变化的速率。
  • Seed (种子): - 用于噪声生成算法的随机种子,相同的种子会产生相同的噪声模式。

2. 视差 (Vignette)

  • Intensity (强度): 0.50 - 控制视差效果的强度,影响图像边缘的暗淡程度。
  • Radius (半径): 0.50 - 控制视差效果的影响范围,即暗淡效果开始作用的半径。

3. 颜色 (Color)

  • Hue (色相): 180 - 指定颜色的色相,以度数为单位,范围通常为 0-360。 180 度对应绿色。
  • Saturation (饱和度): 0.50 - 控制颜色的鲜艳程度。
  • Brightness (亮度): 0.00 - 控制颜色的亮度。
  • Contrast (对比度): 1.25 - 控制图像中明暗区域之间的差异程度。

4. 图形符号阈值 (Glyph Thresholds)

这一部分定义了用于识别和渲染不同图形符号的阈值。 这些符号包括:

  • . dot (点): 0.25 - 点符号的阈值。
  • - dash (短划线): 0.30 - 短划线的阈值。
  • + plus (加号): 0.40 - 加号符号的阈值。
  • O ring (圆环): 0.50 - 圆环符号的阈值。
  • X cross (交叉): 0.65 - 交叉符号的阈值。

这些阈值可能用于根据图像中像素的某种属性(例如亮度或颜色)来识别和绘制这些符号。 大于阈值的像素可能被解释为相应的符号的一部分。

No management needed: anti-patterns in early-stage engineering teams

初创公司早期阶段的工程管理:少做、别管、专注产品 (Early-Stage Engineering Management: Do Less, Don't Manage, Focus on the Product)

本文面向种子轮和A轮融资的初创公司创始人,探讨了早期阶段的工程管理问题,如团队建设、工程师激励、工作分配和项目优先级排序。文章的核心观点是:如果创始人觉得自己遇到了工程管理问题,很可能正确的解决方案是:什么都不要做,不要管理,而是回归到构建产品和与用户沟通。

以下是文章的主要内容:

1. 不要试图激励你的工程师 (Do Not Try to "Motivate" Your Engineers)

许多创始人担心工程师不够努力,因此会采取一些措施来“激励”他们,例如:

  • 强制或庆祝长时间工作(996文化)
  • 安排非紧急的周末会议
  • 过度管理任务,要求工程师汇报工作进展

这些做法弊大于利,会导致优秀工程师流失,并浪费创始人的精力。真正的激励是工程师固有的品质。 创始人应该专注于招聘有动机的工程师,并创造一个让他们能够充分发挥才能的环境。

创始人应该寻找以下特征来评估工程师的动机:

  • 过去的实际表现,而非仅仅是表面上的努力
  • 面对逆境时的韧性
  • 对技术的热情和好奇心
  • 快速决策和行动导向

创始人自身也应保持高度的积极性,成为团队的榜样。

2. 不要过早地招聘管理者 (Do Not Hire Managers Too Soon)

招聘管理者是初创公司从构建产品转向构建公司的标志。过早的管理者招聘会分散精力,优化一个不断变化的目标。在产品市场契合度不明确,产品仍在早期阶段时,管理者会产生大量与当前阶段无关的管理工作。

在拥有至少一位技术创始人且团队规模为5-6人时,不应招聘管理者或将现有员工提升为管理者。创始人应专注于招聘优秀人才,并保持团队的自组织性。

当团队规模达到10-15人,由2-3个小组组成时,可以考虑引入管理角色,但应由技术合伙人(通常是CTO)直接管理所有工程师,以保持执行速度和文化一致性。初期可以考虑采用混合角色,例如兼顾编码和管理的管理者,或提升关键工程师为非正式的技术负责人。

3. 不要模仿谷歌 (Do Not Copy Google)

不要盲目模仿其他成功公司的管理实践,特别是谷歌。 创始人应该选择简单、成熟、可靠的管理工具,就像选择 "node & postgres" 技术栈一样,避免不必要的创新。

4. 早期阶段的“无聊”管理栈 (The "Boring" Stack of Seed-Stage Management)

对于早期阶段的初创公司,以下管理活动是有效的:

  • 招聘有内在动机的工程师
  • 快速且公正地处理招聘失误
  • 采用异步状态更新,避免不必要的 Scrum 仪式
  • 控制 Slack 的使用
  • 进行有针对性的 1:1 会议,而非定期例行会议
  • 使用非结构化的文档,而非复杂的记录系统
  • 保持极高的透明度,让所有团队成员都能访问关键信息。

总之,该文章强调,早期阶段的创始人应该专注于产品和用户,避免过度管理,并选择简单可靠的管理方法,将精力投入到解决客户问题上。

The $LANG Programming Language

关于“The $LANG 编程语言”的 Hacker News 帖子整理

本文总结了 Hacker News 上以“The {name} programming language”为标题的帖子,以及相关的 "Show HNs of programming languages" 列表。这些列表旨在收集和整理 Hacker News 上介绍各种编程语言的帖子。

主要内容:

  • 传统与整理: Hacker News 存在一种传统,即以“The {name} programming language”为标题的帖子,类似于学术论文和书籍的命名方式。作者整理了这些帖子,创建了两个列表:
    • https://news.ycombinator.com/thelang: 记录了各种编程语言的介绍性帖子,为静态列表。
    • https://news.ycombinator.com/showlang: 记录了编程语言的 Show HN 帖子(展示项目)。同样为静态列表。
  • 更新问题: 目前这两个列表是静态的,作者希望能够找到更新它们的方法。
  • 知名案例: 文章列举了几个比较知名的“The {name} programming language”帖子:
    • Go 编程语言:2009 年 11 月 (219 条评论)
    • Rust 编程语言:2010 年 7 月 (44 条评论)
    • Julia 编程语言:2012 年 2 月 (203 条评论)
    • Swift 编程语言:2014 年 6 月 (926 条评论)
  • 趣味性: 作者提到,虽然知名案例很有价值,但更具趣味性的是那些不那么常见和更具实验性的编程语言。
  • “新”的定义: 文章指出,“新”可能意味着“旧”, 链接到了一篇关于老旧编程语言的帖子。

总而言之,文章介绍了 Hacker News 上关于编程语言的独特传统,并分享了相关的资源列表,以及对未来更新这些列表的期望。

1000 Blank White Cards

1000 张白卡 (1000 Blank White Cards) 游戏总结

概述:

1000 张白卡 (1000 Blank White Cards) 是一种派对卡牌游戏,其独特之处在于游戏规则和卡牌内容都是在游戏过程中由玩家共同创造的。游戏活跃于1996年至今,被归类为派对游戏、卡牌游戏以及一种名为“Nomic”的游戏类型。 游戏适合各个年龄段的玩家,规则灵活,鼓励玩家进行卡牌创作和规则修改。

游戏机制:

  • 卡牌创建: 游戏开始时通常会有少量预先制作的卡牌,但大部分卡牌是在游戏过程中由玩家即时创作完成。玩家通过绘制、书写等方式在空白卡片上添加内容,创造出新的卡牌。
  • 游戏流程: 游戏通常分为三个阶段:卡牌创建、游戏进行和尾声。游戏过程中,玩家轮流抽取卡牌并进行游戏,卡牌效果可能影响其他玩家或整个游戏。
  • 规则制定: 游戏规则并非固定,而是随着游戏进行而不断演变。玩家可以根据需要添加、修改或废除规则。
  • 尾声: 游戏结束后,玩家会共同决定保留哪些卡牌,作为下次游戏的起始卡牌。

卡牌结构:

卡牌通常包含标题、图片和规则描述。标题用于唯一标识卡牌,图片可以是简单的涂鸦,规则描述则定义了卡牌对游戏的影响,例如奖励分数、限制行动或改变游戏规则。

游戏特点:

  • 高度自由: 游戏几乎没有限制,鼓励玩家发挥创造力,设计各种各样的卡牌和规则。
  • 自我修改: 游戏规则可以随时修改,使得每次游戏体验都不同。
  • 社交性强: 游戏需要玩家之间的互动和合作,共同创造游戏内容。
  • 持续性: 玩家可以保存和重复使用卡牌,使得游戏可以持续进行,并不断扩展。

历史与传播:

该游戏由 Nathan McQuillen 于 1995 年在威斯康星州麦迪逊创造,最初通过社交网络和校园团体传播。后来,它出现在 GAMES 杂志上,并在 Hoyle's Rules of Games 中被收录,从而在游戏界获得更广泛的认可。

其他信息:

  • 玩家数量:可变
  • 准备时间:可变
  • 游戏时间:可变
  • 技能要求:卡通绘制、讽刺理解
Games Workshop bans staff from using AI

Games Workshop 宣布禁止在内容创作和设计流程中使用人工智能

摘要:

Games Workshop (GW),《战锤》系列的制造商,已宣布禁止在内容制作和设计流程中使用人工智能 (AI)。尽管部分高级管理人员正在探索AI技术,但公司总体上对该技术持谨慎态度。

主要内容:

  • 禁止使用AI: GW 明确禁止员工使用AI生成内容或将其应用于设计流程,包括比赛中。
  • 谨慎探索: 少数高级管理人员被允许继续研究AI技术,但公司强调将保护其知识产权并尊重人类创作者。
  • 投资于人类创造力: GW持续投资于其《战锤》工作室,招聘概念艺术、写作和雕塑等多个领域的创意人才。
  • 对AI的担忧: GW担心AI可能带来的数据合规、安全和治理问题,以及AI技术可能在未经授权的情况下被嵌入设备中。
  • 社区反应: 近期,Displate 因其官方《战锤40,000》艺术作品疑似使用生成式AI而受到粉丝质疑,这突显了粉丝对官方艺术作品中AI参与的强烈反对。GW的《战锤40,000》规则书(Codex)中包含大量精美的官方艺术作品,如果这些作品被证实使用了AI,可能会引发社区强烈反弹。
  • 行业对比: 尽管GW采取谨慎态度,但其他一些娱乐公司,如EA、Square Enix等,正积极拥抱AI技术,甚至将其视为核心业务。

背景信息:

Games Workshop 运营着多个受欢迎的桌面战棋游戏,包括《战锤40,000》和《命运之征》。其核心业务是销售用于游戏的小型模型和套装,但也投资于书籍、艺术品和动画制作等其他创意领域。

总结:

Games Workshop 采取了与行业内其他公司不同的策略,强调保护人类创造力并对AI技术持谨慎态度,以维护其知识产权和忠实粉丝群。

The insecure evangelism of LLM maximalists

LLM 生产力怀疑论:总结

这篇文章表达了作者对大型语言模型 (LLM) 在软件开发中的生产力潜力,特别是针对“提示驱动开发”和“情感编码”的怀疑态度。作者并非完全否定 LLM 的价值,而是将其视为一种有用的“数字文员”,擅长网页搜索、文档查找和算法查找,甚至在有限的编码场景下也能提供帮助,前提是上下文小且指导明确。

主要观点:

  • LLM 的实用性: 作者认可 LLM 作为辅助工具的价值,尤其是在信息检索和简单编码任务方面。
  • 对“情感编码”的失望: 作者认为使用 LLM 进行“情感编码”或“代理式 LLM 开发”体验令人失望,需要大量的监督,代码更改缓慢且经常出错,导致效率低下。
  • 对过度宣传的质疑: 作者对那些宣称 LLM 将彻底改变软件开发的“福音派”表示质疑,认为他们过于激进,并试图说服不认同他们观点的人。
  • 心理投射的分析: 作者认为 LLM 的过度宣传可能源于 LLM 使用者自身的不安全感。他们可能因为意识到 LLM 的能力超过了自身的编程水平,而将这种不安投射到不采用 LLM 的开发者身上。
  • 开放的态度: 作者承认自己可能存在理解偏差,并且愿意接受 LLM 技术的进步。作者也呼吁 LLM 宣传者反思,是否仅仅是因为自身编程能力不足而对 LLM 抱有过度依赖。

核心论点:

作者的核心论点是,一些 LLM 宣传者可能并非出于对技术的真正信念,而是出于自身不安全感的心理投射。他们试图通过推广 LLM 来掩盖自身在传统编程技能方面的不足。

总结:

总而言之,文章表达了一种对 LLM 生产力潜力的谨慎态度,强调了在拥抱新技术时保持批判性思维的重要性,并呼吁理性看待 LLM 在软件开发中的作用。作者并非完全否定 LLM 的价值,而是希望避免盲目跟风,并鼓励 LLM 宣传者更加客观地评估技术的优缺点。


中文翻译:

这篇文章表达了作者对大型语言模型 (LLM) 在软件开发中的生产力潜力,特别是针对“提示驱动开发”和“情感编码”的怀疑态度。作者并非完全否定 LLM 的价值,而是将其视为一种有用的“数字文员”,擅长网页搜索、文档查找和算法查找,甚至在有限的编码场景下也能提供帮助,前提是上下文小且指导明确。

主要观点:

  • LLM 的实用性: 作者认可 LLM 作为辅助工具的价值,尤其是在信息检索和简单编码任务方面。
  • 对“情感编码”的失望: 作者认为使用 LLM 进行“情感编码”或“代理式 LLM 开发”体验令人失望,需要大量的监督,代码更改缓慢且经常出错,导致效率低下。
  • 对过度宣传的质疑: 作者对那些宣称 LLM 将彻底改变软件开发的“福音派”表示质疑,认为他们过于激进,并试图说服不认同他们观点的人。
  • 心理投射的分析: 作者认为 LLM 的过度宣传可能源于 LLM 使用者自身的不安全感。他们可能因为意识到 LLM 的能力超过了自身的编程水平,而将这种不安投射到不采用 LLM 的开发者身上。
  • 开放的态度: 作者承认自己可能存在理解偏差,并且愿意接受 LLM 技术的进步。作者也呼吁 LLM 宣传者反思,是否仅仅是因为自身编程能力不足而对 LLM 抱有过度依赖。

核心论点:

作者的核心论点是,一些 LLM 宣传者可能并非出于对技术的真正信念,而是出于自身不安全感的心理投射。他们试图通过推广 LLM 来掩盖自身在传统编程技能方面的不足。

总结:

总而言之,文章表达了一种对 LLM 生产力潜力的谨慎态度,强调了在拥抱新技术时保持批判性思维的重要性,并呼吁理性看待 LLM 在软件开发中的作用。作者并非完全否定 LLM 的价值,而是希望避免盲目跟风,并鼓励 LLM 宣传者更加客观地评估技术的优缺点。

The Tulip Creative Computer

郁金香创意电脑:音乐、图形、代码与写作的便携式可编程设备

Tulip

郁金香创意电脑 (Tulip CC) 是一款低功耗、价格实惠的便携式电脑,配备触摸屏显示器和扬声器。它完全可编程,您可以使用代码定义音乐、游戏或任何您能想到的东西。开机后立即进入 Python 提示符,并提供音乐合成、快速图形和文本、硬件 MIDI、网络访问以及外部传感器的大量内置支持。无需干扰或复杂操作,即可立即开始创作。

整个系统专用于您的代码、显示器和声音,在专用硬件上实时运行。硬件和软件均完全开源,任何人都可以 购买构建 郁金香电脑。 您可以使用郁金香电脑来创作音乐、编写代码、制作艺术品、开发游戏或仅仅是写作。

现在,您甚至可以在 网页上运行郁金香电脑,并与任何人分享您的作品!

郁金香电脑由 MicroPythonAMYLVGL 提供支持。郁金香电脑的硬件基于 ESP32-S3 芯片,使用 ESP-IDF

主要特点:

  • 硬件:
    • 8.5MB RAM (2MB 可供 MicroPython 使用,1.5MB 供操作系统使用,其余用于图形帧缓冲区和固件缓存)
    • 32MB Flash 存储 (24MB 留给操作系统)
    • AMY 立体声 120 声音合成引擎
    • 128x50 文本帧缓冲区,支持 ANSI 256 颜色
    • 最多 32 个屏幕上的精灵,支持碰撞检测
    • 1024x600 背景帧缓冲区,可用于绘制位图或作为 RAM
    • WiFi 网络连接
    • 可调节的显示时钟和分辨率 (默认 30 FPS at 1024x600)
    • 256 种颜色
    • 内置代码和文本编辑器
    • 内置 BBS 聊天室和文件传输区域 TULIP ~ WORLD
    • USB 键盘、MIDI 和鼠标支持
    • 电容式多点触摸支持
    • MIDI 输入和输出
    • I2C / Grove / Mabee 连接器
    • 575mA 功耗 @ 5V (包括显示器,中等亮度),可长时间使用 LiPo、18650 或 USB 电池组。
  • 软件:
    • 支持音乐合成、快速图形和文本
    • 内置 Python 提示符
    • 支持网络访问和外部传感器

使用方式:

郁金香电脑有三种使用方式:

  • 购买硬件 (Tulip CC)
  • 在网页上运行 (https://tulip.computer/run)
  • 运行为 Mac 或 Linux (或 Windows 的 WSL) 桌面应用 (Tulip Desktop)

其他资源:

When hardware goes end-of-life, companies need to open-source the software

内容摘要:关于硬件EOL时强制开源软件的呼吁

这篇文章呼吁欧洲委员会强制要求硬件产品达到生命周期终点(EOL)时,公司必须开源其软件。作者认为虽然“Right to Repair”运动取得了一些进展,但仍然需要更进一步。

主要观点:

  • 硬件EOL带来的浪费: 作者以自己的一款智能体重秤为例,说明了硬件功能完好,但由于App停止开发,导致产品基本失去实用价值的情况。类似的情况发生在许多电子产品上,造成了大量电子垃圾。Spotify于2024年末停止Car Thing项目就是一个例子,导致价值200美元的硬件迅速变成废弃物。
  • 开源软件的提议: 作者并非要求公司开源整个代码库,而是建议发布一个基本的GitHub仓库,包含硬件规格和连接协议。这样,社区可以基于这些信息构建自己的应用程序。
  • 降低开发门槛: 作者认为,随着“vibe-coding”等技术的发展,使得开发变得更加容易,即使是普通用户也能参与到硬件软件的开发中。
  • 风险可控: 作者强调,即使软件出现问题,最多也只是导致软件损坏,而硬件本身已经EOL,因此风险相对较低。
  • Bose的积极案例: 作者提到了Bose主动开源Soundtouch家庭影院智能音响的做法,认为这是一个值得效仿的例子,但目前此类行为仍然很少见。

总结:

文章的核心观点是,为了减少电子垃圾,提高硬件的可持续性,并赋予用户更多控制权,应该强制要求硬件厂商在产品EOL时开源软件,允许社区进行二次开发。作者提议的开源范围是一个基本的GitHub仓库,包含硬件规格和连接协议,降低了开发门槛,并认为风险可控。

The Gleam Programming Language

Gleam 语言简介:可靠、可扩展且易于使用的函数式编程语言

Gleam 是一种新型编程语言,它结合了类型系统的强大功能、函数式编程的表达能力以及 Erlang 运行时环境的高度并发性和容错性,同时提供了熟悉且现代的语法。

核心特性与优势:

  • 可靠且可扩展: Gleam 构建于经过实际检验的 Erlang 虚拟机之上,该虚拟机为 WhatsApp 和爱立信等行星级系统提供支持。它具备处理任何规模工作负载的能力。多核基于 Actor 的并发系统可以运行数百万个并发的绿色线程,快速的不可变数据结构以及不会导致系统停顿的并发垃圾回收器,使其能够轻松实现服务的扩展和保持高速运行。

  • 开箱即用: Gleam 包含编译器、构建工具、格式化工具、编辑器集成和包管理器,创建 Gleam 项目只需运行 gleam new 命令。

  • 丰富的生态系统: Gleam 能够利用 BEAM 生态系统中数千个已发布的包,这些包可以是 Gleam、Erlang 或 Elixir 编写的。

  • 易于使用和维护: Gleam 避免了空值和异常,提供了清晰的错误消息,并具有实用的类型系统,旨在让编码和维护代码的过程更加愉快和无压力。

  • 多语言支持: Gleam 方便地使用其他 BEAM 语言(如 Erlang 和 Elixir)编写的代码,从而利用了数千个开源库。

  • JavaScript 编译: Gleam 可以编译为 JavaScript,允许在浏览器或其他 JavaScript 运行的环境中使用代码。它还会生成 TypeScript 定义,方便从外部与 Gleam 代码进行交互。

  • 友好的社区: Gleam 社区欢迎来自世界各地、各种背景、性别和经验水平的人,并尊重每一位成员。社区遵循行为准则,倡导友善和包容。

代码示例:

  • Hello World:

    import gleam/io
    
    pub fn main() {
      io.println("hello, friend!")
    }
    
  • 并发示例:

    pub fn main() -> Nil {
      // 运行大量的绿色线程,没有问题
      list.range(0, 200_000)
      |> list.each(spawn_greeter)
    }
    
    fn spawn_greeter(i: Int) {
      process.spawn(fn() {
        let n = int.to_string(i)
        io.println("Hello from " <> n)
      })
    }
    
  • 包管理示例:

    ➜ (main) gleam add gleam_json
      Resolving versions
    Downloading packages
      Downloaded 2 packages in 0.01s
        Added gleam_json v0.5.0
    ➜ (main) gleam test
      Compiling thoas
      Compiling gleam_json
      Compiling app
        Compiled in 1.67s
         Running app_test.main
    .
    1 tests, 0 failures
    
  • 类型安全示例:

    error: Unknown record field
    
      ┌─ ./src/app.gleam:8:16
      │
    8 │ user.alias
      │     ^^^^^^ Did you mean `name`?
    
    The value being accessed has this type:
        User
    
    It has these fields:
        .name
    
  • Erlang/Elixir 互操作示例:

    @external(erlang, "Elixir.HPAX", "new")
    pub fn new(size: Int) -> Table
    
    
    pub fn register_event_handler() {
      let el = document.query_selector("a")
      element.add_event_listener(el, fn() {
        io.println("Clicked!")
      })
    }
    

总结:

Gleam 旨在成为一种可靠、可扩展且易于使用的现代函数式编程语言,它利用了 Erlang 虚拟机的强大功能,并结合了友好的开发体验。 它的多语言支持和 JavaScript 编译能力使其能够在各种环境中部署。

How to make a damn website (2024)

网站制作:从最简开始 (How to Make a Damn Website - Simplified)

本文探讨了制作网站的方法,强调从最简单的形式开始,逐步构建,而非依赖复杂的系统或工具。

核心观点:

  • 网站可以很简单: 一个网站可以仅仅是一个HTML文件,无需CSS、内容管理系统(如WordPress)等。
  • 先写内容: 建议首先编写一篇博客文章,使用纯HTML,而不是优先考虑设计、域名、托管或版本控制。
  • 纯HTML优先: 避免使用CSS、ID、class和div元素,专注于用最基本的HTML元素表达内容。
  • 持续发布: 核心在于“发布”,先发布一个简单的版本,然后逐步完善。

具体步骤和建议:

  1. 第一篇博客文章:
    • 使用文本编辑器(如TextEdit)编写HTML代码。
    • 避免使用CMS、设计、域名、托管等。
    • 专注于编写一篇实际的博客文章,内容可以关于为什么制作网站。
    • 保存为.html文件,例如how-to-make-a-damn-website.html
    • 将文件上传到服务器的“blog”文件夹中。
  2. RSS订阅:
    • 编写XML文件,提供博客订阅源。
    • 包含标题、链接、描述、语言等信息。
    • 每发布一篇新文章,将其添加到XML文件中,并确保guid(唯一标识符)的唯一性。
    • 将XML文件上传到网站根目录。
    • 使用RSS阅读器订阅博客。
  3. 索引页面:
    • 创建根目录下的索引页面,链接到“blog”目录。
    • 在“blog”目录下的索引页面,链接到第一篇博客文章。
  4. 持续迭代:
    • 编写更多博客文章,尝试不同的HTML元素。
    • 逐步添加CSS样式,从小处着手,逐步改进。
    • 持续更新索引页面。

重要提示:

  • 避免过度设计: 现代网站制作往往过度复杂,本文建议专注于内容,逐步构建网站。
  • 手动制作的价值: 手动制作网站虽然看起来“原始”,但可以避免不必要的复杂性和对工具的依赖。
  • “网站”的本质: 网站的核心是内容,一个简单的HTML页面也可以构成一个有效的网站。
  • 最难的部分是开始: 真正困难的是开始行动,发布内容,而不是准备工作。

总而言之,本文鼓励读者从最简单的形式开始制作网站,逐步添加功能,强调内容的重要性,并避免过度设计和复杂的工具。

A 40-line fix eliminated a 400x performance gap

好的,以下是根据您提供的英文内容生成的中文摘要,字数控制在800字以内,不包含个人观点和未提及的信息,并采用Markdown格式:

OpenJDK 性能优化:告别 /proc,拥抱 clock_gettime

OpenJDK 近期出现了一项值得关注的性能优化,通过替换获取线程 CPU 时间的方式,显著提升了 ThreadMXBean.getCurrentThreadUserTime() 的性能。

问题背景:低效的 /proc 解析

最初,OpenJDK 在 Linux 系统上通过读取 /proc/self/task/<tid>/stat 文件来获取线程的用户 CPU 时间。这个过程涉及:

  1. 格式化路径
  2. 打开文件
  3. 读取数据到缓冲区
  4. 解析复杂格式(命令名可能包含括号)
  5. 使用 sscanf 提取字段
  6. 转换时钟周期到纳秒

这种方法效率低下,正如原始 Bug 报告(JDK-8210452)所示,getCurrentThreadUserTime() 的速度比 getCurrentThreadCpuTime() 慢 30 到 400 倍,尤其在并发环境下表现更差。/proc 路径涉及多次系统调用、VFS 机制、内核字符串格式化以及用户空间的解析,增加了延迟和内核锁竞争的风险。

解决方案:利用 clock_gettime 和 Linux 特性

新的解决方案利用了 clock_gettime() 函数,该函数通常用于获取系统时间。但更重要的是,代码利用了 Linux 内核中一个鲜为人知的特性:clockid_t 值的位编码。

自 Linux 内核 2.6.12 版本起,clockid_t 包含了线程 ID 的编码信息。通过将 pthread_getcpuclockid() 返回的 clockid_t 的低两位比特位从 10 (SCHED,总 CPU 时间) 更改为 01 (VIRT,仅用户时间),clock_gettime() 就能直接返回用户 CPU 时间。

具体实现

新的代码主要包括:

  • get_thread_clockid() 函数:根据是否需要总 CPU 时间,调整 clockid_t 的比特位。
  • user_thread_cpu_time() 函数:利用 get_thread_clockid() 获取 clockid_t,然后调用 os::Linux::thread_cpu_time() 获取时间。

性能提升

通过 JMH 基准测试,优化后的 getCurrentThreadUserTime() 的平均延迟从 11 微秒降至 279 纳秒,性能提升了 40 倍。CPU 性能分析显示,优化前涉及多次系统调用和文件 I/O,而优化后只涉及一次系统调用,显著减少了开销。

更进一步的优化:利用 PID=0 快路径

作者还发现了一个更进一步的优化机会。当 clockid 中编码的 PID 为 0 时,Linux 内核会使用一种更快的路径来获取 CPU 时间,避免了树查找。通过手动构造 clockid 并将 PID 设置为 0,可以触发此快路径,进一步提升性能,平均延迟降低了约 13%。

总结

这篇优化展示了深入了解操作系统内核细节可以带来的巨大性能提升。通过利用 Linux 特有的特性,OpenJDK 成功地告别了低效的 /proc 解析,拥抱了更快速、更高效的 clock_gettime() 接口。预计 JDK 26 将包含此优化,为用户带来显著的性能提升。

关键词: OpenJDK, 性能优化, Linux, clock_gettime, /proc, 线程 CPU 时间, ThreadMXBean

Minor says ICE took his iPhone, later found in used-electronics vending machine

移民局特工使用危险战术的调查报告

主要发现:

本调查揭示了移民局特工在执法过程中使用危险战术的广泛现象,包括扼喉、膝盖压迫等,这些行为对平民的生命安全构成了威胁。调查发现超过40起此类事件,许多事件都通过社交媒体曝光。

关键细节:

  • 扼喉及窒息战术: 调查人员记录了多起特工使用扼喉和类似窒息战术的案例,导致受害者昏厥甚至抽搐。一位16岁公民表示,他觉得自己“快要窒息死亡”。
  • 前警官的担忧: 多位前警官和移民官员在观看相关视频后表示震惊,认为特工的行为失控,并称这些行为应该导致特工被解雇。
  • 违规行为与缺乏惩罚: 尽管联邦政府禁止扼喉等战术,但调查显示,特工使用这些战术后并未受到任何惩罚。
  • 执法过度: 调查记录了多起特工在拘捕过程中使用不必要的武力,包括膝盖压迫和将人按倒在地。
  • 与乔治·弗洛伊德事件的关联: 这些行为的出现,与乔治·弗洛伊德被警察杀害的事件形成鲜明对比,当时警方和联邦机构都已禁止扼喉等战术。
  • 政府的辩护: 美国国土安全部和白宫为特工的行为辩护,声称特工在执法过程中“遵循训练”并“使用必要的最小武力”。
  • 缺乏数据追踪: 政府并未公开追踪特工使用这些危险战术的次数,这使得评估情况变得困难。
  • 特定事件案例:
    • 阿诺尔多·巴赞案: 一名特工在对阿诺尔多的父亲进行拘捕时,对这位16岁公民使用了扼喉战术,导致他住院治疗。
    • 卡洛斯·塞巴斯蒂安·萨帕塔·里维拉案: 特工使用颈动脉压迫技术对一名男子进行拘捕,导致他抽搐并失去意识。
    • 路易斯·希波利托案: 特工对一名公民使用了扼喉战术,导致其身体抽搐。
  • 专家意见: 前警官和执法专家对特工的行为表示谴责,认为这些行为不专业且危险。

调查方法:

调查团队通过搜索法律文件、社交媒体帖子和地方新闻报道,收集了相关视频和信息。他们还咨询了八位前警官和执法专家,以评估这些视频的合理性。

结论:

本调查揭示了移民局特工在执法过程中滥用武力的现象,尤其是在使用危险战术方面。尽管政府采取了措施禁止这些战术,但特工的行为并未得到有效控制,平民的生命安全面临威胁。调查结果突显了对执法机构进行监督和问责的重要性,以确保其行为符合法律和道德规范。

A university got itself banned from the Linux kernel (2021)

摘要:关于明尼苏达大学与 Linux 内核社区的禁令事件

本文讲述了明尼苏达大学的一项研究引发的 Linux 内核社区风波,最终导致该校被禁止向 Linux 内核贡献代码。事件始于 2017 年,明尼苏达大学的系统安全研究员 Kangjie Lu 加入该校,并开始研究 Linux 内核的安全问题。

Lu 和他的团队开发了一些工具,用于自动检测开源软件中的错误,并提交补丁以修复这些错误。 然而,他们也进行了一项实验,旨在通过提交看似修复错误但实际上引入漏洞的“伪善补丁”来测试 Linux 内核的安全防线。

尽管研究人员声称此举旨在提高内核安全性,但 Linux 社区对此反应强烈,认为该行为不道德且浪费了维护者的时间。争议焦点在于,研究人员是否真的将漏洞引入内核,以及他们是否获得了社区的许可。一些开发者指出,明尼苏达大学的研究违反了社区信任,因为开源软件依赖于社区成员之间的信任和合作。

2021 年 4 月,Aditya Pakki 提交了一个可疑的补丁,进一步激化了矛盾。Kroah-Hartman 因此禁止明尼苏达大学的成员向 Linux 内核提交代码。随后,Linux 基金会向该校提出了四项要求,包括公开所有可疑补丁、撤回相关论文、确保未来研究获得伦理审查委员会的批准,以及获得实验对象同意。

目前,明尼苏达大学已撤回了论文并公开了研究细节。关于伦理审查委员会的批准和未来研究的承诺尚不明确。该事件引发了关于开源软件开发安全、社区信任以及研究伦理的广泛讨论。尽管社区对明尼苏达大学的研究表示不满,但也承认该研究突出了内核维护流程中存在的潜在漏洞,并呼吁加强审查机制。

I Love You, Redis, but I'm Leaving You for SolidQueue

Rails 8 移除 Redis,拥抱 SolidQueue:简化 Rails 应用架构

Rails 8 最新版本移除了 Redis 作为标准技术栈的一部分,不再依赖它来执行任务队列、缓存数据和发送实时消息。取而代之的是 Rails 的新功能:SolidQueue 用于任务队列,SolidCache 用于缓存,以及 SolidCable 用于处理 ActionCable 消息,它们均运行在应用程序现有的关系型数据库服务上(例如 PostgreSQL、SQLite 或 MySQL)。这意味着大多数 Rails 应用可以移除 Redis。

虽然 Redis 是一种快速、高效、可靠的关键值存储,被广泛应用于 Rails 任务队列和缓存,但它确实增加了复杂性。SolidQueue、SolidCache 和 SolidCable 的出现让作者意识到,关系型数据库表等“平庸的技术”也可以胜任专门解决方案的任务。

Redis 的真正成本

除了月度托管费用,Redis 还涉及部署、版本控制、补丁和监控服务器软件;配置持久化策略(RDB 快照、AOF 日志或两者结合);设置内存限制和驱逐策略。 此外,还需要维护 Rails 和 Redis 之间的网络连接、身份验证 Redis 客户端、构建高可用性 (HA) Redis 集群,以及协调部署生命周期。 出现问题时,需要同时调试 Redis 和关系型数据库,切换不同的查询语言和工具,以及维护两套备份策略。

相比之下,无 Redis 的 Rails 架构更简单:如果 Rails 或 PostgreSQL 出现故障,一切都会停止。

SolidQueue 的工作原理

SolidQueue 使用关系型数据库 (PostgreSQL) 替代了 Redis。PostgreSQL 9.5 引入了 FOR UPDATE SKIP LOCKED 语句,允许数据库支持高并发的数据库后台任务队列。

当 worker 需要任务时,会执行以下 SQL 查询:

SELECT * FROM solid_queue_ready_executions
WHERE queue_name = 'default'
ORDER BY priority DESC, job_id ASC
LIMIT 1
FOR UPDATE SKIP LOCKED

SolidQueue 的架构基于三个表:

  1. solid_queue_jobs: 存储所有任务的元数据,如任务名称、Ruby 类和时间戳。
  2. solid_queue_scheduled_executions: 存储计划任务,等待其到达执行时间。
  3. solid_queue_ready_executions: 存储准备就绪的任务,等待 worker 领取。

这些表的快速读写可以由 PostgreSQL 的 MVCC 设计轻松处理。

协调这些流程的是几个进程:

  • Workers: 以可配置的间隔(最快 0.1 秒)轮询 solid_queue_ready_executions
  • Dispatchers: 每秒轮询 solid_queue_scheduled_executions,将到期的任务移到 ready 表。
  • Schedulers: 管理循环任务,按照定义的计划将任务入队。
  • Supervisor: 监控所有进程,跟踪心跳并重启崩溃的进程。

Recurring Jobs (循环任务)

SolidQueue 内置了 Cron 风格的循环任务功能,无需额外库。 配置位于 config/recurring.yml

Job Concurrency (任务并发)

SolidQueue 允许限制单个任务的并发性,通过 limits_concurrency 参数实现。 例如,限制 ProcessUserOnboardingJob 任务的用户并发数为 1,持续 15 分钟。

Mission Control 监控

SolidQueue 提供 Mission Control Jobs,一个免费、开源的监控工具,用于查看任务状态、检查失败的任务、重试和丢弃任务、可视化计划任务时间表,以及管理队列。

迁移路径

迁移到 SolidQueue 的步骤包括:

  1. 将 Rails 队列适配器设置为 :solid_queue
  2. 安装 SolidQueue gem 并运行数据库迁移。
  3. 将 Sidekiq-cron 的计划转换为 config/recurring.yml
  4. 更新 Procfile 以启动 SolidQueue。
  5. 移除 Redis 和 Sidekiq 相关的 gem。

何时不使用 SolidQueue

如果应用需要处理数千个任务/秒,需要低于 1 毫秒的任务延迟,或者需要复杂的 pub/sub 模式或高强度计数器,则可能仍然需要 Redis。

总结

对于大多数 Rails 应用,SolidQueue 提供了一种更简单、更易于维护的替代方案,可以移除 Redis 并简化应用程序架构。

Let's be honest, Generative AI isn't going all that well

大型语言模型 (LLM) 的现状:记忆与局限

以下是对所提供新闻内容的总结:

近期新闻表明,人们对大型语言模型 (LLM) 的预期需要重新评估。主要观点如下:

  1. LLM 的可靠性问题: LLM 仍然不可完全信任。它们很大程度上依赖于记忆,而非真正的理解和推理。这与之前的一些观点存在争议,并得到进一步的证实。
  2. 价值贡献有限: LLM 目前对世界做出的可量化贡献相对较少。
  3. 扩展效果不佳: 仅仅通过扩展模型规模来解决 LLM 的问题可能不再有效,并且不太可能彻底解决这些问题。
  4. 经济和地缘政治政策的风险: 基于这种技术不成熟的 LLM 对经济和地缘政治政策进行调整,特别是基于其可能带来巨大改进的假设,是一种风险行为。

补充信息:

  • Remote Labor Index 的研究表明,AI 能够胜任的岗位比例仅为约 2.5%。
  • 《华盛顿邮报》也报道了这一研究结果。

总而言之,当前 LLM 存在显著的局限性,需要谨慎对待并避免过度依赖。

Are two heads better than one?

三个脑袋总比两个好

2025年12月9日

本文提出一个有趣的博弈问题:你和两个朋友,爱丽丝和鲍勃,玩一个游戏。鲍勃先抛硬币,并向爱丽丝展示结果。爱丽丝会告诉你她看到的结果,但她有20%的几率说谎。你根据爱丽丝的说法猜测硬币是正面还是反面。

最佳策略是相信爱丽丝的说法。 这样你猜对的概率是80%。

现在鲍勃加入游戏,他独立于爱丽丝做出判断,并且也有20%的几率说谎。

问题是:有了鲍勃的帮助,你能做得更好吗?

答案是:不能! 你仍然只有80%的概率猜对。

证明过程:

作者通过模拟实验来验证这个结论。模拟代码(Python)重复抛硬币一百万次,记录爱丽丝和鲍勃的说法,并观察结果。策略是:根据爱丽丝和鲍勃的说法,判断最可能的结果(例如,“爱丽丝说正面”),然后猜测最可能的结果。

模拟结果:

  • 只考虑爱丽丝: 猜对的概率为80%。
  • 考虑爱丽丝和鲍勃: 猜对的概率仍然为80%。

原因分析:

引入第二个人(鲍勃)会引入平局的可能性。当爱丽丝和鲍勃意见一致时,他们说真话的概率很高(约94%)。但当他们意见不一致时(约32%),你无法判断哪个是正确的,相当于没有信息。

扩展到更多人:

如果再加入一个朋友查理(同样有20%的几率说谎),猜对的概率会显著提高到90%。但如果再加入一个朋友大卫,情况又会回到80%的概率,因为会引入四人意见不一致的情况。

总结:

作者指出,当人数为奇数时,增加朋友并不能提高猜对的概率。这与投票理论中的康多塞陪审团定理相关,该定理表明,如果每个选民正确投票的概率大于50%,那么随着选民人数的增加,正确投票的概率会趋近于100%。

结论:

本文通过模拟和数学分析,揭示了一个有趣的现象:在特定条件下,增加参与者并不能提高决策的准确性。这与在博弈中进行投注的情况不同,在投注中,增加信息通常会提高收益。

Show HN: OSS AI agent that indexes and searches the Epstein files

埃普斯坦档案摘要 (Epstein Archive Summary)

本摘要概述了埃普斯坦档案的主要内容和功能。

核心内容:

埃普斯坦档案包含了大量索引化的记录,涵盖了电子邮件、消息、航班记录、法庭文件以及其他各类文件。 这些文件来源于埃普斯坦及其相关人员的活动。

主要功能:

目的:

档案的目的是公开埃普斯坦及其相关人员的记录,以便公众可以对其活动进行审查和了解。

图片说明:

图片显示了“Epstein”字样,可能用于标识档案的内容。

总结:

埃普斯坦档案是一个包含大量索引化记录的数据库,利用人工智能技术提供搜索功能,旨在公开埃普斯坦及其相关人员的活动信息。

Show HN: Nogic – VS Code extension that visualizes your codebase as a graph

Nogic 代码库可视化工具总结

Nogic 是一个用于可视化代码库结构的工具,旨在帮助开发者更好地理解和导航大型项目。它提供交互式图表,展示文件、类和函数之间的关系。

核心功能:

  • 统一视图 (Unified View): 以交互式分层图表浏览文件、类和函数。
  • 看板 (Boards): 创建自定义看板,用于组织和聚焦代码库的特定部分。
  • 类图 (Class Diagrams): 展示类之间的关系、继承和方法结构。
  • 调用图 (Call Graphs): 追踪函数调用和代码库中的依赖关系。
  • 快速搜索 (Quick Search): 使用 Cmd/Ctrl+K 快速查找元素。
  • 自动同步 (Auto-sync): 代码更改自动反映在可视化结果中。

支持语言:

目前支持 JavaScript、TypeScript 和 Python。 更多语言和框架预计未来会支持。

使用方法:

  1. 打开命令面板 (Cmd+Shift+P / Ctrl+Shift+P)。
  2. 运行 Nogic: Open Visualizer
  3. 在资源管理器中右键单击文件或文件夹,选择 Add to Nogic Board

工具会在打开可视化器时自动索引代码库(如果授予权限)。

常用命令:

  • Nogic: Open Visualizer: 打开交互式可视化器。
  • Nogic: Create New Board: 创建新的看板。
  • Add to Nogic Board: 将文件/文件夹添加到看板(右键菜单)。

使用技巧:

  • 右键单击资源管理器中的文件或文件夹以添加到看板。
  • 双击节点以在编辑器中打开文件。
  • 单击节点以展开并查看方法。
  • 拖动以平移,滚动以缩放。

项目地址: nogic.dev Discord: https://discord.gg/rXfZQXPc

Why we don’t use AI

Yarn Spinner 对人工智能的立场:避免支持伤害性工具 (Yarn Spinner's Stance on AI: Avoiding Supporting Harmful Tools)

核心观点: Yarn Spinner 团队明确表示,他们不会使用当前的人工智能技术,也不会将其整合到 Yarn Spinner 产品中,原因在于他们认为这些技术正在被用于伤害他人,并支持了他们不认同的公司行为。

历史回顾: 团队成员过去在人工智能和机器学习(AI/ML)领域有丰富的研究和实践经验,包括为游戏开发和非程序员提供关于人工智能的讲座,以及使用机器学习技术开发游戏内的机器人。他们曾经对人工智能的潜力感到兴奋,但随着时间的推移,他们观察到人工智能发展方向发生了变化。

问题所在:

  • 劳工问题: 团队认为,当前人工智能公司的主要目标是减少员工数量或要求员工付出更多工作而无需招聘新员工。
  • 价值观冲突: 他们对人工智能公司推崇的生成图像、聊天机器人和艺术摘要等应用方式感到担忧,认为这些方式忽视了文化偏见、缺乏可解释性等问题,并压制了对这些问题的关注。
  • 技术导向开发: 团队反对“为了使用某个工具而开发”的技术路线,强调工具应该服务于帮助开发者创造更好游戏的目标。

未来展望:

  • Yarn Spinner 团队将继续坚持以游戏开发者的需求为导向,不断探索和改进产品功能,而不是盲目追随人工智能潮流。
  • 他们表示,未来如果人工智能技术发生改变,并能解决当前存在的问题,他们可能会重新评估其应用。

常见问题解答:

  • 为什么只关注裁员问题? 团队承认人工智能存在诸多问题,裁员只是其中一个,但由于其紧迫性和直接性,选择以此为切入点。
  • 为什么不自己开发符合伦理的人工智能工具? 团队认为,开发人工智能工具耗时且风险高,并且个人开发无法阻止其他人继续使用不道德的工具。
  • 如果老板要求使用人工智能,我该怎么办? 团队理解个人需要保住工作,但仍然鼓励人们尽可能地抵制使用人工智能。
  • 我喜欢使用人工智能,而且我的工作也没有受到影响,这有问题吗? 团队认为,即使个人没有受到直接影响,使用人工智能仍然会支持相关公司,并间接导致他人受到伤害。
  • 你们是人工智能的反对者吗? 团队表示,他们并非反对人工智能本身,而是反对那些利用人工智能技术谋取私利、损害他人利益的公司。

总结: Yarn Spinner 团队对当前人工智能的发展方向表示担忧,并选择不使用或支持相关技术,以维护其价值观和对游戏开发者的承诺。他们强调,工具应该服务于创造力,而不是成为取代人类劳动的工具。

Instagram AI Influencers Are Defaming Celebrities with Sex Scandals

AI 生成影响者在 Instagram 上发布虚假色情图片:总结

以下是对原文的总结:

主要内容:

  • 虚假图片传播: AI 生成的影响者正在 Instagram 上发布虚假图片,这些图片伪装成与勒布朗·詹姆斯、iShowSpeed、巨石强森以及委内瑞拉总统尼古拉斯·马杜罗等名人发生性行为的场景。
  • 未披露的 AI 生成内容: 这些图片是 AI 生成的,但没有明确声明,这违反了 Instagram 的政策。
  • 商业模式: 这种做法是 AI 生成色情内容的商业模式的一部分,通过在 Instagram 上发布引人注目的内容来吸引用户,并将他们引导至成人内容网站,在该网站上 AI 生成的影响者出售裸照。
  • 政策违规与平台监管问题: 该行为违反了 Instagram 的两个政策,并再次表明 Meta 平台未能有效控制 Instagram 上的 AI 生成内容。
  • 会员订阅: 文章提及了付费会员可以享受无广告访问文章、额外播客内容等特权,并提供了免费会员订阅选项。

核心要点:

  • AI 生成影响者利用虚假图片进行商业炒作,并利用名人形象吸引流量。
  • 缺乏透明度是关键问题,未明确告知用户内容为 AI 生成。
  • Meta 平台在监管 AI 生成内容方面面临挑战。