2024-05-05

31 篇热帖

1. MIT abandons requirement of DEI statements for hiring and promotions (whyevolutionistrue.com)

麻省理工学院(MIT)已悄然取消在教师招聘和晋升中要求提交多样性、公平与包容(DEI)声明的规定,该决定未通过公开宣布,而是通过内部通知及第三方媒体传播。

DEI声明通常用于入学申请、职位竞聘或科研资助,要求申请人阐述其在多样性、公平与包容方面的理念、相关经历及未来实施计划。批评者认为此类声明构成强制性言论,与申请实质无关,且可能忽视个人通过其他途径对社会的贡献。

据MIT内部匿名教职工调查显示,约三分之二教授反对DEI声明要求,仅约5%的人认为DEI活动应与科研和教学同等重要。MIT言论自由联盟已确认,校方要求各院系停止索取此类声明,但未计划向学生公开通知。

该消息最初由讽刺网站《巴布林海狸》(The Babbling Beaver)报道,后经MIT校内知情人士及校方邮件确认属实。文章指出,此举可能受美国最高法院最近关于种族敏感招生政策的裁决影响,也反映了对“DEI意识形态”损害高校文化的日益关注。

MIT校方未正式发布声明,部分原因是为了避免引发争议。相关报道呼吁主流媒体关注此事,并认为这是高校在DEI政策上转变的一个重要信号。

2. Show HN: Dillo 3.1.0 released after 9 years (dillo-browser.github.io)

这个页面原本指向Dillo 3.1.0的发布,但该版本已不再是最新发布。用户现在可以通过点击链接前往发布页面,或等待10秒自动重定向来获取最新版本信息。

3. A 100x speedup with unsafe Python (yosefk.com)

该文章探讨了通过一种被称为“不安全的Python”的方法,将基于NumPy和OpenCV的图像缩放操作加速约100倍的过程。核心问题在于,虽然两个NumPy数组的形状和数据类型相同,但其内存布局(由步幅定义)的巨大差异导致了性能上的天壤之别。

问题根源与发现

  • 性能差异:使用pygame.surfarray.pixels3d从SDL表面获取的NumPy数组,传递给cv2.resize进行缩放时,性能极慢,比使用numpy.zeros创建的标准数组慢近100倍。
  • 根本原因:差异源于NumPy数组的步幅pixels3d返回的数组步幅异常(例如(4, 7680, -1)),而标准数组的步幅为(3240, 3, 1)。这代表了完全不同的内存布局。
  • SDL布局解析:SDL表面使用BGRA格式存储像素。负的z步幅(-1)是为了让数组在访问时呈现出RGB的外观,而实际内存中是BGRA排列。这种非标准、行列顺序颠倒且通道交错的布局,严重降低了OpenCV等优化过的C库的性能。

解决方案:利用“不安全的Python” 作者没有选择改变SDL的布局或复制数据,而是巧妙地通过Python的ctypes库“欺骗”OpenCV:

  1. 获取原始指针:使用ctypes获取SDL表面像素数据的底层C指针。
  2. 重新解释内存:围绕这个原始指针,构建一个形状和步幅均符合NumPy默认约定的新NumPy数组。具体来说,将原始(宽度, 高度, 3)的BGRA数据,重新解释为一个(高度, 宽度, 4)的RGBA数组(标准的行优先、连续存储布局)。
  3. 执行操作:将这个被重新解释的数组传递给cv2.resize。由于缩放算法本身不关心图像的具体宽高维度顺序和红蓝通道顺序,它能在标准内存布局上高效运行。

结果与意义

  • 该方法在调用cv2.resize时实现了约100倍的性能提升(相对于直接使用pixels3d数组)。相对于pygame自带的smoothscale,也获得了13-15倍的加速。
  • 文章将这种方法称为“不安全的Python”,因为它使用了类似C语言的底层指针操作,绕过了Python的安全抽象。这体现了Python与C的互补性:Python提供易用性和安全性,而通过ctypes等接口,开发者可以在需要时访问C级别的性能与控制力,代价是需自行负责内存安全。
  • 该技巧适用于任何因NumPy数组内存布局非标准而导致性能低下的场景,不限于图像处理或pygame。
4. First 'tooth regrowth medicine' to be tested in Japan from Sept. 2024 (mainichi.jp)
5. Take a look at Traefik, even if you don't use containers (j6b72.de)
6. Automated integer hash function discovery (github.com)

Prospector:自动化整数哈希函数发现工具摘要

核心工具与原理

Prospector 是一个用于自动发现整数哈希函数的工具。其工作原理是:

  1. 随机生成:从九种可逆操作(如移位、乘法、加法等)中随机组合,生成数十亿个整数哈希函数。
  2. JIT编译与评估:生成的函数通过即时编译(JIT)执行,并评估其“雪崩行为”。
  3. 优化目标:核心评估指标是“雪崩得分”,即当输入位翻转一位时,输出位保持固定的平均数量。得分越低(理想值为0,即每个输出位有50%概率翻转)表示函数质量越高。
  4. 输出与支持:工具会以C语法输出当前发现的最优函数。它支持生成32位和64位哈希函数,但因使用JIT编译,其运行环境仅限x86-64架构。发现的函数本身可用于任何架构。

发现的哈希函数类别

工具发现了两类主要的哈希函数,均采用 异或移位-乘法-异或移位 结构,区别在于执行轮数。

1. 两轮函数

此类函数通过两轮“异或移位-乘法-异或移位”操作构成。

  • lowbias32:一个具有极低偏差的32位置换函数,其表现甚至略微超越了知名的 MurmorHash3 32位终结器。
    uint32_t lowbias32(uint32_t x) {
        x ^= x >> 16;
        x *= 0x7feb352d;
        x ^= x >> 15;
        x *= 0x846ca68b;
        x ^= x >> 16;
        return x;
    }
    
  • 工具还发现了许多其他具有低偏差的两轮函数常数组合,文中列出了详细的参数及对应的精确偏差值。

2. 三轮函数

增加一轮操作可以使函数通过精心选择的参数达到理论偏差极限(偏差 ≈ 0.021)。

  • triple32:一个几乎与完美伪随机函数(随机置换所有32位整数)无法区分的32位哈希函数。
    uint32_t triple32(uint32_t x) {
        x ^= x >> 17;
        x *= 0xed5ad4bb;
        x ^= x >> 11;
        x *= 0xac4c1b51;
        x ^= x >> 15;
        x *= 0x31848bab;
        x ^= x >> 14;
        return x;
    }
    
  • triple32inc:在 triple32 基础上前置一个递增操作 x++,解决了 hash(0)=0 的问题,并略微降低了偏差。
  • 同样,文中也列出了大量其他具有低偏差的三轮函数常数组合。

工具的其他功能

  1. 精确偏差测量:使用 -E-e 选项可以对通过模式(-p)或动态链接库(-l)指定的哈希函数进行穷举式的精确偏差测量。
  2. 操作类型:工具可探索的操作包括:取反、异或常数、乘奇数、加法、左右移位、加法移位、减法移位、左循环移位和字节交换。
  3. 16位哈希函数:由于约束不同,存在一个独立的工具 hp16 用于发现16位哈希函数。它是可移植的,并能生成和评估128KiB的S盒。
    • 示例(两轮xorshift-multiply):
      uint16_t hash16_xm2(uint16_t x) {
          x ^= x >> 8; x *= 0x88b5U;
          x ^= x >> 7; x *= 0xdb2dU;
          x ^= x >> 9;
          return x;
      }
      
    • 使用16位函数时需注意C语言的整数提升规则,避免运算错误。
7. Show HN: gpudeploy.com – "Airbnb" for GPUs (www.gpudeploy.com)

域名 gpudeploy.com 交易信息摘要

核心信息

该域名当前正在出售,标价195美元(注:文中另一处提及“$395”,存在差异),采用**GoDaddy“立即购买”**模式。域名“gpudeploy.com”由关键词“GPU”和“deploy”组成,长度为9个字符,TLD为.com。

域名历史与价值分析

  • 历史用途:该域名曾被用作一个GPU租赁/现货市场的平台,定位为“GPU领域的Airbnb”。由Aedilic/GPUDeploy团队运营,是一个允许用户列出闲置GPU(包括分时租赁)并提供节点运营商接入指南的实际运营产品,而非停放域名。
  • 域名数据
    • 注册时间:2024年10月
    • 存档记录:Wayback Machine显示2024年即有记录,索引页面数约196页,表明该网站拥有实质性历史内容。
    • SEO数据:文中提及该域名具备已有的页面和潜在的SEO价值(如反向链接),但详细指标(如MOZ域名权威、外链数量等)需登录查看。
  • 当前状态与购买建议:该域名目前正以相对较低的价格出售。由于其简短、描述性强(精确包含“GPU”和“deploy”关键词)、拥有运营产品历史及存档内容,文章认为这对于AI/GPU工具或市场领域的创业者来说,是一个高性价比、低风险的收购选择

销售平台背景

该域名在ExpiredDomains.com平台展示。该平台是一个免费的域名搜索工具,聚合过期和即将过期的域名信息,提供包括TLD、关键词、SEO评分、反向链接等在内的多维筛选工具,并集成第三方数据。用户可通过平台跳转至GoDaddy等注册商完成购买。

GoDaddy 服务商简介

作为域名销售方,GoDaddy是全球最大的域名注册商,管理超过8400万个域名,为超过2000万客户提供域名注册、网站托管、建站工具等一站式服务,并提供24/7客户支持。

8. Atari's Mike Jang (arcadeblogger.com)

Atari工业设计师Mike Jang逝世,其设计遗产永存

核心信息: Atari硬币业务部门的长期工业设计师Mike Jang逝世,享年不详。他于20世纪70年代中期加入Atari,贯穿了整个街机游戏的黄金时代,是公司内部设计流程的核心贡献者。

职业生涯与设计理念:

  • Mike Jang毕业于圣何塞州立大学,在Atari工作期间,主要职责是优化街机机柜的人体工程学,确保玩家与游戏的物理交互达到最佳状态。他极力倡导定制控制器和部件,并亲自推动其实现。
  • 他的设计工作融合了艺术感与实用性,创作了许多标志性的机柜。在CAD技术普及前,所有设计均通过手工绘图完成,且为保密,大部分部件在公司内部制作。
  • 他的工作不仅是初始设计,更包括根据测试反馈不断修改原型,解决温控、结构等问题,这一过程往往繁琐但至关重要。

代表性作品与贡献:

  • 《导弹司令》机柜: 其设计灵感来源于美国军事核控制台,原型机柜的大标识牌因测试反馈不佳而被大幅修改,形成了最终的经典造型。Mike详细记录了这一过程。
  • 《星球大战》驾驶舱: Mike提出了初始概念,包括液压活塞和桁架式设计元素,这些元素借鉴了电影中的机械美学。
  • 其他作品: 他的设计涵盖极广,包括1976年的《星舰1号》、《小行星豪华版》、《硬式驾驶》、《Stun Runner》以及未能发行的《星际战机》等。他拥有多项以自己名字命名的设计专利。
  • 现场监督: 他曾前往爱尔兰Atari工厂,监督《道路狂飙》等机柜的早期生产,确保设计被准确实现。

个人特质与遗产:

  • Mike Jang为人亲切,乐于分享知识,与同事和文章作者保持良好沟通,为博主的文章及著作《导弹司令》提供了宝贵视角。
  • 离开Atari后,他将热情投入汽车改装,精心打造了一辆定制1951年水星双门轿车。
  • 他将自己的所有Atari工作文档捐赠给了斯坦福大学进行存档(Michael Jang Atari材料集,1978-1991),为后世研究者提供了珍贵资料。
  • 他的设计遗产体现在那些外观出色、经久耐用的街机硬件中,至今仍被玩家所见和享用。
9. Machine Unlearning in 2024 (ai.stanford.edu)

机器遗忘(2024)

机器遗忘旨在无需从头重新训练的情况下,从已训练的模型中移除特定数据或知识的影响,例如隐私数据、过时知识、版权材料、有害内容或危险能力。其目标是生成一个与“在移除了待遗忘信息的数据集上重新训练所得模型”等效或行为相似的模型。

1. 历史、动机与形式

  • 起源与隐私动机:最初由欧盟GDPR的“被遗忘权”驱动,旨在让用户能要求服务商删除其数据。然而,此权利在机器学习时代面临挑战,因为数据难以从复杂模型中“分离”。
  • 当前动机(2024年)
    1. 访问撤销:用于移除私人或版权数据。难点在于数据在模型中已被“消耗”,且常需可证明的遗忘。替代方案包括数据市场或通过定期模型重训来批量处理请求。
    2. 模型修正与编辑:用于移除毒性、偏见、过时或危险知识。这与模型编辑和AI安全相关,常作为训练后风险缓解手段,不一定需要严格的理论保证。
  • 遗忘形式
    • 精确遗忘:未遗忘模型与重训模型分布完全相同。技术如SISA(将数据分片并训练子模型),优点是算法本身即证明,但计算成本仍高于不遗忘。
    • 基于差分隐私的遗忘:若模型对任何单个数据点不敏感,则无需对其“遗忘”。提供统计保证,但可能不适用于大型模型(如凸优化假设、精度损失、高开销)。锻造攻击表明此类定义可能无法审计。
    • 经验性遗忘
      • 已知示例空间:通常通过启发式微调实现,如对遗忘集梯度上升、在保留集上微调、添加噪声、权重重初始化等。效果直观但无理论保证,且评估困难(反事实不明确)。
      • 未知示例空间(概念/知识遗忘):当遗忘请求未明确指定示例(如遗忘“哈利·波特”实体),需处理模糊的“遗忘范围”。技术类似,但需先发现相关示例。这类请求本质上是经验性的。
    • 通过提示实现遗忘:对于指令遵循型LLM,可通过提示诱导目标行为(如“假装不知道某事”),或通过少样本提示提供反事实标签。无需梯度,但可证明性和安全性存疑。

2. 评估挑战

评估遗忘主要关注效率模型效用(对保留数据的影响)和遗忘质量(待遗忘数据被移除的程度)。评估遗忘质量最具挑战:

  • 即使有明确遗忘示例,简单的度量标准(如遗忘示例准确率低)可能因模型泛化(如遗忘集与保留集重叠)而不完善。
  • 根本挑战在于“从未学习过遗忘数据”的反事实模型在深度学习中通常是未定义的。
  • 最新基准:TOFU(评估遗忘个人知识)和WMDP(评估遗忘危险知识,如生物、网络、化学安全)转向评估模型在应用层面的知识保留,更适用于基础模型。

3. 实践、挑战与前景

  • 遗忘难度谱系:遗忘的难度取决于知识的基础性。基础性越高的知识(如“太阳东升西落”)与其他知识关联越多,遗忘范围呈指数级增长,可能无法在不损害模型效用的前提下被遗忘。
  • 版权保护:遗忘看似有前景,但需精确且可证明的遗忘。实践中,依赖公平使用抗辩、技术防护栏(如提示、内容过滤)或经济方案(如赔偿)可能更可行。纽约时报诉OpenAI案凸显了此领域的法律模糊性。
  • 检索增强系统:将可能引发遗忘请求的内容置于外部数据库,通过检索使用,从而简化遗忘。挑战在于彻底去除受保护内容的难度、某些数据(如行为偏好)难以检索,以及可能引入新的数据提取攻击面。
  • AI安全:遗忘正成为关键的事后安全工具,用于移除危险知识(如WMDP基准所测)、后门、操纵行为、偏见和毒性。它应与其他工具(如对齐微调)结合,权衡其适应性、成本与潜在效果。

总结:机器遗忘是一个快速发展的领域,由隐私、版权、安全和伦理等多重需求驱动。尽管精确遗忘和理论保证是理想目标,但当前实践中启发式和经验性方法更普遍。评估缺乏统一标准是核心挑战,但新基准正在出现。遗忘并非万能药,其有效性受知识嵌入深度制约,且在许多场景下,经济、法律或工程解决方案可能是更合适的替代或补充。未来方向包括在大规模模型上探索高效遗忘、建立更可靠的评估体系,以及明确其在AI治理框架中的角色。

10. Xmake: A cross-platform build utility based on Lua (github.com)

Xmake是基于Lua语言的跨平台构建工具,具有轻量级、无依赖、易读易写的配置文件(xmake.lua),集构建后端、项目生成器、包管理器、远程/分布式编译与缓存于一体。其功能涵盖直接编译源码(类似Make/Ninja)、生成项目文件(类CMake/Meson)、管理C/C++依赖,同时支持多种编译器和工具链。

主要特点如下:

  • 快速、灵活的配置语法。
  • 支持快速安装,无需额外依赖。
  • 支持几乎所有主流操作系统与CPU架构(Windows、macOS、Linux、BSD系列、Android、iOS、Wasm、Haiku、Harmony等)。
  • 支持主流工具链(如Xcode、MSVC、Clang、GCC、Go、Rust、Dlang、Swift等)。
  • 支持多种编程语言(C/C++、Objective-C、Swift、Assembly、Go、Rust、Fortran、CUDA、Zig、Pascal、Nim、Verilog、Kotlin、C#等)。
  • 智能分析交叉编译工具链信息,支持交叉编译。
  • 优异的并行编译速度,增量编译支持,自动分析头文件。
  • 内置包管理系统(与xrepo集成),支持从官方、第三方(Vcpkg、Conan、Conda、Homebrew等)仓库自动下载、构建和集成依赖包。
  • 支持自主搭建私有包仓库、虚拟环境、依赖版本锁定、远程工具链自动拉取。
  • 丰富插件系统,支持IDE项目文件生成(如VS、CMake、Ninja等),以及自定义Lua脚本插件。
  • 支持REPL互动执行、丰富的扩展模块、远程与分布式编译、缓存加速。
  • 对C++20模块、混合多语言项目有原生支持。
  • 支持多项目类型,如静态/动态库、控制台应用、CUDA/Qt程序、驱动、Darwin应用、SWIG模块、Protobuf、Lex/Yacc、内核模块等。

典型xmake.lua配置示例:

  • 定义目标:
target("console")
    set_kind("binary")
    add_files("src/*.c")
  • 指定依赖包:
add_requires("tbox 1.6.*", "zlib", "libpng ~1.6")
  • 集成第三方依赖:
add_requires("vcpkg::ffmpeg", "conan::openssl/1.1.1g")
add_packages("ffmpeg", "openssl")
  • 自动拉取特定工具链并设置:
add_requires("llvm 10.x", {alias = "llvm-10"})
set_toolchains("llvm@llvm-10")
  • 插件与自定义脚本:
target("test")
    after_build(function (target)
        print("hello: %s", target:name())
        os.exec("echo %s", target:targetfile())
    end)

命令行操作便捷,支持构建、运行、调试、配置平台与架构等:

xmake
xmake run
xmake f -p [平台] -a [架构] -m [debug|release]

包管理相关特性:

  • 官方仓库提供500+包,支持所有平台和交叉编译,包虚拟环境(xrepo env shell)、Windows预编译包加速、自建和私有仓库、第三方仓库集成、依赖版本锁定与工具链拉取支持。

分布式与远程编译:

  • 支持MSVC、Clang、GCC等,支持各主机间编译,无需共享文件系统,自动负载均衡和实时压缩大文件传输,几乎零配置,无额外依赖。

性能方面:

  • 并行编译速度可与Ninja媲美,增量单任务编译亦优于CMake+Make/Ninja。

IDE/编辑器集成:

  • 提供Visual Studio、Vscode、Sublime、IntelliJ IDEA、Zed、Vim、QtCreator等支持插件。
  • Gradle集成可用于Android JNI项目的自动编译任务。

CI集成:

  • GitHub Actions插件便于CI流程使用Xmake。

社区与联系方式:

  • 官方网站 xmake.io,源码托管于GitHub/Gitee,交流群覆盖Reddit、Telegram、Discord、QQ等,提供邮件和微信公众号。

贡献与支持:

  • 项目由社区成员持续贡献并维护,支持开源和赞助。
11. A High-Level Technical Overview of Homomorphic Encryption (www.jeremykun.com)

同态加密技术概述

核心概念

同态加密(HE)是一种允许对加密数据直接进行计算而无需解密的技术。其核心是选择一种与加法和乘法“兼容”的加密方案:对两个密文进行同态加法,得到对应明文之和的密文;进行同态乘法,得到对应明文之积的密文。理论上,通过将程序表示为由异或门(对应加法)和与门(对应乘法)组成的布尔电路,可以实现通用计算。

主要挑战与限制

  1. 性能开销:布尔电路模拟非常缓慢,比明文计算慢数百万倍。
  2. 计算模型限制:为保证安全,程序必须计算所有可能的执行路径(如if语句的所有分支)且循环必须有静态已知的上界,无法进行依赖于数据的优化。
  3. 带宽与密文膨胀:加密会显著增加数据体积,且需要传输较大的特殊密钥。
  4. 噪声管理:同态操作会引入加密噪声。噪声累积超过阈值将导致解密失败。控制噪声是HE方案设计的核心。

加密基础:LWE与RLWE

所有现代HE方案都基于 带误差学习问题(LWE) 或其多项式环扩展 环LWE(RLWE)

  • LWE:加密消息 $m$,需要秘密向量 $s$、随机向量 $a$ 和噪声。密文为 $(a, a \cdot s + m + \text{噪声})$。解密时通过点积并舍入恢复消息。
  • RLWE:将标量运算升级为多项式运算(模 $x^N+1$),可利用数论变换(NTT)高效计算。主要优势是支持单指令多数据(SIMD) 式的消息打包,即一个密文可加密并并行处理多个消息。

噪声管理与方案分类

噪声随同态操作增长(加法略增,乘法倍增)。应对策略分为两大流派:

  1. 布尔/短整数方案(如CGGI):采用自举技术,即同态地解密并重新加密密文以“重置”噪声,支持任意深度计算。其核心是可编程自举,能在降噪的同时计算任意(查表)函数,非常适合处理位级操作和比较。但自举本身是计算瓶颈。
  2. 算术方案(如BFV, BGV, CKKS):避免昂贵的自举,通过大幅增加参数(提升噪声上限)并使用模数切换等技术管理噪声。计算限制在有限的乘法深度内,适用于大规模SIMD算术运算。

主要同态加密方案

1. BFV / BGV

  • 类型:算术方案,用于整数/定点数精确计算。
  • 特点:使用RLWE,支持消息打包。乘法操作会增加密文的“密钥次数”(如从 $s$ 变为 $s^2$),需通过重线性化(依赖密钥切换)将其降回一次,此为性能瓶颈。BGV通过模数切换有效控制噪声增长,性能对深电路更优。
  • 局限:支持的置换有限(主要是向量旋转),编程灵活性较低。

2. CKKS

  • 类型:近似算术方案。
  • 特点:将加密误差视为浮点运算的一部分,支持实数/复数运算。使用缩放操作管理噪声(类似模数切换),但会损失精度。对超越函数(通过多项式逼近)支持较好,是机器学习推理的热门选择。
  • 挑战:需同时管理加密噪声、多项式逼近误差和缩放带来的精度损失,编程和调试更复杂。

3. CGGI (TFHE/FHEW)

  • 类型:布尔/短整数方案。
  • 特点:基于LWE,自举速度快(约8毫秒)。通过可编程自举实现任意门电路、比较和查找表操作。灵活性高,适合分支多、位宽低的程序。
  • 应用:常用于需要大量比较操作或无法轻松多项式化的场景。

技术趋势与融合

  • 方案切换:允许在不同HE方案(如CGGI与CKKS/BFV)间转换密文,结合各方案优势,打破了方案间的固定选择。
  • 方案融合:BFV/BGV、CKKS等算术方案在操作和特性上趋向统一,界限日益模糊。

硬件加速

专用硬件是提升HE性能的关键方向:

  • DPRIVE计划:Intel、Duality等公司设计专用集成电路(ASIC)加速算术方案(BFV/BGV/CKKS),主要加速NTT和多项式运算。
  • FPGA实现:如FPT项目,针对CGGI方案,在FPGA上实现流水线自举,达到微秒级吞吐。
  • 其他探索:包括利用CPU的AVX指令集、GPU加速以及光学计算芯片等。

软件生态

  • 主要库OpenFHE(支持多方案及切换)、TFHE-rs(领先的CGGI实现)、Lattigo(Go语言实现)、HEaaN(CKKS实现)。
  • 编译器与工具链HEIR(目标支持多方案和后端的编译器)、Concrete/Concrete-ML(面向CGGI的编译器和机器学习库)。

当前编程挑战

  • 算术方案:需将计算表达为多项式或其逼近,处理非多项式函数(如ReLU)代价高昂,编程高度专业化。
  • 布尔方案:大位宽运算昂贵,需依赖量化减少位宽,但能更灵活地处理控制流和位操作。 总体而言,FHE编程仍处于手工优化阶段,类似于编写高度定制化的硬件内核。

结论

同态加密在实现隐私保护计算方面具有巨大潜力,但长期面临性能、可用性和编程复杂性的挑战。当前研究正通过硬件加速编译优化方案融合来突破瓶颈。随着专用硬件的成熟和工具链的完善,FHE有望在机器学习推理、隐私保护分析等特定领域率先实现规模化应用。

14. Deno KV internals: building a database for the modern web (deno.com)

Deno KV:为现代Web构建的全球分布式数据库

Deno KV 是 Deno 运行时内置的一个键值数据库,旨在简化 Web 和云开发中的持久化状态存储。它允许开发者无需预先配置即可使用,直接通过 JavaScript API 进行数据读写。

构建动机与设计目标

为了充分发挥 Deno Deploy 云平台全球分布式计算带来的低延迟优势,应用数据也必须实现全球分布。因此,Deno KV 被设计为一个能在本地单实例全球多实例场景下无缝工作的数据库,其核心设计目标包括:

  • 可扩展性:处理海量数据和高吞吐。
  • 高性能:最小化计算与数据库间的网络往返延迟。
  • JavaScript 原生:API 直接使用 JavaScript 类型(如 bigint)。
  • 原子事务:保障数据完整性,支持复杂业务逻辑。
  • 环境无缝切换:本地开发与全球部署使用同一套 API,无需修改代码。

技术架构:基于 FoundationDB 的事务层

分布式生产版本的 Deno KV 构建在开源的 FoundationDB 之上,利用了其经过验证的分布式事务键值存储能力。然而,直接使用 FoundationDB 面临挑战:多租户配置管理、对 JavaScript 原生类型(如 bigint)的原子操作支持,以及减少网络交互的设计差异。

为此,Deno 团队在 FoundationDB 之上构建了 “事务层”。该层负责分布式事务处理和跨区域数据复制,同时将分片、集群内同步复制、可串行化事务保障和持久存储等复杂任务委托给 FoundationDB。

关键创新:优化性能与并发

  1. 非交互式原子操作:为最大限度减少网络延迟,所有原子事务通过 .atomic() 链式调用,将条件检查写命令无冲突变更(如求和)封装成一个“操作包”,可在一两次网络往返内完成。
  2. 无锁并发处理:尽管 FoundationDB 本身无锁,但简单的冲突检查会导致延迟。事务层引入了三个协同组件:
    • 排序器:为每个事务分配单调递增的“事务序列号”,确定全局线性顺序。
    • 评估器:批量处理事务,构建描述操作间关系的“数据流子图”,并以最大并发度计算结果,确定事务成败与最终值。
    • 写入器:将最终结果批量提交至 FoundationDB 持久化,并处理复制日志、键过期等任务。
  3. 推测执行:为提高吞吐,事务在正式提交至 FoundationDB 之前,其结果会被暂存在内存的“交易重排序缓冲区”中,并可被后续事务推测性使用。这允许事务处理流水线高度并发,而数据一致性仍通过 FoundationDB 的版本推进机制得到保障。

结语

Deno KV 是一个为现代 Web 开发需求设计的数据库,它结合了 Deno 的无缝开发体验与 FoundationDB 的强大分布式能力。通过创新的事务层和推测执行等技术,它在保证原子性和数据一致性的前提下,追求极低的延迟和高并发性能。目前,Deno KV 已进入公开测试阶段。

16. A company is building a giant compressed-air battery in the Australian outback (www.wired.com)

压缩空气储能项目概述

Hydrostor公司正在澳大利亚内陆和美国加利福尼亚州建设大型压缩空气储能系统,旨在为电网提供长时储能解决方案。该技术利用地下岩洞储存压缩空气,通过加压和释放空气过程实现电能的存储与输出,可连续供电8小时或更长时间。

技术原理与优势

  • 系统简单性:核心组件包括地下岩洞、空气和水,设备主要来自油气行业,无需新制造技术。
  • 工作流程
    1. 储能阶段:利用可再生能源驱动压缩机,将空气压缩并送入地下洞穴(深度超过300米)。压缩产生的热量被提取并储存于地面。
    2. 释能阶段:释放储存的水将空气压回地面,空气与储存热量混合后通过涡轮机发电。
  • 经济性:项目预计寿命约50年,较锂离子电池(通常寿命较短)更具长期成本竞争力。

关键项目进展

  1. 澳大利亚银城能源储存中心(Silver City)
    • 容量:200兆瓦,可供电8小时。
    • 时间表:计划2024年底开工,2027年中投产。
  2. 加利福尼亚州柳岩能源储存中心(Willow Rock)
    • 容量:500兆瓦,可供电8小时。
    • 时间表:目标2025年底开工,2030年前投入运营。
    • 监管状态:加州能源委员会审查于2023年3月重启,预计2024年完成。
    • 成本:项目预估投资约15亿美元,与抽水蓄能等技术具备可比性。

行业背景与竞争

  • 长时储能需求:电网转型需要超过4小时的储能选项,以填补风能和太阳能发电缺口。美国能源部将长时储能视为电力系统完全脱碳的关键,目标在十年内将技术成本降低90%。
  • 市场现状:截至2023年9月,全球长时储能(不含抽水蓄能)装机容量为1.4吉瓦,储能时长平均5.9小时。Hydrostor的两个项目合计容量达0.9吉瓦,占全球现网容量一半以上。
  • 技术竞争:压缩空气储能与液流电池是近期可能快速普及的技术。Hydrostor凭借相对成熟的技术和成功的融资,在约100家相关企业中脱颖而出。

挑战与展望

  • 项目风险:从规划到落地存在不确定性,Hydrostor已因许可问题放弃加州的一个原提案。当前项目需通过社区和监管审查。
  • 政策支持:加州政府计划到2045年实现100%清洁电力,需新增4吉瓦长时储能,为项目提供需求基础。
  • 未来计划:Hydrostor希望项目建成后能推动批量开发,实现“五到十个同步项目”的规模化扩张。
17. Debian 64-bit-time transition (wiki.debian.org)

摘要:Debian 64-bit-time transition 指的是Debian操作系统向64位时间系统的过渡。文章内容以"I Challenge Thee"开头,这可能是一个挑战性声明,旨在号召用户或开发者参与该过渡的测试、讨论或实施。64位时间过渡主要目的是解决2038年问题(即32位时间戳溢出),以提高系统兼容性和长期稳定性,确保时间处理能支持更远的日期范围。

20. Show HN: I built a website to share files and messages without any server (neighbor-share.vercel.app)

NeighborHoodShare: 无服务器的本地文件与消息分享平台

NeighborHoodShare 是一个旨在无需任何服务器的情况下,实现本地文件和消息分享的创新网站。它通过安全的点对点(P2P)通信技术,允许用户与邻居安全连接并轻松共享文件,从而加强社区网络。该项目的核心理念是“放弃云,实现附近分享”,旨在革命化本地文件共享体验,提供更高效、安全的社区互动方式。

21. Judge mulls sanctions over Google's destruction of internal chats (arstechnica.com)

文章摘要:谷歌反垄断案审理关键争议:销毁证据指控与市场垄断辩论

美国联邦法官阿米特·梅塔正在考虑是否对谷歌销毁内部聊天记录的行为进行制裁。美国司法部(DOJ)和多州检察长组成的原告方指控,谷歌的即时通讯政策被故意用于“创造无可发现的信息”,以掩盖其涉嫌的反竞争行为。

案件核心争议:

  1. 证据销毁指控:原告方律师辩称,谷歌员工的证词表明,其聊天政策被系统性地用于规避证据保全义务。
  2. 垄断行为类比
    • 原告方(DOJ和州检察长)将谷歌案与微软反垄断案进行类比,认为谷歌通过与苹果、安卓厂商等签订默认搜索协议,“冻结”了搜索广告生态系统,阻止了必应等竞争对手达到构成威胁所需的“关键规模”。
    • 谷歌方则反驳称,两者情况截然不同。律师称,谷歌并未像微软当年那样“胁迫”第三方接受劣质产品或强加排他性协议,其合作伙伴(如Mozilla、三星等)均出庭作证选择谷歌是因其“最佳产品”。
  3. 谷歌的辩护:谷歌坚称其成功是基于产品优势(“赢得功绩”),若因此受到惩罚将是“史无前例的”。其律师警告法官,不应惩罚一家因产品优越而获胜的公司。

案件进展与潜在后果: 法官梅塔未立即就制裁谷歌做出表示,并允许双方在庭审结束前进行最后陈述。预计他将在夏末或初秋作出裁决。如果谷歌败诉,法院可能下令对其业务进行拆分,并对销毁证据的行为进行制裁。

(注:摘要基于原文信息,客观归纳庭审双方观点及案件关键节点。)

22. Vera Rubin's primary mirror gets its first reflective coating (www.universetoday.com)

Vera Rubin 天文台主镜完成首次反射镀膜

Vera Rubin 天文台(VRO)已为其独特的主/副镜完成首次反射镀膜,这是该天文台在首次观测(First Light)前达成的又一重要里程碑。此前,其史上最大的数码相机也已建造完成。

核心创新:主/副镜设计

望远镜的关键是其创新性的主/副镜一体化结构。该镜片整合了两种不同曲率的光学表面:

  • 主镜直径:8.4米(外表面)
  • 副镜直径:5米(内表面) 这种设计在保持强大集光能力的同时,降低了工程复杂度,并且能够快速旋转和稳定。其8.4米的主镜尺寸决定了望远镜收集光线的能力,使之能够观测到极为暗淡或遥远的天体,并能一次拍摄相当于7个满月视场的天空区域。

精密的镀膜工艺

镜面的反射与保护涂层是决定望远镜性能的关键步骤。VRO利用专门建造的128吨现场镀膜腔室,采用磁控溅射工艺进行镀膜。经过大量测试,确定了兼顾反射率与耐久性的涂层方案。镀膜结构如下:

  1. 粘合层:镍铬合金
  2. 反射层:极薄的银层(仅重64克,覆盖8.4米镜面)
  3. 第二粘合层:镍铬合金
  4. 保护层:氮化硅,用于防护反射层

高级镀膜工程师Tomislav Vucina指出,保护层的厚度需要精细平衡:既要足够厚以防清洁磨损,又不能过厚以免吸收过多光子影响科学观测需求。

项目进展与展望

整个镀膜过程仅耗时4.5小时,而主/副镜的建造则历时7年。完成后的镜面经过了反射率、附着力、针孔和外观等多项严格测试,均表明镀膜成功。

随着镜面镀膜完成并即将安装,VRO的建设已进入尾声。其主要科学项目——为期十年的“遗产巡天”(Legacy Survey of Space and Time)——即将展开。副所长Sandrine Thomas表示,镜面的综合反射性能将使Rubin能够探测极其微弱和遥远的天体,推动重大的科学发现。

23. Rusty.hpp: A Borrow Checker and Memory Ownership System for C++20 (github.com)

Rusty.hpp:为C++20模拟Rust借用检查器与内存所有权系统

核心概述

rusty.hpp是一个实验性的、仅头文件的C++库,旨在为C++20环境轻量级地模拟Rust语言的核心内存安全特性。其主要目标是通过模板和类型系统,在C++中近似实现Rust的借用检查器(Borrow Checker)所有权模型,同时引入OptionResult等常用类型。

核心模仿的Rust规则

该库试图强制执行以下Rust关键内存安全规则:

  1. 所有变量在使用前必须初始化。
  2. 同一值不能被移动(Move)两次。
  3. 值在借用(Borrow)期间不能被移动。
  4. 在可变借用(Mutable Borrow)期间,不能通过其他引用访问该值(除借用引用自身外)。
  5. 在不可变借用(Immutable Borrow)期间,不能修改该值。

当前状态与局限性

  • 实验性质:该库主要用于探索不同的编码风格和C++工作流,并非为生产环境设计。
  • 运行时检查:与Rust在编译期报告错误不同,rusty.hpp的借用错误和生命周期问题(如悬垂引用)在C++中将转换为运行时异常。但库提供了一些方法(如检查有效性)来更优雅地处理这些情况。
  • 依赖与要求:它是一个头文件库,仅依赖C++20标准库(需使用std::format、概念等特性),并需要支持C++20的编译器(如MSVC或GCC 13+)。

主要功能与组件

1. 类型代理与打印

  • 提供类似Rust风格的类型别名(如i8, u32, f64)及字面量后缀。
  • 提供printprintln函数,支持格式化输出,类似Rust的print!宏。

2. 核心:rs::Val 与借用检查

  • rs::Val<T>:是库的核心包装类型,用于管理数据的所有权、借用和生命周期。它确保所包含的值不可为空(Non-nullable)。
  • 所有权操作
    • 通过构造和移动语义转移所有权。
    • .clone() 用于复制值(要求类型支持拷贝)。
    • .drop() 用于手动销毁并使Val失效。
    • .is_valid() 用于检查Val是否有效(即未被移动或销毁)。
  • 借用操作
    • .borrow():获取不可变引用(Ref<T>)。
    • .borrow_mut():获取可变引用(RefMut<T>)。
    • 遵循Rust的借用规则:允许多个不可变借用或单个可变借用,但二者不能同时存在。违反规则会导致运行时异常。
    • 引用(Ref/RefMut)本身也是非空的,并会在被引用的对象失效后变为无效。

3. Option<T>Result<T, E>

  • 模仿Rust的枚举类型,用于更安全的值处理。
  • Option<T>:通过Some(value)None<T>()创建。提供unwrap(), is_some(), map()等方法。
  • Result<T, E>:通过Ok<T,E>(value)Err<T,E>(error)创建。提供unwrap(), map(), expect()等方法,用于处理可能失败的操作。
  • 两者都支持.as_ref().as_mut()来获取对内部值的引用。

4. 在C++中实现Traits(特征)

  • 库使用宏make_trait在C++中模拟Rust的Trait概念,作为一种替代继承的组合方式来定义共享行为。
  • 定义:通过一个仅作为类型标签的结构体和make_trait宏来声明一个Trait(如Shape)及它要求实现的方法(如draw, area)。
  • 实现:任何结构体只要实现了Trait要求的方法,即被认为实现了该Trait。
  • 使用:通过trait<TraitName>::make(&object)创建一个Trait视图,该视图不拥有对象,仅提供类型安全的接口调用。这提供了编译时安全性和模块化。

使用方式

开发者只需将rusty.hpp头文件包含到支持C++20的项目中即可使用。库完全基于模板,无其他外部依赖。

24. Tell HN: A note of gratitude to the people providing answers over here
25. They Live (en.wikipedia.org)

《极度空间》电影概述

基本信息

项目 内容
导演/编剧 约翰·卡彭特
主演 罗迪·派珀、基思·大卫、梅格·福斯特
类型 科幻、动作、恐怖
上映日期 1988年11月4日
时长 94分钟
预算 约400万美元
票房(北美) 1340万美元

剧情简介

影片设定在洛杉矶,流浪工人“纳达”发现统治阶级其实是伪装成人类的外星人。他戴上一副特殊太阳镜后,能看穿外星人的真面目、媒体中的潜意识消费宣传以及隐藏在广告中的控制信息。纳达与工友弗兰克联手加入人类抵抗组织,最终摧毁了外星人用以屏蔽真相的信号发射器,让全世界看到了外星人入侵的事实。

主题与灵感

  • 政治批判:导演卡彭特表示,影片灵感源于他对里根经济学和日益商业化的流行文化与政治的不满。电影中的外星人象征着不受约束的资本主义精英。
  • 原著改编:基于雷·尼尔森1963年的短篇小说《早晨八点》改编,但融入了卡彭特的原创政治隐喻。
  • 视觉隐喻:太阳镜是“意识形态批判”的工具,能揭露表面自由下的隐秘控制体系。

制作特点

  • 选角:主角纳达选用了非传统演员、职业摔跤手罗迪·派珀,以突出“普通人”形象。
  • 经典打斗:纳达与弗兰克在巷子中长达五分钟的打斗场景成为影史经典,耗时一个月编排、三天拍摄。
  • 音乐与风格:配乐由卡彭特与艾伦·霍华思创作,影片融合了黑色幽默、科幻设定和社会讽刺。

评价与影响

  • 初期反响:上映时评论褒贬不一,但票房成功,首周登顶北美榜首。
  • 邪典经典地位:后逐渐获得 cult 追捧,被评为卡彭特最佳作品之一。烂番茄新鲜度86%。
  • 文化影响
    • 艺术家谢帕德·费瑞的“Obey”标志直接受影片启发。
    • 经典台词“我来这里是为了嚼口香糖和踢屁股,而我的口香糖已经用完了”成为流行文化名句。
    • 影响众多影视游戏作品,如《南方公园》《圣徒行者4》等。
    • 2012年哲学家斯拉沃热·齐泽克在纪录片中以该片为例分析意识形态。
  • 奖项:曾获土星奖最佳科幻电影提名。

后续发展

卡彭特曾表达拍摄续集的意愿但未能实现。2010年后曾有重制计划,但后来转变为对原作的重新改编。2023年制片人暗示可能开发新形式的故事扩展。2024年导演简·顺伯仁探讨了反向设定的重拍构想(即外星人已胜利,人类适应控制)。

总结

《极度空间》以科幻类型为载体,通过外星人入侵的设定,犀利讽刺了资本主义社会的媒体操控与阶级压迫,从最初的争议作品逐步升华为具有持久影响力的文化符号。

26. Time-Based CSS Animations (yuanchuan.dev)

基于时间的 CSS 动画技术

核心概念

传统 CSS 动画依赖关键帧(keyframes),本文探讨了利用 CSS 数学函数时间变量 实现动画的新方法。由于 CSS 早前缺乏复杂数学计算能力,此方法曾受限,但现在随着 mod()round() 及三角函数等的支持,基于时间的动画变得更加实用。

实现原理

  • 通过 @property 定义一个自定义时间变量 --t(单位:毫秒),并利用 @keyframes 使其无限递增,模拟计时器。
  • 使用 calc() 结合 --t 计算动画值,例如通过 calc(var(--t) * .001turn) 实现每秒旋转一圈。
  • 可通过 counter() 函数显示时间值。

帧率控制

浏览器默认渲染优化通常足够流畅,但可使用 animation-timing-function: step(...) 手动控制帧率(如 8fps、24fps、60fps)。

时间值转换技巧

  • min() 函数:限制动画值的上限,实现动画在达到特定值时停止(如平移至 270px 后停止)。
  • mod() 函数:实现循环动画(如平移后重置起点)。
  • sin() 函数:创建往复运动效果。

自定义缓动函数

利用数学函数可创建传统 cubic-bezier() 难以实现的缓动效果:

  • ease-out-cubic:将 --t 映射到 0-1 范围后,应用 1 - pow(1 - t, 3) 公式。
  • ease-out-elastic:结合 pow()sin() 实现弹性缓动。

CSS Doodle 扩展

在 CSS Doodle 环境中,可用简化的 @t() 函数代表 --t,直接使用数学表达式,提升代码可读性。同时提供了 @T(基于一天时间的变量)和 @TS(基于秒的变量)等函数,方便实现时钟等效果。

应用示例

  • 跳秒针效果:结合 round() 函数,使秒针每步精确跳跃 6 度。
  • 颜色与位置同步动画:利用时间变量驱动多个属性变化。
  • 文本颜色动画:通过三角函数控制颜色变化。

总结

基于时间的 CSS 动画方法为复杂数学计算和动态输入变量的场景提供了灵活性和多样性,但关键帧动画仍更直观。此技术扩展了 CSS 动画的可能性,尤其适合创意编码和实验性项目。

27. SEQUOIA: Exact Llama2-70B on an RTX4090 with half-second per-token latency (infini-ai-lab.github.io)

SEQUOIA:使用RTX 4090实现精确Llama2-70B推理,每个token延迟仅半秒

SEQUOIA 是一个可扩展、稳健且硬件感知的投机解码框架。它允许在消费级GPU(如RTX 4090、2080 Ti)上,以原始16位精度无任何近似地服务大型语言模型(如Llama2-70B),并实现合理的推理延迟。

核心性能与优势

  • 极致速度提升:在单张RTX 4090上,服务Llama2-70B的平均每token时间(TBT)可低至0.57秒,相比高度优化的卸载服务系统快8倍,比DeepSpeed-Zero Offloading快9倍
  • 广泛适用性:在多种模型尺寸(从70B到13B)和硬件平台(包括4090、2080 Ti、A100)上均展示了显著加速。例如,在仅有11GB显存的2080 Ti上,可实现Vicuna-33B的TBT为0.87秒
  • 技术关键点
    1. 高扩展性:采用动态规划算法搜索最优的投机树结构,使其在大的投机预算下能快速增加接受的token数量。
    2. 强鲁棒性:采用无放回采样算法,确保在不同生成温度下均能保持高接受率,优于传统的Top-k采样或有放回采样方法。
    3. 硬件感知:能够根据目标硬件(不同GPU、CPU内存及带宽)的特点,自适应地调整投机树的大小和深度。

应用与前景

SEQUOIA使得利用成本较低的消费级GPU运行70B等超大参数模型成为可能,降低了强大AI应用的门槛。该框架通过弥合内存层次结构的差距,适用于任何草稿/目标模型对及AI加速器,并且其性能随着硬件计算/带宽比的提升而扩展,预示着在未来的硬件上将具备更强的性能潜力。

28. Small Things (rishad.substack.com)

文章《Small Things》摘要

本文通过多个生活与商业实例,反复论证**“小事至关重要”**这一核心观点,强调细节对品牌体验、服务感受和人际关系的深远影响。

1. 品牌互动中的小事退化

作者以州立农业保险公司为例,指出其每半年寄送的保险卡质量持续下降(从塑料卡到薄纸需自剪),而保费却不断上涨。尽管这是品牌与客户之间每年仅有的两次正式接触点,但公司选择以低成本、无个性化的物料对待,反映出优化成本的短视。作者认为,在营销投入(如广告)与客户体验的现有接触点之间,品牌应重新权衡资源分配。

2. 服务体验中的细节差异

乘坐新加坡航空与联合航空的经历形成鲜明对比:两者硬件相似,但新加坡航空通过员工记住乘客姓名、真诚微笑、热毛巾、精致的餐具与护理包等细节,营造了截然不同的高端体验。这说明在提供相同基础服务时,小额投入于人性化细节能带来质的提升,而微笑等软性服务成本很低却效果显著。

3. 人际关系中的关键时刻

作者提到,在职业低谷期主动联系或回应求助者(即使对方已无权势或品牌光环),这样的“小事”会让人永远铭记。这些人日后成功后,也更愿意帮助他人。这表明,在他人最不被关注时给予重视,会产生深刻而持久的影响。

4. 市场营销中的策略反思

传统营销关注客户旅程中的“高关注时刻”(如出生、搬迁),但这些时刻已逐渐同质化且成本高昂。作者建议,品牌应转向创造积极的惊喜时刻,例如:

  • 将预算用于提升产品或服务本身,让用户成为自发传播者;
  • 奖励忠诚客户(如主动为其降价或升级服务),而非只在用户流失时提供优惠。 核心是:在客户最意想不到的时刻给予惊喜,其效果远超常规营销。稀缺性和特殊性能在信息过载的时代脱颖而出。

总结

小事之所以重要,是因为它们构成了品牌与客户、人与人之间最真实的接触点。优化细节、在关键时刻给予关注、创造意外惊喜,这些“小事”能以较低成本产生深远影响,积累信任与忠诚。在追求效率和规模的同时,绝不能忽视那些塑造体验的细微之处

29. Dick Rutan, pilot of the first nonstop around-the-world flight, has died (www.independent.co.uk)

迪克·鲁坦(Dick Rutan),著名的飞行员与越战老兵,于科达伦(爱达荷州)医院逝世,享年85岁。鲁坦以和女飞行员吉娜·耶格尔(Jeana Yeager)驾驶“航行者”(Voyager)飞机完成全球首个不着陆、不加油的环绕世界飞行创举而闻名。该项壮举于1986年12月14日从加州爱德华兹空军基地出发,持续九天三分钟,最终安全返回,受到数千人热烈欢迎。美国总统里根授予两位鲁坦兄弟及耶格尔总统公民奖章。

航行者项目历时六年实现,由迪克的弟弟伯特·鲁坦(Burt Rutan)设计,是一架轻质石墨材料飞机。起飞前因油量巨大导致机翼几乎擦地,引发伯特的担忧,但得益于迪克流畅精准的飞行技术,飞机顺利起飞。测试阶段曾经历机械故障、飞机装满燃油难以应对乱流,以及长时间飞行下的体能与心理考验,迪克始终保持积极乐观,增强了团队信心。

迪克·鲁坦出生于加州洛马琳达,少年时期加入美国空军,越战期间执行300余次作战任务,是精英“Misty”部队成员,因在敌区上空长时间侦察敌防空阵地而知名。服役期间两次跳伞自救,曾获银星勋章与紫心勋章,最终以中校军衔退役,并成为实验飞行员。退役后,他继续冒险,包括在北极因俄制双翼机陷入冰面而被困数日。

除航行者创举外,2005年他也驾驶地面发射火箭动力飞机飞行约16公里,创下由此类飞机传送美国邮件的纪录。作为航空史上多项重大成就的创造者,同事与友人评价其富有冒险精神、乐观,飞行技术卓越,被誉为“最伟大的飞行员”。

迪克·鲁坦离世时神志清晰,态度豁达幽默。他的家人包括结婚25年的妻子克丽斯·鲁坦,两位女儿和四名孙辈。

30. Superfest – The almost unbreakable East German Glass (2021) (digitalcosmonaut.com)

Superfest – 几乎不可打破的东德玻璃(2021)

本文通过作者偶然发现东德实验室烧杯的经历,引出了对东德时期一种名为“Superfest”(超硬)的特殊玻璃的探索。这种玻璃以其非凡的耐用性而著称,其故事反映了东德的创新精神、资源节约理念,以及德国统一后传统工业产品在市场经济下的命运。

背景:东德怀旧与资本主义

作者在商店看到标价10欧元、印有埃里希·昂纳克头像的“民主德国制造”实验室烧杯,认为这主要是针对游客的东德怀旧商品。经调查发现,这些烧杯由硼硅酸盐玻璃(即耐热玻璃)制成,在民主德国被称为“耶拿玻璃”,是国际知名的“Pyrex”玻璃的同类产品。

创新:需求驱动的技术突破

Superfest玻璃的诞生源于东德的两大特点:节约有限资源的理念对技术进步的追求。面对酒吧和餐厅玻璃器皿频繁破损的共同问题,东德制定了一套玻璃工业发展方针,旨在自给自足、延长产品寿命以节省能源和材料,并通过新技术提升国际声誉。

核心技术:Ceverit玻璃的成功

柏林阿德勒斯霍夫的中央无机化学研究所自20世纪60年代末开始研究玻璃硬化,特别是离子交换工艺。相关专利最初授予了伊尔默瑙的技术玻璃联合企业。1973年,迪特尔·帕茨格博士等人在巴德穆斯考进一步推进研究。

1977年,团队取得突破,开发并专利化了一种使薄壁玻璃抗碎能力提高至少5倍的化学工艺,生产出“Ceverit玻璃”(化学硬化玻璃)。其生产过程包括:

  1. 常规机器成型、冷却和打磨。
  2. 将玻璃加热至420摄氏度。
  3. 喷涂特制的氯化钾溶液,使钾离子渗入玻璃表面,填充生产过程中产生的微裂纹(离子交换过程)。 这种玻璃的独特性质是掉落后会弹跳,给人第二次接住的机会。

设计:成为设计标志

与此同时,保罗·比特纳领导的集体设计团队致力于开发一款通用、轻便、节省空间且极其耐用的玻璃。1978年,他们通过专利方法在制造过程中引入特殊盐分,在减少重量的同时增强了耐用性。其设计以优异的可堆叠性闻名(得名“stapelglas”),并于1980年获得了民主德国的“优良设计”奖。

生产与命名

1980年4月,在施韦普尼茨的玻璃生产厂开始大规模生产Ceverit玻璃。在正式投产前,产品名称被改为更直观的“Superfest”(超硬),因为“Ceverit”一词的拉丁语词根“cevere”有不当含义。在随后的十年里,生产了约1.1亿只各种规格的Superfest玻璃,从烈酒杯到半升啤酒杯。

命运:资本主义不需要耐久性

尽管在东德市场成功,施韦普尼茨工厂于1990年7月1日关闭。德国统一后,工厂被出售并拆解,因为没有制造商对这项技术或会减缓销售速度的超耐用品感兴趣。作者认为,Superfest这样的产品可能只能在注重计划而非人为淘汰的社会主义体系下诞生。这是德国统一众多“小悲剧”之一。

结语

虽然Superfest玻璃比普通玻璃耐用得多,但一旦破裂,会碎成无数细小碎片,难以清理。作者建议避免摔落。如今,这种玻璃仍可在网络或跳蚤市场以合理价格购得,但存量有限。

31. Verified Rust for low-level systems code (github.com)

Verus 是一个用于验证 Rust 代码正确性的工具。开发者为其代码编写规范(specifications),Verus 会静态检查可执行的 Rust 代码在所有可能执行下是否始终满足这些规范。它不依赖运行时检查,而是使用强大的求解器(solvers)来证明代码的正确性。Verus 目前支持 Rust 的一个子集(正在扩展中),在某些情况下允许开发者超越标准 Rust 类型系统,静态检查例如操作原始指针(raw pointers)的代码。

当前状态 Verus 仍处于积极开发阶段。功能可能损坏或缺失,文档尚不完整。如需试用,请准备在 Zulip 💬 中寻求帮助。Verus 社区已发表多篇研究论文,并有多种工业和学术项目正在使用 Verus。

试用方式 可在浏览器中通过 Verus Playground 试用。如需更深入开发,请按照安装说明操作。文档资源包括教程、参考指南、API 文档以及并发代码验证指南。还提供自动格式化工具 verusfmt

示例与资源 提供多种学习资源:

  • 使用 Verus 的出版物和项目列表。
  • 长达一天的 Verus 教程的视频、幻灯片和练习。
  • 针对小型具体任务的独立示例。
  • 说明各种 Verus 特性的中小型示例。
  • 包含 Verus 语法和功能示例的单元测试。

交流与贡献 可通过 GitHub 报告问题或发起讨论,或加入 Zulip 进行实时交流。欢迎贡献代码,请参考贡献指南。