2024-09-18
45 篇热帖
2. HTTP: , FTP:, and Dict:? (shkspr.mobi)
文章摘要:HTTP、FTP和DICT协议探索
在古老代码库中,作者发现一个正则表达式 {<((https?|ftp|dict|tel):[^\'">\s]+)>}i,其中包含HTTP、FTP、DICT和tel协议。作者熟悉HTTP、FTP和tel(用于拨号),但对DICT协议感到好奇。
DICT协议的背景与目的
DICT协议是一种用于访问字典服务器的网络协议,允许用户通过网络查询字典定义。它源于对自然语言定义访问的需求。早期,互联网社区依赖"webster"协议,但公共服务器数量减少。随后,免费字典和词汇数据库出现,但缺乏统一接口。DICT协议于1997年作为非正式标准发布,旨在提供一个统一的方式访问这些资源。在磁盘存储昂贵、软件有限的时代,通过专用协议查询数据被视为创新方案。但随着存储成本下降、数据库普及和搜索引擎兴起,该协议逐渐低调。
DICT协议的使用方法
用户可以通过命令行工具体验DICT协议:
- 基本查询:使用
curl dict://dict.org/d:Internet从服务器默认字典查询单词定义。 - 指定字典查询:例如,查询《Jargon File》中的单词:
curl dict://dict.org/d:Internet:jargon。 - 简单翻译:支持跨语言翻译,如英语到日语:
curl dict://dict.org/d:Internet:fd-eng-jpn。
探索协议与服务器
使用telnet命令 telnet dict.org dict 可以连接到字典服务器。输入 HELP 命令会显示可用操作,包括:
DEFINE和MATCH命令用于查询和匹配单词。SHOW DB列出所有可访问的字典数据库。SHOW STRAT显示匹配策略。- 其他命令如
CLIENT、AUTH等用于认证和识别。
这允许用户探索多种语言字典和不同功能。
未解答问题
作者提出几个未解答的问题:是否还有其他字典服务器在线?Webster协议是否在别处有正式规范?DICT协议是否有有趣的现代应用?
摘要总结了DICT协议的发现、背景、用法和探索方式,以及遗留问题,强调了其历史作用和当前低现状。
3. GPU Puzzles (github.com)
GPU Puzzles 教程摘要
本文档是一个交互式GPU编程教程,旨在通过一系列编程挑战(“谜题”)帮助初学者从零开始学习GPU内核编程。教程使用Numba CUDA库,让学习者直接用类似Python的语法编写底层CUDA代码。
核心方法与目标
- 实践驱动:摒弃纯理论讲解,直接通过编码构建GPU内核来建立直觉。
- 工具:使用Numba CUDA,它在Python中提供对CUDA的直接映射。
- 目标:在数小时内,引导学习者从基础概念过渡到理解支撑当今99%深度学习的真实算法。
- 环境:推荐在Google Colab中运行,并开启GPU加速。
关键GPU编程概念
教程通过谜题逐步引入以下核心概念:
- 线程与索引:每个GPU函数(内核)的实例由一个线程执行。通过
cuda.threadIdx(线程在块内的索引)和cuda.blockIdx(块索引)来定位每个线程应处理的数据位置。 - 边界处理:当线程数量多于数据元素数量时,需要使用“守卫”(Guard)条件(如
if i < size)来避免越界访问。 - 线程块与网格:线程被组织成块(Block),块被组织成网格(Grid)。块内的线程可以协作使用快速的共享内存(Shared Memory)。
- 共享内存:每个线程块拥有有限的、可被块内所有线程快速访问的共享内存。使用它通常需要配合
cuda.syncthreads()进行同步,以确保所有线程的读写操作完成。 - 性能指标:教程关注每个线程的全局内存读/写次数以及共享内存读/写次数,以此衡量内核效率。
谜题结构(共14个)
每个谜题提供一个Python函数框架(*_test),要求补全其中GPU内核函数(call)。内核函数接收输入/输出数组和尺寸参数。教程通过运行单元测试来验证正确性。
- 基础操作:
- Map:每个线程处理一个数据元素(例如,每个元素加10)。
- Zip:每个线程处理两个数据元素对应位置的运算(例如,两个向量相加)。
- 维度与布局:
- Guards:处理线程数大于数据量的情况。
- Map 2D:处理二维数据。
- Broadcast:处理不同形状数组的广播加法。
- 高级线程组织:
- Blocks:处理数据量大于单个线程块容量的情况,需要使用多个线程块。
- Blocks 2D:在二维网格和线程块上操作。
- 共享内存与同步:
- Shared:演示共享内存的基本使用和线程同步。
- Pooling:使用共享内存实现一维池化(累加相邻元素)。
- Dot Product:计算向量点积。
- 1D Convolution:实现一维卷积。
- Prefix Sum:在块内实现并行前缀和(扫描)算法。
- Axis Sum:对矩阵的列求和。
- Matrix Multiply:最终挑战,使用共享内存优化来实现高效的矩阵乘法。
总结
《GPU Puzzles》是一个通过解谜来实践学习的GPU编程教程。它从最基本的线程索引操作开始,逐步引导学习者掌握边界检查、多线程块管理、共享内存优化等关键技巧,最终能够理解和实现如矩阵乘法这样的高性能计算核心,为深入理解深度学习底层计算打下坚实基础。
4. macOS Sequoia 15 may bypass DNS encryption (www.obdev.at)
- 问题发现:在macOS Sequoia 15中调查DNS相关问题时,发现某些通过低级别传统API发出的DNS请求会绕过已安装的DNS代理(如Little Snitch),以未加密形式直接发送至系统默认域名服务器。
- 影响范围:该问题最初被认为是一个系统级漏洞,可能影响任何DNS代理。但后续调查澄清,这实际上仅为Little Snitch 6.1的特定问题,并非macOS的通用缺陷。
- 技术细节:
- Little Snitch 6通过注册DNS代理来实现DNS加密,所有域名查询本应路由至该代理进行加密处理。
- 使用低级API(如
getaddrinfo)发出的请求会绕过代理,通过UDP端口53以明文传输。 - 高级API(如Safari/Chrome使用的)通常不受影响,但Firefox似乎受影响。
- 复现方法:在启用Little Snitch DNS加密后,通过Xcode Playground运行使用
getaddrinfo的代码,并用Wireshark捕获端口53的流量,可观察到未加密的查询。 - 时间线更新:
- 2024-09-17:确认该漏洞至少自macOS 14.5 Sonoma已存在。
- 2024-09-18:澄清问题仅限于Little Snitch 6.1的DNS代理。
- 2024-09-18:Little Snitch 6.1.1已修复此问题。
- 最终结论:该问题并非macOS Sequoia的系统性漏洞,而是Little Snitch 6.1的特定缺陷,已在6.1.1版本中修复。用户无需等待macOS更新。
5. Swift 6 (www.swift.org)
Swift 6 正式发布
Swift 6 是一次重大版本更新,旨在将 Swift 扩展到更多平台和领域。除了应用开发,其安全性、速度和易用性也使其成为库、互联网规模服务、高性能及高安全性代码的理想选择。
语言与标准库
- 数据竞争安全:引入了新的可选语言模式,可将并发代码中的潜在数据竞争识别为编译器错误,从而扩展了 Swift 的安全性保证。此功能基于 Swift 5.10 的严格并发检查,并改进了推断机制,减少了误报。
- 类型化错误抛出:函数现在可以在签名中指定其抛出的错误类型。此特性对转发错误的泛型代码或嵌入式等内存受限环境非常有用。
- 不可复制类型支持泛型:Swift 5.9 引入了不可复制类型 (
~Copyable),Swift 6 现在使其能够与泛型系统配合使用,允许编写可同时处理可复制和不可复制类型的泛型代码。 - C++ 互操作性扩展:支持 C++ 的仅移动类型、虚方法、默认参数以及更多标准库类型(如
std::map和std::optional)。 - 嵌入式 Swift 预览:提供了一个适用于嵌入式软件开发(如微控制器编程)的语言子集和编译模式,支持 ARM 和 RISC-V 裸机目标。
- 新增 128 位整数类型:所有平台均可使用有符号和无符号 128 位整数。
- 新同步库:提供低级并发 API,包括原子操作和新的互斥锁 API。
- 生产力增强:新增
count(where:)、值参数包迭代、导入访问控制、@attached(body)宏、表达式宏作为默认参数等特性。
调试与工具链
@DebugDescription宏:允许在代码中直接为类型指定 LLDB 类型摘要,从而在 LLDB 的p命令以及 Xcode/VSCode 变量视图中自定义对象的显示方式。- 调试启动性能提升:使用显式模块构建时,LLDB 可以直接从项目构建产物中导入模块,避免重新编译隐式 Clang 模块,显著加快调试启动速度。
平台支持与生态系统
- Foundation 统一实现:在所有平台(macOS、iOS、Linux、Windows)上提供了统一、现代、可移植的 Swift 实现 Foundation 库,提高了跨平台的一致性和可靠性。
- Linux 增强:
- 支持构建完全静态链接的可执行文件。
- 新增对 Debian、Fedora 及 Ubuntu 24.04 的官方支持和测试。
- Windows 增强:
- 新增 arm64 架构的预构建工具链。
- Swift 包管理器默认支持多核并行构建,提升构建性能。
- 新测试库 Swift Testing:
- 专为 Swift 设计,包含
@Test、@Suite宏以及#expect、#require等表达式宏,提供丰富的 API 和详细的失败输出。 - 直接包含在 Swift 6 工具链中,无需声明包依赖,支持所有官方支持的平台。
- 专为 Swift 设计,包含
- 入门资源:
- 《Swift 编程语言》书已更新。
- Swift.org 提供针对不同用例(如跨平台库、Web 服务、嵌入式应用)的教程。
- 每月精选的包生态系统亮点。
Swift 6 是社区共同努力的成果,标志着 Swift 发展的重要里程碑。
6. Scramble: Open-Source Alternative to Grammarly (github.com)
Scramble:Grammarly的开源替代方案
Scramble 是一个开源的 Chrome 扩展,它利用人工智能直接在浏览器中增强用户的写作能力。该项目旨在成为更可定制的 Grammarly 替代品,允许用户配置特定的提示词,并自由选择大语言模型(LLM)的提供商、模型和端点。
- 项目状态:该项目拥有众多用户,但原作者已不再积极开发,目前正在寻找新的维护者。
- 主要功能:通过选中网页上的文本,右键打开上下文菜单,即可选择“Scramble”及各种文本增强选项,等待AI处理。
- 默认提示词:内置多种预配置的文本增强选项,如:修正拼写和语法、改进文风、使文字更专业、简化文本、总结文本、扩展文本、转换为要点列表等。用户还可以创建并保存自定义提示词。
- 支持的大语言模型:
- OpenAI
- Anthropic
- Groq
- OpenRouter
- Ollama
- LM Studio
- 安装方式:
- Chrome:克隆仓库,运行
npm install和npm run build后,在扩展管理页面以“开发者模式”加载dist/chrome目录。 - Firefox:克隆仓库,运行
npm install和npm run build后,通过about:debugging页面加载dist/firefox目录下的manifest.json文件(Firefox版本即将推出)。
- Chrome:克隆仓库,运行
- 开发指南:开发时需运行
npx tailwindcss -i src/libs/tw-input.css -o src/libs/tw-output.css --minify --watch来实时构建CSS(该命令在npm run build时会自动运行)。 - 未来规划:计划增加对更多语言模型的支持、同时配置多个LLM、增强上下文感知、查看原文与改进文本的差异、以及高亮显示语法/拼写错误等功能。
- 参与贡献与许可:欢迎提交拉取请求(Pull Request)进行贡献,项目采用 MIT 许可证。
7. Gentle Guide to Self-Hosting (knhash.in)
自托管(Self-Hosting)温和指南摘要
背景与理念
随着云计算和订阅服务的普及,用户为便利让渡了数据控制权,导致早期的计算机极客精神逐渐衰退。作者呼吁重拾自托管的乐趣,认为其在哲学上是反抗科技垄断、捍卫数字自由的途径,在智力上是钻研系统的“数字车库”。作者强调,自托管的核心是乐趣与爱好,不应受限于“必须拥有物理服务器”的硬件偏见,纯软件层面的云端托管同样值得鼓励。
托管平台与环境配置
- 平台推荐:推荐使用共享主机服务 Uberspace,其社区氛围友好且支持先使用后付费(相当于提供一个月的免费试用)。
- 环境访问:用户可通过 SSH 协议安全访问云端计算机(配备 10GB 存储和 1.5GB 内存)。
- 技术限制与对策:因内存限制,Uberspace 无法运行 Docker。建议通过源码编译,或提取 Docker 镜像中的最终运行时文件进行部署。
- 参考资源:推荐查阅 Uberspace Labs(平台专属安装指南)和 Awesome-Selfhosted(广泛的自托管软件列表)。
核心应用推荐
- Actual Budget:一款快速且注重隐私的财务管理应用。采用信封预算法,帮助用户安全地追踪支出、净资产和消费模式,并通过报表功能提供深度的财务数据洞察。
- Miniflux:极简的 RSS 聚合阅读器。用于追踪新闻、博客及 YouTube 订阅(通过 RSS 播放 YouTube 视频可免除广告)。开启 Fever API 后,可无缝对接各类第三方 RSS 客户端(如 Unread)。
进阶配置:个人域名
建议通过 Porkbun 等注册商获取个人域名,以展示自托管成果并提升数字独立性:
- 服务映射:将各类自托管应用绑定至专属子域名(如
actual.domain.com)。 - 自定义邮箱:设置域名邮箱,未来可自由切换底层邮件服务商而保持邮箱地址永久不变。
- 静态文件托管:通过 URL 路径直接托管公开访问的文件(如个人简历 PDF)。
总结
本文旨在激发读者的探索欲,而非提供详尽的步骤教程。鼓励用户通过动手实践(例如编写自动化脚本监控商品库存或网页变更,并触发手机通知)来深入体验自托管的乐趣。
8. Open source maintainers underpaid, swamped by security, and going gray (www.theregister.com)
9. Hezbollah hand-held radios detonate across Lebanon, sources say (www.reuters.com)
10. 0day Contest for End-of-Life Devices Announced (www.districtcon.org)
0day漏洞竞赛:针对生命周期结束设备的活动公告
竞赛概述
DistrictCon Year 2 推出名为“THE JUNKYARD”的漏洞竞赛,鼓励研究者挖掘不再受厂商支持的产品(软件或硬件)中的0day漏洞。竞赛旨在促进安全研究,并遵循负责任的披露原则。
提交截止日期
- 优先审查截止:2026年8月30日(提前提交可提高接受概率)。
- 最终截止:2026年12月9日。
竞赛范围
目标产品必须符合以下条件之一:
- 在DistrictCon Year 2前至少1天被公开列为弃用、EOL(生命周期结束)、EOS(支持结束)或EOSS(支持结束状态)。
- 运行在不再受新操作系统支持的平台上。
- 开源项目已被厂商归档。
- 厂商通过邮件确认产品或版本不支持。
- 或研究者可说明产品符合竞赛意图。
参赛要求
研究者必须:
- 承诺负责任地向厂商披露漏洞,披露窗口为60-90天。
- 确保研究遵守美国法律和道德规范。
- 无美国政府施加的限制或制裁。
奖项设置
奖金范围为100至5,000美元,类别包括:
- 最有影响力系统:评估漏洞的潜在影响。
- 最佳meme目标:针对有趣或非传统目标的创意。
- 最吸引人演讲:注重演示和表达的生动性。
奖项分配由DistrictCon全权决定。
竞赛流程
- 提交目标:通过DistrictCon平台提交目标信息和EOL证明(如网页公告或厂商邮件)。
- 披露漏洞:立即向厂商披露,并通过社交媒体或邮件(outreach@districton.org)获取帮助;更新提交以包含披露证明。
- 准备演讲:若被接受,创建封面名称(用于日程),准备10-15分钟的演讲和演示,包含技术细节和影响分析。
- 现场竞争:在舞台上展示漏洞、解释原理和影响;直播和录制需获得许可。
联系方式与资源
如有疑问,可通过社交平台(X、Bsky、LinkedIn)或邮件 outreach@districtcon.org 联系。竞赛提供披露指南和提交FAQ支持。
11. AI tool cuts unexpected deaths in hospital by 26%, Canadian study finds (www.cbc.ca)
12. GraalPy – A high-performance embeddable Python 3 runtime for Java (www.graalvm.org)
GraalPy:面向 Java 的高性能可嵌入 Python 3 运行时
GraalPy 是一个高性能且可嵌入的 Python 3 运行时环境,旨在实现 Python 与 JVM(Java 虚拟机)生态的深度融合。其核心功能主要分为在 JVM 应用中嵌入 Python 以及独立构建与运行 Python 应用两大场景。
在 JVM 应用中嵌入 Python
GraalPy 允许开发者在 Java、Kotlin 或 Scala 等 JVM 语言中直接嵌入 Python,主要特性包括:
- 无缝集成与脚本化:支持在 JVM 应用中直接使用 Python 包,并利用 Python 对 JVM 应用进行脚本化控制。
- 平滑升级:支持将传统的 Jython 项目升级至 Python 3。
- 安全与权限控制:提供灵活的权限管理机制,可精确控制 Python 代码的访问权限,范围从完全主机访问到严格的沙盒隔离。
构建与运行 Python 应用
GraalPy 也可作为独立的 Python 环境使用(如通过 pyenv 安装和管理),其关键功能包括:
- 性能加速:借助 Graal JIT(即时编译器)显著提升 Python 应用的运行速度。
- 生态兼容:广泛兼容众多 Python 人工智能(AI)和数据科学领域的软件包。
- 独立打包:支持将 Python 应用打包为单一的二进制可执行文件,简化分发与部署。
- 调用 Java 库:允许在 Python 应用中直接引入和使用 Java 库,实现跨语言互操作。
13. Moshi: A speech-text foundation model for real time dialogue (github.com)
Moshi:实时对话的语音-文本基础模型
项目概述
Moshi 是一个语音-文本基础模型及全双工口语对话框架,旨在实现低延迟的实时语音交互。它采用先进的流式神经音频编解码器 Mimi,其代码库也支持运行 Hibiki(同声传译)等其他多流架构模型。
模型架构与 Mimi 编解码器
- 双流与内心独白:Moshi 同时对模型和用户的两路音频流建模,并预测自身语音对应的文本 Token(内心独白),大幅提升生成质量。
- 网络结构:采用小型 Depth Transformer 处理时间步内的码本依赖,70亿参数的 Temporal Transformer 处理时间序列依赖。
- 超低延迟:理论延迟 160ms,在 L4 GPU 上实际总延迟可低至 200ms。
- Mimi 编解码器:全流式神经音频编解码器,将 24kHz 音频压缩至 12.5Hz(1.1kbps),帧延迟仅 80ms。结合 Transformer、蒸馏损失与对抗训练,在低比特率下实现了优于现有非流式编解码器的语义与声学建模。
代码库结构与推理后端
项目提供三个独立的推理栈版本:
- PyTorch (
moshi/):面向研究与开发,提供流式 API。需 24GB 显存 GPU,通过服务器模式提供 Web UI 和命令行交互,支持 Gradio 隧道。 - MLX (
moshi_mlx/):面向 Apple 设备(Mac/iPhone)的端侧推理,支持 4-bit/8-bit 量化,提供命令行与本地 Web 服务。 - Rust (
rust/):面向生产环境,包含 Mimi 的 Rust 实现及 Python 绑定(rustymimi)。支持 CUDA/Metal 加速,默认通过 HTTPS 提供 Web 服务。
发布模型与许可协议
- 模型矩阵:发布 Moshiko(男声)、Moshika(女声)微调模型及 Mimi 编解码器。针对 PyTorch、MLX 和 Rust/Candle 后端提供 bf16、int8、int4 等多种量化权重。
- 开源许可:模型权重采用 CC-BY 4.0 许可;Python 与 Web 客户端代码采用 MIT 许可;Rust 后端采用 Apache 许可。
客户端与部署要求
- 交互客户端:强烈推荐使用 Web UI(具备回声消除与延迟补偿功能以保障交互质量),同时提供 Rust/Python 命令行客户端及 Gradio Demo。
- 环境依赖:推荐 Python 3.12。Rust 部署需配置最新的 Rust 工具链及相应的 GPU 编译环境(如 nvcc)。
14. Hezbollah hand-held radios explode, killing three, one day after pager blasts (www.reuters.com)
15. A Friendly Introduction to Assembly for High-Level Programmers (shikaan.github.io)
文章总结:面向高级程序员的汇编入门指南
本文旨在帮助具备高级语言(如JavaScript、Rust、C)背景的程序员理解汇编语言的基础知识,并通过编写一个“Hello World”程序来实践。
核心概念
汇编的本质:汇编不是单一语言,而是一类与CPU机器码紧密对应的编程语言家族。本文专注于 x86-64 架构的汇编,使用 Intel语法(因其在Intel官方手册中使用)。代码示例主要为Linux编写。
指令结构:汇编指令是CPU操作的最小单元,主要由两部分组成:
- 助记符:指定操作(如
mov表示移动数据)。 - 操作数:操作影响的数据项(0-3个)。
- 助记符:指定操作(如
寄存器:寄存器是CPU内部的高速存储单元。x86-64有16个64位的通用寄存器(如
rax,rbx)。可以通过不同名称访问其部分数据(如al访问rax的低8位)。特殊的rip寄存器存储下一条要执行的指令地址。程序结构:汇编文件通常包含两个段:
.data:定义常量和已初始化的变量。.text:存放可执行代码(必需)。 程序通过global _start指定入口点,使用 标签(如_start:)为指令地址命名以提高可读性并实现跳转。
实践:“Hello World”程序解析
程序通过系统调用与操作系统交互来输出字符串并退出:
- 系统调用流程:将调用号放入
rax寄存器,将参数放入指定寄存器,然后执行syscall指令。 - 关键指令:
mov指令用于将数据移动到寄存器,类似于高级语言中的赋值。 - 程序步骤:
- 使用
sys_write系统调用将字符串写入终端。 - 使用
exit系统调用以状态码0正常终止进程。
- 使用
学习目标
通过本文,读者可以:
- 理解汇编的基本结构和语法。
- 知道寄存器的作用和常见用法。
- 掌握如何使用系统调用进行基本输入/输出。
- 为后续学习条件跳转、循环和函数等更复杂的汇编概念奠定基础。
16. PeerTube 6.3 (joinpeertube.org)
17. Scientific Visualization: Python + Matplotlib (2021) (github.com)
科学可视化:Python + Matplotlib (2021) 总结
本书是一本关于使用Python及Matplotlib库进行科学可视化的综合指南。作者Nicolas P. Rougier指出,在庞大的Python科学可视化工具生态中,Matplotlib占据着特殊地位,它功能强大且用途广泛,能够生成适用于科学出版的高质量图表,并提供直观的接口与面向对象的架构。
书籍结构
全书共分为四个部分:
第一部分:Matplotlib基础原理
- 涵盖构成图形的不同部分。
- 介绍各种坐标系统。
- 讲解可用的缩放和投影方式。
- 初步探讨与排版和颜色相关的概念。
第二部分:图形的实际设计
- 首先介绍生成更优图表的一些基本规则。
- 解释Matplotlib的默认值和样式系统。
- 深入探讨图形布局的组织方式。
- 探索各类可用的绘图类型。
- 说明如何用不同元素装饰图形。
第三部分:高级概念
- 聚焦于三维(3D)图形。
- 讨论图形的优化。
- 介绍动画制作。
第四部分:案例展示
- 提供一系列实际应用案例作为参考。
获取方式
- 免费阅读:本书的开放获取PDF版本托管在法国学术开放档案馆HAL上。最新版本亦可在GitHub上获取。书中所有代码示例的源文件均在GitHub仓库(rougier/scientific-visualization-book)中提供。
- 购买印刷版:如需支持作者工作,可在亚马逊以49美元的价格订购印刷版。作者也通过PayPal、GitHub Sponsors和Liberapay接受赞助。
相关资源
作者亦推荐了其他相关资源,包括《Python与OpenGL科学可视化》、《From Python to Numpy》、100个NumPy练习以及Matplotlib速查表等。
18. Bento: Jupyter Notebooks at Meta (engineering.fb.com)
Bento:Meta内部的Jupyter Notebooks发行版
Bento是Meta公司内部使用的Jupyter Notebooks定制化发行版。Jupyter Notebooks是一个开源的、基于网页的交互式计算平台。Bento允许公司的工程师在单一文档中混合使用代码、文本和多媒体内容,以支持Meta内部从快速原型设计到复杂机器学习工作流等多种应用场景。
在Meta Tech播客的本期节目中,Pascal Hartig邀请到Steve进行讨论。Steve的团队在Jupyter Notebook的基础上开发并集成了多项重要功能,这些功能包括:
- 定时笔记本:支持笔记本的计划性定时运行。
- 协作分享:便于与同事共享笔记本。
- 无服务器运行:通过利用浏览器中的WebAssembly技术,实现了笔记本可以在没有远程服务器组件的情况下直接在浏览器中运行。
该播客节目由Meta出品,旨在展示Meta工程师在各个技术层面(从底层框架到终端用户功能)所进行的工作。听众可以通过Spotify、Apple Podcasts、PocketCasts、Overcast等多个平台收听本期节目。文章末尾提供了通过Instagram、Threads或X平台发送反馈的渠道,并指向了Meta的招聘页面以供了解职业机会。
19. Krazam: High Agency Individual Contributor [video] (www.youtube.com)
20. 26-Year-Old EY Employee Succumbs to 'Work Stress' Four Months After Joining (old.reddit.com)
21. Things I've learned serving on the board of the Python Software Foundation (simonwillison.net)
文章标题: 担任Python软件基金会董事的所学所得
核心内容:
本文是一位新任Python软件基金会(PSF)董事分享其两年任职期间的关键认知。PSF是一个非营利组织,其使命是促进、保护并发展Python编程语言,支持全球多元化Python社区。
关键要点:
PSF的性质与职责:
- PSF是美国501(c)(3)非营利组织,其所有活动和财务支出必须围绕其使命进行,并接受审计。
- PSF雇佣了12名全职员工,由执行董事管理。董事会负责雇佣执行董事并进行绩效评估,但不直接管理日常员工工作。
- PSF 不直接开发Python。Python开发由核心团队和指导委员会管理,PSF提供财务支持(如基础设施、冲刺会议差旅等)。
- PSF的核心财务模式是作为社区资金的“蓄水池”,通过赞助、捐款和会员费筹集资金,再用于支持社区和语言发展。
PSF的主要活动:
- PyPI(Python包索引): PSF直接管理的最重要项目之一,承载了庞大的包数量和惊人的日下载量(约19亿次)。带宽由赞助商Fastly捐赠。
- PyCon US: 年度Python大会,是PSF的重大活动和主要支出项(2023年预算180万美元)。目前可能亏损运营,但对社区至关重要。
- 其他活动: 运营python.org、管理Python商标和知识产权、发放社区活动资助、担任多个组织的财务赞助商(帮助其他社区组织处理会计、法律等后台事务)、支持各种工作组的志愿者工作。
- 工作组: 由社区志愿者组成的项目团队,专注于特定任务(如资助审批、行为准则执行、基础设施管理)。由董事会授权设立并有其章程。
董事会运作:
- 由12名董事组成,通过PSF会员(包括付费会员和会士)年度选举产生,任期三年。
- 董事全球分布,以确保对全球社区的代表性。每月举行线上会议,每年两次线下会议(其中一次是“静修会”)。
- 核心职能: 设定战略、代表社区、确保PSF活动符合使命。董事会下设四个委员会(行政、财务、PyCon US、会员)以处理具体事务。
- 讨论议题示例: 静修会涉及长时间讨论,例如资助策略(如何平衡申请增多与预算可持续性)和长期战略规划(制定多年期目标)。
参与PSF的方式:
- 企业赞助PSF或Python活动、在PyCon US或PSF倡议中做志愿者、加入工作组、举办活动并申请资助、成为PSF投票会员并参与选举、甚至竞选董事。
文章总结,深入了解PSF的使命、财务运作、项目与董事会职能,对于有效参与和支持这一关键社区组织至关重要。
22. Show HN: Open Scanner, an open-source document scanning app for iPhone (github.com)
应用概述 Open Scanner 是一款针对 iPhone 设计的快速、免费且开源的文档扫描应用,可在 App Store 下载。
核心特点与信任度
- 功能:扫描收据、笔记、书籍等各类文档,存储在内置库中,并支持跨设备同步。
- 免费模式:承诺永久免费,无广告、无应用内购买、无订阅。
- 开源与信任:采用 MIT 许可证开源,允许其他开发者审计代码或重新发布。用户甚至可以构建自己的私有版本。
- 隐私与权限:
- 相机权限(必需):用于扫描文档。
- 位置权限(可选):授予后会为扫描件添加位置数据标注。
- 数据收集:具体详情需参阅应用的隐私政策。
- 开发者:由 Pencil Research 开发。
项目目标与技术细节
- 项目宗旨:为 iPhone 用户提供一款免费、无广告、尊重隐私且代码可审计的文档扫描应用。
- 技术栈:
- 使用 Swift 语言和 SwiftUI 框架开发。
- 采用 Core Data 进行本地数据存储。
- 利用 CloudKit 实现跨设备同步。
- 系统支持:支持 iOS 16.0+ 和 visionOS 1.2+。
- 社区贡献:欢迎以提交问题或拉取请求的形式参与项目贡献。
- 版本说明:GitHub Releases 中的版本号与 App Store 上的版本号对应。
23. A high-performance, zero-overhead, extensible Python compiler using LLVM (github.com)
Codon:高性能零开销可扩展的Python编译器
什么是Codon?
Codon是一个高性能的Python实现,它将Python代码编译为原生机器码,且无任何运行时开销。与标准Python相比,单线程性能通常可提升10-100倍或更高。其性能通常与C/C++相当,有时甚至更优。与Python不同,Codon支持原生多线程(无GIL),可进一步实现多倍加速。可将Codon视为专为静态、提前编译而重新设计的Python,以实现最佳性能为核心目标。
设计目标
- 无学习曲线:语法、语义和库尽可能接近CPython。
- 顶级性能:至少达到C、C++或Rust等低级语言的水平。
- 硬件支持:完整支持多核编程、多线程(无GIL!)、GPU等。
- 全面优化:优化框架可针对高级Python构造和库进行优化。
- 互操作性:完全兼容Python的生态系统(包和库)。
非目标
- 非CPython的直接替代品:Codon不支持所有Python特性,不适合静态编译的部分已被移除。可通过JIT装饰器或Python扩展后端在大型Python代码库中使用,并通过Python互操作性调用任何Python模块。
- 不引入新语法:尽可能避免添加新语法、关键字或语言特性,仅在少数情况下(如表达并行性)添加少量新语法,并力求直观熟悉。
快速开始
安装命令:
/bin/bash -c "$(curl -fsSL https://exaloop.io/install.sh)"
基本用法:
- 运行程序:
codon run file.py - 启用优化运行:
codon run -release file.py - 编译为可执行文件:
codon build -release file.py - 生成LLVM IR:
codon build -release -llvm file.py
核心特性与示例
1. 基础兼容性
Codon支持大部分Python语法,许多程序只需少量修改即可运行。例如斐波那契计算(fib(40))在Codon中比Python快约65倍。
2. 调用Python库
通过from python import可导入并使用任何Python包(如matplotlib),需设置CODON_PYTHON环境变量指向CPython共享库。
3. 原生多线程
使用@par注解(基于OpenMP)实现并行化。例如并行计算素数时,自动将循环体中的累加操作转换为原子操作以避免竞态条件。支持配置调度策略、块大小和线程数。
4. GPU支持
通过@gpu.kernel装饰器编写GPU内核函数(如计算Mandelbrot集),或使用@par(gpu=True)语法。支持集成PyTorch。
5. 高性能NumPy
Codon内置完全编译的原生NumPy实现,API与NumPy一致,但用Codon重新实现以获得更优性能。通过内联、融合、内存分配省略等优化大幅提升速度。例如近似计算π的程序,Codon比标准NumPy快约5倍。支持多线程和GPU加速。
文档与资源
- 详细文档:docs.exaloop.io
- 资源:提供FAQ、博客、Discord社区、路线图和基准测试。
致谢
项目获得多国基金支持(如美国NSF、NIH,加拿大NSERC等),并依赖多个开源库(包括LLVM、NumPy等)。
24. Mozilla exits the Fediverse and will shutter its Mastodon server in December (techcrunch.com)
Mozilla将于2024年12月17日关闭其Mastodon服务器实例Mozilla.social,从而退出联邦宇宙(Fediverse)。这是一个经过数月酝酿的战略调整。
核心决定与用户影响
Mozilla于9月17日宣布此决定。用户可在关闭前下载数据或将账户迁移至其他Mastodon实例,利用了联邦宇宙的账号可移植性。Mozilla.social规模较小,仅有约270名活跃用户。
退出背景与战略调整 此举是Mozilla整体战略收缩的一部分。2024年初领导层变动后,新任临时CEO Laura Chambers推动公司重新聚焦于核心产品Firefox浏览器及人工智能(AI) 领域。为此,Mozilla已大幅缩减或关停了多项其他业务,包括其VPN、Relay等产品,以及虚拟世界项目Hubs。
联邦宇宙参与度的变化 此前Mozilla曾公开看好联邦宇宙的潜力,但在新战略下,公司表示将采取“更谦逊的方式”参与,并提及将使用“更小的团队”。此次关闭服务器是这一方向的明确体现。Mozilla强调,未来仍会参与联邦宇宙,但资源将优先投入其他领域。
市场背景与关联动向 Mozilla的战略转向发生在其Firefox浏览器市场份额长期流失、竞争对手(如Arc)兴起的背景下。与此同时,由Mozilla支持的第三方Mastodon应用开发商Mammoth也迁移了其实例,但该公司声明此决定与Mozilla退出联邦宇宙无关。
官方表态
Mozilla在Mastodon帖子中称此为“艰难的决定”。其产品传播总监表示,结束Mozilla.social的投资是为了集中资源于Firefox和新兴AI产品,并相信此举能产生更大整体影响。
25. Tiny Tapeout VGA Playground (tinytapeout.github.io)
Tiny Tapeout VGA Playground 项目摘要
这是一个名为 Tiny Tapeout VGA Playground 的演示项目或工具。其核心是一个集成的VGA(视频图形阵列)显示演示,通过嵌入的视频展示了输出效果。
主要界面与功能
项目界面包含以下关键部分:
- 核心演示:嵌入了一个VGA输出效果的视频预览,直观展示项目运行时的显示结果。
- 用户控制:存在一个“ui_in”(用户输入)区域,用于调整演示参数。
- 预设配置:提供了一组“Presets”(预设),其中当前显示了“FPS: 00”这一设置。这表明用户可以预设并快速应用不同的参数组合,例如将帧率设置为0。
26. Reports of the death of dental cavities are greatly exaggerated (www.mcgill.ca)
文章总结
核心观点
龋齿是工业化国家最常见的慢性病之一,其病因并非仅由变形链球菌单独引起,而是口腔微生物生态系统失衡的结果。一种名为Lumina的基因工程益生菌产品宣称能永久预防龋齿,但其安全性和有效性均未经充分科学验证。
关键信息
龋齿的本质
- 龋齿(牙菌斑)是一种慢性疾病,由口腔细菌代谢糖分产生酸,导致牙齿脱矿质。
- 传统观点认为变形链球菌是主要致病菌,但现代研究表明它仅占致龋细菌的不到2%,且约七分之一的龋齿患者口腔中不存在该菌。
Lumina产品的工作原理
- 基于“替代疗法”理念:通过涂抹一种基因工程改造的变形链球菌(菌株BCS3-L1),该菌代谢糖分后不产酸,反而生成乙醇和丁二酮,并能分泌抗菌物质Mutacin-1140清除其他变形链球菌。
- 设计目标:永久定植口腔,取代致龋菌株。
科学与监管挑战
- 安全性未证实:Mutacin-1140的长期毒性、对口腔微生物群落的潜在干扰、免疫缺陷人群的风险均未明确评估。
- 有效性存疑:龋齿是多细菌参与的生态失衡,仅消除变形链球菌无法预防所有龋齿。
- 监管路径绕行:Lumina未通过FDA药物审批,而是以“益生菌”形式在监管宽松地区(如洪都拉斯特许市)销售,并通过社交媒体推广。
预防龋齿的科学建议
- 减少糖分摄入:降低口腔产酸细菌的活性。
- 使用含氟牙膏:氟化物促进牙齿再矿化,是经过验证的防龋方法。
- 生态平衡视角:维护口腔微生物多样性比单一靶向细菌更重要。
结论
Lumina基于已过时的“单一病原体”理论,其宣称的终身防龋效果缺乏科学支持。公众应警惕未经严格验证的医疗产品,并优先采用传统且可靠的口腔卫生措施(如控糖、用氟)来预防龋齿。
27. Fable at 20: a uniquely British video game with a complex legacy (www.theguardian.com)
28. Scientists find new blood group after 50-year mystery (www.bbc.com)
29. The Double Irish Dutch Sandwich: End of a Tax Evasion Strategy (conversableeconomist.com)
“双层爱尔兰夹荷兰三明治”避税策略的终结
背景
“双层爱尔兰夹荷兰三明治”曾是一种被跨国企业广泛使用的大规模避税策略,引起了国际货币基金组织(IMF)的关注。但随着国家及国际税收协议的修改,该策略已大幅衰退。
策略结构与运作原理
该策略通过美国母公司(USP)与三家外国子公司的复杂架构运作,利用爱尔兰和美国的税法漏洞实现利润转移:
- 第一家爱尔兰子公司(I1):在爱尔兰注册但由百慕大管理,从而规避爱尔兰和美国税收。美国母公司将其知识产权所有权转移给I1。
- 第二家爱尔兰子公司(I2):在爱尔兰注册并管理,负责控制海外分销和获取收入。I2从I1获得知识产权的分许可并支付版税。
- 荷兰子公司(N):作为I2和I1之间的中介以规避爱尔兰税收。
资金流向:版税从I2流向N,再利用欧盟税收法规从N流向I1。这种结构成功将利润转移至百慕大等避税天堂,将整个企业架构的税负降至最低。
策略的失效与数据印证
2015年的爱尔兰税收改革与2017年美国《减税与就业法案》的出台,导致该避税策略失效。爱尔兰公司开始直接向美国母公司支付版税,不再通过避税天堂进行资金路由。
宏观数据印证了这一趋势:
- 流向美国的版税激增:2019年至2021年间,爱尔兰公司向美国支付的版税金额翻了一番。
- 流向避税天堂的资金骤降:从爱尔兰和荷兰流向百慕大(以接近零的企业税闻名)的税款大幅下降,表明通过百慕大转移的企业利润显著减少。
避税行为的宏观成本
尽管国际税务专家可能正在策划新的避税策略,但此类行为会带来两大显著成本:
- 直接损失:导致政府税收收入的明显流失。
- 隐性损失:导致高技能人才从本可提升经济效率和生产力的核心业务中抽离,转而将精力消耗在企业重组和避税博弈上。
30. Entire Independent Board of Directors of 23andMe Resigns (investors.23andme.com)
31. Pixtral 12B (mistral.ai)
32. Please stop putting cookie pop-ups on your website (2022) (olivergrimsley.com)
现状与法律问题
- 当前美国法律并未强制要求网站显示cookie弹窗。然而,若网站面向欧盟用户或使用“跟踪cookie”,则需遵守欧盟相关法规(如ePrivacy指令及GDPR)。
- 绝大多数美国网站并未真正合规:它们常在获得用户同意前就存储cookie,且弹窗通常仅提供“确定”按钮,缺乏明确的“拒绝”或“管理”选项(例如提供链接至隐私政策的简单通知),这既无实际效用,也不符合法律要求。
有效性与政策批评
- 这些弹窗在保护用户隐私方面效果甚微。网站往往在用户拒绝跟踪cookie后,便不提供完整服务,迫使用户在接受跟踪和放弃服务之间二选一,这并非真正的选择。
- 隐私政策本身往往冗长难懂,使得透明度要求形同虚设。整个系统未能有效遏制企业的用户跟踪行为,被作者视为政策与实践上的彻底失败。
欧盟监管案例与挑战
- 欧盟正在强化监管。2022年,比利时数据保护局裁定,旨在合规的“透明与同意框架”本身违反了GDPR。监管机构指出,该框架下管理的用户同意数据可被用于创建广告画像,且其隐私政策存在不透明等问题。
- 这一裁决表明,集中式或行业通用的同意管理方案面临巨大合规风险,可能导致用户体验进一步恶化。
作者提出的解决方案
- 停止使用cookie弹窗:认为其“愚蠢且无效”。
- 立法强制尊重“不跟踪”信号:要求网站必须遵守浏览器发出的“不跟踪”信号,不得存储任何跟踪cookie或类似技术。
- 禁止功能歧视:法律应要求网站向所有用户提供完整服务,无论其是否同意被跟踪。
- 限制政府机构使用:禁止政府机构使用跟踪用户的服务来发布信息。
33. Ask HN: Good Sites for/with AI Enthusiasts?
34. Why wordfreq will not be updated (github.com)
35. Amazon employees: 'I'd rather go back to school than work in an office again' (fortune.com)
亚马逊员工强烈反对五天返回办公室政策
亚马逊CEO Andy Jassy宣布,从明年一月起,员工必须每周五天返回办公室工作,这引发了员工的广泛不满和抗议。员工通过社交媒体和公司内部Slack频道批评这一政策,认为它比疫情前更严格,并有人表示宁愿接受绩效改进计划或直接离职。
主要员工反应:
- 在LinkedIn上,一些员工标记为#opentowork,公开寻找远程工作机会。例如,一名AWS工程师声称宁愿重返学校也不愿在办公室工作。
- 内部Slack频道中,员工指出政策“比疫情前更严格”,是“倒退”而非回归正常。有人甚至表示宁愿被放入绩效改进计划(PIP)以离职。
- Reddit上,有员工称将“软辞职”并寻找新工作,批评政策是“变相裁员”,旨在迫使员工自愿离职以减少头数。
CEO的解释与政策细节:
- Jassy在备忘录中表示,政策旨在恢复疫情前的工作模式,以促进团队协作、学习和文化建设。远程工作将仅限于紧急情况(如生病)。
- 新政策从明年一月开始实施,以帮助员工调整个人安排(如育儿和居住),因为许多人根据当前三天在办公室政策做了生活调整。
潜在动机与历史背景:
- 员工和评论者认为,政策可能是亚马逊减少1.5万多名员工头数的策略,通过强制返回办公室迫使员工离职,避免支付遣散费或失业救济。
- 亚马逊此前曾因员工不遵守办公室政策而解雇员工,例如今年早些时候允许经理解雇不遵守三天政策的员工。公司未对变相裁员的指控发表评论。
整体而言,政策引发了员工对工作灵活性和职业前景的担忧,突显了远程工作与办公室要求之间的紧张关系。
36. TexTube: Chat with any YouTube video transcript in ChatGPT fast (chatgpt.com)
TexTube 是一款工具,旨在让用户能快速与任何 YouTube 视频的文字记录进行聊天交互。其主要功能是利用 ChatGPT 技术,基于 YouTube 视频生成的文字稿进行对话。用户登录后,可以享受个性化回答服务,这些回答基于保存的聊天历史生成。此外,该工具还提供创建图像和上传文件的附加功能,以丰富交互体验。
37. Show HN: Parse your Postgres queries into a fully-typed AST in TypeScript (github.com)
@pg-nano/pg-parser 是 libpg-query 的一个分支,旨在提供一流的 TypeScript 类型定义和 AST(抽象语法树)工具库。它能将 PostgreSQL 查询解析为完全类型化的 AST。
核心功能与安装
- 安装:通过
pnpm add @pg-nano/pg-parser安装。该包的主版本号和次版本号会与支持的 PostgreSQL 版本保持一致,但并非严格绑定。安装时会自动从 GitHub Releases 下载预编译好的对应操作系统和架构的二进制文件。 - 主要 API:
parseQuery/parseQuerySync:解析包含一条或多条语句的 SQL 字符串。parsePlPgSQL/parsePlPgSQLSync:解析 PL/pgSQL 字符串。fingerprint/fingerprintSync:为 SQL 字符串生成唯一的指纹字符串。scanSync:扫描 SQL 字符串并返回 token 列表。splitWithScannerSync:将 SQL 字符串分割为多条语句。
- 注意:该包不包含反解析(
deparse)功能。
AST 工具
包内提供了一系列用于操作 AST 的 TypeScript 工具函数:
walk:用于遍历 AST。可以传入回调函数或访问者对象。返回false可阻止遍历当前节点的子节点。遍历时,节点会被包装在NodePath实例中,该实例跟踪父节点并提供类型守卫(如isSelectStmt)以便进行类型收窄。select:用于类型安全地通过点表示法进行深层字段访问。$:返回一个代理对象,简化字段访问,并为所有节点提供类型守卫。
类型定义
所有可能从 libpg_query 返回的类型都已在 ast.ts 中定义。这些类型定义是从 libpg_query(该包绑定的 C 库)的 srcdata 自动生成的。
其他改进
- 使用
prebuild-install避免了将所有平台的二进制文件打包进 npm 包。 - 新增了
splitWithScannerSync和scanSync函数。 - 生成了单元测试(包含
libpg_query支持的所有 SQL 用例的快照)。 - 贡献与构建:提供了生成类型定义和编译 TypeScript 绑定及 C++ 插件的命令。编辑 C++ 代码时建议安装
compiledb和 VSCode 的clangd扩展以支持代码补全和分析。 - 系统支持:Windows 平台的构建文件(
binding.gyp)目前存在问题,需要帮助修复。 - 许可证:MIT。
38. Bricked iPhone 16 Can Be Restored Wirelessly Using Another iPhone (www.macrumors.com)
iOS 18 新增无线恢复功能:可使用另一台 iPhone 或 iPad 修复“变砖”的 iPhone 16
- 核心功能:iOS 18 引入了一项全新的“无线恢复”功能,允许用户通过将“变砖”(无法正常启动)的 iPhone 16 放置在另一台 iPhone 或 iPad 旁边,来无线恢复其固件。
- 解决痛点:此功能改变了以往必须使用 Mac 或 PC 并通过数据线进行有线恢复的不便模式。苹果正逐步减少 iOS 设备对电脑的依赖,该功能是此前已能无线恢复 Apple Watch 和 Apple TV 的延伸。
- 工作原理:当 iPhone 16 进入恢复模式时,附近的另一台兼容设备会下载最新的 iOS 固件,并通过无线方式将其传输到故障设备进行恢复。
- 适用机型与限制:
- 当前该无线恢复功能仅适用于 iPhone 16 系列机型。
- iPhone 16 配备了一个独立的恢复分区,即使主 iOS 分区损坏,也能独立管理整个恢复过程,这是其支持此功能的关键硬件基础。
- 尽管苹果自 iOS 13.4 起就在此方向上进行开发,但目前尚不清楚是否会将此功能下放至更早的 iPhone 机型。
- 发布时间:iOS 18 已发布,iPhone 16 系列将于 9 月 20 日上市。
其他动态
- iOS 27:预计将在 WWDC 2026 推出,可能为 Apple Wallet 带来允许用户扫描物品自建通行证等新功能。
- iPhone 18 Pro:据泄露信息,其电池容量相比 iPhone 17 Pro 可能仅有小幅提升。
- macOS 27:将仅兼容 Apple 芯片 Mac,这意味着 macOS 26 是支持 Intel 芯片 Mac 的最后一个主要版本。
39. OpenTelemetry Tracing in < 200 lines of code (jeremymorrell.dev)
这篇文章的核心观点是,尽管 OpenTelemetry 追踪(Tracing)常被视为复杂深奥的技术,但其基本原理可以简化为两个关键部分:结构化的、带标识的日志(即 Span) 和 上下文传播(在系统间传递标识符)。作者通过一个不到 200 行代码的 Node.js 示例,演示了如何从零构建一个具备分布式追踪能力的简化版库。
核心概念解析
追踪的本质:带上下文的“高级日志”
- 开发者熟悉的日志是追踪的基础。结构化日志(如包含时间戳、名称和自定义字段的 JSON)已接近追踪的雏形。
- Span(跨度) 是追踪的基本单元,可视为一个增强的、带有一组固定标识符的日志行。每个 Span 必须包含:
name:操作名称。timestamp:开始时间。duration:持续时间。- 一组标识符:
traceID(追踪ID,贯穿整个请求链)、spanID(唯一标识本跨度)、parentSpanID(父跨度ID,用于建立层级关系)。
- 其他信息作为属性(键值对)附加到 Span 上。
上下文传播:实现分布式追踪的关键
- 为了让一次用户请求在多个服务间的调用链关联起来,需要在服务间传递追踪上下文(主要是
traceID和当前的spanID)。 - 标准方式是通过 HTTP 头(如
traceparent)来传递这些标识符。文章中提供了将上下文对象序列化为该头部以及从头部解析出上下文的简单函数。
- 为了让一次用户请求在多个服务间的调用链关联起来,需要在服务间传递追踪上下文(主要是
简化版追踪库的实现
文章通过一个简化的实现路径,展示了追踪库的核心组件:
- Span 与 Tracer 的实现:定义了一个简单的
Span类,用于存储上述必要信息。通过一个startSpan辅助函数来创建 Span,并利用 Node.js 的AsyncLocalStorage自动传递上下文,实现父子 Span 的自动关联。这部分构成了本地追踪库的核心。 - 仪器化:为了让追踪自动生效,需要包装(或“仪器化”)现有代码。文章展示了:
- Web 框架中间件:为 Hono 框架编写中间件,自动解析传入请求的
traceparent头,并为每个 HTTP 请求创建一个根 Span。 - 包装
fetch:重写全局fetch函数,使其在发出出站请求时自动附加traceparent头,并为这次调用创建一个子 Span。
- Web 框架中间件:为 Hono 框架编写中间件,自动解析传入请求的
- 数据导出:将收集到的 Span 数据发送到后端进行存储和可视化。
- 文章先展示了发送到 Honeycomb 旧版事件 API 的示例,其格式本质上是将 Span 数据展平为一个 JSON 对象。
- 随后重点介绍了如何生成符合 OTLP (OpenTelemetry Protocol) JSON 映射的数据格式。OTLP 是 OpenTelemetry 的标准协议,生成标准格式意味着数据可以发送到任何支持 OTLP 的后端(如 Honeycomb、Baselime),或用本地工具(如
otel-desktop-viewer)查看。
结论与思考
- 简洁有效:通过约 180 行代码,文章完整演示了追踪、上下文传播、基本仪器化和标准 OTLP 导出。这有助于打破对追踪技术的“神秘感”,建立“追踪 = 高级日志 + 上下文传播”的正确心智模型。
- 与官方 SDK 的差异:这个简化实现不具备生产级功能,如高效批量发送、跨环境支持、自动仪器化、完善的错误处理、性能优化以及对指标和日志信号的支持。官方 SDK 的复杂性源于需要应对真实生产环境中的各种挑战。
- 标准的重要性:尽管实现方式可以不同,但只要能够发出符合规范的 OTLP 数据,就能融入整个 OpenTelemetry 生态,实现供应商和工具的可插拔性。OpenTelemetry 的终极愿景是将 OTLP 数据的产生和接收能力内置于各种基础设施中。
40. Knowledge graphs using Ollama and Embeddings to answer and visualizing queries (github.com)
本文介绍了一个基于本地Llama语言模型的知识图谱应用,该应用是一个Flask Web程序,能够处理用户查询、生成分步推理过程,并将思维过程可视化为交互式知识图谱。
核心功能:
- 提供交互式Web界面提交查询
- 实时显示逐步推理过程
- 动态生成推理步骤的知识图谱可视化
- 计算并展示最强推理路径
- 基于语义相似性查找和显示相关问答
- 全部使用本地Llama语言模型处理
技术栈:
- Python 3.7+
- Flask Web框架
- NumPy、scikit-learn、Annoy、NetworkX等库
- 需要本地运行Llama模型(如llama3.1:8b,通过http://localhost:11434访问)
使用流程:
- 安装依赖:克隆仓库后通过
pip install -r requirements.txt安装所需包 - 确保本地Llama模型已运行且可访问
- 启动Flask应用:运行
app.py - 在浏览器访问http://localhost:5100
- 输入查询并提交
- 实时观察推理过程和知识图谱更新
- 查看最终答案和最强推理路径
- 浏览下方显示的相关问答
注意事项: 该应用必须依赖本地运行的Llama语言模型,使用前需确保模型已正确设置并运行。
41. WonderWorld: Interactive 3D Scene Generation from a Single Image (kovenyu.com)
WonderWorld:单图交互式3D场景生成
项目概述
WonderWorld(CVPR 2025 Highlight)是一个新型的交互式3D场景生成框架。该系统仅需单张图像作为输入,即可生成连贯且多样的3D场景,构建出可供用户实时交互、导航和探索的虚拟世界,有效解决了现有3D场景生成方法速度慢、依赖多视角输入的问题。
核心技术与创新
为克服传统方法在生成多视角、深度图及场景表示优化上的耗时瓶颈,WonderWorld引入了以下关键技术:
- 快速分层高斯面元(FLAGS)场景表示:
- 分层设计(Layered Design):仅需单张图像即可生成完整场景,摒弃了现有方法逐步生成多个视角的繁琐过程。
- 面元设计(Surfel Design):支持基于几何的初始化,将优化过程转化为高效的“微调”。相比于NeRF和3D高斯溅射(Gaussian Splatting)等需要从头优化几何结构的方法,大幅缩短了优化时间。
- 引导深度扩散(Guided Depth Diffusion):通过允许深度估计的部分条件化,确保生成的几何结构具有连贯性,从而使所有生成的场景能够无缝连接在一起。
系统性能与优势
- 极速生成:得益于FLAGS表示法,系统在单张A6000 GPU上生成单个3D场景的时间不到10秒。
- 实时渲染:支持低延迟的实时设备端渲染,用户可以在生成后即时探索虚拟世界。
- 多样化布局:能够生成具有旋转、弯曲和直线等不同世界布局的复杂场景(如城市、村庄、游戏风格世界等)。
交互方式与应用
- 用户驱动创作:用户可以通过文本提示指定新场景的内容和风格,并通过相机移动来指定新场景的生成位置。
- 多视角与控制:支持第一人称视角和固定鸟瞰视角。支持键盘(WASD移动,IJKL环顾)和触摸屏(单指拖动移动,双指拖动环顾)进行实时控制。
- 应用潜力:充分展示了在虚拟环境中由用户驱动的内容创建与探索的潜力。
相关信息
- 作者团队:Hong-Xing Yu, Haoyi Duan, Charles Herrmann, William T. Freeman, Jiajun Wu。
- 相关系列工作:包括 WonderJourney (CVPR 2024)、WonderPlay (ICCV 2025) 以及 WorldScore (ICCV 2025)。
42. Leaked internal documents from a Kremlin-controlled propaganda center (vsquare.org)
克里姆林宫控制的宣传中心泄露文件揭示系统性虚假信息行动
泄露的数千份文件揭示了由克里姆林宫支持、伊利亚·甘巴希泽领导的俄罗斯社会设计局(SDA)如何协调开展一场影响欧洲议会选举、支持极右翼政党并系统性散播虚假信息以破坏乌克兰的宣传活动。
SDA的运作与规模
SDA是一个隶属于俄罗斯总统府的心理战中心,其人员包括“意识形态专家”、评论员和机器人农场运营商。该机构在2024年第一季度就生成了3390万条虚假评论,并制造了包括视频、模因在内的近4万份“内容单元”。项目有明确的配额,例如针对德法两国要求制作180个模因和400条文章评论。
干预欧洲选举与支持极右翼
- 核心目标:支持欧洲议会中的极右翼政党(如德国选择党AfD、法国国民联盟),旨在使它们反对援助乌克兰和制裁俄罗斯。
- 行动策略:通过评论区、模因、视频和伪造信息,在关键国家(德、法、西、意、波)推动反“自由派全球主义者”的叙事,煽动对援助乌克兰的反对。
- 效果评估:SDA将AfD的民调支持率(如达到20%)作为关键绩效指标,并在选后将欧洲议会右翼势力的崛起视为俄罗斯宣传的“严重成功”,但也指出这不一定总能转化为对俄政策的支持(如意大利梅洛尼对乌的支持)。
制造与传播虚假信息
- 伪造文件与故事:SDA自称为“伪造工厂”,曾制作2024年1月贝尔哥罗德伊尔-76飞机坠毁事件的虚假文件,以及关于“乌克兰绑架儿童并贩卖器官”的假新闻。
- 利用西方人士:泄露的会议记录显示,SDA团队以假新闻被美国政客(如众议员马乔丽·泰勒·格林)和媒体引用为“成功”。
特定目标项目
- “另一个乌克兰”项目:针对乌克兰人及海外乌侨社区,旨在推广由亲普京寡头维克托·梅德韦丘克所代表的“和平对话”叙事,构建对俄忠诚的“新俄罗斯乌克兰人”。
- 加里宁格勒信息作战中心:计划在加里宁格勒建立针对波罗的海国家、波兰和德国的行动枢纽,以利用其地理位置实施信息影响。
- 其他全球目标:
- 美国:通过对比国内经济问题,煽动反对对乌援助(如“我们的钱去哪了?”的叙事)。
- 以色列:实施“正常以色列”项目,试图使其脱离西方的反俄议程。
- 后苏联国家:在摩尔多瓦、格鲁吉亚、亚美尼亚等国动员公众,反对美国及其盟友的利益。
关键人物与证据
- 俄罗斯总统府官员(如谢尔盖·基里延科、索菲亚·扎哈罗娃)与SDA负责人甘巴希泽定期会面,直接参与项目。
- 泄露文件与美国司法部/联邦调查局的最新证据相互印证,证实SDA与克里姆林宫的紧密联系。
43. Cold war spy satellites and AI detect ancient underground aqueducts (www.newscientist.com)
44. Valkey 8.0.0 Is Out (github.com)
Valkey 8.0.0 正式发布
版本概述
- 发布状态:这是 Valkey 8.0 的首个正式版本(8.0.0),相较于第二个候选版本(rc2)在稳定性和性能方面有所改进。
- 兼容性:完全兼容 Redis OSS 7.2.4。
- 包含变更:此版本同时包含了在 8.0.0-rc1 和 8.0.0-rc2 发布说明中提及的所有更改。
- 升级紧急度:低。
日志与工具改进
- 在
SHUTDOWN和CLUSTER FAILOVER的日志中增加了完整的客户端信息,以提升请求的可追溯性。
Bug 修复
- 集群复制修复:解决了
replicationSetPrimary中主节点 IP/端口更新未能在集群 gossip 部分正确处理的问题。 - AOF 重写修复:修复了在修改
aof-use-rdb-preamble设置期间,重写时 AOF 基础后缀处理错误的问题,确保正确的后缀缓存以防止数据不一致。 - 异步 I/O 线程崩溃修复:通过防止 TLS 模式下异步 I/O 线程中并发读写作业的重叠,解决了由此引发的罕见崩溃问题。
- AOF 状态修复:防止了在加载 RDB 数据后 AOF 被错误禁用的情况,确保 AOF 能被正确重新启用。
- 集群配置保存修复:在关闭前触发保存集群配置文件,以避免因未保存的节点配置更改而导致的不一致。
- 集群槽迁移时序修复:解决了
CLUSTER SETSLOT命令的时序问题,确保副本在收到命令并处理 gossip 更新之前能正确处理迁移。
性能优化
- SUNION 与 SDIFF 命令优化:优化了这两个命令中临时集合对象的处理,分别带来了 41% 和 27% 的性能提升。
行为变更
- 磁盘复制行为改进:副本现在会在基于磁盘的复制过程中,验证 RDB 文件有效后再清除旧数据。这可以防止部分数据丢失,确保加载干净的数据。
45. Rustpad is an efficient and minimal open-source collaborative text editor (github.com)
Rustpad:高效极简的开源协同编辑器
核心概述
Rustpad 是一款基于操作转换算法的开源协同文本编辑器,支持用户在浏览器中实时协作编写代码。其特点是完全自托管,以精简的 Docker 镜像分发,无需外部数据库。
技术架构
- 服务器端:采用 Rust 编写,使用
warp框架和operational-transform库。 - 前端:使用 TypeScript 和 React,集成 Monaco 编辑器(VS Code 同款)。
- 编译优化:通过
wasm-bindgen将文本操作逻辑编译为 WebAssembly,在浏览器端运行。 - 通信与存储:客户端通过 WebSocket 与中央服务器通信,服务器将数据保存在内存中,从而实现快速响应且无需数据库。
- 权衡:文档具有临时性,服务器重启或闲置24小时后(默认)会丢失。
开发与测试
- 依赖环境:需安装 Rust、wasm-pack 和 Node.js。
- 构建步骤:
- 构建 WebAssembly 部分:
wasm-pack build rustpad-wasm - 安装前端依赖
- 编译并运行后端服务器
- 启动前端(支持热重载)
- 构建 WebAssembly 部分:
- 测试方式:
- 服务器集成测试:使用
cargo test - WebAssembly 测试:使用
wasm-pack test --chrome --headless
- 服务器集成测试:使用
配置选项
通过环境变量自定义行为:
EXPIRY_DAYS:文档闲置保留天数(默认1天)。SQLITE_URI:若提供,将文档快照存储至 SQLite 文件,实现持久化。PORT:服务监听端口(默认3030)。RUST_LOG:日志输出级别配置。
部署方式
- 提供 6MB 的单 Docker 镜像,支持
linux/amd64和linux/arm64架构。 - 可直接拉取运行:
docker pull ekzhang/rustpad docker run --rm -dp 3030:3030 ekzhang/rustpad - 公共实例部署于 Fly.io。
媒体与许可
- 曾被 Console 61 newsletter 报道,并登上 Hacker News 首页。
- 所有代码基于 MIT 许可证 开源。