2024-04-29

30 篇热帖

1. Webb captures iconic Horsehead Nebula in unprecedented detail (www.esa.int)

韦布望远镜以前所未有的细节拍摄标志性马头星云

NASA/ESA/CSA的詹姆斯·韦布空间望远镜(JWST)捕捉到了天空中最具辨识度天体之一——马头星云迄今最清晰的红外图像。这些观测以前所未有的空间分辨率,以全新的视角展示了该标志性星云的复杂性。

星云概况 马头星云(又称巴纳德33)位于猎户座方向的猎户座B分子云西侧,距离地球约1300光年。它由一个坍缩的星际物质云形成,并因附近一颗高温恒星的照射而发光。星云周围的气云已经消散,但突出的“马头”柱状结构由更难被侵蚀的致密物质团块构成。天文学家估计,该星云约有500万年的寿命。韦布的新图像聚焦于星云独特尘埃和气体结构顶部的受照边缘。

科学重要性:光子主导区 马头星云是一个著名的光子主导区。在这种区域中,来自年轻大质量恒星的紫外线在恒星周围的完全电离气体和恒星诞生的云团之间,形成了一个大部分为中性、温暖的气体和尘埃区。该区域的紫外线辐射强烈影响气体化学性质,并是主要的加热源。由于其邻近和近乎侧视的几何结构,马头星云是天文学家研究光子主导区物理结构、气体和尘埃化学特性演化以及辐射与星际物质相互作用的最佳天体之一。

韦布的新发现 借助韦布望远镜的NIRCam和MIRI仪器,一个国际天文学家团队首次揭示了马头星云受照边缘的小尺度结构。他们还探测到一个垂直于光子主导区前沿的条纹状特征网络,其中包含被星云光蒸发流裹挟的尘埃颗粒和电离气体。这些观测使天文学家能够研究尘埃消光与发射的影响,并更好地理解星云的多维形状。

后续研究与背景 天文学家下一步计划分析已获得的星云光谱数据,以验证所观测物质在物理和化学性质上的演化。这些观测属于韦布GTO项目#1192,相关研究结果已被《天文学与天体物理学》期刊接受发表(Abergel等人,2024年)。

关于韦布望远镜 韦布是迄今发射到太空的最大、功能最强的望远镜。它是NASA、ESA和CSA之间的国际合作项目。ESA提供了发射服务(使用阿里安5火箭),并负责开发火箭适配器及采购发射服务。ESA还提供了主要仪器NIRSpec以及MIRI仪器50%的份额。

2. Husband and wife outed as GRU spies aiding bombings and poisonings across Europe (theins.ru)

俄罗斯间谍夫妇:潜伏欧洲的GRU破坏行动协助者

核心事实: 尼古拉和埃琳娜·沙波什尼科夫是一对长期潜伏在捷克的俄罗斯“非法”特工(即无外交掩护的间谍),他们以军火商身份为掩护,实质上是俄罗斯军事情报局(GRU)下属的 29155部队 提供关键支持。该部队专事暗杀与破坏任务。

主要活动与揭露:

  1. 掩护身份与定居:夫妇二人以“苏联异见者”为借口,于1990年代初在捷克获得政治庇护,后通过伪造文件等手段入籍捷克。
  2. 公司掩护:丈夫尼古拉加入前捷克特工彼得·贝纳蒂克创办的军火贸易公司 Imex集团,从事销售与咨询。家庭成员也陆续加入该公司。
  3. 希腊安全屋:2009年,夫妇在希腊哈尔基季基购置了一座别墅,名为“埃琳娜别墅”。这座别墅多年来一直是29155部队成员在欧洲的秘密据点,部队指挥官安德烈·阿维里亚诺夫及其他成员曾多次前往并在此附近活动。
  4. 关键破坏行动
    • 捷克Vrbětice爆炸案(2014年):夫妇为29155部队的特工亚历山大·米什金和阿纳托利·切皮格(后因在英国索尔兹伯里使用诺维乔克毒剂行刺而闻名)提供了进入两座弹药仓库的便利。这些仓库储存着计划运往格鲁吉亚、乌克兰及叙利亚反对派(受西方支持对抗阿萨德政权)的武器。爆炸摧毁了这批物资,造成两名员工死亡。
    • 保加利亚军火商中毒案(2014年):夫妇与保加利亚军火商埃米利安·格布雷夫建立联系。29155部队随后对格布雷夫实施了投毒,当时他被视为向乌克兰供应弹药的关键人物。
    • 其他行动:夫妇还涉嫌协助29155部队在保加利亚实施一系列爆炸与纵火事件(最早始于2011年),以及可能涉及2013年一艘从保加利亚出发、运往越南的乌克兰货船在黑海神秘失踪事件。
  5. 通信与指挥链:埃琳娜直接与29155部队指挥官阿维里亚诺夫通过邮件通信,提供关于Imex集团武器贸易的情报,并协助安排特工的后勤。她被视为夫妇中的“上级非法特工”,可能监督其丈夫及继子的活动。
  6. 生活奢华与资金来源:尽管夫妇在Imex集团的收入微薄,但他们通过离岸账户、不明现金注入等方式维持了在捷克和希腊的奢华生活,资金来源可疑。
  7. 决定性证据:调查机构发现埃琳娜持有一本 专门编号段的秘密俄罗斯护照,该编号段仅分配给29155部队成员。她曾使用这本护照旅行,并在莫斯科秘密接受了普京亲自颁发的“俄罗斯联邦英雄”勋章。
  8. 调查与否认:2023年,捷克当局将夫妇列为嫌疑人并寻求问询。二人通过希腊当局提交声明,否认指控,声称是捷克出于“未知利益”的政治迫害受害者,并指Vrbětice爆炸是“工业事故”。丈夫尼古拉于2024年2月在希腊因心脏病去世。

总结: 这对夫妇的案例揭示了GRU 29155部队如何利用深度潜伏的“非法”特工网络,以合法商业活动为掩护,在北约国家境内长期实施情报收集、后勤保障和直接破坏行动,服务于克里姆林宫的地缘政治目标,具体表现为阻挠对乌克兰、格鲁吉亚及叙利亚反对派的武器供应。

3. 93% of paint splatters are valid Perl programs (2019) (www.mcmillen.dev)

研究概述

该论文旨在探讨编程语言领域的一个长期开放问题:是否能在墙上随意涂抹油漆而不形成有效的Perl程序?研究结论是肯定的,即确实存在无法被解析为有效Perl程序的油漆溅痕。

研究方法

研究采用经验主义方法,使用光学字符识别(OCR)软件对油漆溅痕图像进行识别和分析。通过OCR将图像转换为文本字符串,然后评估这些字符串是否符合Perl语言的语法,从而判断其是否为有效程序。

主要发现

  • 有效性比例:分析表明,仅有93%的油漆溅痕能被解析为有效的Perl程序。
  • 非有效示例:论文呈现了七个无法解析为有效Perl程序的油漆溅痕具体案例。
  • 补充材料:提供了所有油漆溅痕的图像及其对应的Perl源代码。对于无法解析的图像,以红色标注“Not valid”。当OCR识别出多种有效程序时,作者根据其审美偏好选择了“最有趣”的版本。

有趣的例子

论文在勘误部分补充了几个后期发现的有趣案例:

  1. 某溅痕被识别为字符串 lerzfijglpFiji-j,在Perl中计算结果为数字0。
  2. 某溅痕被识别为字符串 -*?,同样计算结果为0。
  3. 某溅痕被识别为字符串 ;i;c;;#\\?z{;?;;fn':.;,计算结果为字符串 c
  4. 某溅痕被识别为字符串 ;E,'__',计算结果为字符串 E__

发表信息

  • 会议:该论文被接受并发表于2019年4月1日在匹兹堡举行的SIGBOVIK 2019会议。
  • 奖项:获得了“无意参与奖”(Unwitting Participation Ribbon),该奖项旨在表彰那些包含真实产物、从而促进开放科学和有效拖延的研究。
  • 获取方式:论文可通过Google Docs阅读或下载PDF。研究数据(100张油漆溅痕图像)已公开提供。

作者备注

作者说明,由于不擅长使用GitHub,相关源代码暂未公开。

4. A small lathe built in a Japanese prison camp (www.lathes.co.uk)

文章标题: 一台小型车床在日本战俘营中建造

摘要: 这篇文章介绍了一台在日本战俘营中建造的小型车床。它指出,在家制造车床可能困难重重,但这一真实案例鼓励人们尝试挑战性项目,并突出了人类在逆境中展现的聪明才智和创造力。

5. I made a new backplane for my consumer NAS (codedbearder.com)

为Terramaster F2-221 NAS设计定制背板的总结

背景与目标

作者在Terramaster F2-221 NAS上安装了NixOS系统,但因NAS仅提供两个SATA端口(均被4TB硬盘占用),操作系统只能安装在外接USB SSD上。为解决外接设备不便和可靠性问题,作者计划设计一个新的背板,以添加内部启动存储设备。

逆向工程与引脚分析

  • 挑战:原背板使用非标准引脚排列的PCIe边缘连接器,无法直接扩展SATA端口。
  • 研究方法:通过分析Terramaster F5-422(4/5盘位型号)的高分辨率背板图片,发现其使用ASM1061芯片(PCIe Gen2 x1转SATA控制器)扩展SATA端口。
  • 引脚定义:通过逆向工程,确定了连接器的引脚功能,包括电源(12V、5V、3.3V)、SATA数据线、PCIe信号(TX、RX、REFCLK)和PERST#复位线。部分引脚功能未明确。

设计与方案选择

  • 电源电路:原背板包含分立元件组成的负载开关电路,用于安全热插拔硬盘。作者改用集成负载开关IC(NCP45521-L)简化设计。
  • 启动存储选择:考虑过通过ASM1061添加SATA M.2 SSD,但最终选择NVMe SSD方案,因为:
    • NVMe直接使用PCIe,无需额外控制器,设计更简单、成本更低。
    • NVMe SSD价格更低(如Patriot P300 128GB仅14.90欧元)。
    • 虽然受限于PCIe Gen2 x1带宽(速度与SATA相当),但对NAS启动盘足够。

原型制作与测试

  • PCB设计:在KiCad中设计4层背板,集成M.2 NVMe插槽和电源转换电路。原型尺寸受限于NAS机箱安装空间。
  • 焊接挑战:使用热风枪和焊膏手动焊接DFN封装IC,通过功率域短路检查验证。
  • 测试结果:原型板成功识别并启动NVMe SSD,同时原硬盘正常工作。未识别的CLKREQ线被永久拉低,虽不支持PCIe ASPM节能模式,但对始终运行的NAS影响不大。

最终版本(V1.0)

  • 优化:移除降压转换器(直接使用PCIe连接器的3.3V电源),调整PCB布局以改善安装对齐,添加品牌标识。
  • 验证:最终版本通过btrfs文件系统完整性检查和多周稳定运行测试。
  • 性能:NVMe SSD速度受限于PCIe Gen2 x1带宽(缓存读取速度2279 MB/s,磁盘缓冲读取407 MB/s),但满足系统盘需求。

成果与资源

  • 作者成功为NAS添加了内部NVMe启动盘,消除了外接USB SSD的不便。
  • 完整的KiCad项目已开源在GitHub,包含原理图、PCB设计和制造文件。
6. Atomic nucleus excited with laser: A breakthrough after decades (www.tuwien.at)

激光激发原子核:数十年来的重大突破

核心突破

物理学家寻找数十年的“钍跃迁”(thorium transition)首次成功被激光激发。这一突破将经典量子物理与核物理相结合,为革命性的高精度技术(如核钟)铺平了道路。相关成果由维也纳工业大学(TU Wien)和德国联邦物理技术研究院(PTB)团队联合发表在《Physical Review Letters》上。

科学背景与挑战

利用激光操纵原子或分子已是常规技术,但原子核的能级差通常是电子能级差的千倍以上,常规光子能量不足以改变其状态。然而,原子核体积更小、受外部电磁场干扰更少,是理想的精密测量对象。自20世纪70年代起,科学家推测钍-229原子核拥有两个极其接近的能级,理论上可用激光激发。但由于需要达到百万分之一电子伏特的极高能量精度,寻找该跃迁能量如同大海捞针。

关键技术与方法

不同于使用电磁阱研究单个钍核的传统方法,TU Wien团队开发了一种特殊的掺钍晶体。该技术允许激光同时照射约 $10^{17}$ 个钍原子核。这种海量样本的方法显著放大了物理效应,缩短了测量时间,并大幅提高了捕捉到能量跃迁的概率。2023年11月21日,团队精确击中正确的跃迁能量,首次获得了清晰的激光激发原子核信号。

应用前景与科学意义

  • 超高精度核钟:利用激发钍跃迁的光振荡作为计时基准,可制造出精度远超现有最佳原子钟的新型“核钟”。
  • 地球物理探测:通过极高精度的测量分析地球重力场,为寻找矿产资源或预测地震提供指示。
  • 基础物理探索:为探究自然常数在时间和空间中是否发生微小变化等基础物理谜题提供全新的测量手段。
11. Show HN: I made a privacy friendly and simple app to track my menstruation (play.google.com)

Lady Log 月经周期跟踪应用摘要

应用概述
Lady Log 是一款隐私友好、简单易用的月经周期跟踪应用,旨在帮助用户快速记录和监控月经周期,仅显示最关键数据。应用免费无广告,所有功能均可无偿使用。

核心功能

  • 快速记录:通过一键操作开始记录下一个月经周期。
  • 笔记功能:允许用户为特定日子添加备注,以记录重要事项。
  • 个性化设计:提供多种主题选择,用户可自定义应用的外观和体验。
  • 日历视图:集成日历功能,便于查看和记录过去的周期,并显示未来周期的预测。
  • 统计数据:提供平均周期长度、上次经期持续时间等统计信息,帮助用户分析周期趋势。
  • 生育日显示:可选功能,基于用户输入的经期数据估计生育日,但仅作参考,不可用于避孕。

数据安全
应用注重用户隐私,无需注册即可使用,所有数据仅存储在用户本地设备上,确保数据所有权和安全性。

12. Show HN: Dotenv, if it is a Unix utility (github.com)

dotenv 工具概览

dotenv 是一个轻量级的 Unix 工具,用于从当前目录下的 .env 文件加载环境变量。它允许用户通过简单地在命令前添加 dotenv 来设置环境变量,或者通过在脚本的 shebang 行中使用 dotenv 来自动加载变量。

主要功能与用法

dotenv 从指定文件(默认为当前目录的 .env)读取键值对形式的环境变量,然后在当前环境中执行用户指定的程序。如果未找到 dotenv 文件,程序将在现有环境中运行。

使用方式

  • 命令前缀:在任意命令前添加 dotenv,例如 dotenv sh -c 'echo $MY_VAR'
  • 脚本 shebang:在脚本首行使用 #!/usr/bin/env -S dotenv bash

环境变量配置

通过设置 DOTENV_PATH 或兼容性的 DOTENV_CONFIG_PATH 环境变量,可以指定自定义的 dotenv 文件路径,而非默认的 .env

文件格式规范

.env 文件遵循简单格式:

  • 每行一个键值对,以等号 = 分隔。
  • 键和值周围的空白字符会被忽略。
  • 支持以 # 开头或行内的注释。若值中包含 #,则需将整个值用引号括起。
  • 值可选用单引号或双引号包裹。引号内支持转义序列,如 \n(换行)、\t(制表符)、\"(双引号)等。

安装方式

dotenv 是一个自包含的小型程序。在具备 C 编译器和 make 的类 Unix 系统上,可通过标准编译安装过程(文章中未完整给出具体命令,但通常包括配置、编译和安装步骤)。默认会将 dotenv 二进制文件安装到 /usr/local/bin,手册页安装到 /usr/local/share/man/man1

基本信息

  • 作者:Yifan Gu
  • 日期:2024年4月28日
  • 相关命令env(1)
14. Memary: Open-Source Longterm Memory for Autonomous Agents (github.com)

Memary: 为自主代理提供开源长期记忆

项目简介 Memary 是一个开源项目,旨在为自主AI代理提供长期记忆能力,模拟人类记忆以促进类人推理,推动人工通用智能(AGI)的发展。其核心是集成到现有代理中,自动管理代理的记忆。

快速开始

安装

  1. 环境要求:Python 版本 <= 3.11.9。
  2. 安装方法
    • 本地安装:创建虚拟环境,然后运行 pip install -r requirements.txt
    • pip安装:直接运行 pip install memary

模型配置 Memary 支持两种模型部署方式:

  • 本地运行(默认):通过 Ollama 运行本地模型,例如 LLaMA 3(8B/40B)作为大语言模型(LLM),LLaVA 作为视觉模型。
  • 云端API:可显式指定使用 OpenAI 的 gpt-3.5-turbo(LLM)或 gpt-4-vision-preview(视觉模型)。

运行准备

  1. 环境文件:在项目根目录创建 .env 文件,配置必要的 API 密钥(如 OpenAI、Perplexity、Google Maps、Alpha Vantage)和数据库连接信息(FalkorDB 或 Neo4j)。
  2. 用户人格:根据模板更新 user_persona.txt 文件,定义用户的个性化信息。
  3. 启动应用:进入 streamlit_app 目录,运行 streamlit run app.py 启动图形界面。

基本使用与功能扩展

基本用法 通过导入 ChatAgent 类并传入相关配置文件和人格文件路径,即可初始化一个记忆代理。可以配置默认工具集,例如搜索、视觉、定位、股票查询等。

自定义与管理

  • 多代理管理:使用 FalkorDB 时,支持创建多个知识图谱,通过 user_id 区分不同代理,实现多代理记忆的独立管理。
  • 添加/移除工具:可以轻松为代理添加或移除自定义函数工具。

核心概念与设计原则

设计原则

  • 自动生成记忆:初始化后,代理的记忆随交互自动更新,无需大量额外开发。
  • 记忆模块:追踪并分析用户的知识偏好,用于后续分析。
  • 系统改进:模拟人类记忆的演化过程,并提供代理改进速率的分析。
  • 记忆回放:(计划中)支持回溯历史聊天,查看特定时刻的代理记忆状态。

核心组件:代理

  • 当前提供了一个基于 ReAct 的代理实现示例,包含搜索工具(查询知识图谱)、视觉工具和定位工具。
  • 搜索工具会优先查询知识图谱,若无相关实体则执行外部搜索。
  • 注意:未来版本将移除内置的 ReAct 代理,以支持接入任何第三方代理。

记忆与知识系统

知识图谱

  • 存储与查询:使用图数据库存储知识,利用 LlamaIndex 将文档添加为知识节点,使用 Perplexity 进行外部查询。
  • 检索策略:采用递归检索,通过识别查询中的关键实体、构建深度为2的子图进行查询。处理多实体时使用多跳推理合并子图,以提高检索效率。
  • 写回机制:将代理的最终响应注入知识图谱。

记忆模块 受微软研究 K-LaMP 启发,包含两个子模块:

  1. 记忆流:捕获所有进入知识图谱的实体及其时间戳,反映用户知识的广度(接触过哪些概念)。支持时间线分析和主题提取。
  2. 实体知识存储:跟踪每个实体的提及频率和最近性,反映用户知识的深度(对哪些概念更熟悉)。支持按相关性排序实体、分类实体以及分析实体排名随时间的变化。

上下文窗口 为个性化代理响应,新的上下文窗口整合了:

  1. 代理的原始响应。
  2. 从知识图谱中检索到的最相关实体。
  3. 经过总结的聊天历史(以避免令牌溢出),通过语言模型将历史对话压缩成摘要。

许可证

Memary 基于 MIT 许可证发布。

16. Ollama v0.1.33 with Llama 3, Phi 3, and Qwen 110B (github.com)

Ollama v0.1.33 版本摘要

核心更新

  • 版本号: v0.1.33
  • 支持新模型:
    • Llama 3
    • Phi 3
    • Qwen 110B

关键要点

  1. 版本迭代:本次更新为 Ollama 工具的新版本发布。
  2. 模型扩展:新增对三个重要大型语言模型的本地运行支持:
    • Llama 3:Meta 开发的新一代开源模型。
    • Phi 3:微软推出的高效小型模型系列。
    • Qwen 110B:通义千问团队开发的大参数规模模型。

总结

Ollama v0.1.33 版本通过集成 Llama 3、Phi 3 和 Qwen 110B 三个模型,进一步扩展了本地运行大型语言模型的能力,使用户能够在本地环境中更方便地使用这些先进的AI模型。

17. Mini ponds are 'tiny universes' of biodiversity for gardens and windowsills (www.bbc.com)

迷你池塘是花园和窗台上的“微小宇宙”,能显著提升生物多样性。利用花盆、旧水槽、水桶等任何能储水的容器,即可快速建造。研究人员在英格兰格洛斯特郡仅用塑料花盆、岩石和本地池塘植物建造三个迷你池塘后,一周内便吸引到蜘蛛、蚂蚁、瓢虫等昆虫,随后陆续出现水蚤、蚊幼虫,三周后更有一只成年青蛙入住。

池塘是生物多样性的热点。英国皇家鸟类保护协会的阿德里安·托马斯指出,池塘能提供多样化的微生境——冷水区、开阔水域、浅滩及边缘区域,通过“边缘效应”形成远超花园其他区域的生命多样性。可能吸引的物种包括普通蛙、光滑蝾螈、潜水甲虫、蜻蜓幼虫、石蛾幼虫以及鸟类和蝙蝠。然而全球两栖动物种群正急剧衰退,超过40%面临灭绝风险,受疾病、气候变化和栖息地破坏威胁最为严重。

花园池塘并非孤立存在,它们能共同构建连接池塘、湖泊与河流的“蓝色走廊”,有助于缓解城市化对生物多样性的负面影响。研究证实,小水体对城市野生动物同样具有重要保护价值。英国淡水生境信托机构的技术总监娜奥米·尤尔德指出,池塘是地球上最古老的生境类型之一,涵盖从微藻到高等动物的几乎所有分类群。

过去一个世纪,英国和欧洲超过50%的池塘已消失,部分区域仅存10%。建造迷你池塘是对抗这一趋势的积极行动。实用建议包括:无需频繁补水(水位变化有益);勿放鱼(以免吞食无脊椎动物或蝌蚪);勿从外部取蛙卵(防疾病传播);需耐心等待池塘自然平衡。

即使在狭小空间如窗台花盆,也能建造迷你池塘。这些迅速繁衍生命的“微小宇宙”,为个人带来惊喜,亦为更广阔的生态系统贡献力量。

18. You can't just assume UTF-8 (csvbase.com)

文章摘要:《你不能假设 UTF-8》

文章探讨了计算机文本编码的复杂性,以及如何通过统计方法检测未知文本的字符编码。主要观点如下:

字符编码基础与问题

  • 计算机使用不同的二进制编码表示字符。例如,字符 "A" 在多种编码中均表示为 01000001,因此基本拉丁字母通常能兼容。
  • 然而,对于非基本字符(如欧元符号 "€"),不同编码的表示截然不同(例如 UTF-8、UTF-16、Win-1252、GB18030、Big5 等),强行假设为 UTF-8 会导致乱码。

编码检测的挑战

  • 某些格式(如 JSON)强制指定编码(UTF-8),或可通过元数据(如 HTTP 头)声明编码。
  • 但许多格式(如 CSV)缺乏内置编码标记,且实际文件可能存在错误标签(如 Excel 默认导出 Win-1252 编码的 CSV,而非 UTF-8)。

统计检测方法

当编码未知时,可通过启发式统计方法推断,主要分为两步:

  1. 字节级启发式

    • 分析字节模式:例如,UTF-16 因使用双字节常包含空第二字节;字节顺序标记(BOM)可识别 UTF-16 变体。
    • 通过特定字节序列(如 00111100 00100001 更可能对应 UTF-8 的 <! 而非 UTF-16 的罕见字符)缩小候选编码范围。
  2. 字符级启发式

    • 用于区分非 Unicode 单字节编码(如 Win-1252 与 KOI8)。
    • 方法:将文本按候选编码解码后,统计字符频率并与已知语言频率表(如字母分布、常见字母对)比对,选择最匹配的编码。

方法有效性

  • 统计方法效果良好,远胜于盲目假设 UTF-8。
  • 其原理与垃圾邮件过滤等语言统计技术相似,且能辅助推断文本语言(如浏览器提示翻译页面)。

实际意义

  • 自动编码检测体现了“保守发送、宽容接收”的 Postel 定律。
  • 尽管启发式可能引发争议,但考虑到编码错误普遍存在(如 Excel 导出问题),自动化检测仍是必要的权宜之计。
19. Exploit.education (exploit.education)

exploit.education是一个专注于漏洞分析、漏洞利用开发、软件调试、二进制分析以及网络安全相关问题的在线学习资源平台。主要提供以下虚拟机和学习模块:

  • Nebula:包含多种简单和中级挑战,涵盖Linux权限提升、常见脚本语言问题、文件系统竞争条件等,适合Linux利用新手入门。
  • Phoenix:介绍基本的内存破坏类型漏洞,包括缓冲区溢出、格式化字符串漏洞和堆利用,基于“老式”Linux系统(无现代防护机制),提供X86与ARM架构下的32位和64位关卡,是进阶模块,适合完成Nebula后继续学习。
  • Fusion:在Phoenix基础上拓展,聚焦更高级和包含现代安全防护机制的内存破坏、格式化字符串和堆利用情境,适合已有Linux利用经验并希望深入学习防护系统绕过与利用的学员。
  • Main Sequence:源于2012年Ruxcon CTF赛事,涵盖渗透工具使用、二进制分析、基础密码学分析、客户端漏洞利用、密码破解和网站渗透等多样化实战挑战。
  • Protostar:主要用于存档,功能已被Phoenix取代。内容包括基础的缓冲区溢出、格式化字符串漏洞和堆利用,基于无现代防护的老式Linux环境。

平台通过这些虚拟机,构建了系统性的网络安全实战练习环境,满足从初学者到进阶用户的不同学习需求。

22. 500 Byte Images: The Haiku Vector Icon Format (2016) (blog.leahhanson.us)

Haiku矢量图标格式(HVIF)深度解析

核心设计目标

HVIF是Haiku操作系统专为文件图标设计的自定义矢量图像格式。其核心目标是生成极其微小的矢量图标文件(典型大小为500-700字节),使其能直接存储在文件的元数据(inode)中。这一设计使得操作系统读取文件夹时,每个文件仅需一次磁盘读取即可同时获取文件信息和图标,显著提升显示性能。HVIF专注于存储抽象的符号化图标,而非文件预览缩略图。

与传统位图的对比

传统操作系统(如BeOS)使用位图图标,需要为不同显示尺寸(如16x16、32x32像素)存储多个独立文件,总大小约1280字节。随着图标尺寸需求增长(如64x64、128x128),位图文件大小呈平方级增长。而HVIF等矢量格式通过数学描述图形,仅需一个文件即可无损缩放至任意尺寸,且文件大小恒定。

HVIF的核心结构与优化策略

HVIF采用二进制格式(而非SVG的文本XML),通过多种设计极致压缩文件体积:

  1. 分段结构与魔术数字:文件以4字节魔术数字6e 63 69 66(“ficn”的小端序)标识。随后分为三个主要部分:样式(Styles)、路径(Paths)、形状(Shapes),每个部分均以对象数量开头。

  2. 样式编码:存储颜色和渐变。利用类型字节(如STYLE_TYPE_SOLID_GRAY_NO_ALPHA)隐含信息(如不透明度),并为常见颜色模式(如纯灰度)提供特殊编码,大幅节省空间。渐变支持多种类型(线性、圆锥等)和标志位来控制精度。

  3. 路径编码:存储图形的轮廓。路径由一系列线段(直线或曲线)构成。HVIF采用多项压缩技术:

    • 自定义坐标格式:使用1或2字节编码整数坐标。1字节覆盖核心画布范围(-32至95),2字节扩展范围并支持非整数。
    • 命令路径:允许每条线段指定类型(直线、垂直线、水平线、曲线)。垂直线/水平线可仅用单个坐标表示,较通用直线节省空间。作者发现,Icon-O-Matic编辑器在可优化时未充分利用此特性,存在一定空间浪费。
    • 曲线表示:仅支持三次贝塞尔曲线,每条曲线需6个坐标值。
  4. 形状与变换:形状将样式和路径组合。可通过标志位附加变换矩阵,矩阵使用自定义的24位浮点数格式存储,以进一步压缩体积。文件限制最多256个样式/路径/形状,以平衡复杂度和文件大小。

性能权衡与意义

使用矢量格式的缺点是渲染时需实时将矢量转换为位图,比直接读取位图更耗CPU。然而,由于磁盘读取延迟(SSD约20微秒,硬盘约10毫秒)远高于内存和CPU操作,减少磁盘读取次数带来的性能收益远大于渲染开销。将图标嵌入文件元数据,使读取文件夹时磁盘读取量减半,是Haiku一项关键性能优化。

总结

HVIF是一个专为极小文件尺寸和快速磁盘读取优化的二进制矢量图标格式。它通过精心设计的分段结构、自定义数值编码、对常见图形元素的特化压缩以及严格的复杂度限制,在保证图标可无损缩放的同时,将文件大小控制在几百字节,甚至小于单张小位图。这体现了Haiku在文件系统效率与用户体验上的独特设计哲学。

23. Open-source alternative to Heroku, Vercel, and Netlify (github.com)

Dokploy:一个免费、可自托管的 Heroku/Vercel/Netlify 开源替代方案

Dokploy 是一个免费且支持自托管的平台即服务(PaaS),旨在简化应用程序和数据库的部署与管理。

✨ 核心功能特性

  • 应用部署:支持部署多种语言的应用程序(如 Node.js, PHP, Python, Go, Ruby 等)。
  • 数据库管理:可创建和管理多种数据库,包括 MySQL, PostgreSQL, MongoDB, MariaDB, libsql 和 Redis。
  • 自动化备份:支持将数据库自动备份到外部存储位置。
  • Docker Compose 支持:原生集成 Docker Compose,便于管理复杂应用。
  • 多节点扩展:利用 Docker Swarm 实现应用在多节点集群上的扩展。
  • 一键模板部署:提供开源项目模板(如 Plausible, Pocketbase, Calcom 等),可一键部署。
  • Traefik 集成:自动集成 Traefik 以实现路由和负载均衡。
  • 实时监控:可监控每个资源的 CPU、内存、存储和网络使用情况。
  • 容器管理:轻松部署和管理 Docker 容器。
  • CLI/API 管理:可通过命令行或 API 来管理应用和数据库。
  • 通知系统:部署成功或失败时,可通过 Slack, Discord, Telegram, 邮件等方式发送通知。
  • 多服务器支持:支持远程部署和管理应用到外部服务器。
  • 自托管:可在自己的 VPS 上自行托管 Dokploy。

🚀 快速开始

您可以通过以下命令在您的 VPS 上进行安装:

curl -sSL https://dokploy.com/install.sh | bash

如果想跳过安装流程,也可以直接使用 Dokploy Cloud 云服务。

详细的文档请访问:docs.dokploy.com

🤝 社区与贡献

  • 可在 Discord 上寻求帮助、提供反馈和参与讨论。
  • 提供视频教程。
  • 欢迎参与贡献,具体信息请查看《贡献指南》。
25. Angle-grinder: Slice and dice logs on the command line (github.com)

Angle-grinder:命令行日志切片与聚合工具

核心功能 Angle-grinder 是一个命令行工具,用于对日志文件进行实时解析、过滤、聚合和分析。它专为在没有Graphite、Kibana、Splunk等专业分析平台的环境下,仍需进行复杂日志分析的场景设计。其核心特点是:

  • 高性能:可处理超过100万行/秒的数据(简单流水线高达500万行)。
  • 实时终端UI:结果在终端中实时更新显示。
  • 函数式编程:基于一个简单的函数式查询语言。

安装 提供适用于多种平台的二进制文件和源码编译方式:

  • macOS:通过brew install angle-grindersudo port install angle-grinder安装。
  • FreeBSD:通过pkg install angle-grinder安装。
  • Linux (MUSL兼容):使用提供的curl命令下载并安装。
  • 跨平台:可通过cargo install从Rust源码编译安装。
  • 自更新:支持使用agrind --self-update进行自我更新。

查询语法 查询由过滤器和一系列操作符通过管道|连接而成。

agrind '<过滤器> | 操作符1 | 操作符2 | ...'

示例:统计JSON日志中每个log_level的数量:

agrind '* | json | count by log_level'

1. 过滤器 用于从输入流中选择行:

  • *:匹配所有行。
  • filter-me:大小写不敏感匹配,支持通配符*
  • "filter-me":大小写敏感匹配,无通配符。
  • 逻辑运算符:ANDORNOT, 括号()用于分组。

2. 操作符 分为非聚合操作符和聚合操作符。

非聚合操作符 (1行输入 -> 0或1行输出)

  • json:从字段(默认为整行)中解析JSON数据。
  • logfmt:解析logfmt格式数据。
  • split:通过分隔符(默认为逗号)分割字段。
  • parse:使用模式(*匹配任意文本)提取字段。
  • parse regex:使用正则表达式(需命名捕获组)提取字段。
  • fields:选择(only/+)或排除(except/-)特定字段。
  • where:根据布尔表达式过滤行。
  • limit:限制输出行数(正数为前N行,负数为后N行)。
  • 字段表达式<表达式> as <新字段名>,支持数学运算、比较和函数(如now(), length(), concat()等)。
  • if:条件表达式,if(条件, 值1, 值2)

聚合操作符 (对数据分组统计) 语法:(聚合操作符 [as 新名])+ [by 分组键1, 分组键2]

  • count:计数,可附加条件。
  • sum:求和。
  • min/max:求最小/最大值。
  • average:求平均值。
  • pXX:计算第XX百分位数(如p50)。
  • sort:按指定字段升序(默认)或降序排序。
  • timeslice:将时间戳截断到指定时间间隔(如5m)以便按时段分组。
  • total:计算某个字段的运行总计。
  • count_distinct:计数不同值的数量(注意内存消耗)。

3. 别名 (实验性功能) 可将常用查询模式(如apache)保存在.agrind-aliases文件中,在查询中直接使用别名,以简化复杂操作。

输出控制

  • 非聚合数据:逐行写入终端。
  • 聚合数据:在终端中以表格形式实时更新,直到输入流结束。
  • 输出格式选项 (--output)
    • json:JSON格式。
    • logfmtk=v格式。
    • format=<格式化字符串>:自定义格式。

示例查询

  1. 统计GitHub仓库各版本的发布下载次数(结合jq)。
  2. 计算按主机分组的第50百分位响应时间:tail -F logs | agrind '* | json | pct50(response_time) by host'

贡献

  • 使用Rust (>=1.26)构建,提交PR前需使用cargo fmt格式化代码。
  • 贡献方向包括:定义新别名、添加新操作符、改进文档和错误报告等。
  • 改进错误报告项目:重点在于提升查询解析、语义分析和运行时错误的信息准确性和可读性,涉及lang.rs(语法/解析树)、typecheck.rs(语义分析)和errors.rs(错误构建)等模块。

类似项目

  • Sumoshell:Angle-grinder的重写原型。
  • lnav:功能更全面的终端日志分析器。
  • visidata:终端电子表格应用。
26. Claude Émile Jean-Baptiste Litre (en.wikipedia.org)

Claude Émile Jean-Baptiste Litre 是一个虚构人物,于1978年由滑铁卢大学的 Kenneth Woolner 创造,旨在为升(litre)的符号使用大写字母 L 提供理由。

国际单位制(SI)通常仅在单位以人名命名时允许使用大写字母,但由于小写字母 l 在某些字体中易与大写字母 I 或数字 1 混淆,因此允许小写 l 和大写 L 同时作为升的符号。美国国家标准与技术研究院(NIST)推荐使用大写 L,这一做法在加拿大和澳大利亚也被广泛采用。

Woolner 在1978年4月的《CHEM 13 News》杂志上以愚人节恶作剧形式发布了这一虚构故事,声称 Claude Litre 生于1716年2月12日,是一位酒瓶制造商之子,并在其虚构的科学生涯中提出了体积测量单位,该单位在他1778年去世后被纳入 SI。该恶作剧后被错误地作为事实刊登在 IUPAC 期刊《Chemistry International》上,随后被撤回。

实际上,升的名称源于旧法国干体积单位“litron”。文章还提及相关概念,如起源神话和虚假词源。

27. Call-to-Action on SB 1047 – Frontier Artificial Intelligence Models Act (www.affuture.org)

这篇文章是呼吁公众采取行动反对美国加州SB 1047法案(《前沿人工智能模型法案》)的倡议。

核心观点: 文章认为,该法案在“有效利他主义”活动人士影响下,将对开源AI和整个科技行业造成灾难性影响。它旨在建立一个拥有警察权力的“前沿模型部门”,可能导致开发者因“思想罪”入狱。由于许多云计算和AI公司总部在加州,法案将产生全球性影响。

呼吁采取的四项行动:

  1. 提交反对意见信: 通过指定链接向法案作者和参议院拨款委员会提交书面反对意见,并可在Context Fund的分析文档中添加公开评论。
  2. 联系加州议员: 特别呼吁加州居民致电或致函所在选区的州参议员和众议员,明确表示反对并说明法案对科技工作者、初创公司和开源社区的具体负面影响。
  3. 扩大传播: 将此信息告知朋友、媒体、相关出版物以及自己的社交媒体关注者,尤其是面向机器学习、科技和初创公司的受众,以提高法案的知晓度并揭示其反对率。
  4. 时间紧迫性: 文章强调需要尽快行动,最好在本周内完成,并指出有策略认为在众议院层面阻止该法案更为可能。

主要依据与论据:

  • 法案存在超过11类的错误,且无法通过修正全部解决。
  • 该法案被宣传为“支持小人物”,但文章呼吁通过个人经历(尤其是开源贡献者、创始人、投资者和科技从业者)的事实来反驳这一论点。
  • 根据近期公众反应,加州科技行业对此法案的反对率估计为10:1,但若消息无法传至萨克拉门托(加州首府),议员们可能会误认为该法案没有争议。
28. Project Habbakuk: Britain’s ice “bergship” aircraft carrier project (2017) (99percentinvisible.org)

Project Habbakuk:英国的冰制“冰山航母”计划(2017)

背景与核心概念 在二战初期,德国潜艇(U-Boat)在大西洋对盟军航运造成了毁灭性打击。为应对这一威胁并突破钢铁等原材料短缺的限制,英国联合作战总部的发明家杰弗里·派克提出了一个大胆设想:建造一艘由冰构成的巨型、可移动且“永不沉没”的浮动岛屿,用作航空母舰。该舰设想长度超过一英里,拥有用于飞机起降的顶部平台和可容纳飞机的中央空腔,旨在成为史上最大的机器,其巨大尺寸和可用水修复的特性使其理论上无法被击沉。

关键创新:派克里特 纯冰具有脆性、易融化和不稳定的缺点。派克的解决方案是开发一种名为“派克里特”的复合材料,由木浆和冰混合而成。木浆起到了类似钢筋加固混凝土的增强作用,使材料更坚固、更抗融化,并具备可加工性。为验证其性能,分子生物学家马克斯·佩鲁茨在伦敦史密斯菲尔德肉类市场地下秘密进行实验(当时他以冰川和冰晶结构专家的身份被招募)。派克将派克里特样品展示给联合作战总司令蒙巴顿勋爵,后者将其带给了温斯顿·丘吉尔首相,成功演示了其漂浮和抗融化特性。

项目进展与原型测试 尽管在测试中发生过派克里特碎块弹跳导致一位海军上将受伤的事故,项目仍获得了快速推进的批准,并被命名为“哈巴谷工程”(引用《圣经·哈巴谷书》中令人难以置信之意)。1943年,项目在加拿大艾伯塔省帕特里克湖上秘密进行。由替代役人员建造了一个30x60英尺、重约1000吨的缩小比例原型,仅用一台单马力马达驱动的制冷系统维持其在夏季不融化。原计划在原型成功后,将订购一艘全长一英里、重达220万吨的完整舰船,需消耗巨量木浆、隔热材料、木材和钢铁。

面临的挑战与项目终止 然而,项目逐渐暴露出复杂性。原型测试中发现的“冷流”(冰的变形)问题增加了对钢铁的需求。全尺寸舰船还需要满足7000英里航程、支持重型轰炸机、防鱼雷等严苛要求。最终,多重因素导致项目被取消:钢铁需求超出预期;盟军已在偏远地区修建新机场,降低了对航母的依赖;飞机续航能力因副油箱技术而提升;且估计高达1000万英镑的造价对实验性舰船而言过于高昂。

遗产 尽管从未投入实战,帕特里克湖上的原型在无人维护的情况下,历经三个炎热的加拿大夏季才完全融化,证明了派克里特材料的潜力。其残骸至今仍沉于湖底,并由一块水下铭牌标记,位于加拿大贾斯珀国家公园内。

29. A leadership crisis in the Nix community (lwn.net)

4月21日,部分匿名作者及非匿名签署者向Nix社区和创始人Eelco Dolstra发布公开信,呼吁其辞职,信件指控其领导方式削弱了被赋予治理和管理任务成员的权力。该公开信已获得超过100个签名,主要问题包括决策权、利益冲突及治理结构。

决策权问题

Nix项目由NixOS基金会管理,该基金会的五人董事会由Dolstra主持,成员无任期限制且自行任命。董事会负责行政、法律和财务等任务,并为项目团队提供自组织框架,但不负责技术领导或全权决策。公开信指控Dolstra利用其创始人身份屡次推翻团队既定决策,具体事例包括:

  • 在董事会形成对NixCon赞助政策共识后,Dolstra强行重新讨论,破坏共同决定;
  • 阻碍长期贡献者成为代码审查员或基于RFC流程通过的构建系统更新;
  • 形成“无权负责任”文化,消耗贡献者积极性,尤其是裁决团队成员害怕权力被Dolstra直接或间接削弱。

NixOS裁决团队成员也承认,信件较为真实地反映了团队现状,并指Dolstra曾阻碍改善措施。从团队角度看,权力受限主要源于社区文化冲突,而不仅仅是基金会问题。

资深贡献者Pierre Bourdon亦表示,他不同意信件语调,但事实描述与其经历一致。

利益冲突

信件指控Dolstra和其雇主Determinate Systems存在利益冲突,尤其是与军事承包商Anduril的关系。Anduril多次试图成为NixCon赞助商,虽遭社区反对但最终仍成为2024年NixCon赞助商,Dolstra对此强烈推动。相关会议纪要与公开信均记录了社区对该赞助的反对态度。

Dolstra被要求澄清与Anduril的关系,以及Determinate Systems是否与其有合作,但Co-founder Graham Christensen以保密协议为由拒绝直接回应。此外,Dolstra曾被指隐瞒自己是Determinate Systems创始人的身份,这一说法被其否认。公开信还对Determinate Systems的产品、团队决策自主权与Nix主安装器的持续损坏表示担忧。

行动呼吁

公开信最终呼吁Dolstra立即从董事会辞职,并至少六个月与项目完全脱离,为治理改革留出空间,并警告若不辞职,将支持项目分叉。部分签署者强调信件是社区长期问题的警示,主张董事会全面轮换成员、赋予社区更多权力,维护开源精神。

社区影响已显现,多位Nixpkgs贡献者和维护者接连离职,至今已有24位维护者退出。

Dolstra回应

4月26日,Dolstra回应称董事会职责仅限于财务与法律工作,他在Nixpkgs和NixOS已无显著参与,并强调自己没有更多正式权威。他重申开放赞助政策,主张不应因公司背景拒绝参与,并否认隐瞒与Determinate Systems的关系,称其自公司创办起即公开。他明确反驳该公司企图影响社区的说法,并邀请因社区问题感到不受欢迎者加入Determinate Systems团队。

目前Dolstra依然担任董事会主席,并未表现出因压力辞职意愿,Nix社区分歧与分叉风险持续存在。

30. The Shitty Technology Adoption Curve (2022) (pluralistic.net)

糟糕技术采用曲线:从边缘群体到主流社会的监控升级

核心概念

“糟糕技术采用曲线”指有害技术通常先应用于弱势群体(如囚犯、儿童、移民),逐步向上层特权群体蔓延,通过逐步正常化来实现技术压迫的普及。

职场监控软件(Bossware)的兴起

  • 疫情加速:疫情将家庭转变为工作延伸空间,职场监控软件从边缘工具迅速扩散至白领阶层。
  • 历史脉络:该技术最初用于监控最边缘化的工人(如种族和性别少数群体),后通过“奢侈监控”进入中产阶级家庭(如智能家居摄像头)。
  • 现代泰勒主义:数字监控工具延续了20世纪“科学管理”的思想,通过量化指标(如击键次数、停留时间)评判员工,却往往脱离实际工作价值。

具体案例与问题

  1. 生产率悖论:员工为迎合监控指标(如点击量、票据关闭数)而进行无效工作,导致实际生产力下降(古德哈特定律)。
  2. 工资盗窃:监控系统通过琐碎指标克扣工资(如金融高管因未持续击键被扣薪)。
  3. 人性化缺失:临终关怀牧师、社会工作者等职业被强制量化,导致服务从“ compassionate care”转变为“分数追逐”。
  4. 隐私侵犯:软件监测厕所休息时间、家庭活动,甚至通过摄像头和麦克风持续监视。

行业伪科学与矛盾

  • 技术公司宣传:Bossware开发商常以“生产力优化”为名,实则为控制员工提供借口。
  • 内部抵制:监控技术公司自身员工也因过度监控而流失,迫使企业弱化监控功能以留住人才。
  • 数据风险:如微软365等平台提供企业间对标分析,可能泄露商业机密给竞争对手。

社会隐喻与反思

  • 企业人格化:企业如同“失控的酗酒父亲”,通过控制他人获得安全感,最终损害自身。
  • 权力关系:技术监控反映了管理层对员工自主权的不信任,实际破坏了工作自主性与创造力。
  • 工会作用:工会威胁能有效遏制监控滥用(如亚马逊为减少工会支持而削弱监控)。

未来展望

  • 技术压迫的升级路径仍在继续(如学校监控学生上厕所时间)。
  • 解决关键在于挑战管理层权力结构,而非单纯限制技术本身。