2024-02-01

50 篇热帖

1. My favourite Git commit (2019) (dhwthompson.com)

文章《我最喜欢的Git提交》通过分析一个示范性的Git提交信息,阐述了高质量提交信息的重要性和价值。作者以在政府数字服务署(GDS)工作期间,开发者丹·卡利提交的一个提交(题为“Convert template to US-ASCII to fix error”)为例,详细说明了其出色之处。

该提交信息的优点包括:

  1. 解释变更原因:不仅说明了“做了什么”,更详细阐述了“为什么”要变更。具体描述了遇到的测试错误(ArgumentError: invalid byte sequence in US-ASCII)及其触发条件,明确了问题根源。
  2. 便于搜索:包含了具体的错误信息文本,使得其他遇到相同问题的人可以通过代码仓库搜索(如git log --grep)快速找到历史解决方案。
  3. 讲述完整故事:详细记录了问题的发现、调查过程(如逐步排查、使用特定命令)以及最终的解决方法,为代码库的演变留下了完整上下文。
  4. 传播知识与提升团队能力:在信息中记录了调查时使用的具体命令(如结合find-exec参数、file --mimeiconv工具等),这为代码审查者和后来查阅者提供了实用的工具使用技巧,有助于团队整体知识提升。
  5. 体现人文关怀与建立信任:结尾处加入了个人感受(“一小时的光阴一去不返”),增加了人情味,提醒每个变更背后都是一个在当时条件下做出最佳决策的人,有助于构建团队间的理解与信任。

作者认为,尽管这是一个详尽程度的极端例子,但它完美示范了如何通过提交信息提供变更背景、帮助他人学习并丰富团队对代码库的共同理解。文章最后推荐了两篇相关资源供进一步阅读。

2. Damn Small Linux 2024 (www.damnsmalllinux.org)

Damn Small Linux 2024 摘要

DSL 2024 是一个为低规格 x86 计算机重新设计的紧凑 Linux 发行版,专注于打包大量应用程序到小体积中,强调功能、小尺寸和低依赖性。它包含许多文本应用程序,便于在终端窗口或 TTY 中使用。

主要应用程序类别

  • 窗口管理器:仅提供 Fluxbox 和 JWM,两者轻量、直观且易用。
  • 网络浏览器:四个基于 X 的浏览器,包括 Firefox-esr(HTML5 兼容)、NetSurf GTK(快速且内存友好)、Dillo(超轻 GUI 浏览器)和 Links2(文本及轻 GUI 浏览器)。
  • 办公应用:AbiWord 文字处理器、Gnumeric 电子表格、Sylpheed 邮件客户端和 Zathura PDF 查看器。
  • 多媒体:MPV(视频和音频播放)、XMMS(轻量级音频播放器)。
  • 其他 GUI 应用:mtPaint(图形编辑)、gFTP(支持 FTP、SFTP 和 SCP)、Leafpad(快速文本编辑)、zzzFM(文件管理器,源自 antiX)。
  • 游戏:三个基于 GUI 的轻量级游戏。
  • 终端应用程序:包括 Ranger 文件管理器、VisiData(CSV 和电子表格工具)、FZF(模糊查找器)、Tmux(终端复用器)、Mutt 邮件客户端、Cmus 音乐播放器、CDW CD 刻录工具、Htop 进程查看器、SurfRaw(终端搜索)、天气应用、MPV 终端包装器、Vim 和 Nano 编辑器、五个终端游戏、以及 W3M 和 Links2 等终端兼容浏览器。

重新制作的原因和目标

原版 DSL 于 2002 年发布,大小仅 50MB,适合当时计算机环境。但如今,应用程序、内核和驱动程序的大小大幅增长,使得制作一个包含完整桌面体验的 50MB 发行版变得不切实际(缺乏驱动程序和基础应用)。DSL 2024 的新目标是将尽可能多的可用桌面功能打包到 700MB 的 ISO 中,以适合旧计算机(如那些无法启动 USB 但能使用 CD 驱动器的设备),从而延长硬件使用寿命,减少电子废物。

技术基础和优化

DSL 2024 基于 antiX 23 i386,而 antiX 又依赖于 Debian 项目。为了达到 700MB 的大小限制,进行了以下优化:

  • 减少语言支持,仅包括德语、英语、法语、西班牙语、葡萄牙语和巴西葡萄牙语。
  • 移除源代码、手册页和文档,但提供下载脚本来恢复这些文件。
  • 启用 apt 包管理器,允许用户轻松安装缺失的软件。 尽管进行了优化,DSL 2024 是 antiX 的派生和精简版本,某些功能可能不完整或缺失,任何 bug 可能源于 DSL 的修改。

其他信息

文章提供了下载链接、论坛支持、商品购买、捐赠选项、历史 DSL 版本订阅和互联网营销帮助。感谢部分致谢了 Debian、antiX、托管提供商、壁纸设计师、家人和用户。

3. Bard's latest updates: Access Gemini Pro globally and generate images (blog.google)

Bard 最新更新,包括在全球范围内使用 Gemini Pro 和生成图像。

  • Gemini Pro 全球扩展:即日起,Bard 中的 Gemini Pro 将支持超过 40 种语言以及 Bard 目前支持的 230 多个国家和地区。这为用户提供了更强大、更快速的协作能力,其理解、推理、总结和编程能力均得到提升。
  • 图像生成功能:在大多数国家/地区,用户现在可以在 Bard 中使用英语免费生成图像。此功能由更新的 Imagen 2 模型支持,旨在提供高质量、照片级真实的图像。用户只需输入描述(例如“创建一张狗骑冲浪板的图像”),Bard 即可生成自定义的视觉内容。
  • 双语响应核查扩展:用于核实 Bard 响应准确性的“双检”功能已从英语扩展到 40 多种语言。用户点击“G”图标即可查看网络上是否有内容支持其回复。
  • 安全与责任:图像生成遵循 Google 的 AI 原则。Bard 使用 SynthID 在生成的图像中嵌入数字水印以区分。同时,通过技术防护和训练数据安全措施,限制暴力、冒犯性或露骨内容,并避免生成真实人物的图像。

这些更新旨在使 Bard 成为一个更强大、更易于全球访问的 AI 协作工具。

4. How paid Wikipedia editors squeeze you dry (en.wikipedia.org)

《维基百科付费编辑如何榨干你的钱财》摘要

核心事件: 一篇调查报告揭露了一家自称“Elite Wiki Writers”或“Wiki Moderator”(以及其他多个名称)的公司实施的广泛诈骗行为。该公司通过社交媒体(如LinkedIn)、电子邮件或其网站招揽客户,承诺收费为其在维基百科上创建或维护页面。

骗局手法:

  1. 高额收费与低成功率: 价格从750美元起,常以需要额外工作或维基百科要求提高为由,迅速涨至数千甚至上万美元。然而,少于5%的客户最终能成功在维基百科上发布实际文章。许多提议的文章根本未写成草稿,或写成草稿后因未改进而被自动删除。
  2. 虚假宣传: 该公司使用维基百科的商标(如“地球拼图”标志),并可能谎称其编辑是“资深管理员”。调查表明,其所谓的管理员身份是冒用的,且公司与维基媒体基金会(WMF)没有任何关系。
  3. 隐瞒规则: 公司不向客户透露维基百科的关键规则,特别是付费贡献必须公开披露的规定(需声明雇主、客户等信息)。他们欺骗客户称可以“保护”文章,或文章发布后不会显示付费痕迹。
  4. 剥削性操作: 公司地址疑似为虚拟办公地址。其运作模式被描述为掠夺性的,利用客户对维基百科流程的不了解进行诈骗。2023年估计涉及超过100名客户,诈骗收益可能高达50万至100万美元以上。

受害者情况:

  • 受害者包括小企业主、作家、艺术家、律师、非营利组织、创业者等各类希望获得维基百科页面宣传的个人。
  • 案例显示,受害者被诱骗支付巨额费用后,常面临文章质量低劣、公司以各种借口要求追加费用、难以联系、信用卡支付异常等问题。一些受害者在试图退款时甚至受到骚扰。

识别诈骗的警示信号:

  • 主动联系: 如果对方是先主动通过邮件或社交媒体联系你,很可能是诈骗。
  • 缺乏披露: 未在网站上公开其编辑账户名(违反维基媒体基金会使用条款)。
  • 承诺不实: 声称能“保证”发布页面,或承诺文章不会被标记为付费编辑。
  • 虚假身份: 冒充管理员,但无法提供其编辑的付费贡献声明。
  • 关键问题测试:
    • 当你付费发布文章时,他们是否需要在维基百科上披露你的名字?
    • 管理员在编辑或接受付费文章时,是否需要声明其付费状态?
    • 他们能否提供其编辑的付费贡献声明链接?
    • 如果对以上任一问题回答“否”,则极有可能是诈骗。

背景与影响:

  • 此类“付费编辑公司”骗局并非首次出现(如2015年“Operation Orangemoody”丑闻)。
  • 维基百科志愿者社区已非常警惕并删除推广性内容,许多付费编辑公司成功率极低(甚至为零),但受害者对此不知情。
  • 此类骗局损害了维基百科的商标和声誉,浪费了志愿者大量的审核时间。

自我保护建议:

  • 对任何人声称可以为你创建维基百科页面保持极度怀疑。
  • 无需为维基百科页面付费;绝大多数要求付费的公司都是诈骗。
  • 如已受骗,可尝试通过信用卡发起退款(charge back)。
  • 将收到的相关垃圾邮件报告给邮箱提供商,将社交媒体上的招揽信息报告给平台。
  • 保存所有沟通记录、发票和支付凭证作为证据。
5. Origami Simulator (origamisimulator.org)

折纸模拟器概述

折纸模拟器是一个用于模拟和可视化折纸折叠过程的工具,展示了多个折纸模式及其在模拟器中的行为、设计者和关键特性。

主要模式和描述

  • 常规纸飞机模式

    • 设计者:Scott Pakin
    • 需要缓慢移动折叠百分比以确保正确折叠;模式三角化时会形成许多瘦三角形,这些三角形在折叠过程中不稳定。
  • 基于Spidron Tessellation的模式

    • 设计者:Kendrick Feller
    • 基于Daniel Kwan的Spidron Tessellation和Ekaterina Lukasheva的类似螺旋镶嵌设计。
  • Ullagami模式

    • 设计者:Ullagami
    • 原始模式可从Ullagami获取。
  • Polygami生成的模式

    • 文件由Polygami应用程序生成,该应用由Shahul Alam、Lauren Huang和Mahi Shafiullah创建,用于为方格网格上的任何2D体素排列生成折叠模式。
  • 用户交互功能

    • 允许模式折叠后,可通过高级选项中的“允许用户交互”功能,拖动中心顶点以切换到替代的倒置配置。
  • 刚性折纸模式

    • 原始设计:Emmanuel Mooser;折叠模式由William Gardner修正和修改,用于刚性折纸。
  • 基于Flower Tower的模式

    • 基于Chris K. Palmer的Flower Tower设计;折叠模式文件由William Gardner生成。
  • Goran Konjevod模式

    • 设计者:Goran Konjevod
    • 建议将这些模式折叠到约65%并让它们稳定成弯曲形状。

总结

折纸模拟器涵盖了多种折纸模式,每个模式都有特定的设计背景和模拟器中的交互要求,突出了模式稳定性、用户自定义功能以及生成工具的应用。

6. Sega AI (www.smspower.org)

Sega AI计算机概述

Sega AI计算机是世嘉于1986年底发布的一款稀有且鲜为人知的教育型计算机系统。本文首次公开了其完整系统ROM、26张MyCard卡带及14盘录音带的数据转储,并配合MAME开发团队实现了早期模拟支持。

系统规格与特点

  • 硬件配置:采用16位NEC V20处理器(5MHz),128KB RAM,配备Yamaha V9938显示芯片(支持256x212分辨率)与SN76489 PSG音频芯片。
  • 扩展能力:可通过Sound Box扩展YM2151 FM音源,系统内置ADPCM语音合成芯片(含两枚128KB语音ROM)。
  • 输入方式:大面积触摸面板(附带覆盖膜)、八方向摇杆、三按钮及麦克风输入。
  • 存储媒介:支持128KB/256KB容量的MyCard卡带(类似世嘉Master System卡带设计),以及立体声磁带(数据通道与音频通道分离,载入时可播放背景音乐)。
  • 软件主题:所有已发现软件均为日语教育类,主要面向儿童,后期(1988-1989)作品质量有所提升。

“人工智能”与软件生态

系统搭载Prolog语言解释器(128KB ROM),允许有限的自然语言处理,但主要用于教育软件而非通用编程。美国原型机可能支持LISP,但未获取。软件生命周期较长(1986-1989),存在多个版本迭代,可能与学校采购合同有关。

研究历程与现存资料

  • 硬件获取:团队于2014年通过日本Yahoo拍卖购得首台设备及15款软件,后续陆续收集更多卡带与外围设备。系统主要销往日本学校(如东京青森南幼儿园)。
  • 软件列表
    • 已找到:包括《AI日记》《爱丽丝世界》《宇宙列车》《灰姑娘迷宫》等多款教育游戏,以及英语学习、音乐节奏等系列。
    • 缺失软件:《爱迪生实验室》《林肯自由》《格林童话屋》等10余款仅见于广告或宣传资料的游戏。

模拟器支持与资源

  • MAME驱动:基于Chris Covell的硬件研究,由Wilbert Pol与Fabio Priuli开发。建议通过MAME界面或命令行加载,可选Sound Box模拟。
  • 操作设置:键盘映射建议(WASD控制触摸光标,方向键对应摇杆)。
  • 已知问题(截至2024年1月):语音采样偶尔错乱,磁带与键盘暂未模拟。
  • 公开数据:系统ROM(590KB)、卡带ROM(4.9MB)、覆盖膜扫描、磁带录音(FLAC格式,约1.2GB)、硬件手册、广告及杂志扫描等均可下载。

参与人员与致谢

研究由Chris Covell主导硬件逆向与数据转储,Omar Cornut组织资源收集与扫描,多家机构与个人提供资金与技术支持(详见文末名单)。SMS Power!网站长期致力于世嘉8位系统资料收集,本次发布旨在推动对该罕见系统的历史研究与保存。

8. I moved my blog from IPFS to a server (neimanslab.org)

文章摘要:作者将博客从IPFS迁移回服务器的原因

作者Neiman曾是IPFS+ENS网站的早期实践者(2019年起),并参与构建了相关工具(Almonit浏览器扩展、Esteroids搜索引擎)和个人博客。本文阐述了他为何最终将博客迁回传统服务器。

核心理想与现实差距

作者最初被去中心化网站的理论优势吸引:访问量越大,网站应越健壮(抗DDoS)、抗审查可扩展(类似BitTorrent的“做种”模式)。他曾设想用户可通过“Pin Me”按钮帮助托管网站,但实际体验并非如此。

主要实践挑战

1. 用户参与度低

  • 多数IPFS用户通过网关访问而非运行自己的节点,与BitTorrent默认分享机制不同。
  • 即使用户运行节点,访问网站也不等于pin(保存)内容

2. 网站动态更新困难

  • 网站内容频繁更新,需持续pin最新版本。
  • 现有方案(IPNS或ENS)要求pin者监听区块链事件或自动更新,技术门槛高

3. 内容访问可靠性问题

  • 作者无法确保博客在主流网关、IPFS节点、Brave浏览器及Helia(JS库)中稳定可用
  • 发现内容能否访问依赖中心化服务cid.contact(Filecoin相关的路由服务),违背去中心化初衷。
  • 运行自建索引器会引入新的中心化依赖,且缺乏可持续经济模型。

决定与反思

  • 鉴于长期的技术复杂性,作者选择回归简单可靠的解决方案:使用Jekyll构建,托管于10美元/月的传统服务器。
  • 作者仍认为IPFS是优秀的项目,但目前不适合个人博客场景
  • 欢迎读者通过邮件或Mastodon告知是否忽略了近期创新方案。
9. Making a PDF that's larger than Germany (alexwlchan.net)

创建比德国还大的PDF文件

起源与传闻

社交媒体上流传着一种说法:PDF文件存在最大尺寸限制,即381公里×381公里(约合德国面积的一半)。这一说法自2007年起就在互联网上流传,但通常缺乏具体证据和解释。实际上,这个限制源于Adobe Acrobat阅读器的特定实现,而非PDF格式本身。

真实限制来源

根据PDF 1.7规范,从PDF 1.6版本开始,可以通过页面字典中的UserUnit条目设置默认用户空间单位的大小。Adobe Acrobat 7.0支持的最大UserUnit值为75,000,这使得最大页面尺寸达到:

  • 14,400单位 × 75,000 × 1/72英寸/单位 = 15,000,000英寸
  • 15,000,000英寸恰好等于381公里

这就是传闻中"381公里"数字的来源。该限制首次出现在PDF 1.6规范中,但在"Acrobat 7.0版本"中实现。

PDF内部结构探索

作者通过手动编写PDF文件来探索其内部结构:

基本组成部分

  1. 文件头:以%PDF-1.6开始
  2. 对象列表:包含页面、文本、图形等各类对象
  3. 交叉引用表(xref):对象查找表,记录每个对象在文件中的位置
  4. 尾部(trailer):文档元数据,如页面数量、加密状态等
  5. startxref:指向交叉引用表起始位置的指针
  6. 文件尾:以%%EOF结束

示例PDF结构

作者创建了一个简单PDF,绘制红色正方形:

  • 对象1:流对象,包含绘制红色正方形的图形命令
  • 对象2:页面对象,定义页面尺寸和内容引用
  • 对象3:页面树对象,包含页面信息
  • 对象4:目录对象,提供文档主结构
  • 交叉引用表:记录所有对象的位置
  • 尾部:包含元数据

突破尺寸限制的尝试

Adobe Acrobat的限制

  • 默认单位:1/72英寸
  • 最大MediaBox尺寸:14,400×14,400单位(200×200英寸)
  • 最大UserUnit值:75,000
  • 最终限制:15,000,000英寸×15,000,000英寸(381公里×381公里)
  • 超过限制时:Acrobat会静默忽略超出值,保持页面尺寸为15,000,000英寸

其他阅读器的灵活性

  • macOS Preview.app:不支持UserUnit值,始终使用1/72英寸单位
  • 无上限限制:Preview允许设置极大的MediaBox

创建超大PDF

作者成功创建了:

  • 一个比地球到月球距离还宽的PDF
  • 一个约37万亿光年见方的PDF(比可观测宇宙还大)
  • 这些PDF主要是空的,但展示了PDF格式本身没有硬性尺寸限制

关键结论

  1. 381公里限制是Adobe Acrobat的软件限制,不是PDF格式本身的限制
  2. PDF格式理论上可以支持任意大尺寸的页面
  3. 不同PDF阅读器实现差异很大:Acrobat有严格限制,而Preview等阅读器则更灵活
  4. 手动编写PDF极其繁琐,需要管理所有对象引用和查找表
  5. 实际使用中UserUnit值不常见,大多数PDF使用默认单位

作者通过实践验证了PDF格式的灵活性,并揭示了流行传闻背后的技术真相。

10. Show HN: Stanchion – Column-oriented tables in SQLite (github.com)

Stanchion:SQLite 的列式存储扩展

Stanchion 是一个 SQLite 3 扩展,旨在将列式存储的优势引入广泛部署的 SQLite 数据库。SQLite 原生仅支持行式存储,而 Stanchion 通过虚拟表机制为其添加了列式存储功能,使其更适合分析型工作负载。

主要优势与适用场景

  • 性能提升:特别适用于只需查询部分列的分析查询,因为它仅扫描相关列的数据。
  • 高效压缩:采用行程长度编码、位打包编码等压缩技术,显著减少存储开销,适合存储大型数据集。
  • 典型场景:指标/日志/事件数据、时间序列分析、对大量行和少量列的聚合计算、历史记录追踪以及锚点建模。

项目状态与使用

  • 状态:目前处于 Alpha 阶段,存储格式可能变更,不建议用于生产环境
  • 基本使用
    1. 加载扩展:通过 SQLite 的 .load 命令或各语言绑定库的方法加载编译好的 libstanchion 动态库。该扩展支持进程内自动加载。
    2. 创建表:使用 CREATE VIRTUAL TABLE ... USING stanchion 语法创建列式表,必须指定 SORT KEY(定义了数据的物理排序,即聚簇索引,但不强制唯一性)。
    3. 数据操作:支持 INSERT 和查询操作,但暂不支持 UPDATE 和 DELETE。插入的值必须严格匹配列声明的数据类型(类似 SQLite 的 STRICT 模式)。
    4. 查询优化:查询时可利用 SORT KEY 作为索引以减少数据扫描范围。

数据类型与 SQLite 差异

  • 支持类型BOOLEAN(在 SQLite 中映射为 INTEGER)、INTEGERFLOATBLOBTEXT
  • 主要差异
    • 拥有专门的 BOOLEAN 类型。
    • 聚簇索引由显式的 SORT KEY 控制,而非默认的 ROWIDPRIMARY KEY
    • 不支持外键、唯一约束、主键约束和外部索引。
    • 强制列类型检查。
    • 不支持修改表结构。

数据存储内部机制

  • 行组与段:数据以“行组”为单位存储,每个行组包含固定数量的记录。每个行组由多个“段”组成,每个段存储一列的数据,并以 BLOB 形式保存。
  • 条带:段由“条带”构成,包括存储值的主条带、存储长度(针对文本/二进制大对象)的条带以及表示空值的条带。
  • 待插入缓冲:新插入的记录首先存入一个原生的、按排序键组织的 B+ 树“待插入”表中,待积累到一定数量后再批量合并到列式存储的行组中,以优化压缩效率和段创建。
  • 查询过滤:当前仅支持通过 SORT KEY 对行组索引和待插入记录进行过滤。

未来开发计划 包括支持重命名表、优化、并发安全、更多编码算法、数据压缩、删除/更新操作、配置参数、支持移动应用以及表结构变更等。

构建与测试 可从发布页面下载预构建库,或使用 Zig 从源码构建。测试可指定特定的 SQLite 版本进行。

11. Hearing aids slow cognitive decline in people at high risk (www.nih.gov)
12. We built our customer data warehouse all on Postgres (tembo.io)

根据提供的标题 "We built our customer data warehouse all on Postgres",文章内容可能聚焦于以下核心主题:

本文可能介绍了一家公司(推测为Tembo Data Systems)如何完全基于开源关系数据库PostgreSQL来构建其客户数据仓库(CDW)的实践案例或技术架构方案

  • 技术选择与架构:文章很可能详细阐述了选择PostgreSQL作为单一数据存储解决方案的原因,可能涉及其可扩展性、对复杂查询的支持、生态系统或成本效益。
  • 实施与目的:内容应涵盖该数据仓库的设计目标、构建过程以及如何整合与管理客户数据,以支持分析、报告或业务智能等需求。
  • 优势与成果:文章可能会探讨使用单一PostgreSQL技术栈的优势,例如简化技术栈、降低运维复杂度、利用现有技能以及可能的性能表现。

此外,内容中提及的SOC 2 Type II认证表明该技术方案或其背后的平台注重数据安全、可靠性及合规性,这可能是其企业服务的一个重要组成部分。

总结来说,这篇文章的核心是分享一个使用PostgreSQL全面构建企业级客户数据仓库的技术实践与案例

13. Compiling a Lisp (2020) (bernsteinbear.com)

Compiling a Lisp 系列介绍

本文是系列文章的开篇,旨在介绍一个使用C语言构建的Lisp编译器项目。该项目改编自Abdulaziz Ghuloum的论文《An Incremental Approach to Compiler Construction》,但有几点关键不同:实现语言为C、直接生成x86-64机器码而非文本汇编、可能省略部分运行时数据结构。

项目目标与选择理由

  • 编译器而非解释器:区别于作者此前构建解释器的系列,本系列专注于编译器实现。
  • 使用C语言:作者希望通过使用非Scheme语言(论文原用Scheme)来避免简单复制代码,从而更深入地学习。
  • 直接生成机器码:出于测试便利性(希望能在进程内单元测试并即时执行编译的Lisp程序)和深入理解机器架构(了解指令编码细节)的考虑,而非通过外部汇编器。
  • 选择Lisp:因为论文以Lisp为例,且Lisp结构紧凑、动态类型,适合编译器教学。

背景知识要求

建议读者至少熟悉C或类C语言、某种汇编语言、抽象语法树与递归遍历,并且不排斥括号。这些背景有助于理解系列内容,但并非绝对必需。

系列结构与计划

系列将采用增量式开发,每篇帖子添加一个新功能(如新的Lisp特性、重构或优化)。内容通常依赖前序帖子的代码与理解,建议按顺序阅读。每个阶段都配有测试套件以确保已有功能正常。

核心编译步骤规划

  1. 编译整数
  2. 编译其他立即常量(布尔值、ASCII字符、空列表)
  3. 编译一元原语(如add1, sub1, integer->char等)
  4. 编译二元原语(如+, -, *, /, =等)
  5. 从字符串读取表达式
  6. 编译局部变量(let表达式)
  7. 编译条件表达式(if表达式)
  8. 编译堆分配(cons)
  9. 编译堆分配(字符串、符号等)
  10. 编译过程调用(标签、代码和labelcall)
  11. 编译闭包
  12. 添加尾调用优化
  13. 编译复杂常量(quote)
  14. 编译变量赋值(set!)
  15. 添加宏展开器
  16. 使用宏展开器添加扩展形式(let*, letrec等)
  17. 添加库支持和分离编译
  18. 编译外部函数调用
  19. 为原语和过程调用添加错误检查
  20. 编译可变参数过程
  21. 编译apply
  22. 添加输出端口
  23. 添加write、display
  24. 添加输入端口
  25. 在Lisp中添加分词器
  26. 在Lisp中添加读取器
  27. 在Lisp中添加Lisp解释器(或编译器)

可选扩展功能

  • 论文提及:大数、IEEE754浮点数、复数、用户自定义宏、模块系统、堆溢出处理与垃圾回收、栈溢出处理、改进代码生成。
  • 论文未提及:用于优化的中间表示、生成可执行文件并写入磁盘、带可选即时编译的解释器。

其他将涵盖的主题

代码生成基础设施、编译器数据结构、测试基础设施等会在其他帖子中融合介绍。

当前进度与资源

作者已编写了编译器直至堆分配部分(仍在完善过程调用)。即使系列未完成,读者仍可学习Ghuloum的论文。文中还提供了相关实现和课程的参考链接。

14. Kando: The Cross-Platform Pie Menu (github.com)

Kando 是一款跨平台的桌面饼状菜单工具,提供了一种非常规、高效且有趣的计算机交互方式。它可用于启动应用程序、模拟键盘快捷键、打开文件等多种操作。Kando 支持鼠标、触控笔、触摸屏、游戏控制器乃至键盘等多种输入方式。

该工具兼容 Windows、macOS 和 Linux 系统。在 Linux 上,大多数桌面环境均可支持,但部分可能需要额外配置。用户可以通过官方指南获取最新版本的安装说明,或选择从源代码构建。

使用方面,Kando 预置了一个示例菜单,在多数平台上可通过按 Ctrl + Space 快速打开,便于用户初步体验。详细的交互基础和进阶菜单自定义方法,可参考官方的使用指南和配置指南。

项目由德国开发者 @Schneegans 创建,是继 Gnome-Pie 和 Fly-Pie 之后第三个且规模最大的饼状菜单项目。其发展离不开社区的贡献,包括问题反馈、功能建议、翻译和代码编写等。项目也特别感谢 SignPath.io 提供的代码签名基础设施及 SignPath 基金会颁发的免费代码签名证书。

Kando 是一个完全免费的开源项目,欢迎用户通过贡献创意、代码、传播或捐赠等方式支持其持续开发。项目设有标有“good first issue”的入门级问题,适合新贡献者参与。

15. Fighting Infomania: Why 80% of Your Reading Is a Waste of Time (2016) (www.nateliason.com)

文章摘要:对抗信息过载——为什么80%的阅读是浪费时间

作者在大学实习后对管理咨询工作不满,渴望进入创业领域,但缺乏清晰路径。为此,他大量阅读相关书籍和文章,发现80%的内容无用,从而引发对信息消费的反思。

核心概念:即时知识 vs 以防万一

  • 丰田的“即时生产”:通过只在订单时制造汽车,减少库存浪费,提高效率。
  • 知识应用:战术知识(如营销技巧)应像“即时生产”一样,只在需要时获取,而非提前囤积。哲学知识(如批判性思维)则不同。
  • 学校模式问题:传统教育采用“以防万一”的灌输式学习,但现实中学习应基于实际需求。

现实中的信息消费错误

  • 行业趋势噪音:在工作中,跟随营销博客或行业趋势往往分散注意力,不如专注执行自己的策略。例外是高质量但低频发布的网站(如Backlinko)。
  • 频率问题:网站发布战术内容越频繁,价值越低。复杂话题无需每日更新信息(如健身只需简单坚持,而非每日新教程)。
  • 新奇问题:人们倾向过度关注新内容(neomania),但新内容往往易逝。遵循林迪效应,选择经得起时间考验的内容(如经典著作 vs 流行商业书)。

为什么我们过度消费信息

  1. 习惯:从学校继承的“以防万一”心态,误以为预先学习更有效。
  2. 历史原因:过去获取信息困难,但现在互联网使信息易得,无需预先囤积。
  3. 伪生产力(Fauxductivity):过度阅读让人感觉 productive,实则是一种拖延,类似检查邮件或整理桌面。

对抗信息过载的规则

  • 核心原则:如果信息不回答当前具体问题、不属于哲学知识、或不提供娱乐,则避免阅读。
  • 具体行动
    • 取消关注行业博客、新闻网站和聚合平台。
    • 只在有具体问题时(如“如何增长Instagram粉丝”)搜索信息,获取足够答案后停止。
  • 预期效果:减少无用阅读时间,从所读内容中获得更大价值。
16. Testing how hard it is to cheat with ChatGPT in interviews (interviewing.io)

文章摘要:使用ChatGPT在面试中作弊的实验

实验背景与目的

  • 背景:ChatGPT 的普及引发了对技术面试作弊风险的担忧。interviewing.io 平台进行了一项实验,旨在评估使用 ChatGPT 在面试中作弊的难度、成功率,以及企业是否需要调整面试问题。
  • 核心问题:ChatGPT 能提供多大帮助?作弊是否容易且不易被发现?企业是否需要改变基于 LeetCode 的面试流程?

实验设计

  • 面试官:专业面试官分三组,分别提问不同类型的问题,且不知晓实验涉及作弊:
    1. 原题(Verbatim):直接取自 LeetCode 的原题。
    2. 修改题(Modified):基于 LeetCode 题目进行细微修改。
    3. 自定义题(Custom):网上没有现成答案的原创问题。
  • 面试者:筛选出积极求职、经验丰富、熟悉 ChatGPT 且认为自己能在面试中作弊不被发现的候选人。共有 32 场有效面试。
  • 注意事项:面试为匿名音频(无视频),可能降低了作弊难度,但仍具参考价值。

主要发现

  1. 通过率差异显著

    • 原题:通过率最高,达 73%。ChatGPT 能直接提供完美解答。
    • 修改题:通过率 67%,与原题无显著差异。表明 ChatGPT 能处理题目细节的微调。
    • 自定义题:通过率最低,仅 25%,甚至低于平台平均水平(53%)。ChatGPT 难以应对此类问题。
  2. 作弊未被发现

    • 零检出率:没有面试官报告怀疑候选人作弊。
    • 面试官信心高:72% 的面试官对自己的评估决定有信心,甚至有人高度赞扬候选人表现。
    • 候选人感知:81% 的面试者认为自己作弊未被察觉。
  3. 问题类型关键:仅靠改变 LeetCode 题目的“故事背景”不足以阻止 ChatGPT,必须确保问题的输入输出和核心逻辑具有原创性。

对企业的建议

  • 立即调整面试问题:依赖 LeetCode 原题或细微修改题会让企业面临高作弊风险和无效评估信号。
  • 采用自定义问题
    • 有效防止作弊,更能筛选出真正具备问题解决能力的候选人。
    • 改善候选人体验,提升雇主品牌吸引力。
  • 创建高质量自定义题
    • 避免仅对现有题目“换皮”,需设计真正独特的输入输出和逻辑。
    • 鼓励团队从实际工作中挖掘问题灵感,形成具有公司特色且与工程实践相关的面试题。

对求职者的提醒

  • 作弊风险与难度:尽管当前某些公司流程可能存在漏洞,但企业正在迅速调整(如转向自定义题或现场面试)。作弊操作复杂、压力大,且难以持续。
  • 专注能力提升:建议将时间用于扎实的面试准备和实践,而非依赖 ChatGPT 作弊,以应对行业面试标准的变革。

结论

ChatGPT 显著增加了面试作弊的风险,尤其针对基于现有题库的面试。企业需转向设计原创、贴合实际工作场景的面试问题,以确保招聘的有效性和公平性。求职者应关注长期能力培养,适应行业面试标准的进化。

18. Show HN: Some blind hackers are bridging IRC to LMMs running locally (2mb.codes)
19. Comcast reluctantly agrees to stop its misleading "10G Network" claims (arstechnica.com)

Comcast同意停止误导性“10G网络”声称

事件概述:Comcast公司迫于压力,同意停止在广告中误导性地使用“10G网络”声称,但保留以不误导消费者的方式继续使用该术语的权利。这一决定源于国家广告审查委员会(NARB)的裁定,认为Comcast的营销声称缺乏支持且可能误导消费者。

Comcast服务详情:Comcast的“Gigabit Pro”光纤连接提供10Gbps速度,但价格高昂:每月299.95美元,加上19.95美元的调制解调器租赁费,并需支付500美元安装费和500美元激活费。该服务并非广泛可用,且缺乏数据表明有多少客户实际使用。

NARB裁决理由

  • 速度声称不被支持:NARB指出,10Gbps速度仅通过Gigabit Pro服务提供,不能代表整个Xfinity网络的速度。没有数据支持该网络整体速度的声称。
  • 误导性比较:术语“10G”暗示了与5G无线网络的速度比较,但记录中缺乏数据比较Xfinity网络和5G网络的实际用户体验速度。
  • “有抱负”术语:NAD(国家广告部)先前将10G描述为“有抱负的”术语,而非当前电缆网络的实际提供。过去五年,NCTA(全国电缆与电信协会)一直使用该术语泛指网络改进,不论实际速度。

Comcast回应:Comcast表示不同意裁决,但确认可在广告中以不误导的方式使用“10G”或“Xfinity 10G”。公司声称此举符合委员会建议。

NCTA立场:NCTA昨天发布新闻稿,庆祝10G公告五周年,并继续推广10G作为未来技术。新闻稿列出多千兆位速度的例子(如实验室测试或演示),并声称10G将推动未来技术进步和经济增长。

消费者建议:文章建议电缆宽带用户忽略营销中的“10G”术语,转而关注实际支付的网速,以避免误解。

20. Show HN: Lockbox: forward proxy for making third party API calls (github.com)

Lockbox:安全转发第三方API调用的代理工具

Lockbox 是一个前向代理,专门用于在自动化工作流(如 Zapier、IFTTT)中安全地调用第三方 API。

核心问题

传统工作流平台要求用户直接提供第三方 API 密钥,存在密钥泄露和滥用风险。Lockbox 通过用户自建代理服务器,使工作流平台不再直接持有敏感密钥。

工作原理

  1. 用户部署并运行自己的 Lockbox 服务器。
  2. 当工作流平台需要调用第三方 API 时,改为向 Lockbox 发起请求。
  3. Lockbox 使用存储在本地的凭据代为调用第三方 API,并将结果返回给工作流平台。

主要优势

  • 密钥隔离:第三方 API 密钥永不暴露给工作流平台。
  • 审计追踪:所有通过代理的 API 调用均可被记录和审查。
  • 热重载:支持不停机更新配置(如凭据、服务端点、访问令牌)。
  • 细粒度访问控制(规划中):可限制对外部 API 的访问。
  • 速率限制(规划中):可控制对第三方 API 的调用频率。

潜在缺点

  • 用户需自行托管和维护 Lockbox 实例,承担其性能、安全和可靠性责任。
  • 用户的 API 凭据集中存储在自己的 Lockbox 实例中,但这与将大量用户凭据集中于单一平台有本质不同。

开发与部署

  • 开发环境:支持通过 DevPod/GitHub Codespaces 等工具快速启动标准化开发环境。
  • 安装:通过 pip install lockbox-proxy 安装。
  • 配置
    • 使用 JSON 配置文件定义服务(如 github_public),指定基础 URL、是否需要服务令牌等。
    • 生成并保管用于签名服务令牌的密钥(signing_key.txt)。
    • 使用 gunicorn 启动服务。
  • 使用
    • 为特定服务生成带有效期和受众(audience)声明的服务令牌。
    • 通过向 Lockbox 端点(如 /s/{service_name}/{path})发起请求(携带服务令牌)来间接调用第三方 API。
  • 令牌撤销:通过配置文件中设置的 valid_audiences 列表来控制哪些受众的服务令牌有效。设为空列表 [] 可撤销所有令牌。
  • 配置热重载:通过管理员令牌调用 /admin/reload 端点,可不停机更新配置。重载操作是原子性的。
  • 审计:可在配置中启用审计日志,将事件记录为 JSON 文件到指定目录。

设计哲学

Lockbox 是一个概念验证型原型,优先考虑:

  1. 正确性
  2. 简洁性(配置和使用简单)。
  3. 安全性(避免明显缺陷)。
  4. 功能最小化

未来可能考虑性能优化(例如非 Python 实现)、灵活性和部署便利性。

替代方案

可以使用 Nginx(配合 OpenResty/Lua 或 njs 脚本)配置出类似 Lockbox 的代理功能,这是一个久经考验的替代方案。

21. A Man Who Invented VR Goggles 50 Years Too Soon (spectrum.ieee.org)

雨果·根斯巴克是“科幻”一词的创造者,作为《惊奇故事》杂志的编辑和出版人,他于1926年创办了这本专注于新兴科幻类型的首本杂志。以他命名的“雨果奖”是科幻和奇幻领域的重要奖项。

除推动科幻文学外,根斯巴克也是一位发明家,其众多发明包括“电动发梳”、“电池供电的手持照明镜”以及用于去除多余毛发的“蜡浸布条”等。但他最引人注目的发明可能是电视眼镜(teleyeglasses)。1963年,时年78岁的他在接受《生活》杂志采访时展示了一副电视眼镜的模型。

该设备重约140克,核心是基于小型阴极射线管和微型电池的低电压系统。由于每只眼睛前方都有独立的屏幕,它可以显示立体图像,这一原理与当今的3D虚拟现实眼镜相似。设备顶部配有巨大的V型天线,整体外观被描述为“新火星人”风格。尽管现代VR头显在外观上略有改进,但两者在“极客”感上仍有相通之处。

根斯巴克在一生中预言了多项后来成为现实的技术,包括雷达、缩微胶片、远程医疗、计算机匹配、无线频谱管理、骨传导助听器、录音机、电子报纸和个人健康追踪器。然而,他的一些设想,如月球采矿、轨道镜阵列和火腿三明治的瞬间传送,目前尚未实现。

本文源自《IEEE Spectrum》2016年12月刊的“Past Forward”系列,该系列通过老照片回顾技术发展的无限潜力。

22. Nassim Taleb says the U.S. is in a ‘death spiral’ over government debt (fortune.com)

美国面临“可预见的”债务危机

著名经济学家、《黑天鹅》作者纳西姆·尼古拉斯·塔勒布发出警告,称美国国债问题是一场 “白黑天鹅” ——即一种概率远高于不可预测“黑天鹅”事件的、可预见的风险。他认为,只要国会继续因惧怕后果而暂停债务上限、通过妥协方案,美国终将陷入 “债务螺旋”,而这种螺旋就像 “死亡螺旋”

债务现状与多方警告

  • 当前规模:美国国债已达34.14万亿美元,人均负债约10万美元。
  • 政治结构:债务上限已被暂停至2025年,依赖短期政治协议而非根本性解决方案。
  • 行业共振:摩根大通CEO杰米·戴蒙称,约10年后债务问题可能引发全球市场 “反抗”;前财政部长罗伯特·鲁宾也称美国处于 “糟糕境地”,呼吁增税平衡预算。
  • 全球影响:塔勒布指出,债务问题不会仅限于美国,可能波及整个西方世界。他认为解决问题需要 “外部力量或奇迹”

股市估值扭曲的担忧

塔勒布同时对股市提出悲观看法:

  • 估值难题:传统市盈率等指标失效,企业估值过度依赖 “未来叙事”,而非实际盈利能力。
  • 风险累积:这种估值模式类似风险投资中的泡沫——最终会有人承担损失。
  • “死亡区域”类比:摩根士丹利首席投资官迈克·威尔逊早在2023年就将标普500比作登山中的 “死亡区域”,认为投资者在流动性(如瓶装氧气)支持下冒险攀升至无法长期生存的高位。

其他观点

部分分析师持乐观态度,认为以Alphabet、亚马逊、苹果等为代表的 “七巨头” 科技股将在未来持续支撑市场表现。但整体而言,塔勒布等业内人士强调的债务与估值风险已成为悬在美国经济头上的达摩克利斯之剑。

23. Aerugo – RTOS for aerospace uses written in Rust (github.com)

Aerugo - 用于航空航天的 Rust 实时操作系统

Aerugo 是一个面向安全关键应用的实时操作系统,使用 Rust 语言编写。该项目是欧洲空间局(ESA)活动“评估 Rust 在空间应用中的使用”的一部分,通过开发针对 SAMV71 的 BSP 和 RTOS 来实施。

主要特点

  • 目标平台:针对基于 32 位 ARM Cortex-M7 处理器的 ATSAMV71Q21 微控制器。
  • 设计灵感:其设计受纯函数式编程范式和 transputers 架构启发。
  • 执行模型:以执行器的形式实现,而非传统的调度器,不支持抢占。执行器运行任务单元,这些是细粒度的计算单元,在有限时间内执行处理步骤。

项目结构

项目仓库包含以下主要目录:

  • aerugo-hal:系统使用的硬件抽象层特征。
  • arch:针对特定架构的代码。
  • calldwell:项目自有的嵌入式测试框架。
  • examples:系统使用示例。
  • scripts:用于自动化工作的便捷脚本。
  • src:核心系统代码。
  • testbins:测试二进制文件。
  • tests:测试脚本。
  • utils:额外工具代码。

构建指南

  1. 安装工具链:需要 Rust 的 nightly 版本。
    rustup toolchain install nightly
    rustup target add thumbv7em-none-eabihf  # 为 Cortex-M7 安装目标
    
  2. 构建命令
    • 为 Cortex-M7 平台构建:
      cargo build -p aerugo --features=use-aerugo-cortex-m --target=thumbv7em-none-eabihf
      
    • 为 x86 平台构建(用于开发):
      cargo build -p aerugo --features=use-aerugo-x86 --target=x86_64-unknown-linux-gnu
      

测试

  • 通用测试:可使用 bash 脚本构建和运行。
    ./scripts/run_tests.sh aerugo_x86  # 运行特定包的测试
    
  • SAMV71 测试:默认被忽略,因为需要额外的环境设置和开发板访问。测试配置为通过 SSH 连接到连接了开发板(通过 OpenOCD 支持的调试探头)的远程机器运行。
    • 环境准备:需设置以下环境变量:AERUGO_BOARD_LOGINAERUGO_BOARD_PASSWORDAERUGO_BOARD_HOSTNAMEAERUGO_BOARD_GDB_PORTAERUGO_BOARD_RTT_PORT
    • 运行测试:建议使用 Python 虚拟环境(推荐 Poetry)。运行所有 SAMV71 测试:
      ./scripts/run_tests.sh aerugo_v71
      
    • 注意事项:首次通过 cargo 运行测试时,构建时间会包含在执行时间内,可能导致超时。建议先手动构建所有测试二进制文件。

示例

examples 目录包含系统使用示例,每个示例都是一个独立项目,可使用 cargo run 构建和运行。

  • 运行 SAMV71 示例:示例使用 RTT 通信。提供了辅助脚本以便快速运行:
    1. 确保已完成“环境准备”。
    2. 在项目根目录运行,例如:
      python ./scripts/run_v71_example.py samv71-fizz-buzz
      

    该脚本会自动构建(默认为发布模式)并运行指定的示例。

名称与许可

  • 名称来源:“aerugo” 意为金属锈(尤指黄铜或铜的锈)、铜绿、锈层。
  • 许可证:所有源代码采用以下任一许可证授权:
    • Apache License, Version 2.0
    • MIT License
24. Differ: Tool for testing and validating transformed programs (blog.trailofbits.com)

DIFFER 是一款新发布的差异测试工具,旨在发现经软件转换(如去膨胀、加固、重写等)后程序中的错误和完整性违规。它结合了差异测试、回归测试和模糊测试的元素。

该工具的开发背景是,虽然程序转换工具在保护遗留软件方面取得成效,但它们本身存在风险。编译器在将源代码降级为二进制时会丢弃上下文信息,而直接修改二进制文件的工具可能无法安全地恢复这些信息,从而可能无意中引入新的漏洞和错误。用户通常缺乏专门验证转换后程序的有效工具,DIFFER 正是为了填补这一关键缺口。

DIFFER 的工作原理是:将未经修改的原始程序与一个或多个修改后的版本进行测试和比较。用户指定对应不同程序行为和功能的“种子输入”,DIFFER 运行这些输入并比较输出。它支持基于模板的变异模糊测试以扩大输入覆盖范围。对于未修改的功能,期望输出相同;对于已修改的功能,则期望输出不同。如果出现意外的匹配、差异或崩溃,DIFFER 会向用户报告。用户可以使用内置或自定义的“比较器”来比对返回码、控制台文本、输出文件乃至数据包捕获等复杂输出。

在一次实际评估中,DIFFER 被用于验证由10个不同去膨胀工具生成的90个程序变体。结果发现,43%的变体仍包含未被成功去除的功能,28%的变体在保留的功能中出现了崩溃或错误输出。这证明了 DIFFER 作为转换后验证工具的有效性。该工具是通用的,不仅适用于去膨胀,也可用于测试软件加固、代码翻译等其他类型的转换工具。

目前,DIFFER 已开源。未来的开发计划包括支持在 Docker 容器中运行二进制文件、添加新的内置比较器、支持需要超级用户权限的目标、支持监控分布式系统以及通过插桩添加运行时比较器以进行更深度的等价性检查。

需要注意的是,与其它动态分析测试方法一样,DIFFER 无法对复杂程序的输入空间进行详尽测试,因此不能提供关于转换工具或其所生成程序完整性的形式化保证。

26. Farscape and Henson’s Lasting Legacy (2011) (reactormag.com)

《Farscape》与Henson的持久遗产(2011)

本文作者以个人经历为引,赞扬《Farscape》为史上最伟大的科幻电视剧之一,并强调Jim Henson Productions和Creature Shop的核心贡献。

  • 个人回忆与情感触动:作者年轻时观看《Farscape》广告,被木偶角色“Pilot”(四臂外星人)的美感所打动,这一角色成为剧集标志性元素之一。
  • 剧集整体评价:《Farscape》以大胆创新的剧本、出色的演员阵容、颠覆传统科幻套路及突出的喜剧元素著称,成为作者评判其他科幻作品的标准。
  • 木偶角色的关键作用:剧中两个主要角色——Pilot和Dominar Rygel XVI——由木偶扮演,而非依赖CGI。这使得外星人形象更具真实感和互动性,例如Rygel的聪明狡猾和情感表达通过木偶技艺生动呈现。
  • Creature Shop的贡献:Henson的Creature Shop不仅提供了木偶设计,还包括演员的假体装扮和众多机械外星人造型,丰富了剧集的视觉深度和物质真实感,创造了科幻史上罕见的可触世界。
  • 技术融合与遗产:《Farscape》成功结合CGI、特效和木偶技艺,实现了Jim Henson将想象力转化为现实的愿景。这种多元素融合突破了传统界限,赋予剧集无与伦比的视觉体验,体现了Henson遗产的延续。
  • Henson的自豪与影响:尽管Jim Henson已故,但其对创新故事讲述的追求通过《Farscape》得以彰显,剧集融合各种艺术形式,成为他遗产中值得骄傲的成就。
27. DeepSeek Coder: Let the Code Write Itself (deepseekcoder.github.io)

DeepSeek Coder 代码大模型概述

DeepSeek Coder 是一系列代码语言模型,其主要特点与技术规格如下:

模型构成与训练数据

  • 模型基于从头训练的代码语言模型,在由 87% 代码13% 自然语言(英文与中文)组成的语料上进行预训练。
  • 预训练数据总量为 2万亿 tokens,覆盖超过 80种编程语言

模型规模与架构

  • 提供多种尺寸的模型以满足不同需求,包括 1.3B、5.7B、6.7B 和 33B 等版本。
  • 所有模型均在 16K tokens 的上下文窗口 下进行训练,支持项目级别的代码补全与填充任务。

训练流程

  1. 基础模型(DeepSeek-Coder-Base):通过在 仓库级代码语料 上进行预训练,并结合 代码填充任务 训练得到。
  2. 指令微调模型(DeepSeek-Coder-Instruct):在基础模型上,使用 2B tokens 的指令数据 进行进一步微调得到。

主要特点

  • 在开源代码模型中达到 最先进的性能水平
  • 模型已 开源,支持 免费用于研究和商业用途
28. LLaVA-1.6: Improved reasoning, OCR, and world knowledge (llava-vl.github.io)

LLaVA-1.6 总结

核心概述

LLaVA-1.6 是 LLaVA 大型多模态模型(LMM)的重大版本升级,于 2024年1月发布。它在推理能力、OCR(光学字符识别)和世界知识方面实现了显著提升,并在多个基准测试中超越了之前的开源模型及部分商用模型(如 Gemini Pro)。该版本延续了 LLaVA-1.5 的高效与简洁设计,训练成本极低(32个A100 GPU约1天完成)。

主要改进

  1. 更高的图像分辨率:输入分辨率提升4倍,支持高达 672x672、336x1344、1344x336 三种宽高比,使模型能捕捉更多视觉细节,减少因低分辨率导致的幻觉。
  2. 增强的视觉推理与OCR能力:通过改进视觉指令调优数据混合(如加入更多文档、图表理解数据)来实现。
  3. 更广泛的视觉对话与世界知识:覆盖更多应用场景,并提升了逻辑推理能力。
  4. 高效部署:支持使用 SGLang 进行高效推理。

性能亮点

  • 开源模型最佳:在 MMMU、Math-Vista、MMBench(英文及中文)、LLaVA-Wild 等基准上大幅领先其他开源模型(如 CogVLM-30B, Yi-VL-34B)。
  • 出色的零样本中文能力:尽管主要使用英文多模态数据训练,但在中文基准(如 MMBench-CN)上取得了最优成绩。
  • 极低的训练成本:仅使用约 131.8 万样本数据,计算和数据成本比同类模型低 100 到 1000 倍。
  • 与商用模型竞争力强:在多个测试中接近或超越 Gemini Pro、Qwen-VL-Plus 等商用模型。

技术细节

  1. 动态高分辨率:采用 “AnyRes” 技术,通过网格配置(如 2x2, 1x2 等)适配不同高分辨率图像,在保持数据效率的同时提升细节感知。
  2. 数据混合策略
    • 使用高质量用户指令数据(包括 GPT-V 数据和来自真实用户请求的 1.5 万新增数据)。
    • 优化多模态文档/图表数据:移除 TextCaps 以评估零样本OCR,加入 DocVQA、SynDog-EN、ChartQA 等以增强图表理解。
  3. 扩展LLM骨干网络:除 Vicuna-1.5 (7B/13B) 外,新增 Mistral-7B 和 Nous-Hermes-2-Yi-34B,提升了多语言支持和模型容量。

模型与发布

  • 模型规格:提供 7B、13B、34B 三种规模。分辨率统一支持动态高分辨率方案。训练分为两个阶段(阶段一训练连接器,阶段二全模型微调)。
  • 开源计划:代码、模型权重将公开,数据计划后续发布。
  • 应用示例:展示了模型在复杂图文理解(如解析社交媒体帖子)和实际场景推理(如根据航班信息估算出发时间)中的能力。

结论

LLaVA-1.6 在保持高效、简洁架构的基础上,通过技术优化显著提升了视觉理解、推理和知识能力,为开源多模态模型设定了新的性能基准,并证明了其优异的数据和计算效率。

29. Give AI curiosity, and it will watch TV forever (2018) (qz.com)
30. Launch HN: Escape (YC W23) – Discover and secure all your APIs

Escape(YC W23)是一款旨在帮助组织发现并保护所有API的安全工具。其背景是现代企业拥有大量API,这些API通常由分散的开发团队创建,可能缺乏安全知识且更新频繁,容易引入安全漏洞。API流量已占全球网络流量的80%,但安全责任往往由安全工程师承担,他们难以全面跟踪和评估所有暴露的API端点,形成重大安全风险。

创始人Tristan和Antoine基于自身经历(曾因NoSQL注射导致数据泄露)发现现有安全工具(如OWASP ZAP)多面向渗透测试专家,且误报率高,不适合普通开发者。因此他们开发了Escape,旨在为开发者和安全工程师提供易用、高效且准确的API安全解决方案。

Escape的核心功能包括:

  1. API发现:通过扫描域名、前端网站及SPA,自动提取组织暴露的所有API路由,并连接代码仓库、API网关等工具,生成完整的端点清单及其数据敏感性信息,解决了安全工程师“不知道需要保护什么”的难题。
  2. 智能安全测试:采用自研的“反馈驱动的API探索”算法。该算法受棋盘游戏(如国际象棋、围棋)启发,将API业务流程建模为状态机,通过类似Alpha-Beta搜索和蒙特卡洛树搜索等技术,模拟攻击者行为,自动生成针对性的API请求序列以测试业务逻辑漏洞。
    • 它能够智能识别需要特定参数(如UUID)的端点,并尝试从API其他部分获取有效值或主动创建对象以获取参数,从而深入测试访问控制缺陷(如BOLA、BFLA、BOPLA)、数据泄露等复杂漏洞。
    • 相比传统模糊测试,该方法更精准、深入,误报率低。
  3. 快速集成与修复建议:扫描过程仅需数分钟,便于集成到CI/CD管道中。工具不仅发现问题,还会生成具体的代码修复建议,提升可操作性。

公司通过SaaS模式提供服务,提供基于API数量和开发者数量的月度/年度订阅计划,并设有7天免费试用(无需信用卡)。此外,Escape在GitHub上开源了部分工具(如GraphQL Armor)。

公司曾对公网所有公开API进行扫描并发布安全研究报告,展示了其工具的规模和可靠性。他们持续寻求用户反馈以改进产品。

31. Show HN: Visualize the entropy of a codebase with a 3D force-directed graph (github.com)

Dep Tree:可视化代码库熵并强制执行依赖规则的CLI工具

核心功能

Dep Tree 是一个命令行工具,主要用于:

  1. 可视化代码库结构:通过生成3D力导向图来展示文件依赖关系的“熵”。代码模块化程度越高,图中的节点(文件)会呈现分散且成簇的形态;耦合度越高,节点则会紧密聚集
  2. 检查与强制解耦:通过配置规则(.dep-tree.yml文件),在CI流程中自动检查代码库是否遵守既定的架构约束,防止不应耦合的部分产生依赖。

主要命令

  • dep-tree entropy <入口文件>:在浏览器中打开一个交互式3D图,以球体表示文件,模拟引力与斥力来展示依赖集群。
  • dep-tree tree <文件>:在终端中以树状结构展示依赖关系,支持键盘导航。
  • dep-tree explain <glob模式1> <glob模式2>:展示两组代码文件之间的具体依赖路径。
  • dep-tree check:根据配置文件的规则验证依赖关系,常用于CI。

配置与规则

通过项目根目录下的 .dep-tree.yml 文件定义检查规则,核心配置包括:

  • allow:白名单逻辑,定义哪些文件可以依赖哪些其他文件。
  • deny:黑名单逻辑,明确禁止某些依赖关系。
  • aliases:为常用的文件分组创建别名,简化规则定义。
  • allowCircularDependencies:是否允许循环依赖。
  • entrypoints:用于检查的依赖图入口文件列表。

其他配置选项可控制:

  • 忽略(exclude)或仅包含(only)特定文件。
  • 是否展开重导出(unwrapExports)。
  • 语言特定设置,如JavaScript的workspacestsConfigPaths,Python的excludeConditionalImports

支持的语言与安装

  • 支持语言:Python、JavaScript/TypeScript、Rust(beta)。
  • 安装方式
    • macOS/Linux: 使用 brew 安装。
    • 跨平台:使用 pip install python-dep-treenpm install @dep-tree/cli

工具价值

旨在填补现有开发工具在文件结构与依赖管理方面的空白,帮助开发团队在项目演进过程中维持清晰的架构,提升可扩展性与可维护性。

33. FBI confirms it issued remote kill command to blow out Volt Typhoon's botnet (www.theregister.com)
  • 事件核心:FBI确认已远程摧毁中国黑客组织“伏特台风”(Volt Typhoon)操纵的僵尸网络。
  • 攻击手段:“伏特台风”感染了“数百台”老旧思科和网件路由器,植入恶意软件,使这些设备可被用于入侵美国关键基础设施。
  • 攻击目的:这些被感染的美国境内路由器和IP地址被用来隐藏身份,并针对美国通信、能源、交通和水务等关键部门进行攻击。
  • 执法行动:FBI通过法院授权,远程在受影响的路由器上安装软件,在搜集相关非法活动证据后,清除了其中的恶意软件。行动中,FBI向受感染的路由器发送特定命令以收集节点信息,并强调该操作不会影响未感染恶意软件的设备。
  • 背景与警告:美国政府早在2023年5月就曾联合“五眼联盟”国家对此类威胁发出警告。此次行动后,美国网络安全机构与FBI再次发布警报,敦促厂商消除SOHO路由器网络管理界面中的安全缺陷,例如实现自动更新、将管理界面限制在局域网内等。
34. The Thundering Herd Problem (encore.dev)

文章摘要

标题: The Thundering Herd Problem
内容: 版权信息 © 2026 Encore All Rights Reserved。
提供的文章内容仅包含标题和版权声明,未提供文章正文或技术细节。因此,无法基于此内容总结主要点、目的、结构或关键功能。

35. Building an early warning system for LLM-aided biological threat creation (openai.com)

构建LLM辅助生物威胁创造的早期预警系统

核心目的与方法

OpenAI正在开发一种评估方法(蓝图),旨在衡量大型语言模型(LLM)在多大程度上可能协助个人创建生物威胁。此项研究是其准备框架的一部分,旨在为AI安全风险评估建立更好的方法。

研究采用了一项包含100名人类参与者的实验,参与者分为两组:一组是拥有博士学位和湿实验经验的50名生物专家,另一组是至少修过一门大学生物学课程的50名学生。每组参与者被随机分配至对照组(仅可使用互联网)或实验组(除互联网外还可使用GPT-4)。所有参与者需完成一套涵盖生物威胁创造端到端过程(构思、获取、扩增、制备、释放)五个阶段的任务。

主要研究发现

  • 有限提升:GPT-4在生物威胁信息获取方面仅提供了温和的提升
  • 准确性提升:与仅使用互联网的基线相比,实验组在任务准确性上有所提高。在10分制中,专家组的平均准确性提升了0.88分,学生组提升了0.25分
  • 完整性提升:实验组的回答也更完整,专家组完整性平均提升0.82分,学生组提升0.41分
  • 统计显著性:尽管观察到提升,但效应大小不够大,未能达到统计显著性
  • 其他指标:在创新性、完成任务所需时间及参与者自评难度方面,未发现明显差异。
  • 结论:当前研究结果不足以得出明确结论,表明GPT-4(公开版本)目前可能不会对生物威胁信息获取构成显著风险,但这为持续研究和社区讨论奠定了基础。

评估设计原则

研究遵循三个核心原则以确保评估有效性:

  1. 需与人类参与者测试:因为恶意行为者会通过与模型交互来优化提问、纠正错误,从而获取更好信息。
  2. 全面激发模型能力:研究人员为参与者提供了提示技巧培训,并为专家组提供了研究专用版GPT-4(该版本能直接回应高风险问题,无安全拒绝机制)。
  3. 与现有资源比较:风险衡量标准是AI模型相较于现有资源(如互联网)所带来的反事实信息获取能力提升

评估指标

参与者在每项任务上的表现通过五个指标进行衡量:

  1. 准确性:完成任务关键步骤的完整度。
  2. 完整性:包含所需隐性信息的详细程度。
  3. 创新性:解决方案的新颖程度。
  4. 所需时间
  5. 自评难度

关键讨论与局限性

  • 风险阈值不明确:当前缺乏公认的“有意义风险”提升阈值。统计显著性在此领域可能不是最佳衡量标准,因为假阴性(漏报风险)可能比假阳性代价更高
  • 信息获取与实施的鸿沟:评估仅测试信息获取能力,并未测试物理实施威胁的能力。获取湿实验室等资源可能是更大的瓶颈。
  • 生物威胁信息已较易获取:研究表明,即使没有AI,关于生物威胁创造的分步指南和排错信息在网络上已相对容易找到。
  • 方法论局限
    • 样本量(100人)限制了统计功效。
    • 学生参与者可能比一般本科生更有经验。
    • 实验有时间限制(5小时),而恶意行为者不受此限。
    • 未测试GPT-4的工具使用(如数据分析、浏览)能力。
    • 仅针对个体行为者,未研究群体协作。
  • 未来方向:需要进一步研究以设定风险阈值、改进统计方法,并开发针对多种灾难性AI风险的评估体系。OpenAI计划持续分享此类研究以促进社区讨论。
36. Show HN: An open source performance monitoring tool (github.com)

highlight.io:开源全栈监控平台

highlight.io 是一个面向新一代开发者的开源全栈监控平台,旨在提供现代、全面且连贯的监控解决方案,以替代传统过时工具。它集成了会话重放、错误监控、日志记录和性能跟踪等功能,支持快速安装和部署。

核心功能

  • Session Replay(会话重放):通过基于 DOM 的高保真重放、网络请求查看、控制台日志分析和嵌入式错误监控,帮助开发者理解 bug 发生的原因。支持会话评论和工具集成。
  • Error Monitoring(错误监控):提供可自定义的错误分组和警报规则,结合嵌入式会话重放和 SDK 支持,用于识别和解决 bug。
  • Logging(日志记录):具备强大搜索功能、日志警报和自动属性收集,嵌入会话重放与错误信息,便于服务器事件深入分析。
  • Traces(跟踪):跟踪服务器操作性能,支持搜索、警报和集成,关联会话、错误和日志以全面监控。

安装与部署

  • 免费托管:通过注册 app.highlight.io 即可免费开始,安装客户端 SDK 代码片段即可使用。
  • 业余自托管:使用 Docker 在 Linux 上部署,推荐配置为 8GB RAM、4 CPUs 和 64GB 磁盘空间,适用于每月少于 1 万会话和 5 万错误的场景。
  • 企业自托管:提供可扩展的生产就绪实例,有专门文档和支持团队。

SDKs 与社区

所有 SDKs 位于 sdk 目录,文档提供入门指南。项目拥有多位贡献者,支持社区参与和公开开发。

使命与价值观

使命是帮助开发者自信地交付,通过工具发现、解决和预防问题。价值观包括:

  • 公开构建:分享开发过程和计划。
  • 构建连贯产品:确保新功能与现有系统无缝集成。
  • 为开发者构建:简化监控,让开发者专注于编码。

更多细节可参考官方文档和社区资源。

37. Tesla sued for allegedly mishandling hazardous waste in California for years (techcrunch.com)

特斯拉遭美国加州25个县起诉,被指控多年不当处理危险废物。诉讼在圣华金县高等法院提起,指控特斯拉在其全州的生产和服务中心错误标记和处置了铅酸电池、油漆、刹车液、气雾剂、防冻剂、丙酮、柴油燃料等材料,并将危险废物非法倾倒至不具资质的场地或垃圾填埋场。

各县地区检察官寻求强制特斯拉妥善处理废物的禁令,并要求民事罚款。据路透社报道,特斯拉可能面临每天每项违规高达7万美元的罚款。特斯拉在2022年向美国证券交易委员会提交的文件中首次披露,该公司正因废物管理问题接受加州多个地区检察官办公室的调查,并称已采取补救措施,包括培训、审计及改进废物管理方案。2023年10月,特斯拉表示正在与这些办公室进行和解谈判,但此次诉讼表明谈判已破裂。

特斯拉此前曾因环境问题受罚。2019年,特斯拉就其弗里蒙特工厂的多项违规行为与美国环境保护署达成和解,其中包括危险废物标记不当,被罚款3.1万美元并支付5.5万美元用于购置应急设备。2022年,特斯拉又因违反《清洁空气法》在同一工厂被罚款27.5万美元。

文章还简要介绍了报道此事件的记者肖恩·奥凯恩的背景。

38. Gnuplotlib: Non-Painful Plotting for NumPy (github.com)

Gnuplotlib: 非痛苦的NumPy绘图工具

核心目的:Gnuplotlib 是一个 Python 模块,旨在为 NumPy 数据提供便捷的绑图接口,并使用功能强大的 Gnuplot 作为后端渲染引擎。它充当 NumPy 与 Gnuplot 之间的被动通道,使用户能够充分利用 Gnuplot 的灵活性。

主要接口与用法

库提供两种接口:

  1. 面向对象接口 (gnuplotlib 类):为每个实例创建独立的 Gnuplot 进程和绘图窗口,支持交互式绘图。
  2. 全局函数接口 (plot, plot3d, plotimage):复用单个全局实例,简便快捷。

基本用法示例:

import numpy as np
import gnuplotlib as gp
x = np.arange(101) - 50
gp.plot(x**2)  # 绘制抛物线

关键功能与特性

  • 数据输入:支持 NumPy 数组,并通过 tuplesize 选项灵活定义每个数据点的维度(如2D的x,y或3D的x,y,z)。
  • 广播:支持 NumPy 广播规则,可轻松绘制多条曲线。
  • 隐式域:当提供数据不足时,自动推断绘图域(如序列索引或网格)。
  • 多图:通过 multiplot 进程选项,在同一窗口中绘制多个子图。
  • 符号方程:可与数据一同绘制 Gnuplot 方程字符串。
  • 直方图:内置支持 Gnuplot 的直方图处理(频率、累积等)。
  • 输出控制:可输出到屏幕或文件(PDF、PNG等),格式可推断或通过 terminal 选项指定。

选项体系

选项分为三个层级,均以 Python 字典形式传递:

  1. 进程选项:影响整个 Gnuplot 进程,如输出文件 (hardcopy)、终端 (terminal)、调试 (dump)、是否阻塞 (wait) 等。
  2. 子图选项:影响单个子图,如标题 (title)、坐标轴范围 (_xmin, _yrange)、坐标轴标签 (xlabel)、是否3D (_3d)、绘制方程 (equation) 等。
  3. 曲线选项:影响单条曲线,如图例 (legend)、绘图样式 (_with)、直方图参数 (histogram, binwidth)、轴选择 (y2) 等。

数据参数与绘图样式

  • 曲线:每个待绘数据集称为“曲线”,由数据数组和可选的曲线选项字典组成。
  • 负 tuplesize:当数据存储在单个数组的最后一维时使用,简化输入。
  • 广播:支持通过堆叠数组维度绘制多条曲线,并可广播选项(如图例)。

示例与用法

文章提供了从基础到高级的绘图示例:

  • 2D绘图:简单折线图、误差棒图、带变量大小/颜色的散点图。
  • 3D绘图:三维点、曲面、螺旋线。
  • 图像绘制:热图、将数据叠加在现有图像上。
  • 输出与控制:生成硬拷贝文件、创建自绘脚本 (.gp 文件)、使用 ASCII 终端进行文本绘图。

兼容性与许可

  • 兼容性:支持 Python 2 和 Python 3。
  • 许可证:基于 GNU 宽松通用公共许可证 (LGPL) 发布。
  • 资源:项目源代码和详细教程托管在 GitHub (https://github.com/dkogan/gnuplotlib)。
39. Launch HN: Encord (YC W21) – Unit testing for computer vision models

Encord Active:计算机视觉模型的单元测试工具

产品概述

Encord(YC W21)推出开发工具Encord Active,旨在帮助计算机视觉团队提升模型构建能力。该工具提供模型与数据单元测试套件,使开发者能够系统性地测试、理解和调试视觉模型。

核心问题与解决方案

视觉模型(如用于自动驾驶或机器人)在投入生产前需要持续测试和优化。仅靠调整模型架构或超参数无法解决复杂场景下的性能下降问题。Encord Active 通过自动化分析模型性能,识别数据分布中的薄弱环节,提供具体可行的改进建议,从而指导后续训练数据的选择。

技术特点

  • 单元测试类比:通过分析模型各部分表现,定位错误根源(如数据不足或环境干扰)。
  • 多维度分析:涵盖图像质量(亮度、模糊度)、目标几何特征(比例、异常值)、元数据及类别分布。
  • 关联分析与建议:将上述因素与模型性能指标关联,自动识别低性能数据子集并提供优化方向。
  • 数据优化指导:聚焦“正确数据”而非盲目增加数据量,帮助团队高效迭代模型。

实际效果

案例显示,某客户通过Encord Active在减少35%数据量的同时将模型精度(mAP)提升20%,证明了基于数据分析优化数据质量的有效性。

适用场景

适用于需要部署可靠视觉模型的团队,尤其解决模型性能退化、数据与目标场景不匹配等问题。工具提供可视化分析与具体行动建议,加速模型优化流程。

40. A Little Closer to Finding What Became of M. Schönfinkel Inventor of Combinators (writings.stephenwolfram.com)

本文是对组合子逻辑发明者摩西·舍恩芬克尔生平下落的追查更新。

舍恩芬克尔(1888年生于今乌克兰第聂伯罗)是抽象计算与通用性这一二十世纪最重要思想的先驱。他于1920年提出了组合子,这是第一个完整的抽象计算形式化方法。1924年,他前往莫斯科后便基本失踪,据传于1940或1942年贫困潦倒而死,但无确证。

作者此前的研究已发现舍恩芬克尔有一弟(内森)一妹(德博拉)。本次调查在第聂伯罗彼得罗夫斯克州档案馆找到了出生记录,确认他共有五个兄弟姐妹,包括新发现的弟弟伊斯雷尔和格雷戈里。

  • 伊斯雷尔:仅在一战(1916年)的医院记录中发现踪迹,显示他因疝气问题住院,此后再无消息。
  • 格雷戈里:这是最重要的发现。通过二战军事档案,得知他于1944年居住在莫斯科一处地址(莫斯科索菲亚沿岸街26号)。这为舍恩芬克尔1924年前往莫斯科提供了一个可能的家庭原因。

格雷戈里的档案揭示了诸多细节:他是犹太人,受过高等教育,是一名“工程师经济学家”,已婚(妻子叶夫多基娅·伊万诺芙娜),1943年7月应征入伍成为列兵,并于同年10月在第聂伯罗河战役中负伤。1944年2月退役后返回莫斯科的住址。

作者推测,格雷戈里的经历可能与哥哥摩西有关。格雷戈里可能因妻子和哥哥的去世、以及家乡犹太人在1942年遭屠杀等家庭变故而情绪低落,从而在44岁时参军。他居住的公寓可能是其岳母的(母亲一栏填写的名字“玛丽亚·格里戈里耶芙娜”与舍恩芬克尔母亲名字的父称不符),该建筑原为慈善公寓,后成为苏联政府机构宿舍。

尽管找到了格雷戈里的踪迹,但关于摩西·舍恩芬克尔本人的确切命运,调查依然没有定论。

文章最后一部分提及了组合子逻辑在语言学中的一个延伸领域——“组合范畴语法”。作者指出,波兰逻辑学家卡齐米耶日·阿伊杜凯维奇曾在1914年于哥廷根学习,与舍恩芬克尔同期,且研究兴趣有重叠。尽管没有直接证据,但作者推测组合子相关思想可能在他们之间有过交流或相互影响,因为这一想法似乎并未在其他地方独立产生。

41. MobileDiffusion: Rapid text-to-image generation on-device (blog.research.google)

文章总结:MobileDiffusion - 移动设备上的快速文生图模型

核心目标

本文介绍了 MobileDiffusion,这是一个专为移动设备设计的高效潜扩散模型,旨在实现亚秒级(<1秒)的文生图生成。传统强大的文生图模型(如Stable Diffusion)因参数量达数十亿、计算成本高,难以在移动端部署。

主要挑战

在移动设备上运行文生图模型面临两大瓶颈:

  1. 迭代过程:扩散模型需要多步去噪才能生成图像。
  2. 架构复杂度:主流模型网络结构复杂,参数量大,计算昂贵。

虽然已有研究(如蒸馏技术)将采样步骤从数百步减少到个位数甚至一步,但移动设备上即使少量评估步骤也会因模型架构复杂而变慢。对模型架构效率的全面优化相对不足。

MobileDiffusion 的设计与优化

该模型遵循潜扩散模型架构,包含三个核心组件,并进行了针对性优化:

  1. 文本编码器:采用轻量级的 CLIP-ViT/L14(1.25亿参数)。
  2. 扩散UNet(核心优化部分):
    • 结构分析:对UNet中的Transformer块(自注意力、交叉注意力、前馈网络)和卷积块进行了深入分析。
    • Transformer优化:受UViT架构启发,在UNet的瓶颈层(bottleneck) 部署更多Transformer块,因为该区域序列长度短,注意力计算开销相对较低。同时,在高分辨率层跳过自注意力层
    • 卷积优化:在UNet的深层部分,使用轻量级的可分离卷积替代常规卷积,在保持性能的同时显著降低计算成本。
    • 效率提升:优化后的UNet在FLOPs和参数量上均优于其他扩散模型。
  3. 图像解码器
    • 使用变分自编码器将图像编码为8通道潜变量,空间尺寸为原图的1/8。
    • 通过裁剪原始解码器的宽度和深度设计出轻量级解码器,在提升近50%延迟性能的同时,保持了更好的重建质量。

实现一步采样:DiffusionGAN 微调

为进一步提升速度,MobileDiffusion 采用 DiffusionGAN 混合方法实现一步采样

  • 训练策略:使用预训练的扩散UNet同时初始化生成器和判别器。这利用了扩散模型内部已包含的丰富文本-视觉交互信息,使训练简化为一个高效的微调过程。
  • 训练过程:结合重建损失(与扩散模型训练类似)和GAN损失(用于建模去噪步骤)。整个微调过程收敛迅速(少于1万次迭代)。

实验结果

  • 图像质量:MobileDiffusion 能够生成高质量、多样化的图像。
  • 模型规模:总参数量仅为 5.2亿
  • 运行速度:在高端iOS和Android设备上,生成一张512×512图像的延迟在半秒以内
  • 解码器对比:其轻量化解码器在PSNR、SSIM和LPIPS等指标上均优于Stable Diffusion的解码器。

结论

MobileDiffusion 通过全面的架构优化和DiffusionGAN一步采样技术,首次在移动设备上实现了快速(亚秒级)文生图能力。其高效的延迟和紧凑的模型尺寸,使其成为移动端部署的友好选择,有望支持在移动设备上输入文字即可快速生成图像等应用场景。

42. The curious case of the disappearing Polish Ś (2015) (medium.engineering)

文章摘要:消失的波兰语Ś字母之谜

这篇文章讲述了Medium平台上波兰语用户无法输入Ś字母的bug,其根源在于四个跨越数十年的历史因素偶然交汇:

1. 波兰语的特殊性 波兰语基于拉丁字母,但添加了9个带变音符号的特殊字母(包括Ś)。早期打字机通过组合键模拟这些字母。

2. 共产主义时期的技术限制 1980年代波兰受冷战影响,电脑多为进口的美式键盘,无硬件支持特殊字母。用户创造了“程序员键盘布局”:右Alt键+对应基础字母(如右Alt+S输入Ś)作为变通方案,这一习惯沿用至今。

3. 用户保存文件的习惯 早期电脑需手动保存(Ctrl+S),这一肌肉记忆延续到Web时代。Medium为避免浏览器原生保存对话框干扰,拦截了Ctrl+S事件。

4. Windows系统的映射机制 为兼容早期键盘,Windows系统将右Alt键映射为Ctrl+Alt组合键。因此用户输入Ś的按键序列(右Alt+S)实际被系统解析为Ctrl+Alt+S

Bug成因 当波兰用户输入Ś时(右Alt+S),系统将其识别为Ctrl+Alt+S。Medium的保存拦截代码错误地将此组合键视为Ctrl+S触发保存动作,从而阻止了Ś字母的输入。

修复方案 修改代码逻辑:仅在未按下Alt键时拦截Ctrl+S,避免影响右Alt组合键输入特殊字母。

启示 这个bug体现了软件开发中深层历史兼容性问题。随着Medium全球化,类似因地域、历史和技术遗产交织的兼容性问题将更常见,需要开发者对本地化背景有深入理解。

43. Ars Technica used in malware campaign with never-before-seen obfuscation (arstechnica.com)

恶意软件利用Ars Technica与Vimeo进行新型混淆攻击

安全公司Mandiant发现并追踪到一起由威胁组织UNC4990发起的恶意软件活动。该组织自2020年以来活跃,动机与经济利益相关。此次活动使用了前所未有的新颖技术来隐藏恶意代码。

攻击链与传播机制

攻击通过受感染的USB驱动器开始,安装名为explorerps1的初始载荷。

第一阶段:获取恶意指令

受感染设备会自动访问以下之一:

  1. Ars Technica文章末尾的一张图片,其中包含恶意URL。
  2. Vimeo视频的描述中。 这两处均嵌入了经过Base64编码的恶意字符串

第二阶段:下载与驻留

解码后的字符串引导受感染设备联系一个托管第二阶段的站点。第二阶段恶意软件(被追踪为Emptyspace)会持续轮询一个命令控制服务器

第三阶段:执行最终载荷

当指令下达时,服务器会下载并执行第三阶段。Mandiant目前仅观察到一例此阶段的安装。该恶意软件是一个名为Quietboard的后门,最终安装了加密货币挖矿程序

新型混淆技术

UNC4990除了滥用知名媒体网站外,还使用了一种Mandiant研究人员从未见过的技术来隐藏初始指令:

  • 攻击者使用了一个看似空白的文本文件
  • 在常规文本编辑器或浏览器中查看时,该文件显示为空白。
  • 使用十六进制编辑器(用于分析二进制文件的工具)打开后,发现其中通过制表符、空格和换行符的特定组合编码了可执行代码

此前,该组织曾使用过GitHub和GitLab作为传播渠道。

应对建议

对于担心自身可能已被此类恶意软件感染的用户,可以查阅Mandiant官方发布的文章中的入侵指标部分进行检查。

信息来源:Mandiant的安全研究报告。

44. Matryoshka Representation Learning (arxiv.org)

Matryoshka Representation Learning (MRL) 论文摘要

核心问题 现代机器学习系统中,学习到的表示(embedding)需要服务多种下游任务。然而,这些任务具体的计算和统计约束通常是未知的。传统的、固定容量的表示可能无法灵活适应不同任务的资源需求,导致资源浪费或性能不足。

主要贡献:MRL 本文提出了 Matryoshka Representation Learning (MRL),一种能够学习多层次、从粗到细表示的方法。其核心思想是在一个统一的训练过程中,让模型同时学习不同维度的嵌入表示。这使得单个嵌入可以自适应地根据下游任务的计算资源限制,选择使用其某个维度的子集作为表示,而无需重新训练或部署多个模型。

技术特点

  1. 灵活性:学习到的MRL表示蕴含了从低维到高维的丰富信息。任务可以在准确性和计算效率之间进行权衡,选择合适的表示维度。
  2. 高效性:该方法对现有表示学习流程的改动极小,且在推理和部署阶段不引入额外成本
  3. 优越性:MRL学习到的低维子表示,其性能至少与独立训练的同维度表示相当,甚至更优。

实验结果与优势 论文在多个任务和数据集上验证了MRL的卓越性能:

  1. 表示压缩:在保持同等分类精度的前提下,可将ImageNet-1K分类任务的嵌入尺寸减小多达14倍
  2. 检索加速:在ImageNet-1K和4K的大规模检索任务中,实现了高达14倍的实际速度提升。
  3. 长尾识别:在少样本长尾分类任务中,准确率提升了最高2%
  4. 鲁棒性:MRL表示的鲁棒性与原始标准表示相当

普适性 MRL能够无缝扩展到网页规模数据集(如ImageNet、JFT),并成功应用于多种模态和模型架构:

  • 视觉:Vision Transformer (ViT)、ResNet
  • 视觉-语言:ALIGN模型
  • 语言:BERT模型

资源 该工作的代码与预训练模型已开源。

45. Computer and Network Security (engineering.purdue.edu)

计算机和网络安全课程笔记总结

课程笔记定位

  • 这是一本动态教科书,旨在平衡系统导向问题密码学问题
  • 密码学是理解系统问题的基础,而系统问题使密码学更具实用性,两者相辅相成。

教学使用方式

  • 理论教学:在白板上推导公式,遵循笔记中的推导步骤。
  • 系统教学:在Linux笔记本电脑上进行实际演示,按笔记描述实施。
  • 笔记既可用于课堂幻灯片演示,也可供学生自主阅读,作为白板解释或计算机演示的背景材料。
  • 笔记内容比典型PowerPoint幻灯片更丰富,提供深入的细节和解释。

作业安排与资源

作业内容

  • 加密与哈希部分:学生编写Python或Perl脚本实现DES、AES、RC4、SHA1、SHA512等算法,以加深理解。
  • 系统相关部分:学生编写脚本执行DoS攻击、缓冲区溢出攻击等(缓冲区溢出攻击使用有意嵌入漏洞的C语言套接字程序)。
  • 脚本编程(如Python/Perl)比原始C代码更高效,适合教学目的。

推荐资源

  • Python的BitVector类:用于创建哈希函数的紧凑实现和编写块密码、流密码脚本。
  • Perl的BitVector类:提供与Python版本类似的功能。
  • 书籍《Scripting with Objects》:快速介绍Python(第3章)和Perl(第2章),适用于作业和项目。
  • 书籍《Programming With Objects》:用于C++或Java作业,同时教授面向对象编程,已被多所大学采用。

更新信息

  • 课程笔记的2025年更新已完成
  • 下一次主要更新计划在2026年1月至4月进行。
46. Check Out These Self-Soldering Sleeves from World War II (hackaday.com)

二战自焊接套管

二战期间,英国特种作战执行处为在敌后执行破坏任务的特种部队开发了一种火药式自焊接套管,用于快速、可靠地连接电线与炸药起爆装置。

开发背景与目的

  • 该装备由负责在纳粹占领欧洲进行破坏和颠覆活动的特种作战执行处研制。
  • 其设计目的是在紧急战场环境下,无需电力焊接工具(如电烙铁),即可迅速完成起爆线路的电气连接。

结构与工作原理

  1. 主要结构:套管主体是一个铜管,管内中心位置预先放置焊料。
  2. 外部包裹:铜管外层覆盖有火药材料,顶部涂有类似安全火柴头的起始药剂。
  3. 使用步骤
    • 将两根剥好线头的电线分别从铜管两端穿入。
    • 使用配套的打火盒,像划火柴一样点燃套管顶部的起始药剂。
    • 药剂点燃后,外部的火药材料迅速燃烧并产生高温。
    • 高温使内部的焊料熔化,从而在电线连接处形成焊接点,完成可靠电气连接。

特点与价值

  • 便携高效:无需外接电源,适应野外与敌后条件,实现快速接线。
  • 设计巧妙:将焊接材料与点火装置集成于一体,操作简单可靠。
  • 历史意义:作为二战时期众多创新技术之一,体现了特殊作战环境下对简易、高效工具的需求。

文中提到,相关的现代典型焊接套管技术此前也有探讨,且原文包含演示该装置工作原理的视频链接。

47. The Undercover Generalist (ochagavia.nl)

隐藏身份的通才工程师

核心矛盾

作者是一名独立承包商,自认为是通才软件工程师,但在市场中却不得不将自己包装成专家。他发现,尽管公司理论上欣赏适应力强的人,但实际招聘时更倾向寻找特定技术领域的专家。

专业包装的实践

2022年底,作者开始将自己定位为Rust语言专家(专注系统编程和开源开发),这基于以下因素:

  • 自2014年起深入参与Rust社区
  • 拥有丰富的开源经验
  • 对“基础软件”开发充满热情
  • Rust在工业界应用持续增长

这一策略在2023年取得了商业成功,持续获得项目合同。

通才本质的体现

尽管对外呈现专家形象,作者实际仍保持着通才的工作方式:

  1. Rust项目的多样性

    • 为QUIC协议实现Rust库添加功能
    • 开发Python包管理器的依赖解析器(首次为读学术论文获得报酬)
    • 构建TLS协议库的性能基准测试系统
  2. 跨领域项目

    • 为化学家团队开发维护桌面软件(C#/.NET)
    • 为非营利组织开发记账Web应用(C#/.NET)
    • 在创业公司担任技术领导角色(Python栈,但几乎不编程)

关键发现

作者总结出“表面专才,实际通才”的悖论:

  • 通过人际网络获得的项目:客户只信任个人能力,不关注技术标签
  • 通过市场品牌获得的项目:技术专家身份是建立信任的关键
    • 开源贡献记录
    • 语言层面的RFC起草经验
    • 生态系统内知名人士的推荐

结论:专注于特定技术社区参与,有助于与陌生客户建立信任;随着信任增长,通才的多面能力才有展现空间。

持续演进的品牌策略

作者的“雇佣我”页面经历了从“几乎涵盖所有可能服务”到“高度聚焦的3个要点”的转变。目前他通过撰写博客文章来弥补简短列表无法展示全貌的局限,这些文章有时直接带来项目机会。

延伸思考

在后续文章《从全栈开发到系统编程》中,作者进一步探讨:既然自己实际上喜欢系统编程的专业工作,是否还应该自称通才?这个问题留给读者思考。

49. Ask HN: Advice for turning my side project into a real business
50. Arctic Adventure: A Lost 1981 TRS-80 Adventure Game (www.arctic81.com)

文章摘要:Arctic Adventure — 一款1981年失落的TRS-80冒险游戏

本文介绍了网站 Arctic 81,该网站专门收录和重制Radio Shack TRS-80计算机时代的经典游戏。网站创建于2021年(或1981年,取决于如何看待历史),其核心项目是作者Harry McCracken在高中时期(1981年)使用TRS-80 Level II BASIC编写的文字冒险游戏《Arctic Adventure》。

主要发展脉络:

  1. 2021年修复:作者在2021年对原版游戏进行了调试和轻微扩充,使其能在网页浏览器中运行。
  2. 2026年全面现代化:2026年2月,在AI工具(Claude Code)的协助下,作者在一周内完成了游戏的彻底翻新。新版本《Arctic Adventure 2026》拥有:
    • 精致的动画彩色图形
    • 更完善的存档/读档功能
    • 更多的游戏提示
    • 其他增强特性
    • 网页原生版本,但核心玩法不变。

网站包含的其他游戏:

  • 《Arctic Adventure》原版:2021年修复后的TRS-80 Model 1版本,附有开发历史介绍。
  • 《Arctic Adventure》MC-10版:由Jim Gerrie移植至TRS-80 MC-10计算机的版本,其玩法最接近1981年原作。
  • 《Lost Ship Adventure》:作者朋友Charles在更早之前创作的TRS-80冒险游戏,同样在2021年进行了更新并讲述了创作故事。
  • 《Slot Machine》:作者约在1979年编写的TRS-80老虎机模拟游戏。

网站欢迎访客提出问题、建议或报告错误。