2024-05-15

47 篇热帖

1. Veo (deepmind.google)

Veo 视频生成模型概述

产品简介

Veo 3(及 Veo 3.1)是一款先进的视频生成模型,支持原生音频生成和扩展视频输出。配套推出的 Google Flow 是一款专为创作者设计的 AI 电影制作工具,可用于创建无缝的电影片段、场景和故事。

核心功能

  • 极致真实感:通过模拟真实世界物理规律和原生音频支持,大幅提升视频的逼真度与保真度。
  • 精准指令遵循:显著提升提示词遵循能力,能够更准确地响应复杂的用户指令。
  • 原生音频生成:支持直接生成音效、环境噪音和人物对话,实现音视频的原生同步创作。
  • 增强创意控制:在视觉和音频层面提供前所未有的一致性、控制力与创造力。

性能与基准测试表现

在 2025 年 10 月的 MovieGenBench、VBench I2V 等权威基准测试中,Veo 3/3.1 表现卓越(注:因 Sora 2 Pro 不支持真实人类图像,未将其纳入 I2V 对比):

  • 文本到视频 (T2V):在总体偏好、文本对齐(提示词准确度)、视觉质量及物理规律的视觉真实感方面均获最高评价。
  • 图像到视频 (I2V):在总体偏好、文本对齐和视觉质量上均优于其他竞争模型。
  • 文本到视频与音频 (T2VA):在带音频的总体偏好及音视频同步对齐度上最受评估者青睐。

高级视频控制功能 (Ingredients to Video)

在内部基准测试的人工盲评中,以下高级功能在总体偏好、提示词对齐和视觉质量上均取得领先结果:

  • 场景延伸 (Scene Extension):基于提示词和起始/结束图像自然扩展视频场景。
  • 首尾帧控制 (First and Last Frame):精准指定和控制视频的起始与结束画面。
  • 物体插入 (Object Insertion):根据指令在现有视频中自然插入指定物体。

应用案例与生态集成

Veo 3.1 已被多家企业集成到其核心产品中:

  • Promise Studios:在 MUSE 平台中增强生成式故事板和预可视化的制作质量。
  • Volley:为其 AI 角色扮演游戏生成静态过场动画和动态叙事资产。
  • OpusClip:提升动态图形效果,为中小企业制作逼真的宣传视频。

此外,Veo 深度融入 Google AI 生态,与 Gemini、Google Vids、Google AI Studio、Gemini API 及 Gemini Enterprise Agent Platform 等产品协同,全面赋能用户的创意与生产力。

2. Adobe Photoshop Source Code (2013) (computerhistory.org)

Adobe Photoshop 源代码历史(2013)

起源与发展

  • 1987年:Thomas Knoll 为个人使用编写了名为 "Display" 的图像编辑程序。
  • 1988年:其兄 John Knoll 用于电影特效公司(Industrial Light & Magic)的照片编辑,两人意识到其商业潜力,将其更名为 "Photoshop"。
  • 1989年:Adobe 在艺术总监 Russell Brown 推动下获得授权,于4月完成交易。
  • 1990年初:Photoshop 1.0 版本正式发布,在接下来十年售出超过300万份。

早期版本技术细节

  • 主要语言:Pascal(约75%代码),Motorola 68000 汇编语言(约15%)。
  • 开发团队:版本1由 Thomas Knoll 独立完成核心程序,John Knoll 编写图像处理插件;版本2增至两名工程师。
  • 原始功能:支持画笔大小/纹理/颜色选择、选区工具、图像滤镜;缺乏图层功能(该功能于1994年版本3引入)。
  • 文件与代码规模:179个文件,约12.8万行代码,大部分未注释但结构清晰。

源代码公开详情

  • 发布机构:计算机历史博物馆(Computer History Museum)。
  • 许可条款:仅供非商业用途,不得二次分发或公开发布。
  • 缺失部分:未包含苹果的 MacApp 应用库(已获得授权使用)。
  • 下载内容:包含1.0.1版本源代码、用户指南及教程。

代码结构与专业评价

  • 软件架构师 Grady Booch(IBM Research Almaden 首席软件科学家)评论
    • 架构良好,接口与抽象分离清晰,组件化设计易于理解。
    • 抽象成熟,命名一致,方法粒度适当,实现简洁。
    • 基础结构(如图块、滤镜、虚拟内存抽象)延续至现代版本(但现代版代码已超千万行)。
    • 缺少注释但代码可读性高,注释反而可能干扰。
    • 代码中保留了历史痕迹(如 Thunderscan 扫描仪支持、TARGA 文件格式)。
    • 被誉为“值得学习的典范代码”。

历史背景与系列发布

  • 早期截图展示:主界面、工具选择、字体设置(受限)等原始功能。
  • 博物馆系列源代码:该发布是计算机历史博物馆“历史源代码系列”的一部分,此前已公开 MacPaint、QuickDraw、APL 语言等代码。

总结

Photoshop 源代码的公开揭示了这一划时代软件的最初技术实现,体现了简洁、高效的架构设计,为计算机科学和软件开发提供了重要的历史研究与学习资料。

3. Glider – open-source eInk monitor with an emphasis on low latency (github.com)

Glider 开源电子墨水显示器总结

项目概述

Glider 是一个开源的电子墨水显示器硬件设计,其核心在于实现低延迟和高刷新率。该仓库主要包含硬件设计,其运行的 FPGA 门阵列代码是独立的开源项目 Caster EPDC。文档内容详尽,涵盖了该项目的设计细节以及作者所知的几乎所有电子墨水技术知识。

关键特性

  • 完整解决方案:专为低延迟/高刷新率电子墨纸显示器设计。
  • 广泛面板支持:支持带并行接口的电泳显示面板(E Ink、OED、DES),兼容单色和彩色滤光阵列(如 Kaleido)彩色屏。
  • 极低处理延迟:处理延迟小于 20 微秒。
  • 多种显示模式:支持二值、4级灰度和16级灰度输出模式,并针对二值和4级灰度模式进行了延迟优化。
  • 自动混合灰度模式:可自动在快速二值模式和慢速灰度模式之间切换。
  • 灵活的图像处理:支持主机软件运行时控制区域更新和模式切换。
  • 硬件抖动:支持硬件贝叶抖动、蓝噪声抖动和误差扩散抖动,且不增加额外延迟。
  • 标准视频输入:控制器接受标准水平/垂直同步信号输入。

硬件设计

  • 核心处理:使用 Xilinx Spartan-6 LX16 FPGA 运行 Caster 设计。
  • 内存:配备 DDR3-800 帧缓冲内存。
  • 视频输入
    • 支持 USB Type-C DisplayPort Alt Mode 视频输入,板载 PTN3460 DP-LVDS 转换桥。
    • 支持通过 microHDMI 连接器输入 DVI 视频,板载 ADV7611 解码器。
  • 电源:电子墨纸电源供应,支持高达 1A 的峰值电流(+/-15V 轨),适用于大尺寸面板。
  • 支持功能:支持 VCOM 反冲电压测量。
  • 微控制器:板载 STM32H750 微控制器,用于 USB 通信和固件升级。
  • 处理性能:启用误差扩散抖动时处理速率可达 133MP/s,禁用时可超过 200MP/s。
  • 设计工具:PCB 使用 KiCad 设计。

Caster/Glider 核心设计

低延迟驱动

传统方法采用全局计数器查找波形表,限制了全局图像更新率(约10Hz)。Caster 通过两项技术实现低延迟:

  1. 逐像素区域更新:将每个像素视为独立更新区域,提供最大灵活性且对软件透明。
  2. 提前取消:若像素在完全驱动前再次改变,则立即根据新状态和新计算的驱动时间进行驱动,而非等待前一次驱动完成。

混合灰度模式

Caster 实现了在逐像素基础上自动切换快速二值模式和慢速灰度模式。当输入图像变化时使用二值模式快速更新;当图像静止一段时间后,再重新渲染为灰度图像,以获得更好的显示效果。

设计限制与资源

  • 内存带宽要求高:实现低延迟需要更高的内存带宽。以1080P面板为例,传统方法仅需约120MB/s,而Caster的设计需要约540MB/s,因此需使用DDR3-800内存。
  • FPGA 资源占用:参考占用为 1704 FF, 2531 LUT6, 60 KB BRAM。

构建与刷写

项目开源,可自行构建:

  • PCB:使用 KiCad 构建。
  • FPGA 位流:需使用 Xilinx ISE 14.7 构建,项目提供了详细的步骤和脚本。
  • MCU 固件:使用 STM32CubeIDE 构建。
  • 刷写工具:提供了 Python 刷写工具 flash.py,也支持手动通过 DFU 和 XMODEM 协议刷写。

兼容屏幕

设计兼容多种屏幕,尤其聚焦于不带集成控制器的并行接口面板。项目提供了多种屏幕适配器以支持不同引脚排列。文档附有详尽的屏幕列表(附录),列出了众多屏幕型号及其关键参数与兼容性信息。

许可证

  • 文档(除明确引用部分)发布至公共领域。
  • 硬件设计采用 CERN-OHL-S 许可证。
  • 固件代码采用 MIT 许可证(USB PD 库部分例外,使用 BSD 许可证)。
4. Ilya Sutskever to leave OpenAI (twitter.com)

根据提供的信息,标题明确指出“伊利亚·苏茨克维将离开OpenAI”。然而,所提供的文章内容部分无法加载,显示为网络或隐私设置相关的错误提示,未能提供关于此事件的具体细节。

基于标题和已知的公开信息,可总结如下:

  • 核心事件:OpenAI的联合创始人兼首席科学家伊利亚·苏茨克维(Ilya Sutskever) 宣布将离开该公司。
  • 人物背景:苏茨克维是人工智能领域的顶尖科学家,也是OpenAI创立与发展的关键人物之一,长期负责领导公司的核心研究工作。
  • 消息缺失:由于提供的正文内容加载失败,无法获知关于其离职的具体原因、时间、后续计划以及OpenAI官方对此的评论等详细信息。

此离职事件可能对OpenAI的技术方向和领导团队构成重要影响。

6. The Worst Website in the Entire World (matduggan.com)

本文是对博通(Broadcom)公司技术支持网站的一次尖锐批评,作者认为其设计糟糕、用户不友好,堪称“全球最差网站”。文章通过描述作者尝试免费下载 VMware Fusion 软件的完整经历,揭露了该网站从注册、导航到下载各个环节的重重障碍。

核心问题与批评点:

  1. 混乱的门户与信息:VMware 官方指引用户前往博通支持网站下载,但该网站上的通知信息矛盾,既说商店将迁移至新域名,又说将关闭,且未设置有效重定向。
  2. 繁琐敌意的注册流程
    • 需要阅读长达11页的PDF指南才能学会使用网站。
    • 注册信息充斥着“通过多条自助渠道提升技能”等晦涩的企业行话。
    • 验证码过时且形同虚设,能被现代OCR技术轻易识别。
    • 设置了阻止用户使用密码管理器复制粘贴密码的脚本,违反了浏览器自主权的基本原则。
  3. 无用的帮助与聊天机器人
    • “询问聊天机器人”的链接竟直接跳回主页。
    • 聊天机器人功能简陋,仅能匹配关键词并返回文档链接,交互体验极差。
  4. 低效的导航与故障
    • 页面加载缓慢,经常长时间显示博通Logo。
    • 产品链接指向空白页面,“我的下载”页面内容时有时无。
    • 网站搜索功能几乎无法找到相关产品信息。
  5. 下载过程极度挫折
    • 经历了多次加载、刷新和失败的尝试后,作者才最终成功下载。
    • 即使成功下载,在安装软件后点击官方帮助链接,依然被导向空白页面,形成最终的“侮辱”。

结论:作者认为,博通公司的这个网站在设计的每一个角落都体现了对用户的“敌意”与“蔑视”,其糟糕程度超越了任何常见的设计不佳案例。作者甚至质疑博通收购VMware的动机,因为如此糟糕的网站会阻碍用户获取产品。文章最后呼吁博通彻底废弃该网站,并建议他们考虑使用更简单、用户友好的平台(如Shopify)。

7. Sir, there's a cat in your mirror dimension (lcamtuf.substack.com)

本文探讨了频域(frequency domain)在图像处理中的特性,并通过一个实验展示了如何利用频域隐藏图像信息。

频域变换的核心特性 频域变换将时域或空间域信号重新解释为不同频率波形的幅度组合。常见的变换基于正弦波(如离散余弦变换DCT),但也可使用其他波形。这种变换具有两个关键性质:

  1. 可逆性:可以从频域表示完整恢复原始数据。
  2. 输入输出对称性:正向和逆向变换使用相同的数学操作,这使得时域与频域之间可以相互转换,两者在数学上是等效的“镜像维度”。

频域在压缩中的应用 在图像压缩中(如JPEG算法),频域变换的作用至关重要。通过去除或降低高频分量的精度,可以在几乎不被察觉的情况下大幅减少数据量,因为高频部分通常对应图像的细节(如边缘和纹理),而人眼对此相对不敏感。

一个有趣的频域实验 作者进行了一项探索性实验:

  1. 将一张猫的图像通过DCT转换为频域表示,得到类似噪声的频域图像。
  2. 将此“猫的频域噪声”与另一张女人照片的频域表示进行叠加融合。
  3. 对融合后的频域图像进行逆DCT变换,结果在时域图片中几乎看不到猫的痕迹,视觉上仍以女人照片为主。
  4. 然而,若将这张合成图再次进行DCT变换,其频域表示中却能清晰地呈现出猫的图像,表明隐藏信息在频域中得以保留并可被恢复。

实验拓展与观察

  • 这种隐藏信息可以承受图像的缩放操作(放大导致平铺,缩小导致截断)。
  • 作者测试了JPEG有损压缩的影响:在高质量设置下,隐藏的猫图像影响较小;随着压缩质量降低,高频分量被严重量化破坏,这直观地展示了JPEG算法在压缩过程中具体舍弃了哪些信息。
  • 这一现象类似于音频频谱图中的信息隐藏或文本隐写术,体现了时域与频域之间有趣而复杂的耦合关系。

结论 文章通过这个实验,形象地说明了频域与现实世界数据表示之间的关系,并揭示了图像压缩算法在频域层面是如何工作的。

8. Gemini Flash (deepmind.google)

Gemini 3.5 Flash 模型概述

Gemini 3.5 Flash 是谷歌推出的一款前沿AI模型,专为智能体和编码任务优化,旨在以高速度解决复杂的真实世界问题,同时不牺牲智能水平。其核心特点包括:

  • 高速与智能兼备:在提供速度和规模的同时,保持卓越的推理能力。
  • 深度复杂性处理:支持长周期深度推理和迭代编码任务。
  • 真正的多模态:能够理解文本、音频、图像、代码和视频等多种模态。

关键能力示例

文章通过多个实例展示了该模型的实际应用:

  1. 快速迭代编码:在60秒内生成六个支付UI选项。
  2. 并行创意生成:高速创建64个分形变体。
  3. 长周期智能体执行:阅读AlphaGo论文并自主构建智能游戏。
  4. 品牌资产加速创建:协调多工作流程为筹款活动生成品牌。
  5. 单次生成交互式Web动画:将文本描述转换为交互式HTML组件。
  6. 实时协作创作音乐:协调多智能体使用Strudel库作曲。
  7. 编排多智能体工作流:协调专业智能体团队设计并构建虚拟城市。
  8. 高效组织大型文件:部署并行智能体自动重命名和结构化杂乱数据集。
  9. 通过交互循环构建和改进游戏:部署智能体实时持续优化游戏。

性能基准测试

Gemini 3.5 Flash 在多项基准测试中表现突出,与Gemini 3 Flash、Gemini 3.1 Pro、Claude和GPT等模型相比:

  • 编码与智能体任务:在Terminal-bench 2.1(76.2%)、SWE-Bench Pro(55.1%)、MCP Atlas(83.6%)等测试中领先或持平。
  • 多模态理解:在CharXiv(84.2%)、MMMU-Pro(83.6%)等任务中得分较高。
  • 长上下文处理:在MRCR v2 128k上下文中平均得分77.3%。
  • 抽象推理:在ARC-AGI-2中达到72.1%。

技术规格与可用性

  • 输入/输出:支持文本、图像、视频、音频、PDF输入,输出为文本。
  • 上下文窗口:输入支持100万token,输出支持6.4万token。
  • 知识截止:2025年1月。
  • 功能:支持函数调用、结构化输出、搜索作为工具、代码执行。
  • 适用场景:日常任务、智能体编码、高级推理、多模态理解、长上下文理解。
  • 可用平台:Gemini应用、Gemini API、Gemini企业版、Google AI Studio、Android Studio等。
  • 状态:预览版。
9. Nearly all Nintendo 64 games can now be recompiled into native PC ports (www.tomshardware.com)

N64游戏重编译技术实现PC原生移植

  • 开发者Mr-Wiseguy发布工具N64Recomp,可将任天堂64游戏重编译为PC原生版本,无需完整反编译过程。
  • 该工具已成功移植《塞尔达传说:梅祖拉的假面》等游戏,并支持实时光线追踪、无上限帧率、超宽屏显示等增强功能。
  • 与2020年《超级马里奥64》完全反编译的PC移植不同,重编译工具仅需原始ROM文件,无需包含游戏资源,大幅降低移植门槛。
  • 该技术兼顾性能与原版精度,被视为游戏保存领域的重大突破,能帮助冷门经典游戏在未来保持可玩性。
  • 同期N64生态持续发展:开源烧录卡SummerCart64支持64DD功能,民间自制游戏与模组(如《Smash Remix》《Peach's Fury》)持续涌现。
11. VMware Fusion Pro: Now available free for personal use (blogs.vmware.com)

VMware Fusion Pro 与 Workstation 产品发展时间线摘要

根据提供的信息,以下是 VMware Fusion 和 Workstation 桌面虚拟化产品近年来的关键发布与政策更新时间线:

1. 产品免费政策宣布

  • 2024年11月11日:VMware 宣布 Fusion 和 Workstation 对所有用户免费,这是产品策略的一个重要转折点。

2. 免费政策的后续与资源

  • 2025年3月10日:VMware 针对“Fusion & Workstation 转为免费”发布了客户反馈及新资源,表明公司正在跟进此政策的实施并为用户提供支持。

3. 技术版本更新

  • 2023年10月19日:发布了 Workstation 17.5 Pro 和 Player 版本。
  • 2023年7月13日:推出了 Workstation Tech Preview 2023 技术预览版。
  • 2022年11月17日:正式发布了 VMware Workstation 17 Pro 和 Player
  • 2022年7月28日:发布了 Workstation 22H2 Tech Preview 技术预览版。
  • 2021年10月14日Workstation 16.2 版本上线。
  • 2020年9月15日Workstation 16 正式可用。
  • 2020年8月20日:同时宣布了 VMware Workstation 16 和 Fusion 12
  • 2020年7月9日:推出了 Workstation Tech Preview,引入了新的容器 CLI(命令行界面)功能。

4. 性能与架构展望

  • 2026年5月14日:发布了关于 VMware Workstation and Fusion 26H1 的文章,主题聚焦于性能、可见性和现代架构,预示了产品的未来发展方向。
  • 2024年5月14日:通过 Virtually Speaking 播客 探讨了桌面虚拟机程序的演变。

核心要点总结:VMware 于 2024年底 宣布其 Fusion 和 Workstation 产品对所有用户免费。在此之前,产品经历了 Workstation 16、17 系列的多次版本更新和技术预览。免费政策实施后,公司持续收集反馈并提供资源。同时,产品线在 2026年 的规划中强调了性能与架构的现代化。

12. Apple announces new accessibility features, including Eye Tracking (www.apple.com)

苹果宣布推出多项新辅助功能,包括眼动追踪

苹果于2024年5月15日宣布,将于今年晚些时候推出一系列新的辅助功能。这些功能结合了苹果的硬件、软件、芯片、人工智能和机器学习技术,旨在延续其近四十年来为所有人设计产品的承诺。

核心新功能

眼动追踪

  • 功能:用户仅通过眼睛即可导航iPad和iPhone。
  • 技术:由人工智能驱动,利用前置摄像头进行设置和校准,所有数据在设备端安全处理,不共享给苹果。
  • 适用性:专为有身体障碍的用户设计,无需额外硬件,支持跨应用使用。

音乐触觉反馈

  • 功能:为听障用户提供一种通过iPhone体验音乐的新方式。
  • 技术:利用iPhone的触觉引擎,根据音频播放相应的触感、纹理和振动。
  • 覆盖范围:适用于Apple Music曲库中的数百万首歌曲,并将作为API供开发者在应用中实现。

语音快捷方式

  • 功能:用户可自定义语音指令(Siri可识别)来启动快捷指令并完成复杂任务。
  • 配套功能:“非典型语音识别”利用设备端机器学习识别更广泛的语音模式,适用于因脑瘫、渐冻症(ALS)或中风等影响言语能力的用户。

车辆运动提示

  • 功能:帮助减轻在移动车辆中使用iPhone或iPad时的晕动症。
  • 原理:在屏幕边缘显示动画圆点,模拟车辆运动变化,减少视觉与感觉之间的冲突。
  • 控制:可自动开启或在控制中心手动开关。

CarPlay更新

  • 语音控制:完全通过语音导航和控制CarPlay应用。
  • 声音识别:为听障驾驶员或乘客提供喇叭和警笛提示。
  • 颜色滤镜:帮助色觉障碍用户更轻松地使用界面,同时支持粗体文本等视觉辅助功能。

visionOS更新

  • 系统级实时字幕:帮助听障用户跟上实时对话和应用中的音频内容。
  • FaceTime实时字幕:在视频通话中使用虚拟形象时更易交流。
  • 视觉辅助:新增“减少透明度”、“智能反转”和“减弱闪烁灯光”功能,以服务低视力或对强光敏感的用户。

其他重要更新

  • 旁白功能:新增声音、灵活的语音转子、自定义音量控制及Mac键盘快捷键自定义。
  • 放大镜:新增阅读模式,并可通过操作按钮快速启动检测模式。
  • 盲文:改进盲文屏幕输入,支持日语、多行盲文及Dot Pad设备。
  • 悬停键入:在输入文本时显示更大字体,可自定义字体和颜色。
  • 个人语音:新增普通话支持,允许使用短语创建个人语音。
  • 实时语音:新增类别功能,并与实时字幕兼容。
  • 辅助触控虚拟触控板:允许用户使用屏幕上一小块区域作为可调整大小的触控板来控制设备。
  • 切换控制:可使用iPhone或iPad的摄像头识别手指轻敲手势作为开关。
  • 语音控制:支持自定义词汇和复杂单词。

全球无障碍意识日活动

苹果将在整个五月举办一系列活动,包括在部分Apple Store举办免费课程,提供与辅助功能相关的应用推荐、Apple TV节目特别策划、Apple Fitness+支持手语和音频提示等。

这些功能共同体现了苹果致力于通过创新技术丰富用户生活、推动包容性设计的长期承诺。

13. Fastest rate of natural carbon dioxide rise over the last 50k years (today.oregonstate.edu)

研究发现,当前大气中二氧化碳(CO₂)的增速是过去5万年中自然增速的10倍。这一结论基于对南极古冰芯的详细化学分析,相关成果发表于《美国国家科学院院刊》。研究指出,理解过去气候的突变有助于认识当今气候变化的潜在影响。

研究团队通过分析南极西部冰盖分冰芯中的气泡,重建了古大气记录。他们发现,在末次冰期期间(约1万年前结束),CO₂浓度曾出现多次异常快速上升,这些上升与北大西洋的冷期事件(即“海因里希事件”)同时发生。海因里希事件与全球气候的突然转变有关,通常由北美冰盖崩塌引发,并触发一系列连锁反应,包括热带季风、南半球西风带的变化,以及海洋大量释放CO₂。

数据显示,在最大的一次自然CO₂上升过程中,浓度在55年内上升了约14ppm,这类事件大约每7000年发生一次。而在当前人类排放主导的背景下,相同幅度的上升仅需5至6年即可实现。

研究还发现,过去自然CO₂快速上升期间,驱动深海洋流循环的南半球西风带增强,导致南大洋迅速释放CO₂。其他研究预测,未来一个世纪内,受气候变化影响,这些西风可能会进一步加强。新研究指出,若西风增强,南大洋吸收人类排放CO₂的能力将减弱。当前人类依赖南大洋吸收部分排放的CO₂,但其碳汇功能正因风速加快而被削弱。

该研究由俄勒冈州立大学等多家机构的合作团队完成,主要作者包括Kathleen Wendt、Christo Buizert等。

14. Oracle dumps Terraform for OpenTofu (www.thestack.technology)

Oracle 将其 EBS Cloud Manager 的底层工具从 Terraform 更换为开源分支 OpenTofu。 Oracle 要求客户必须在 2024年6月30日前 完成升级,切换到基于 OpenTofu 的新版迁移与配置工具。

背景与原因:

  • 工具性质: Oracle EBS Cloud Manager 是 E-Business Suite 客户迁移到 Oracle 云的主要工具,用于迁移 Linux 环境、配置新环境及生命周期管理。此前,其底层使用 Terraform 引擎。
  • 更换原因: 由于 Terraform 的开发商 HashiCorp 在 2023 年将其许可证从 MPL 2.0 更改为更严格的 BSL 1.1,为避免下游许可证问题,Oracle 选择了更换。
  • OpenTofu 简介: OpenTofu 是由 Linux Foundation 支持的 Terraform 开源分支,旨在作为替代品。文章指出,OpenTofu 的 1.7 版本(2024年3月发布)被广泛认为是首个可用于企业生产的版本。

影响与信号:

  • 此举被视为一个确保使用最宽松许可的 IaC(基础设施即代码)工具的直接决定。
  • 虽然对用户而言这更多是一个实现细节上的变更,但它表明了大型企业已认为 OpenTofu 已足够稳健,可以投入实际使用。

相关背景:

  • 文章提及,在 Oracle 做出此决定后不久(2024年4月底),IBM 同意以 67亿美元 收购 HashiCorp。
15. The most talented person in the world (matt.sh)

揭露网络垃圾内容:Jodie Chiffey 的真相

本文通过描述一个名为 Jodie Chiffey 的“全能天才”,揭露了网络垃圾内容的泛滥现象。主要内容如下:

Jodie Chiffey 的虚构才能

  • 被描述为跨职能 3D 设计师、博主、烧烤专家、吉他手、户外爱好者、旅行者、啤酒专家、商业策略师、跑步鞋专家、个人教练、营养师等,声称拥有广泛技能和成就。
  • 这些描述可能基于低质量或自动生成的内容,用于推广多个网站。

网络垃圾内容的运作方式

  • 所有相关网站均标注为“Venture 4th Media Company”或类似媒体公司运营,专注于搜索引擎优化(SEO)、电子商务、内容营销。
  • 目标是通过附属链接和广告赚取收入,内容往往低努力编写,如“Top 10 X For Y!”列表,并充斥亚马逊等平台的附属链接。
  • 使用相同布局、CMS 系统和导航的网站网络,生成数千页面,污染搜索结果,例如涉及户外装备、烧烤技术、山地自行车等主题。
  • 类似现象也出现在 YouTube 上,使用自动生成的近人类声音视频,缺乏个性化和故事性。

问题根源与影响

  • 这种垃圾内容源于低收入社会中的剥削行为,运营者通过操纵高收入社会的信任来获取被动收入,破坏互联网信息完整性。
  • 符合“dead internet theory”的观点,即互联网逐渐被机器人、骗局和广告侵蚀,而非自动结果,而是人为操纵。
  • 导致搜索结果质量下降,用户体验受损,如虚假科技博客、自动生成的技术帮助内容等泛滥。

未来展望与解决方案

  • 作者警告,未来互联网可能需要加密验证机制,如 proof-of-person(身份证明)和 proof-of-residence(居住证明)来确保索引公平性。
  • 当前搜索引擎(如谷歌)可能容忍垃圾内容以增加广告收入,但长期需改变。
  • Jodie Chiffey 的案例象征性地代表了这种垃圾内容的终结,强调了信息污染对全球网络的威胁。

本文核心是批判网络垃圾内容产业,揭示其运作模式、社会根源及对互联网生态的负面影响。

16. Model Explorer: intuitive and hierarchical visualization of model graphs (ai.google.dev)
17. Jan Leike resigns from OpenAI (twitter.com)

基于提供的信息,原文内容未能成功加载,仅显示为网站错误提示。因此,无法从“文章内容”中提取任何具体信息进行总结。

文章标题为 “Jan Leike resigns from OpenAI”,这是一个明确的陈述,即 Jan Leike 已从 OpenAI 辞职。由于缺少具体文章内容,无法提供关于其辞职原因、背景、时间点或相关评论的更多细节。

19. How to get 7th graders to smoke (www.experimental-history.com)

本文通过一个反毒品教育项目的反效果案例,揭示了人类行为干预中的普遍困境。以下是核心内容的总结:

核心案例:适得其反的反毒品项目 一项1989年的研究将洛杉矶初中生随机分组,接受两种反毒品课程或无课程。结果发现,旨在通过情绪管理(如提升自尊、学习调节技巧)来预防药物滥用的“情绪”课程,反而使学生吸食更多香烟和大麻、饮用更多酒精,效果比没有课程更差。而侧重社交影响的“社会”课程则基本无效。这表明一个投入资源、初衷良好的项目,实际上让情况恶化了。

普遍存在的“好心办坏事”现象 类似案例在文献中屡见不鲜,跨越不同年龄和领域:

  1. 对青少年无效或有害的项目:“吓吓他们”项目(带青少年去监狱受训)可能增加犯罪率;D.A.R.E.(警察进校宣讲)无效果;英国学校的正念训练可能加重学生抑郁;澳大利亚的学校心理治疗项目也失败了。
  2. 对成人无效或有害的干预:旨在减少偏见的多种社会项目均被证明无效或效果不持久;试图弥合政治分歧的干预效果不如一个商业广告;高速公路上提醒死亡人数的安全标志可能反而增加了事故。
  3. 形式主义的“培训”:如学术伦理培训、性骚扰培训等,往往只是走过场的PowerPoint演示和选择题测试,其设计与真实预防效果无关,主要目的是法律免责。这种形式主义之所以被接受,深层反映了我们相信“批量提升人性”是容易的。

深层原因分析:为何我们一再受挫? 作者指出,我们低估改变人类行为的难度,源于以下几个认知偏差:

  1. 心理距离的错觉:我们清晰地感知改变自己的复杂性,却将他人视为可简单调整的模糊对象,低估了塑造一个人的无数微小环境影响的持续作用。
  2. 未经检验且不可证伪的理论:许多人关于人类行为的个人理论从未被严格检验,且过于模糊,总能找到借口解释失败(如项目时长、执行者动机等),使错误观念得以长存。
  3. 小型个人经验的误导:我们基于自己有限的、混杂的观察得出结论(如“我的孩子这样有效”),并受到确认偏误的影响,这些个人经验往往比大规模科学实验更令人信服,尽管证据质量低。

结论与反思 文章最终呼吁:

  • 我们需要培养一种“足够愚蠢”的怀疑精神,对任何看似直觉上合理、常规的人类行为干预方法提出根本性质疑:“它到底是如何起作用的?”
  • 对于那些拥有权力强制他人参与(如各类培训)的组织,责任尤其重大。他们不能仅凭“做了一些大家认为合理的事”来免责,而应证明其干预确实使参与者受益。
  • 我们对人性的可塑性存在广泛而深刻的错觉,这阻碍了真正的学习和改进。接受我们知识的贫乏,是走向更有效干预的第一步。
20. Translation of the Rust's core and alloc crates to Coq for formal verification (formal.land)

将Rust的corealloc crate翻译至Coq用于形式验证

我们使用coq-of-rust工具继续推进Rust程序的形式验证工作,目标是将Rust代码转换为形式证明系统Coq。此前面临的一个局限是,需要为Rust标准库中的每个原生函数(如Option::unwrap_or_default)手动定义其在Coq中的行为,这既繁琐又易错。

为解决此问题,我们成功使用coq-of-rust翻译了Rust的corealloc crate。这两个代码库规模庞大,包含大量unsafe或高级Rust代码。本文介绍了我们为实现对这些crate的“尽力”翻译所做的工作,结果存放于 CoqOfRust/allocCoqOfRust/core 目录下。

初次尝试与代码拆分

初始运行生成了两个包含数十万行Coq代码的大文件,分别对应整个alloccore crate的翻译。输入的Rust代码规模(经宏展开后更大)如下:

  • alloc: 26,299 行
  • core: 54,192 行

然而,生成的Coq代码无法直接编译(尽管错误率极低,约每几千行出现一次)。

主要改进:拆分生成代码 我们将coq-of-rust的输出按每个输入Rust文件进行拆分。由于我们的翻译对定义顺序不敏感且是上下文无关的,即使Rust中存在循环依赖(这在Coq中是禁止的),拆分仍可行。

拆分后的输出规模:

  • alloc: 54个Coq文件,共171,783行
  • core: 190个Coq文件,共592,065行

拆分优势:

  1. 生成的代码更易于阅读和导航。
  2. 编译过程可并行化,速度更快。
  3. 便于调试,可聚焦于单个文件。
  4. 轻松跳过无法编译的文件。
  5. 更利于维护,单个文件的差异更易追踪。

缺陷修复与当前状态

我们修复了由模块名称冲突引起的错误。通过在模块名称中包含更多唯一信息(如where子句)来解决此问题。例如,为Mapping类型实现Default trait时,旧的模块名称Impl_core_default_Default_for_dns_Mapping_K_V现在被扩展为Impl_core_default_Default_where_core_default_Default_K_where_core_default_Default_V_for_dns_Mapping_K_V,明确指出KV也需实现Default trait。

目前无法在Coq中编译的文件列表(约占总文件数的4%):

  • alloc/boxed.v
  • core/any.v
  • core/array/mod.v
  • core/cmp/bytewise.v
  • core/error.v
  • core/escape.v
  • core/iter/adapters/flatten.v
  • core/net/ip_addr.v

注意:在可编译的文件中,也存在一些未被处理的Rust构造,它们被进行了公理化处理,因此上述列表并未完全反映我们不支持的内容。

翻译示例

以下展示了Option类型的unwrap_or_default方法的Rust源码、自动生成的Coq翻译,以及用于验证的、更简洁的函数式等价定义:

(* 自动生成的、较复杂的Coq翻译 *)
Definition unwrap_or_default (T : Ty.t) (τ : list Ty.t) (α : list Value.t) : M := ...

(* 用于验证的、简洁的等价定义 *)
Definition unwrap_or_default {T : Set}
    {_ : core.simulations.default.Default.Trait T}
    (self : Self T) : T :=
  match self with
  | None => core.simulations.default.Default.default (Self := T)
  | Some x => x
  end.

我们已证明两者等价(证明见CoqOfRust/core/proofs/option.v)。由于原始Rust代码的变化会通过自动翻译捕获,我们对其形式化版本有更高的信任度。尽管如此,coq-of-rust本身可能存在错误或不完整,因此仍需在证明阶段验证代码的正确性。

结论

现在我们能够以更高的可信度对Rust程序进行形式验证,因为标准库的形式化过程更可靠。下一步目标是简化仍然繁琐的证明流程,特别是将验证“模拟(simulations)与原始Rust代码等价”所需的步骤(如名称解析、引入高级类型、移除副作用)进行拆分。

21. A low budget consumer hardware espionage implant: a GSM device hidden in (2018) (ha.cking.ch)

S8数据线定位器:低成本消费级硬件间谍设备技术分析

设备概述

  • 核心功能:伪装为USB数据线的GSM监听与定位设备,支持850/900/1800/1900 MHz频段
  • 设计借鉴:类似NSA的COTTONMOUTH系列,将射频设备隐藏在USB插头内
  • 主要能力
    • 实时监听:拨打设备号码即可通过内置麦克风收听环境音(持续10秒)
    • 声控回拨:发送“1111”短信后,当环境声音超过45dB时自动回拨预设号码(“0000”可关闭)
    • 位置查询:发送“dw”短信获取位置信息,但精度有限(测试中偏差达1.57公里)

硬件结构

主要芯片

  • MediaTek MT6261MA:常用于廉价智能手表的低端芯片,无官方文档
  • RDA 6626e:四频GSM前端模块

连接接口

  1. USB直通:A口与Micro-B口仅物理连接,信号直通
  2. UART接口:启动后输出引导信息,但输入被忽略(某些固件版本可能支持AT命令)
  3. MTK USB接口:通过焊接DP/DM触点连接,识别为MediaTek MT6227设备,用于固件提取

固件提取与分析

提取方法

  • 使用Fernvale研究系统(MT6261分支)
  • 通过flashrom工具(需应用补丁)读取闪存
  • 成功转储ROM和闪存内容,但写入受块保护限制

系统分析

  • 操作系统:Nucleus RTOS(基于版权字符串识别)
  • 文件系统:发现FAT12分区,但可能因闪存转换层(FTL)导致解析不完整
  • 配置数据:存储了SIM卡IMSI、控制号码及gpsui.net服务器地址
  • 隐蔽通信:设备会向未知端点发送数据(推测为gpsui.net),即使闲置时也会使用移动数据连接

发现的隐藏命令

通过分析闪存内容,发现以下关键命令(通过短信发送):

  • *3646655*:查询固件版本(如“MTK6261M.T16.17.01.10”)
  • *reboot*:重启设备
  • dw/loc:位置查询
  • 1111/0000:声控回拨开关
  • hh:设备状态
  • aqb:获取用户名和密码(用于gpsui.net)
  • restore:恢复出厂设置
  • help:返回可用命令列表

其他发现的命令包括:serveresioaddrtimezone等,部分功能可能因固件版本差异而无法使用。

gpsui.net安全隐患

平台功能

  • 位置跟踪:存储历史位置数据,可实时查询
  • 设备管理:支持远程配置、地理围栏、警报设置
  • 凭据获取:通过发送“aqb”短信获取6位数用户名和密码

严重漏洞

  • 横向权限提升漏洞:一个用户可查看/修改所有其他615,817个账户的信息(由安全研究员@evstykas发现)
  • 隐私风险
    • 用户未被告知登录凭据
    • 位置查询记录被永久存储
    • 设备可被通过网页界面远程控制

检测与防护

  • 射频检测:设备在发送数据时(如位置查询)会产生明显电子噪音,可用廉价RF检测器(如CC308+)探测
  • 封装可重新密封:配置后可无痕重新封装,增加隐蔽性

未解决问题与未来方向

  1. 固件写入:因闪存块保护无法写入新固件
  2. GPRS流量分析:未能成功捕获设备网络通信内容
  3. APN配置:不清楚设备如何自动获取APN设置

总结

该设备是典型的低成本消费级间谍硬件,具有完整的监听、跟踪功能,且存在严重后门安全问题。其设计明显针对隐蔽监控场景,所有通信均通过不可控的第三方服务器,存在极高隐私泄露风险。作者建议不要在安全测试中使用此类可能已被预置后门的工具。

23. Show HN: I built a math website the internet loved, I'm back with more features (teachyourselfmath.app)

数学娱乐网站功能摘要

一个备受喜爱的数学网站现已推出更多功能,核心模块如下:

  • 浏览题库:访问从多种来源提取的最大规模数学问题数据库。
  • 关键词搜索:通过关键词快速、准确地查找特定问题。
  • 自定义题目集:可依据难度、主题等筛选条件,生成用于练习或教学的定制化问题集。
  • 专属社区:在印度班加罗尔设有仅限邀请的数学爱好者俱乐部,供志同道合者交流。
24. Glance: A self-hosted dashboard that puts all your feeds in one place (github.com)
# Glance:自托管仪表板

## 核心功能
- **多样化小部件**:支持 RSS 订阅、Reddit、Hacker News、天气、YouTube、Twitch、市场价格、Docker 容器状态、服务器统计等。
- **轻量高效**:内存占用低、依赖少、使用原生 JS;提供小于 20MB 的跨平台二进制文件和 Docker 镜像,页面加载通常在 1 秒内。
- **高度可定制**:支持多种布局、多个页面/标签页、丰富的配置选项、自定义 CSS 和主题。
- **移动优化**:适配移动设备,方便随身使用。
- **主题支持**:可轻松创建自定义主题或选择现有主题。

## 配置方式
- 通过 YAML 文件进行配置,可定义页面布局、列大小及各小部件的详细设置。
- 配置示例展示了一个页面结构,包含日历、RSS 订阅、Twitch 频道、新闻聚合、YouTube 视频、Reddit 帖子、天气、市场行情和软件版本等小部件。

## 安装方法
1. **Docker Compose(推荐)**:
   - 使用提供的模板创建目录和文件。
   - 编辑 `docker-compose.yml`(端口、卷等)和配置文件(如 `config/home.yml`、`config/glance.yml`)。
   - 运行 `docker compose up -d`。
2. **手动 Docker Compose**:
   - 创建 `docker-compose.yml` 文件,配置镜像、端口和卷。
   - 下载示例配置文件并编辑。
   - 运行 Docker Compose 命令。
3. **手动二进制安装**:
   - 支持 Linux、Windows、macOS(x86、x64、ARM、ARM64)。
   - 下载对应二进制文件,放置后运行,可指定配置文件路径。
4. **其他渠道**:
   - 可通过 Proxmox VE Helper Script、NixOS 包、Hostinger、Coolify.io 等第三方渠道安装。

## 常见问题
- **请求超时**:可能由广告拦截 DNS 服务(如 Pi-Hole)的速率限制引起,需调整 DNS 设置。
- **布局错乱**:常因浏览器扩展 Dark Reader 导致,可对相关域名禁用暗黑模式。
- **配置文件错误**:检查 YAML 文件中的 `pages` 键是否重复或格式正确。

## 常见问题解答
- 页面信息需手动刷新更新,仅时钟等小部件动态更新。
- 小部件信息在页面加载时获取并缓存,缓存时长可配置。
- 支持创建自定义小部件(通过 iframe、HTML、扩展或自定义 API)。
- 可通过 `title` 属性自定义小部件标题。

## 开发与贡献
- **构建方式**:支持从源码构建 Go 二进制文件或通过 Docker 构建镜像。
- **贡献指南**:
  - 新功能建议需先提交请求。
  - 避免为已规划、待定或搁置的功能提交 PR。
  - 遵循开发分支规范,谨慎引入依赖,避免破坏性配置变更。
  - UI 更改建议提供截图。
- **致谢**:感谢赞助者、贡献者及社区成员的支持。
26. Show HN: Open-source BI and analytics for engineers (github.com)

开源BI与分析工具Quary简介

Quary 是一个面向工程师的开源商业智能(BI)与分析平台,帮助用户通过代码定义和管理数据资产。

核心功能

工程师使用Quary可以:

  • 连接数据库
  • 编写SQL查询以转换、组织并记录数据库表
  • 创建图表、仪表盘(开发中)和报告(开发中)
  • 通过版本控制进行测试、协作与迭代重构
  • 将组织好、记录完善的模型部署回数据库

支持的资产类型(以代码形式定义)

  • 数据源:定义外部数据源,如数据库表、平面文件或API(支持DuckDB)。
  • 模型:使用SQL将原始数据转换为可分析的数据集,允许将复杂查询拆分为原子组件。
  • 图表:基于SQL创建数据的可视化表示。
  • 仪表盘(WIP):将多个图表组合到单一视图中,便于监控和分析。
  • 报告(WIP):创建详细报告以分享见解。

安装与使用

Quary包含VSCode扩展(界面)和Rust语言编写的CLI工具(核心)。

安装方法

  1. VSCode扩展可通过官方链接安装。
  2. CLI可通过多种方式安装:
    • Homebrew:brew install quarylabs/quary/quary
    • Linux/Mac使用curl脚本:curl -fsSL https://raw.githubusercontent.com/quarylabs/quary/main/install.sh | bash
    • 其他版本可从发布页面下载。

基本使用示例

mkdir example && cd example
quary init    # 初始化DuckDB示例项目
quary compile # 验证项目结构和模型引用
quary build   # 构建并执行模型
quary test -s # 运行测试

社区与支持

用户可通过加入Slack频道进行交流。如遇问题,可在GitHub上创建Issue以获得帮助。

项目还关联了一个名为SQRUFF的高速SQL代码检查工具,同样由Rust构建。

27. I coded something dumb and I'm proud of it (plbrault.com)

文章标题:《我写了段“愚蠢”的代码,但我很自豪》

文章摘要: 作者近期为其开源浏览器游戏《You're the OS!》(一款让玩家扮演操作系统管理进程、内存和I/O的Python游戏)添加了一个新功能:游戏6分钟后,玩家可获得一个“排序”按钮,点击后会按进程的“饥饿值”降序排列空闲进程,并以动画形式展示快速排序算法的执行过程。实现这一功能面临两个挑战:

  1. 游戏主循环每秒重绘60次,排序动画需能中断并恢复,以避免阻塞游戏渲染。
  2. 排序过程中,进程列表可能因游戏事件(如进程被杀死、分配至CPU核心等)而动态变化。

作者最初设想实现一个可逐步执行快速排序递归的函数,但后来意识到真正需要的是“模拟”逐步执行的动画效果。他选择了一种看似“愚蠢”但简单的方案:每次调用排序函数时,都从头开始执行快速排序,但仅在第一次真正改变数组结构的递归后停止,从而产生逐步排序的视觉效果。代码示例显示了如何通过比较当前递归结果与原数组是否相同来判断是否需要继续递归。

作者强调,这种方案虽然算法效率低下(每次从头开始排序),但完全避免了状态跟踪和列表动态变化的复杂问题,且对于游戏最多42个进程的规模而言性能影响微不足道。他指出,这体现了“KISS原则”(保持简单),并提醒正确识别问题本质是找到良好解决方案的关键。

28. Strangely Curved Shapes Break 50-Year-Old Geometry Conjecture (www.quantamagazine.org)

文章讲述了一个困扰数学界五十年的几何猜想——Milnor猜想——被新发现的奇异曲率空间推翻的过程及其意义。

Milnor猜想是由著名数学家约翰·米尔诺于1968年提出的,内容为:一个完备空间(即“直线”无限延伸、有无死胡同的空间),只要平均意义上的曲率有限,就不能存在无限多个“洞”(即拓扑上的无数缺口或环)。这一猜想在过去半个世纪里被许多数学结果支持,多数现实情况下都满足这一特性。米尔诺猜想被认为是该领域最大的未解问题之一。

文章介绍了组成空间的“流形”的概念,流形在局部看起来是平坦的(例如蚂蚁在球面上观察自己附近,似乎是二维平面),但整体可能有“曲度”。曲率分为内在曲率与外在曲率:内在曲率是指在空间内部能感知到的弯曲,不依赖空间是否嵌入到更高维度,而外在曲率是从外部看空间的弯曲。例如圆的外在曲率为正,而一维的人在圆上只会觉得走一直线,不能察觉其弯曲。

在更高维度情况,比如二维流形(表面),每个点的曲率可以通过不同方向上放置圆来测量。但实际只需要两个方向最大和最小曲率的乘积,即高斯曲率,就能全面描述该点的弯曲状态。高斯曲率属于内在曲率,不依赖于有没有嵌入到更高维空间。例如圆柱体虽然在三维空间中弯曲,但从其表面上的视角看属于“内在平坦”,而球体则是内在弯曲。

2020年,意大利博科尼大学的Elia Bruè和两位数学家并非证明米尔诺猜想,而是意外构造出反例,发现一种全新类型的拓扑空间:它在每一点的曲率都满足米尔诺提出的条件,但却仍然存在无限多个洞。这种空间的存在说明,单凭局部曲率信息,无法推断出整个空间的拓扑结构。也就是说,局部曲率有限不代表整体上不会存在无限多拓扑复杂性。这个结果令人震惊,推翻了领域内几十年来的普遍信任和直观,拓扑空间的结构远比想象中更“野性”。

这个反例和新空间的发现,被誉为领域里“里程碑”式的工作。它不仅解决了重大开放问题,也带来了对空间结构的全新理解——局部几何与全球拓扑可能存在不可预见的断裂,这对于几何、拓扑、数学物理等领域具有深远影响。

30. Alabama prisoners' organs vanish, and there's a whole lot of passing the buck (www.al.com)
32. The new APT 3.0 solver (blog.jak-linux.org)

APT 3.0的求解器(代号solver3)是一个完全不同的依赖求解算法,它采用延迟决策的回溯策略,从一个空包集开始,先处理手动安装的包,然后根据依赖关系自动安装必要的包。

核心工作原理 求解器通过多种方式延迟决策:

  1. 递归标记依赖,对于只有一种解决方案的依赖,直接标记安装;对于因冲突或用户请求而被拒绝的包,会传递性地标记其反向依赖为拒绝(除非有其他可选包)。
  2. 将存在多个选择的依赖放入优先队列,优先解决选择较少的依赖。
  3. 在决定安装某个包的特定版本之前,会先提取其跨版本的公共依赖并进行安装。

决策过程记录了决策层级,当遇到冲突时,求解器会回溯到上一个决策层级,做出相反的标记(如不安装某个包),并重置更高层级的状态。

与SAT求解器的比较 本质上,这是一个没有“纯文字消除”阶段的DPLL求解器。求解过程中会构建一个部分蕴含图,用于记录依赖关系。未来计划引入更先进的冲突驱动子句学习,以大幅优化回溯性能。

行为变化

  1. 手动安装包处理:新求解器永远不会主动提议移除手动安装的包。
  2. 自动移除行为:变更后,系统只会保留通过最强依赖链可达的包。例如,仅通过Provides: c-compiler这类较弱依赖链保留的旧gcc版本包可能会被清理。
  3. 安装行为:引入了--no-strict-pinning选项,允许在安装特定版本包时,考虑升级或降级其他包来满足依赖,适用于实验性源。

新功能

  • apt why命令:利用构建的蕴含图,可以显示一个包被安装的(最强)依赖链原因。
  • 依赖解析更灵活:支持在更广泛的版本范围内解决依赖。

待完成与未来计划

  1. 错误信息:当前错误信息显示为原始的蕴含图,不够友好,且不存储历史冲突信息。
  2. 测试套件:尚未通过测试。
  3. 替换逻辑:计划实现允许新包通过Conflicts/Replaces/Provides关系替换已淘汰的旧包。
  4. 性能优化:计划实现非时序冲突驱动子句学习以提升回溯效率。
  5. 推出策略:计划采用分阶段推出的方式,先在部分用户中默认启用以收集反馈和修复问题。
33. URLhaus: A database of malicious URLs used for malware distribution (urlhaus.abuse.ch)

URLhaus:恶意URL情报平台

URLhaus 是一个由 abuse.chSpamhaus 联合维护的公共平台,其核心职能是作为一个用于恶意软件分发的恶意URL数据库

主要功能:

  • 数据共享与提交: 用户可向该平台报告发现的恶意URL,共同充实威胁情报库。
  • 情报查询与探索: 任何人都可以探索其公开数据库,以获取相关的网络安全情报。
  • API接口自动化: 平台提供API,使用户能够自动化地推送恶意URL信号和拉取查询结果,支持批量自动化操作,便于集成到安全工作流中。

应用价值: 通过利用URLhaus提供的威胁情报,安全团队和研究人员可以:

  • 深入洞察恶意软件的行为模式。
  • 有效识别、跟踪和抵御与恶意软件及僵尸网络相关的网络安全威胁。

简言之,URLhaus是一个专注于恶意URL的情报收集、共享与自动化查询的开放数据库,旨在助力网络安全防护。

34. Romance author gets locked out of Google Docs for "inappropriate" content (www.dexerto.com)
35. Aggregating all cinema showtimes in Germany with Clojure (tonsky.me)

德国全境电影院放映信息聚合网站allekinos.de

背景与目的

作者热爱电影,但发现现有电影聚合网站(如kino.de)广告繁多、用户体验差,信息架构混乱(如导航选项复杂),导致查找电影放映信息不便。因此,作者决定自己开发一个简洁实用的网站——allekinos.de,旨在聚合德国所有电影院的所有放映信息,为用户提供无干扰、功能导向的查询工具。

网站功能与设计

  • 核心功能:显示德国全境每个电影院、每部电影的所有放映场次,以单一HTML长表格形式呈现。
  • 过滤选项:支持按城市、城市区域、特定电影院、电影类型或电影标题进行过滤,方便用户快速筛选。
  • 附加信息:提供即将上映的电影首映列表。
  • 界面设计:极简主义,无logo、菜单、页脚、分页、广告或cookie横幅;强调功能纯函数化,用户通过浏览器Ctrl+F搜索数据。
  • 页面大小:如柏林数据约1.4MB HTML(含海报约3MB),相比Slack、AirBnB等现代网站更轻量,加载速度快。
  • 移动端适配:仍在设计中,目标是保持与桌面端相同的信息密度,但需调整表格布局以适应移动设备。

技术实现

  • 数据模型:使用DataScript数据库处理多维数据,涉及电影、类型、年份、国家、语言、电影院、区域、城市、放映时间等实体,数据结构扁平化存储。
  • 数据管理:整个数据库约11MB,序列化为JSON文件并定期更新。
  • 查询示例:通过Clojure代码动态构建DataScript查询,支持基于条件的灵活搜索(如城市、电影院、区域、电影、类型),使用search函数生成查询语句。
  • 代码片段
    (defn search [{:keys [city cinema district movie genre]}]
      (let [inputs (cond-> [['$ db]]
                     city (conj ['?city city])
                     cinema (conj ['?cinema cinema])
                     district (conj ['?district district])
                     movie (conj ['?movie movie])
                     genre (conj ['?genre genre]))
            where (cond-> [:where]
                    city (conj '(or [?cinema :cinema/city ?city] [?cinema :cinema/area ?city]))
                    cinema (conj '[?cinema :cinema/title ?cinema-title])
                    district (conj '[?cinema :cinema/district ?district])
                    movie (conj '[?movie :movie/title ?movie-title])
                    genre (conj '[?movie :movie/genre ?genre]))]
        (apply ds/q
          (concat
            '[:find ?show ?date ?time ?url ?cinema ?version ?movie
              :keys id date time url cinema version movie
              :in]
            (map first inputs)
            where
            '[[?show :show/cinema ?cinema]
              [?show :show/date ?date]
              [?show :show/time ?time]
              [?show :show/url ?url]
              [?show :show/movie-version ?version]
              [?version :movie-version/movie ?movie]])
          (map second inputs))))
    

托管与部署

  • 托管平台:使用application.garden,一个面向小型Clojure web应用的托管服务(仍在私有测试中),简化部署流程。
  • 部署步骤:通过单个命令行工具(二进制文件)创建项目配置文件(garden.edn),执行garden deploy即可上线应用,无需处理底层细节。
  • 优势:支持自定义域名、HTTPS、身份验证、定时任务、日志、持久化存储和生产环境nREPL(用于调试和运行一次性任务),实现快速开发和可扩展性。
  • 示例:作者在实现首映功能时,通过远程nREPL直接调用函数,无需额外代码修改,简化了生产环境调试。

作者结论

  • 该网站从用户角度出发,提供无广告、无干扰的实用工具,使用户能轻松发现隐藏的放映信息(如德语版《黑客帝国》或限量放映的《火星快车》)。
  • 作者享受使用Clojure和简化托管构建web应用的过程,希望未来能开发更多类似网站,并鼓励此类用户导向的项目成为趋势。
36. Parking reform legalized most of the new homes in Buffalo and Seattle (2023) (www.sightline.org)

西雅图与布法罗停车改革研究:多数新建住宅曾属非法建造

核心发现

  • 停车配建要求严重限制住房建设:研究显示,在西雅图和布法罗实施停车改革后,60%-70%的新建住宅若按旧规将属非法建造。
  • 改革释放建设灵活性:开发商普遍利用新规减少停车位供给,但大多数建筑仍自愿提供部分停车空间。

两座城市的对比背景

  • 西雅图:2010年后人口增长21%,住房短缺、价格上涨,2012年起在市中心和公交枢纽区减少或取消停车配建要求。
  • 布法罗:经历70年人口流失后开始复兴,2017年全市取消停车配建,以促进历史建筑改造和空地再利用。

研究数据

  • 西雅图:2012-2017年获批的868栋多户住宅(超6万套住宅)中,35,388套(占全市住房存量9.4%)受益于停车灵活性。
  • 布法罗:改革后两年内36个主要开发项目中,多数选择减少停车供给。

实际影响

  • 停车位供给减少但仍广泛存在:西雅图70%、布法罗83%的新建筑仍自愿提供停车空间。
  • 实际停车建设量下降:布法罗实际建设量比旧规要求少20%;西雅图减少40%(与当地40%停车空间闲置的调查结果吻合)。
  • 成本节约与租金影响:西雅图研究估计,开发商因减少停车共节省5.37亿美元,该成本原本会转嫁给租户;单个停车位可使月租金增加超200美元。

关键案例与解释

  • 灵活性运用:布法罗许多建筑通过产权分割(如相邻地块单独设停车场)合规,或以低于旧规的比例配建停车。
  • 因果关系谨慎:研究者指出难以将市场变化完全归因于政策改革,但市场明显选择了利用新规灵活性。

对其他城市的启示

  • 停车配建要求普遍抑制住房供应,且基于“几乎无数据”的假设制定。
  • 取消这类要求可促进住房建设、降低成本,并有望缓解长期存在的住房短缺问题。
37. Compiler Explorer (thechipletter.substack.com)

Compiler Explorer (CE) 简介

  • 核心功能:一个在线工具,用户在左侧面板输入源代码,右侧面板可立即显示编译后的输出,通常是汇编语言。网址为 https://godbolt.org
  • 广泛支持:支持69种源语言,超过2000种编译器,以及众多目标架构,包括x86、ARM、RISC-V、AVR、MIPS、VAX、6502、PowerPC、SPARC等,甚至包括NVIDIA CUDA的PTX代码。

历史与背景

  • Matt Godbolt 于2012年创建,最初名为GCC Explorer,2014年更名为Compiler Explorer。
  • 项目开源,源代码托管在GitHub上。大多数用户使用其免费在线版本,该版本通过捐赠和赞助维持运营。

主要用途与功能

  1. 架构与编译器比较:可以轻松比较同一段代码在不同架构(如x86-64, ARM64, RISC-V, VAX, 6502)或不同编译器(如GCC vs Clang)下的汇编输出。
  2. 学习汇编语言:支持鼠标悬停查看指令说明,右键点击可链接到更详细的官方文档(如x86链接至Felix Cloutier的文档)。
  3. 查看编译中间表示:对于基于LLVM的编译器(如Clang),可以显示LLVM中间表示(IR)。
  4. 性能分析工具集成
    • 可集成LLVM机器码分析器,模拟代码在真实CPU上的执行,并提供性能预估和详细的时间线视图,展示指令在CPU流水线中的状态流转。
  5. 支持解释型语言:可以显示Python、Ruby等语言的字节码。
  6. 简易集成开发环境:提供了包含CMake支持、能够运行程序并查看输出的完整简易IDE环境。
  7. 展现编译器优化:是了解现代编译器所执行的复杂优化操作的绝佳窗口。

使用情况与社区

  • 通过Grafana仪表板可以看到用户使用的语言统计(C++是默认语言)。
  • 使用量持续增长,目前年编译次数约1800万次(相当于每秒约一次)。
  • 服务运行在Amazon Web Services上,每月托管成本约2500美元。

相关资源与扩展

  • Matt Godbolt在Computerphile YouTube频道上有一个系列视频,讲解微处理器基础知识。
  • 文章作者计划将年度订阅收入的100%捐赠给CE项目以示支持。
  • 一个有趣的示例是使用movfuscator工具,仅用x86的MOV指令编译代码。
38. Arch Linux RISC-V (archriscv.felixc.at)

Arch Linux RISC-V 移植项目概览

本项目是将 Arch Linux 移植到 RISC-V 架构的版本。

硬件支持

  • 基础配置:硬件基线为 RV64GC,ABI 为 lp64d。
  • 官方内核支持与测试设备:主 linux 内核包已启用支持,并针对以下设备进行了测试:
    • QEMU
    • HiFive Unmatched, HiFive Unleashed
    • PolarFire SoC Icicle Kit
    • VisionFive v2, Milk-V Mars
    • Nezha D1
  • 实验性支持[unsupported] 仓库中包含针对 LicheePi 4A (TH1520) 和 Milk-V Pioneer (SG2042) 的实验性内核包。
  • 其他设备:除了使用 AX45MP 的板子外,其他设备可能通过 BSP 或自定义内核工作。

移植目标

  • 本移植基于 Arch Linux 的源代码包应用补丁,所有补丁维护在下方的补丁仓库中。
  • 长期目标是尽可能将补丁上游化,最终目标是使 riscv64 (riscv64gc) 能够作为替代架构被添加到 Arch Linux 官方支持中。

关键资源

  • 镜像文件 (rootfs):提供默认用户 root 和密码 archriscv
  • 二进制软件包仓库:包括 [core][extra][unsupported] 仓库。
  • 补丁仓库:托管于 GitHub (felixonmars/archriscv-packages),用于提交问题和查看维基。
  • Docker 镜像:由第三方提供。

镜像站 项目在全球多个地区设有镜像站,包括但不限于:

  • 全球推荐riscv.mirror.pkgbuild.com
  • 中国:CAS (ISRC-ISCAS)、南京大学 (NJU)、南阳理工 (NYIST)、北京大学 (PKU)、南方科技大学 (SUSTech)、武生院 (WSYU)
  • 其他地区:罗马尼亚、加拿大、美国、巴西等地的多个镜像站。

参与和进度

  • 参与指南:可查看项目的 Contributing Guide。
  • 移植进度:详细状态页面显示了各软件包的移植情况。除列入黑名单的软件包外,所有软件包应为最新版本或已列于状态页面中。
  • 社区交流:可通过 IRC (#archlinuxriscv@libera.chat) 和 Matrix (#archlinux-riscv:matrix.org) 渠道参与讨论。

致谢 项目感谢众多硬件厂商和个人提供测试设备(如 HiFive、VisionFive、Milk-V Mars/Pioneer、LicheePi 4A、Nezha D1 等)及赞助 x86/LoongArch QEMU 构建服务器,同时也感谢所有持续为项目做出贡献的开发者。

40. Show HN: I wrote a symmetry game with a daily puzzle (www.hidden-mirrors.com)

《Show HN: I wrote a symmetry game with a daily puzzle》是一款免费的每日谜题游戏,面向具备品味、风格和较高空间关系能力的玩家。游戏主题为对称,每天提供一个新的谜题挑战。用户可以通过 https://www.hidden-mirrors.com/ 访问该网站并参与游戏。该作品旨在锻炼玩家的空间思维能力,提升审美与解决问题的趣味体验。

41. Most common PIN codes (2012) (www.datagenetics.com)

这篇文章基于对约340万个泄露的四位数密码数据进行分析,揭示了人们设置PIN码时的常见模式和问题。

数据来源与范围 研究使用的数据来源于历年泄露的密码数据库,筛选出恰好为四位数字的密码条目。作者强调,尽管数据来自密码而非真实PIN码,但用户自行选择四位数字作为在线密码的行为,可合理推断为他们设置PIN码习惯的代理。

最常见的PIN码:极度可预测

  • “1234” 是压倒性的最常见密码,占总数的10.7%。
  • “1111”“0000” 分列第二、三位。
  • 前20个最常用的密码(如1212、7777、1004、2000、6969、2580等)就覆盖了全部数据的26.83%。这表明用户的PIN码选择高度集中且缺乏想象力。
  • 许多高频PIN码是简单的数字重复(如2222、3333)、键盘顺序(如1234、4321、2580)或特殊数字组合(如0007、1984)。

规律与模式

  1. 年份偏好:以“19”开头的PIN码(如1967、1956)异常高频,通常与出生年份相关。数据分析显示,“19XX”组合的出现比率远高于其他后两位数字组合。
  2. 日期编码:人们也常用MMDD格式的日期(如生日)作为PIN码,这解释了热力图中左下角(月份01-12,日期01-31)的高亮区域。
  3. 键盘与模式:直线(如2580)、阶梯(如2345、4321)、偶数序列(如2468)以及重复对(如XYXY)都非常普遍。重复对形式的PIN码占总观察量的17.8%。
  4. 文化因素:特定数字在某些文化中具有含义。例如,在韩语中“1004”发音类似“天使”。

最不常见的PIN码 最不常用的PIN码是 “8068”,在340万个数据中仅出现25次。作者特别警告,不要因为知道这个信息就将自己的PIN码改为它,因为黑客可能也会关注此类分析。

扩展分析:其他长度的数字密码 对五位、六位乃至十位数字密码的分析显示了类似模式:

  • “12345” 在五位密码中占22.8%。
  • “123456” 在六位密码中最常见。
  • 七位密码中出现 “8675309”(源自一首流行歌曲)。
  • 九位和十位密码中,“007007007”(邦德)、“3141592654”(圆周率)等模式化序列也很突出。

主要结论与警示

  1. 对开发者的警告:作者严厉批评了将密码明文存储的开发者,指出这是导致大规模数据泄露的根本原因,并敦促他们立即采用加密存储。
  2. 对用户的建议:分析表明用户自选PIN码的能力非常糟糕,极易被预测。建议用户认识到这一风险,避免使用本文提到的任何常见模式、年份、生日或简单序列,转而选择更随机、难猜的组合。
42. What went wrong with UniSuper and Google Cloud? (danielcompton.net)

UniSuper与谷歌云事件分析

事件概要

2024年5月,澳大利亚养老金基金UniSuper经历了长达两周(5月2日至13日)的服务中断,其谷歌云环境被删除。初始声明模糊,暗示这是谷歌云的罕见故障。后续更新揭示,根本原因是谷歌云VMware引擎(GCVE)私有云创建脚本中的配置错误。

根本原因

  • 直接原因:UniSuper的生产环境GCVE私有云在创建一年后被自动删除。这是因为创建脚本中存在一个传递空值(null)的错误,导致私有云被创建为一年期订阅,而非永久订阅。
  • 触发机制:一年期限届满后,谷歌云系统按照预设策略自动删除了该私有云资源。删除操作是立即和不可逆的。

事件关键细节

  1. 受影响资源:被删除的是谷歌云VMware引擎(GCVE)私有云。私有云包含了主机、管理服务器、存储和网络等完整的VMware栈,其删除导致了服务的全面中断。
  2. 备份失效:UniSuper原本在两个地理区域(推测为悉尼和墨尔本区域) 部署了冗余备份以防止故障。然而,此次订阅删除操作同时影响了这两个区域的私有云,导致灾备措施失效。
  3. 恢复过程:恢复工作极其复杂,需要UniSuper和谷歌云团队紧密合作,从备份中恢复数百台虚拟机、数据库和应用程序。

技术背景与推测

  • GCVE删除机制:私有云删除后,资源状态设为“DELETED”,并有一个到期时间(expireTime)。在到期前可撤销,到期后资源被永久移除。有观点指出,Terraform资源中delayHours参数被硬编码为0,意味着删除是立即执行的。
  • 沟通问题:事件初期,谷歌云的公开沟通非常模糊,使用被动语态和“订阅”等非标准术语,引发了外界猜测(如整个云账户被删除)。最终的技术细节是通过谷歌云前员工的非官方社交媒体帖子披露的,而非官方渠道。

结论与责任

  • 责任界定:谷歌云最终在官方博客和联合声明中确认,此事件完全是谷歌云的责任,源于其创建流程中的一个前所未有的配置错误和软件缺陷。UniSuper方面无过错。
  • 事件性质:被谷歌云定义为一次孤立、“独一无二”的事件,在全球客户中从未发生过。
  • 遗留疑问:尽管技术原因已澄清,但业界对谷歌云在此事件中迟缓且不透明的沟通方式提出批评,认为其默认沉默让公众误解了事件性质。

此事件凸显了云服务自动化流程中潜在配置风险的严重性,以及服务商在故障期间进行清晰、及时技术沟通的重要性。

43. Jan Leike Resigns from OpenAI (twitter.com)

根据提供的内容,文章标题为“Jan Leike Resigns from OpenAI”,但实际文本内容是一个技术性错误消息。该消息指示在访问x.com时加载出现问题,并建议禁用隐私相关扩展后重试。内容未涉及Jan Leike从OpenAI辞职的具体细节或相关信息。

44. Why do CPUs have multiple cache levels? (2016) (fgiesen.wordpress.com)

CPU采用多级缓存(如L1、L2、L3)而非单一的大缓存,主要是因为各级缓存的设计目标、物理约束和承担的角色完全不同。它们共同构成一个层级化的存储系统,在速度、容量、功耗和协调需求之间取得平衡。

核心原因与设计权衡

  1. 速度与容量的矛盾

    • L1缓存:速度最快,但容量最小。其物理尺寸受到严格限制,因为过大的物理面积会增加访问延迟和能耗。它的首要目标是满足CPU核心极高的、几乎每个时钟周期都会发生的数据/指令访问带宽需求。
    • L2/L3缓存:容量更大,速度更慢。设计时更注重存储密度(单位面积存储更多数据)和能效。它们负责容纳更多近期使用的数据,以减少对更慢主内存的访问。
  2. 私有与共享的架构

    • L1缓存是私有的:每个CPU核心拥有独立的L1指令缓存和L1数据缓存。这种私有性意味着核心访问其L1缓存时无需与其他核心协调,可以立即读取或写入,从而实现最低的访问延迟。
    • L2缓存通常也是私有的:它主要服务于其所属的核心,但额外承担了处理总线通信的任务。当需要访问其他核心的数据或共享的L3缓存时,L2缓存代理完成大部分协调工作,避免了频繁中断CPU核心的计算。
    • L3缓存是共享的:所有核心共享同一L3缓存。访问共享资源需要全局协调(通过总线),这会引入额外开销。因此,L3缓存的作用在于,在数据到达主内存之前,由前两级缓存过滤后,再提供一个容量更大的共享池。
  3. 功能分离

    • 指令与数据分离:CPU核心对指令和数据的访问模式截然不同。L1通常分为独立的指令缓存和数据缓存。如果将它们合并为单一缓存,设计必须满足相互冲突的优化目标,导致性能下降。例如,指令缓存通常是只读的,且带宽需求巨大。
    • 粒度差异:L1缓存处理细粒度的单个字节/字的读写。而更高级别的缓存主要以“缓存行”(例如64字节)为单位进行数据交换,这是一种效率更高的批处理方式。

总结比喻

文章使用了一个生动的办公室比喻来阐明这些概念:

  • L1缓存(办公桌):你手边直接使用的文件,私有且获取最快。
  • L2缓存(文件柜):你近期用过但暂时不在手边的文件,仍是私有区域,但取用需要少量时间。它同时处理与同事(其他核心)的文件交接请求。
  • L3缓存(地下室档案室):一个共享的、更庞大的存储区域,取用较慢,需要通过特定流程(总线)访问。
  • 主内存(远处的仓库):存储绝大部分数据,访问延迟最高。

因此,多级缓存层次结构是一种物理上和逻辑上都必需的优化。它不是一个简单的设计选择,而是由芯片物理布局、信号延迟、功耗限制和复杂的数据协调需求共同决定的必然结果。单一的巨大缓存无法同时满足高速、低功耗、无需协调和大容量的所有要求。

45. Brain biopsies on 'vulnerable' patients at Mt Sinai set off alarm bells at FDA (www.statnews.com)

文章摘要

  • 核心事件:西奈山医院在为患者进行深部脑刺激手术时,同步进行大脑活检以用于研究,此举引发了美国食品药品监督管理局的关注与批评。
  • 患者情况:患者彼得·鲍曼因早发性帕金森病决定接受DBS治疗,并同意参与医院的“活脑项目”研究。他认为活检风险与常规DBS手术相当,并未多想便签署了同意书。
  • 项目描述:“活脑项目”旨在通过对活体脑组织的研究,成为迄今规模最大的活体人脑分子研究,以推动对脑生物学的理解。研究声称活检造成的组织损失与DBS手术中电极置入造成的损伤相当。
  • FDA审查与批评
    • 起因:一家设备制造商于2019年4月致信FDA,其产品在该项目中被使用,从而触发了审查。
    • 审查结果:FDA内部长达数月的审查于2019年8月完成,报告措辞严厉。报告认为,西奈山的医生们用于获取患者活检同意的依据是“虚假理由”。
    • 风险评估:一位受FDA咨询的神经外科医生指出,此类活检“会给受试者带来严重风险”。
  • 历史背景:FDA最初在2013年仅有限批准了该活检手术,将其作为一项早期可行性研究的一部分,仅限于六名患有治疗抵抗性抑郁症的DBS患者。
  • 文章信息:本文原为STAT+独家订阅内容,作者为《名利场》特约记者凯瑟琳·埃班。
46. Ask HN: Disillusioned after AI?

这是一个在Hacker News上引发讨论的帖子,作者表达了自己在AI技术浪潮下的幻灭感。

核心观点如下:

  • 幻灭感来源:作为一名开发者/创造者,作者感到当前AI的进步正让自己产生幻灭。
  • 主要担忧:个人构建的任何东西,都可能轻易地被大型科技公司复制或吞没,这使得创新变得徒劳。
  • 对行业现状的批评:作者认为AI的演示越来越令人尴尬(cringey),相关的营销信息和行业叙事也显得越来越虚伪和虚假(duplicitous and fake-authentic)。
  • 寻求共鸣:作者想知道是否有其他人也经历了类似的感受,或者这仅仅是自己个人经历的低谷。

该帖子是作者的一个公开提问,旨在了解技术社区中是否普遍存在这种由AI快速发展带来的失望情绪。帖子下有109条评论,表明这是一个引发了广泛共鸣和讨论的话题。