2026-07-18

16 篇热帖

1. Regressive JPEGs (maurycyz.com)

渐进式JPEG允许先保存低频分量,使未完全下载的图像可以低分辨率整体呈现,而非局部截断。文件将压缩数据拆分为多个扫描(scan),每个扫描前带头部,注明所含通道、霍夫曼表索引、DCT系数起始与结束频带,以及精度模式。

以文中示例的首个扫描为例,它包含全部三个颜色通道(YCbCr)的直流分量(DC,即DCT 0号频带),精度减半。JPEG使用YCbCr色彩空间,亮度通道(Y)需要保留较多细节,色度通道(Cb、Cr)则可大幅压缩;加之色度通常以半分辨率记录,数据量反而更小。后续扫描依次补充Y的中高频细节、Cb与Cr的剩余频带等,直至恢复完整画质。其中扫描4的频谱范围特意填补扫描1留下的空缺,以便扫描5能在完整的低精度数据上继续精修。

文章的核心发现是:由于每个扫描都显式设定自身频谱范围,后续扫描可以覆盖先前已渲染的图像数据。实现方式是将多幅同分辨率图像拼接,并剔除中间多余的图像开始(SOI)、帧开始(SOF)和图像结束(EOI)标记。这样在慢速网络传输时,浏览器逐段解码会在不同内容间切换,形成类似动画的效果。

但大多数解码器为防止 zip bomb 攻击,会在一定数量扫描后停止,通常只能渲染约9帧,不足以构成连续动画。若尝试改用基线JPEG的单扫描来减少扫描数,基线解码器会在第一帧后停止;而渐进模式不允许单个扫描同时包含DC与AC系数。因此最小可行的“渐进”单元只能是仅含DC分量的单扫描。按文中说法,DCT以16×16块运行,纯DC帧分辨率约为原图的1/16,但已能独立构成一副标准合规的图像。

仅使用DC扫描还有一个好处:由于不存在用于精修旧数据的AC扫描,不会产生此前实验中的残影问题。在Chrome中可渲染约90帧后才放弃,Firefox等浏览器容忍度更高,90扫描的图像几乎可在所有环境中正常显示。借助 jpegtran 及如下扫描描述即可生成此类DC-only帧:

0,1,2:0-0,0,0;

将大量仅含DC的帧合并进同一个JPEG文件,就能把整段视频封装在单张“图片”内。然而这并无实际用途:JPEG扫描没有时序信息,画面切换完全取决于网络延迟。作者展示了切换的猫图、黑猫行走等演示,还据此制作了仅用HTML <dialog>标签的“纯HTML视频”,以及不依赖CSS或JavaScript的单页交互应用。相关生成代码见 merge.c

2. Thanks HN for 15 years of support and helping me find my life's work

Recurse Center 迎来创办 15 周年之际,其联合创始人在 Hacker News 发文回顾项目起源,并向社区表达感谢。

作者回忆,2010 年夏天他与联合创始人参加 Y Combinator(YC)时,最初的创业构想是打造“职场版 OkCupid”。该想法很快失败,随后一年里团队又多次 pivot,尝试了其他数个方向,均以失败告终。最终,他们决定做一个自己也想要的产品:一个自主驱动的编程静修营(retreat),让参与者在其中开发有趣的项目、为开源软件做贡献,并相互帮助成为更优秀的程序员。

在低调运行了两期小规模试点后,团队在 Hacker News 上正式发布项目,获得了热烈的反响。这篇帖子帮助他们突破了个人人脉圈,接触到来自世界各地的程序员,其中不少人后来成为挚友。此后几期项目的绝大多数参与者都来自 HN 社区,并且多年来 HN 一直是其第二大申请者来源,仅次于口碑推荐。

作者提到,YC 创始人 Paul Graham(pg)当年在 HN 评论区的判断颇具预见性:运营免费的编程 retreat 不会成为价值十亿美元的生意,但这仍然是一件正确且值得做的事。15 年来,Recurse Center 已积极影响了超过 3,000 名程序员;作者表示,自己每天醒来依然对这项工作充满热情。

文章最后,作者感谢 Hacker News 帮助 Recurse Center 成为可能,也帮助他找到了毕生的事业。

4. Kaiser nurses say AI, workplace surveillance are making their jobs, care worse (localnewsmatters.org)

Kaiser Permanente护士指控AI与职场监控损害护理质量

Kaiser Permanente(凯撒医疗集团)的咨询热线与分诊护士表示,日益加剧的职场监控和人工智能技术正在威胁她们对患者的照护职责,并迫使她们在效率指标与医疗安全之间做出艰难抉择。

通话时限制约与绩效压力

据七名现任及前任护士向CalMatters透露,Kaiser管理层对护士与患者的通话时长进行严密追踪。若单次通话超过15分钟,护士通常会遭到批评或被召入绩效评估会议。通话时长被纳入月度绩效评分,同时公司还使用软件预测护士的“低效率”状态,并用人工智能系统评判其同理心与语气。护士称,即使面对自杀倾向、刚获知绝症诊断、需要健康宣教或需要翻译服务的患者,她们也承受着压缩通话时间的压力。有护士表示,涉及翻译的通话往往需要30分钟以上,但公司仍期望控制在15分钟内。

对护理实践的直接影响

多名护士讲述了监控如何干扰临床判断与人文关怀。一位名为Raquel Alvarez Sanchez的护士回忆,她曾在一次自杀危机干预通话中陪伴患者超过一小时,等待警方抵达;她明知这会严重影响自己的“平均处理时间”并招致管理层质询。另一位匿名护士表示,面对一位刚被确诊晚期癌症、亟需情感支持的老年患者,她因担心通话超时影响绩效分数而中断了安抚。护士们还被要求严格遵循脚本,最多提供两三条建议,常需在“提供额外指导”与“面临处分”之间取舍。她们表示,如今两段通话之间仅剩30秒左右的时间来整理情绪或完成病历记录,极易遗漏关键健康线索。

工会行动与合同谈判

针对上述问题,代表25,000名Kaiser护士(含1,000名呼叫中心护士)的加州护士协会(CNA)已将AI监管列为今夏合同谈判的核心议题。此前,护士们曾在2025年3月举行反对AI的罢工,并于2024年秋季发起抗议。2024年夏天,Kaiser开始测试用于评估护士与患者语音“同理心及语气”的AI工具,引发护士联署请愿,呼吁尊重患者隐私、保障专业判断权及提高AI透明度。该测试于2024年11月终止,但管理层暗示未来可能重启。工会代表Cathy Kennedy认为,此举是Kaiser长期削弱护士自主权、将护理工作碎片化与自动化的延续。

Kaiser的回应

Kaiser Permanente否认使用“平均处理时间”(Average Handle Time)评估个人绩效或强制执行通话时限。公司发言人称,呼叫中心内的一切技术工具均服务于质量保证,且有人工审查与监督,强调其以“患者安全、隐私与公平”为优先。但公司拒绝透露内部AI系统的具体细节,也未回应有关呼叫中心自动化评估及AI同理心检测工具的进一步问题。

学术研究与更广泛趋势

学术界对此类监控提出警告。加州大学伯克利分校劳工中心专家指出,算法管理可能将医护人员变成“血肉机器人”。一项2023年针对发达国家呼叫中心的调查显示,AI监控使员工情绪耗竭加剧、工作压力上升。康奈尔大学研究者Virginia Dolleghast表示,持续监控会提升处理复杂情绪问题员工的压力与出错风险,而医疗场景中的失误可能危及生命安全。全国护士联合工会(NNU)2024年的一项调查也发现,三分之二的受访护士曾与算法生成的患者护理预测产生分歧,且六成护士不信任雇主在AI使用中优先考虑患者安全。

立法动态

加州立法机构正在审议多项管控职场AI的法案,包括:禁止雇主用AI预测员工情绪状态(AB 1883);保护医护人员在推翻自动化护理建议时免遭报复(AB 2575);以及要求雇主在使用自动化系统前通知员工的SB 947(前身为SB 7)。此前,类似法案曾因企业反对未获通过或被州长否决。CNA与加州劳工联合会正支持约六项相关立法,施压政府加强对医护职场AI的监管。

在Kaiser内部,AI应用已远超呼叫中心,涵盖住院风险预警、出院决策、诊疗语音转录及远程监控等多个领域。工会方面则通过“见新事物即上报”等策略,试图追踪并抵制未通知一线员工即部署的AI技术,此前已成功阻止一项以摄像头取代床边看护护士的试点项目。护士普遍认为,若监控系统继续以利润和效率为导向,将从根本上侵蚀护理职业的核心价值与患者信任。

5. Why do AI company logos look like buttholes? (2025) (velvetshark.com)

AI 行业正经历一场奇特的「肛门 Logo 流行病」。大量 AI 公司的品牌标识呈现高度趋同的视觉特征:圆形或雪花状结构、中心开口、向外辐射的元素、柔和渐变与有机曲线——这些特征组合在一起,形成了令人尴尬又忍俊不禁的解剖学联想。

这一现象在主流 AI 企业中极为普遍。OpenAI 的标志从纯文字演变为名为「Blossom」的环形中空图案,官方以「人类与技术的交汇」「圆形的流畅与温暖」等话术包装其设计理念。Anthropic 的 Claude Logo 则更加直白,其造型与 Kurt Vonnegut 小说《冠军早餐》中的肛门插图高度相似;若在其官网点击该 Logo,还会出现收缩与放松的交互动画。纵观行业巨头,除了 DeepSeek 与 Midjourney(两者均与海洋相关)外,几乎都采用了这种「括约肌美学」。

文章分析,这股趋势背后是多重因素共同作用的结果:

  • 圆形心理学:圆形象征完整、无限与未来感,同时传递友好、无害的信号,以缓解人们对「取代人类」技术的戒心。
  • 无意中的生物模仿:人脑倾向于在随机形状中发现熟悉模式(空想性错视),设计师可能在无意中复刻了生物形态。
  • 跟风效应:OpenAI 等头部企业确立模板后,其他公司为彰显专业与正统纷纷效仿,导致行业内卷式同质化。
  • 委员会设计:多方利益妥协往往催生最安全、最不冒犯的平均选项;风险厌恶最终将设计推向乏味的解剖学开口。

作者将此现象置于科技设计史脉络中,戏称为继 3D 光泽、拟物化、扁平化、新拟态之后的「肛门时代」。这揭露出科技行业的一大悖论:尽管口口声声颠覆与创新,品牌视觉上却极度恐惧出格,拼命通过从众换取「合法」形象。

文章也提及历史上的类似失误(如 Zune Logo 翻转后的歧义、巴西东方学研究所的「 pagoda 」争议),并强烈建议企业在发布前特聘「中学生评审团」,因为他们能最高效地挖掘一切不恰当联想。对于希望打破僵局的 AI 公司,文章提供了几条出路:采用锐角几何而非圆形、创造性利用负空间、避免径向对称、舍弃渐变,并向 Slack(有意义的抽象)、Netflix(字母形态)、Stripe(叙事性线条)、Twitch(独特色彩)等成功品牌取经。

结论指出,熟悉的视觉语言固然能快速建立信任,但下一代 AI 企业若想在品牌上真正创新,就必须摆脱千篇一律的「括约肌模板」。这篇以戏谑口吻写就的文章,其内核是对现代商业设计令人沮丧的同质化的严肃批判。

6. Learning a few things about running SQLite (jvns.ca)

作者近期在开发 Django 网站时选用了 SQLite 作为数据库。尽管阅读了大量鼓吹 SQLite 可用于生产环境的文章并认同其对小型站点的适用性,但实际操作中逐渐意识到数据库本身的复杂性。这是作者第四个使用 SQLite 的项目,但由于 Django ORM 的能力,数据库承担了比以往更多的工作。

以下是作者在生产环境中运行 SQLite 的几点经验:

启用 WAL 模式 项目初期按照多数建议开启了 WAL(Write-Ahead Logging)模式。

ANALYZE 对性能至关重要 作者在使用 SQLite FTS5 对一张约 4000 行的表进行全文搜索时,某条查询耗时长达 5 秒。执行 ANALYZE 命令后,查询时间骤降至约 0.05 秒。ANALYZE 会生成有关表行数等的统计信息,帮助查询优化器做出更优的执行计划选择。

清理数据需谨慎 在批量删除大量无用数据(如 django-tasks-db 的已完成任务)时,DELETE 操作可能超过 5 秒。由于 SQLite 的并发写入限制,这会导致其他尝试写入的工作进程超时、崩溃,甚至引发虚拟机宕机。目前的解决方案是分批执行清理操作,将单次耗时控制在 5 秒以内。这件事也让作者更加理解为何有人倾向于使用支持并发写入的 Postgres。未来可能会考虑通过停机维护窗口来执行这类操作。

ORM 查询现状 目前作者使用 Django ORM 时并未特别关注查询优化,但由于数据库规模很小(约 1 万行),且预计长期保持小规模,因此运行情况尚可。

备份方案 作者介绍了两种 SQLite 备份方式:

  1. restic:先使用 VACUUM INTO 将数据库导出到临时文件,再用 gzip 压缩,最后通过 restic 备份到 S3。缺点是备份进程有时会被 OOM 杀死,导致数据库锁残留,需要手动执行 unlock
  2. Litestream:用于增量备份,配置更简单,效率更高,解决了 restic 偶尔 OOM 的问题。配置文件中设置保留时间为 400 小时,数据备份至 AWS S3。

多数据库拆分策略 虽然当前项目使用单一数据库,但在“Mess with DNS”项目中,作者将表拆分到三个独立的数据库文件中,因为表之间并不需要强关联。该项目自 2022 年从 Postgres 迁移到 SQLite 后已稳定运行四年。

总结 作者认为在技术使用中不断发现基础功能(如使用 SQLite 两年后才发现 ANALYZE)是一个有趣的过程。文章最后附上了参考链接,包括《The definitive guide to using Django with SQLite in production》和一份关于 SQLite 性能调优的 Gist。

7. The Zilog Z80 has turned 50 (goliath32.com)

Zilog Z80 于1976年7月正式发布,文章撰写时正值其诞生50周年。作为史上极为成功的8位处理器之一,Z80被广泛应用于早期个人电脑、家用/业余计算机及嵌入式与工业领域,与8080、8085共同确立了8位微机的硬件事实标准,并促成了CP/M与Microsoft BASIC的软件生态。其架构衍生出大量克隆与变体,最著名的是任天堂Game Boy搭载的Sharp LR35902;Zilog后期放弃16位与32位衍生路线,回归以Z80为基础的高性能微控制器(如流水线架构的eZ80)。该芯片在工业领域沿用至今,最终于2024年6月停产。

Z80的技术血脉可追溯至Computer Terminal Corporation(CTC)的Datapoint 2200可编程终端。当时Intel与德州仪器分别受委托将其TTL处理器单芯片化,但均未按期交付;Intel后续将成果商业化,命名为8008。8008拥有A、B、C、D、E、H、L七个寄存器及由HL指向的M伪寄存器,内部维护8级硬件返回栈、14位地址空间和32个I/O端口,中断依赖RST指令跳转至固定槽位。其采用18引脚DIP封装,地址与数据复用,需双相时钟及+5V/-9V双电源供电,约含3500个晶体管。

Federico Faggin与Masatoshi Shima随后主导开发8080,并放弃与8008的二进制兼容。8080以SP寄存器指向内存中的外部栈,取代内部硬件栈;地址空间扩至16位(64 KB),I/O端口增至256个;新增BC、DE间址及16位双字节运算,中断可软件开关。8080采用40引脚封装,地址与数据不再复用,但仍需外部锁存内部状态,且因NMOS工艺需-5V、+5V、+12V三组电源与高压双相时钟,周边电路设计复杂。

因对Intel管理层不满,Faggin于1974年离职,与Ralph Ungermann创立Zilog,Exxon提供约50万美元资金,Shima随后加入。Z80以“Super 80”为代号,在保持与8080二进制兼容的前提下全面增强:新增受6800启发的IX、IY索引寄存器,支持带偏移量的寻址;AF、BC、DE、HL四组寄存器均支持体切换(Bank switch),显著简化中断现场保护;中断系统提供三种模式——8080兼容模式0、固定跳转地址模式1、可编程向量表模式2。此外还新增位旋转/测试/置位指令、BCD算术、硬件块传输/块比较/字符串操作及循环控制指令(如单条LDIR即可完成字节块复制)。由于Intel拥有助记符版权,Z80采用更清晰的汇编语法,显式表达双操作数。

电气接口方面,Z80仅需单一5V电源与单一时钟输入,并直接输出MREQ、IORQ、RD、WR、M1等控制信号,无需复杂外部译码,最小系统仅需简单逻辑芯片即可工作。它还内置刷新计数器,可在指令译码周期自动完成DRAM刷新;配合中断模式1,甚至无需外部中断控制器即可构建简单系统。

在Z80发布前,Zilog已着手设计16位的Z8000(1979年发布)。Z8000采用分段存储,并依赖外部MMU进行地址转换与权限检查,其MMU设计理念影响了Intel 286的16位保护模式;Z8000指令集也继承了Z80的块操作与循环指令。然而,由于Exxon与IBM在办公自动化市场的竞争关系,IBM最终放弃Zilog方案,选择Intel 8088作为PC处理器,这对Zilog的发展造成深远影响。1980年Zilog成为Exxon全资子公司,Faggin与Ungermann因此分道扬镳;1989年Zilog脱离Exxon,1991年上市,此后几经转手,现为Littelfuse所有。

8. TP-Link Kasa cameras leaked home GPS via unauthenticated UDP for 6 years (github.com)

TP-Link Kasa EC71 安全漏洞公告摘要

独立研究员 Christopher Childress(BadChemical)于2026年7月16日发布安全公告,披露 TP-Link Kasa Spot EC71 室内摄像头(固件 2.3.26)存在多个严重漏洞,已在固件 2.4.1 中修复,对应 CVE-2026-9770 和 CVE-2026-13230。

主要漏洞

公告确认三类核心漏洞:

  1. 硬编码 RSA 私钥(Finding 1):固件在两个 SquashFS 层中内嵌了两套全设备通用的 RSA 密钥/证书对(包括一套2014年签发的过期 1024 位密钥和一套2021年签发的有效 2048 位密钥)。攻击者通过任意设备的 SPI 闪存提取即可获得整个产品线的相同私钥,存在大规模加密通信风险。

  2. 不安全凭证存储(Finding 2):用户云账户凭证以明文邮箱地址及无盐 MD5 哈希形式存储在 config/account 文件中。由于 TP-Link ID 为跨产品统一认证体系,破解该 MD5 哈希后,攻击者可接管用户所有 TP-Link 生态账户(包括 Tapo 智能门锁、Deco Mesh 网络及 VIGI 监控设备)。

  3. 未经身份验证的 GPS 泄露(Finding 3,CVE-2026-13230):向 UDP 9999 端口发送单条未经认证的请求,即可返回设备精确 GPS 坐标、硬件唯一标识符及固件版本等敏感信息。该协议自2016年起即被公开记录存在无认证问题,且 GPS 数据在用户注册时采集并永久存储于固件中,与2023年才推出的地理围栏功能无关。此漏洞在 TP-Link 摄像头产品线中已存在六年。

披露与修复历程

研究员于2026年1月5日启动协调披露。厂商确认前两项发现,并将 GPS 问题另案处理(TPVD20260324001)。修复过程历经波折:6月中旬灰度发布的 2.4.0 测试固件因稳定性问题在部署至60%时回滚,且导致测试设备变砖(需硬件级 SPI 重刷恢复)。最终 Beta 2.4.1 于6月底完成验证,主要修复包括:移除所有通用 RSA 证书,改用基于 NOC 的每设备 EC 密钥;对凭证存储启用静态加密;移除 get_sysinfo 响应中的 GPS 数据,并关闭端口 9999 的未经认证响应。

二级市场风险

研究发现恢复出厂设置不会清除 jffs2 分区中的用户数据。二手设备攻击路径被证实:新用户可通过 soft AP 模式下的 UDP 9999 端口获取前机主家庭 GPS 坐标,并通过 SPI 提取获得其 TP-Link ID 邮箱及 MD5 密码哈希,进而破解并关联物理地址,实现跨域账户接管。固件 2.4.1 已缓解此风险。

其他发现

另有四项发现(Finding 4-7)涉及弱云令牌派生、通过 $FAILSAFE 逻辑的身份验证绕过、四个本地服务端点(10443/17443/18443/19443)的活跃旧版架构,以及内部测试基础设施硬编码地址。厂商以 CNA Operational Rule 4.1.2 将其归类为可接受风险或超出范围,未予修复。

影响范围

官方确认受影响型号为 EC70 v4 与 EC71 v4。但独立研究早在2020年即在 KC100 上发现相同 GPS 泄露,且2016年公开的智能家庭协议影响所有采用该协议的设备,实际影响范围可能更广。

9. Texas wins court order to suspend domain name for violating age-verification law (www.texasattorneygeneral.gov)

德克萨斯州总检察长肯·帕克斯顿(Ken Paxton)成功获得一项法院命令,要求域名注册管理机构Verisign对色情网站motherless.com的域名实施注册锁定或类似限制措施,理由是该公司违反德州年龄验证法,且无视先前的法院判决继续向未成年人传播有害性内容。

该案件始于2024年4月,帕克斯顿因motherless.com的运营方Kick Online Entertainment(该公司自称“无道德约束”企业)违反德州年龄验证法而提起诉讼。法院随后作出缺席判决和永久禁令,要求该公司停止向未成年人发布有害性内容并实施合理的年龄验证措施。但Kick Online完全无视诉讼及法院命令,继续向德克萨斯州的未成年人提供有害性内容。

为强制其遵守法律并保护未成年人,法院此次签发执行令,指示维护“.com”顶级域名注册的Verisign对“motherless.com”域名采取锁定、保留或同等状态。根据该命令,Kick Online只有在缴纳914万美元保证金、实施符合德州法律的年龄验证措施,并履行此前判决的民事罚款后,才有资格申请赎回该域名。

帕克斯顿表示,这一法院命令开创了重大先例:无视法律并向儿童传播色情内容的网站可被剥夺域名。他强调,保护儿童不仅是收取罚款,更要关停拒不守法的网站。

此举表明,德克萨斯州拥有法律权威和实际手段跨境追责外国运营商。州检察长办公室将继续运用包括域名扣押令在内的所有法律机制,确保无论公司注册地位于何处,都不能通过向德州儿童传播有害内容获利。

10. Static search trees: 40x faster than binary search (2024) (curiouscoding.nl)

本文介绍了针对有序 32 位无符号整数数组的静态搜索树(S+ 树)的高吞吐量优化实现,最终查询吞吐量相比标准二分搜索提升超过 40 倍。

问题与基线 目标是实现一个查询结构,对于给定查询 q,返回不小于 q 的最小元素(或 u32::MAX)。基准测试使用均匀随机数据,以吞吐量为优化指标(单位:ns/query)。标准库二分搜索作为基线;Eytzinger 布局通过重新组织数据使前若干层搜索所需的缓存行相邻,并支持预取,在数据量超过 L3 缓存时可达约 6 倍加速。其后所有实验均默认使用 2MB(实际对齐到 32MB)大页以减少 TLB 压力。

节点内查找(find)优化 在 S+ 树中,每个节点对齐到 64 字节缓存行,存储 16 个有序值(分支因子 17)。作者首先对比了节点内定位子节点的 find 实现:

  • 简单线性扫描分支多、性能差。
  • 自动向量化版本采用无分支计数(统计 < q 的数量),编译器生成 SIMD 指令,吞吐量超过 Eytzinger 布局一倍多。
  • 手动 SIMD 最终采用基于 > 比较、vpackssdw 打包与 _mm256_movemask_epi8 提取掩码,再用 popcount 统计位数的方式来确定子节点索引。通过将 /2 * 64 合并为 *32 等指针运算微调,最终把单查询耗时从 Eytzinger 的约 240 ns 降至约 115 ns,节点内搜索仅需 5 条核心指令。

整棵树的搜索优化 基于 find_popcnt,作者进一步优化跨节点遍历:

  • 批处理(Batching):不再逐条处理查询,而是以批次(最终固定为 128 条)同时推进。这样 CPU 可同时发起多个内存读取请求,充分利用约 12 个 line fill buffer,将耗时从 115 ns 降至约 45 ns。
  • 预取(Prefetching):在批处理中显式预取下一层节点。当数据超出 L2/L3 后效果显著,1GB 数据查询耗时从 45 ns 降至约 30 ns。
  • 指针运算:将查询值提前 broadcast(splat);索引改用字节指针运算,并把节点偏移量预乘 64,消除内层循环中的 shlq $6 移位指令,进一步微调至约 28 ns。
  • 层级交错(Interleave):前几层遍历受 CPU 计算限制,后几层受内存带宽限制。通过同时推进多个批次,使不同批次的浅层计算与深层内存访问重叠。完全交错策略将性能推至约 24 ns/query。

树布局优化

  • 左最大树(Left-max S+ tree):传统节点存储右子树最小值,而改为存储左子树最大值,使搜索直接导向包含答案的叶子节点,避免多读一个缓存行,耗时降至约 22 ns。
  • 节点大小 B=15:将分支因子降为 16,乘法可优化为移位。在 L3 缓存内略有提升,但空间开销从约 6.25% 增至 13.3%,且对内存受限场景无帮助。
  • 反转布局与完整布局实验未带来性能收益。

前缀分区 探索按值的高 b 位将数据划分为 2^b 份并建立子树:

  • 完整布局空间浪费严重;紧凑子树布局空间高效但查询因需显式跟踪分区而略慢。
  • 采用“首层紧凑”或“重叠树”等折中布局,可在空间与速度间取得平衡。
  • 针对人类基因组 k-mer 等高度偏斜数据,简单分区空间爆炸;引入前缀映射表(prefix map)指向紧凑存储的子树,空间开销回到约 1/16,但大输入下查询速度仍略逊于不分区的交错方案。
  • 结论:在已使用层级交错查询的前提下,前缀分区收益有限,复杂度不划算。

多线程与总结 单线程终极优化将 4GB 数据的查询耗时从二分搜索的约 1150 ns 降至约 27 ns(交错版本),提速超 40 倍。6 线程并行时降至约 7 ns,但加速比不足 4 倍,说明此时总内存带宽已成为瓶颈。

未来工作 作者提及可探索分支搜索、插值搜索、值压缩为 16 位、返回原数组下标、范围查询、对查询排序以提升缓存复用,以及将优化应用于后缀数组搜索等方向。所有源码与基准测试位于 GitHub 仓库。

11. Lego building instructions through time (www.lego.com)

乐高拼搭指南的演变历程

乐高拼搭指南自1955年起从简单示意发展为如今的数字化交互工具,但其核心目标始终是帮助玩家将积木块转化为创意作品,并展示拼搭技巧。

早期发展(1955-1960年代)

1955年前,乐高产品仅通过包装图画或盒内传单提供灵感。1955年,首本《乐高创意手册》(Idea Book)问世,介绍拼搭技巧与房屋灵感;同年"乐高玩乐系统"推出,城镇计划系列首次包含特定模型的专用套装,催生了简单拼搭指南。早期指南在提供固定步骤与鼓励自由拼搭之间寻求平衡,基础套装也常附带房屋拼搭建议。1958年现代乐高积木诞生后,套装日趋复杂,1960年代指南逐步增加步骤并引入彩色印刷,但仍保持简化,通常正反两面分别展示主体步骤与替代模型。

传统制作流程与外部合作

1960年代起,乐高开始与外部公司合作绘制指南。1967年至2003年间,主要合作方为丹麦科灵市的Palle Munch公司。传统制作流程极为繁琐:设计师完成模型后将其拆解为步骤,逐一枚举并审批;随后逐一定位拍摄,确保每步位置精确以便叠加对照;外部团队据此手工绘制放大版草图(每颗凸点直径7.5毫米),再缩小后交由其他公司上色。

数字化转型(1980年代-2000年代)

1983年,乐高首次组建内部专职拼搭指南团队,从设计师手中接管步骤创建工作。1984年,外部供应商借助丹麦电视舞台设计软件"Monster"改造开发出专用工具"Panter"(意为"Palle的新绘图工具"),1986年投入使用并沿用17年,后续升级为支持彩色的Panter 2。此期间由外部团队绘制,但乐高内部团队拥有最终审核权。

2003年,效率更高的"3D Vision"取代Panter,该工具能自动生成积木元素尺寸数据,将复杂套装的制作周期从三周缩短至三天。同年,乐高结束了与Palle Munch长达36年的合作,将指南制作全面转为内部完成。2005年,基于外部3D平台开发的内部插件Easy Builder Tool (EBT)投入使用,功能更丰富但操作更复杂。

现代制作与数字化体验

专职团队已从1983年的两三个人扩展至现今逾百人。目前主要使用LEGO Digital Designer (LDD) Pro,自2018年首批采用,2022年起所有拼搭指南均通过该工具制作,具体流程仍为商业机密。

多年来,乐高指南始终保持"卡通化"视觉风格而非写实渲染,以确保玩家能够清晰区分颜色并获得最佳拼搭体验。如今,除传统纸质指南外,LEGO Builder应用程序提供2D与3D数字指南,支持缩放旋转,其"一起拼搭"功能可将任务分配给多位玩家,实现家庭或团队协作。

尽管形式从1955年的简易纸张发展到交互式应用,乐高对创造直观、世界级拼搭体验的追求始终如一,旨在为玩家进一步探索乐高玩乐系统奠定坚实基础。

12. Open Book Touch: open-source e-reader (www.crowdsupply.com)

Open Book Touch 是由 Oddly Specific Objects 发起的一款口袋型、全开源电子阅读器,目前正在 Crowd Supply 平台众筹。项目已超额完成 4.5 万美元目标(达成 110%),售价 149 美元起,预计 2027 年初向支持者发货。

经过六年研发,该设备定位为极简专注的阅读工具。它采用 4.26 英寸、480×800 分辨率的前光电纸触控屏,整机厚约 1 厘米、重约 85 克,正面无物理按键,对称式设计可轻松放入口袋。区别于早期原型,该机型终于支持完整的 EPUB 格式渲染、书籍封面展示,以及深度设计的图形界面。

阅读体验是其核心。设备搭载真实的排版引擎,支持两端对齐、智能连字符断行(覆盖英语、西班牙语、法语、意大利语)和内嵌图片的 1 位抖动显示。字体使用开源的 Lucida Bright 与 Lucida Sans 位图版本,提供三种尺寸及完整的粗体、斜体字形。用户可通过长按实现高亮、查词与折页,支持书架分类管理,并能精确记忆阅读进度。

显示与灯光方面,屏幕在仅 4.26 英寸的对角线上实现了通常 7.5 英寸面板才有的 480×800 像素,显示效果锐利。前光模块配备 5 颗暖光与 5 颗冷光 LED,支持色温和亮度独立调节,以适应不同阅读环境。屏幕支持 1 位快速刷新用于日常交互,2 位灰度模式则用于锁屏封面。

多语言支持是本项目的重要目标。设备内置 GNU Unifont(约 7 万字形)作为全局回退字体,覆盖全球多数书写系统;操作界面已本地化为英语、西班牙语、法语、德语、日语、阿拉伯语和希伯来语。软件实现了 Unicode 双向排版算法与阿拉伯语字母变形,从右至左文本原生支持。复杂印度文字体 shaping 尚未完善,项目欢迎社区贡献代码。

硬件与系统采用 ESP32-S3 双核微控制器(而非 Linux 系统),搭载 16 MB 闪存、8 MB PSRAM,支持 Wi-Fi 与蓝牙 LE,通过 microSD 卡扩展存储。其他配置包括 32.768 kHz 时钟晶振、USB-C 接口(集成锂电池充电与管理)。用户可自行更换电池(最低 800 mAh,视供应链情况或升级至 1200 mAh)。固件基于 ESP-IDF/FreeRTOS 构建,使用 SQLite 管理书库 metadata,支持通过浏览器在同一 Wi-Fi 下无线传书。关闭前光时阅读续航约一周,纯待机可达一个月以上。

开源与可定制性是最大卖点。硬件与 MIT 许可证固件将在发货时完全公开;外壳采用 3D 打印卡扣结构,用户可获取 CAD 文件自行定制颜色与材质。团队还自研并开源了 C++ 应用框架 Focus(灵感来自 UIKit/AppKit),提供视图控制器、触摸手势、控件及虚拟键盘,且屏幕驱动可替换,具备跨平台能力。设备无需注册账户,无 DRM,不联网上报数据。

风险方面,项目严重依赖 Good Display 的一款集成前光与触控的电纸屏。当前全球电子纸驱动芯片供应紧张,交期可能长达八个月。团队承诺一旦众筹达标即自付预订面板,以锁定首批约 1000 片产量。此外,关税波动、地缘局势及更广泛的零部件短缺也可能影响交付。团队计划按支持者订单顺序分批发货,并承诺如实同步进度。

13. FAA lets Boeing sign off on 737 MAX, 787 airworthiness certificates again (www.cnbc.com)

美国联邦航空管理局(FAA)周五宣布,波音公司可重新为其最畅销的737 Max飞机和787梦想客机自行颁发适航证书。此前,因2018年和2019年两起致命的737 Max坠机事故,波音的此项权限被监管机构剥夺。

去年9月,FAA曾部分恢复波音的这项权限,允许其为部分737 Max和787梦想客机在交付客户前自行签发证书,采用FAA与波音隔周轮流进行的方式。在过去八个月中,FAA发现,无论是波音还是该机构自己颁发适航证书,生产质量方面的检查结果基本一致。基于这些结果,FAA认定可以安全地将这一职责归还给波音。

波音在一份声明中表示,公司“将在FAA的监督下继续努力,制造安全、高质量的商用飞机,并符合所有适航认证要求”。

这一决定是对波音的重大信任投票。作为美国按价值计算最大的出口商之一,波音近年来经历了严重的安全危机,除上述两起坠机事故外,还包括2024年1月的一起险情:一架全新的737 Max 9客机在起飞后不久,舱门塞(door plug)爆裂脱落。

14. Painting the sides of railroad rails white to reduce derailment (www.up.com)

联合太平洋铁路采用刷白钢轨侧面创新举措降低高温脱轨风险

联合太平洋铁路公司(Union Pacific)正在美国铁路行业率先推行一项创新安全措施:在钢轨两侧涂刷白色油漆,以降低高温导致的脱轨风险。该举措是公司更广泛安全战略的一部分,助力其在2025年实现有史以来最佳的全年度脱轨事故率,同比改善19%。

问题根源:热胀错位 首席安全官Rod Doerr指出,极端高温下钢轨会膨胀,若膨胀受限,钢轨可能横向推移,形成所谓“热错位”(thermal misalignment)。尽管铁路公司一直依靠轨枕锚固件、扣件及定期维护来管理此类风险,但在覆盖3.2万英里的庞大网络上,仍需额外手段降低钢轨本身的热应力。

创新方案:融合欧洲铁路技术与美国公路做法 联合太平洋的解决方案借鉴了欧洲铁路的成熟经验与美国公路标线的方法——使用高空作业轨道车搭载喷漆设备,在钢轨两侧喷涂白色油漆。其原理是通过高反射率降低轨面吸收的太阳热量。Doerr表示,实测轨温可降低约20华氏度,从而显著减少钢轨因热应力而发生位移的风险。

部署范围与独特性 该措施去年已开始在高热区域进行针对性部署,作为现有维护与巡检体系的补充防护层。据Doerr称,据其所知,目前美国尚无其他铁路公司采用此法,但该技术在欧洲已被证明有效。

安全理念与文化影响 Doerr强调,此举体现了联合太平洋“预防为先”的安全思维,即通过结合成熟实践、持续监测和务实创新来系统性强化安全。这也是铁路 industry 按吨英里计算事故率远低于公路运输、成为最安全陆上货运方式的原因之一。

该措施已在公司内部 Crew rooms 及员工大会中引发广泛讨论。Doerr援引员工反馈:“为什么我们一百年前不这么做?”他认为,这种质疑恰恰说明安全创新文化在公司内部依然活跃。

作为联合太平洋“安全、服务与运营卓越”战略的一部分,此类实践为其建设“美国第一条横贯大陆铁路”的愿景奠定了坚实基础。

16. Show HN: A zoomable timeline of 4M Wikipedia events (app.everything.diena.co)

Diena 是一个在 Show HN 上展示的互动时间轴项目,全称为 Diena - The timeline of everything。该项目整合了约 400 万条来自维基百科的事件数据,提供可缩放的浏览界面,时间跨度涵盖从大爆炸到现代,并延伸至未来。用户可以通过这一全新互动方式,探索宇宙历史、地球生命的起源与演化,以及人类文明的发展历程。