2024-11-17

35 篇热帖

1. CSS gets a new logo and it uses the color `rebeccapurple` (michaelcharl.es)

CSS 社区在 GitHub 的 CSS-Next 仓库中通过投票,选定了 CSS 的新官方标志。该标志的设计遵循了 JavaScript、TypeScript 和 WebAssembly 等其他 Web 技术标志的设计语言。

新标志最引人注目的特点是使用了 rebeccapurple(#663399)这一颜色。该颜色于 2014 年被添加到 CSS 规范中,以纪念 Eric Meyer 的女儿 Rebecca。Rebecca 在六岁生日当天因脑癌不幸离世。

Eric Meyer 是多本 CSS 书籍的作者,自 19 世纪 90 年代末以来一直是 CSS 社区的重要人物。这个颜色最初计划命名为 beccapurple,但 Meyer 希望将其命名为 rebeccapurple,因为他的女儿在满六岁时曾表示希望被叫做 Rebecca,她认为 Becca 是“小孩子的名字”。正如 Eric Meyer 所说:“她活到了六岁。她当了将近十二个小时的六岁孩子。所以,它就是也必须是 Rebecca。”

2. The Bluesky firehose viewed in the style of a Windows XP screensaver (firehose3d.theo.io)

这是一个实时3D可视化项目,旨在以Windows XP经典屏保的风格来呈现Bluesky社交平台的实时数据流(Firehose)。其核心是将Bluesky平台的公共数据流转化为一种复古且动态的视觉体验。

从技术实现来看,该项目采用标准的HTML5结构,通过外部JavaScript模块(index-Bo2tqEKa.js)和CSS样式表(index-Cs1d5bDf.css)来构建主要功能。页面设置为黑色背景,包含一个用于加载提示的居中元素。项目集成了Google Analytics(G-NDR7D0LP60)用于数据跟踪分析。其核心功能依赖于脚本对实时数据的获取与处理,并将其渲染为具有XP屏保风格的3D动画,最终呈现在页面的#root挂载点中。

3. Everything Is Just Functions: Insights from SICP and David Beazley (ezzeriesa.notion.site)

作者在2022年底参加了David Beazley的SICP课程,并给予高度评价。课程充分利用了免费资源,David作为指导,在一周内覆盖了大量内容。他精选主题进行高层次概述,同时深入讲解关键部分,并使用自创例子更清晰地阐述概念。

学习收获难以直接描述,但作者通过类比说明:类似于学习编译器时发现语言间的共性,从而看到大局;SICP课程则帮助理解计算的一般概念,带来类似的整体视角。

文章从回顾关键概念开始,首先介绍起点部分,通过替换过程构建一个简单的计算模型。使用Scheme语言(课程中采用Racket,因其更易设置),仅需语言的一小部分功能。基元是语言中最简单的实体,例如整数,求值时直接返回(如 > 1 返回 1)。内置操作包括 +-*/,Scheme采用前缀表示法,操作符在前,操作数在后(如 > (+ 2 3) 返回 5)。这部分奠定了计算模型的基础,强调函数和替换的核心思想。

4. James Webb Space Telescope finds evidence for alternate theory of gravity (thedebrief.org)

詹姆斯·韦伯太空望远镜的最新观测为一种替代引力理论——修正牛顿动力学(MOND)——提供了证据,可能挑战目前主流的宇宙学模型。天文学家利用韦伯望远镜观测遥远宇宙的早期星系时,发现这些星系出乎意料地明亮且已经形成较大结构,这与基于暗物质的ΛCDM(冷暗物质)模型的预测相矛盾。

当前主流的ΛCDM模型认为,暗物质通过其引力作用,逐渐将物质拉拢聚集,缓慢形成星系,因此早期宇宙中的星系应显得小而暗。然而,韦伯望远镜的数据显示,早期星系在宇宙极早期就已经是大而明亮的结构。

该研究支持由以色列物理学家Mordehai Milgrom在1983年首次提出的MOND理论。该理论通过修改牛顿第二定律,在极低加速度的区域(如宇宙边缘)解释星系旋转曲线等问题,从而避免引入暗物质。Case Western Reserve大学的Stacy McGaugh及其同事在1998年的一篇论文中提出,星系形成是快速发生的,无需暗物质参与,星系物质在宇宙膨胀过程中迅速聚集并坍缩。

研究指出,韦伯望远镜的数据与MOND支持者(如R.H. Sanders)的预测更为吻合,而非ΛCDM模型(如Mo, Mao, and White的预测)。尽管如此,MOND理论仍面临挑战,特别是如何将其与广义相对论——现代物理学的基石——相协调仍是未解难题。

然而,ΛCDM模型目前仍获得广泛支持,因为它能准确预测自1920年代以来的宇宙膨胀率,并与宇宙近乎平坦的观测相符。部分现代天文测量也仍偏向暗物质假说。

McGaugh表示,韦伯的观测并未显示所有邻近大星系都起源于微小结构,这与ΛCDM的预期不同。他承认,虽然需要不断修改理论以适应新事实,但观测数据与理论的不匹配可能意味着理论框架存在弱点。此次发现虽令他和同事感到一定 vindication,但科学方法的本质仍是提出预测并验证。

相关论文《加速结构形成:大质量星系和星系团的早期出现》已于2024年11月12日发表于《天体物理学杂志》。

5. SICP: The only computer science book worth reading twice? (2010) (simondobson.org)

SICP:唯一值得两次阅读的计算机科学书籍?

《计算机程序的构造和解释》(Structure and Interpretation of Computer Programs,简称SICP)由Hal Abelson和Jerry Sussman撰写,出版于1984年,被作者视为计算机科学中最具影响力的著作。该书深刻影响了他的职业生涯和研究兴趣,内容至今仍具有高度相关性。

SICP从编程基础元素(如值、名称、绑定和控制)出发,逐步扩展至广泛而深刻的主题,包括lambda抽象、高阶计算、复杂数据结构(含嵌入计算内容的结构)、模块化与可变性、流、惰性求值、解释器与编译器构造、存储管理、垃圾收集、虚拟内存、机器码以及领域特定语言等。所有这些概念在Scheme语言框架内连贯构建,每个主题都基于前文内容,展现了作者卓越的写作技巧。

该书的核心创新之一在于将一切视为语言设计练习。作者强调分层设计(stratified design),即复杂系统应由一系列层级描述,每个层级使用适合该层级的语言,其中包含原语、组合方式和抽象方式。与传统分层不同,SICP主张每个层级都应可编程,使层叠成为计算和变换的一部分,而非仅隐藏信息。这与主流编程语言(如Java)形成对比,后者在层级上无法扩展或移除特定结构。

SICP还明确定义了计算机科学的本质:它是一场关于思维和表达方式的革命,核心是程序性认识论(procedural epistemology)。与数学关注“是什么”的声明式视角不同,计算机科学专注于“如何做”的命令式视角,为精确处理过程知识提供框架。这一观点广泛应用于自适应传感器网络、大规模数据挖掘、科学方法自动化等领域,突显编程语言(如R)在保持接口和结构灵活性以支持实验方面的重要性。

该书出版近22年,内容几乎未过时,这在快速变化的计算机科学领域极为罕见。它被类比为费曼物理学讲义,是学科本质的易懂提炼,经受住了时间考验,因此值得多次阅读。2024年1月的更新注明该书也收录于作者的注释Lisp书目中。

6. Bpftune uses BPF to auto-tune Linux systems (github.com)

bpftune 是一个基于 BPF 的 Linux 系统自动调优守护进程,旨在通过持续监控和调整系统行为来优化性能。其核心思想是利用 BPF 的低开销可观测性,在细粒度(如单个套接字策略、设备策略)上观察和调优系统,以应对现代云架构下系统管理复杂性与管理员交互减少的矛盾。

核心挑战与设计目标

Linux 内核包含大量可调参数(如 sysctl),这些参数通常没有唯一的“正确”配置。现代系统规模庞大且管理员干预减少,传统静态配置方法存在局限。bpftune 的目标是实现动态、自适应调优,而非依赖固定的“魔法数字”。

关键设计原则

  • 最小化开销:谨慎使用可观测性功能,避免高频事件追踪。
  • 明确策略变更:通过 syslog 记录变更内容(“什么”)和原因(“为什么”)。
  • 不干扰管理员:若管理员手动修改相关参数,bpftune 会自动禁用相关功能的自动调优。
  • 零配置:无需手动配置选项,避免引入新的可调参数。
  • 推拉方法:在调整资源(如 TCP 缓冲区大小)时,通过监控系统压力(如内存使用)动态平衡,避免资源耗尽。例如,在增加 TCP 缓冲区时关联往返时间变化,超过阈值则停止增加。

架构与组件

bpftune 以守护进程运行,管理一系列共享对象(.so)插件式的调谐器(tuners)。主要组件包括:

  • 调谐器(Tuners):每个调谐器管理一组相关参数,处理来自 BPF 程序的事件。可启用或禁用,若管理员手动修改相关参数则自动禁用。
  • 策略(Strategies):可选机制,允许调谐器指定多种调优方案,并通过评估函数选择最佳策略。
  • 事件(Events):通过共享的 BPF 环形缓冲区从 BPF 程序传递到用户空间,包含调谐器标识、场景、网络命名空间等信息。
  • BPF 组件:利用 BPF 可观测性功能监控系统事件,通过 BPF 骨架构建。
  • 用户空间组件:实现初始化(init)、清理(fini)和事件处理(event_handler)函数。

支持的调谐器

bpftune 支持多种系统参数的自动调优,包括:

  • TCP 连接调谐器:自动选择拥塞控制算法。
  • IP 分片调谐器:自动调整 IP 分片内存限制。
  • 邻居表调谐器:自动扩展邻居表大小。
  • sysctl 调谐器:监控参数冲突并禁用相关自动调优。
  • TCP 缓冲区调谐器:自动调整最大和初始缓冲区大小。
  • 网络缓冲区调谐器:调整核心网络相关参数。
  • 网络命名空间调谐器:处理命名空间的添加和删除,支持容器自动调优。
  • UDP 缓冲区调谐器:调整 UDP 相关缓冲区。

构建与使用

  • 依赖:需要 libbpf、bpftool、clang、llvm 等库和工具,内核需支持 BPF 环形缓冲区和 BTF。
  • 构建安装:通过 makesudo make install 构建安装,支持 RPM 包构建。
  • 服务管理:可通过 service bpftune startsystemctl enable bpftune 启用服务。
  • 日志与监控:调优操作记录在 syslog 中;支持通过 PCP(Performance Co-Pilot)导出指标,便于使用 Grafana 等工具可视化。
  • 系统支持检查:运行 bpftune -S 可检查系统是否支持完整功能及每个网络命名空间的策略。
  • 测试:测试位于 tests/ 子目录,使用网络命名空间模拟环境,通过 make test 运行。

演示

启动 bpftune 后,系统会根据活动自动调优参数。例如,在下载大文件时,若 TCP 缓冲区设置过小,bpftune 会逐步增加缓冲区大小以提高吞吐量,并在退出时显示调优摘要。日志会详细记录每次调整的场景和原因。

其他信息

  • 贡献与安全:项目欢迎社区贡献,并遵循安全漏洞披露流程。
  • 许可证:采用 GPL-2.0 许可证。
  • 资源:文档位于 docs/ 子目录,相关演讲和播客提供了进一步介绍。
7. The myth that you can’t build interactive web apps except as single page app (htmx.org)

文章总结:关于构建交互式Web应用的常见迷思

本文作者基于个人实践(使用HTMX构建可观测性平台的经验),反驳了“必须使用单页应用(SPA)框架才能构建高质量交互式Web应用”的流行观点,并列举了七个关于多页应用(MPA)的常见迷思及其现代解决方案。

核心论点

作者认为,自SPA革命以来,浏览器已取得巨大进步,吸收并实现了许多源自SPA的优秀理念。在2024年,开发者完全可以利用现代浏览器原生特性和相关技术,构建出交互丰富、用户体验良好的MPA,而无需完全依赖React等SPA框架。

主要迷思与反驳

  1. 迷思:MPA页面切换慢

    • 现实:虽然默认行为如此,但可通过Service Worker实现客户端缓存,大幅减少后续导航时需重新下载的资源量。文章演示了使用Workbox库配置Service Worker后,页面加载时间从2.9秒降至500毫秒以下。此外,Speculation Rules API可以预渲染后续页面,实现近乎瞬时的导航。
  2. 迷思:MPA不能离线工作或重试失败请求

    • 现实:Service Worker不仅能缓存资源供离线访问,结合Workbox的后台同步功能,还可以缓存因网络问题失败的POST请求,并在网络恢复后自动重试。
  3. 迷思:MPA页面切换会“白屏闪烁”

    • 现实:自2019年起,主流浏览器引入了绘制保持机制。在同源页面间导航时,浏览器会等到新页面的资源就绪或超时后才进行绘制,从而避免了白屏闪烁。
  4. 迷思:MPA无法实现花哨的跨页面过渡动画

    • 现实:Chrome 126+已推出跨文档视图过渡API。这允许开发者通过纯CSS或结合JavaScript,在MPA的页面间实现类似SPA的自定义过渡动画效果。
  5. 迷思:使用HTMX/MPA意味着所有逻辑必须在服务器端

    • 现实:这并非强制。开发者可以在需要丰富交互的地方,采用组件岛架构,灵活引入Web Components或任何JavaScript框架(如React、Angular)来处理特定部分。
  6. 迷思:直接操作DOM很慢,必须用虚拟DOM

    • 现实:对于大多数非极端性能敏感的应用,直接DOM操作的性能已足够。虚拟DOM带来的性能提升在常见应用中可能并无明显感知,有时甚至是一种开销。
  7. 迷思:实现任何小交互都需要编写JavaScript

    • 现实:许多基础交互(如显示/隐藏)可以通过纯CSS和HTML实现(例如利用:checked伪类)。结合HTMX等库,可以进一步减少JavaScript的编写。
  8. 迷思:没有前端框架,代码会变成难维护的“面条代码”

    • 现实:这并非必然。作者指出,互联网早期许多成功产品正是由“面条代码”构建而成,这使得它们能够快速上线并存活下来,之后才有机会进行重构。

结论

文章强调,现代浏览器已今非昔比。开发者应重新审视MPA的可能性,利用浏览器提供的强大原生工具(如Service Worker、视图过渡、Web Components)及轻量级库(如HTMX),完全可以构建出高性能、交互丰富的Web应用,而无需默认选择重量级的SPA框架。

8. Claude AI built me a React app to compare maps side by side (github.com)

这是一个由Claude AI主要生成的React应用,核心功能是并排比较多张地图。该项目是一个开源工具,欢迎社区通过Pull Requests贡献代码。

主要功能包括:

  • 用户可通过导航栏的“添加自定义源”按钮来添加自定义的地图数据源。
  • 所有配置均存储在浏览器的**本地存储(localStorage)**中。
  • 支持为Google MapsRadar Maps配置API密钥。
  • 同时,也支持无需API密钥的Stadia Maps

开发背景: 此项目最初是作者为 VeloPlanner.com 开发一个简单工具时,尝试使用 Claude AI 从头开始编码的实验。结果非常成功,作者在几小时内就获得了工作原型,主要工作是将Claude生成的代码复制粘贴到编辑器中。后期,作者开始使用集成了 claude-3.5-sonnet 模型Cursor AI,这进一步提升了开发体验。作者计划在提交记录中注明AI无法处理任务的地方。

9. Bluesky is currently gaining more than 1M users a day (bsky.jazco.dev)

文章摘要

提供的内容是一段用于构建网页的 HTML 源代码,而非关于Bluesky用户增长的新闻文章。该HTML页面是一个现代单页应用的骨架结构。

主要内容与结构

  • 应用名称与主题:页面标题为 “Atlas - Engagement-Based Social Graph for Bluesky by Jaz (jaz.bsky.social)”。这表明它是一个名为 Atlas 的工具或应用,专为社交平台 Bluesky 设计,核心功能是基于用户参与度(engagement)构建社交图谱。
  • 技术栈:这是一个使用 Vite 作为构建工具的前端项目。代码中包含了引入Vite生成的JavaScript和CSS资源文件的链接。
  • 页面结构:这是一个标准的HTML5文档模板,设置了字符编码(UTF-8)、视口(viewport)以适配移动设备,并引入了应用的图标(favicon)。主体内容(<div id="root">)将由Vue、React等JavaScript框架动态渲染。

关键点

  1. 这不是一篇新闻文章:其内容是网页的HTML源代码,并不包含Bluesky用户增长数据的任何信息。
  2. 应用功能:从标题推断,该应用旨在分析和可视化Bluesky平台上基于用户互动行为的社交网络关系。
  3. 开发者:应用的开发者署名为 Jaz,并提供了其在Bluesky平台上的个人主页标识(jaz.bsky.social)。
10. Two galaxies aligned in a way where their gravity acts as a compound lens (phys.org)

一个国际天文学家团队发现,两个星系的排列方式使其引力共同作用,形成了一个复合引力透镜。这是首次观测到此类现象。

此前,天文学家已发现许多星系或星系团能如爱因斯坦广义相对论预测的那样弯曲光线,起到不完美“透镜”的作用,有趣地扭曲后方天体的光。研究也注意到椭圆星系可以作为透镜,增亮其后方天体的光线。

本次研究聚焦的系统编号为 J1721+8842。最初,人们认为仅有一个椭圆星系在弯曲其后方一个类星体的光。但在对数据进行为期两年的分析后,研究人员发现类星体的影像存在变化,并发现了一些起初看似来自同一光源的“小光斑”。

进一步的分析揭示,这些光斑与主要的四个光斑相匹配,表明所有六个光斑均来自同一光源。先前的研究曾暗示,此类影像可能是天然复合透镜的结果。

当团队加入詹姆斯·韦伯太空望远镜的数据后,他们发现一个最初被认为是“爱因斯坦环”(一种由单透镜效应产生的光环)的红色光环,实际上是一个第二个透镜星系。随后,研究人员构建了计算机模型,确认了这正是一个复合透镜系统的观测结果。

研究团队期望,这一发现能让其他研究人员更精确地计算哈勃常数,从而可能解决关于其实际数值的长期争议。

  • 发现内容:首次观测到两个星系通过特定排列,其引力共同形成一个复合引力透镜。
  • 研究过程:通过分析J1721+8842系统两年的观测数据,结合詹姆斯·韦伯太空望远镜的新数据,识别出第二个透镜星系,并利用计算机模型进行了验证。
  • 科学意义:这一独特系统有望帮助更精确地测定哈勃常数,为解决宇宙学中的关键争议提供新途径。
11. James Gleick's Chaos: The Software (github.com)

James Gleick's Chaos: The Software 摘要

这是一个1991年Autodesk DOS程序“James Gleick's CHAOS: The Software”的免费版本发布,包含源代码、手册和可执行文件。该软件由Josh Gordon、Rudy Rucker和John Walker开发,其创作灵感来源于James Gleick的著作《混沌:开创一门新科学》。程序采用GNU许可证发布。

开发与分发

  • 开发者:Rudy Rucker编写了大部分算法,John Walker贡献了分形地形算法,Josh Gordon负责界面设计和部分算法实现。
  • 发布内容:提供CHAOS可执行文件、参数文件、用户手册及源代码的下载。
  • 运行环境:可通过DOSBox模拟器在几乎所有平台上运行该DOS程序。
  • 开源与修改:用户可自由修改代码并发布新版本,或使用其算法开发衍生程序,相关代码托管于GitHub。

程序主要模块

CHAOS包含六个演示混沌与分形理论的模块:

  1. MANDEL(曼德博集合):展示二次及三次朱利亚集合、曼德博集合,以及一个名为“Rudy集”的复杂三次连通性映射。
  2. MAGNETS(摆与磁铁):模拟物理混沌运动及分形吸引盆。
  3. ATTRACT(奇怪吸引子):演示洛伦兹吸引子、逻辑映射、Yorke吸引子和Henon吸引子。
  4. GAME(巴恩斯利分形):展示基于迭代函数系统的分形,如著名的分形蕨。
  5. FORGE(分形伪造):利用随机分形技术生成云朵、地图、山脉和行星等景物。
  6. TOY(玩具宇宙):展示元胞自动机。

潜在改进方向

当前版本的主要待升级点包括:(1) 提高显示分辨率或像素尺寸;(2) 移除对旧DOS TSR程序“metashel.exe”(由MetaGraphics Software Corporation开发)的依赖,该程序用于图形调用。

12. Four dead in fire as Tesla doors fail to open after crash (myelectricsparks.com)

事故概述

2023年10月24日,加拿大多伦多发生一起严重交通事故。一辆特斯拉Model Y在高速行驶中失控,撞击护栏后撞上混凝土柱,随即起火燃烧。车内共有五名乘客,其中三名男性(26岁、29岁和32岁)和一名30岁女性当场死亡,一名25岁女性被一名路人救出后送医治疗,伤势非致命性。

救援过程与电子门问题

事故发生后,路过的加拿大邮政工人Rick Harper(73岁)发现车辆起火,乘客被困车内无法打开电子车门。由于电子门依赖电力运作,撞击导致电力中断,车门无法正常开启。Harper使用工具砸破后窗,与其他路人合力将后排的25岁女性救出。救援过程中,浓烟和车门设计问题导致无法及时发现并救出其他乘客。

设计争议与安全质疑

特斯拉Model Y的电子门机制在事故中引发广泛质疑。尽管车辆配有手动释放装置,但其位置隐蔽且操作复杂,在紧急情况下难以迅速使用。批评者认为这种设计在恐慌情境下可能导致逃生失败。此外,事故还凸显了电动车电池起火风险,消防部门正调查电池组是否加剧了火势。

调查与回应

多伦多警方和消防部门已启动调查,重点包括车门失效原因、电池起火因素以及事故具体经过。警方确认此次为单车事故,并对救援者Harper表示感谢。特斯拉公司暂未对该事件发表公开评论,但预计将面临更多对车辆安全系统的审查。

社会讨论

这起悲剧引发了关于电动车安全设计的讨论,特别是紧急逃生机制的易用性和可靠性。公众呼吁车企改进电子门设计,确保在断电等异常情况下乘客能快速逃生。事件也提醒消费者了解车辆应急功能的重要性。

13. Teach yourself to echolocate (www.atlasobscura.com)

回声定位自学指南

Daniel Kish的回声定位实践
Daniel Kish在婴儿时期失明后,自学了回声定位技能,像蝙蝠一样通过口腔发出短促、清脆的咔哒声,并听取声音从周围环境反射回来的回声。这使他能够在脑海中构建出环境的详细地图,包括墙壁、门等轮廓以及纹理细节。他现在主要教授盲人学生回声定位,认为这项技能能增强他们的信心和独立性。Kish本人的实践令人信服,例如他能在山坡和车流中骑自行车。学术研究也逐步揭示了专家回声定位者的运作方式,并证实该技能具有高度可学习性。例如,加州大学伯克利分校的研究发现,新手通过舌头咔哒声判断物体大小的能力很快就能超越随机猜测水平。

回声定位的核心价值
Kish强调,无论视力如何,学习回声定位有助于更专注地聆听周围声音。他认为视觉往往会削弱其他感官,除非人们主动练习使用它们。熟练的回声定位者能感知细微差异,例如区分夹竹桃(发出密集尖锐的回声)和常青树(声音类似海绵或窗帘的微弱聚集)。这能帮助人们在任何地方发现声音的奇妙之处。

学习回声定位的七个步骤
Kish为初学者设计了以下练习步骤,以逐步掌握回声定位技能:

  1. 练习调音
    在开始发出自己的声音前,先注意周围声音的变化。例如,在车内时打开窗户、闭上眼睛,通过快速通过不同景观来辨别声音差异,如汽车经过停放车辆、树木或房屋时的声音变化。

  2. 选择用品
    视力正常者建议使用眼罩,以减少视觉干扰,让其他感官得到锻炼。同时准备金属盘或碗用于初期练习,后续移动时需使用登山杖、拐杖或信任的伴侣协助。

  3. 选择环境
    初学者应避免平坦空旷(声音无反射)或地毯过多(声音被吸收)的地方。理想环境是安静、开放、无过多杂物的空间,如非混响房间。专家可选择更具声音特性的环境,如装饰丰富的房间。

  4. 练习咔哒声
    发出的咔哒声必须清晰、可靠且可重复。避免常见的“咯咯声”(类似重叠的咔哒声),因为它会掩盖回声。初学者可尝试牙齿咔哒声(类似“啧啧”声)或马鞭声(如“check”中的“ch”音),选择最舒适并坚持使用。

  5. 从简单开始
    咔哒声练习的目标是判断物体的存在、位置和距离。常见练习是与伴侣配合,让伴侣将碗举过头顶,学生通过咔哒声判断碗的方向。Kish建议仅在需要刷新心理地图时发出咔哒声,初学者应专注于学习物理机制和回声聆听。

  6. 移动练习
    在移动中应用回声定位,如沿着走廊行走,尝试听出拐角或开门的声音差异。初期可能会笨拙或挫折,但应避免摘下眼罩检查,因为视觉会干扰适应过程。信任伴侣的反馈来纠正方向。

  7. 适时停止
    回声定位需要耐心和练习,可能令人兴奋但也会迷失方向。视力正常者由于不习惯非视觉导航,建议每30-45分钟休息一次;盲人学生可延长练习时间。掌握技能需要数年时间,但尝试能开启对世界的聆听新视角。

总结
回声定位是一项可学习的技能,通过系统练习,人们能增强听觉感知和环境导航能力。Daniel Kish的经验和科学研究共同表明,无论是盲人还是视力正常者,都能通过循序渐进的步骤掌握回声定位,从而提升独立性和对声音世界的理解。

14. Statistical Rethinking (2024 Edition) (github.com)

课程名称: Statistical Rethinking (2024 Edition)
讲师: Richard McElreath
形式: 在线翻转课堂(预先录制的讲座,每周两次;每周一次实时在线讨论)

课程目的

本课程教授数据分析,但其核心是科学模型。课程强调,数据本身价值有限,除非我们能明确其成因。课程将优先探讨概念性的、因果性模型以及针对这些模型的精确问题。通过贝叶斯数据分析将科学模型与证据相连接,并学习强大的计算工具,以应对生物学家和社会科学家常遇到的高维、不完美数据

课程形式与安排

  • 教学模式: 每周发布预先录制的讲座视频。
  • 实时讨论: 每周五下午3点至4点(欧洲中部/柏林时间)通过Zoom在线进行,时长一小时。该时间便于美洲学员在早上参与。
  • 教材: 使用讲师著作《Statistical Rethinking》第二版,可能辅以第三版草稿章节。已注册学员将获得教材PDF。
  • 注册情况: 课程名额(200人)及等待名单已满,注册已关闭。若有学员退出,将从等待名单中递补。

课程大纲概览(共10周)

课程为期10周,每周包含阅读材料和两节讲座。作业于周五布置,下周五提交,并在实时讨论中讲解。

周次 会议日期 阅读章节 讲座主题
01 01月05日 1, 2, 3 科学先于统计;分岔数据花园
02 01月12日 4 地心模型;类别与曲线
03 01月19日 5, 6 基本混淆;好的与坏的控制变量
04 01月26日 7, 8, 9 过拟合;MCMC
05 02月02日 10, 11 事件建模;计数与混淆
06 02月09日 11, 12 有序分类;多层模型
07 02月16日 13 多层模型进阶;相关特征
08 02月23日 14 社会网络;高斯过程
09 03月01日 15 测量;缺失数据
10 03月08日 16, 17 广义线性模型狂想;星座运势

注: 讲座幻灯片在某些浏览器中可能显示异常,建议下载PDF版本。

编程环境与工具

课程涉及大量脚本编程。学员可选择多种计算环境参与:

  1. 原始 R 环境: 使用教材中的R代码示例,需安装 rethinking R包。代码托管于GitHub,支持使用更新的 cmdstanr 作为MCMC引擎。
  2. R + Tidyverse + ggplot2 + brms: 提供高质量的完整转换版本(至少覆盖至第14章)。
  3. Python + PyMC3: 提供相当完整的转换版本。
  4. Julia + Turing: 转换版本正在快速发展中,示例展示了包括 TuringLang 在内的多种Julia引擎。
  5. 其他转换: 还有其他多种编程环境的转换版本。

作业与支持

课程将定期布置问题集(Homework)并提供解决方案(Solutions),相关资料存放于代码仓库的指定文件夹中。

15. Constraints in Go (bitfieldconsulting.com)

文章探讨了Go语言泛型中约束的概念及其重要性。约束看似限制,实则通过限定类型参数的范围,为程序员提供了更多类型安全的操作能力。核心观点是:约束越具体,可进行的操作就越丰富。

文章区分了宽泛约束(如 any)与严格约束的差异。当泛型函数使用 any 约束时,只能进行变量声明、赋值等基本操作,无法使用 +- 等运算符。而更严格的约束能解锁更多操作。

文章以基础接口作为约束示例,以 fmt.Stringer 接口为例,说明如何将接口用作类型约束。编写了一个泛型函数 Stringify,其类型参数 T 必须实现 Stringer 接口,从而保证函数内可调用 String() 方法。尝试传递未实现该接口的类型会导致编译错误,确保了类型安全。

最后,文章提供了一个练习,要求编写一个受 fmt.Stringer 约束的泛型函数 StringifyTo,用于将字符串化后的值写入 io.Writer。参考解决方案展示了如何结合约束与 io.Writer 来实现该功能。整体强调了通过约束增强泛型函数表达力和安全性的思路。

16. Stop making me memorize the borrow checker (erikmcclure.com)

Rust 借位检查器的问题与反思

本文作者基于三年多的 Rust 开发经验,指出借位检查器在实践中带来的主要挑战并非其安全价值,而是开发效率与重构成本的问题。

核心问题:开发体验差

  1. 生命周期“传染性”:借位检查器需要整个函数(甚至整个文件)编译后才能运行。一个显式生命周期参数会从使用点向上“传染”,导致沿途所有代码都必须添加该参数。如果后来发现不需要,则需删除数十处相关声明。
  2. 强制性大规模重构:当代码结构无法满足借用检查时(例如需要 Rc<> 包装或拆分借用),开发者往往需要修改数十条语句或彻底重构函数签名。
  3. 违背设计初衷:理想的类型系统或借用检查器应自动捕获错误,让开发者无需记忆规则。但当前 Rust 实践中,为了“一次性写对”,开发者不得不深度记忆借用规则以减少后续的重构痛苦。

与 C++ 的类比

作者将 Rust 的困境与 C++ 中的“未定义行为”问题相类比:

  • 共同点:两者都迫使程序员记忆一套复杂规则(借用规则 vs. 未定义行为规则)以避免问题。
  • 关键区别:C++ 的未定义行为问题在编译时完全静默,仅在运行时(使用 ubsan 等工具时)才可能暴露。但其后果可能更严重且不可预测。
  • 固化困境:C++ 因依赖未定义行为进行优化而难以改变;Rust 的借用检查器深度集成于编译器,也难以彻底改变。

作者结论与展望

作者认为,当前的 Rust 和 C++ 都远非完美,它们仅是通往“既正确又易用”编程语言道路上的一步。一个真正的竞争者必须平衡正确性与开发者生产力,避免间接迫使程序员预判编译器行为。开发语言不应仍像1970年代提交打孔卡到大型机试运行那样充满不确定性。Rust 需要的是更多能推动其改进的竞争者,而不是毫无挑战地成为唯一选择。

18. Ask HN: What open source projects need help?
19. M4 Macs can't virtualise older macOS (eclecticlight.co)

M4 Mac 无法虚拟化早于 macOS 13.4 Ventura 的系统

  • 核心问题:搭载 M4 芯片的 Mac 无法成功启动早于 macOS 13.4 Ventura 版本的虚拟机。尝试运行时,虚拟机将显示黑屏并无法完成启动。此问题影响所有 macOS 虚拟化软件(如 UTM),即使重新在 M4 Mac 上构建虚拟机也无法解决。
  • 问题详情
    • 黑屏问题发生在内核启动早期阶段,此时虚拟机仅使用单个虚拟 CPU 核心。
    • 虽然 macOS 13.4 更新了 iBoot 版本,但这并非根本原因,因为同样包含该 iBoot 版本的 macOS 12.6.6 等系统也存在此问题。
    • 当前,只能在 M1、M2 或 M3 芯片的 Mac 上作为宿主机来运行这些旧版 macOS 虚拟机。
  • 可虚拟化的 macOS 版本
    • M1/M2/M3 Mac:支持虚拟化 macOS Monterey (12.0.1 及以后版本)。macOS Big Sur (11) 完全无法虚拟化。
    • M4 Mac:仅支持虚拟化 macOS Ventura 13.4 及以后版本、macOS Sonoma 和 macOS Sequoia。
    • 已知问题:macOS Sonoma 14.2/14.2.1 的虚拟机存在共享文件夹功能的 bug(已在 14.3 修复)。macOS Sequoia 虚拟机可能无法安装支持 Apple Intelligence 所需的额外组件。
  • 当前状态:该 bug 目前无可靠解决方案,且预计 Apple 不太可能为此修复旧版 macOS 内核并发布更新的 IPSW 映像文件。
20. Two Nobel Prize winners want to cancel their own CRISPR patents in Europe (www.technologyreview.com)

CRISPR专利争议:诺贝尔奖得主主动撤销欧洲专利

在长达十年的CRISPR基因编辑技术专利争夺战中,取得惊人转折:诺贝尔化学奖得主埃玛纽埃尔·夏彭蒂耶和珍妮弗·杜德纳的律师团队,已正式请求撤销其团队持有的两项欧洲核心专利。此举意在抢先阻止一项对其不利的法律裁定被记录在案。

事件背景与直接原因 CRISPR技术被誉为本世纪最重要的生物技术发现。夏彭蒂耶和杜德纳因开发CRISPR基因编辑方法而荣获2020年诺贝尔奖,其团队与麻省理工学院和哈佛大学的布罗德研究所的张锋团队之间,就谁先发明该技术存在长期专利纠纷。在美国,布罗德研究所赢得了控制CRISPR主要应用的专利。夏彭蒂耶和杜德纳团队则常以其欧洲专利作为重要依据。

然而,2023年8月,欧洲专利局的一个技术上诉委员会发布意见,认为杜德纳工作的加州大学伯克利分校的最早专利申请中,未能充分解释CRISPR技术,使得“本领域技术人员无法实施所要求的方法”。具体问题涉及DNA分子中称为“前间隔序列邻近基序”(PAM)的关键特征,该特征决定了CRISPR基因剪刀在基因组中的作用位点。委员会认为,未充分描述该特征导致专利不符合授权条件。

团队的应对策略与辩护 夏彭蒂耶和杜德纳的律师认为,该裁定严重错误且不公。在提交的76页答复信中,他们辩称PAM序列是显而易见的,“甚至本科生”都会知道其必要性,因此无需在专利中明确说明。他们强烈反对该裁定,认为其“未能认识到发明的性质和起源,误解了本领域的一般知识,并且适用了错误的法律标准”。

为避免这项不利裁定成为正式撤销理由并记录在案(这可能构成对其诺贝尔奖级发明的“损害”),律师团队采取了“焦土策略”:主动申请撤销这两项专利(EP2800811 和 EP3401400)。目的是先发制人,抹去不利的法律记录。加州大学首席知识产权官兰迪·詹金斯确认了撤销计划,但淡化了其重要性,称这只是“漫长故事中的又一章”,并表示团队在欧洲仍有其他有效的专利申请。

广泛影响与各方反应 这一决定波及范围广泛,影响了众多已购买或许可CRISPR相关专利的生物技术公司网络,包括:

  • 与布罗德研究所结盟的Editas Medicine。
  • 杜德纳联合创立的Caribou Biosciences和Intellia Therapeutics。
  • 夏彭蒂耶的公司CRISPR Therapeutics。
  • 专门在欧洲收取CRISPR许可费的ERS Genomics公司。

ERS Genomics声称已向150多家机构授予了基于这些“基础专利”的非独占许可。例如,芬兰初创公司StemSight每年支付1.5万美元的标准许可费,用于研究经CRISPR编辑的干细胞眼疾疗法。该公司创始人表示,在得知专利被撤销前并未收到通知。ERS Genomics发言人则表示,客户仍受夏彭蒂耶和杜德纳团队在欧洲剩余的一项专利和一项待决申请的保护。

在美国,布罗德研究所同样在销售CRISPR使用许可,且涉及产品时费用高昂。例如,Vertex Pharmaceuticals为获得销售首款CRISPR疗法(用于治疗镰状细胞病)的许可,向布罗德研究所预付了5000万美元。

核心争议 尽管夏彭蒂耶和杜德纳在2012年率先发表了CRISPR可编程编辑DNA的论文,其欧洲专利也经受住了最初的正式异议,但本次技术委员会的裁决从“充分公开”的角度提出了挑战,使得该技术最早的欧洲专利基础面临不确定性。这场围绕世纪生物技术发现的专利战争,仍在持续演变。

21. Garak, LLM Vulnerability Scanner (github.com)

Garak:LLM漏洞扫描工具

概述

Garak 是一个免费的生成式AI红队测试与评估工具包,用于检测大语言模型(LLM)是否会出现非预期的失败模式。它通过静态、动态和自适应的探测方法,主动测试模型在幻觉、数据泄露、提示注入、错误信息、毒性生成、越狱等方面的脆弱性。其功能类似于针对网络服务的 Nmap 或 Metasploit,但专注于 LLM 安全。

主要特点

  • 支持广泛的LLM:包括 Hugging Face Hub 模型、Replicate、OpenAI API、AWS Bedrock、Litellm、可通过 REST 访问的模型,以及 GGUF 格式模型(如 llama.cpp)。
  • 命令行工具:开发环境主要为 Linux 和 macOS。
  • 插件化架构:通过探测(Probes)和检测器(Detectors)的组合来识别漏洞。

安装

可通过以下方式安装:

  1. 通过 pip 安装稳定版python -m pip install -U garak
  2. 从 GitHub 安装开发版python -m pip install -U git+https://github.com/NVIDIA/garak.git@main
  3. 从源码安装(建议使用独立 Conda 环境):
    • conda create --name garak "python>=3.10,<=3.12"
    • 激活环境后克隆仓库并执行 python -m pip install -e .

基本用法

  • 语法garak <选项>
  • 核心命令
    • --list_probes:列出所有可用探测模块。
    • --target_type:指定模型类型(如 openaihuggingface)。
    • --target_name:指定具体模型名称。
    • --probes:选择特定探测方法(如 --probes encoding 仅测试编码注入)。
  • 示例
    • 测试 OpenAI 模型的编码注入漏洞:garak --target_type openai --target_name gpt-5-nano --probes encoding
    • 测试 Hugging Face 上的 GPT2 模型是否易受 DAN 11.0 攻击:garak --target_type huggingface --target_name gpt2 --probes dan.Dan_11_0

支持的生成器(Generators)

即支持的模型接口类型:

  • Hugging Face:支持本地 Pipeline、Inference API 及私有端点。
  • OpenAI:需设置 OPENAI_API_KEY 环境变量。
  • Replicate:需设置 REPLICATE_API_TOKEN
  • CohereGroqAWS Bedrock 等:均需对应 API 密钥。
  • REST 生成器:可通过 YAML 配置连接到任意 REST 端点。
  • 测试专用生成器test.Blank(始终返回空字符串)、test.Repeat(回显提示)。

主要探测模块

Garak 包含多种探测方法,覆盖常见 LLM 风险:

  • blank:发送空提示。
  • atkgen:自动攻击生成(使用微调的 GPT-2 模型进行红队测试)。
  • badchars:Unicode 不可见字符扰动。
  • dan:各种 DAN 越狱攻击。
  • encoding:通过文本编码进行提示注入。
  • promptinject:实施提示注入攻击。
  • snowball:引发幻觉的复杂问题探测。
  • malwaregen:尝试生成恶意代码。
  • realtoxicityprompts:毒性内容检测子集。

结果解读

  • 运行后,每个探测模块会显示进度条和评估结果。
  • 如果任何提示生成了不良行为,该轮测试将标记为 FAIL,并显示失败率(如 840/840 表示总生成次数与合格次数)。
  • 日志记录
    • garak.log:调试信息。
    • .jsonl 运行报告:记录每次探测尝试及其评估状态。
    • 命中日志:记录成功触发漏洞的尝试。

技术架构

  • 代码按模块组织:
    • garak/probes/:探测类。
    • garak/detectors/:漏洞检测类。
    • garak/generators/:LLM 接口类。
    • garak/harnesses/:测试结构控制类。
  • 默认使用 probewise 测试框架,按探测模块顺序执行测试。
  • 支持通过继承基类自定义插件。

相关资源

通过系统化的探测与评估,Garak 帮助开发者识别和缓解 LLM 在安全、伦理和可靠性方面的潜在风险。

22. Xogot – Godot for iPad (xogot.com)

Xogot – iPad和iPhone原生Godot游戏引擎

Xogot是适用于iPad和iPhone的原生游戏开发环境,基于流行的开源游戏引擎Godot构建,允许用户在移动设备上创建和运行游戏。它为学生提供免费一年完整访问权限,并集成了专业级工具,支持2D和3D游戏开发、动画、调试和发布。

核心功能

  • 3D游戏开发:使用Godot的全面场景系统、高级灯光和灵活脚本创建沉浸式3D世界。
  • 2D游戏开发:提供图块地图编辑器、可缩放布局和专用2D流水线,便于创建像素完美的2D游戏。
  • 动画工具:支持触摸时间线编辑,可为角色、用户界面等添加动画。
  • 内置游戏视图:在游戏运行时选择、检查场景节点并与编辑器交互,实现即时测试。
  • 原生代码编辑器:100%原生GDScript编辑器,集成调试器,支持断点设置、程序状态探索和性能分析。
  • 本地构建与运行:允许在iPad或iPhone上快速构建和运行游戏,简化移动开发流程。
  • 输入支持:兼容外部蓝牙控制器、鼠标和键盘,为玩家提供多样输入选项。
  • 项目兼容性:基于最新Godot版本,项目可在iPad/iPhone和桌面Godot之间无缝打开修改。
  • 学习资源:集成API文档、教程和模板项目(如第一人称射击、平台游戏),加速开发入门。
  • 资产库:提供免费的高质量工具、脚本和2D/3D资产,丰富游戏内容。
  • 分享与导出:支持导出到WebAssembly在线分享,或使用桌面Godot发布到iPhone、iPad、Android、Windows、Steam等多平台。
  • 外部显示器支持:通过Stage Manager在iPad Pro或iPad Air上多屏扩展工作,提高效率。
  • 外部存储导入:可从iCloud、USB驱动器或GitHub(通过Working Copy)导入项目。
  • Apple Pencil支持:使用Apple Pencil精细编辑2D和3D场景。

优势与目标

Xogot采用iPad和iOS惯例,提供流畅的原生触屏体验,适合在移动设备上随时随地创作游戏。它专注于触摸交互,并支持专业级工作流,从学习到发布的一站式解决方案,无需商业分发限制。

23. Logica – Declarative logic programming language for data (logica.dev)

Logica 是一种开源的声明式逻辑编程语言,专为数据操作而设计。它扩展了逻辑编程的语法,使其在数据操作上更直观高效,并将程序编译为 SQL,从而让用户在享受逻辑编程语法便利的同时,也能利用 SQL 引擎的强大能力。

核心特性

  • 编译为 SQL:Logica 程序可编译为多种 SQL 方言,包括 DuckDB、SQLite、Google BigQuery 和 PostgreSQL,使其适用于广泛的应用场景。
  • 声明式语法:以“谓词”为基本构建块,通过定义规则来从输入数据(表示为谓词)派生输出谓词。
  • 易读与可扩展:相比复杂 SQL 查询,Logica 的数学逻辑语法在复杂度增加时仍保持清晰可读。
  • 支持算法逻辑:语法天然适合表达算法问题,如查找质数。

工作示例

  • 简单查询:通过规则定义查找昂贵书籍的谓词,等价于 SQL 的 SELECT ... WHERE 语句。
  • 复杂分析:例如,通过聚合和优化操作找出每年最受欢迎的名字。
  • 算法应用:用逻辑规则定义数字范围和复合数,从而推导出质数。
  • 实际数据分析:使用在线啤酒数据集,通过聚合和排序找出各州啤酒种类最多的城市。示例展示了如何定义谓词、进行聚合并调用优化函数。

逻辑编程背景

Logica 属于 Datalog 家族,是逻辑编程的一种形式,其基础与关系数据库理论相通。与 SQL 基于自然语言的语法不同,逻辑编程采用一阶命题逻辑的数学语法,Logica 旨在结合逻辑编程的简洁语法与 SQL 基础设施的执行效率。

适用场景

  • 已使用逻辑编程但需要更强计算能力的用户。
  • 数据存储在 BigQuery、PostgreSQL 或 SQLite 中的用户。
  • 希望学习逻辑编程并将其应用于大数据处理的用户。

安装与使用

  • 通过 pip 安装:python3 -m pip install logica
  • 程序保存为 .l 文件后,使用 logica <文件名> run <谓词名> 命令运行。
  • 示例中包括一个生成问候语的简单程序,展示基本使用方法。

Logica 是 Google 开源的非官方支持产品,采用 Apache 2.0 许可证。

25. Tiling with Three Polygons Is Undecidable (arxiv.org)

用三种多边形铺砌是不可判定的

本文档页面指向一篇题为《用三种多边形铺砌是不可判定的》的学术论文。其核心结论已体现在标题中:对于仅使用三种多边形进行平面铺砌的问题,其可判定性已被证明是不可判定的

理论背景与核心论断

铺砌问题,即询问一个给定的多边形集合是否能够无缝隙、无重叠地覆盖整个平面,是计算理论和离散几何中的一个经典问题。本文将已有的不可判定性结果进一步推进,证明即便将规则集限制为仅包含三种多边形,该问题的判定依然属于不可判定问题。这意味着不存在一个通用的算法,能够对任意给定的三种多边形集合,可靠地判定其是否能完成平面铺砌。

页面关联内容

该学术论文的页面还提供了以下关联信息,以支持研究:

  • 文献与引用工具:包括文献探索器等,用于辅助文献管理与引文分析。
  • 代码、数据与媒体:附有与论文相关的代码、数据集或多媒体资料,便于复现与验证。
  • 演示:提供了交互式或可视化的演示内容。
  • 相关论文推荐:基于搜索和推荐系统的工具,帮助发现相关研究。
  • 关于arXivLabs:介绍了arXiv的实验性项目框架,旨在通过社区合作开发网站新功能。

意义

该结论在理论上具有重要意义,它明确了即使在规则相对简单(仅三种形状)的情况下,铺砌问题的复杂性也不会降低到可判定的范畴内,从而深化了人们对形式化系统与计算极限的理解。

26. Cloudflare.com's Robots.txt (www.cloudflare.com)

该文件是 www.cloudflare.comrobots.txt 配置,主要目的是规范各类网络爬虫和AI工具的访问规则。

主要内容概述:

  1. 通用访问规则

    • 默认允许所有用户代理(User-agent: *)访问网站(Allow: /)。
    • 指定了站点地图位置:https://www.cloudflare.com/sitemap.xml
  2. 对AI/LLM爬虫的特别许可

    • 明确列出并允许以下多个AI相关的用户代理访问整个站点:
      • GPTBot
      • ChatGPT-User
      • Google-Extended
      • Anthropic-AI
      • Claude-Web
      • CCBot
      • PerplexityBot
      • Cohere-ai
  3. AI内容使用偏好声明

    • 通过 Content-Signal 指令声明了对AI内容使用的偏好:允许用于AI训练(ai-train=yes)、搜索(search=yes)和作为AI输入(ai-input=yes)。
  4. AI友好的内容资源指引

    • 文件注明了为AI/LLM优化的特定内容位置:
      • /llms.txt:针对AI/LLM的策展概览(Markdown格式)。
      • /llms-full.txt:适用于更大上下文窗口的完整扩展内容。
      • /*.md:所有页面的Markdown版本(在任何URL后追加 .md)。
      • /.well-known/agents.json:用于代理发现和能力描述。

总结:

该配置体现了 Cloudflare 对AI爬虫的开放态度,不仅普遍允许访问,还提供了结构化的AI友好内容(Markdown文件和llms.txt),并声明了明确的内容使用信号,旨在促进其网站内容在AI和LLM环境中的合规、透明使用。

28. Pentagon fails 7th audit in a row but says progress made (thehill.com)

该HTML内容并非文章正文,而是一个网站的防机器人(Bot)验证拦截页面。当访问被识别为可能由自动化程序(Bot)发起时,便会展示此页面,要求用户进行交互验证。

主要内容和功能如下:

  • 核心目的:通过“Press & Hold”(长按)交互,区分人类用户与自动化程序(Bot)。
  • 技术实现
    1. 页面会尝试加载一个名为 captcha.js 的脚本。如果主地址加载失败,会备用从 captcha.px-cloud.net 加载。
    2. 如果脚本加载完全失败,则会触发 _pxDisplayErrorMessage 函数,向页面注入一个详细的错误提示界面。
  • 错误提示界面
    • 包含“Before we continue...”标题和要求长按的提示。
    • 提供具体的排障建议:检查网络连接,或检查是否因广告拦截插件(Ad-blocker)拦截了验证码脚本。
    • 明确提示用户需将域名 captcha.px-cloud.net 添加至广告拦截插件的白名单,并提供了一个操作指南链接。
  • 后备支持:页面底部嵌入了技术支持邮箱 challengehelp@humansecurity.com,并会在邮件主题中自动附上参考ID和客户端信息,方便用户报告问题。

总结:该代码是一个动态生成的、用于拦截疑似机器人访问的验证页面。它不仅完成了基本的验证挑战,还考虑了脚本加载失败的各种情况,并提供了清晰的排错指引和客服联系通道。

29. All-in-one embedding model for interleaved text, images, and screenshots (blog.voyageai.com)

voyage-multimodal-3:统一的多模态嵌入模型

该文章介绍了 voyage-multimodal-3,一种新型的多模态嵌入模型。它在包含文本与视觉元素(如PDF、幻灯片、表格截图)的文档检索任务中,达到了当前最优水平。

核心创新与功能

  • 处理交错数据:与传统模型需分别处理文本或图像不同,voyage-multimodal-3 能够直接向量化交错的文本与图像序列,保留了两者间的上下文关系。
  • 消除复杂文档解析:该模型能直接从文档(PDF、幻灯片等)的截图中提取关键的文本和视觉特征(如字体大小、位置),无需依赖启发式的、常不准确的文档解析管线。
  • 解决模态间隙问题:基于CLIP的模型存在“模态间隙”,导致检索结果偏向与查询相同模态的内容。voyage-multimodal-3 通过在同一转换器编码器中处理所有模态,生成的嵌入能真正捕捉语义内容,检索性能在不同模态比例的数据中均保持稳定。
  • 架构基础:其架构类似于现代的视觉-语言转换器,这与基于CLIP的双塔结构有本质区别。

性能评估 模型在涵盖表格/图表检索、文档截图检索(ViDoRe基准)、文本到照片检索以及标准文本检索的54个数据集上进行了评估。

  • 多模态检索:在表格/图表、文档截图和文本到照片检索任务中,voyage-multimodal-3 的平均性能分别比次优模型(OpenAI CLIP large)高出41.44%、26.54%和6.55%。
  • 文本检索:在34个纯文本数据集上,其性能比OpenAI v3 large和Cohere multimodal/English1 v3分别高出5.13%和13.70%,与专用于文本的voyage-3模型性能持平。

可用性 该模型已发布,并提供免费额度。用户可通过其提供的笔记本示例或文档快速开始使用。

31. Memos – An open source Rewinds / Recall (github.com)

Pensieve 项目总结

项目简介:Pensieve(原名 Memos)是一个注重隐私的被动记录工具。它能自动捕获屏幕内容、构建智能索引,并通过便捷的 Web 界面检索历史记录。其核心理念是赋予用户对数据的完全控制权,避免将数据传输至不可信的第三方。

主要功能与特性

  • 隐私与数据控制:所有数据均存储在本地(默认位于 ~/.memos),代码开源,确保用户完全掌控数据流。
  • 安装与配置:支持通过 pip 安装,并可通过 Web 界面(http://localhost:8839/config)管理配置。
  • 搜索能力:支持全文搜索和向量语义搜索。
  • 智能记录:自动捕获屏幕,智能提取元数据(如浏览器 URL),并支持构建基于时间线的实体详情视图。
  • 集成与扩展
    • 可集成 Ollama 作为机器学习引擎,用于视觉搜索(需支持 OpenAI API 的模型)。
    • 兼容任何 OpenAI API 兼容模型(如 OpenAI、Azure OpenAI、vLLM 等)。
    • 通过插件扩展功能。
  • 平台支持:支持 macOS 和 Windows,Linux 版本开发中。

安装与快速开始

  1. 环境准备:需确保 Python 的 sqlite3 支持 enable_load_extension。推荐使用 conda 管理环境。
  2. 安装:推荐使用 pipxuv 以确保路径稳定。Windows 用户需注意进行额外配置(如启用长路径、排除 Defender 扫描目录、避免 OneDrive 同步)。
  3. 初始化与启动:运行 memos enable && memos start 初始化并启动服务,该命令会同时启动录屏、Web 服务并设置开机启动。
  4. 权限:在 macOS 上,需授予屏幕录制权限。若 Python 解释器路径变更,需重新授权。

数据库支持

  • 默认:使用 SQLite
  • 推荐:对于数据量大或要求高检索速度的场景,推荐使用 PostgreSQL(需安装 pgvector 扩展)。可通过 Docker 快速部署 PostgreSQL 容器。
  • 迁移:提供了从 SQLite 迁移到 PostgreSQL 的专用命令 (memos migrate)。

使用与优化

  • 实体详情视图:可查看截图及丰富的元数据,并按时间线上下文导航。
  • Agent Skill:v0.33.0 引入,允许支持 Skill 的 AI 工具(如 Claude Code)通过自然语言查询截图存档。
  • 嵌入模型选择:根据主要语言(中文/英文)选择合适的嵌入模型以优化语义搜索。
  • 视觉语言模型:可启用 VLM(如通过 Ollama 运行 minicpm-v 模型)实现更全面的图像内容理解,但对硬件(GPU)和功耗有较高要求。
  • 索引策略
    • 默认为采样处理以平衡性能与负载。
    • 可通过调整 watch 配置参数改变处理频率,或执行 memos index --force 进行全量索引。
    • 系统设有空闲处理策略,在检测到系统空闲且处于预设时间窗口内时,自动处理之前跳过的文件。

隐私、存储与性能

  • 隐私:所有数据本地化处理,用户可完全卸载并清除所有数据。
  • 存储空间:录屏数据(默认每5秒一次,有去重机制)和数据库索引均会占用存储空间,需根据使用情况评估。
  • 功耗:OCR 和嵌入/索引任务消耗 CPU/GPU 资源。系统会动态调整处理频率,并在使用电池时降低功耗。

开发者指南

项目启动后实际运行三个核心服务:

  1. memos serve:Web 服务。
  2. memos record:录屏程序。
  3. memos watch:监听录屏事件并动态提交索引请求。 开发者可分别运行这些服务以便于调试和查看日志。
32. Nash equilibria in Ballmer's binary-search interview game (quuxplusone.github.io)

本文分析了鲍尔默猜数字面试游戏中的纳什均衡问题。游戏规则为:鲍尔默在1到N之间想一个数字,面试者进行猜测。若第k次猜中,可获得递减的奖金(如首次猜中得1000美元,第二次得990美元,以此类推)。核心问题是:在双方理性博弈下,该游戏的预期收益(即期望值)是多少?

研究表明,若面试者使用简单的二分搜索,面试官(鲍尔默)可以通过避开二分搜索的关键节点来降低预期收益。因此,问题转化为寻找双方最优的混合策略,即纳什均衡。文章通过分析N=3、4、5的简化版本来演示计算方法:

  • 3个数字版本:面试官的最优混合策略是以概率0.4、0.2、0.4分别选择数字1、2、3。面试者的最优策略是以概率0.2、0.6、0.2分别猜1、2、3,若未中则猜剩余端点。此均衡下,游戏的期望收益为22美元。
  • 4个数字版本:面试官应均匀随机选择四个数字。面试者应优先猜中间数字(2或3),后续策略根据情况决定。均衡期望收益为30美元。
  • 5个数字版本:面试官选择数字的概率比例为5:3:2:3:5。面试者采用混合策略(如以4/9概率猜中间数字3并根据反馈猜端点,4/9概率猜2或4并执行二分搜索等)。均衡期望收益为37.77美元。

对于原始的100个数字游戏,计算极其复杂。文章指出,已有多位研究者尝试使用计算机(如scipy.optimize.linprog)或数学推导来逼近其纳什均衡的期望收益。根据后续更新,当前已知的最佳策略可将平均猜测次数降至约5.83次,对应的期望收益约为16.67美分(相对于每次游戏的总赌注)。更精确的理论估算认为,平均猜测次数介于5.80371至5.81087次之间。尽管鲍尔默曾声称有人能瞬间给出正确答案,但作者对此表示怀疑。

33. Military's UFO-hunting aerial surveillance system detailed in report (www.twz.com)

美国军方UFO追踪空中监视系统细节披露

美国国防部近期通过全域异常解决办公室(AARO)的年度报告,披露了其可部署、可重新配置的传感器套件 GREMLIN 系统的详细信息。该系统由乔治亚理工学院研究所专门为收集**不明异常现象(UAP)**数据而开发。

1. GREMLIN系统:技术与目标

  • 构成:系统集成在一个中心节点中,包含2D/3D雷达、远程光电/红外传感器、GPS、卫星通信、飞机跟踪系统和射频频谱监测等多种传感器。
  • 功能:能融合多种传感器及开源数据,对单一目标进行多光谱监视,相当于一个“盒装集成防空装置”。
  • 目标:用于检测、跟踪和表征UAP,旨在建立国家安全设施周边“正常空中活动”的基线,以识别异常现象。
  • 部署状态:已于2024年3月成功测试并收集数据,目前正在进行为期90天的“生命模式”数据收集,具体部署位置保密。

2. UAP报告分析(2023年5月至2024年6月)

  • 总量:共收到485起UAP目击报告
  • 地理分布:近半数报告来自美国国内外军事资产和传感器附近。东亚海域是热点区,收到100起报告。
  • 解决情况
    • 49起被确认为气球、鸟类或无人机等常规物体。
    • 243起(截至2024年6月1日)建议结案,均为卫星、飞机等普通物体。
    • 21起被评估为需由情报界(IC)和科技(S&T)合作伙伴进一步分析。
    • 东亚的100起报告中,40起已解决为气球或无人机,其余因数据不足存入“活跃档案”。
  • 关键结论:AARO未发现UAP是外星技术或来自地球对手的证据,也没有发现突破性技术迹象。主任乔恩·科斯洛斯基强调“存在异常”,但无法联系到外星活动。

3. 问题与后续行动

  • 报告偏见:UAP报告集中于国家安全站点附近,可能源于对手监视、传感器偏见或两者兼有。AARO计划先建立安全站点基线,再扩展到其他地区。
  • 污名化问题:报告UAP的污名化依然存在,这可能让对手利用敏感区域进行数据收集而不被报告。AARO正与情报界合作降低相关事件的分类等级,以便向公众发布更多信息,包括于2024年11月19日公布部分案例视频。
  • 国会监督:AARO的报告和发现面临国会质询。2024年11月19日将举行公开听证会,专门审查AARO的活动。此前的国会听证会中出现了与AARO发现相悖的证词,特别是关于秘密UAP回收计划的声称。
  • 批评与质疑:AARO受到部分UAP倡导者的批评,被指掩盖真相。该办公室在回应国会关于UAP卫星图像共享等问题的质询时也受到质疑。

总结

AARO通过部署GREMLIN系统,旨在以科学、数据驱动的方式系统调查和识别UAP。当前分析表明,绝大多数报告可归于常规现象或数据不足,尚无证据指向外星或敌对先进科技。然而,报告集中和污名化问题凸显了监测挑战。AARO的工作正置于国会审查和公众关注之下,后续将发布更多信息以增强透明度。

34. How to setup self hosted wiki for your startup (themythicalengineer.com)

这篇文章推荐初创公司使用自托管的 Wiki.js 来替代昂贵的商业知识库工具(如 Confluence、Notion),以大幅降低团队成本。

核心观点:

  • 商业工具的缺点:Confluence、Notion 等工具功能丰富但价格昂贵(通常按用户月付),随着团队增长成本会快速上升。
  • 自托管方案的优势:成本固定,与员工数量无关。作者根据三年以上的生产环境使用经验,推荐 Wiki.js 作为优秀替代方案。
  • Wiki.js 的特点:部署简单(可通过 Docker Compose 快速完成),资源需求低(基础配置需 4GB RAM、2 vCPU;若增加 Elasticsearch 则需 8GB RAM)。
  • 成本对比:以 AWS EC2 为例,运行 Wiki.js 的月成本最低约 16 美元,最高不超过 33 美元。相比之下,400 名用户使用商业 Wiki 月费可能超过 2000 美元。

部署与配置:

  • 基础架构:提供完整的 Docker Compose 文件,包括三个服务:PostgreSQL 数据库、Wiki.js 本身,以及可选的 Elasticsearch 搜索引擎。
  • 生产环境建议:为使其成为生产就绪方案,作者建议进行以下配置:
    1. 设置自定义域名(如 wiki.yourcompany.com)。
    2. 配置 DNS 和负载均衡器。
    3. 实现与 Google 的单点登录集成。
    4. 将自助注册限制为公司域名。
    5. 设置 EC2 实例的定期 AMI 备份。

总结:文章为初创公司提供了一种经济、可控且可扩展的文档知识库解决方案,通过 Wiki.js 的自托管部署,能够以极低的固定成本支持大规模用户和页面,同时具备生产环境所需的关键功能。

35. Gandhi's Letter to Hitler (1940) (www.mkgandhi.org)

摘要

该文件为1940年12月24日圣雄甘地写给阿道夫·希特勒的一封信。甘地以朋友自称,并阐明其毕生致力于超越种族、肤色或信仰,促进全人类友谊的立场。他承认希特勒的勇气和爱国精神,但明确指出希特勒的许多行为(如对捷克斯洛伐克的羞辱、对波兰的侵犯和对丹麦的吞并)被视为骇人听闻、违背人类尊严。

甘地表明,印度的立场是既抵抗英国帝国主义,也同样反对纳粹主义,认为二者本质相同,仅程度有别。印度采用非暴力不合作的方式反抗英国统治,这是一种基于“不合作”原则的抗争,旨在通过不屈服的精神使统治无法维持,而非在战场上击败英国。甘地强调,这种非暴力力量足以对抗世界上所有暴力的组合。

信中,甘地不希望借助德国力量来结束英国统治。他呼吁希特勒停止战争,并建议将英德争端提交给一个国际仲裁法庭裁决,指出武力胜利只能证明破坏力强大,而仲裁才能尽可能体现正义。甘地以欧洲人民在圣诞期间渴望和平为由,恳请希特勒为和平努力,并提及印度在当时已暂停自身的和平斗争。信末,甘地表示此信也适用于意大利的墨索里尼。