2026-01-23

20 篇热帖

Bugs Apple Loves

Apple 漏洞未修复造成的巨大时间浪费:一个公式化的分析 (Significant Time Waste Due to Unfixed Apple Bugs: A Formulaic Analysis)

This document presents a formula and methodology for quantifying the total time wasted by humanity due to Apple’s failure to fix software bugs. It argues that the cumulative impact of these unresolved issues is substantial and proposes a framework for calculating this impact.

核心观点 (Key Points):

  • 问题核心 (Problem Core): The document highlights the significant time wasted by Apple users and power users due to persistent software bugs that Apple has not addressed.
  • 公式体系 (Formulaic System): It introduces a formula to estimate the total time wasted, breaking it down into several components. The formula is presented as open for modification and improvement.
  • 多维度考量 (Multi-dimensional Consideration): The formula considers various factors contributing to the waste, beyond just the direct impact on users.

公式详解 (Formula Breakdown):

The formula is divided into four main components:

  1. 基础影响 (Base Impact): Users Affected × Frequency × Time Per Incident

    • This calculates the total time lost by affected users due to the bug.
    • It considers:
      • Users Affected: The number of Apple users experiencing the bug.
      • Frequency: How often users encounter the bug.
      • Time Per Incident: The duration of suffering or disruption each time the bug occurs.
  2. 高级用户税 (Power User Tax): Σ (Workaround Time × Participation Rate)

    • This accounts for the time spent by advanced users (power users) attempting to work around the bug.
    • It considers:
      • Workaround Time: The time a power user spends implementing a workaround.
      • Participation Rate: The percentage of power users actively trying to resolve the issue.
  3. 羞耻倍数 (Shame Multiplier): Years Unfixed × Pressure Factor

    • This factor emphasizes the length of time the bug has remained unfixed and the urgency of the problem.
    • It considers:
      • Years Unfixed: The number of years Apple has been aware of the bug.
      • Pressure Factor: A subjective measure of how critical or urgent the bug is.
  4. 最终裁决 (The Verdict): Human Hours Wasted ÷ Engineering Hours to Fix

    • This final calculation provides a ratio of the total human hours wasted due to the bug versus the engineering hours that would have been required to fix it. It essentially quantifies how much more productive Apple could have been if they had addressed the bug earlier.

总结 (Summary):

The document proposes a practical and data-driven approach to assessing the cost of Apple's inaction in fixing software bugs. By breaking down the problem into measurable components, the formula aims to demonstrate the significant human time waste resulting from these unresolved issues, and implicitly argues that Apple could have been more efficient in addressing them. The formula is presented as a starting point, encouraging community contribution and refinement.

I was banned from Claude for scaffolding a Claude.md file?

Claude 代码 API 错误与组织禁用事件总结

事件概要:

作者在使用 Claude 代码 CLI 时,因自动化提示词(system instructions)导致账号被禁用,并被标记为“已禁用组织”。作者尝试通过 Claude A 更新项目脚手架工具,使其包含一个 CLAUDE.md 文件,用于指导另一个 Claude 实例 (Claude B) 执行任务。

详细描述:

作者的实验流程是:

  1. Claude A 更新脚手架工具,添加包含指令的 CLAUDE.md 文件。
  2. 作者使用新的脚手架工具创建项目,并在其中启动 Claude B 执行任务。
  3. Claude B 出现错误时,作者将错误反馈给 Claude A,让其更新 CLAUDE.md 文件以纠正错误。
  4. 重复上述过程,直到账号被禁用。

作者推测,Claude A 在 CLAUDE.md 文件中生成的指令可能触发了 Claude 的“提示注入”安全机制,导致系统误判。Claude A 甚至出现了使用大写字母(en-US)而非小写字母(en-GB)的情况,这可能进一步加剧了误判。

后续处理:

  • 作者尝试通过官方渠道申诉,但未收到任何回复,甚至没有自动回复。
  • 作者最终收到了一份退款凭证,但没有得到任何解释或沟通。

主要教训:

  • 自动化提示词,特别是那些看起来像系统指令的内容(如脚手架上下文文件),可能存在风险,容易触发安全机制。
  • 当前 AI 内容审核存在“黑盒”问题,过度强调安全可能导致误判。
  • 与大型 AI 组织沟通困难,支持服务缺乏人情味,更像是自动化流程。

作者后续计划:

  • 作者已收回退款。
  • 作者将重新发布 boreDOM 框架,不再依赖 Claude 的辅助,并将其转型为 LLM 优先的 JavaScript 框架,专注于生成和迭代单 HTML 文件。
  • 作者将 CLAUDE.md 文件提交到 GitHub,供他人参考。

核心问题:

作者强调,此次事件并非因为其行为本身有问题,而是 AI 平台的安全机制过于敏感,导致了误判和缺乏沟通的体验。

补充说明:

  • 作者使用的 Claude 订阅费用为每月 €220,限制为每月 20 次使用。
  • 作者认为,如果类似事件发生在其他大型 AI 公司,损失可能会更大。
Why does SSH send 100 packets per keystroke?

SSH 每次按键发送 100 个数据包?我为什么应该关心?

2026 年 1 月 22 日

本文探讨了 SSH 连接中,每次按键会发送大量数据包的现象。以下是使用 tcpdumptshark 工具分析所得的总结:

问题发现:

作者在为高性能游戏开发过程中,发现测试工具出现问题,导致服务器 CPU 和带宽使用率意外下降。进一步调查发现,即使没有发送游戏数据,CPU 使用率仍然没有完全恢复到正常水平。

调查过程:

  • 作者使用 tcpdump 记录了带有和不带有问题的 SSH 流量,并使用 tshark 分析了这些数据包。
  • 分析结果显示,即使没有发送游戏数据,仍然存在大量(约 270 个)的数据包,其中大部分(66.3%)是 36 字节的消息,还有 33.3% 是 TCP ACK。
  • 这些 36 字节的消息以大约每秒 90 个数据包的速度发送,平均数据包间隔为 11.1 毫秒。
  • 通过 ssh -vvv 命令,作者发现这些现象与 macOS 上的 SSH 客户端默认启用的“按键时序模糊处理”功能有关。

根本原因:

SSH 客户端会为了防止攻击者通过分析按键时序来推断用户输入的字符,发送大量名为“chaff”的数据包,以混淆实际按键时间。

解决方案:

作者通过禁用 SSH 客户端端的“按键时序模糊处理”功能 (ObscureKeystrokeTiming=no) 显著降低了 CPU 使用率和带宽消耗。为了实现更广泛的解决方案,作者考虑通过修改 Go 语言的 SSH 库来阻止服务器端响应这些“chaff”数据包,从而避免了客户端的额外开销。

结果:

禁用“按键时序模糊处理”功能后,CPU 使用率下降了超过 50%,系统调用和加密也得到了显著的优化。

总结:

作者通过使用 LLM (Claude Code) 辅助调试,发现 SSH 客户端的“按键时序模糊处理”功能导致了不必要的网络开销。通过禁用该功能,可以显著提高 SSH 连接的性能,尤其是在对延迟敏感的应用场景中。

关键点:

  • SSH 客户端默认启用了“按键时序模糊处理”功能。
  • 该功能会发送大量“chaff”数据包,增加网络开销。
  • 可以通过禁用该功能来提高 SSH 连接的性能。
  • LLM 可以作为辅助调试工具,但需要用户具备一定的领域知识和批判性思维。
It looks like the status/need-triage label was removed

Gemini CLI 支持 JetBrains IDE 原生识别的总结

核心目标: 该 Pull Request (PR) 的主要目的是增强 Gemini CLI,使其能够原生识别 JetBrains IDE 环境,从而避免了当前依赖硬编码 TERM_PROGRAM 变量或伪造 VS Code 环境的限制。

问题背景:

  • Gemini CLI 目前的 IDE 集成功能依赖 TERM_PROGRAM 环境变量 (以及其他硬编码值) 来识别 IDE 环境。
  • 这导致第三方集成 (如 JetBrains IDE Companion) 需要通过伪造环境变量来模拟 VS Code,才能让 Gemini CLI 发现并连接 IDE。
  • 在 Windows 和 Linux 系统上,Gemini CLI 的进程检测功能存在问题,用户报告了无法正常识别 JetBrains IDE 的情况 (见 JetBrains 插件评论和 GitHub issue #9273)。

解决方案:

该 PR 引入了以下改进:

  • IDE_DEFINITIONS 更新: 将 JetBrains IDE 系列添加到 IDE_DEFINITIONS 中,使其成为 Gemini CLI 支持的 IDE 之一。
  • 检测逻辑更新: 更新检测逻辑,使其能够识别 TERMINAL_EMULATOR=JetBrains-JediTerm 作为一种原生支持的环境变量。 这意味着 Gemini CLI 现在可以通过环境变量来发现和连接 JetBrains IDE,而无需依赖端口信息文件或进行伪装。

总结:

此 PR 解决了 Gemini CLI 在 JetBrains IDE 环境中集成的问题,通过原生识别 JetBrains IDE,提高了集成体验的稳定性和可靠性,并减少了对环境伪造的依赖。 该改进基于之前的 PR #16083。

Proton Spam and the AI Consent Problem

总结:Proton邮件营销与AI产业的非授权行为 (Summary: Proton Email Marketing and Unauthorized Actions in the AI Industry)

这篇文章主要讲述了作者对Proton邮件服务的一系列不满,以及由此引发的对AI产业普遍存在的非授权行为的反思。

事件经过:

  • 收到垃圾邮件: 作者作为Proton的付费用户,在明确取消订阅Lumo(Proton的AI产品)邮件后,仍然收到了Proton发出的关于Lumo的推广邮件。
  • 与Proton客服沟通: 作者联系Proton客服,但客服最初指引作者重新检查“邮件订阅”中的“Lumo产品更新”选项,而作者已经明确取消了勾选。
  • Proton的解释: Proton客服随后解释称,该邮件属于“Proton for Business”的新闻简报,即使在“产品更新”中取消订阅,也可能收到此类邮件。作者对此表示质疑,认为这是Proton为避免责任而提出的借口。
  • Github 同样遭遇: 作者随后收到了 Github 关于 “Build AI agents with the new GitHub Copilot SDK” 的邮件,同样在没有授权的情况下被订阅。Github 的订阅管理界面也存在问题,无法有效取消相关邮件。
  • Proton最终承认错误: 在作者发表博客文章后,Proton 的技术团队承认存在系统错误,导致邮件分类出现重叠,导致作者在取消了“产品更新”订阅后仍然收到 Lumo 相关的邮件。Proton 的 CTO 也公开在 Hacker News 上道歉,并表示会修复该问题。

核心观点:

  • Proton的错误行为: Proton 的行为违反了用户明确的授权意愿,属于垃圾邮件行为,可能违反 GDPR 和其他数据保护法规。
  • AI产业的非授权行为: 文章将 Proton 的行为上升到整个 AI 产业的层面,指出 AI 产业普遍存在“无法接受拒绝”的现象,不断地将 AI 技术强行推向用户,忽视用户的意愿和隐私。作者提到了 AI 机器人 DDoS 网站、伪造用户代理等行为,表达了对这种趋势的担忧。
  • 对隐私和授权的重视: 作者强调了对隐私和授权的重视,并对 Proton 和其他科技公司在这些方面的表现表示失望。

总结:

文章以作者与 Proton 的邮件营销纠纷为开端,批判了 Proton 的错误行为,并将其视为 AI 产业普遍存在的非授权行为的缩影。作者呼吁科技公司尊重用户意愿,保护用户隐私,并对 Proton 的最终道歉表示欢迎,并希望 Proton 能够真正重视用户授权。

I built a light that reacts to radio waves [video]

总结:我制作了一个能“看见”无线电波的光 (I built a light that can see radio waves)

这是一段关于rootkid(2026)的作品“Spectrum Slit”的视频介绍。该作品的核心是创造了一种能够观测无线电波的装置,并将其转化为可见光。

主要信息:

  • 作品名称: Spectrum Slit
  • 创作者: rootkid (2026)
  • 发布日期: 2026年1月22日
  • 作品描述: 该作品旨在创造一种能够“看见”无线电波的装置,通过某种方式将无线电波转换为可见光,从而实现对无线电波的观测。
  • 音乐: Uranium - Radioactive Man
  • 链接: https://rootkid.me/works/spectrum-slit
  • 视频链接: https://www.youtube.com/watch?v=moBCOEiqiPs
  • 评论: 一位评论者指出,视频中工程师的专业工作环境也令人印象深刻。

技术细节 (从JSON数据中提取):

总而言之,Spectrum Slit 是 rootkid (2026) 的一个创新作品,它展示了将无线电波转化为可见光的技术,并引起了观众的关注。

Scaling PostgreSQL to power 800M ChatGPT users

OpenAI 使用 PostgreSQL 支撑大规模流量的经验总结(中文)

OpenAI 的 ChatGPT 和 API 平台背后,长期依赖 PostgreSQL 作为关键的数据系统。随着用户基数迅速增长,数据库负载也在过去一年内增长了超过 10 倍。OpenAI 通过一系列优化和工程实践,成功地将 PostgreSQL 扩展到支持每秒数百万次查询 (QPS),服务于 8 亿用户。

核心挑战与解决方案:

  • 流量激增与单写点瓶颈: 单一主节点架构在面对突发的写流量激增时容易过载,影响服务稳定性。OpenAI 通过以下方式缓解:
    • 减少主节点负载: 将读流量分发到副本,对必须在主节点执行的读操作进行优化。
    • 迁移写密集型负载: 将可分片的写密集型工作负载迁移到 Azure Cosmos DB 等分片系统。
    • 应用层优化: 修复冗余写问题,引入延迟写等技术平滑流量峰值。
  • 昂贵的查询: 复杂的多表连接查询可能导致 CPU 饱和,影响服务性能。OpenAI 采取措施:
    • 查询优化: 避免复杂的多表连接,必要时将逻辑转移到应用层。
    • ORM 审查: 仔细审查 ORM 生成的 SQL 语句,确保其效率。
    • 超时设置: 配置 idle_in_transaction_session_timeout 等超时参数,防止长时间空闲查询阻塞 autovacuum。
  • 单点故障风险: 主节点故障会导致整个服务中断。OpenAI 解决方案:
    • 读写分离: 将大部分读请求转移到副本,降低主节点故障对读服务的直接影响。
    • 高可用架构: 采用高可用 (HA) 模式,配置热备副本,实现快速故障切换。
  • “邻居噪音”问题: 特定请求占用过多资源,影响其他工作负载的性能。OpenAI 实践:
    • 隔离工作负载: 将请求分层(高优先级、低优先级),路由到不同的实例,避免资源竞争。
  • 连接池耗尽: 数据库连接数受限,可能导致连接风暴。OpenAI 解决方案:
    • PgBouncer 连接池: 部署 PgBouncer 作为代理层,实现连接池复用,显著降低连接延迟和连接数。
  • 缓存风暴: 缓存未命中导致数据库读压力激增。OpenAI 解决方案:
    • 缓存锁机制: 引入缓存锁机制,限制并发数据库读取,防止请求风暴。
  • WAL 复制瓶颈: 主节点向大量副本同步 WAL 数据,可能导致网络和 CPU 瓶颈。OpenAI 正在与 Azure 合作:
    • 级联复制: 采用级联复制,允许中间副本将 WAL 数据转发到下游副本,降低主节点的压力。
  • Schema 变更风险: 某些 Schema 变更可能导致全表重写,影响服务稳定性。OpenAI 策略:
    • 仅允许轻量级 Schema 变更: 限制 Schema 变更为仅添加或删除列等轻量级操作。
    • 严格超时控制: 对 Schema 变更设置严格的超时时间。

关键成果与未来展望:

OpenAI 成功地将 PostgreSQL 扩展到支撑数百万 QPS 的读密集型负载,实现了低延迟和高可用性。未来,OpenAI 将继续探索进一步扩展 PostgreSQL 的方法,包括分片 PostgreSQL 或采用其他分布式系统,以满足不断增长的基础设施需求。

Ghostty's AI Policy

GitHub 平台概览

该文档概述了 GitHub 平台的功能、解决方案、资源、支持以及社区参与方式。 核心内容可以归纳为以下几个方面:

1. AI 代码创作 (AI Code Creation):

  • GitHub Copilot: 利用 AI 辅助代码编写,提高开发效率。
  • GitHub Spark: 用于构建和部署智能应用程序。
  • GitHub Models: 管理和比较 AI 模型提示。
  • MCP Registry: 集成外部工具,扩展平台功能。

2. 开发工作流程 (Developer Workflows):

  • Actions: 自动化各种工作流程。
  • Codespaces: 提供即时开发环境。
  • Issues: 规划和跟踪工作任务。
  • Code Review: 管理代码变更。

3. 应用安全 (Application Security):

  • GitHub Advanced Security: 查找并修复安全漏洞。
  • Code security: 确保代码安全构建。
  • Secret protection: 阻止密钥泄露。

4. 探索 (Explore):

  • 提供 GitHub 的介绍、文档、博客、更新日志和市场。

5. 解决方案 (Solutions):

  • 按公司规模: 针对企业、中小型团队、初创公司和非营利组织提供解决方案。
  • 按用例: 包括应用现代化、DevSecOps、DevOps、CI/CD 等。
  • 按行业: 涵盖医疗、金融服务、制造、政府等行业。

6. 资源 (Resources):

  • 按主题: AI、软件开发、DevOps、安全等主题的文章。
  • 按类型: 客户案例、活动与网络研讨会、电子书和报告、商业洞察以及 GitHub Skills 技能认证。

7. 支持与服务 (Support & Services):

  • 提供文档、客户支持、社区论坛、信任中心和合作伙伴。

8. 社区 (Community):

  • GitHub Sponsors: 资助开源开发者。
  • 包括安全实验室、维护者社区、加速器和归档计划。

9. 企业解决方案 (Enterprise Solutions):

  • 企业平台: 提供 AI 驱动的开发者平台。
  • 附加组件: 包括 GitHub Advanced Security (企业级安全功能)、Copilot for Business (企业级 AI 功能) 和 Premium Support (企业级 24/7 支持)。

其他信息:

  • 提供定价信息。
  • 鼓励用户提供反馈,并提供联系方式。
  • 允许用户保存搜索,以便快速过滤结果。
  • 提供登录和注册链接。
  • 包含外观设置。
Macron says €300B in EU savings sent to the US every year will be invested in EU

r/Europe 概述

r/Europe 是一个 Reddit 子版块,旨在讨论欧洲相关话题。以下是其主要内容和功能概要:

基本信息:

  • 规模: 涵盖 50 (+6) 个国家,230 种语言,74600 万人口,但仅有一个子版块。
  • 社区规则: 链接到社区规则页面。
  • 地理政策: 链接到地理政策页面。
  • 反馈: 提供链接,方便用户向版主提交评论、批评和建议。
  • 帮助与 FAQ: 链接到帮助和常见问题解答页面。

交流方式:

  • Discord: 提供 Discord 链接,方便用户进行语音和文字交流。
  • IRC: 提供 IRC 聊天链接。
  • Twitter: 提供 Twitter 账号链接。

定期活动:

  • “你对……有什么了解?” (What do you know about…?): 每周二举行。
  • 每周问题 (r/Europe question of the week): 每周六举行。
  • 各国新闻 (The news in your country): 每周日发布。
  • AMA (Ask Me Anything): 记录了之前的 AMA 活动,并欢迎用户或他人提议举办新的 AMA。

图片发布规则:

  • 非原创照片(Non-OC photograph)只能在周末发布。
  • 工作日期间,请使用 r/CasualEurope 子版块。

相关子版块:

r/Europe 链接到许多其他与欧洲相关的子版块,涵盖广泛的主题,包括:

  • Meta 讨论: r/EuropeMeta
  • 提问: r/AskEurope
  • 非政治休闲讨论: r/CasualEurope
  • 欧洲航天局: r/esa
  • 个人理财: r/EUpersonalfinance
  • 欧洲歌唱大赛: r/Eurovision
  • Reddit 歌唱大赛: r/Eureddision
  • 精选讨论: r/Europes
  • 深入内容: r/Europeans
  • 照片: r/EuroPics
  • 文化: r/EuropeanCulture
  • 欧盟议会: r/EuropeanParliament
  • 欧盟内容: r/EuropeanUnion
  • 联邦欧洲: r/EuropeanFederalists
  • 欧洲美食: r/EuropeEats
  • 欧盟法律: r/EUlaw
  • 欧洲隐私: r/EuroPrivacy
  • 月球: r/Europa
  • 梗图: r/YUROP
  • 欧洲 CS 职业问题: r/cscareerquestionsEU

头部图片:

  • 以乌克兰国旗和欧盟旗帜的星空为主题的图片,表达对乌克兰的支持。

地区性子版块:

  • 列出了欧洲许多国家的子版块,例如阿尔巴尼亚、安道尔、亚美尼亚、奥地利、阿塞拜疆、白俄罗斯、比利时、波斯尼亚和黑塞哥维那、保加利亚、克罗地亚、塞浦路斯、捷克、丹麦、爱沙尼亚、芬兰、法国、格鲁吉亚、德国、希腊、匈牙利、冰岛、爱尔兰、意大利、科索沃、拉脱维亚、列支敦士登、立陶宛、卢森堡、北马其顿、马耳他、摩尔多瓦、摩纳哥、黑山、荷兰、挪威、波兰、葡萄牙、罗马尼亚、俄罗斯、圣马力诺、塞尔维亚、斯洛伐克、斯洛文尼亚、西班牙、瑞典、瑞士、土耳其、乌克兰、英国。

总而言之,r/Europe 是一个关于欧洲的综合性 Reddit 子版块,提供讨论、交流和信息分享的平台。

Why medieval city-builder video games are historically inaccurate (2020)

中世纪城市建造游戏的历史准确性:总结

本文探讨了中世纪城市建造类电子游戏的历史准确性。

游戏起源与发展:

城市建造游戏起源于20世纪90年代,是策略游戏和经营游戏相结合的产物,代表作品有《模拟城市》(1989)、《凯撒》(1992)和《帝国时代》(1997)。随后出现了一些以中世纪为主题的游戏,如《定居者》(1993)、《骑士与商人》(1998)以及《Anno》系列(1998-2019)。这些游戏通常以在资源丰富的地点建立村庄中心开始,玩家收集资源用于建造房屋和设施,通过建立生产链(例如,种植谷物制成面包,饲养绵羊制成衣服)来促进村庄发展。

游戏与历史的脱节:

游戏中的线性村庄增长模式与真实的中世纪经济不符。当时村民往往处于温饱边缘,农业剩余物会被教会和领主剥削。灾难、盗匪、战争和疾病可能随时摧毁村庄。因此,许多欧洲村庄的人口在12世纪至18世纪之间相对稳定。 城市建造游戏通常围绕着“异常”的增长(发展成城镇)展开,与中世纪人们的生活相去甚远。 值得一提的是,《被放逐者》(2014)在一定程度上模拟了高死亡率和恶劣天气对发展的影响,但其目标仍然是克服困境并实现扩张。

中世纪村庄生活的复杂性:

游戏往往忽略了中世纪村庄生活的复杂性。例如,村民与领主的复杂关系,土地所有权的多样性(领主、修道院、甚至公爵),以及税收、地租和什一税等经济结构。领主有时会要求村民进行劳役,影响耕作。村庄也拥有自己的法庭和民兵,以应对盗匪。

中世纪村庄的规划:

历史研究表明,中世纪村庄在早期发展阶段通常是按照特定设计进行规划。文章以作者对西弗拉芒地区(1000-1300年)的考察为例,介绍了几种常见的村庄类型:

  • 圆形领主庄园 (vroonhoeve): 加固的圆形住宅,带护城河,通常位于河流拐弯处,周围环绕着扇形土地。
  • 街道村庄: 沿着高地建造的农场和矩形土地的一排。
  • 混合型村庄: 带有带围墙的教堂住宅和中央草地,以及沿道路排列的农场。

这些村庄通常由修道院或领主批准的自由民建立,通过砍伐树木或焚烧植被来开垦土地,并由测量员划分土地。水资源是选择村庄位置的重要因素,但也存在洪水风险。

村庄的管理:

村庄管理涉及土壤质量控制(轮作)、牲畜放牧、森林资源利用以及道路和河流的维护。建筑也需要定期重建。

村庄面临的威胁:

中世纪村庄面临着天气、疾病、战争和内部社会冲突等威胁。战争可能导致掠夺、破坏和人员伤亡,领主征兵也会影响村庄的人力资源。

更准确的游戏设计:

作者建议游戏可以考虑以下改进:

  • 规划优先: 模拟村庄最初的规划和布局,而不是有机生长。
  • 灵活的道路系统: 允许建造弯曲道路,模仿真实村庄的布局。
  • 洪水机制: 模拟洪水对土地和牲畜的影响。
  • 税收机制: 模拟教会和领主对农业剩余物的剥削。

结论:

尽管城市建造游戏可能不完全符合历史,但通过融入历史元素,例如更真实的地貌以及税收机制,可以提高游戏的真实性和教育意义。尽管游戏为了追求趣味性和商业价值,可能难以完全摆脱现有模式,但挑战一些刻板印象,展现中世纪生活的复杂性,仍然具有价值。

参考文献:

文章引用了多篇学术著作,旨在为读者提供更深入的了解。

CSS Optical Illusions

CSS 光学错觉:50 个纯 CSS 和 HTML 构建的视觉错觉

本文档介绍了 50 种使用纯 CSS 和 HTML 构建的光学错觉,并提供代码示例。这些错觉分为几类:Poggendorff 错觉、诱导渐变、Cornsweet 错觉、White's 错觉、Wertheimer-Koffka 环、Adelson's 错觉、Asahi 亮度错觉、彩色球体、轮廓颜色、曲率盲目、咖啡馆墙错觉、Penrose 三角形、Ebbinghaus 错觉、Kanizsa 方形、Ehrenstein's 错觉、Neon-Color-Spreading 错觉、Hering 和 Wundt 错觉、Ponzo 错觉、T 错觉、Müller-Lyer 错觉、倾斜的桌子错觉、平行线错觉、以及一系列动态错觉,例如膨胀孔、旋转蛇、出现点、消失点、Ouchi 错觉、Orthogonal Dotted Lines Sway、Enigma、Waves、Animated Ebbinghaus 错觉、Psychokinematic Tower、Color Fan、Reverse Spoke Illusion、Motion Binding、Mainz-Linez 错觉、Waddling Colors、Dotted-Line Motion、Contrast Asynchrony、Breathing Square、Troxler 褪色、Pinna-Brelstaff 错觉、Palisade、Alternative Motion、Motion Inversion 等。

主要内容:

  • Poggendorff 错觉: 倾斜线段中断处有垂直条,造成错位感,即使线段是连续的。
  • 诱导渐变: 灰色条纹叠加在渐变背景上,产生虚假的渐变效果。
  • Cornsweet 错觉: 相同色调的区域,由于周围环境不同,显得明暗不同。
  • White's 错觉: 相同色调的灰色柱体,由于周围背景不同(黑白),显得明暗不同。
  • Wertheimer-Koffka 环: 环的颜色相同,但因覆盖在黑白背景上而显得不同。
  • Adelson's 错觉: 两个相同灰度的瓦片,由于阴影效果,显得明暗不同。
  • Asahi 亮度错觉: 花形元素中心的圆形,看起来比页面其他部分更亮。
  • 彩色球体: 球体看起来是红色、蓝色或绿色,实际上是相同的灰色,因为重叠的线条影响了颜色感知。
  • 轮廓颜色: 线条在黄色和蓝色区域内,分别呈现蓝色和红色,但实际上是黑色或深灰色。
  • 曲率盲目: 线条看起来是弯曲或笔直,取决于峰值颜色变化。
  • 咖啡馆墙错觉: 三个渐变色组合,造成水平线看起来倾斜。
  • Penrose 三角形: 一种不可能的形状,视觉上产生矛盾感。
  • Ebbinghaus 错觉: 同尺寸的圆形,由于周围元素大小不同,看起来大小不同。
  • Kanizsa 方形: 通过“Pac-Man”形状产生白色的方形幻象,并产生深度感。
  • Ehrenstein's 错觉: 只由垂直和水平线条组成,视觉系统会补全形状,产生不存在的圆盘。
  • Neon-Color-Spreading 错觉: 同心圆,通过绿色和黑色图案产生中心图案和同心圆的幻象。
  • Hering 和 Wundt 错觉: 基于透视的错觉,即使知道是平面图像,大脑仍然会解读深度。
  • Ponzo 错觉: 两条相同长度的黄色线,由于透视效果,看起来长度不同。
  • T 错觉: 垂直和水平线看起来长度不同,实际上是相同的。
  • Müller-Lyer 错觉: 水平线看起来长度不同,取决于边缘指向内或外。
  • 倾斜的桌子错觉: 矩形看起来倾斜,实际上是平行的,因为“颜色”矩形使用不同的对角线。
  • 平行线错觉: 黑线平行,但由于交叉的条纹,看起来不平行。
  • 动态错觉: 包括膨胀孔、旋转蛇、出现点、消失点、Ouchi 错觉、Orthogonal Dotted Lines Sway、Enigma、Waves、Animated Ebbinghaus 错觉、Psychokinematic Tower、Color Fan、Reverse Spoke
Talking to LLMs has improved my thinking

大型语言模型带来的思维转变:从内隐知识到清晰表达

这篇文章探讨了作者在使用大型语言模型(LLM)时发现的一个有趣现象:LLM 能够将作者长期理解但难以清晰表达的想法转化为文字,从而引发作者的“啊,是的”式的共鸣。作者认为这种现象不仅令人惊喜,而且显著改善了作者的思维方式。

核心观点:

  • 大部分知识是内隐的: 程序员和开发者在工作中积累了大量难以用语言表达的内隐知识,例如对设计错误的预感、未重现的 bug 的感知、以及对不良抽象的快速识别。这些知识是经验的压缩体现,以高效行动的模式存在,而非以句子形式存储。
  • LLM 擅长将模糊结构转化为文字: LLM 的设计目的就是将模糊的概念转化为清晰的表达。当作者向 LLM 询问半清晰的想法时,LLM 能够逐步阐述支持该想法的理由,并提供独立的论点,方便作者进行思考和调整。
  • 文字化的表达改变了思维: LLM 将想法转化为文字后,作者可以对其进行深入思考,将模糊的直觉转化为明确的区分,并将隐含的假设显现出来,从而进行测试、修正或完善。 这种过程类似于写作带来的效果,但 LLM 极大地提高了速度。
  • 反馈循环的重要性: 随着使用 LLM 的次数增多,作者逐渐能够独立地将自己的想法用清晰的语言表达出来。LLM 的作用并非直接提升思维能力,而是提升了作者使用语言的能力,增强了内部独白的效果。 这使得作者更容易察觉自己的真实想法,从而带来思维的清晰度提升。

总结:

作者认为 LLM 的强大之处在于它能够帮助将内隐知识转化为显性知识,从而促进更清晰、更深入的思考。通过与 LLM 的互动,作者不仅提升了语言表达能力,也提升了自我反思和认知水平,最终改善了整体的思维方式。 这种体验并非简单的学习新知识,而更像是一种对已有知识的确认和深化。

Improving the usability of C libraries in Swift

总结:使用 Swift 与 C 库互操作并提升用户体验

这篇文章探讨了如何在 Swift 中使用现有的 C 库,以及如何通过一些技巧,让 Swift 与 C 库的交互更加安全、舒适。

核心问题: 直接从 Swift 调用 C 库的代码往往显得“C”味很重,缺乏 Swift 的优雅和安全性。

解决方案: Swift 提供了注解,可以用来描述 C 代码中的常见约定,从而将 C API 投影到更友好的 Swift 接口。

示例: 文章以 WebGPU 为例,展示了如何使用这些注解。

具体步骤:

  1. 模块映射: 使用 module.modulemap 文件将 C 头的结构叠加到 Swift 模块中。
  2. 接口生成: 使用 swift-synthesize-interface 工具生成 C 头文件对应的 Swift 接口。
  3. 注解应用:
    • 枚举: 使用 enum_extensibility 属性,将 C 枚举转换为 Swift 的 enum 类型。
    • 对象类型: 使用 SWIFT_SHARED_REFERENCE 宏,将 C 的引用计数对象转换为 Swift 的自动引用计数 class
    • 函数: 使用 SWIFT_NAME 宏,为 C 函数添加更友好的 Swift 名称、参数标签和方法。
    • 布尔类型: 将 C 的布尔类型 WGPUBool 包装为 Swift 的 struct,并使其符合 ExpressibleByBooleanLiteral 协议,使用 truefalse 替代 WGPU_TRUEWGPU_FALSE
    • Nullability: 使用 API notes 来处理 C 代码中的 WGPU_NULLABLE 宏,它可以控制指针是否是可选类型。

关键工具和技术:

  • module.modulemap:定义 Swift 模块。
  • swift-synthesize-interface:生成 Swift 接口。
  • API notes:用于描述 C 代码中的额外信息,如枚举的可扩展性、引用计数函数的名称等。
  • SWIFT_SHARED_REFERENCE:将 C 引用计数对象转换为 Swift 自动引用计数 class
  • SWIFT_NAME:为 C 函数添加更友好的 Swift 名称和参数标签。

结论: 通过使用这些注解,可以显著提升 Swift 与 C 库的交互体验,使其更安全、更舒适,而无需修改 C 库本身。 该文章还提供了一个脚本,可以自动生成 API notes,减少手动工作量。

'Active' sitting is better for brain health: review of studies

久坐的类型影响大脑健康:积极久坐或优于被动久坐

一项对85项研究的系统性回顾表明,久坐并非只有一种状态,不同类型的久坐活动对大脑健康的影响也不同。研究结果强调了“积极久坐”和“被动久坐”之间的区别,并提出积极久坐可能对大脑健康有益。

主要发现:

  • 积极久坐(如阅读、玩牌、使用电脑) 与认知健康呈“压倒性积极关联”,能增强执行功能、情景记忆和工作记忆等认知功能。
  • 被动久坐(如看电视) 则与负面的认知结果相关联,包括增加患痴呆症的风险。
  • 虽然效果量较小,但研究结果具有统计学意义。

研究人员的建议:

  • 未来的健康研究和指导方针应区分积极久坐和被动久坐。
  • 鼓励人们在久坐时进行精神刺激活动,例如阅读代替看电视,以支持长期大脑健康,并可能降低患痴呆症的风险。
  • 改变健康建议,从“少坐”转向“在久坐时进行更多精神参与的活动”。

研究背景:

  • 久坐时间与大脑健康相关,但通常被视为单一实体,未充分考虑活动类型。
  • 这项研究关注的是日常生活中常见的久坐活动,而非旨在提高大脑功能的结构化项目。

研究发表信息:

  • 发表于《阿尔茨海默病杂志》(Journal of Alzheimer's Disease)。
White House Posts Digitally Altered Image of Woman Arrested After ICE Protest

白宫发布经过篡改的照片,引发争议

事件概要:

白宫发布了一张经过数字篡改的照片,该照片涉及近期因参与抗议活动而被捕的女性Nekima Levy Armstrong。该照片旨在呈现Armstrong正在哭泣的形象,但《卫报》的分析表明,照片已被篡改。

事件经过:

  • 抗议事件: Armstrong是三名因在明尼苏达州圣保罗市的一场教堂活动中抗议而被捕的人之一。抗议者指责牧师David Easterwood是圣保罗移民及海关执法局(ICE)的代理主管。
  • 官方发布: 美国司法部长Pam Bondi在社交媒体上宣布了这些逮捕。随后,美国国土安全部(DHS)的Kristi Noem在其社交媒体上发布了Armstrong被捕的照片,照片中Armstrong神情镇定,被执法人员带走。
  • 白宫发布篡改照片: 大约30分钟后,白宫发布了另一张Armstrong被捕的照片,照片中Armstrong呈现出哭泣的表情。照片经过《卫报》分析证实已被篡改。
  • 篡改证据: 《卫报》通过将白宫发布的照片与DHS发布的原图进行对比,发现执法人员的位置、背景人物以及执法人员手臂的位置完全一致,从而证明了白宫照片的篡改。
  • 白宫回应: 当被问及照片是否被篡改时,白宫并未直接回应,而是发布了副通讯主管Kaelan Dorr在社交媒体上的帖子,表达对“为犯罪者辩护”者的不满,并表示将继续执法和发布相关信息。

其他信息:

  • 白宫的X账号(拥有约350万粉丝)已被证实自特朗普第二任期以来,至少发布了14篇使用AI生成的内容。

总结:

白宫发布一张经过数字篡改的抗议者照片引发了争议。该篡改被认为是试图影响公众对事件看法的行为,也突出了政府机构使用AI生成内容进行政治宣传的潜在问题。

Ubisoft cancels six games including Prince of Persia and closes studios

Ubisoft 大规模重组:取消项目、关闭工作室,聚焦核心业务

育碧(Ubisoft)近日宣布进行“重大重组”,旨在实现可持续增长。此次重组包括取消六款游戏、关闭两家工作室,并推迟七款游戏的发布。 此举导致育碧股价大幅下跌,跌幅高达33%。

主要措施:

  • 取消项目: 育碧取消了包括备受期待的《波斯王子:时之沙重制版》在内的六款游戏。 其中包含四款尚未公布的未命名游戏,包括三款基于新知识产权(IP)的游戏,以及一款移动游戏。
  • 关闭工作室: 育碧关闭了位于瑞典斯德哥尔摩和加拿大哈利法克斯的两家工作室。 斯德哥尔摩工作室负责开发新IP,哈利法克斯工作室则负责为《刺客信条》开发移动游戏。此前哈利法克斯工作室于2025年1月宣布关闭,恰逢该工作室成立工会。
  • 工作室重组: 育碧还将重组另外三个工作室。
  • 延迟游戏发布: 七款游戏被推迟发布。

原因分析:

育碧CEO Yves Guillemot 表示,重组是为了应对竞争激烈的AAA游戏市场,并降低开发风险。 游戏行业分析师 Piers Harding-Rolls 认为,育碧的举动表明其正在试图通过投资现有的大型系列游戏(如《刺客信条》和《彩虹六号》)来降低风险,而不是专注于推出全新的IP。

未来战略:

  • 聚焦核心业务: 育碧将重点发展开放世界冒险游戏和具有持续服务模式的游戏。
  • 打造年收入十亿美元品牌: 育碧旗下的Vantage Studios(由腾讯投资12.5亿欧元)将致力于将《刺客信条》、《远哭》和《彩虹六号》打造成年收入十亿美元的品牌。
  • 应对市场挑战: Guillemot 承认 AAA 行业变得越来越有选择性,并且开发成本和创建品牌面临更大的挑战。

背景信息:

这是育碧近年来第二次大规模重组,此前于2025年欧洲裁员185人。 在英国,育碧关闭了位于莱明顿的办公室,并重组了纽卡斯尔upon泰因的另一家办公室。 此外,像《侠盗猎车手VI》这样的AAA游戏也面临发布延期的困境。

总而言之,育碧此次重组旨在通过战略调整,应对市场挑战,并为未来的可持续增长奠定基础。