2024-03-23

27 篇热帖

1. Game of Life, simulating itself, infinitely zoomable (oimo.io)

本文介绍了名为“Game of Life, simulating itself, infinitely zoomable”的项目,该项目是经典的康威生命游戏的一种创新实现。其核心特点在于游戏能够模拟自身,并支持无限缩放查看。

项目提供了在线演示(oimo.io)和源代码(GitHub仓库)。通过无限缩放功能,用户可以探索生命游戏在不同尺度下的复杂模式与自相似结构,体现了分形和元胞自动机的迷人特性。这是一个兼具趣味性与技术深度的编程作品。

2. Google Ordered to Identify Who Watched Certain YouTube Videos (www.forbes.com)

谷歌被令提供特定YouTube视频观看者信息

根据福布斯获得的多份法庭命令,美国联邦调查人员已命令谷歌提供特定YouTube视频所有观看者的信息。多名来自不同民权组织的隐私专家认为,这些命令违宪,因为它们可能将无辜的YouTube观众转变为犯罪嫌疑人。

主要案例

  1. 肯塔基州案件:便衣警察为追查网名“elonmuskwhm”的用户(涉嫌用现金购买比特币,可能违反洗钱和无照汇款法律),于2023年1月向其发送了无人机测绘和增强现实软件的YouTube教程链接。随后,他们要求谷歌提供在1月1日至8日期间访问这些视频(总观看次数超3万次)的所有谷歌账户用户的姓名、地址、电话号码和用户活动,以及非账户观看者的IP地址。警方声称这些记录与正在进行的刑事调查相关。法庭批准了该命令,但未显示谷歌是否提供了数据。

  2. 新罕布什尔州案件:朴茨茅斯警方接到匿名炸弹威胁后,发现有人通过一个当地企业关联的YouTube直播摄像头监视他们。联邦调查人员认为类似事件在美国多地发生。他们要求谷歌提供在特定时间段内观看或互动了八个YouTube直播流(其中一个是拥有13万订阅者的波士顿和缅因直播频道)的账户列表及相关信息。相关公司IP Time Lapse的创办人确认知道此命令,并称其与针对摄像头的“swatting”(报假警)事件有关。同样,谷歌是否提供了数据尚不清楚。

隐私专家与法律争议

隐私专家强烈批评这些命令,认为其违宪,威胁到美国宪法第一修正案(言论自由)和第四修正案(免受无理搜查)的保护。

  • “数字拖网”趋势:监控技术监督项目执行主任阿尔伯特·福克斯-卡恩称,这是政府将搜查令转变为“数字拖网”的令人不安趋势的最新一章,认为其违宪且令人恐惧。他强调:“任何人不应仅仅因为YouTube算法推送的内容而害怕警察敲门。” 他还表示,这些命令与“地理围栏令”(要求谷歌提供特定区域所有用户的数据)一样令人寒心。
  • 观看内容反映敏感信息:电子隐私信息中心高级法律顾问约翰·戴维森指出,在线观看内容可能揭示个人的政治观点、爱好、宗教信仰等极为敏感的信息。执法部门在没有合理依据的情况下不应获取这些信息,而此命令颠覆了这一原则。

谷歌的回应

谷歌发言人马特·布莱恩特表示,对于所有执法请求,公司都有严格的流程,旨在保护用户隐私和宪法权利,同时支持执法的重要工作。谷歌会根据不断发展的判例法审查每个请求的合法性,并经常抵制过于宽泛或不恰当的用户数据请求,包括完全反对某些请求。

相关背景

  • 谷歌于2023年12月宣布更新技术,使其从技术上无法响应地理围栏令
  • 此前,加州一家法院曾裁定,一份覆盖洛杉矶多个人口密集区域的地理围栏令违宪,这曾引发外界对法院可能阻止警方获取此类数据的希望。

美国司法部在文章发布时尚未回应置评请求。

4. Emad Mostaque resigned as CEO of Stability AI (stability.ai)

Emad Mostaque已辞去Stability AI首席执行官及董事会职务,以专注于推动去中心化AI发展。公司董事会任命首席运营官Shan Shan Wong与首席技术官Christian Laforte为临时联合CEO,同时将启动永久CEO的搜寻工作。

董事会主席Jim O'Shaughnessy代表董事会感谢了Emad Mostaque的领导力及其对Stability AI和开源运动的贡献,并对临时联合CEO的能力表示信心,认为他们能引领公司持续开发并商业化领先的生成式AI产品。

Emad Mostaque表示,他为自己在两年内带领Stability AI取得“数亿次下载和多模态最佳模型”的成就感到自豪,并坚信公司使命,认为当前团队具备足够能力,而他将转向确保AI保持开放与去中心化的方向。

此次领导层变动被视为Stability AI迈向下一增长阶段的机遇,公司、管理团队、董事会及投资者将共同致力于保持其技术、团队与社区优势,继续引领开放多模态生成式AI领域。

5. Show HN: magick.css – Minimalist CSS for Wizards (css.winterveil.net)

magick.css:为巫师打造的极简CSS框架

核心概述

magick.css 是一个极简、主要(99%)无类的CSS框架,旨在易于使用和理解。所有代码集中于一个文件,每个选择都有注释,设计目标是实现一种优雅而富有魔法趣味的视觉风格,同时最大化可读性和信息传达能力,其灵感源于巫师笔记。该框架完全无需JavaScript,可在所有设备和屏幕尺寸上保持美观与功能。

设计灵感

其设计受以下元素启发:

  • LaTeX 排版系统
  • 老式桌上角色扮演游戏规则书
  • 类似 concrete.cssTufte CSS 的CSS框架
  • 粗野主义的“可用性即设计”理念

使用方式

提供三种引入方法:

  1. CDN:在HTML的 <head> 中添加两行链接(先引入 normalize.css,再引入 magick.css)。
  2. 本地文件:下载 magick.css 文件后直接引用。
  3. npm安装:通过 npm install normalize.css magick.css 安装后在JS项目中导入。

它适用于任何HTML5文档。

布局结构

  • 使用 <main> 标签包裹页面主要内容,形成响应式可读列。
  • 使用 <section> 标签对长内容进行分段。
  • 使用 <aside> 标签添加附注信息。
  • 框架提供自动编号的边注功能。

排版

  • 样式化了 <h1><h4> 等标题,以及段落、链接、强调文本、代码等元素。
  • 低于 <h4> 的标题不被样式化,通常用于特定情况而非层级结构。

结构化内容

  • 列表:样式简洁,包括无序列表、有序列表和描述列表。
  • 表格:设计清晰简洁,引导读者关注数据。示例中展示了含有炼金术主题数据的表格。

表单与交互元素

  • 按钮:有独立样式。
  • 文本输入:大小和位置不受限制,适应多种用法。
  • 复选框与单选按钮:标签应置于输入元素之后,框架会自动处理间距。
  • 表单:整体样式突出,具有手写纸条的视觉效果以吸引用户注意。

媒体与图表

  • <img> 等媒体元素可以独立使用,自然大小显示。
  • 可以用 <figure><figcaption> 来结构化地展示媒体并添加标题。

代码、引用与预格式化

  • 代码:行内代码使用 <code> 标签,代码块使用 <pre> 包裹 <code>。也支持用图表展示代码片段。
  • 引用:使用 <blockquote> 标签,可通过内部 <footer> 添加引文。对于需要保留格式的文本(如诗歌),可用 <pre> 标签包裹。
  • 框架支持为代码添加行号,但需要一些内容预处理。
6. Visiting Scarfolk, the most spectacular dystopia of the 1970s (2016) (www.collectorsweekly.com)

参观斯卡福克:1970年代最壮观的反乌托邦

理查德·利特勒(Richard Littler)将自己对20世纪70年代英国郊区生活的记忆,转化为一个关于虚构反乌托邦小镇斯卡福克(Scarfolk)的博客和书籍。这个创作源于他童年时期因夜间恐惧症而产生的模糊记忆,其中现实与噩梦的界限常常难以区分。例如,他童年记忆中“儿童在铁轨上进行学校体育”的画面,多年后被证实是1977年一部真实的公共信息影片《终点线》。

创作灵感与概念

斯卡福克的概念旨在捕捉正在消逝的70至80年代记忆,特别是那些非典型的、模糊的集体回忆,如市政设计、家用产品、电视台标识和图书馆音乐。其核心设定是斯卡福克永远停留在1970年代,但偶尔会与现实世界相互渗透,以此对比过去几十年间社会态度的变化。利特勒受蒙提·派森、乔治·奥威尔、怪诞美学和“幽冥学”(Hauntology)等影响,将真实性与虚构性结合,创造出一种似是而非的复古记忆体。

设计特点与创作方法

利特勒的创作广泛借鉴70年代真实设计(如企鹅出版社封面、Ladybird书籍),创造出看似真实但实为虚构的“怀旧物品”,包括小册子、海报、书籍封面、唱片封套和电视短片。他的设计具有“干净线条和简单字体”的现代主义美学,并模拟前数字时代物品的物理老化感。创作方法有两种:一是从现有图像出发构思想法;二是根据针对当代事件的想法去寻找合适的图像。

社会批判与现实关联

斯卡福克常涉及监视和公民权利削弱等主题,通过夸张和扭曲近期的政治发展来揭示其荒谬性。许多作品因过于逼真而被误认为真实文物,尤其在涉及种族、性别或儿童待遇等社会议题时。这种模糊性与利特勒对“幽冥学”的运用有关——即回收过去的美学形式,反思我们曾对未来怀有的梦想与现实之间的差距。

当代意义

斯卡福克反映了一种偏执和愤世嫉俗的世界观,其讽刺手法在当代政治环境(如特朗普执政和英国政府政策)中面临挑战,因为官方言行有时已堪比讽刺作品。该项目不仅是对童年恐惧和黑暗历史的探索,也成为了批判当下文化与政治的独特工具。

7. Mozilla Drops Onerep After CEO Admits to Running People-Search Networks (krebsonsecurity.com)

Mozilla 于上月将身份保护服务 Onerep 整合至其 Firefox 浏览器,作为 Mozilla Monitor Plus 订阅服务的一部分,旨在帮助用户从数百个人肉搜索网站中移除个人信息。然而,在 KrebsOnSecurity 于 3 月 14 日发布调查报告,揭露 Onerep 的白俄罗斯籍 CEO 迪米特里·谢列斯特(Dimitri Shelest)自 2010 年以来创建了数十个人肉搜索服务(包括目前仍在运营的数据经纪公司 Nuwber)后,Mozilla 于今日宣布终止与该公司的合作。

谢列斯特随后承认自己仍持有 Nuwber 的股份,但声称该公司与 Onerep 之间无任何数据共享。他解释称,自己早期在人肉搜索领域的深入研究正是 Onerep 拥有领先技术的基础,并对未来未能更清晰地披露这些关联表示歉意。此外,报告还指出谢列斯特的邮箱曾关联到一个推广垃圾药品的俄罗斯网络组织 Spamit,但对此他予以否认。

Mozilla 在声明中表示,尽管用户数据从未面临风险,但 Onerep CEO 的外部商业利益与活动不符合 Mozilla 的价值观,因此决定停止合作,并将制定平稳过渡计划以保障用户体验。

此事引发了对数据经纪行业伦理与监管问题的关注。报道指出,类似 Onerep 和 Nuwber 的人肉搜索服务与数据经纪公司之所以存在,是因为美国多数州的消费者隐私法豁免了所谓的“公开”或“政府”记录(如选民登记、财产文件、婚姻证明、车辆记录等),使得个人数据收集与销售在法律上并不违法。隐私专家认为,从合法运营的服务中移除数据效果有限,而真正造成损害的是非法数据收集者,目前这方面的监管仍显不足。KrebsOnSecurity 此前已通过系列报道揭示了数据经纪行业的复杂网络,包括部分公司与国外势力的潜在联系,进一步凸显了加强消费者数据保护与隐私立法监管的紧迫性。

8. Feedle: A search engine for blogs and podcasts (feedle.world)

Feedle:一个针对博客和播客的搜索引擎

Feedle 是一个专门用于搜索博客文章和播客剧集的搜索引擎。它旨在帮助用户在海量的博客和播客内容中找到所需信息。

核心功能与特点:

  1. 针对性搜索:用户可以搜索数以百万计的博客文章和播客剧集,寻找感兴趣的内容。
  2. 搜索结果即 RSS 订阅源:每一次搜索都会生成一个对应的 RSS 订阅链接。用户可以通过订阅该源,来持续获取与搜索条件匹配的最新结果,保持信息更新。
  3. 基于兴趣的内容发现:通过订阅特定的 RSS 源,用户可以仅凭自己的兴趣,从单一源中发现可能未知的新内容创作者。

当前状态:文章指出 Feedle 是一个全新的项目,正在寻求关注和支持,并鼓励用户在 Mastodon 上关注其官方账号并进行推广。

9. Why the 2% inflation target? (2023) (sites.lsa.umich.edu)

2%通胀目标的由来与意义

历史起源:偶然的开端

2%通胀目标的故事始于新西兰。1989年,新西兰在立法确立央行独立性时,要求设定一个通胀目标。在缺乏政治反对的背景下,时任央行行长在采访中随口提出“0%至1%”的目标,随后为了政策操作空间上调至2%。这一原本随意的数字很快产生影响:新西兰通胀率从1989年的7.6%降至1991年的2%,并促使加拿大、英国等国效仿。

美联储的争论与采纳

美国在选择通胀目标时经历了内部辩论:

  • 沃尔克和格林斯潘倾向于0%-1%,认为这能最小化对商业决策的干扰并保持价格稳定。
  • 耶伦则主张更高的目标,理由是低通胀环境在经济衰退时易引发通缩风险
  • 20世纪90年代末日本的通缩停滞案例支持了更高目标的论点。
  • 2008年金融危机后,美联储内部达成共识,于2012年由伯南克正式确立2%的官方目标

为何不是0%或通缩?

  • 通缩危害:若通胀过低甚至为负,货币实际价值上升,可能导致民众推迟消费和投资,货币流通速度下降,加剧失业与经济收缩,形成自我强化的衰退循环。
  • 缓冲空间:2%的目标为央行在衰退中降低实际利率提供了政策空间,同时平衡了稳定预期与应对风险的需要。

目标的效力与潜在挑战

  • 预期锚定:通胀目标通过引导公众预期(如工资谈判、合同定价)来抑制通胀波动。IMF研究表明,通胀目标制有助于保持低通胀、稳定预期且不影响产出。
  • 信誉风险:若改变2%的目标,央行信誉可能受损,引发不确定性。一旦公众不再信任目标,可能基于自身预期行动,触发“通胀恐惧-抢购-价格上涨”的恶性循环。

结论

2%的通胀目标源自偶然的政治妥协,却因能有效锚定预期、防范通缩而被全球广泛采纳。尽管其最优性可能存疑,但改变这一已深入经济体系的目标将面临重大信誉风险。

10. See a Fish? Ring the Bell (visdeurbel.nl)

本文介绍了名为“鱼铃”的互动式环保项目及其运作模式。

项目核心机制 参与者通过一个在线实时摄像头观察乌特勒支老运河中的鱼类。当在水下画面中看到鱼时,可按下页面上的“鱼铃”按钮。这会向船闸管理员发出信号,提示其开启船闸,从而帮助春季洄游产卵的鱼群顺利通过通常关闭的水闸,继续它们的旅程。

实时数据与社区互动 页面每小时更新一次集体参与数据,包括:

  • 过去一小时内的照片提交数量与平均发现鱼的时间。
  • 实时观看人数、参与度最高的国家和城市。
  • 被报告目击次数最多的鱼种。 所有数据均以匿名方式收集。

内容与功能模块

  1. 鱼种识别指南:列出了可在此水域观察到的多种淡水鱼名称(如鲈鱼、狗鱼、鳗鱼等),辅助参与者辨认。
  2. 项目背景与起源:介绍了“鱼铃”作为全球首个此类项目的意义,源于帮助春季洄游鱼群的实际需求。
  3. 观察技巧:提供了提高发现鱼类几率的建议,如黎明/黄昏观察、关注三月至四月的洄游高峰、夜间可能观测到鳗鱼等特殊鱼种。
  4. 教育延伸:项目还配套了面向5至8年级学生的“鱼铃课程”,旨在传播鱼类及水下生态知识。

总结 该项目通过在线实时摄像头与“按铃”互动相结合的方式,发动公众参与,以公民科学的形式协助解决特定季节的鱼类洄游障碍,兼具环境保护、数据收集与公众教育功能。

11. Pack: A new container format for compressed files (pack.ac)

Pack:新一代压缩文件容器格式

概述

Pack是一种支持文件与原始数据的容器格式,旨在提供安全、快速且可靠的长期数据存储解决方案。它基于成熟标准设计,通过优化性能、随机访问、更新能力、安全性和用户体验,成为高效打包任意规模数据的创新选择。该项目采用宽松许可证,源代码公开,无专利顾虑,最新版本可从官网 pack.ac 获取。

开发背景

现有主流容器格式(如ZIP、gzip、tar、RAR、7-Zip)已有数十年历史。尽管它们长期有效,但随着硬件迭代与算法进步,设计已显陈旧。作者认为有必要基于新一代技术需求重新设计容器格式。

性能对比

在测试中,打包一个包含8.1万多个文件、约1.25 GB的文件夹时,各格式表现如下:

  • ZIP:253 MB,146秒(基准速度1倍)
  • tar.gz:214 MB,28.5秒(速度6倍)
  • tar:1345 MB,4.7秒(速度6倍)
  • RAR:235 MB,27.5秒(速度6倍)
  • 7z:135 MB,54.2秒(速度5倍)
  • Pack:194 MB,1.3秒(速度145倍

Pack在解压速度、随机访问、内存使用等方面均有类似显著提升。其设计能智能自适应,无需手动配置。

技术基础

  • 存储引擎:基于SQLite3格式,确保数据存储的可靠性、事务性更新、低资源占用与简洁性。
  • 压缩算法:采用Zstandard(Zstd),作为当前领域的领先标准算法,兼顾速度与压缩效率。

未来计划

短期内重点进行系统稳定化。后续开发将包括:

  • 锁定与加密功能
  • 图形界面
  • 操作系统集成
  • 开发工具与库
  • 多平台构建支持

开源与协作

项目鼓励用户尝试Pack,通过邮件(o@pack.ac)反馈使用结果。详细设计笔记可查阅官网“Notes”,源代码可在“Source”获取以供深入研究。

结语

Pack延续了数据压缩领域的优秀传统,致力于成为下一代通用容器格式。作者邀请用户测试、查阅代码并参与讨论,共同推动数据存储效率的提升。

致所有热爱数据的人,特别是Phil Katz、D. Richard Hipp、Yann Collet及作者本人。

13. VCard and RSS as an alternative to social media (nfraprado.net)

这篇文章探讨了使用 vCardRSS/Atom 作为替代传统社交媒体的方案,用于建立和维护人际联系。作者因在会议上被人索要LinkedIn而反思,认为虽然已离开社交媒体多年,但仍需一种方式来记录和关注短暂相遇的联系人。

核心观点在于,社交媒体的核心功能(个人资料展示与信息订阅)可以通过两个已有的开放标准实现:

  1. RSS/Atom 用于订阅他人的动态更新。
  2. vCard 作为结构化的个人资料格式,包含姓名、照片、雇主等关键信息,并可通过 SOURCE 属性保持资料更新。

作者提出将RSS/Atom的URL嵌入vCard中,形成一个包含身份识别和订阅功能的单一文件,便于分享和本地存储。技术上,他采用非标准属性 X-FEED 来区分RSS/Atom feed URL与个人网站URL。

为实践这一想法,作者开发了两个脚本:

  • vcard-render:将vCard渲染为网页,可在个人网站展示。
  • vcard-to-opml:从多个vCard中提取RSS feed URL,生成OPML文件,便于导入新闻阅读器(如newsboat)定期更新。

文章最后鼓励读者尝试该方案,并提供作者个人vCard作为联系示例。该方案旨在减少对社交媒体平台的依赖,利用开放、去中心化的技术维护有意义的联系。

14. Butterflies Full of Wasps Full of Microwasps Are a Science Nightmare (2021) (www.atlasobscura.com)

芬兰岛屿上的意外四级寄生系统

1980年代,科学家将格兰维尔蛱蝶的幼虫引入芬兰奥兰群岛的索通加小岛,原本旨在研究蝴蝶的扩散模式。然而,这一行为意外引发了一条复杂的寄生链,导致三种新物种在岛上显现。

多层嵌套的寄生关系

部分蝴蝶幼虫体内寄生着姬小蜂科寄生蜂(Hyposoter horticola),它会从幼虫体内钻出,导致幼虫无法化蛹。更罕见的是,某些寄生蜂体内还携带了一种更微小的超寄生蜂(Mesochorus cf. stigmaticus),它会杀死寄生蜂并从幼虫残骸中出现。此外,雌性寄生蜂通过沃尔巴克氏菌(Wolbachia pipientis)将这种细菌传给后代,而该细菌会增加寄生蜂被超寄生蜂感染的几率。

意外的长期存活

尽管岛屿面积仅约10平方英里且蝴蝶种群多次崩溃,但引入30年后,这四个物种仍在岛上共存。研究发现,寄生蜂可能通过飞行或风力在群岛间扩散,甚至在邻近岛屿发现了与索通加岛基因相似的寄生蜂种群,表明它们可能源自最初引入的个体。

生态启示与警示

该案例突显了物种重引入项目的潜在风险:即使意图良好,也可能无意间引入寄生虫、病原体或其他依赖生物。研究指出,沃尔巴克氏菌若被意外引入未感染种群,可能降低保护物种的繁殖成功率。此外,气候变化导致的干旱加剧了蝴蝶种群的崩溃风险,可能威胁整个寄生系统的存续。

现状与展望

目前,格兰维尔蛱蝶及其寄生链在索通加岛依然存在,但干旱压力持续。研究人员每年监测种群状况,强调在开展物种保护前需更深入了解物种特性及其栖息环境。

16. OpenCat: Open-source robotic pet quadruped framework (www.petoi.com)

OpenCat:开源四足机器人宠物框架

核心概述

OpenCat是GitHub上最受关注的开源四足机器人平台,由Petoi创始人李荣忠博士开发。它为STEM教育、创客和研究人员提供可编程的四足机器人平台,支撑Petoi Bittle X(机器狗)、Nybble Q(机器猫)及带机械臂版本等产品。

解决的问题

传统四足机器人系统复杂、成本高、技术门槛高,个人难以获得能动态行走的机器人。OpenCat旨在大幅降低开发成本与技术壁垒,使四足机器人易于构建和开发。

核心解决方案

  • 关节设计:采用业余爱好者级别的高性能舵机作为关节
  • 结构优化:将舵机布局在优化设计的机身框架中
  • 硬件支持:使用低成本流行硬件(如Arduino、ESP32、Raspberry Pi)作为控制器,支持智能摄像头、物联网传感器、语音命令等扩展模块
  • 软件系统:提供高效开源的控制代码,实现生动的运动任务

OpenCat操作系统理念

OpenCat类似Android操作系统概念:最初为Petoi自有机器人设计,但作为开源框架发布,其他机器人制造商和公司也可采用。自2018年代码开源以来,已被数百款非Petoi产品采用。

商业应用

OpenCat已部署于Petoi量产的掌心大小、仿生逼真的机器人产品中(如Arduino机器猫Nybble和机器狗Bittle)。这些机器人能像真实动物一样奔跑、行走和保持平衡。通过众筹,这些开源机器人套件已销往全球60多个国家的数千用户。

开源目标

  1. 促进协作:在机器人运动、物联网和人工智能领域推动可负担四足机器人的开发协作
  2. 教育普及:为大众提供STEM和机器人教育资源,激发各年龄段学生的工程与计算机科学兴趣
  3. 技术革新:加入机器人AI和物联网革命,实现复杂系统的功能模块化

发展历程

  • 2015年:Boston Dynamics机器狗演示视频引发广泛关注
  • 2016年:创始人李荣忠在宿舍开始以宠物机器人原型启动OpenCat项目
  • 2017年:经过一年研发后成立Petoi公司,全力投入智能仿生四足开源机器人套件的设计与制造
17. Launch HN: DryMerge (YC W24) – Automate Workflows with Plain English

DryMerge 是一款 Y Combinator W24 支持的工具,允许用户使用简单的英语(自然语言)描述并自动化日常工作流程。

该产品的核心价值在于解决了现有工作流程自动化工具的主要局限:用户仍需在复杂的菜单中导航、手动拆分步骤并配置数据映射。DryMerge 旨在通过自然语言描述结合 AI 技术,取代传统的无代码图形界面或脚本方式,大幅简化自动化设置过程。

例如,用户可以描述:“当我收到潜在客户的邮件时,将其信息添加到谷歌表格并发送短信通知我。” DryMerge 便能自动完成端到端的配置。

其技术架构主要包含两个关键部分:

  1. 语义层:利用大语言模型(LLM)解析用户的自然语言请求,并将其映射到数百个预定义的触发器和动作集成中。该层会生成多个候选执行方案,根据历史成功经验进行评分并择优。它还会提取关键实体和字段,自动为缺失信息生成一个简单表单供用户填写。用户可以在同一对话界面中迭代地描述、调整和测试工作流程。
  2. 数据平面:负责实际执行工作流程。它订阅相关事件流,执行各个步骤,并自动处理分页、重试、回滚等复杂技术细节。数据平面还支持运行时依赖注入,以处理开放式逻辑(如邮件紧急程度分类或会议记录摘要)。

目前,DryMerge 已集成 14 项常用服务(如谷歌邮箱、日历、表格、Linear等)。

18. SQLite Schema Diagram Generator (gitlab.com)

SQLite Schema Diagram Generator 是一个用于生成 SQLite 数据库架构可视化图表的工具。根据其名称,该工具的核心功能是将 SQLite 数据库的模式(即表、列、数据类型、主外键关系等)转换为直观的图形化表示。

尽管提供的文章内容不完整,仅显示“Loading...”,但可以推断该工具的主要用途和特点:

  • 主要目的:帮助用户(如开发者、数据库管理员或数据分析师)快速理解和可视化 SQLite 数据库的结构,无需手动绘制图表。
  • 工作原理:该工具很可能通过读取 SQLite 数据库文件,解析其中的元数据(如表定义、字段信息和约束),然后自动生成表示这些关系的图表。
  • 输出形式:预期的输出可能是标准的图表格式(如 PNG、SVG 或 PDF),或者在网页上直接展示交互式图表。
  • 关键功能
    • 自动解析:自动提取数据库中的表及其列信息。
    • 关系可视化:清晰地展示表与表之间的外键关联。
    • 用户友好:提供一种无需编程或复杂配置即可获得数据库全局视图的简便方法。

该工具对于数据库文档化、团队协作、代码审查或任何需要直观理解现有数据库结构的场景都具有实际价值。由于原始内容未提供,以上总结基于工具名称和常见功能进行的合理推断。

19. Post-quantum cryptography is too damn big (dadrian.io)

后量子密码算法体积过大

大规模量子计算机能够破解当今互联网普遍使用的非对称加密方式,但幸运的是它们尚未出现。互联网向后量子密码学的过渡始于2022年,当时NIST宣布了其PQC竞赛中密钥交换和签名的最终候选方案。

传统观点认为过渡到后量子密码学需要很长时间,因此即使量子计算机尚不可见,现在也需要开始标准化和部署。我们将采用NIST竞赛中产生的最佳方案进行部署。

遗憾的是,关于NIST标准化算法为何在多数情况下不适合在公共Web上部署的讨论不足。我们需要更好的算法,特别是那些线上字节数更少的算法:一个KEM,嵌入TLS ClientHello后仍低于一个MTU;一个性能与ECDSA相当且大小不超过RSA-2048的签名;以及一个可选接受较大公钥的低于100字节的签名。

HTTPS中的密码学应用

当前HTTPS主要以五种方式使用密码学:

  1. 对称加密/解密:HTTP/2的实际数据在TLS连接内使用认证加密(如AES-GCM)传输,这基本上已对量子计算机安全。
  2. 密钥协商:双方共同生成共享密钥的过程。TLS 1.3传统上使用椭圆曲线Diffie-Hellman。所有非后量子的密钥交换机制(包括Diffie-Hellman)都会被量子计算机破解。
  3. 服务器身份认证:通过X.509证书认证服务器。至少一个服务器证书包含公钥和来自中间证书的签名;中间证书又包含另一个公钥和来自受信任根证书的签名。
  4. 签发透明度:Web PKI依赖于称为证书颁发机构(CA)的第三方来验证域名所有权。证书被公开记录,服务器证明其证书包含在日志中,以此威慑恶意签发。
  5. 握手认证:在TLS握手期间,服务器身份需要绑定到连接本身。在TLS 1.3中,这是通过服务器证书中的私钥对服务器密钥共享消息进行签名(在CertificateVerify消息中)来实现的。

当前的威胁与优先级

量子计算机对当前加密网络连接的威胁形式是“现在收集,以后解密”攻击。为此,我们只需确保密钥协商和对称加密是“量子抗性”的。对称加密已具备量子抗性,因此防御“现在收集,以后解密”攻击仅需将密钥交换算法更新为后量子变体。

HTTPS中密码学的其余用途(服务器身份、签发透明度、握手认证)最终也需要过渡到后量子变体。在当前TLS结构中,这意味着用后量子变体替换所有签名。然而,这样做的需求虽然与过渡密钥交换同等重要,但紧迫性较低。这与浏览器的行动一致:它们正在积极部署后量子密钥交换算法,但没有广泛使用的浏览器开始部署后量子签名。

签名尺寸过大的问题

后量子签名及其对应公钥太大。一次平均的HTTPS TLS握手会传输5个签名和2个公钥。当前的大小分解大致为:

  • 根证书:通常包含RSA密钥,预分发。
  • 中间证书:RSA中间证书有512字节签名和256字节公钥。
  • 叶子证书:ECDSA叶子证书有32字节密钥和256字节RSA签名(来自中间证书)。
  • 握手:包含一个64字节的ECDSA签名。
  • 每个证书透明度时间戳(SCT):包含一个64字节的ECDSA签名(通常每个证书有2个SCT)。

总计约1,248字节的签名和公钥。

NIST首个PQC竞赛的获胜签名算法ML-DSA (Dilithium)的公钥为1,312字节,签名为2,420字节。这意味着:

  • 一个ML-DSA公钥就比当前HTTPS连接中传输的所有5个签名和2个公钥都大。
  • 如果直接替换,一次TLS握手将包含 5×2420 + 2×1312 = 14,724字节的签名和公钥,增长超过10倍。

除非大规模量子计算机迫在眉睫,否则仅为了建立连接而发送如此多的数据是站不住脚的。此外,增加的数据量会显著影响性能:Cloudflare发现,服务器响应每增加1K,HTTPS握手延迟中位数增加约1.5%。Chrome在部署ML-KEM时,因其使ClientHello超过标准MTU(约1400字节)导致分片,观察到TLS握手延迟增加了4%。假设ML-KEM是必须的,若要将后量子密码学的总延迟影响控制在10%以内,我们需要在服务器响应消息中在约4K的额外字节内完成所有认证。然而,单个ML-DSA签名/公钥对就约4K字节。ML-DSA太大,无法部署以应对尚无时间表的威胁。

有希望的候选方案

NIST认识到签名过大,正在举办后续竞赛以寻找更小、更快的签名算法。目前领先的候选方案包括:

  • UOV (Unbalanced Oil and Vinegar):公钥很大(66K!),但签名仅94字节,与当前SCT中的ECDSA签名相当。大公钥可以接受,因为证书透明度日志的公钥是预分发的,且日志数量少(约10个)。但UOV不适合作为根证书解决方案,因为根证书太多,根存储会太大。
  • SQISign:拥有64字节密钥和177字节签名。如果用于证书和握手签名,总计约659字节,优于当前RSA+ECDSA方案(约1,120字节)。然而,SQISign极其缓慢,需要签名速度提升约10,000倍,验证速度提升约100倍才可行。
  • Mayo:可能可行。Mayo1公钥1,168字节,签名321字节,可用于证书和握手认证(总计约3,299字节)。Mayo2公钥5,488字节,签名180字节,若UOV失败,可考虑用于SCT。

可能的优化与挑战

还可以尝试调整其他性能参数,但这需要对HTTPS、TLS和Web PKI的交互方式进行比直接替换PQC算法更大的改动。一些想法包括:

  • 预分发中间证书:将已知中间证书预分发给浏览器,可节省约1.5K字节。
  • 合并SCT和证书:实验性提案如Merkle树证书,将证书和SCT合并为单一对象,使用单一的基于哈希的认证证明。这将减少握手所需,但可能不适合非浏览器应用(如要求延迟批量签发、客户端需与透明度服务器保持同步)。
  • 缩小根存储大小:一个包含少于10个UOV公钥证书的后量子根存储,其大小与当前根存储在同一数量级。

结合Mayo和UOV以及对PKI的其他改变,可能足以过渡到WebPKI中的量子抗性认证。然而,所有这些设计都面临风险:性能影响可能比测量值更大;Mayo和UOV的安全性可能无法保证;即使性能估计准确,10%的性能损失可能仍过高,除非量子计算机迫在眉睫。

结论与呼吁

即使是Merkle树证书这样激进的变化,结合ML-DSA或Mayo用于握手认证,对于非浏览器客户端来说可能仍然太大。为了降低风险,我们需要在信任锚灵活性、中间证书抑制和PKI迁移方面做得更好。

使后量子过渡更可行的最佳方式是开发出性能特征不比RSA-2048更差的更好算法。具体需要:

  1. 一个与TLS ClientHello其余部分结合后能放入单个MTU的后量子KEM。
  2. SQISign(或具有类似特性新算法)的签名速度提升10,000倍,验证速度提升100倍。

这可能是苛求,但使用当前形式的ML-DSA于Web PKI同样是不可能的。

20. 2K earthquakes in 1 day off Canada coast (www.livescience.com)

本月早些时候,加拿大海岸附近一处地点在一天内发生了近2000次地震,这可能标志着一次深海岩浆破裂即将催生出新的海洋地壳。

这些地震并未对人类构成威胁。震级相对较小,集中在距离温哥华岛约150英里(240公里)的“奋进号”站点附近。该地点拥有多个热液喷口,位于胡安·德富卡海岭上——那里海底正不断扩张。华盛顿大学海洋地球物理学博士生佐伊·克劳斯指出,该区域不同于更靠近海岸的俯冲带(即一个构造板块沉入另一板块下方地幔的区域),后者可能引发破坏性强震。

22. Soupault: A static website management tool (soupault.app)

Soupault(发音为_soup-oh_)是一个静态网站生成器/框架,专注于操作HTML元素树,并能够根据规则自动编辑HTML页面,类似于一个不知疲倦的机器人网站管理员。它可用于构建博客和其他类型的网站,类似于其他静态网站生成器(如Jekyll、Hugo),但也能作为现有网站的后处理器,这是其他工具不支持的用例。Soupault高度可配置和可扩展,提供对网站生成过程的完全控制。

快速开始

Soupault安装简单:适用于Linux(x86-64)、macOS和Windows,可下载可执行文件。对于博客或在线书籍,可使用现成的蓝图。自定义设置可通过指南学习工作流程,如从头创建博客设置或用作现有网站的后处理器。

独特优势

Soupault与其他静态网站生成器不同,它处理HTML元素树级别,将HTML视为第一类格式,从而支持多种用例:

  • 存储页面在任何格式:支持Markdown等格式转换,可配置预处理器命令(如cmark、pandoc、Asciidoctor),自动转换为HTML。
  • 集成外部工具:可在构建时调用外部程序处理HTML,减少客户端JavaScript,例如通过管道处理代码高亮或数学渲染。
  • 从HTML提取元数据:无需前端元数据,可使用CSS选择器从HTML中提取字段(如标题),并生成索引列表。
  • 强大的HTML操作:内置功能如双向脚注、目录生成和链接前缀修改;支持Lua插件扩展,实现自定义变换和DSL转换。
  • 持久性:以静态链接可执行文件提供,无依赖,可长期稳定使用。

名称与背景

Soupault以法国达达主义和超现实主义作家Philippe Soupault命名,基于lambdasoup库。开发由College of ’Pataphysics和IHHF赞助。

图形与使用

标志是一根棍子马,引用达达主义起源。用户可在网站上放置标志按钮以推广Soupault。

开发者信息

由Daniil Baturin个人开发,欢迎贡献和建议。提供支持联系渠道。

24. Bertie – A minimal, high-assurance implementation of TLS 1.3 written in hacspec (github.com)

Bertie:基于hacspec的TLS 1.3高保证实现

概述

Bertie是一个用hacspec编写的TLS 1.3的极简、高保证实现。hacspec是Rust的一个受限子集,专为形式化验证而设计。

核心设计原则

  • 纯函数式:不使用可变数据结构,无外部可见的副作用。
  • 验证友好:用hacspec编写,可翻译为F*语言。
  • 简洁最小化:仅配置单一协议版本和密码套件。

项目状态与许可

  • 由Karthikeyan Bhargavan于2021年在Inria创建,2022年转入Cryspen。
  • 采用Apache 2.0许可,但目前尚未准备好公开使用,仅为早期工作草案。

使用示例

项目提供了基于Bertie的HTTPS客户端与服务器示例:

  • simple_https_client:可通过 cargo run -p simple_https_client -- google.com 运行示例。
  • simple_https_server:提供了相应的HTTPS服务器示例。
  • ⚠️ 警告:切勿在生产环境中使用。这是一个进行中的早期草稿。商业支持需联系Cryspen。

开发与贡献

  • 代码约束:所有代码必须符合hacspec规范,因此可能与标准Rust写法有所不同。
  • 验证工具:需安装cargo插件以验证代码合规性。
  • 环境配置:需将rustup设置为hacspec仓库当前使用的通道 (rustup override set <channel>)。
  • 贡献指南:贡献前应查看项目的贡献准则和行为准则。

项目结构

  • .github:GitHub Actions CI配置。
  • assets:项目使用的非代码文件。
  • bogo_shim:用于对接BoringSSL测试运行器的BoGo shim应用。
  • record:为simple_https_clientsimple_https_server提供通用功能的crate。
  • simple_https_client:Bertie HTTPS客户端示例crate。
  • simple_https_server:Bertie HTTPS服务器示例crate。
  • srcBertie核心源代码(必须符合hacspec规范)。
  • tests:所有测试。

出版物

Bertie的灵感来源于hacspec和TLS 1.3的多项先前研究工作,包括相关技术报告和会议论文。

许可与致谢

  • 许可:Apache 2.0。
  • 支持:项目由Inria和nlnet基金会支持。
25. DenseFormer: Enhancing Information Flow in Transformers (arxiv.org)

DenseFormer:增强Transformer中的信息流

摘要

Transformer架构已成为自然语言处理、语音处理和图像理解等多个领域的标准模型。本文提出了DenseFormer,一种对标准Transformer架构的简单改进。该模型无需增加模型规模(对于千亿参数级别的大型模型仅增加数千参数),即可改善模型的困惑度。其核心思想是在每个Transformer块之后添加一个深度加权平均步骤,计算当前表示与历史表示的加权平均,从而增强模型中的信息流动。

核心技术

  • 深度加权平均:DenseFormer在标准Transformer每个块后引入DWA操作。该操作对当前层输出与之前各层表示进行加权平均,权重通过学习获得。
  • 信息流模式:学习到的DWA权重展现出连贯的模式,揭示了模型对远距离层激活的强且结构化的重用。

主要优势

  • 数据效率更高:DenseFormer能以更少的数据达到更深Transformer模型的困惑度水平。
  • 计算资源更优:在达到相同困惑度的情况下,DenseFormer在内存效率和推理时间上均优于传统Transformer基线模型。

实验结果

实验表明,DenseFormer在不显著增加参数量的前提下,通过改善信息流动,在模型性能和效率上实现了双重提升。

26. Fundamentals of Object Storage in Elixir (underjord.io)

Elixir 对象存储基础概述

背景与核心概念

对象存储(Object Storage)是现代云存储服务的基石,其本质是简单的键值存储系统。与传统的网络文件系统(如 NFS)相比,对象存储提供了更高的可靠性、可扩展性以及简化的管理方式。它并非文件系统,而是专注于提供四个基本操作:上传(Put)、下载(Get)、列举(List)和删除(Delete) 对象。其目标是实现近乎“无限”的存储容量扩展,并按实际使用量计费。

在 Elixir 中实现基本操作

文章使用 ex_awsex_aws_s3 库,在 Elixir 中演示了对象存储的基本交互:

  1. 配置:在 config.exs 中设置 S3 兼容服务的端点(以 Tigris 为例),并通过环境变量提供访问凭证。
  2. 列举对象:通过 S3.list_objects 列出存储桶中的对象,并可按前缀过滤。
  3. 上传与下载
    • put! 函数使用 S3.put_object 上传数据。
    • get 函数使用 S3.get_object 下载数据,并能处理对象不存在(404)的情况。
  4. 并行批量操作:利用 Task.async_stream/2 实现高并发的批量上传,展示系统的并行处理能力。
  5. 清空存储桶exterminate! 函数通过列举所有对象键并调用 S3.delete_all_objects 来清空存储桶。

高级功能与优化

预签名 URL

这是一种关键的优化模式,允许客户端直接与对象存储服务交互,从而卸载应用服务器的数据传输负担。通过 S3.presigned_url 生成一个临时的、有权限的 URL,客户端可直接使用它进行文件的上传或下载。这种方式减少了服务器带宽消耗,并能利用存储服务(如 Tigris)的地理分发特性,降低用户访问延迟。

分段上传(流式上传)

针对大文件(最大支持 5GB),可以采用分段上传。文章演示了通过 S3.Upload.stream_file 将文件转为流,以较小的块(例如 5MB)进行上传。这种流式处理方式能显著降低内存占用,特别适用于需要边处理边上传的场景。

范围请求(流式下载)

通过 HTTP 范围请求(Range 头),客户端可以只请求文件的一部分字节。在 Elixir 中,通过在 S3.get_object 选项中添加 range 参数来实现。这极具灵活性,可用于:

  • 流式播放媒体文件。
  • 仅读取大型归档文件(如 ZIP、Parquet)的索引部分,无需下载整个文件即可获取文件列表或元数据。
  • 实现高效的随机访问。

S3 API 成为行业标准的原因

几乎所有对象存储服务都提供 S3 兼容的 API。文章指出,这并非因为 S3 API 本身设计完美,而是因为:

  1. 兼容性价值:兼容 S3 API 意味着能立即获得海量现有客户端、SDK 和工具链的支持,降低了迁移和采用成本。
  2. “足够好”的协议:S3 API 提供了实现可靠、“无限”存储所需的核心功能集。
  3. 既是约束也是创新的起点:对于存储服务提供商(如 Tigris),兼容 S3 API 便于用户使用,但该 API 的相对稳定和扩展性限制也可能约束了底层架构的创新。未来的突破可能需要超越传统 S3 API 的范畴。

总结

文章通过 Elixir 代码示例,系统性地介绍了对象存储的基础原理、客户端实现方法,并重点展示了预签名 URL、分段上传和范围请求等高级特性,阐释了对象存储在现代应用架构中解放服务器、提升效率和灵活性的关键作用。

27. -2000 Lines of Code (2007) (www.folklore.org)

文章标题: -2000行代码(2007年)

作者: Andy Hertzfeld
日期: 1982年2月
相关人物: Bill Atkinson
主题: 软件设计,管理,Lisa

核心内容:
以代码行数衡量软件开发进度存在局限性。

详细概述:
1982年初,Lisa软件团队在为半年内完成软件发布的最后冲刺阶段,部分管理人员决定通过追踪每位工程师每周编写的代码行数来评估工作进展,并设计了要求工程师每周五提交的进度表格。

作为Quickdraw的作者、主要用户界面设计者以及Lisa项目中最关键的实现者,Bill Atkinson认为以代码行数衡量软件生产力是一种愚蠢的方式。他的目标是编写尽可能精简、高效的程序,而代码行数指标只会鼓励编写冗长、臃肿且漏洞百出的代码。

当时,他正致力于优化Quickdraw的区域计算机制,通过更简洁、通用的算法重写了区域引擎,经过调整后使区域操作速度提升了近六倍,同时减少了约2000行代码。

当他首次填写管理表格时,在代码行数一栏中填写了“-2000”。尽管不确定管理人员对此的反应,但几周后他们便不再要求Bill填写该表格,而他欣然接受。