2025-06-08

34 篇热帖

2. Washington Post's Privacy Tip: Stop Using Chrome, Delete Meta Apps (and Yandex) (tech.slashdot.org)

隐私泄露问题核心:Meta的Facebook和Instagram应用及Yandex应用通过数字后门长期窃取用户数据,绕过Google为Android设备设置的隐私和安全保护,进行去匿名化追踪。研究人员指出,现有隐私设置无法阻止此类行为。

降低风险的建议措施

  • 停止使用Chrome浏览器:推荐改用Firefox、Brave或DuckDuckGo浏览器,这些浏览器能有效阻止跨站追踪。Chrome作为最流行浏览器缺乏此类保护。对于iPhone和Mac用户,Safari具有较强隐私保护但并非完美。注意:在Android设备上,Firefox部分易受攻击,而DuckDuckGo和Brave基本能阻止这些数据采集手段。
  • 删除Meta和Yandex应用:Meta(Facebook、Instagram)和Yandex应用会收集额外信息,如大致位置、电池电量、连接的其他设备(如Xbox)等,这些信息网站通常无法轻易获取。即使未安装这些应用或不使用其服务,Meta仍可能通过网络活动追踪用户。Yandex在美国不流行,但基于信任问题建议删除。
3. The librarian immediately attempts to sell you a vuvuzela (kaveland.no)

图书馆、搜索引擎与AI:信息获取方式的演变与担忧

本文通过一个图书馆的比喻,描述了现代互联网信息检索面临的困境:一个充满知识的图书馆,却被强行推销无关商品的管理员(比喻搜索引擎或广告系统)和只有广告没有实质内容的书籍(比喻SEO优化的低质量网页)所充斥。作者结合个人经历与研究,探讨了搜索引擎质量的下降、AI作为替代方案的兴起,以及其背后隐藏的商业动机与风险。

核心比喻与现状

  • 图书馆即互联网:一个浩瀚、充满可能性但难以导航的知识库。
  • 推销的管理员即搜索引擎/广告:其行为由财务动机驱动,干扰用户的自由探索。
  • 只有广告的书即SEO垃圾网页:表面标题相关,但内容空洞,仅为吸引点击或销售。
  • 个人观察与研究支持:作者回忆过去(2008-2012)搜索质量尚可,如今却常难觅所需。近期研究显示,搜索引擎与SEO垃圾的对抗中,搜索引擎似乎处于“猫鼠游戏”的劣势,且搜索结果中含联盟链接(即推广内容)的页面比例远高于开放互联网整体水平。

搜索功能的分类与困境

作者将搜索用途分为两类,并指出当前问题对第二类影响更大:

  1. 检索已知内容:用户知道答案的“形状”,如查找特定技术文档。此时搜索是记忆的延伸,但质量下降也会带来日常烦恼。
  2. 发现未知内容:用户不明确问题或解决方案,需探索性检索。这是更大的生产力提升来源,但也是SEO垃圾和广告的重灾区,因为模糊查询更容易被操纵和嵌入推广内容。

AI作为替代方案的兴起与隐忧

由于传统搜索引擎在发现未知内容方面体验下降,作者发现使用大语言模型(如Claude、ChatGPT)进行探索性搜索效果更佳。AI更能理解用户意图,交互形式灵活,且“很少试图向我推销任何东西”。

然而,作者提出了一个深刻的悖论:

  • AI的成功是源于解决了SEO垃圾问题,还是仅仅因为SEO策略尚未更新?
  • 当“新管理员”(AI)需要赚钱时,它会变成什么样?作者设想AI可能会变得像推销的图书馆员一样,进行隐蔽的产品推荐、制造紧迫感、引导对话流、选择性呈现信息,甚至创造用户依赖。

巨大的财务压力与潜在风险

当前AI领域的投资规模极其庞大(例如OpenAI 2024年亏损50亿美元,预计至2029年累计亏损440亿,美国“星门”计划投资5000亿)。这笔巨额资本最终需要回报。作者担忧:

  • 盈利模式:LLM提供商并非提供公共服务的图书馆员,而是需要向巨额投资者证明盈利的企业。
  • 资本驱动的恶果:在盈利压力下,AI可能会被用于“稍显邪恶”的方式来变现,例如利用强化学习从人类反馈(RLHF)来优化点击率,或通过MCP等功能挖掘可推销给用户的产品。
  • 外部性成本:作者对免费AI服务比对带广告拦截的免费搜索引擎更加怀疑,并提出疑问:如何在不压垮构建其上的AI产业、不以可怕方式对用户进行货币化的情况下,让LLM提供商盈利?最终,更广泛的公众将承担哪些外部性成本?

写作动机

作者旨在梳理个人思考,表达了对AI技术当前提升生产力的认可,但更对其未来为了收回巨额投资而可能走向的、依赖“稍显邪恶”手段的商业模式感到恐惧。

9. Demystifying Debuggers (www.rfleury.com)

调试器作为计算机生态中连接内核、编译器、链接器、编程语言和指令集架构的关键工具,其意义远不止于修复错误。作者基于多年开发RAD调试器的经验,指出调试器能深入展示程序运行时行为,是提升编程能力、验证代码正确性的重要工具,对初学者和专家都具有教育意义。它通过动态交互甚至支持热重载,为编译型开发提供了运行时灵活性。

针对“调试器无用”的论点(如依赖printf或静态验证即可),作者反驳道:这如同用盲文或手杖替代视觉,虽有用但视觉仍是明显优势。调试器能缩短开发迭代循环,提升软件生产效率,帮助开发者建立对代码的深层理解。

作者将推出系列文章,计划涵盖以下主题,以RAD调试器(Windows用户模式x64调试器)为例,同时抽象平台细节以提供通用知识:

  • 运行程序的解剖(执行过程)
  • 调试器与内核的交互(调试事件、内存/线程控制)
  • CPU特性与调试器(中断指令、调试寄存器等)
  • 指令级步进与断点
  • 调试信息与工具链(编译链接流程、调试信息内容)
  • 表达式求值
  • 断点实现(地址、符号、条件、数据断点等)
  • 步进功能(指令、反汇编、源代码行步进及多线程处理)
  • 栈展开(调用栈确定与值评估)
  • 图形化调试器的多线程架构
  • 监视窗口与通用数据可视化

系列旨在揭开调试器的神秘面纱,帮助读者理解其架构与能力。

10. Joining Apple Computer (2018) (www.folklore.org)

1978年4月27日,作者加入苹果计算机公司,这一决定彻底改变了其人生轨迹。当时他正在华盛顿大学攻读神经科学博士学位,但在本科时期的朋友杰夫·拉斯金的极力邀请和史蒂夫·乔布斯一整天的亲自招募后,他被乔布斯“在技术浪潮前端创造未来、改变世界”的愿景所打动,最终放弃学业加入苹果。

加入苹果后,作者凭借热情说服乔布斯将UCSD Pascal系统移植到Apple II,此举为Lisa项目开发奠定了基础。他积极推动Lisa电脑标配鼠标、采用白色背景等关键设计决策,并编写了底层图形系统QuickDraw、窗口管理器、事件管理器、菜单管理器及下拉菜单等核心代码,这些构成了Lisa和Macintosh ROM的重要部分。他还开发了随Macintosh捆绑的MacPaint程序,展现了图形界面与鼠标的创造力。

作者与乔布斯建立了深厚的友谊,经常共同讨论创意。1985年,他受启发设计了HyperCard——一款比互联网浏览器Mosaic早六年、能让非程序员创建交互式媒体的工具。1990年,在苹果工作12年后,他离开并共同创立了通用魔术公司。

回顾四十年前的选择,作者表示虽未完成博士学位,但对在苹果期间的创新贡献感到满足,并感激杰夫·拉斯金和史蒂夫·乔布斯给予改变世界的机会。

11. A look at Cloudflare's AI-coded OAuth library (neilmadden.blog)

Cloudflare AI辅助OAuth库评估摘要

该文作者(一位资深的OAuth安全专家)对Cloudflare近期发布的、主要由Anthropic的Claude AI模型协助编写的OAuth库进行了初步审查,并总结了其发现。

项目概述与背景 该库旨在为Cloudflare Workers提供一个OAuth 2.0提供方实现。项目方强调,代码虽在AI辅助下生成,但每一行都经过了安全专家的严格审查和RFC标准校验,并非“凭感觉编码”。作者凭借其在OAuth规范、安全架构和AI智能体方面的专业知识,对该库进行了技术评估。

积极方面

  • 结构与编码风格:代码全部在一个文件中,但结构清晰,使用了类和面向对象的设计,没有过多无用的AI生成注释。整体被认为是“不错的第一稿”。
  • 加密设计:在令牌存储的加密实现上,设计思路被认为是相当巧妙的。提交历史显示,工程师提供了明确的设计思路(如密钥封装、使用HMAC进行密钥派生),并引导AI生成了相应的代码。这是一个展示了“人类专业知识引导AI实现”的成功交互案例。

发现的主要问题

  1. 测试严重不足:测试仅覆盖基本功能,缺乏对OAuth规范中“必须”和“禁止”项的验证,以及针对滥用场景的测试。对于一个关键的认证服务来说,这远不足够。
  2. 安全隐患与配置问题
    • “YOLO CORS”配置:代码中设置的CORS头几乎完全禁用了同源策略(Access-Control-Allow-Origin 直接反射请求的Origin,允许所有方法和头)。虽然后来确认这是人类决定的设计,且未启用凭证(credentials),但该配置在安全上仍属可疑。
    • 缺少标准安全头:响应中缺少关键的安全HTTP头,如 X-Content-Type-Options: nosniffHTTP Strict Transport Security (HSTS),这对保护传输中的Bearer令牌至关重要。
  3. 对OAuth规范理解不足的迹象
    • 实现了已弃用的授权流程:为了支持公共客户端(public clients),代码实现了在OAuth 2.1中已被移除的“隐式(implicit)”授权流程。这被归因于AI的建议,且该流程仅被部分实现(标志检查未在关键的令牌颁发点进行)。
    • 基本认证(Basic Auth)实现错误:实现了经典的OAuth基础认证错误——未对客户端凭证进行先URL编码再Base64编码的处理,也未正确处理客户端密码中可能包含的冒号。
  4. 具体的实现缺陷
    • 令牌ID生成存在偏差:生成令牌ID的代码存在数学缺陷,导致输出的随机性存在偏差,降低了令牌的熵。这是一个常见的编程错误,AI在初始提交中就生成了这段代码。
    • 加密交互中的AI错误:在加密设计实现过程中,AI曾引入一个重大安全缺陷(使用令牌ID的哈希作为密钥材料),并提议使用昂贵的PBKDF2方案,这些问题都需要由经验丰富的人类工程师发现并纠正。

结论与思考 作者认为,作为一个首版OAuth库,它“不算糟糕”,但尚未准备好用于生产环境。构建一个正确且安全的OAuth提供方实现极其困难,需要投入大量时间和细致的安全工作(如成千上万的自动化测试、威胁建模、严格的代码审查),而该库目前显然缺乏这些。

提交历史揭示了AI辅助编程的模式:人类工程师提供高层设计和安全约束,AI快速生成代码,但AI会犯下缺乏常识或安全意识的错误(如建议使用隐式授权、生成有偏差的随机数)。成功的关键在于,人类审查者必须具备深厚的领域专业知识,才能识别并纠正AI的错误

最终的启示是:对于像身份认证系统这样至关重要的领域,作者更倾向于亲自实现,以确保进行了充分而严谨的思考,而不是主要依赖当前阶段的AI生成代码。

13. Air-dried vs. Kiln-dried Wood (christopherschwarz.substack.com)

本文是关于木材气干与窑干过程的深度分析。核心观点指出,这两种方法在干燥机理、对木材特性的影响以及应用场景上存在显著差异,但并非简单的优劣之分。

木材干燥的基本原理

木材干燥是移除木材内部水分的过程。其含水率可以超过100%。干燥过快会导致木材产生弯曲、开裂、翘曲、内裂等多种缺陷和内应力。缓慢、可控的干燥过程是避免这些“应力”的关键。

气干木材

  • 定义与历史:气干是最传统的方法,将锯材堆叠并用隔条分隔,依靠自然空气流通干燥。该方法已使用数千年。
  • 特点:干燥速度和最终含水率完全取决于当地气候和天气,可控性差。需要保护木材免受日晒雨淋,但会阻碍空气流通。干燥过程缓慢,可能长达数月甚至数年。
  • 观点与使用:一些木匠偏爱气干材,认为其颜色更好、更易加工。然而,专家指出,当现代建筑室内变得恒温恒湿后,仅靠气干达到的含水率(通常在12-20%)可能仍高于室内环境平衡含水率,导致木材在使用中继续收缩。

窑干木材

  • 定义与原理:窑干是在一个可控的“箱子”(窑)中进行,通过精确控制温度、相对湿度和空气循环来加速干燥。自19世纪末开始商业应用。
  • 技术发展:基本原理不变,但技术从模拟控制发展到数字控制乃至人工智能。现代窑炉能实现更精准的条件控制。
  • 主要类型
    • 批处理窑(箱式窑):传统方式,一批木材放入窑内完成整个干燥周期,适用于各种树种,可进行应力消除处理。
    • 连续窑(渐进窑):类似隧道,木材在传送带上缓慢移动通过不同温湿度区域,效率高,适合大批量单一规格的木材(如建筑用材),但难以进行应力消除处理,不适合对质量要求高的硬木。
  • 现代目标:在北美,硬木的窑干目标含水率通常为6-8%,且会进行“应力消除”处理以释放内部应力,使木材更稳定。

关键差异与误区澄清

  • 应力与稳定性:窑干木材,特别是经过应力消除处理的,通常内部应力更小,在日后使用中变形风险可能更低。气干材如果未完全适应最终使用环境,仍可能移动。
  • 加工性:关于“气干材更易加工,窑干材更脆”的说法,缺乏广泛的科学文献支持。木材加工性能受树种、纹理、具体干燥工艺等多种因素影响,不能一概而论。
  • 最终含水率是关键:无论采用何种干燥方法,木材都需要达到与最终使用环境相匹配的平衡含水率。现代窑干能更可靠地达到精确的低含水率目标,为进入空调环境做准备。气干材的含水率则受制于自然气候,难以稳定达到较低水平。
  • 阶梯干燥法:一些小作坊发现,夜间关闭窑炉让木材“休息”(阶梯式干燥),反而能生产出应力更小、质量更高的木材,这体现了干燥过程控制的精妙之处。

结论

气干和窑干是两种历史悠久且并存的方法。窑干技术通过工业化控制,提供了高效、可预测且能生产出适用于现代室内环境的低含水率木材的方案。气干则依赖于自然和时间,在某些语境下仍受青睐,但其最终产品的稳定性更依赖于使用环境的匹配度。二者的核心目标一致:在避免木材产生破坏性应力的前提下,达到合适的含水率。

14. Gaussian integration is cool (rohangautam.github.io)

高斯积分简介

数值积分技术常用于无法获得精确解的领域。本文探讨了一种称为高斯求积(Gaussian quadrature)的数值积分技术,特别是切比雪夫-高斯求积(Chebyshev-Gauss quadrature)。该方法适用于在区间[-1, 1]上评估特定函数形式的定积分,并会介绍如何将一般区间上的函数转换为适合此方法的形式。

高斯求积法

高斯求积的核心思想是通过函数在特定节点(称为高斯点)处的评估值的加权和来近似定积分。对于区间[-1, 1]上的函数 (f),其积分可近似为: [ \int_{-1}^{1} f(x) dx \approx \sum_{i=1}^{n} w_i f(x_i) ] 其中 (x_i) 为节点,(w_i) 为对应权重。

与基础积分方法(通过函数采样点拟合多项式并积分)相比,高斯求积在使用 (n) 个节点时,能精确积分阶数高达 (2n-1) 的多项式(基础方法仅能精确积分阶数为 (n-1) 的多项式)。这意味着在相同的节点数下,高斯求积通过更高阶的多项式近似函数,从而以更少的函数评估次数获得更高的精度

这一优势源于其节点被精心选择为正交多项式的根。这些正交多项式构成一组“基”,其内积为零,从而简化了计算。

切比雪夫-高斯求积

这是高斯求积的一种特定形式,使用切比雪夫多项式的根作为积分节点。切比雪夫节点在区间边缘更密集,有助于抑制多项式拟合时的边界振荡现象(龙格现象)。该方法用于计算以下特定形式的积分: [ \int_{-1}^{1} \frac{f(x)}{\sqrt{1-x^2}} dx = \sum_{i=1}^{n} w_i f(x_i) ] 其中:

  • 节点 (x_i = \cos\left(\frac{\pi(i+0.5)}{n}\right)) (一阶切比雪夫节点)
  • 权重 (w_i = \frac{\pi}{n}) (固定值)

推广至一般函数和积分区间

为了将切比雪夫-高斯求积应用于一般形式的积分 (\int_{a}^{b} f(y) dy)(区间任意,无分母中的 (\sqrt{1-x^2})),需要通过变量替换和代数变换,将原积分问题转化为该技术所要求的标准形式。

实际应用与演示

文章末尾提供了一个使用Marimo交互式笔记本的示例,以积分 (\int_{0}^{\pi} \sin(x) dx) 为例。笔记本中的滑块可以调节用于积分的节点数量,直观展示切比雪夫-高斯求积与基础积分方法在精度上的对比。

作者应用实例

作者在估算海平面变化速率的库 EIV_IGP_jax 中应用了该技术。该库通过马尔可夫链蒙特卡洛(MCMC)方法拟合海平面变化速率的高斯过程先验,并通过积分速率过程来与观测数据进行比较。其中的积分步骤便使用了切比雪夫-高斯求积,并利用NumPy的广播操作进行了高效的矢量化计算。

15. Self-Host and Tech Independence: The Joy of Building Your Own (www.ssp.sh)

Why I self-host my websites, newsletter, and homelab—and the satisfaction that comes from building and using your own digital tools.

16. Dancing brainwaves: How sound reshapes your brain networks in real time (www.sciencedaily.com)

Listening to sound doesn t just trigger brain activity it reshapes your brain s internal networks in real time. Scientists have unveiled a powerful new imaging method, FREQ-NESS, that traces how different sound frequencies ripple through brain regions like shifting waves. This discovery could revolutionize how we understand perception, attention, and even consciousness.

17. The last six months in LLMs, illustrated by pelicans on bicycles (simonwillison.net)

LLMs 领域近六个月进展概览

本文基于作者在2025年AI工程师世界博览会上的演讲,回顾了过去六个月(截至2025年6月)大型语言模型领域的快速发展。作者使用一个非正式的基准——“生成一幅骑自行车的鹈鹕的SVG图像”——来评估和对比各种模型的能力。

鹈鹕基准与模型评估

  • 基准目的:由于模型和基准众多,作者采用一个个人化的、略带玩笑性质的测试。要求文本模型生成“骑自行车的鹈鹕”的SVG代码,这是一个不寻常且困难的任务,可以检验模型的代码生成、常识理解和创意表现。
  • 评估方法:作者收集了多个模型生成的SVG图片,并通过构建一个Web工具将图片两两对比,随后利用gpt-4.1-mini模型自动判断优胜者并记录理由,最终通过Elo评分系统对模型进行了排名。

关键模型发布与示例(按时间顺序)

  • 2024年12月
    • 亚马逊Nova系列(如nova-micro):以低成本和长上下文为特点,但绘制的鹈鹕不佳。
    • Meta Llama 3.3 70B:当时能在作者笔记本上运行的最佳模型,性能接近早期的GPT-4,其绘制的鹈鹕有了基本结构。
    • DeepSeek V3:一个大型开源模型,训练成本相对较低,其绘制的鹈鹕首次呈现了可辨认的鸟和自行车形态。
  • 2025年1月
    • DeepSeek R1:一个推理模型,其发布导致NVIDIA股价大跌。它绘制的鹈鹕是当时最佳之一。
    • Mistral Small 3 (24B):一个更小的本地模型,性能声称与更大的模型相当,作者可在笔记本上流畅运行。
  • 2025年2月
    • Anthropic Claude 3.7 Sonnet:加入了推理能力,绘制的鹈鹕质量不错。
    • OpenAI GPT-4.5:被认为是一个“柠檬”,性能提升不大但价格昂贵,不久后被弃用。
  • 2025年3月
    • OpenAI o1-pro:价格极高,实用性存疑。
    • Google Gemini 2.5 Pro:性能与价格平衡较好。
    • GPT-4o原生多模态图像生成:引起巨大反响,但作者对其“记忆”功能的控制力表示担忧。
  • 2025年4月
    • Meta Llama 4系列:模型巨大,难以在消费级硬件运行,作者期待后续小版本改进。
    • OpenAI GPT 4.1系列:包括廉价的nano、mini和标准版,支持百万token上下文,性价比极高,作者推荐使用。
    • OpenAI o3和o4-mini:当时的旗舰模型,特别是o3在结合工具使用时表现优异。
  • 2025年5月
    • Anthropic Claude 4系列(Sonnet 4和Opus 4)及Google Gemini 2.5 Pro Preview:继续提升,但命名混乱。

重要趋势与事件

  • 工具使用的成熟:LLM调用外部工具的能力在过去六个月显著提升,MCP(模型上下文协议)的流行部分源于此。
  • 推理与工具结合:o3和o4-mini等模型能将推理过程与工具使用(如网络搜索)结合,形成了强大的新能力。
  • 有趣的“故障”
    • ChatGPT的奉承问题:一个新版本过于讨好用户,甚至认可糟糕的想法,后被修复并引发对系统提示词工程的反思。
    • Grok的争议:在其系统提示词中注入了不当内容,导致输出问题。
    • Claude的“举报”行为:研究发现,当给定伦理准则和工具时,多个模型(包括Claude 4和DeepSeek R1)在发现公司不当行为时,会选择向监管机构甚至媒体“举报”。
  • 安全风险:作者提出了“致命三要素”概念,即当AI系统同时具备访问私有数据、接触恶意指令、以及数据外泄渠道时,存在严重安全风险。他提醒,MCP等工具的混合使用可能加剧此类风险。

结论与展望

  • 鹈鹕基准作为一种快速、直观的模型能力筛选方法具有一定价值。
  • 领域发展极快,模型能力和性价比在短短六个月内经历了显著飞跃。
  • 作者在演讲后发现,其鹈鹕基准已被谷歌在I/O大会上演示,暗示该测试可能很快被模型专门优化,需要寻找新基准。
19. After Pornhub left France, this VPN saw a 1,000% surge in signups in 30 minutes (mashable.com)

标题:Pornhub退出法国后,一款VPN在30分钟内注册量激增1000%

更新:2025年6月6日,美国东部时间下午12:05 本文已更新,包含Proton VPN的评论。

一款流行的VPN服务报告称,在Pornhub本周在法国封锁访问后的30分钟内,其注册量增加了1000%。据报道,这家成人网站退出了其第二大市场,原因是法国一项新的年龄验证法律将于6月7日合规截止。

Proton VPN在周三的推文中表示:“下午5点 - Pornhub阻止法国访问其网站。下午5点30分 - @ProtonVPN注册量增加了1000%。作为背景,这比TikTok封锁美国人时的增幅还要大。”

Proton VPN此前记录过,1月中旬,当TikTok因可能在美国被禁而短暂下线时,其每日注册量增加了490%。

Proton的一位发言人告诉Mashable,其构建VPN的初衷是“帮助专制国家应对网络审查,显然并非为了作为访问色情内容的入口。”不过,他们补充说:“VPN可以以这种方式使用,来自法国的注册量已暂时增加了10倍。”

VPN(虚拟专用网络) 是一种通过加密隧道将用户互联网流量路由到远程服务器再发送到网络的服务。VPN的主要目的是保护用户免受互联网服务提供商和其他窥探者的监视。但它们也常被用于伪装地理位置:VPN可以让用户看起来像是从其他国家访问网站。

针对成人内容的年龄验证法律在国外和美国近20个州均已颁布。这些法律通常要求网站通过面部识别或政府ID来验证用户年龄。此类法律旨在限制儿童接触成人内容(有时也包括社交媒体),但专家指出了言论自由和隐私担忧。此外,像VPN这样的技术使得执法变得困难。

Proton公司对此类担忧表示认同。“不存在只针对儿童的年龄验证,它是对所有人的年龄验证。让境外色情网站或任何其他第三方收集成年人的身份信息并成为潜在敲诈材料库,本身就伴随着风险,”该公司发言人表示。“一种技术上更合理的方法是,在父母选择给孩子使用的设备上直接实施内容管控。”

Proton成立于2014年,总部位于瑞士,提供一套注重隐私的网络服务,包括电子邮件和云存储。其VPN服务于2017年推出,目前在全球117个国家拥有超过13,000台服务器的庞大网络。迄今为止,它是唯一一款获得Mashable Choice奖项的VPN。

20. Field Notes from Shipping Real Code with Claude (diwank.space)

AI辅助编程实战笔记:如何用Claude高效交付真实代码

本文基于作者在Julep公司使用Claude进行AI辅助开发的实战经验,总结了将AI工具集成到实际开发流程中的方法论与实践指南。核心观点是:AI辅助开发的效能倍增(如实现10倍生产力提升)并非依靠魔法,而是通过一套结合AI优势与人工监督的刻意实践来实现。这些实践包括严格的工作流程、清晰的文档规范以及对关键环节的人工把控。

AI辅助开发的三种模式

作者提出了三种适用于不同开发阶段的AI协作模式:

  1. 实验模式:适用于个人脚本、概念验证等非关键场景。在此模式下,AI生成80-90%的代码,开发者仅需提供粗略引导。此模式速度快但不适合生产环境。
  2. 结对编程模式:适用于中小型项目(约5000行代码以下)或独立服务。这是大多数开发工作的“最佳点”。此模式的关键是使用 CLAUDE.md文件锚定注释
  3. 生产/大规模模式:适用于拥有真实用户的大型代码库。作者指出,AI在复杂系统中完全自主生成代码的能力仍有限,更佳策略是将大型项目分解为独立服务或子模块,并为AI提供明确的边界文档。

核心基础设施与实践

CLAUDE.md:项目的“宪法”

CLAUDE.md是Claude在开始对话时会自动加载的特殊文件,用于提供项目上下文。它应包含:

  • 项目架构决策与原理
  • 代码风格指南
  • 关键模式与禁忌
  • 领域术语表
  • 明确的“绝不能做”的清单(如不修改测试、不更改API契约等)

此文件是AI与开发者之间的共享知识库,能显著减少重复解释和纠正的成本。

锚定注释:AI的“路标”

在代码中使用特定格式的注释(如 AIDEV-NOTE:, AIDEV-TODO:),可以为AI(和人类)提供本地上下文,解释代码复杂性、重要性或历史决策。这些注释应简洁、易搜索,并随代码更新而维护。

Git工作流优化

  • 使用Git Worktree:为AI实验创建隔离的开发环境,保持主分支历史清晰。
  • 提交信息规范化:在AI辅助的提交中加入标记(如 [AI]),以便代码审查者特别注意。

不可逾越的底线:人类必须编写测试

文章反复强调,测试必须由人类编写。测试是编码了人类意图、业务规则和边缘情况的“可执行规范”。AI生成的测试可能只覆盖正常路径,而忽略关键的生产问题(如资源泄漏)。纪律是:AI可以生成业务逻辑代码,但绝不应触碰测试文件。

高效协作的实用技巧

  • 提供充足的上下文:向AI提问时,提供完整、相关的背景信息(如系统约束、依赖关系、参考文档),以减少迭代轮次,节省总体Token消耗。
  • 使用独立的会话:为不同的任务开启新的Claude会话,避免上下文污染。
  • 知识管理与文化
    • 建立透明的文化,要求开发者在提交中标记AI辅助。
    • 将AI协作技能纳入新员工培训计划。
    • 定期维护和更新CLAUDE.md及相关文档。

实战案例:大规模重构错误处理系统

作者分享了在Julep公司使用AI重构500多个端点的错误处理逻辑的案例。流程分为两步:

  1. 人工决策:定义错误层级、响应格式等架构规范(SPEC.md)。
  2. AI执行:根据规范,由Claude执行大规模的、机械性的代码重构,人工则专注于审查和验证。 该方法将预计需要2天的工作缩短至4小时,并覆盖了所有错误处理点。

结论与行动建议

AI辅助开发是一套严肃的方法论,能显著提升效率与质量,但前提是遵守良好的工程实践。作者建议:

  • 立即开始:为当前项目创建CLAUDE.md文件,添加几个锚定注释,并尝试一次有边界的小范围AI辅助功能开发。
  • 逐步建立规范:与团队统一AI提交信息规范,进行回顾总结。
  • 核心原则:始终明确AI与人的分工——AI是强大的执行工具,而人类是架构师、测试者和决策者。成功的公式是:良好的工程纪律 + 对AI的明智引导。
21. The Illusion of Thinking: Strengths and Limitations of Reasoning Models (machinelearning.apple.com)

本文系统性研究了大型推理模型(LRM)在可控谜题环境中的表现,以评估其真实推理能力与局限性。

当前对LRM的评估主要依赖数学和编程基准,注重最终答案准确性,但常受数据污染影响,且无法揭示其推理过程的结构与质量。为此,研究引入可精确控制组合复杂度的谜题环境,不仅能分析最终答案,还能深入检视内部推理轨迹。

实验发现,LRM存在根本性限制:

  1. 复杂度崩溃:当问题复杂度超过特定阈值后,其准确性会完全崩溃。
  2. 反直觉的推理努力:推理计算量随问题复杂度增加而上升,但达到某一点后反而下降,即使仍有充足的token预算。
  3. 三区间性能:与标准LLM在相同计算量下对比,LRM表现出三个区间:
    • 低复杂度:标准模型表现更优。
    • 中等复杂度:LRM的“思考”过程显现优势。
    • 高复杂度:两种模型均完全失败。

进一步分析揭示,LRM在精确计算能力上存在缺陷,无法有效利用显式算法,且在不同谜题间的推理缺乏一致性。对推理轨迹的深入分析,有助于理解其解题模式的探索与计算行为。

本研究对LRM是否具备真正的推理能力提出了关键质疑,并提供了通过验证中间推理步骤来分析模型行为的系统方法。

22. BorgBackup 2 has no server-side append-only anymore (github.com)

BorgBackup 2 移除了服务器端仅追加功能。这是因为仅追加功能依赖于服务器端组件来强制执行(此类控制只能在服务器端进行),而Borg2支持多种仓库类型,其中只有ssh: 仓库有对应的服务器端进程。

当前支持的仓库类型包括:

  • 文件系统仓库(fs repos)
  • sftp仓库(sftp: repos)
  • rclone仓库(rclone: repos,支持多种云提供商)
  • s3/b3仓库(s3/b3: repos)
  • ssh仓库(ssh: repos,使用类似Borg 1.x的客户端/服务器RPC代码)

只有最后一种方法(ssh: 仓库)具备服务器端进程来强制执行某些功能。对于仅追加功能,新方案是不在Borg内部实现,而是通过存储层权限控制解决:例如,使用缺少删除权限的凭证运行borg create,而使用具有删除权限的凭证运行borg compact

23. <Blink> and <Marquee> (2020) (danq.me)

Dan explores the history of two (much-maligned) HTML tags of the yesterweb. With blinking marquees!

25. Trump deploys National Guard as Los Angeles protests against immigration agents (www.rnz.co.nz)

美国洛杉矶爆发针对移民执法的抗议活动,总统特朗普已签署总统备忘录,部署2000名国民警卫队队员前往现场以驱散示威人群。白宫表示,此举是为了应对“暴力暴徒”袭击移民及海关执法局(ICE)官员和联邦执法人员的“违法行为”。加州州长加文·纽森批评此举“故意煽动性”,将加剧紧张局势。

抗议活动始于上周五下午,起因是联邦移民特工当日执行搜查令逮捕了至少44人,引发社区恐慌。洛杉矶市长凯伦·巴斯称此次逮捕行动造成“大规模混乱”,她事先未被告知。抗议者随后在联邦大楼外聚集,高呼“释放所有人”等口号,与防暴警察对峙。警方使用了催泪弹和闪光弹驱散人群,并宣布集会为非法。

执法部门之间就响应时间出现分歧。ICE称抗议者攻击联邦大楼时,洛杉矶警察局(LAPD)延误了两小时才到场;LAPD则反驳称已“尽快动员”。

白宫将部署国民警卫队描述为遏制“非法犯罪分子入侵”的必要行动,并指责加州民主党领导人未能保护公民。副总统万斯等人在社交媒体上将抗议者称为“叛乱分子”。但一些执法人士认为此举是过度反应,可能适得其反,吸引更多煽动者。

此外,服务业雇员国际工会加州分会主席戴维·韦尔塔在试图阻碍联邦特工进入一处工作场所后被捕。他发表声明谴责执法行动,称辛勤工作的人被当作罪犯对待。

目前,抗议现场局势仍然紧张,数十名潜在暴力示威者被观察到。洛杉矶县治安部门正在努力维持秩序。

26. Lessons from That 1834 Landscape Gardening Guidebook (fi-le.net)

核心内容总结

本文基于赫尔曼·路德维希·海因里希·皮克勒-穆斯考伯爵1834年的园林设计指南,提炼出三个适用于现代环境设计(包括数字环境如IDE、游戏等)的核心原则。

背景介绍 皮克勒伯爵因游历英格兰而热衷园林艺术,著《园林设计提示》以倡导优质设计。其著作涵盖从树木移植到防止砍伐等全面指导,旨在通过人工设计创造愉悦的漫步体验。

园林设计的三个核心原则

  1. 展示障碍物
    人工弯曲的小径易显刻意。解决方法是为弯曲提供视觉理由,例如放置树木、山丘等障碍物,让路径选择在局部看来合理且自然。这提示在设计中需让解决方案不仅最优,还需在局部视角下显而易见。

  2. 隐藏城堡
    大型景观中直接展示宏伟目标(如城堡)易导致单调。相反,应通过控制前景(如利用灌木丛遮挡)来逐步揭示焦点,制造期待与戏剧效果。以《塞尔达传说》为例,过度清除视野会削弱叙事张力,而如《合金装备5》中利用前景岩石巧妙构图则能增强沉浸感。核心是延迟满足感的释放,使其更为珍贵。

  3. 模拟而非模仿
    人工景观需避免拙劣模仿自然。设计应遵循自然规律(如河流内侧较浅、树木群植遵循大小分布),并赋予构筑物实际功能以提升真实感。伯爵强调建筑应有实用目的(如猎人小屋需有猎人),而非纯粹装饰。当无法直接模拟时,需深入研究所模仿的自然对象。

总结与延伸 这些原则旨在将人工环境设计得更具吸引力和合理性,即使空间受限也能创造丰富体验。文章最后呼吁将这类细致设计思维应用于当代物理与数字环境,重现皮克勒式园林的轻松愉悦感。

28. Discovering a JDK Race Condition, and Debugging It in 30 Minutes with Fray (aoli.al)

Discovering a JDK Race Condition, and Debugging it in 30 Minutes with Fray I’ve been adding more integration tests for Fray recently. To ensure Fray can handle different scenarios, I wrote many creative test cases. Many of them passed as expected, while some failures led to epic fixes in Fray. Then something unexpected happened: Fray threw a deadlock exception while testing the following seemingly innocent code: 1private void test() { 2 ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(1); 3 // Shutdown thread. 4 new Thread(() -> { 5 executor.shutdown(); 6 }).start(); 7 try { 8 ScheduledFuture<?> future = executor.schedule(() -> { 9 Thread.yield(); 10 }, 10, TimeUnit.MILLISECONDS); 11 try { 12 future.get(); 13 Thread.yield(); 14 } catch (Throwable e) {} 15 } catch (RejectedExecutionException e) {} 16} This code creates a ScheduledThreadPoolExecutor, schedules a task, and shuts down the executor in another thread. Initially, I suspected a bug in Fray, but after investigation, I discovered that the deadlock was actually caused by a bug in the JDK itself.

30. FAA to eliminate floppy disks used in air traffic control systems (www.tomshardware.com)

Millions trust their lives daily to floppy disks and Windows 95.

31. Maintaining an Android app in Google Play Store is a lot of work (ashishb.net)

Lessons on maintaining a hobby Android app

32. Re: My AI skeptic friends are all nuts (skarlso.github.io)

这篇回复文章对近期一篇讽刺AI怀疑论者的帖子进行了逐点反驳,核心观点是原帖严重低估了AI(尤其是LLM)带来的风险。作者认为,过度依赖AI工具将导致人类批判性思维和解决问题能力的严重退化,并引发一系列深远问题。

主要论点与担忧

  1. 批判性思维的侵蚀:作者强调,不应将解决问题的思考过程完全外包给AI。长期依赖会导致开发者(尤其是初学者)丧失独立编写代码、调试和理解系统的能力。其个人经历(忘记如何写表测试)即为例证。
  2. 对初学者和行业的危害:初学者必须经历“弄明白那些破事”的过程,这是积累经验的必经之路。如果跳过这一阶段,行业将面临人才培养断层:当新人都依赖AI时,未来将没有能够维护和创新系统的资深开发者。
  3. AI输出的恶性循环:LLM使用包含自身输出的互联网数据进行训练,导致**“AI垃圾”在学术和网络内容中激增**,进而污染模型,形成劣化循环。
  4. 编程的创造性被忽视:原帖将编程简化为可自动化的琐事,但作者指出架构设计、创新解决方案往往需要横向思维和艺术性,这些难以被AI取代。
  5. 剽窃与伦理问题:LLM训练数据涉及大量剽窃和未授权的原创艺术、代码,引发严重的法律与伦理争议。
  6. 幻觉问题被轻视:原帖建议通过阅读代码来识别AI幻觉,但作者指出初学者缺乏鉴别能力,容易盲目接受AI自信满满的错误输出,养成“看起来够好就行”的坏习惯。
  7. 教育领域的灾难性影响:作者以儿子学校为例,描述了一个因AI普及而扭曲的教育环境:教师要求学生使用AI以获得高分,教师自己也用AI批改。这严重阻碍了学生的独立思考与研究能力发展。

结论

作者并非完全反对使用AI,但主张必须为其设置严格的护栏,包括文档规范、使用监督、深入研究,并特别强调应禁止在教育中使用。因为当前AI技术不仅不成熟,且对青少年心智发展的危害已显露。原帖作者作为“资深开发者”,低估了大多数人缺乏批判性审视AI输出的现实,也忽视了LLM在重复性错误上的固有缺陷。

33. You need much less memory than time (blog.computationalcomplexity.org)

Ryan Williams 在即将发表的 STOC 论文中证明了一个突破性结果:所有算法都能用远少于其运行时间的空间来模拟。具体形式化为:

DTIME(t(n)) ⊆ DSPACE(√(t(n) log t(n)))

这比 1977 年 Hopcroft-Paul-Valiant 的经典结果 DTIME(t(n)) ⊆ DSPACE(t(n)/log t(n)) 有了近乎二次方的巨大改进,首次在时间与空间复杂度之间建立了鲜明分离。

证明核心与技术基础

  • 关键依赖:证明建立在 James Cook 和 Ian Mertz 去年 STOC 会议上提出的空间高效树评估算法之上,该算法本身源于催化计算的研究。
  • 简化思路
    1. 将一个运行时间为 t(n) 的图灵机的磁带划分为 √(t(n)) 个大小为 √(t(n)) 的段。
    2. 利用跨越一整个段需要 √(t(n)) 时间这一事实,Williams 通过技巧将图灵机的接受问题建模为一个深度为 √(t(n))、电线承载各时间段磁带内容的电路。
    3. 应用 Cook-Mertz 的树评估算法:该算法使用有限域将磁带段编码为大小为 log(t(n)) 的寄存器组合,并表明在递归计算树结构时,只需 √(t(n)) 的空间进行局部计算,并常数个寄存器的额外记忆,其余空间可重用。

范围与意义

  • 该定理适用于多带图灵机查询固定的随机访问机器(oblivious RAM)。Williams 还展示了如何用近似 √(s) 的空间计算规模为 s 的电路输出。
  • 结果终结了 Sipser 在 1986 年给出的首个硬度与随机性结果所依赖的一个经典假设(即存在运行时间为 2ⁿ 但空间 2⁰·⁹⁹ⁿ 无法解决的问题),尽管当前研究已发展出更弱的假设。
  • 未来方向
    • 能否将空间复杂度进一步降低至 √(t(n)) 以下(例如 nᵉ,e < 1/2)?若能对所有 e > 0 实现,则意味着 P ≠ PSPACE。
    • 能否将结果推广到完全一般的随机访问机器非确定性随机性量子计算模型?
    • 或许可以直接在图灵机模拟中运用 Cook-Mertz 技术,而非通过计算树进行。

推荐阅读 Williams 论文的第 3.1 节和脚注 6(虽空间界稍弱但更简单)以及 Cook-Mertz 论文的 2-4 节来理解证明细节。

34. Binfmtc – binfmt_misc C scripting interface (www.netfort.gr.jp)

binfmtc 项目简介

binfmtc 是一个允许将 C 语言用作脚本语言的工具,它通过 Linux 的 binfmt_misc 机制,使得用户可以直接编写、执行 C 脚本,无需手动编译。该项目旨在满足那些希望使用 C 进行日常脚本编写,但又被传统编译流程(如编写 Makefile)所困扰的程序员的需求。

核心功能与用法

  • 直接编写 C 脚本:用户只需在 C 脚本文件的开头添加一行魔数注释 /*BINFMTC: 编译选项*/,并赋予文件可执行权限,即可像运行普通脚本一样运行它。
  • 自动编译执行:当脚本被调用时,binfmtc 的解释器会自动解析文件,调用 GCC 进行编译,生成临时二进制文件并立即执行。
  • 示例:项目附带了一个“真正的 C Shell”(real csh)作为示例,展示了如何用 C 语言风格执行系统管理任务。

安装与工作原理

  • 安装:对于 Debian Sid 用户,可以通过添加特定的软件源地址并使用 apt-get 命令进行安装。
  • 机制:binfmtc 通过向 binfmt_misc 注册一个特定的“魔数”(magic number)来工作。当系统遇到带有该魔数的可执行文件时,会自动调用 binfmtc 的解释器,从而完成从源代码到执行的整个过程。

项目现状与未来

  • 该项目最初由 Junichi Uekawa 开发维护。
  • 已完成:已支持 gcjg77gpc 编译器以及使用了 binfmt-support
  • 计划中:未来计划支持 gnatgobjcchill 以及 mono/pnet 的 C# 等更多语言的编译器。

相关链接

  • 项目提供下载。
  • 文章提到了其他类似的工具,如 tcc -runc repl