2024-05-01

33 篇热帖

1. US drug control agency will move to reclassify marijuana (apnews.com)

美国缉毒局将提议重新分类大麻

美国缉毒局将提议将大麻重新归类为危险性较低的药物,这是一项历史性举措,将改变美国数十年来的毒品政策,并可能在全国产生广泛影响。

核心提议与现状 该提议旨在将大麻从目前的一类管制药物(与海洛因、LSD并列)重新分类为三类管制药物(与氯胺酮和一些合成代谢类固醇并列)。这一分类承认了大麻的医疗用途,并认定其滥用潜力低于最危险的毒品,但不会直接将娱乐用途的大麻合法化

背景与推动因素 此举是在拜登总统的推动下进行的。拜登于2022年10月要求审查联邦大麻法律,并赦免了数千名因简单持有大麻而被定罪的美国人。他认为,因大麻使用和持有而产生的犯罪记录给就业、住房和教育机会制造了不必要的障碍。分析认为,这一选举年的宣布可能有助于拜登争取支持,尤其是年轻选民的支持。民调显示,目前约70%的美国成年人支持大麻合法化。

后续流程与支持 该提议仍需经过以下程序:

  1. 由白宫管理和预算办公室审查。
  2. 获得批准后,缉毒局将就重新分类计划公开征求公众意见。
  3. 经行政法官审查后,机构将发布最终规则。美国司法部长梅里克·加兰已签署该提案,显示了其重要性。

潜在影响

  • 行业影响:重新分类可以为大麻行业大幅降低目前高达70%以上的税负,并使相关科学研究变得更加容易。美国大麻产业估值近300亿美元。
  • 刑事司法:对联邦刑事司法系统的直接影响可能较为有限,因为近年来联邦层面简单持有大麻的起诉相当罕见。
  • 批评与顾虑
    • 部分批评者认为大麻仍是“入门毒品”,重新分类可能导致有害的副作用。
    • 作为三类管制药物,大麻仍将受到缉毒局的监管。这意味着美国约15,000家大麻药房需要像普通药房一样在缉毒局注册并遵守严格的报告要求,这可能带来执行上的挑战。
    • 美国还面临《1961年麻醉品单一公约》等国际条约义务,该公约要求将大麻定为犯罪。

政治反应 参议院多数党领袖查克·舒默等进步派人士认为这是“历史性一步”,但仍致力于推动立法,将大麻从《管制物质法》中完全移除,以结束联邦禁令并解决“毒品战争”造成的长期损害。目前,美国已有38个州将医用大麻合法化,24个州将其娱乐用途合法化。

2. Ask HN: Who is hiring? (May 2024)
4. Printing Music with CSS Grid (cruncher.ch)

本文介绍了如何使用CSS Grid实现网页上的流动、响应式音乐打印,以解决音乐人在演出时用手机查看乐谱的不便。作者提出音乐符号布局可借鉴Grid的特性,将传统乐谱的二维空间(音高与时间)映射为CSS网格的两轴:纵轴为音高,横轴为节拍。

基本思路与实现结构

  1. 音高轴(.stave类)

    • 使用CSS Grid布局,grid-template-rows按标准音高命名(如C4, G5等),每行高度固定。背景为乐谱五线谱SVG图片,确保符号准确定位。
    • 通过data-pitch属性与对应CSS规则,将符号放到正确的行(如data-pitch="G4"放到G4行上)。
  2. 时间轴(.bar类)

    • grid-template-columns定义每小节的格子数,如每拍24列,便于精确控制不同节奏划分。
    • 利用data-beat属性与CSS规则(例如.data-beat^="1.08"对应第4列),将符号精确放置到对应拍的位置。
  3. 音符及符号定位

    • 结合上述两个轴,SVG音符通过data-pitch(音高)和data-beat(节拍)属性实现精准定位。如
      ...
      内多个SVG,用不同属性定位音符、休止符、装饰符、谱号等。
  4. 响应式/可扩展设计

    • 多小节乐谱可用flex容器排列,使在不同屏幕下自然换行,达到流动显示效果。
    • 控制符号间距通过调整column-gap(拍间距)和margin(音符自身间距),既实现谱面节奏感,又保证可读性。
    • 编写不同stave类(如bass-stave、drums-stave等)可适配不同谱号或打击乐,映射音高到正确位置。
    • 时间签名、时值变化通过data-duration属性和CSS规则实现小节宽度调整,支持复杂节拍和和弦/歌词对齐。

功能拓展与技术细节

  • 复杂符号(如连线、八分音符及三连音梁线等)需span多个grid-column,借助data-duration属性用CSS span规则完成。
  • 整套系统按em单位布局,可通过调整font-size适配不同显示尺寸。
  • 某些复杂布局(如新行自动添加谱号、跨行连线、斜梁线精确定位)CSS难以实现,需要JavaScript辅助实现。

自定义元素

  • 最新的Scribe实现为自定义元素,可直接嵌入网页,自动渲染乐谱。
  • 支持插入文本格式、JSON格式数据,或JS对象,不同属性控制谱号、类型、时值等,示例代码和文档提供具体用法。
  • 可通过引入官方CSS/JS模块直接体验开发版本,已支持响应式引导谱与打击乐谱。
  • 支持未来扩展:SMuFL符号字体、嵌套乐句、多声部显示、多行对齐,部分功能已半实现。
  • Dolphin Dance的谱例以数组形式展示,可自动转换为乐谱渲染显示。

技术优势与限制

  • CSS Grid极大简化了音乐符号定位、节奏对齐、谱面布局,提升了网页乐谱的可响应性和可维护性。
  • 缺点:部分自动化(如新行谱号、梁线斜角)需JS补充,CSS本身无法完全解决所有乐谱复杂性。
  • 总体实现远超传统在线音乐显示方式,为网络乐谱打下高扩展性、灵活性的基础。

联系方式与参与

  • 作者开源Scribe项目,欢迎反馈建议或参与开发。通过Bluesky、Mastodon、Twitter可联系,或访问项目仓库加入。
6. The Nature of Code (2nd Edition) (natureofcode.com)

《代码本色(第二版)》摘要

本书定位与目标

本书是一本基于JavaScript和p5.js库的创意编程书籍,旨在通过代码模拟自然界中的物理现象、生命行为和智能算法。它源于作者在纽约大学ITP/IMA学院教授的“代码本色”课程,是《学习Processing》的进阶读物。

本书既非严格的科学著作,也非纯粹的艺术指南,而是一本专注于算法和编程技术实现的传统编程教科书。其核心目标是:选取自然与数学中所需的部分,通过代码构建对自然的软件诠释。

技术栈与要求

  • 核心工具:使用p5.js库,因为它免费、开源、适合初学者,且基于JavaScript可在浏览器中直接运行。
  • 开放性:书的内容并不严格绑定p5.js,可移植到其他创意编码环境(如原生JavaScript、Java、openFrameworks等)。
  • 预备知识:读者应具备至少一个学期的编程基础(推荐p5.js或Processing),熟悉变量、条件、循环、函数、对象和数组等概念。面向对象编程经验尤为重要

书籍结构与内容

本书内容围绕一个叙事线索展开,分为三大部分:

第一部分:无生命物体

从基础运动出发,逐步构建模拟物体运动的物理引擎:

  • 第0-1章:介绍随机性与向量,奠定运动编程基础。
  • 第2-3章:学习力、牛顿运动定律、角度与振荡。
  • 第4章:通过粒子系统学习继承与多态,并管理大量物体。

第二部分:赋予生命

为物体添加感知环境与决策的能力:

  • 第5章:学习自主代理,模拟具有欲望和恐惧的生命体。
  • 第6章:引入Matter.js和Toxiclibs.js等物理库模拟复杂行为。
  • 第7-8章:探索复杂系统,如细胞自动机与分形几何。

第三部分:智能

在模拟中引入学习和进化机制:

  • 第9章:遗传算法,进化自主代理的行为。
  • 第10-11章:人工神经网络与神经进化,使代理能够学习和适应环境。

出版、格式与资源

  • 出版格式:利用Magic Book开源框架,支持从单一源文件生成多种格式(网页、PDF、Kindle、纸质书等)。
  • 代码示例:所有示例在p5.js 1.9.0下测试,完整代码可在书籍网站GitHub仓库获取,并提供在线p5.js编辑器版本。
  • 配套视频:作者拥有名为“Coding Train”的YouTube频道,提供配套教学视频,并逐步发布与本书对应的更新系列。
  • 补充学习:推荐《The Computational Beauty of Nature》及“That Creative Code Page”等外部资源。

教学与使用建议

  • 作为教材:本书设计为14周课程大纲,每周内容从基础运动(第0-1章)逐步进阶到神经网络与最终项目(第10-11章)。
  • 代码阅读:书中代码以多种样式呈现,包括完整示例、上下文代码片段、节选代码等,注释与代码对应排列。
  • 实践练习:每章包含练习题,从技术挑战到开放探索均有涵盖。练习答案在网站提供(部分可由社区补充)。
  • 生态系统项目:贯穿全书的综合实践项目,模拟一个科学博物馆的“数字生态系统”,将各章知识整合到一个程序中。
  • 社区互动:鼓励读者在Processing论坛、Coding Train Discord服务器、GitHub或社交媒体上交流、反馈并展示作品。
7. The Rabbit R1 is probably running Android and is powered by an Android app (www.androidauthority.com)

核心发现: Rabbit R1这款AI手持设备,在底层很可能运行的是Android系统,并且其用户界面完全由一个Android应用驱动。

详细背景与争议:

  1. 产品定位与批评:Rabbit R1被宣传为AI伴侣,但众多科技评论者认为其实用性有限,未能超越智能手机,更像一个本应免费或廉价的应用,却以昂贵硬件的形式销售,且需要额外数据套餐,续航也较差。
  2. 关键发现:技术媒体Android Authority获得了一个疑似R1的启动器APK。他们将该APK安装到一台谷歌Pixel 6a安卓手机上后,手机界面被成功改造为R1的操作界面。通过模拟R1的物理按键(手机音量键),他们能够完成设备的初始设置流程、创建账户并与AI助手对话。
  3. 技术分析:尽管由于缺少系统级权限,部分高级功能(如Spotify集成、视觉功能)可能无法正常工作,但核心应用能在普通安卓手机上运行这一事实,证实了该设备的本质。这印证了许多这类硬件产品的核心是经过修改的AOSP(Android开源项目)系统。

公司回应: 针对报道,Rabbit公司CEO Jesse Lyu发表声明,否认R1是Android应用。其主要论点为:

  • R1的操作系统(rabbit OS)及LAM(大型动作模型)运行在云端。
  • 系统基于定制的AOSP和底层固件修改,并非一个简单的本地应用。
  • 未经授权的盗版应用或网站模拟器无法接入其服务,且存在数据安全风险,公司不支持第三方客户端。

总结观点: 综合来看,证据强烈指向Rabbit R1的硬件界面层由一个Android应用实现,而该公司则强调其核心AI服务与云端深度集成,并非简单的应用套壳。此次事件引发了关于AI硬件设备价值与形态的讨论:如果其核心功能可由一个智能手机应用实现,那么制造独立硬件的必要性便受到质疑。

8. StoryDiffusion: Long-range image and video generation (storydiffusion.github.io)

StoryDiffusion: 长距离图像与视频生成系统摘要

核心目的

StoryDiffusion 是一个用于生成长距离图像和视频的系统,旨在创建连贯的“魔法故事”内容,适用于各种视觉叙事场景。

主要功能

  • 漫画生成:通过提出的 consistent self-attention 技术,创建不同风格的漫画,保持角色风格和服装的一致性,确保故事连贯性。
  • 卡通角色生成:能够生成一致且令人印象深刻的卡通风格角色,适用于动画或插图应用。
  • 多角色生成:支持同时维护多个角色的身份,在一系列图像中生成一致的角色外观,适用于复杂叙事场景。
  • 扩展示例:系统可创建多样化的漫画内容,并计划添加更多示例以展示其能力,如示例“Girl and Squirrel”。

技术方法

  • Consistent Self-Attention 结构:一种注意力机制,用于确保图像序列中角色和风格的视觉一致性,是系统实现长距离生成的核心。
  • Motion Predictor 结构:预测运动信息,以支持视频生成,增强时间连贯性。

应用与演示

  • 系统通过演示视频展示其生成长距离图像和视频的能力,强调在故事叙述中的实用性和创造性。
  • 实际应用包括漫画创作、卡通设计以及多角色序列生成,为用户提供一致且高质量的视觉输出。
9. The File Filesystem (2021) (mgree.github.io)

The File Filesystem(ffs)是一个将半结构化数据(如JSON、YAML、TOML等)挂载为文件系统的工具,使用户能用熟悉的Unix shell和相关文件操作工具直接编辑这些现代数据格式。传统shell主要适合处理字符串和文件系统,不便于操作如JSON这样的树状数据结构;而ffs将这些数据结构“虚拟化”为文件系统,使数据的各个字段变为目录或文件,允许用户用cp、mv、cat、echo、mkdir等命令随心编辑,并自动转换为对应的结构化数据。

主要功能与用法:

  • 支持挂载JSON、YAML、TOML文件为目录结构,可在挂载点进行编辑,未挂载点中字段表现为文件或目录。
  • 挂载后修改内容、添加字段或对象、创建嵌套结构、删除字段均如对真实文件操作。例如,通过echo修改字符串字段,通过mkdir添加对象,touch设为空值等。
  • 编辑完成后卸载挂载点,内容自动写回原始或指定输出文件(ffs可指定挂载点-m,指定输出文件-o,原地编辑-i)。
  • 文件编辑支持类型自动转换,如写入数字变为数字字段,创建目录变为嵌套对象。
  • 可用于shell脚本自动化处理和快速编辑复杂结构数据,无需学习额外命令或语言。
  • 当前支持Linux(需FUSE)和macOS(需macFUSE),可下载最新二进制文件,或从源码编译,当前版本为0.1.2。
  • ffs适合对结构化数据进行编辑和处理(尤其是需要频繁编辑、嵌套复杂的场景),但不适合只查询数据、文件非常大、或无法使用FUSE/Windows系统。

工具对比与特色:

  • 与jq、gron等命令行JSON处理工具相比,ffs不需新语法,直接用shell和文件操作。
  • 优势在于支持多种格式、无需学习新语言、完全嵌入shell生态。
  • 局限包括仅支持类Unix系统、依赖FUSE、编辑大文件性能受限、非编辑场景时功能有限。

授权信息:

  • ffs遵循GPLv3开源许可。

相关资源:

  • 有论文介绍(PLOS 2021: "Files-as-Filesystems for POSIX Shell Data Processing")、演示和解说视频。
  • 发布页提供最新版下载。

示例操作摘要:

  1. 挂载JSON文件后,数据字段变为目录/文件结构,可以直接编辑、增加、删除内容。
  2. 编辑完成后卸载自动生成结构化文件,支持原地修改和输出到新文件。
  3. 支持嵌套对象、类型自动识别(如数字、布尔、null等)、空值处理。
10. Fast, simple, hard real time allocator for Rust (github.com)

Fast, simple, hard real time allocator for Rust

概述

这是Sebastian Aaltonen的C++ OffsetAllocator包到100%安全Rust的移植版本。它是一个快速、简单、硬实时的内存分配器,特别适用于管理GPU资源,目标是集成到Bevy引擎中。

移植过程尽量遵循了Rust的习惯,但基本是逐行对应,保留了注释,以便于将原始OffsetAllocator的补丁直接应用到Rust版本。

请注意,offset-allocator并非一个符合Rust GlobalAlloc 特性的分配器,不能用作系统分配器、jemalloc等的直接替代品。该算法理论上可以用于构建标准Rust分配器,但这超出了本项目的范围。这种设计是有意为之,使其能够管理不仅仅是CPU内存的资源,特别是可用于分配GPU缓冲区内的空间。相比之下,Rust分配器被绑定到CPU,无法用于管理GPU资源。

描述

该分配器对分配的对象完全不可知,它只知道一个特定大小的连续内存块。该大小不必是字节为单位:这在分配固定大小结构的缓冲区时特别有用。例如,如果用此分配器来划分一个GPU索引缓冲区对象,可以将分配单位视为32位浮点数。

核心特性(源自原README):

  • 快速硬实时、时间复杂度为O(1)的偏移量分配器,碎片化程度低。
  • 使用256个分箱(bins)和8位浮点分布(3位尾数 + 5位指数)以及两级位域,通过2次LZCNT指令找到下一个可用分箱,使所有操作均为O(1)。遵循浮点分布的分箱大小确保了无论大小类别如何,内存开销百分比都有硬性上限。2的幂次分箱可能会浪费高达+100%的内存(平均+50%)。而该浮点分箱最多浪费+12.5%(平均+6.25%)。
  • 分配的元数据存储在单独的数据结构中,使得该分配器适用于对任何资源进行子分配,例如GPU堆、缓冲区和数组。它返回已分配连续区域第一个元素的偏移量。

参考资料

此分配器类似于两级分离适配(TLSF)算法。一篇比较论文显示,TLSF算法在性能和碎片化方面提供了同类最佳表现。

作者

  • C++版本:Sebastian Aaltonen
  • Rust移植版:Patrick Walton, @pcwalton

许可证

基于MIT许可证授权。

行为准则

offset-allocator遵循与Rust本身相同的行为准则。

11. A Mathematical Theory of Communication [pdf] (people.math.harvard.edu)

克劳德·香农的《通信的数学理论》一文奠定了信息论的基础。其核心内容如下:

一、 通信系统的基本框架 文章将通信系统抽象为五个部分:产生消息的信源、将消息转换为信号的发射器、传输信号的信道、从信号中恢复消息的接收器,以及消息的目的地。通信的根本问题是在一点精确或近似地再现另一点选择的消息。

二、 信息的度量与熵 香农采用对数函数来衡量信息量,其单位为“比特”。他将信息的数学度量与统计力学中的概念相结合,定义了概率分布 ({p_i}) 的熵为 (H = -\sum p_i \log p_i)。熵衡量了不确定性或选择的自由度。对于离散信源,若信源处于状态 (i) 时产生符号 (j) 的概率为 (p_i(j)),且处于状态 (i) 的概率为 (P_i),则信源的熵为 (H = -\sum_{i,j} P_i p_i(j) \log p_i(j)),即每个符号所产生的平均信息量。

三、 离散无噪声系统 香农定义了离散信道的容量 (C = \lim_{T \to \infty} \frac{\log N(T)}{T}),其中 (N(T)) 是持续时间为 (T) 的允许信号数量。他证明了无噪声编码定理:一个熵为 (H) 比特/符号的信源,可以通过适当编码,以接近 (C/H) 符号/秒的平均速率在容量为 (C) 比特/秒的信道上无差错地传输信息。

四、 离散噪声信道 对于存在噪声的信道,香农引入了条件熵含糊度)(H_y(x)),表示在已知接收信号 (y) 时,对发送信号 (x) 的不确定性的度量。实际信息传输速率 (R = H(x) - H_y(x))。信道容量 (C) 被定义为在所有可能输入信源下 (R) 的最大值。

香农的核心定理——噪声信道编码定理表明:只要信息传输速率 (H) 小于信道容量 (C),就存在编码方式,使得信息可以在该噪声信道上以任意小的错误率传输。若 (H > C),则不可能以低于 (H - C + \epsilon) 的含糊度进行传输。

五、 连续信道 对于信号和噪声都是连续函数的信道(如电话、无线电),香农将理论进行了推广。一个重要的结果是:对于带宽为 (W)、信号平均功率限制为 (P)、受平均功率为 (N) 的高斯白噪声干扰的信道,其信道容量为: [ C = W \log\left(1 + \frac{P}{N}\right) ] 这是通信工程中一个极为著名的公式。文章还讨论了非白噪声、峰值功率限制等情况下的容量界限。

六、 连续信源的速率与保真度 对于连续信源(如语音),精确再现需要无限容量。因此,香农引入了保真度评估函数来衡量恢复信号与原始信号的“距离”。在给定平均保真度要求下,他定义了信源产生信息的速率 (R_1)。信源-信道编码定理指出:若 (R_1 \le C),则存在编码方案使得通过容量为 (C) 的信道传输时,可以达到要求的保真度。

总结 香农的这篇论文通过引入熵、信道容量等关键概念,为信息的存储、处理和传输建立了严格的数学理论,指出了通信系统性能的理论极限,并证明了通过合适的编码可以无限逼近该极限,从而开创了信息论这一全新的学科领域。

12. Kolmogorov-Arnold Networks (github.com)

Kolmogorov-Arnold Networks (KANs) 概述

Kolmogorov-Arnold Networks (KANs) 是一种作为多层感知机(MLPs)潜在替代方案的神经网络架构。其数学基础基于Kolmogorov-Arnold表示定理,与基于万能近似定理的MLPs形成对偶。两者的核心区别在于:KANs的激活函数位于网络的边上(权重),而MLPs的激活函数位于节点上。这一设计使得KANs在模型准确性和可解释性方面通常优于MLPs。

核心特性与安装

  • 架构对偶:KANs将可学习的激活函数置于边上,而非节点。
  • 安装方式:可通过PyPI(pip install pykan)或从GitHub仓库克隆安装。要求Python 3.9.7及以上,并安装特定依赖库。
  • 效率模式:当用户自定义训练循环或不使用符号分支时,应在训练前调用 model.speed() 以关闭符号计算、提升速度,否则性能可能很慢。
  • 计算需求:教程中的示例在单CPU上通常可在数分钟内完成。对于PDE等更复杂的任务,训练可能需要数小时至数天。大规模任务建议使用GPU。

使用建议与超参数调优

  1. 从简单开始:初始使用较小的KAN形状(如width=[5,1,1])、较小的网格尺寸和少量数据,无正则化(lamb=0)。
  2. 逐步调整:若性能不足,先增加网络宽度,再考虑增加深度。
  3. 追求准确性:可尝试网格扩展技术,但需注意过拟合。
  4. 追求可解释性:通过model.train(lamb=0.01)等增大正则化强度进行稀疏化训练,随后使用model.prune()剪枝,并可进行符号回归。
  5. 平衡与检查:准确性与可解释性可能相互权衡。需持续监控模型是否处于欠拟合或过拟合状态,必要时调整数据量或模型复杂度(优先调整网格,再调整宽度)。
  6. 最终优化:获得良好结果后,增加数据量进行最终训练。

定位与作者说明

  • KANs最初设计用于数学和物理等小规模、科学导向的问题,注重高准确性和可解释性。
  • 其代码和设计可能未针对大规模机器学习任务的效率和重用性进行优化。已有第三方实现(如efficientkanfourierkan)可能提升效率。
  • 对于机器学习任务,KANs可能需要根据具体应用调整超参数或架构(如在强化学习中固定部分参数)。
  • KANs并非即插即用的通用解决方案,其优势领域与大规模语言模型(LLMs)等当前主流架构可能存在差异。作者鼓励批判性思考现有架构,并探索根本性的替代方案。

引用:文章末尾提供了标准的学术引用格式。

13. Passkey Implementation: Misconceptions, pitfalls and unknown unknowns (www.corbado.com)

文章摘要:Passkey实施:误解、陷阱与未知因素

文章指出,开发者普遍认为集成Passkey(基于WebAuthn标准)很简单,类似于添加其他认证包,但实践表明其复杂性远超预期。本文揭示了实施Passkey时常见的15个误解和隐藏的挑战。

核心误解与实施复杂性

  1. 创建与登录并非单一API调用:Passkey的创建和登录流程远不止于调用 navigator.credentials.create()navigator.credentials.get()。实际需要设计复杂的后端API交互、用户验证流程、回退认证方案,以及处理设备与Passkey的匹配逻辑(称为“Passkey智能”)。
  2. 设备检测与可用性判断困难
    • 无法预先检测设备上的Passkey:出于隐私设计,浏览器不支持在认证前提前探测设备上是否存在Passkey。
    • 用户代理识别不可靠:传统的用户代理字符串正在被弃用,需要结合Client Hints等技术进行设备识别,工作量巨大。
    • “可用”不等于“可访问”:设备支持Passkey与用户拥有可用Passkey是两回事,需要双重验证。
  3. 跨平台与用户体验(UX/UI)不一致
    • 浏览器与系统行为差异大:不同浏览器(Chrome、Safari、Firefox)和操作系统(Windows、macOS、iOS、Android)在Passkey的UI呈现、行为逻辑上存在显著差异。
    • Conditional UI(无用户名登录)并非万能:虽然体验流畅,但支持不全面,且弹出窗口可能干扰用户。
    • QR码与跨设备认证的陷阱:当本地找不到Passkey时,浏览器会默认弹出用于跨设备认证的QR码,这可能令用户困惑(特别是在旧版Windows上)。
  4. 管理与维护挑战
    • Passkey管理UI有陷阱:删除Passkey时,服务端与客户端状态不同步可能导致后续登录失败。AllowCredentials 列表是否需要填充取决于具体场景。
    • 常见用例支持不完善:例如,用户在客户端删除Passkey后服务端无感知,会导致登录循环失败;Passkey关联的元数据(如邮箱)难以更新。
    • 测试与调试复杂:Passkey要求HTTPS上下文,本地测试困难;跨设备测试需物理设备;调试需要解码特定格式(Base64URL, COSE, CBOR)。

实施的额外复杂性与建议

  • 不仅仅是认证:Passkey仅解决认证问题,完整的生产系统还需要集成其他认证方式作为回退、实现会话管理、以及设计授权与权限模型(如RBAC)
  • 对现有系统的改造更难:将Passkey添加到已有的认证系统中,需要精心设计渐进式推出策略、数据迁移、以及与原有密码流程并存的方案,同时还需要强大的日志、分析和监控能力。
  • 技术生态快速演进:WebAuthn规范仍在发展中(如Level 3),需要持续跟进浏览器厂商的实现和标准更新。

总结:Passkey提供了更安全便捷的认证体验,但其实施是一项涉及前端、后端、UX设计和多平台适配的系统工程。开发者需要深入理解WebAuthn规范、处理大量边缘情况和平台差异,并建立智能的设备与Passkey管理逻辑。在决策前,应充分评估这些隐性成本和技术挑战。

14. How to install Linux from a Windows installer (prose.nsood.in)

本文详细介绍了如何通过修改Windows安装镜像(WIM文件)来安装Alpine Linux的实验性技术方案。整个过程分为三个主要步骤,但作者强调此方法仅为技术演示,存在诸多局限性且不推荐用于实际生产环境。

核心步骤

1. 在NTFS分区上安装Linux

  • 发行版选择:需使用允许手动挂载分区的发行版(如Alpine Linux或Arch Linux)。
  • 分区方案(UEFI/GPT):
    • 100MB FAT32 EFI分区,挂载到/boot
    • 16MB偏移分区(用于对齐Windows分区布局)。
    • 剩余空间为NTFS根分区,挂载时使用ntfs3文件系统并启用aclwindows_names选项。
  • 关键配置
    • 修改/etc/fstab使用设备名(如/dev/sda3)替代UUID。
    • 确保initramfs包含ntfs3内核模块。
    • 调整GRUB配置以使用设备名识别根分区。

2. 将Linux系统封装进Windows安装镜像(WIM文件)

  • 整合WinPE与Linux:将Windows预安装环境(WinPE)和Linux rootfs打包到同一WIM镜像中。
  • WinPE脚本化:修改WinPE的startnet.cmd脚本,使其在启动时自动:
    • 挂载EFI分区(通过diskpart脚本)。
    • 应用预存的Linux引导文件(efi.wim)。
    • 删除Windows的UEFI引导项。
  • EULA文件处理:为避免安装程序报错,需在Linux rootfs中添加GPL v2.0的RTF格式许可证文件,路径需符合Windows安装程序的查找规则(如\Windows\System32\en-US\Licenses\WindowsPE\_Default\license.rtf)。

3. 生成可启动安装镜像

  • 使用DISM或GImageX将整合后的Linux/WinPE rootfs捕获到Windows安装目录的sources\install.wim文件中(可选择保留或覆盖原有Windows镜像)。
  • 使用oscdimg.exe(Windows ADK工具)将目录制作为可启动ISO文件。

重要注意事项

  • 技术局限性
    • 分区布局和引导配置被硬编码,仅适用于完全空白的第一块硬盘。
    • WIM文件不保留UNIX文件权限,安装后需手动修复。
    • GRUB和引导流程修改较为粗糙,可能无法持久化。
    • NTFS作为Linux根文件系统易出现问题(如脏位导致只读挂载)。
  • 实用性:作者明确表示,该方法仅为技术挑战,实际使用时应直接通过常规方式安装Linux。整个过程复杂、脆弱,且依赖多个特定条件。
16. Level of Gaussians: Real-Time View Synthesis for Millions of Square Meters (zju3dv.github.io)

核心问题

本文针对大规模场景(数百万平方米)的高质量实时渲染挑战。现有的3D高斯喷溅(3DGS)技术虽能实现优质渲染,但需要大量高斯原语,导致在全景查看时无法实时渲染。

解决方案:层次高斯(LoG)

  • 核心思想:受经典细节层次(LOD)启发,提出层次高斯(LoG)表示。近景需要精细细节,而远景细节冗余,因此自适应选择高斯原语的细节层次。
  • 实现方式:LoG以树结构存储高斯原语。每个节点表示一定细节层次,可通过子节点提供更精细的细节。例如,Level 0的一个大高斯原语可由Level 1的四个小高斯原语表示。

渲染策略

  • 自适应选择:渲染时遍历树结构,基于视图者距离和角度选择合适原语。
  • 终止条件:树遍历在节点无子节点或其直径在图像空间中小于1像素时停止。这避免了用过多原语渲染远处小物体(如仅占几像素的建筑),显著加速渲染。

训练方法

  • 渐进训练:设计端到端的渐进训练策略从图像重建LoG。该策略提供有效正则化,帮助克服局部最小值问题。

实验结果

  • 实现实时高质量渲染覆盖数百万平方米的大面积场景,代表了大规模场景渲染的重大进展。

引用信息

  • 标题:Real-Time View Synthesis for Large Scenes with Millions of Square Meters
  • 作者:Shuai Qing, Guo Haoyu, Xu Zhen, Lin Haotong, Peng Sida, Bao Hujun, Zhou Xiaowei
  • 年份:2024
17. Show HN: I'm 16 and building an AI based startup called Factful with friends (factful.io)
18. Better and Faster Large Language Models via Multi-Token Prediction (arxiv.org)

通过多token预测实现更好更快的大型语言模型

本文提出一种改进大型语言模型训练效率的方法:多token预测。传统模型(如GPT、Llama)采用下一个token预测损失进行训练,而本研究表明,让模型同时预测多个未来token能够提升样本效率

核心方法

  • 在训练语料的每个位置,模型使用 n 个独立的输出头(共享一个模型主干)来预测接下来的 n 个 token
  • 将多token预测视为一项辅助训练任务

主要优势与实验结果

  1. 提升下游能力:在代码和自然语言模型中均观察到能力提升,且不增加训练时间
  2. 随规模增大收益更明显:该方法在更大模型上效果更显著。
  3. 多轮训练仍有效:在训练多个周期时仍保持优势。
  4. 生成任务表现突出
    • 在编码等生成基准测试中,模型一致性超越强基线数个百分点。
    • 具体示例:一个 13B 参数模型HumanEval 上解决问题数量提升 12%,在 MBPP 上提升 17%(相较于同等规模的下一个token预测模型)。
  5. 增强推理能力:在小型算法任务上的实验证明,多token预测有利于归纳头算法推理能力的发展。
  6. 推理速度大幅提升:采用 4-token 预测训练的模型,推理速度最高可提升 3 倍,即使在批量大小较大的情况下也是如此。

该方法通过改进训练目标,使模型在保持训练效率的同时,获得更强的生成与推理性能,并为实际部署带来显著的推理加速。

19. Show HN: I made an app that helps you find where to stream movies and TV shows (whereto.stream)
20. Ask HN: Who wants to be hired? (May 2024)
21. The California man who hid for 6 months in a secret room inside Circuit City (www.sfgate.com)

文章核心摘要

文章标题:加州男子在Circuit City的秘密房间中藏匿六个月

核心事件: 一名来自加利福尼亚州的男子,成功地在电子产品零售商Circuit City的一家门店内,藏匿于一个秘密房间长达六个月之久。

关键点分析

  1. 藏匿地点与方式:男子利用了Circuit City实体店内一个不为人知的“秘密房间”。这暗示该空间可能原本是仓库、设备间或建筑结构上的隐蔽处,而非顾客能轻易发现的区域。
  2. 藏匿时长:藏匿时间长达六个月,这是一个非常显著的长期行为。这表明他具备相当的隐秘生存能力,并能有效避开日常的店铺员工、清洁人员以及定期的安防检查。
  3. 动机推测(基于此类事件的常见可能性)
    • 无家可归:为寻求稳定的庇护所。
    • 逃避执法:为躲避法律追捕或债务问题。
    • 个人挑战或心理因素:可能出于某种个人目的或心理健康原因。
  4. 发现与结局:文章标题未提及如何被发现,但此类事件通常因意外暴露(如发出异常声响、留下生活痕迹)或例行检查而终结。结局很可能涉及该男子被要求离开,或面临非法侵入等法律指控。
  5. 事件的特殊性
    • 地点反差:在公共商业场所实现长期隐匿,极具戏剧性和反差感。
    • 安防漏洞:暴露了大型零售场所在闭店后可能存在的安防监控盲点。
    • 生存挑战:需要解决食物、饮水、卫生等基本生存问题,难度极高。

总结: 这篇报道讲述了一起离奇的潜伏事件,一名加州男子在Circuit City电子商店内部一个隐秘空间内成功生活了半年之久。该事件凸显了大型零售环境中可能存在的安防漏洞,也反映了个人在极端困境下寻求生存空间的非常规手段。其具体动机、如何维持生活以及最终如何败露,是该故事的核心悬念与内容。

22. Alice's adventures in a differentiable wonderland (www.sscardapane.it)

《Alice's adventures in a differentiable wonderland》简介

本文是一本关于可微编程领域的入门书籍介绍。该书面向初学者(如"Alice"般刚踏入此领域的读者),旨在提供直观、自足的学习材料,涵盖神经网络的基础原理、常见设计模式以及理论与代码(PyTorch/JAX)的结合。

书籍核心内容

  • 核心主题:神经网络本质上是可微原语的组合,学习编程和与之交互即属可微编程的范畴。
  • 重点介绍
    1. 优化基础:通过自动微分优化函数。
    2. 常见设计:处理序列、图、文本、音频的典型神经网络架构。
    3. 关键技术:直观讲解卷积、注意力、循环神经网络等重要设计模块。
  • 目标:帮助读者理解从基础到高级模型(如大型语言模型LLM、多模态架构)的核心原理。

获取与资源

  • 版本:提供最新草稿、亚马逊独立出版纸质书及arXiv预印本(arXiv 2404.17625)。
  • 许可证:采用CC BY-SA许可证,允许在署名前提下进行分发、混合、改编及商业使用。
  • 补充材料
    • 实践指南:持续更新的PyTorch和JAX引导实验课程。
    • 翻译:意大利语非官方翻译(不完整)。
    • 高级章节:网站上提供未纳入首卷的高级主题,如:
      • 高级自动微分(涵盖一般向量空间微分、计算图、隐式微分)。
      • 训练后算法(聚焦LLM的强化学习等训练后方法)。

章节结构

书籍从数学基础出发,逐步深入至各类神经网络层和模型:

  1. 序言与引言
  2. 数学基础
  3. 数据集与损失函数
  4. 线性模型
  5. 全连接层
  6. 自动微分
  7. 卷积层
  8. 超越图像的卷积
  9. 模型扩展
  10. Transformer模型
  11. 实践中的Transformer
  12. 图层
  13. 循环层
  • 附录:概率论与一维通用逼近定理。

总结

本书是一本从基础原理到高级模型(如LLM)的可微编程实用指南,强调理论与代码实践的结合,并通过开源许可证鼓励社区学习、再利用和扩展。

23. Run llama3 locally with 1M token context (ollama.com)

本文介绍了如何在本地运行支持超过100万token上下文长度的Llama3模型(基于Llama-3 8B扩展而成),该模型由Gradient开发,Crusoe Energy提供算力支持。

主要内容

  • 模型特点:将Llama-3 8B的上下文长度从8k扩展至超过104万token。
  • 技术原理:通过调整RoPE(旋转位置编码)的theta参数,使模型能以极小的训练代价处理长上下文。训练仅使用了8.3亿至14亿token,不足Llama-3原始预训练数据的0.01%。
  • 使用方法:可通过Ollama在本地运行,支持命令行、API(HTTP请求)及多种编程语言(如Python、JavaScript)调用。
  • 资源要求:使用超长上下文窗口需要较高内存。256k上下文至少需64GB内存;1M以上需超过100GB内存。
  • 上下文窗口设置:可通过API参数num_ctx或CLI命令/set parameter调整上下文长度(例如设为256000)。
  • 相关资源:项目网站与Hugging Face页面提供进一步信息。
24. Google workers fired for protesting Israeli contract file NLRB complaint (www.theverge.com)

谷歌一名软件工程师因参加公司内部反对以色列合同的抗议活动而被解雇,并称公司因其仅仅观看抗议而进行报复。该工程师表示,在纽约办公室午休时去10楼休息室观看抗议活动,并未参与,只与分发传单等工作人员交谈,抗议者穿着统一T恤。他后在工作结束后再次短暂返回,与抗议者简单交流。第二天正常返岗,但当晚收到谷歌邮件被解雇。他认为谷歌压制员工发声,并指出自己曾是Alphabet Workers Union(未被NLRB认可的非合同工会)领导成员。

谷歌最初因抗议Project Nimbus(与以色列政府价值12亿美元的云计算合同),对纽约和加州Sunnyvale办公室占领抗议的员工采取行政休假措施,涉事员工被警方逮捕。之后公司共解雇了28名与抗议相关员工。谷歌全球安全负责人Chris Rackow在内部备忘录中强调,公司会严肃对待破坏性行为并采取措施。不到一周后,谷歌又解雇了20多名员工,其中有员工称自己完全未参与抗议。

谷歌发言人表示对4月16日办公楼破坏行为进行了调查,依赖同事提供的更多细节决定被解雇人员。但被解雇的软件工程师称他没有被人力资源部门联系,也未被询问是否参与抗议,解雇邮件来得毫无预兆。员工回忆抗议期间安保曾查验员工工牌,自己并未想到会因此受罚。

因抗议活动被解雇的50余名谷歌员工于周一向美国国家劳工关系委员会(NLRB)提交投诉,指控公司非法报复,要求恢复工作。据抗议组织No Tech For Apartheid声明,谷歌因员工参与或被认为参与和平、非干扰性的抗议,解雇及行政休假措施侵犯了员工《劳工关系法》第7条权利。该组织发言人Jane Chung称,包括“旁观者”也被解雇,但谷歌坚称所有被解雇者都“确实参与并干扰了办公环境”。

此次公司处理抗议方式与以往明显不同。2018年,超600名员工联名反对面向中国的搜索引擎项目Dragonfly,并呼吁终止与美国国防部合同Project Maven。同年,逾两万名谷歌员工集体罢工,抗议公司对高管性骚扰调查处理不当。此后,谷歌员工多次抗议,公司对员工发声的容忍度显著下降。一名被解雇工程师表示,谷歌对员工表达的态度已与五到十年前有天壤之别。

25. FTC challenges 'junk' patents held by 10 drugmakers, incl Novo Nordisk's Ozempic (www.cnbc.com)

美国联邦贸易委员会(FTC)正挑战制药公司持有的数百项被指为“垃圾”的专利,这些专利涉及20种品牌药物,包括诺和诺德的重磅药物Ozempic、Saxenda和Victoza。

FTC已向10家公司发出警告信,指出其某些药物专利的列示方式不当。涉及的公司包括诺和诺德、阿斯利康、勃林格殷格翰、葛兰素史克、诺华、梯瓦制药等。被挑战的专利主要覆盖2型糖尿病、哮喘及慢性阻塞性肺病的吸入剂等药物。

通常,畅销药物受到多项专利保护,涉及成分、生产工艺等。仿制药制造商只有在专利过期或成功在法庭上挑战后,才能推出更便宜的仿制版本。

FTC主席莉娜·汗指出,制药公司通过提交虚假专利列示来阻碍竞争、抬高处方药价格,迫使美国人支付高昂费用。FTC的挑战旨在打击此类非法手段,确保民众能及时获得可负担的创新药物。

FTC同时将此次挑战告知了负责管理药品专利列表(即“橙皮书”)的美国食品药品监督管理局。

去年秋天,FTC曾首次挑战数十项品牌药专利,其中三家药企随后配合将专利从列表中移除,但另有五家公司未采取行动。此次行动扩大了拜登政府打击制药业专利滥用行为的力度,FTC认为药企通过申请大量额外专利来维持药价并拖延仿制药进入市场。

这一专利争议也属于拜登政府推动医疗 affordability(可负担性)的更广泛努力的一部分,是总统拜登2024年连任竞选的关键支柱。白宫国家经济委员会副主任对FTC与FDA合作打击大型制药公司的专利游戏并降低处方药成本(包括减肥和糖尿病药物)表示支持。

26. Johnson and Johnson to pay $6.5B to resolve talc ovarian cancer lawsuits in U.S. (www.cnbc.com)

强生公司宣布计划在未来25年内支付65亿美元,以解决美国数千起指控其滑石粉产品导致卵巢癌的诉讼。该和解方案需经索赔人批准,旨在通过子公司LTL Management的第三次破产申请来结束相关诉讼。此前,该公司两次通过子公司破产解决诉讼的努力均被法院驳回。

强生坚持认为其已停产的滑石粉婴儿爽身粉及其他滑石粉产品对消费者是安全的。目前,约99%的滑石粉相关诉讼涉及卵巢癌。公司在第一季度已计提约27亿美元费用,将滑石粉诉讼准备金增至约110亿美元。

根据和解计划,强生将启动为期三个月的索赔人投票期,争取获得破产和解所需的75%支持率,从而彻底了结诉讼并防止未来同类诉讼。公司高管表示,已与绝大多数索赔人的律师或代表沟通,获得了“显著支持”。

强生全球诉讼副总裁埃里克·哈斯称,该计划符合索赔人的最佳利益,并认为和解能为他们带来比审判更优的回报。他指出,按现有审判速度,剩余案件可能需要数十年才能审理完毕,多数索赔人可能永远无法等到庭审机会。尽管如此,此前一些诉讼仍作出了对索赔人有利的重大判决,例如曾有一个陪审团判决强生赔偿22名妇女约20亿美元。

在该消息公布后,强生股价周三收盘上涨超过4%。

此外,强生表示,剩余未决诉讼涉及一种名为间皮瘤的罕见癌症,这部分将不纳入本次和解方案,并称已解决了迄今提起的95%的间皮瘤诉讼。公司还宣布已与40多个州组成的联盟达成“最终且全面”的和解,以解决针对其滑石粉产品安全性误导患者的调查。同时,公司也与滑石粉供应商(包括Imerys Talc America、Cyprus Mines Corporation及其相关方)达成了原则性和解协议。

27. Invisible Stitch: Generating Smooth 3D Scenes with Depth Inpainting (research.paulengstler.com)

摘要:《Invisible Stitch: 使用深度修复生成平滑3D场景》

本文针对从2D生成模型构建3D场景的任务,提出了一种改进方法。当前方法通常依赖单目深度估计将生成的图像提升至3D,并通过简单的全局缩放和平移操作融合新生成区域与现有场景,这容易导致几何不连续。

主要贡献:

  1. 深度补全网络:提出了一种新的深度补全网络,能基于输入图像和已知区域的深度,平滑地外推场景深度。该网络通过教师网络生成伪真值深度,并采用遮盖(模拟视角变化产生的遮挡)进行训练,同时偶尔丢弃稀疏深度输入以保持在没有稀疏深度时的预测能力。该方法实现了对新生成区域的几何一致性融合。
  2. 评估基准:由于现有方法多依赖图像-文本相似度评估几何质量,本文提出了一种基于真实几何数据的评估基准。该基准通过比较从部分已知场景渲染的深度与模型外推的深度之间的误差,来量化生成场景的几何一致性和质量。

方法概述

  • 从输入图像出发,使用深度估计网络生成点云。
  • 从新视角渲染场景,并使用生成模型(如扩散模型)外推未知区域。
  • 利用本文的深度补全网络,结合现有场景深度和外推后的图像,生成几何一致的深度图以投影新点。
  • 重复此过程可生成360度场景。

评估结果:在真实世界和合成数据上的实验表明,本文的深度修复模型生成的预测结果比先前方法更忠于真实几何数据,验证了其有效性。

28. Enzymes open new path to universal donor blood (www.dtu.dk)

丹麦技术大学与隆德大学的研究团队发现,来自人体肠道细菌 Akkermansia muciniphila 的新型酶混合物,能高效去除红细胞表面的 A、B抗原及其扩展变体,为生产AB0通用供体血液带来突破。该成果已发表于《自然·微生物学》期刊。

研究指出,人类红细胞表面的A、B抗原会导致非匹配受血者发生致命免疫反应。去除这些抗原可将A型或B型血液转化为通用O型,从而简化血液储存与调配、减少浪费、提高供血效率,并避免误输血型不匹配的血液。

此次酶的发现源于对肠道黏液分解细菌的研究。这些细菌的酶能特异性分解肠道黏液中的糖结构,而黏液糖结构与红细胞表面抗原具有化学相似性。研究团队测试了24种酶组合,处理了数百份血样,证实其高效性。

目前,该技术对B型血的转化已接近成功,但对更复杂的A型血仍需进一步优化。研究人员已申请专利,并将在未来三年半内继续推进项目,成功后需进行临床试验方可应用于临床。

研究由丹麦独立研究基金会、瑞典研究理事会及诺和诺德基金会等资助。

33. Arti: A Tor Implementation in Rust (tpo.pages.torproject.net)

Arti 项目概述 Arti 是对 C 语言版 Tor 代码库的完全重写,使用 Rust 语言编写,目前处于积极开发阶段。其设计注重模块化、可重用性和代码审计的便捷性。尽管 Arti 的代理和洋葱服务功能已可供使用,但并非 C Tor 的所有功能均已实现。

快速入门 用户可参考以下指南:

  • 编译 Arti:了解如何构建项目。
  • 启动 SOCKS 代理:将 Arti 作为 SOCKS 代理运行。
  • 配置应用程序:设置应用程序以使用 Arti。
  • 连接洋葱服务:访问 .onion 网站的步骤。
  • 命令行参考:CLI 工具的使用说明。

从 Tor 迁移

  • 可将 Arti 与 Tor 浏览器集成使用。
  • 提供协议支持与兼容性信息。
  • 明确列出 Arti 的功能范围与现有局限性。

审查避风港

  • 支持通过网桥(Bridges)使用 Arti。
  • 可集成可插拔传输(Pluggable Transports)以增强抗审查能力。

参与贡献

  • 提供贡献指南与行为准则。
  • 说明支持政策。

相关资源

  • 可查阅旧版 Arti 网站获取历史信息。