2025-11-29

23 篇热帖

Airbus A320 – intense solar radiation may corrupt data critical for flight

A320 系列飞机因太阳辐射数据损坏问题发布安全警报

图卢兹,法国,2025年11月28日 - 近期A320系列飞机事件的分析表明,强烈的太阳辐射可能导致关键的飞行控制数据损坏。

因此,空中客车公司已确认目前服役的大量A320系列飞机可能受到影响。

空中客车公司已主动与航空当局合作,通过“机队运营警报”(Alert Operators Transmission,AOT)要求运营商立即采取预防措施,以实施现有的软件和/或硬件保护,确保机队安全飞行。此AOT将体现在欧洲航空安全局(EASA)发布的紧急适航指令中。

空中客车公司承认这些建议将导致乘客和客户的运营中断。为此,我们深表歉意,并将与运营商密切合作,同时将安全作为首要且最重要的优先事项。


总结要点:

  • 问题: A320系列飞机在强太阳辐射下,飞行控制数据可能被损坏。
  • 影响范围: 许多目前服役的A320系列飞机可能受到影响。
  • 应对措施: 空中客车公司与航空当局合作,发布“机队运营警报”(AOT)和紧急适航指令,要求运营商采取预防措施。
  • 预期影响: 预计将导致航班运营中断。
  • 空中客车公司声明: 对由此带来的不便表示歉意,并将优先考虑安全。
Credit report shows Meta keeping $27B off its books through advanced geometry

FSG LLC 信用评级报告摘要 (FSG LLC Credit Rating Report Summary)

日期: 2025年11月28日

评级机构: FSG LLC (Flexible Standards Group)

分析师: Tom Bellwether (联系方式不可用)

核心要点: FSG LLC 初步评定 Beignet Investor LLC (以下简称“Issuer”) 发行价值 273 亿美元的 senior secured amortizing notes 为 A+。该评级基于以下主要观点:

  • 风险转移: Issuer 的主要风险已通过合同条款转移至 Meta Platforms Inc. (以下简称“Meta”),因此被视为假设性风险。
  • 现金流预测: 预测的现金流被认为足够稳定,能够支持该评级。
  • 剩余价值保证 (RVGs): 存在 RVGs,表明资产价值将符合预期,而非市场波动。

交易结构:

  • 实体结构: Issuer 是 Blue Owl Capital 旗下的一个项目融资式控股公司 Beignet Investor LLC,与 Meta 成立了 80/20 的合资企业(JVCo)。
  • 数据中心项目: JVCo 将拥有位于路易斯安那州 Richland Parish 的一个 2.064 GW 超大规模数据中心园区。
  • 融资结构:
    • Issuer 发行 273 亿美元的债券。
    • Blue Owl 基金提供 24.5 亿美元的递延股权。
    • 利用 11.6 亿美元的短期国债利息作为股权的一部分。
  • Meta 的角色: Iris Crossing LLC (Meta 的间接子公司) 拥有 JVCo 的 20% 股权,并承担约 57.6 亿美元的建设成本。Meta 通过 Pelican Leap LLC (租户) 与 JVCo 签订了 11 份三方净租赁协议。

评级依据:

  • 该评级低于 Meta 的信用评级 (AA-/Stable) 一级,反映了 Issuer 与 Meta 之间强有力的合同联系以及 Meta 将约 270 亿美元的资产和债务从其资产负债表上转移的结构。
  • Meta 承担了建设成本超支、租赁付款和运营义务的保证,并提供了 RVG,以确保债券持有人在极端情况下也能获得偿还。
  • 该结构允许 Meta 在继续提供所有实质性经济支持的同时,将相关债务置于技术上不属于 Meta 资产负债表上的实体中。

前景展望: Superficially Stable (表面稳定),意味着除非发生重大事件,否则评级预计保持不变。

主要风险:

  • 依赖 Meta: Issuer 的信用质量与 Meta 的信用状况密切相关。
  • 集中度风险: 该项目完全依赖于 Meta 作为唯一的租户,且业务模式面临技术变革的风险。
  • 剩余价值不确定性: RVG 的有效性取决于数据中心在未来能够以足够的价格出售。
  • 会计处理: 该结构依赖于 Meta 声明不符合控制标准,未来会计准则的改变可能导致 Meta 必须将债务纳入其资产负债表。

总而言之,FSG LLC 认为该评级结构通过复杂且技术精妙的安排,使 Meta 能够将债务置于技术上不属于其资产负债表上的实体中,同时继续提供实质性的经济支持,并确保债券持有人得到偿还。

28M Hacker News comments as vector embedding search dataset

Hacker News Dataset 与 ClickHouse 向量搜索应用总结 (Hacker News 数据集与 ClickHouse 向量搜索应用总结)

本文档介绍了 Hacker News 数据集及其在 ClickHouse 中的向量搜索应用。

数据集概览:

  • 内容: 包含 2874 万条 Hacker News 帖子及其向量嵌入。
  • 向量嵌入: 使用 SentenceTransformers 模型 all-MiniLM-L6-v2 生成,维度为 384。
  • 存储: 数据集以单个 Parquet 文件形式存储在 S3 存储桶中 (https://clickhouse-datasets.s3.amazonaws.com/hackernews-miniLM/hackernews_part_1_of_1.parquet)。
  • 用途: 该数据集可用于分析大规模、基于用户生成文本数据的向量搜索应用的架构、规模和性能。

ClickHouse 应用步骤:

  1. 创建表: 创建 hackernews 表来存储帖子及其属性。表结构包括:
    • id: 递增整数。
    • doc_id: 文档ID。
    • text: 帖子文本。
    • vector: 向量嵌入(Float32 数组)。
    • node_info: 节点信息。
    • metadata: 元数据。
    • type: 帖子类型(故事、评论、投票选项、工作等)。
    • by: 帖子发布者。
    • time: 帖子发布时间。
    • title: 帖子标题。
    • post_score: 帖子得分。
    • dead: 是否已过期。
    • deleted: 是否已删除。
    • length: 帖子长度。
    • 引擎: 使用 MergeTree 引擎,并按 id 排序。
  2. 加载数据: 使用 SQL 语句从 Parquet 文件加载数据到 hackernews 表。
  3. 构建向量相似度索引: 使用 SQL 创建并构建向量相似度索引,基于 HNSW 算法和余弦距离。
    • ALTER TABLE hackernews ADD INDEX vector_index vector TYPE vector_similarity('hnsw', 'cosineDistance', 384, 'bf16', 64, 512);
    • ALTER TABLE hackernews MATERIALIZE INDEX vector_index SETTINGS mutations_sync = 2;
    • Mef_construction 参数需要根据实际情况进行调整。
  4. 执行 ANN 搜索: 使用 SQL 查询执行向量相似度搜索。
    • SELECT id, title, text FROM hackernews ORDER BY cosineDistance(vector, <search vector>) LIMIT 10
  5. 生成搜索查询的嵌入: 使用 Sentence Transformers 模型生成搜索查询的向量嵌入,然后将其传递给 cosineDistance() 函数。

演示应用:

  • 语义搜索与文档检索: 使用 ClickHouse 执行语义搜索,根据用户输入的查询检索相关帖子。
  • 生成式 AI 应用 (摘要): 演示了利用 ClickHouse 向量搜索结果构建生成式 AI 应用的示例,具体是利用 OpenAI 的 gpt-3.5-turbo 模型对检索到的帖子进行摘要。
    • 该应用首先生成查询的向量嵌入。
    • 然后使用 ClickHouse 检索相关帖子。
    • 最后,将检索到的帖子作为上下文传递给 gpt-3.5-turbo 模型,生成摘要。

总结:

该文档展示了如何使用 Hacker News 数据集和 ClickHouse 构建一个向量相似度搜索应用,并演示了如何将该应用与生成式 AI 模型结合使用,以实现更高级的功能,例如文档摘要。该方法可应用于各种企业领域,例如客户情感分析、技术支持自动化等。

Bringing Sexy Back. Internet surveillance has killed eroticism

Okay, I'm ready. Please provide the content you want me to summarize. I will do my best to produce a concise, accurate, and markdown-formatted summary in Chinese, adhering to your guidelines (less than 800 words, no personal opinions, focus on main points/structure/functionality for technical content). Just paste the content here, and I'll get started.

Confessions of a Software Developer: No More Self-Censorship

总结:关于恐惧、知识差距和职业坦诚

本文讲述了作者克服恐惧,在博客上坦诚承认自己职业生涯中的一些知识缺口和职业选择,以及由此产生的个人挣扎。文章主要分为知识差距自白、个人自白和工作场所自白三大板块。

知识差距自白:

  • 缺乏多态性理解: 作者坦承自己从事面向对象编程十年,却直到最近才真正理解多态性的概念,意识到自己之前只是在编写结构化程序。
  • 遗忘 SQL: 曾经掌握 SQL 的作者,由于在前端开发中缺乏使用,导致 SQL 技能退化。
  • 缺乏自动化测试: 作者承认自己交付到生产环境的代码很少包含自动化测试,这与行业最佳实践相悖。

个人自白:

  • 放弃 Blazor 学习: 作者原本计划学习 C#、.NET 和 Blazor,但由于公司改变技术栈,学习计划被迫放弃。
  • 渴望使用 Ruby: 作者热爱 Ruby,希望在工作中更多地使用 Ruby,但现实是工作环境不允许。
  • 网络欺凌经历: 作者分享了自己因为在开源项目贡献代码(使用了 AI 工具)而遭受网络欺凌的经历,并因此感到恐惧。

工作场所自白:

  • SaaS 团队无需特殊流程: 作者认为 SaaS 团队应该遵循标准的软件开发流程,而不是创造自定义流程。
  • 远程工作弊端: 作者坦诚自己更喜欢面对面的工作方式,认为远程工作会降低团队协作效率。

总结与展望:

作者表示,克服了恐惧之后,他将继续分享自己的学习和成长经历,并鼓励读者也勇敢面对自己的知识缺口。他提供了多种方式让读者可以关注他的博客,包括 Mastodon、RSS 订阅和电子邮件订阅。

总而言之,本文是一篇坦诚的自白,作者通过分享自己的不足和挣扎,希望能够激励他人克服恐惧,勇于学习和成长,并对行业内的一些常见现象提出自己的看法。

Imgur geo-blocked the UK, so I geo-unblocked my network

Imgur 英国封锁解决方案总结

本文描述了作者在 Imgur 封锁英国用户后,通过构建一个网络层代理解决方案来绕过封锁的经历。

问题背景:

  • Imgur 封锁了英国用户的访问。
  • 这导致许多网站(如 Reddit、论坛、项目文档等)中的 Imgur 图片链接失效,影响用户体验。
  • 作者尝试使用 VPN 但认为不够便捷,因为需要为每个设备单独配置,且会影响网络速度。

解决方案:

作者利用其 homelab 环境,搭建了一个透明代理,实现所有网络设备自动访问 Imgur。 具体流程如下:

  1. DNS劫持: Pi-hole 将对 i.imgur.com 的 DNS 请求重定向到 Traefik 的 IP 地址。
  2. Traefik 路由: Traefik 根据 SNI 域名 (i.imgur.com) 将请求路由到 Gluetun 容器。
  3. VPN 隧道: Gluetun 容器通过 WireGuard VPN 连接,建立到外部网络的隧道。
  4. Nginx 代理: 位于 Gluetun 网络中的 Nginx 容器接收到请求后,进行 TCP 代理,将请求转发到真实的 Imgur 服务器。
  5. 数据返回: Imgur 服务器返回的图片数据通过 VPN 隧道返回到设备。

技术细节:

  • Gluetun: 提供 VPN 连接的容器,不具备反向代理功能。
  • Nginx: 位于 Gluetun 网络中,负责实际的代理工作,使用最小配置进行 TCP 代理和 SNI 处理。
  • Docker Compose: 用于管理 Gluetun 和 Nginx 容器,并配置网络模式,确保 Nginx 流量通过 VPN 隧道。
  • Traefik: 作为反向代理,根据 SNI 域名将流量路由到 Gluetun 容器。
  • NixOS: 用于管理整个系统,包括 Docker 容器和 Agenix 密钥管理,保证系统配置的声明性和安全性。Agenix 用于安全地存储 VPN 凭据,避免将敏感信息暴露在公开代码库中。

结果:

通过这种网络层代理方案,作者成功绕过了 Imgur 的封锁,所有网络设备都能透明地访问 Imgur 图片,无需安装 VPN 客户端或进行手动配置。 速度影响很小,并且只影响 Imgur 流量。

总结:

本文展示了一个利用 homelab 环境,通过自定义代理和 VPN 隧道,解决特定网络访问问题的方案。该方案具有透明性、自动化和安全性的特点,并适用于需要绕过地域限制的情况。

System 7 natively boots on the Mac mini G4

Mac OS 7 和 8 时代重现:新世界 ROM 机器也能原生启动老系统!

最近,Mac OS 9.2.2 在四款 Mac mini G4 上运行近八年已经成为常态,但更令人震惊的是,现在这些“新世界 ROM”机器甚至可以原生启动 System 7

技术背景:

  • CHRP (Common Hardware Reference Platform):CHRP 是 PReP 的继任者,Apple 曾计划让 Mac OS 可以在 CHRP 平台上原生启动,但最终被 Jobs 取消。尽管如此,Apple 内部仍开发了 Mac OS 7.6 ~ 8.0 用于 CHRP 系统,但未公开发布。
  • 新世界 ROM:这些 Mac 依赖于“Mac OS ROM”系统文件启动,而旧世界 ROM Mac 则不需要。
  • 早期限制:早期的新世界 ROM Mac 只能启动 Mac OS 8.1 或更早版本,且最低 OS 版本要求逐渐提高。

突破口:

  • CHRP 泄漏:2025 年 10 月,一些 CHRP 版本的 Mac OS 泄漏,包括 Mac OS 8.0 和 7.6。
  • System Enabler:7.6 CHRP 泄漏中包含 System Enabler 文件,可以被利用来加载 Mac OS ROM 文件,并允许加载更早版本的 Mac OS (7.5.x 及更早)。
  • ROM 修复与合成:Rairii (Wack0) 利用 ELN 的工具 (tbxi) 对 Mac OS ROM 文件进行分析、修复和合成,创建了兼容早期系统的新 ROM 文件,保留了旧版功能并添加了新功能。
  • System Enabler 修复:Rairii 修复了 System Enabler,允许它支持更早的 OS 版本。

可启动的 Mac OS 版本:

经过测试,以下 Mac OS 版本可以在 Mac mini G4 上启动:

  • System 6.0.8: 无法启动,出现问号标志。
  • System 7.0 & 7.1.2: 无法启动,出现警告信息。
  • System 7.5: 稳定启动,但需要禁用扩展。
  • System 7.5.2: 启动但非常不稳定。
  • System 7.5.3: 稳定启动,需要禁用扩展。
  • Mac OS 7.6: 稳定启动。
  • Mac OS 8.1: 稳定启动。
  • Mac OS 8.5 & 8.5.1: 无法启动,需要修改机器 ID。
  • Mac OS 8.6: 无法启动,崩溃在加载进度条。
  • Mac OS 9.0.4 - 9.1: 崩溃在加载进度条。
  • Mac OS 9.2 ~ 9.2.2: 运行良好。

获取资源:

重要提示:

  • 此方法主要使能已经能启动某些 Mac OS 版本的机器,对于无法启动任何 Mac OS 版本的机器(例如 DLSD PowerBook G4),则无效。
  • 需要 ROM 版本 9.1 或更高版本才能使用 Ultra ATA/100 驱动。
  • Rairii 使用 Python 3.8.10 对 ROM 进行修复。

意义:

此突破为用户提供了更多选择,可以体验早期的 Mac OS 系统,并探索早期 OS API 和行为。

Molly: An Improved Signal App

MollyIM 总结

MollyIM 是一款完全开源 (Fully FOSS) 的即时通讯应用,其主要特点和功能如下:

核心特性:

  • 完全开源: 与 Signal 等应用不同,MollyIM 不包含任何专有代码(proprietary blobs)。
  • 加密保护: 使用 密码短语加密 技术保护数据库,确保数据安全。
  • 多设备支持: 允许用户将多个设备与单个账户进行配对,实现跨设备使用。
  • Material You 主题: 采用 Material You 设计风格,根据设备调色板自动调整应用主题。
  • Ungoogled 通知: 使用 UnifiedPush 系统,避免依赖 Google 的推送服务。
  • 自动锁定: 支持设置自动锁定功能,在用户离开一段时间后自动锁定应用。
  • 内存销毁(RAM Shredding): 提供安全销毁敏感数据的机制。
  • Tor 支持: 支持 SOCKS 代理和通过 Orbot 使用 Tor 网络,增强匿名性。

未来展望:

MollyIM 团队表示,未来将持续推出新的、更好的功能。

How good engineers write bad code at big companies

大型科技公司为何会产生质量不佳的代码?

本文探讨了大型科技公司为何会产生质量不佳的代码的现象,并分析了其根本原因。作者认为,这并非工程师个人能力的问题,而是公司制度和运作模式所致。

主要观点:

  • 工程师流动性高: 大型科技公司工程师的平均工作年限较短,通常只有一年或两年,甚至更短。频繁的团队重组和组织变动导致工程师经常需要面对陌生的代码库和技术栈。
  • “老手”的局限性: 虽然有经验的“老手”工程师可以进行代码审查,但他们通常负担过重,且缺乏长期的专业知识积累和公司支持。
  • 大多数工程师是“新手”: 绝大部分修改代码的工程师对代码库、语言或项目都相对不熟悉,他们需要在截止日期内完成任务,难以保证代码质量。
  • 公司优先考虑灵活性: 大型公司为了快速调配资源,牺牲了代码质量和工程师的专业技能,优先考虑内部代码的可读性和灵活性,允许工程师快速适应新的任务。
  • 纯工程 vs. 杂乱工程: 纯工程是指工程师在自包含的技术项目中工作;杂乱工程则是在截止日期内处理陌生的项目。大型科技公司中的工程工作本质上是杂乱工程,因此代码质量问题难以避免。

总结:

大型科技公司中质量不佳的代码的产生,是由于工程师流动性高、资源分配不均、公司制度偏向灵活性等因素共同作用的结果。工程师个人无法改变这一现状,只能在有限范围内努力维护代码质量。公司应该认识到这一问题,并采取措施支持工程师的专业发展,以提高整体代码质量。

So you wanna build a local RAG?

Skald:构建本地RAG的实践与基准测试

发布于: 2025年11月26日

本文介绍了Skald项目,旨在帮助组织在保证数据隐私的前提下,利用大型语言模型(LLM)。Skald致力于提供完全自托管的解决方案,避免数据上传至第三方服务。

RAG 组件与开源替代方案

基于检索增强生成(RAG)架构通常包含以下核心组件:

  • 向量数据库
  • 向量嵌入模型
  • LLM

此外,还可能包含:

  • 重排序器
  • 文档解析器 (例如,处理PDF、PowerPoint等)

构建本地RAG需要为每个组件寻找开源替代方案。

组件 专有选项 开源选项
向量数据库 Pinecone, Turbopuffer, Weaviate Cloud, Qdrant Cloud Qdrant, Weaviate, Postgres with pgvector
向量嵌入模型 OpenAI, Cohere, Voyage Sentence Transformers, BGE, E5
LLM GPT, Claude, Gemini Llama, Mistral, GPT-OSS
重排序器 Cohere, Voyage BGE Reranker, Sentence Transformers Cross-Encoder
文档解析 Reducto, Datalab Docling

Skald 的本地 RAG 堆栈

Skald 项目目前使用的本地 RAG 堆栈如下:

  • 向量数据库: Postgres + pgvector (虽然存在争议,但Skald计划进行基准测试)
  • 向量嵌入: 用户可配置,默认使用 Sentence Transformers 的 all-MiniLM-L6-v2 模型(速度和检索性能良好,仅支持英语)。
  • LLM: 用户自行管理,测试使用 GPT-OSS 20B (运行在 EC2 上)。
  • 重排序器: 用户可配置,默认使用 Sentence Transformers 的 cross encoder 模型(仅支持英语)。
  • 文档解析: 使用 Docling (通过 docling-serve 运行)。

性能测试

Skald 团队构建了一个实验平台,用于对 RAG 系统的性能进行评估。他们导入了 PostHog 网站内容,并创建了一个小型问题/答案数据集。

基准测试结果

  • Voyage + Claude (云端配置): 平均得分 9.45,回答准确,几乎完美。
  • Voyage + GPT-OSS 20B: 平均得分 9.18,与云端模型表现相当,仅在少数情况下缺少一些细节信息。
  • 完全本地 + GPT-OSS 20B (默认 Sentence Transformers 模型): 平均得分 7.10。表现不佳,主要原因是:
    • 不支持非英语查询
    • 对模糊问题和需要聚合多个文档信息的查询处理能力不足。
  • 完全本地 + GPT-OSS 20B (多语言模型): 平均得分 8.63,显著改善,能够处理葡萄牙语查询,但仍然在聚合信息方面存在不足。

总结与展望

Skald 项目证明了构建本地 RAG 架构是可行的,并且性能可以达到与云端服务相当的水平。未来的工作重点包括:

  • 进一步优化本地 RAG 堆栈以适应更多用例
  • 发布更全面的开源模型基准测试
  • 研究提升聚合信息处理能力的技术

Skald 团队欢迎社区参与,并提供联系方式以供讨论合作。

AI Adoption Rates Starting to Flatten Out

阿波罗学院 (Apollo Academy) 概览

阿波罗学院 (Apollo Academy) 是一个专注于另类投资教育的平台,隶属于阿波罗全球管理 (Apollo Global Management)。其主要目标是为投资者提供深入的另类投资知识和见解。

主要内容与服务:

  • 课程体系: 阿波罗学院提供多种课程,涵盖以下主题:
    • 另类投资基础 (Alternative Investing Essentials): 分为三个部分,分别介绍私募股权、风险投资、私人信贷、房地产、基础设施、数字资产和对冲基金等。
    • 专题课程: 涵盖私募股权的阿尔法创造、人工智能基础设施投资、宏观经济展望(例如:滞胀),混合投资结构,私人信贷投资,以及对最新美国政府政策提案的潜在影响等。
    • 2026 年展望 (2026 Outlook): 计划于 2025 年 12 月 16 日举行。
  • 学习方式: 提供在线课程,部分课程已提供按需观看功能。
  • 资源与内容:
    • 每日灵感 (The Daily Spark): 提供每日的投资洞察,可订阅邮件接收。
    • 观点 (The View from Apollo): 分享阿波罗的投资观点。
    • 投资知识 (Investment Knowledge): 提供投资相关的知识文章。
  • 注册与登录: 用户可以通过网站注册并登录以访问课程和其他资源。

近期数据分析:

阿波罗学院分享了来自美国人口普查局 (US Census Bureau) 和 Ramp 的数据,显示人工智能 (AI) 在各规模公司中的采用率正在趋于平缓。 数据来自双周调查,并以六项调查的移动平均值呈现。 这些数据以及 Ramp Al Index (衡量美国企业采用人工智能产品和服务的速率) 的图表,可以从阿波罗学院网站下载。

重要声明:

阿波罗学院声明:

  • 此演示文稿未经阿波罗全球管理公司明确同意,不得传播、传输或以任何方式传达给他人。
  • 阿波罗不对演示文稿中任何信息的准确性、合理性或完整性承担任何责任。
  • 演示文稿中的观点、估计和预测反映了演讲者在指定日期的当前判断,可能随时更改,且不一定代表阿波罗的观点。
  • 演示文稿中的声明不构成会计、法律或税务建议,也不构成投资建议。投资者应独立调查演示文稿中讨论的信息。
  • 演示文稿不构成任何证券、产品或服务的要约或征求要约。

总结:

阿波罗学院是一个由阿波罗全球管理公司提供的另类投资教育平台,通过各种课程、资源和分析,帮助投资者了解和掌握另类投资知识。 平台强调内容的及时性和专业性,并对内容的使用和解读提出了明确的免责声明。

Every mathematician has only a few tricks (2020)

总结:对易矩阵与物理应用

本文从物理学家的角度阐述了一个重要概念:对易矩阵可以同时对角化。在物理中,所有矩阵都可以对角化,而利用对易矩阵的性质可以简化对角化过程。以下是该概念在不同物理系统中的应用:

  1. 平移不变性系统: 如果系统具有平移不变性,则平移算符的特征向量为 $e^{ik.x}$。因此,应该使用傅里叶变换来解决各种波动方程,例如光、声、自由电子的量子力学方程以及均匀介质中的热传导方程。

  2. 离散平移对称性系统: 晶体中的原子就是一个典型的例子。在这种情况下,存在离散平移算符 $T_a\phi(x)=\phi(x+a)$,其中 $a$ 为晶格常数。尝试将 $\phi_k(x+a)=e^{ik.a}\phi_k(x)$ 作为 $T_a$ 的特征向量,可以导出 布洛赫定理Floquet定理。这导致了能带结构,是凝聚态物理中一个著名的模型,能够解释导体和绝缘体之间的区别。

  3. 旋转不变性系统: 对于具有旋转不变性的系统,首先应该对旋转算符进行对角化。这对于求解 氢原子 的特征值和特征向量至关重要。氢原子的特征空间对旋转是稳定的,因此可以看作是 $SO(3)$ 的有限维表示。 $SO(3)$ 的不可约表示的维度为 1, 3, 5, ...,这些维度对应于考虑电子自旋后,元素周期表的列(2, 6, 10, 14,...)。

  4. $SU(3)$ 对称性: 粒子物理学非常复杂,但物理学家发现存在潜在的 $SU(3)$ 对称性。利用$SU(3)$ 的表示,可以将粒子“动物园”进行更清晰的组织,例如利用 Clebsch-Gordan 系数介子 来描述。

Stellantis Is Spamming Owners' Screens with Pop-Up Ads for New Car Discounts

斯泰兰蒂斯汽车内屏幕弹出广告引发争议:总结

主要内容:

斯泰兰蒂斯(Stellantis)公司最近在旗下Jeep、Ram和Chrysler等品牌的汽车内屏幕上推送营销广告,引发了车主和网络用户的强烈不满。

具体情况:

  • 广告内容: 广告主要推送1500美元的忠诚度奖励,鼓励车主购买新的斯泰兰蒂斯汽车,例如Jeep。此前,该公司也曾通过类似方式向车主推销延长保修服务。
  • 广告呈现方式: 广告会在车辆启动时和车辆静止时弹出,并会在车辆移动、用户点击“OK”或“X”图标,或15秒后消失。如果用户选择“稍后提醒”,广告会在下次启动时再次出现。
  • 车主反应: 大部分车主对这种营销方式表示不满,认为这是“晚期资本主义”的表现,并表示可能会放弃购买斯泰兰蒂斯品牌的汽车。
  • 斯泰兰蒂斯的回应: 斯泰兰蒂斯表示,通过车载信息系统发送通知是为了“在车主拥有车辆的关键时刻与他们保持联系”,也会用于发布车辆召回和健康监测警报。公司声称这种营销方式能够提高客户满意度,并鼓励车主享受优惠。
  • 用户选择: 车主可以通过拨打800-777-3600的客户服务热线,永久取消接收车载信息。
  • 市场背景: 斯泰兰蒂斯正在通过各种折扣来提高销量,面对福特Bronco等竞争车型对Jeep Wrangler市场份额的挑战,更积极地采取营销措施。

总结: 斯泰兰蒂斯利用车载信息系统推送营销广告的行为,虽然公司声称是为了保持与车主的联系并提供优惠,但却引发了车主广泛的负面反馈,凸显了在智能汽车时代,汽车制造商在营销和用户体验之间平衡的挑战。

Flight disruption warning as Airbus requests modifications to 6k planes

空巴斯飞机软件更新造成航班延误和取消:总结

事件概述:

由于太阳辐射干扰可能导致飞机控制系统出现故障,欧洲航空巨头空巴斯(Airbus)要求全球数千架飞机立即进行软件更新,这导致了大规模航班延误和取消。该问题正值美国感恩节假期出行高峰期,对旅客造成了不便。

关键细节:

  • 受影响飞机: 主要影响空巴斯A320系列飞机,预计超过6000架飞机受到影响,约占空巴斯全球机队的一半。
  • 问题根源: 太阳辐射(尤其是日冕物质抛射 CME)产生的高能带电粒子,可能干扰飞机电子设备,导致数据损坏。10月份,一架墨西哥飞往美国的JetBlue飞机在飞行中遭遇“突然下降”事件,被认为是太阳辐射干扰造成的。
  • 解决方案: 空巴斯要求航空公司对受影响的飞机进行软件更新。较新的飞机只需更新软件,预计耗时约3小时。但约900架较旧的飞机需要更换计算机,更换时间尚不确定,取决于备件供应情况。
  • 航空公司反应:
    • 美国航空公司(American Airlines): 340架飞机受影响,预计会有“一些运营延误”。
    • 达美航空公司(Delta Airlines): 预计运营影响“有限”。
    • 全日空航空公司(ANA): 取消了65个航班。
    • 新西兰航空(Air New Zealand): 在进行软件更新前,尽可能维持A320航班运营。
    • 易捷航空(EasyJet): 已经完成大部分飞机的软件更新,计划正常运营。
    • 加拿大航空 (Air Canada): 不预计运营受到影响。
    • 捷星航空 (Jetstar): 一些飞机暂时无法起飞。
  • 英国机场影响: 伦敦希思罗机场(Heathrow)表示目前没有受到影响,而伦敦盖特威克机场(Gatwick)预计会有一些延误。
  • 欧盟航空安全局(EASA)指令: EASA规定,受影响的飞机在完成修复前不允许载客飞行,但允许进行不载客的“渡航”飞行,以运送飞机至维修地点。

技术背景:

  • 太阳辐射影响: 日冕物质抛射(CME)会释放大量带电粒子,进入地球大气层,干扰高空(海拔8.5千米以上)的飞机电子设备。
  • 受影响系统: 此次问题影响的是ELAC(电传管片-高级控制)计算机,该计算机控制飞机的升降舵和水平稳定器。

未来展望:

预计在短期内,全球范围内会有航班延误和取消。空巴斯和航空公司正在积极配合进行软件更新,以尽快恢复正常运营。 预计盖特威克机场将需要“玩一场物流的套圈游戏”,以确保飞机有足够的停机位。


中文翻译:

空巴斯飞机软件更新造成航班延误和取消:总结

事件概述:

由于太阳辐射干扰可能导致飞机控制系统出现故障,欧洲航空巨头空巴斯(Airbus)要求全球数千架飞机立即进行软件更新,这导致了大规模航班延误和取消。该问题正值美国感恩节假期出行高峰期,对旅客造成了不便。

关键细节:

  • 受影响飞机: 主要影响空巴斯A320系列飞机,预计超过6000架飞机受到影响,约占空巴斯全球机队的一半。
  • 问题根源: 太阳辐射(尤其是日冕物质抛射 CME)产生的高能带电粒子,可能干扰飞机电子设备,导致数据损坏。10月份,一架墨西哥飞往美国的JetBlue飞机在飞行中遭遇“突然下降”事件,被认为是太阳辐射干扰造成的。
  • 解决方案: 空巴斯要求航空公司对受影响的飞机进行软件更新。较新的飞机只需更新软件,预计耗时约3小时。但约900架较旧的飞机需要更换计算机,更换时间尚不确定,取决于备件供应情况。
  • 航空公司反应:
    • 美国航空公司(American Airlines): 340架飞机受影响,预计会有“一些运营延误”。
Airloom – 3D Flight Tracker

3D 空域显示工具摘要

该内容描述了一个3D空域显示工具的界面和设置,主要用于搜索、显示和分析飞行器信息。以下是主要功能和设置的总结:

1. 空间定位与搜索:

  • 定位: 工具正在检测当前位置,并允许用户搜索机场。
  • 搜索半径: 设置搜索半径为100公里。
  • 飞行器搜索: 目前未检测到任何飞行器 (Aircraft: 0)。数据更新状态为“--”。

2. 控制与导航:

  • 自动旋转: 空闲状态后,界面自动旋转10秒。
  • 指南针: 可以显示指南针。
  • 飞行跟踪 (Flight Following): 可以启用飞行跟踪功能。
  • 冲浪模式 (Surf Mode): 点击飞行器选择后,自动切换显示下一个飞行器。

3. 显示设置:

  • 轨迹长度: 轨迹显示长度设置为1000个单位。
  • 线条粗细: 线条粗细设置为2。
  • 颜色设置: 颜色根据速度与高度的关系变化。
  • 标签显示: 可以显示机场标签和城市名称。
  • 姿态: 保持静止姿态。

4. 地图与地形:

  • 地图层: 可以选择不同的地图层。
  • GPS海拔: 当前GPS海拔数据为“--”。
  • 显示边界: 可以选择是否显示边界。

5. 空域:

  • 显示空域: 可以显示空域信息。
  • 空域类型: 显示 Class B (大)、Class C (中) 和 Class D (小) 空域。
  • 焦点半径: 仅显示焦点半径内的空域。
  • 线框模式: 只显示空域的线框,不填充颜色。
  • 空域透明度: 空域透明度设置为0.3。

6. 过滤器:

  • 移除过滤后的飞行器: 移除而非隐藏过滤后的飞行器。
  • 过滤条件: 可以根据呼号/十六进制码 (Callsign / Hex)、机型 (Aircraft Type)、最小高度 (Min Altitude, ft)、最大高度 (Max Altitude, ft) 和是否显示地面飞行器 (Show on ground) 进行过滤。

7. 录制与回放:

  • 录制状态: 当前录制处于非激活状态 (Inactive)。
  • 录制时长: 录制时长为0:00。
  • 内存占用: 录制占用内存为0 MB。

8. 高级设置:

  • 高度比例: 高度比例设置为1.2。
  • 地面海拔: 地面海拔设置为0英尺。
  • 雾的距离: 雾的距离设置为20000英尺。
  • 坐标轴: 可以显示坐标轴。
  • 地面网格: 可以显示地面网格。
  • 聚焦模式: 只显示搜索半径内的内容。
  • 地图亮度: 地图亮度设置为90%。
  • 线框密度: 线框密度可调。
  • 颜色色调: 颜色色调设置为0° (灰色)。
  • 亮度: 亮度设置为50%。
  • 海拔渐变: 启用海拔渐变显示。
  • 渐变强度: 渐变强度设置为2.6倍。
A first look at Django's new background tasks

Django 6.0 引入了新的后台任务框架

Django 6.0 引入了 django.tasks 模块,提供了一个内置的后台任务框架。但请注意,这并不意味着要淘汰 Celery、Huey 或其他已有的解决方案。 Django 仅仅提供了任务队列的通用 API,不提供运行任务的 worker 机制,执行必须由外部基础设施管理,例如独立的进程或服务。

项目:通知系统

该示例项目旨在构建一个使用 ntfy.sh 向手机和其他设备发送通知的应用程序。ntfy.sh 允许通过 HTTP 请求发送消息到特定的主题。

Django 任务框架简介

  • 定义任务: 使用 @task 装饰器定义任务,取代了以往的任务队列特定装饰器。任务只能通过 enqueue 方法运行,以防止意外地在进程中执行任务。
  • 排队任务: 使用 send_notification.enqueue(message, title) 将任务添加到队列。
  • 执行任务: Django 6.0 默认提供 ImmediateBackend(立即执行任务)和 DummyBackend(不执行任务)两种后端。示例项目使用数据库后端和 worker 进程。
  • 获取结果: 使用 send_notification.get_result(result_id) 获取任务结果。

后台实现

Django 使用装饰器 @task 将可调用对象包装成 django.tasks.Task 类。 后端负责处理任务的排队和结果获取。

数据库后端: 本示例项目实现了一个数据库后端,支持自动重试。

  • 模型: 定义了 TaskAttempt 模型,用于存储任务信息和执行尝试记录。Task 模型包含任务优先级、调用路径、队列名称、状态、参数等信息。Attempt 模型记录了每次任务执行的尝试,包括错误信息、worker ID 以及开始和结束时间。
  • 配置: 可以通过 TASKS 字典配置后端,例如设置最大尝试次数和退避因子。
  • Worker: Worker 负责从队列中获取任务,并调用后端来执行任务。

总结

Django 6.0 的 django.tasks 模块旨在提供一个通用的任务队列 API,简化任务定义和排队过程。虽然它不提供完整的任务队列解决方案,但可以作为构建自定义任务处理系统的基础,或者与其他任务队列集成。 它旨在覆盖80%的常见用例,并鼓励开发者根据自己的需求构建更复杂的任务处理流程。

A triangle whose interior angles sum to zero

球面几何与双曲几何概述

本文介绍了球面几何和双曲几何的基本概念,重点关注三角形的内角和以及由此决定的三角形面积。

球面几何:

  • 在球面几何中,三角形的内角和大于π。
  • 三角形的面积可以通过其“三角形过剩量” (triangle excess) 来确定,过剩量等于内角和减去π。
  • 公式:面积 = E = 内角和 − π。
  • 半径为1的球面上,三角形面积等于三角形过剩量。
  • 例如,可以在北极点放置一个顶点,在赤道上相距90°经度的两个点放置另外两个顶点,形成一个三个直角三角形。

双曲几何:

  • 在双曲几何中,三角形的内角和小于π。
  • 在曲率为-1的空间中,三角形的面积可以通过其“三角形缺陷量” (triangle defect) 来确定,缺陷量等于π减去内角和。
  • 公式:面积 = D = π − 内角和。
  • 小三角形的内角和接近π。
  • 当内角和趋近于0时,三角形缺陷量和面积趋近于π。
  • 由于最小内角和为0,因此三角形的最大面积为π。
  • 文中展示了一个特殊的双曲三角形(不完全三角形),其内角和为0,面积为π。该三角形的三个边是欧几里得半圆,它们在实轴上的理想点处相交。 尽管边在理想点相交,但可以在双曲平面内无限接近该三角形。
  • 值得注意的是,该三角形具有无限的周长和有限的面积。 半圆的半径不会影响面积。

相关内容:

总而言之,本文阐述了球面几何和双曲几何中三角形内角和与面积之间的关系,并介绍了某些特殊三角形的性质。 两种几何模型在局部都是欧几里得的。

The original ABC language, Python's predecessor (1991)

ABC 编程语言 (CWI) 概述

本文档概述了最初的 ABC 编程语言,它是 Python 的直接前驱。

历史:

Guido van Rossum 从 1983 年到 1986 年参与了 ABC 的开发。源代码可以从 cwi.nl 下载,特别是 abc-unix tarball,Luciano Ramalho 也在他的 GitHub 上保存了 ABC 的源代码。计划未来比较并统一这两个代码树。 tarball 中的大多数文件最后修改时间为 1991 年,少数为 1996 年或 2021 年。

构建:

构建说明可以在 README 文件中找到。 当前源代码假定 32 位系统,其中 int 和指针具有相同的尺寸。 计划未来升级源代码以支持 64 位系统(其中 int 为 32 位,指针为 64 位)。

许可证:

CWI 从未对 ABC 施加许可证,但声明:Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1988-2011. 计划与 Steven Pemberton 协商,争取获得 MIT 许可证。

作者:

ABC 编程语言的作者包括:Eddy Boeve, Frank van Dijk, Leo Geurts, Timo Krijnen, Lambert Meertens, Steven Pemberton, Guido van Rossum。

参考文献:

  • Leo Geurts, Lambert Meertens 和 Steven Pemberton, The ABC Programmer's Handbook, Prentice-Hall, Englewood Cliffs, New Jersey, 1990, ISBN 0-13-000027-2.
  • Steven Pemberton, An Alternative Simple Language and Environment for PCs, IEEE Software, Vol. 4, No. 1, January 1987, pp. 56-64. http://www.cwi.nl/~steven/abc.html

网页独有参考资料:

Apple and Intel Rumored to Partner on Mac Chips

苹果或与英特尔重启合作,但方式不同 (Apple May Re-Partner with Intel in a New Way)

根据供应链分析师郭明錤的最新消息,苹果公司计划在2027年中期开始与英特尔合作,生产苹果公司自己的M系列芯片。

主要内容:

  • 合作方式: 苹果不会设计芯片,而是委托英特尔制造其低端M系列芯片(预计为M6或M7芯片)。英特尔将使用其18A工艺制造芯片,这是北美地区最早的亚2纳米先进工艺。
  • 架构: 与苹果之前使用英特尔设计的基于x86架构的芯片不同,M系列芯片由苹果设计,采用Arm架构。
  • 供应链多元化: 苹果选择与英特尔合作,部分原因是为了实现供应链多元化,并响应美国政府(特朗普政府)对“美国制造”产品的需求。
  • 台积电的角色: 台积电(TSMC)将继续为苹果供应大部分M系列芯片。
  • 历史背景: 苹果于2020年开始逐步淘汰英特尔处理器,并转向自家的M系列芯片,后者在性能/功耗比方面表现出行业领先水平。 macOS Tahoe将是最后一个支持英特尔Mac的重大macOS版本。
  • 其他新闻:
    • 苹果在线商店正在进行为期数小时的维护,以准备黑五促销活动,提供礼品卡优惠。
    • 苹果与日本时尚品牌ISSEY MIYAKE合作推出的限量版iPhone Pocket配件已在全球范围内售罄。
    • 预计2026年秋季发布的折叠iPhone将采用行业首创的2400万像素屏下摄像头。
    • 由于iPhone Air销量不佳,一些中国手机厂商正在放弃或暂停其超薄手机项目。
    • 运营商正在提供黑色星期五的iPhone折扣,包括iPhone 17、17 Pro、17 Pro Max和Air型号。

总结: 苹果与英特尔的合作将以一种全新的方式进行,英特尔将作为芯片制造商,而不是芯片设计者,以满足供应链需求和政治因素。

Effective harnesses for long-running agents

Claude Agent SDK 实现长程任务的解决方案总结

本文介绍了 Anthropic 如何通过改进 Claude Agent SDK,解决 AI 代理在跨越多个上下文窗口执行长时间任务时遇到的挑战。主要问题在于,由于上下文窗口的限制,代理在每次会话开始时都缺乏对先前工作的记忆,导致效率低下和错误。

核心问题:

  • AI 代理在跨多个上下文窗口执行长时间任务时,每次会话都缺乏对先前工作的记忆。
  • 模型倾向于一次尝试做太多事情,导致上下文耗尽,后续会话需要猜测之前的状态。
  • 代理有时会在项目进行到后期,过早地宣布任务完成。
  • 模型缺乏充分的测试,容易遗漏错误。

解决方案:

Anthropic 提出了一个两阶段的解决方案:

  1. 初始化代理 (Initializer Agent): 在首次运行中,专门设置环境,包括:
    • init.sh 脚本:用于启动开发环境。
    • claude-progress.txt 文件:记录代理完成的工作。
    • 初始 Git 提交:显示添加的文件。
  2. 编码代理 (Coding Agent): 在后续的每次会话中,负责:
    • 逐步实现功能,每次只处理一个功能点。
    • 保持环境整洁,提交代码到 Git,并更新 claude-progress.txt 文件,方便后续会话理解当前状态。

关键组件及最佳实践:

  • 功能列表 (Feature List): 初始化代理创建一个详细的功能列表,明确每个功能的步骤和预期结果,并标记为“失败”,以便后续代理进行完善。使用 JSON 格式存储功能列表,以减少模型误操作的可能性。
  • 增量进度 (Incremental Progress): 编码代理每次只处理一个功能,避免一次性尝试完成太多任务。
  • 测试 (Testing): 使用浏览器自动化工具 (如 Puppeteer MCP) 进行端到端测试,确保功能正常运行,并及时修复错误。
  • 会话启动流程: 编码代理在每个会话开始时,会执行一系列步骤:
    • 查看当前工作目录。
    • 读取 Git 日志和进度文件。
    • 读取功能列表并选择下一个待实现的功能。
    • 启动开发服务器并运行基本测试。

总结表:

问题 初始化代理行为 编码代理行为
过早宣布项目完成 创建功能列表 阅读功能列表,每次只处理一个功能
环境状态混乱,存在错误或未记录的进度 编写初始 Git 仓库和进度文件 读取进度文件和 Git 日志,运行基本测试,提交代码和更新进度
过早标记功能完成 创建功能列表 自行验证所有功能,谨慎标记为“通过”
无法运行应用程序 编写 init.sh 脚本 读取 init.sh 脚本

未来工作:

  • 探索多代理架构,例如,专门的测试代理或代码清理代理。
  • 将解决方案推广到其他领域,如科学研究和金融建模。

总而言之,Anthropic 通过引入初始化代理和编码代理,并结合功能列表、增量进度和测试等实践,成功地解决了 Claude Agent SDK 在长时间任务中的上下文问题,提高了效率和可靠性。

Airbus A320 Fly by wire corrupted by radiation in flight

空中客车A320系列飞机可能面临全球性地面停飞:软件升级是关键

根据航空圈内人士的消息,空中客车A320系列窄体客机可能面临全球性的地面停飞。航空信息分享者JonNYC首先发布了这一消息,但预计停飞时间不会太长,且将采取措施尽量减少航班延误。

事件背景与原因:

  • 最初的猜测与担忧: 起初的传言表明,美国航空公司(AA)可能会为A320机队推出航班取消方案,并可能影响全球所有A320机型,原因是需要进行“强制性软件更新”。
  • 与偏航事件相关: 这一潜在的地面停飞与11月5日发生的JetBlue A320机型偏航事件有关。当时一架从坎昆飞往纽瓦克的航班在没有飞行员指令的情况下“意外地向下俯冲”,迫降至坦帕。事故原因是Thales ELAC 2计算机故障,并已被更换。ELAC计算机负责解释飞行员的指令以控制飞机。
  • ELAC计算机的作用: ELAC计算机是A320系列飞机上用于控制副翼的关键设备,每架飞机配备两个,主要由Thales公司提供。如果其中一个ELAC计算机出现问题,另一个应该无缝接管控制,但此次事件中,该功能未能正常发挥。
  • 此前已有的预警: 2018年,美国联邦航空管理局(FAA)曾提出一项适航指令,要求对所有A320系列飞机的ELAC单元进行软件升级或更换,以解决迎角问题。

最新进展与官方回应:

  • 软件升级确认: JonNYC确认,此次事件的关键在于需要对ELAC计算机进行软件升级,预计每架飞机需要大约2小时进行升级,不同飞机所需时间可能有所不同。 FAA正在制定相关计划。
  • Airbus官方声明: 空中客车发布声明称, “强烈的太阳辐射可能会破坏对飞行控制起关键作用的数据”。 该公司已与航空当局合作,通过“警示航空公司通知”(AOT)要求运营商采取紧急预防措施,以实施可用的软件和/或硬件保护,并确保机队安全飞行。Airbus承认这些建议将导致乘客和客户的航班运营中断。
  • 目前航班情况: 尽管存在潜在的地面停飞风险,JonNYC表示,明天使用这些飞机的航班目前尚未出现任何取消情况。

潜在影响与应对:

  • 停飞规模: 预计此次地面停飞将是小规模和分阶段的,除非问题比之前发现的更为严重(例如737 MAX MCAS系统)。
  • 维护与升级: 考虑到全球约有10,000架A320系列飞机在使用,快速更换所有ELAC单元不可行。 通常情况下,会首先对现有设备进行软件升级,并根据序列号、机龄或飞行小时数等因素设置不同的合规截止日期。同时,空中客车、Thales公司和维护、修理、过户(MRO)商店将提高生产和维修能力。

总而言之,全球范围内A320系列飞机可能面临地面停飞,其根本原因是需要进行ELAC计算机的软件升级,以解决潜在的飞行控制问题。虽然预计停飞时间不会太长,但可能会对航班运营造成一定影响。

True P2P Email on Top of Yggdrasil Network

Tyr:点对点电子邮件应用概览 (Tyr: A Peer-to-Peer Email Application Overview)

Tyr 是一款为 Android 设备设计的点对点电子邮件应用程序,旨在绕过传统电子邮件服务器带来的审查、监控和潜在故障。它利用 Yggdrasil 网络,提供免费的 IPv6 地址,并支持真正的点对点电子邮件通信。

核心理念: 传统电子邮件依赖于中心化服务器,导致隐私泄露和审查风险。Tyr 通过使用点对点网络,消除了这些中心化依赖,提供更安全、更自由的电子邮件体验。

主要特性:

  • 完全集成 DeltaChat/ArcaneChat: 无缝集成最流行的去中心化通讯应用 DeltaChat 和 ArcaneChat。
  • 本地 SMTP/IMAP 服务器: Tyr 在设备上运行完整的电子邮件服务器,提供 SMTP 和 IMAP 协议。
  • 加密身份: 使用 Ed25519 密钥生成,确保电子邮件身份无法伪造。
  • Yggdrasil 网络: 通过可配置的节点连接,实现抗审查设计。
  • 自动启动: 支持开机自动启动,确保始终在线接收消息。
  • 加密备份与恢复: 提供密码保护的配置备份和密钥导出功能。
  • 电池优化: 采用精细的电源管理,延长电池续航。

工作原理:

Tyr 在设备上运行 Yggmail 邮件服务器,该服务器作为 Go 语言库嵌入在应用中,并作为前台服务运行。Yggmail 通过 Yggdrasil 网络进行点对点加密传输,最终将消息传递给接收方的 Tyr 应用。接收方的 Tyr 应用再通过 SMTP/IMAP 协议将消息传递给接收方的聊天应用 (例如 DeltaChat 或 ArcaneChat)。

邮件地址格式:

每个 Tyr 安装都会生成唯一的 Ed25519 加密密钥,邮件地址基于公钥生成,格式为 <64-hex-characters>@yggmail。 这种格式保证了邮件地址的密码学可验证性,防止身份伪造。

快速入门:

用户可以选择自动或手动方式配置 DeltaChat 或 ArcaneChat。自动设置较为便捷,只需安装应用并按照指示操作即可。手动设置需要用户复制邮件地址并手动在聊天应用中配置服务器信息。

安全特性:

  • 密码加密: 使用 Android Keystore 系统和 AES-256-GCM 加密。
  • 自动 Keystore 恢复: 解决 Samsung 等设备上 Android Keystore 问题。
  • 网络加密: Yggdrasil 网络提供端到端加密通信。
  • 仅本地访问: SMTP/IMAP 端口仅绑定到本地环回地址。
  • 密码学身份: Ed25519 密钥确保邮件地址无法伪造。
  • 加密备份: 配置和密钥以密码保护的方式进行备份。

技术细节:

  • 编程语言: Kotlin 2.2.20
  • 最小 SDK: 23 (Android 6.0)
  • 目标 SDK: 33 (Android 13)
  • 编译 SDK: 36
  • 架构: 分层 (UI → Service → Data)
  • 邮件服务器: Yggmail (Go 语言库,通过 gomobile 嵌入)
  • 网络: Yggdrasil 覆盖网状网络
  • 本地化: 英语、俄语

相关项目:

  • Yggmail: Tyr 使用的邮件传输代理。
  • Mimir: 基于 Yggdrasil 的点对点通讯应用。
  • Yggdrasil 网络: 提供基础设施的网状网络。
  • DeltaChat & ArcaneChat: 推荐的电子邮件客户端。

为什么选择点对点电子邮件?

  • 规避审查: 通过连接到 Yggdrasil 网络,用户可以绕过审查。
  • 隐私优先: 避免元数据收集、服务器日志和第三方监控。
  • 去中心化: 没有单点故障,没有中心化控制。

许可证:

Tyr 是开源软件,Yggmail 库使用 Mozilla Public License v. 2.0。

Don't tug on that, you never know what it might be attached to (2016)

总结:EmacsClient 进程间通信问题排查

这篇文章讲述了作者在排查一个 emacsclient 无法连接到 Emacs 服务器的问题过程中遇到的一个复杂 bug。

问题描述:

作者使用一个名为 also 的 shell 脚本来方便地使用 emacsclient 编辑文件。这个脚本依赖于 menupick 工具,提供一个文件菜单供作者选择。然而,该脚本突然失效,emacsclient 报错,提示找不到socket。

排查过程:

  1. Socket位置问题: 作者发现 emacsclient 尝试在 /mnt/tmp/emacs2017/server 查找socket,而 Emacs 实际创建的 socket 位于 /tmp/emacs2017/server
  2. TMPDIR环境变量: 作者通过 strace 发现问题源于 TMPDIR 环境变量。由于系统设置了 TMPDIR=/mnt/tmpemacsclient 按照这个环境变量查找 socket,而 Emacs 则使用默认的 /tmp 目录。
  3. Perl 的影响: 进一步调查发现,问题并非 Emacs 本身,而是 Perl 环境中 TMPDIR 变量被移除。
  4. Capabilities 的作用: 作者和同事最终确定,系统赋予 Perl 一项特殊权限(capability),使得动态加载器在运行 Perl 时会为了安全起见,移除 TMPDIR 环境变量。这导致 Emacs 和 emacsclient 运行在不同的环境变量环境中。

解决方案:

作者采取了以下两种绕过方案:

  1. 使用 TCP socket 代替 Unix-domain socket。
  2. 通过设置 EMACS_SERVER_SOCKET 环境变量,手动指定 emacsclient 查找 socket 的位置。

总结与教训:

文章总结了解决问题的过程,并强调了在提交 bug 报告前,务必验证 bug 报告中的步骤是否可重现。同时,作者也对 Linux 系统配置的复杂性表示惊讶,并对 Perl 环境变量处理的微妙之处进行了深入分析。文章也记录了在 Bug 修复后,由于系统配置更新导致问题暂时复现的经历。