【HN中文日报】科技圈大爆炸!维基百科硬刚英国法规,AOL拨号终结,还有AI助手、量子密码、效率神器...速览!

意外富翁 · 4个月前 · News · 16 · 0

今天 Hacker News 社区聊了啥? NO.20250811

今天这份日报信息量超大!从维基媒体基金会挑战网络安全法案,到AOL拨号上网时代的落幕,再到Claude Code成为你的全能开发助手,每一篇都干货满满。OpenSSH拥抱后量子密码学,保护你的未来数据安全;还有程序员用.txt文件提升效率的奇招!想知道如何用Zig和SIMD加速子字符串搜索?想了解最新的定价页面设计灵感?想深入Chrome漏洞?或者拆解Kona EV的Bluelink?快来一起探索今天的科技热点,绝对让你脑洞大开!

Hacker News 中文精选


维基媒体基金会挑战英国网络安全法案法规

维基媒体基金会正在对英国的网络安全法案(OSA)的分类法规发起法律挑战,认为这些法规可能会危及维基百科及其志愿者贡献者的全球社区。

维基媒体基金会认为,如果维基百科受到Category 1义务的约束,将会损害志愿者的隐私和安全,使百科全书容易受到操纵和破坏,并将重要资源从保护用户和改进维基百科上转移。Category 1义务要求验证许多维基百科贡献者的身份,这可能会导致数据泄露、跟踪、诉讼,甚至可能被专制政权监禁。基金会并非全面挑战OSA,而是专注于可能对维基百科施加Category 1义务的分类法规。他们认为,这些规则是为互联网上风险最高的商业网站设计的,不应适用于维基百科这样重要的公共知识资源。一名英国的维基百科志愿者也加入了诉讼,强调了OSA分类法规对贡献者参与知识共享的威胁,以及对其隐私、安全、言论自由和结社权的损害。高等法院驳回了维基媒体基金会对英国网络安全法案的挑战,但强调了英国通信管理局(Ofcom)和英国政府有责任确保维基百科在OSA实施过程中受到保护。法院承认维基百科的“重要价值”及其对用户的安全性,以及错误分配的OSA分类和义务可能对维基百科志愿者贡献者的人权造成的损害。法院强调,这项裁决“并未赋予Ofcom和国务大臣实施可能严重阻碍维基百科运营的制度的绿灯”,并表示如果他们未能保护维基百科及其用户的权利,他们可能会面临法律影响。为了实现这一结果,他建议Ofcom可能需要对相关规则进行特别灵活的解释,或者这些规则本身可能需要在议会中进行修改。


Claude Code:你的全能开发助手

本文介绍了作者如何使用 Claude Code 进行工作、娱乐,甚至将其作为文本编辑器。作者认为 Claude Code 非常适合他的工作流程,并分享了使用 Claude Code 构建各种项目的经验,包括实验性的“自主创业构建器”、SplitWise 替代品、AI 海报制作器等。

作者在使用 Claude Code 的过程中总结了以下几点:首先,要对其抱有信心,即使在重要的资源上也要“危险地跳过权限”。其次,要给予它大量的输入,输入越多,输出就越好。最后,令人惊讶的是,它在 UI 设计方面表现出色,尽管它主要是一个文本模型。

文章还探讨了“vibe coding”的概念,即在不查看或编辑代码的情况下创建软件。作者通过使用 Claude Code 开发一个基本的 SplitWise 克隆来展示 vibe coding 的能力。他提供了一个 SPEC.md 文件作为输入,Claude Code 能够生成一个功能完整的 CRUD 应用程序。

作者还对比了两个使用 Claude Code 创建的 SplitWise 克隆版本。一个版本是使用 PHP 编写的,代码简洁,功能完整。另一个版本是使用 NodeJS 编写的,代码复杂,依赖项庞大,甚至无法实现基本功能。这表明,即使使用相同的工具,输入质量和指导也会对结果产生重大影响。

总的来说,作者对 Claude Code 印象深刻,并认为它是一个强大的工具,可以用于各种开发任务。他强调了输入质量的重要性,并建议开发者在使用 Claude Code 时要给予它清晰的指导。


OpenSSH拥抱后量子密码学:保护未来数据安全

OpenSSH 正在积极采用后量子密码学(Post-Quantum Cryptography),以应对未来量子计算机可能带来的安全威胁。OpenSSH 9.0 引入了 sntrup761x25519-sha512 算法,并在 OpenSSH 10.0 中将 mlkem768x25519-sha256 设置为默认方案。

OpenSSH 10.1 开始,如果连接使用了非后量子密钥协商方案,会发出警告,提醒用户注意潜在风险。这个警告可以通过 ssh_config(5) 中的 WarnWeakCrypto 选项禁用。

量子计算机的出现,可能会破解当前广泛使用的密钥协商和数字签名算法。虽然目前还没有足够强大的量子计算机出现,但“存储后解密”攻击的风险已经存在,攻击者可以先收集加密的 SSH 会话,然后在未来使用量子计算机解密。

OpenSSH 通过支持后量子密码学来保护用户流量免受这种攻击。文章还提到,OpenSSH 实现的所有后量子算法都是“混合”算法,将后量子算法与经典算法相结合,即使后量子算法被破解,安全性也不会比之前的经典算法更差。例如,mlkem768x25519-sha256 结合了 ML-KEM(一种后量子密钥协商方案)和 ECDH/x25519(一种经典的密钥协商算法)。

即使有人认为量子计算机永远不会出现,采用后量子密码学也是值得的,因为即使量子计算机不可行,这些算法也具有更强的数学基础。

评论区观点:

  • 混合方案的重要性: 有评论指出,文章最重要的信息是 OpenSSH 使用混合方案,确保安全性不会降低,即使后量子算法被破解。
  • 后量子密码学采用的必要性: 有评论询问,考虑到量子密码学的现状,目前采用后量子密码学的紧迫性有多大?以及后量子算法密钥长度较大,是否会导致网络流量和 CPU 时间的巨大开销。
  • 安全审计工具的更新: 有评论建议更新 ssh-audit 工具,以测试后量子算法的支持情况。

AOL 告别拨号上网:一个时代的落幕

纽约时报报道,AOL 宣布将于 2025 年 9 月 30 日正式停止拨号上网服务,这标志着一个互联网时代的结束。许多人可能惊讶于 AOL 的拨号服务至今还在运营,但它确实存在,并且即将成为历史。AOL 在其帮助门户网站上低调地发布了声明,表示公司会定期评估其产品和服务,并最终决定停止拨号上网服务。

AOL 的拨号上网服务曾是互联网早期的代名词,伴随着无数人走过最初的网络岁月。在宽带尚未普及的年代,AOL 以其便捷的软件和大量的免费试用光盘,迅速占领了市场。虽然现在看来,拨号上网的速度慢、连接不稳定,但在当时,它却是人们接触互联网的主要途径。AOL 的停止服务,也代表着一个时代的终结。

评论区里,大家对此消息的反应各不相同。有人对 AOL 拨号服务的落幕表示怀念,毕竟它承载着一代人的回忆。也有人惊讶于 AOL 拨号服务竟然还在运营,并好奇是谁还在使用这项服务,以及他们的使用场景是什么。还有人提到 AOL 当年铺天盖地的营销策略,以及免费试用光盘对 CD-ROM 普及的推动作用。更有人分享了自己当年通过购买附赠 AOL 免费上网时长的产品,首次接触互联网的经历。总体来说,评论区充满了对 AOL 拨号上网时代的回忆和感慨。


告别效率应用:我最终选择了 .txt 文件

本文讲述了作者尝试各种效率应用后,最终回归使用简单的 .txt 文件管理待办事项的历程,并分享了这种方法的优势。作者认为,真正的效率不在于寻找完美的 App,而在于将任务记录下来、定期查看并执行。

作者详细描述了自己使用 Notion、Todoist、Things 3、Trello 和 OmniFocus 等应用的经历,最终发现自己花费了大量时间管理这些工具,而不是真正地完成任务。一次手机没电的经历让作者意识到,一张便签和几行字就能高效地完成任务。现在,作者使用一个简单的 .txt 文件记录每天的日程,用时间标记预定的事项,用子弹点记录笔记和提醒。完成的任务会被删除或记录结果,未完成的任务则保留。每天结束时,旧的记录会变成工作日志,方便日后搜索。

作者总结了使用 .txt 文件的几个优点:它始终存在于桌面,随时可以访问;启动速度快,添加任务只需几秒钟;易于搜索,可以快速找到任何信息;完全由自己掌控,不受任何公司或算法的限制;简单直接,无法隐藏未完成的任务;并且具有极强的持久性,不会因为软件更新或公司倒闭而失效。作者还强调,AI 可以辅助,但不是必需的。即使没有 AI,这个系统仍然有效。

作者建议大家尝试使用 .txt 文件管理待办事项一周,体验简单带来的高效。

评论区里,有人也认同使用纯文本文件的优点,但指出缺少 App 的运行时循环,无法提醒即将到来的任务,需要手动反复扫描文件,效率较低。他们认为,计算机的优势在于可以自动提醒,希望找到一款能将 .txt 文件转化为自动提醒的 App。也有评论认为,过于基础的工具反而会降低效率。


使用 Zig 和 SIMD 加速子字符串搜索

本文介绍了如何使用 Zig 语言和 SIMD (单指令多数据) 技术,实现比 Zig 标准库 std.mem.indexOf 快约 60% 的子字符串搜索算法。文章深入探讨了 SIMD 友好的算法,并展示了在 Zig 中的具体实现。

文章首先介绍了作为基准的 Zig 标准库函数 std.mem.indexOf,该函数用于在 haystack 中查找 needle 子字符串的第一个索引。接着,详细解释了 Wojciech Muła 的 SIMD 友好算法,该算法通过提取 needle 的首尾字符,并利用 SIMD 寄存器并行比较 haystack 中的多个字符,从而大幅减少了内存访问次数。具体来说,该算法首先将 needle 的首尾字符加载到 SIMD 寄存器中,然后循环遍历 haystack,每次加载 32 个字符到 SIMD 寄存器,并与首尾字符进行比较,生成两个位掩码 FirstLast。通过对这两个掩码进行按位与操作,得到 Result 掩码,该掩码指示了潜在的子字符串出现位置。最后,对这些潜在位置进行验证,以确认是否真正匹配 needle。

文章还展示了该算法在 Zig 中的具体实现,包括如何使用 @Vector 函数定义 SIMD 数据类型,以及如何使用 @splat 函数将字符加载到 SIMD 寄存器中。在主循环中,代码首先检查 haystack 中剩余的字符数是否足够读取 32 + needle.len 个字符。然后,加载要比较的块,并使用 SIMD 指令进行比较,生成掩码。如果掩码非零,则表示存在候选位置,需要进一步验证。文章还提到,由于已经检查了子字符串的首尾字符,因此无需再次检查它们的相等性。最后,如果剩余字符不足以进行 SIMD 比较,则回退到 std.mem.IndexOf 进行标量搜索。

为了验证 SIMD 算法的性能,文章使用了完整的《白鲸记》文本作为 haystack,并搜索 "newsletter" 一词。基准测试结果表明,使用 SIMD 算法后,wall time 降低了约 58.9%,CPU 周期降低了约 82.8%,指令数降低了约 68.8%,性能提升显著。

总的来说,这篇文章深入浅出地介绍了如何使用 Zig 语言和 SIMD 技术优化子字符串搜索算法,为读者提供了一个实际的 SIMD 应用案例。


精选定价页面设计案例:寻找灵感与最佳实践

Pricing Pages Design 是一个精选的定价页面设计案例库,旨在为开发者和设计者提供灵感。该网站收集了各种行业的定价页面,并允许用户按行业和设计风格进行筛选,帮助用户找到最适合自己产品的定价页面设计。

这个网站就像一个定价页面的灵感宝库,你可以根据行业(比如旅游、电商、AI)或者设计风格(比如颜色区分、用量计费、联系销售)来筛选案例。它展示了各种各样的定价策略和呈现方式,例如:Delphi AI 使用自定义定价和对比表格,WhaleSync 则采用标准表格和功能复选框。Osmo 使用堆叠卡片,而 Firecrawl 则使用基于使用量的计算器。你还可以看到按月/年切换、功能列表等常见元素的不同实现方式。这个网站可以帮助你了解不同公司如何向客户展示他们的定价方案,并从中获得启发。

评论区里,大家对定价策略和页面设计提出了不少有趣的观点。有人好奇用户是否真的需要更细化的定价选项,比如增加 token 数量但取消图像生成功能。也有人觉得现在的 SaaS 产品定价页面千篇一律,缺乏创新。还有人吐槽“功能差异”列表,认为很多重复的功能根本没必要列出来。另外,有人分享了 Paywall Screens 网站,它收集了移动应用中的付费墙截图,也是一个不错的参考资源。总的来说,评论反映了大家对定价策略和页面设计的关注,以及对差异化和用户需求的思考。


Chrome Ipcz 漏洞允许渲染器复制浏览器进程句柄逃逸沙箱

本文深入探讨了一个 Chrome 浏览器中 Ipcz(Inter-Process Communication Zone)的漏洞,该漏洞允许渲染器进程复制浏览器进程的句柄,从而逃逸沙箱。该漏洞由 Chrome VRP(Vulnerability Reward Program)小组确认,并奖励了 25 万美元。

该漏洞利用的核心在于 NodeLink::OnAcceptIntroduction 函数。当 Broker 发送 msg::AcceptIntroduction 消息时,恶意渲染器会拦截该消息。在正常情况下,该消息用于在节点之间建立连接。然而,攻击者可以利用该机制,在渲染器中存储一个来自非浏览器进程的 Broker 传输对象。当渲染器接收到另一个 msg::AcceptIntroduction 消息时,它会将之前存储的传输对象(transport1)连同其自身传输对象一起,通过 msg::ReferNonBroker 消息发送回浏览器。

更具体地说,当第一次通过该函数时,transport1 为空,因此传入的传输对象会被存储在 transport1 中并激活。SetTransport 函数会将 this 指针存储在 driver_transport 中,以便后续通过 Notify 的调用都能返回 OK。之后,节点会等待另一个 msg::AcceptIntroduction 消息。当下一次接收到 introduction 消息时,代码会进入 if() 语句。然后,渲染器会将此消息作为 ReferNonBroker 消息发送回浏览器,其中包含(其自身的)传输对象。

通过精心构造的数据包,攻击者可以欺骗浏览器,使其认为渲染器拥有合法的 Broker 连接。然后,渲染器可以利用这个伪造的连接,向浏览器发送恶意请求,例如请求访问敏感资源或执行任意代码。由于渲染器已经逃逸了沙箱,因此它可以完全控制浏览器进程,从而造成严重的安全威胁。

该漏洞的修复需要对 Ipcz 的消息处理机制进行改进,以防止渲染器伪造 Broker 连接。此外,还需要加强对进程间通信的验证,以确保只有授权的进程才能访问敏感资源。

)


本文主要讲述了 Kona EV 车主为了保护个人隐私,避免车辆数据被追踪和远程控制,采取的一系列措施来禁用 Bluelink 功能,使其车辆完全脱离现代汽车的数据网络。

文章作者详细描述了他禁用 Kona EV 上 Bluelink 功能的步骤。首先,他拒绝让经销商为他注册 Bluelink 服务。然后,他通过物理方式禁用了车辆的蜂窝通信模块,也就是所谓的“远程信息处理单元”。他先禁用了车内麦克风,以防止车内对话被监听。接着,他拆卸了信息娱乐主机,找到了内置的蜂窝调制解调器,并将其移除。这个调制解调器由 Continental 制造,通过 eSIM 技术连接到 Verizon 的数据服务。作者还提到,拆卸过程需要一些技巧,例如需要移除屏幕后面的装饰板,并小心地断开各种连接。移除蜂窝模块后,他重新组装了主机,发现车辆运行正常,没有出现任何关于缺少蜂窝通信的警告。作者还提到,他保留了 Sirius XM 接收器,因为它是单向接收,并且保留了连接 P-CAN 总线的子板,以确保车辆运行数据能够正常显示。最后,作者提到一个有趣的细节,子板上有一个电阻器用于识别安装的功能,他可以通过更改电阻值来禁用某些功能。


软件架构设计:应对大型软件的复杂性

本文探讨了如何设计大型、可维护的软件系统,核心在于降低软件的复杂性,并介绍了《软件设计哲学》这本书中的关键概念。

文章首先定义了复杂性,即任何使软件系统难以理解和修改的结构性因素。复杂性的症状包括修改放大、高认知负荷和未知因素。其主要原因则归结为依赖性和模糊性。依赖性指的是代码之间相互关联,理解和修改某部分代码需要理解其他部分;模糊性则指的是重要信息不明显。

为了降低复杂性,文章强调了解耦的重要性,即减少模块之间的依赖关系,并提倡设计深度模块,即通过小的接口提供大量的功能。 深度模块能够降低模块间的依赖,从而降低整体系统的复杂性。

此外,文章还讨论了模糊性,并提供了减少模糊性的方法,例如使用精确的命名、保持代码一致性、编写良好的文档,以及合理利用空格。代码一致性可以通过使用自动格式化工具、代码检查工具和自动化一致性测试来强制执行。

文章最后强调了采用战略性思维的重要性,即在完成编程任务时,除了实现新功能外,还要投入时间来改进设计和解决问题,避免仅仅采用战术性方法,只关注新功能的实现,而忽略了长期维护成本和潜在的复杂性。记住,仅仅能工作的代码是不够的。

由于没有评论内容,这里省略对评论观点的分析。


CPU 操作耗时信息图:时钟周期成本分析

本文主要介绍了 CPU 中各种操作的时钟周期成本,旨在帮助开发者了解不同操作的相对性能开销,从而避免不必要的性能瓶颈。

文章的核心观点是,虽然具体的优化需要通过性能分析工具进行,但了解常见操作的大致成本范围,可以帮助开发者在编写代码之初就避免一些明显的低效行为。文章详细列出了 ALU/FPU 操作、整数乘除、浮点运算、128 位向量操作等不同类型操作的 CPU 周期成本估算。例如,简单的 ALU 操作可能小于 1 个时钟周期,而整数除法可能需要 12-44 个时钟周期。浮点运算的成本也根据精度和指令集(如 SSE)的不同而有所差异。此外,文章还提到了向量操作(如 SSE 和 AVX)的成本,以及整数和浮点数指令切换时可能产生的旁路延迟。文章特别强调,这些数字仅为估算值,实际成本会受到 CPU 架构、编译器优化和具体代码上下文的影响。因此,在进行深入优化时,必须使用性能分析工具。文章还指出,即使是虚拟函数调用,虽然单次调用成本不高,但在高频率调用下也可能占据显著的 CPU 资源。总的来说,本文提供了一个有用的参考,帮助开发者在编写高性能代码时做出更明智的决策。

由于没有评论内容,此处略过评论分析。


探索福斯特建筑事务所的米洛高架桥项目

本文介绍了福斯特建筑事务所设计的米洛高架桥,这座桥梁不仅是工程的奇迹,也是建筑美学的典范,展示了建筑师在基础设施设计中的重要作用。

米洛高架桥位于法国南部,是连接克莱蒙费朗和贝济耶A75高速公路的关键组成部分,它横跨塔恩河,连接两个高原,为巴黎到地中海沿岸及巴塞罗那提供了直接的高速通道。在设计过程中,设计师考虑了两种方案:一是突出跨越河流的行为,二是尽可能经济优雅地连接两个高原。最终,由于河流在该处非常狭窄,第二个方案被认为是更合适的结构解决方案。

这座斜拉桥结构精巧、透明,拥有最佳的立柱间距。它的建设创造了多项纪录,包括拥有世界最高的桥塔、欧洲最高的公路桥面,并超越埃菲尔铁塔成为法国最高的建筑物。桥的每个部分跨度为342米,桥墩高度从75米到245米不等,桥塔在路面以上又上升了87米。为了适应混凝土桥面的膨胀和收缩,每根立柱在路面以下分成两个较细、更灵活的柱子,在桥面以上形成一个A形框架。立柱的锥形设计既表达了其结构载荷,又最大限度地减少了其立面轮廓。这不仅赋予了桥梁引人注目的轮廓,而且至关重要的是,它最大限度地减少了对景观的干预。正如《华盛顿邮报》所评价的,这可能是任何地方最轻、最流畅的桥梁设计,在周围环境的衬托下,它纯粹是环境雕塑。


GPT-OSS-120B 模型:8GB 显存和 64GB+ 内存即可运行

这篇文章讨论了 GPT-OSS-120B 模型在低资源环境下的运行情况,重点在于它只需要 8GB 显存和 64GB 以上的系统内存。这对于那些没有高端硬件的开发者来说是个好消息,意味着他们也能尝试运行大型语言模型。

文章可能还涉及了该模型的性能表现,例如生成 token 的速度,以及在处理长上下文时的挑战。虽然在小显存下运行成为可能,但长上下文的处理速度可能会受到影响。开发者们希望未来能有进一步的优化,以提升长文本处理能力。目前,一些开发者可能会选择其他模型,如 Qwen、Mistral 和 Gemma,以获得更好的性能。

文章也可能提及了在特定硬件上的运行情况,例如在配备 64GB 内存的 Mac 上运行 MLX 优化版本。此外,可能还讨论了较小规模模型(如 20B 模型)在 MacBook 上的表现,以及 function calling 功能的问题。

评论区主要围绕着运行该模型所需的硬件资源、性能以及与其他模型的比较展开讨论。

  • 硬件需求讨论: 一些用户认为 64GB 内存和 8GB 显存仍然很高,需要花费不少资金才能达到。
  • 模型能力探讨: 有人好奇在本地硬件上运行这些模型是否可以移除 guard-rails(安全限制),或者这些限制是否已经内置在模型中。
  • 性能优化期望: 评论中提到了长上下文处理速度慢的问题,并希望未来能有优化方案。
  • 替代方案: 用户分享了其他模型的选择,如 Qwen、Mistral 和 Gemma,这些模型可能在某些方面表现更好。
  • 特定硬件兼容性: 有用户询问 MLX 优化版本是否能在 64GB 内存的 Mac 上运行。
  • 模型大小选择: 一些用户表示,由于内存限制,他们选择运行较小的 20B 模型,并且对性能感到满意。
  • 功能问题: 有用户指出 llama.cpp 的 function calling 功能仍然存在问题。

总的来说,评论区反映了用户对 GPT-OSS-120B 模型在资源需求、性能和功能方面的关注,以及对未来优化的期望。同时也体现了开发者们在不同硬件条件下探索和使用各种 LLM 模型的积极性。


AI 基础概念精选手册

本文整理了关于 AI 基础概念的文章,涵盖了从神经网络构建到训练和评估结果的整个过程。内容涉及算法架构、数据训练、语音、视觉、自然语言处理、多模态、模型、离线/在线评估、MLOps 和端侧 AI 等多个方面。

文章将 AI 算法和架构分门别类,详细介绍了线性回归、逻辑回归、k 近邻、聚类、支持向量机、朴素贝叶斯、决策树与集成方法等经典算法。同时,也对深度学习架构进行了比较分析,包括 Prompt 工程、生成对抗网络、扩散模型、图神经网络、注意力机制、可分离卷积、归纳偏置和卷积神经网络等。此外,还涉及强化学习、混合专家模型、状态空间模型、Agent、FlashAttention、模型加速和推测解码等前沿技术。

在数据和训练方面,文章涵盖了数据抽样、数据不平衡、标准化与归一化、学习范式、Xavier 初始化、Padding 和 Packing、正则化、梯度下降与反向传播、激活函数、损失函数、微调模型、数据集分割、Batchnorm、Dropout、Double Descent、BERT 的微调与评估、训练损失与验证损失的比较、SVM 核技巧、偏差方差权衡、梯度累积与检查点、参数高效微调、超网络和分布式训练并行等关键技术。

针对特定领域,文章还介绍了语音处理、视觉 Transformer (ViT)、感受野、残差网络/跳跃连接以及 GPT-4o 原生图像生成等技术。在自然语言处理 (NLP) 方面,涵盖了词向量/嵌入、NLP 任务、预处理、分词、神经架构、Transformer、Token 抽样方法、Encoder vs. Decoder 模型、大型语言模型 (LLM) 概述、强化微调、偏好优化、机器翻译、知识图谱、幻觉检测与缓解、AI 文本检测技术、命名实体识别、文本蕴含、检索增强生成 (RAG)、LLM 上下文长度扩展、文档智能、代码混合与切换以及 LLMOps 等内容。

此外,文章还探讨了多模态学习,包括视觉语言模型 (VLM) 的概述和架构以及计算机控制。在模型方面,列举了 BERT、GPT、CLIP、Meena、ChatGPT、GPT-4、LLaMA、Alpaca、Gemini、Toolformer、Visual ChatGPT、TaskMatrix.AI、BigBird、OpenAI o1、DeepSeek R1、DeepSeek Janus-Pro 和 Gemma 3n 等知名模型。

最后,文章还涉及离线/在线评估、MLOps 和端侧 AI 等实际应用方面,包括评估指标、F-Beta Score、A/B 测试、数据漂移、MLOps 工具、MLOps 测试、模型压缩、个人身份信息 (PII)、联邦学习和差分隐私等。

总而言之,这篇文章集合了 AI 领域的基础知识,为开发者和研究人员提供了一个全面的学习资源。


探索全球图文电视:一项历久弥新的技术

本文深入探讨了图文电视这项技术,它在许多国家仍然非常流行。文章着重介绍了图文电视的多种形式和在全球范围内的发展历程,从英国的World System Teletext (WST) 到法国的Antiope,再到加拿大的Telidon,以及它们在美国的演变。

文章首先介绍了图文电视的起源,即 1970 年代英国工程师利用电视信号的“不可见”部分传输字幕的想法。英国随后发展出 Ceefax 和 ORACLE 等系统,并形成了 WST 标准。与 WST 相比,法国的 Antiope 标准在控制代码方面更加灵活,能够提供背景颜色和可变字体大小。加拿大的 Telidon 则采用了矢量图形,但由于解码器价格昂贵而未能普及。

在美国,由于缺乏统一的标准,图文电视的发展面临诸多挑战。CBS 曾测试比较了 Antiope 和 WST,最终选择了 Antiope,并向 FCC 申请将其作为国家标准。AT&T 也推出了自己的显示标准 Viewtron。

总的来说,图文电视并非一种单一的技术,而是一个包含多种标准和应用的集合。尽管它在某些地区被认为是过时的技术,但在其他地区仍然非常受欢迎,并不断发展演变。


"Try and": 北美英语中的语法现象

本文深入探讨了短语 "try and" 在北美英语中的使用情况,并分析了其独特的语法特性,有别于标准的 "try to" 结构。

文章首先指出,"try and" 结构在英语中历史悠久,早在 16 世纪就已出现,甚至可能早于 "try to"。虽然传统语法认为 "try and" 不规范,但它在口语中非常常见。文章重点分析了 "try and" 的句法特性,例如,它不受 "坐标结构约束" 的限制,可以提取疑问词;其成分不能重新排序;不能与 "both" 连用;并且通常要求动词使用原形。

文章还讨论了 "try and" 在不同方言中的变体,例如在加拿大东北部英语和南非英语中,其动词形式可能发生变化。此外,"try and" 中的 "try" 和 "and" 不能被副词或否定词分隔,也不允许省略后续动词短语。最后,文章提到了其他类似的伪并列结构,如 "be sure and",以及与移动动词(如 "come" 和 "go")相关的伪并列结构。

总而言之,这篇文章详细地介绍了 "try and" 这一有趣的语法现象,并从历史、句法和方言变体等多个角度进行了分析。


1 Million Rows:无限滚动表格应用初探

1 Million Rows 是一款展示大数据表格处理能力的 Web 应用,它通过无限滚动加载百万行数据,旨在提供可定制的列表/表格,并计划加入权限控制、实时更新、状态跟踪等功能。该项目目前处于早期阶段,开发者希望通过社区反馈来完善其功能路线图。

该应用的核心特性包括可定制的列表和表格,以及基于角色的访问控制。未来,它计划支持实时更新、状态跟踪、用户分配、行过滤以及基于过滤器的自定义视图和审计跟踪。在第二阶段,开发者计划引入通知系统、自动提醒、讨论区、看板视图、时间跟踪、依赖关系跟踪、Markdown 文档创建和附件上传功能。更长远的规划包括 AI 功能、移动应用、协同编辑、仪表盘、插件集成平台、Excel 导入、计算列和定期报告。

目前,该项目正处于第一阶段,重点在于构建基础的表格功能和用户管理。开发者积极寻求用户反馈,并鼓励用户参与到功能路线图的完善中。

评论区主要集中在对该项目的理解和功能定位上。有人认为它只是一个具有无限滚动功能的表格,每次加载 200 条记录。另一些人则将其与 Airtable 和 Baserow 等类似工具进行比较,认为它可能是一个 Airtable 的克隆版本。还有用户指出了在 Firefox/iOS 上的滚动问题,以及拼写错误。也有用户直接提问,这种大数据表格能用来做什么。总体来看,评论反映了用户对该项目的实际用途和差异化竞争力的关注。


威廉·迪利希的赫 Hesse 伊丽莎白公主洗礼纪念画卷 (1598)

本文介绍威廉·迪利希 (Wilhelm Dilich) 于 1598 年创作的《Historische Beschreibung der Kindtauf des Fräuleins Elisabeth zu Hessen》(黑森的伊丽莎白小姐洗礼描述),这是一部为了纪念黑森-卡塞尔的伊丽莎白公主 (1596–1625) 洗礼的精美作品。 这部作品详细记录了为期四天的庆祝活动,包括烟花表演、骑士比武以及盛大的游行。

迪利希在作品中描绘了参与者的各种神话、寓言和历史人物的装扮,例如汉尼拔、无耻之徒、亚历山大大帝、伊阿宋、珀尔修斯、命运女神和尤利乌斯·凯撒等。 迪利希谦虚地将自己比作希腊哲学家第欧根尼,他只是观察着这些盛大的庆祝活动,并希望这部作品能够被黑森-卡塞尔的贵族们接受,并作为对这些欢乐事件和历史的永恒纪念。

巴伐利亚州立图书馆收藏的这部手稿是迪利希亲手着色的,并亲自献给了伊丽莎白的父亲莫里茨。 然而,在 1606 年之前,一位不知名的艺术家认为这部手稿尚未完成,并在空白处和页边空白处添加了引人注目的水彩画,描绘了郁金香、紫罗兰和牡丹等常见和异域花卉。 这些植物学补充旨在与原始手稿进行对话,一首题献拉丁诗祝愿公主幸福,并祝愿她像一朵小花一样长久生长,而随附的水彩边缘画则展示了各种盛开的春花。

手稿中还包含许多文本模仿,例如维吉尔田园诗中牧羊人之间的对话,讲述了洗礼期间举行的骑士比赛,并将花卉意象与军事主题结合在一起。 在随后的德语文本中,迪利希将公主描绘成一种生育女神,来更新凡人事务的休耕状态:“因为雨后是阳光,悲伤的严冬之后是可爱的春天……如果我们正确地考虑她的生活和命运,我们清楚地看到,全能者已经用他慈父般的惩罚来拜访我们,并赐予我们高贵的伊丽莎白女士。” “伊丽莎白”这个名字部分源于希伯来语词根,意思是“七”(如创世的七天)和“丰富”。


优化 memcpy 提速:探索内存复制的极限

本文深入研究了 memcpy 的性能瓶颈,并尝试通过多种方法优化内存复制操作,旨在超越标准库函数的效率。

文章首先通过 perf 工具分析了 memcpy 在大型二进制消息反序列化过程中的性能占比,发现其耗时巨大。随后,作者深入 glibc 源码,剖析了 __memmove_avx_unaligned_erms 的实现细节,该函数是 memcpy 的底层实现,针对未对齐内存块使用 AVX 指令集进行 32 字节的并行复制。文章详细解读了 memmoveermsvecunaligned 等关键概念,并分析了汇编代码中的预取和非临时存储等优化手段。

为了进一步提升性能,作者实现了四种优化的内存复制方法。第一种方法是使用内联汇编实现的 REP MOVSB,它利用硬件 ERMS 优化进行简单的字节复制。第二种方法是针对对齐的指针和大小,使用 AVX intrinsics 进行 32 字节的并行复制。第三种方法是在第二种方法的基础上,使用非临时存储指令 _stream_ 跳过缓存,以减少缓存开销。第四种方法则是在第三种方法的基础上,通过预取指令将源数据预先加载到缓存中,以进一步提升性能。

文章通过实验对比了这几种方法的性能,结果表明,针对特定场景(如对齐内存、大块数据),优化后的内存复制方法可以显著超越标准库 memcpy 的性能。

总的来说,这篇文章深入浅出地探讨了 memcpy 的优化方法,为读者提供了优化内存复制操作的思路和实践经验。通过理解底层原理和利用硬件特性,开发者可以显著提升程序的性能。


Rust 实现的像素物理模拟器:sbixel

sbixel 是一个使用 Rust 编程语言和 Macroquad 游戏引擎开发的简单像素物理模拟器。这个项目展示了如何用相对简洁的代码实现基本的物理模拟,特别适合学习游戏开发和 Rust 编程的开发者。

这个模拟器的核心在于对每个像素的行为进行建模,使其能够模拟诸如重力、碰撞等物理现象。项目使用 Macroquad 引擎来处理图形渲染和用户输入,简化了跨平台开发流程。通过 sbixel,开发者可以学习到如何使用 Rust 进行游戏开发,理解像素级别的物理模拟原理,以及如何利用 Macroquad 引擎快速构建 2D 应用。该项目采用 MIT 许可,鼓励开发者自由使用和修改代码。目前项目还比较新,只有少量的 star 和 fork,但它提供了一个很好的学习和实验平台。


理解“自保证承诺”:保护你的数据和选择

本文探讨了“自保证承诺”的概念,它指的是无需信任任何人的承诺,你可以自行验证。文章强调了在选择工具和服务时,要关注那些提供自保证承诺的,以应对未来不确定性。

文章首先用“文件优先于应用”和“不锈钢”这两个例子,说明什么是自保证承诺。文件优先于应用意味着你可以随时在其他应用中使用你的文件,而无需导出;不锈钢的防锈特性也是可以随时验证的。相反,公司的服务条款和隐私政策不是自保证的,因为它们可以随时更改,甚至追溯影响你之前的数据。文章还指出,将价值观编码到治理结构中也不是自保证的,因为公司结构可能会被推翻。即使是开源软件,如果依赖于专有格式的数据,也无法保证你能自由切换。

文章的核心观点是,工具的未来总是模糊的,为了应对这种不确定性,应该选择那些提供自保证承诺的工具。这种承诺让你能够掌控自己的数据和选择,避免被供应商锁定。

评论区也围绕这个话题展开了讨论。

  • 隐私保护: 有评论提到,确保隐私的最佳方式是根本不收集信息。即使是需要用户提供信息的应用,也应该尽量减少收集,并告知用户相关风险。
  • 用户授权: 企业在更改政策(包括价格)之前,应该征得用户同意,而不是想当然。
  • 插件依赖: 有用户分享了从Obsidian迁移到Emacs的经历,原因是Obsidian的插件依赖性使其感到被生态系统锁定。
  • 材料欺诈: 即使是不锈钢这样的材料,也存在不同等级和生产方法的欺诈行为。因此,更强的保证应该是“不可变的、买家可验证的”。
  • 数据控制: 评论中有人分享了如何通过提供虚假信息和在地址栏中添加提示信息的方式,来保护自己的数据不被滥用。
  • 数据收集: 有评论者坚持“仅仅因为我们能收集数据,并不意味着我们应该收集”的原则。
  • 自保证承诺的例子: 有评论提到,Bluesky/ATProto是自保证承诺的一个例子。

总的来说,评论区从不同角度探讨了自保证承诺的重要性,以及如何在实践中保护自己的数据和选择。


Lisp 编译:闭包转换

本文主要探讨了 Lisp 编译过程中的闭包转换,并通过 Python 代码示例,详细解释了如何识别和处理自由变量,以及如何生成 codeclosure 形式。文章旨在帮助读者理解闭包转换的原理和实现方法。

文章首先指出了闭包转换的关键在于跟踪变量的绑定情况和自由变量,以及维护一个代码对象列表。作者使用 LambdaConverter 类来管理转换过程,该类维护一个 labels 字典,用于存储生成的代码标签。convert 方法则递归地遍历表达式,根据表达式的类型进行不同的处理。对于常量,直接返回;对于变量,检查其是否在 bound 集合中,如果在则直接返回,否则将其添加到 free 集合中。文章特别强调了内置函数(如 +)应被视为始终绑定。

对于 if 表达式,convert 方法递归地处理其三个子表达式。而对于 lambda 表达式,则需要进行更复杂的操作。首先,lambda 表达式会绑定参数,因此需要创建一个新的 bound 集合,并将参数添加到其中。其次,需要跟踪 lambda 表达式中的自由变量,并将其添加到 free 集合中。最后,需要生成 codeclosure 形式,并将 code 形式添加到全局的 labels 列表中。

总的来说,文章通过代码示例和详细的解释,清晰地阐述了闭包转换的原理和实现方法,为读者理解 Lisp 编译过程中的重要环节提供了帮助。

(由于原文中没有评论内容,因此没有评论分析。)


Llama.cpp 提升 Mistral 模型集成

这个 Pull Request 旨在改进 llama.cpp 中对 Mistral 模型的集成,让开发者能更方便地在 llama.cpp 项目中使用 Mistral 模型。

该 PR 主要由 juliendenize 贡献,专注于提升 Mistral 模型在 llama.cpp 框架下的兼容性和性能。通过此次改进,llama.cpp 将更好地支持 Mistral 架构,为用户提供更流畅、高效的 Mistral 模型推理体验。这意味着开发者可以更容易地利用 llama.cpp 运行和测试 Mistral 模型,无需进行大量的额外配置和修改。该 PR 的合并,无疑增强了 llama.cpp 的通用性和易用性,使其能够支持更多种类的语言模型。对于那些希望在本地或资源受限的环境中运行 Mistral 模型的开发者来说,这是一个非常积极的进展。它降低了使用门槛,加速了 Mistral 模型在各种应用场景中的部署。

由于文章内容较少,没有评论区内容,所以无法进行评论分析。


通过互动小说学习 Lisp 基础:Lists and Lists (1996)

这篇文章介绍了一个通过互动小说来学习 Lisp 编程基础的教程,名为 "Lists and Lists"。这个教程由 Andrew Plotkin 于 1996 年创建,旨在以一种有趣和互动的方式向初学者介绍 Lisp 的核心概念,特别是列表(Lists)的操作。教程通过一个互动故事展开,玩家需要输入命令来与环境互动,并解决与 Lisp 编程相关的谜题。

这个教程使用 Inform 语言编写,这是一种专门用于创建互动小说的语言。教程一开始,玩家会发现自己身处一个熟悉的地方,但多了一扇之前没有的门。通过输入命令,玩家可以探索这个环境,并逐步学习 Lisp 的基本概念,例如如何定义变量、如何使用列表以及如何进行条件判断。教程的设计思路是将 Lisp 的编程概念融入到互动故事中,让学习过程更加引人入胜。

评论区里,有用户分享了自己对互动小说的回忆,并推荐了关于互动游戏历史的纪录片 "Get Lamp"。还有用户提到 "Lists and Lists" 实际上是基于 Scheme 语言的,并分享了其中一个关于 equal?eqv? 的逻辑谜题,需要理解这两个函数之间的区别。另有用户表达了对 MUD 时代的回忆。也有用户分享了自己与教程进行交互的有趣过程,展示了互动小说的魅力。总的来说,评论区对这篇文章介绍的互动教程表现出了浓厚的兴趣,并分享了各自的经验和看法。


Bolt:高性能静态类型嵌入式脚本语言

Bolt 是一款用 C 语言编写的高性能、实时优化和静态类型的嵌入式语言,在 GitHub 上开源。它旨在提供快速的执行速度和可预测的行为,这对于嵌入式系统和实时应用至关重要。

Bolt 的主要特点包括静态类型,这意味着类型检查在编译时进行,可以减少运行时错误并提高性能。它还针对实时性能进行了优化,使其适合需要快速响应的应用。由于是用 C 语言编写的,Bolt 可以轻松地集成到现有的 C 项目中,并且可以跨多个平台移植。该项目使用 MIT 许可证,允许开发者自由地使用和修改代码。目前,该项目在 GitHub 上有 426 个 star 和 8 个 fork,表明它在开发者社区中具有一定的吸引力。开发者可以通过 Issues 和 Pull requests 参与到项目中。


探索《冬季运动会》:如何创造最远滑雪跳跃

本文深入探讨了如何在经典游戏《冬季运动会》中创造尽可能远的滑雪跳跃。作者没有直接玩游戏,而是选择逆向工程,通过分析游戏二进制文件和回放文件格式,来理解游戏内部的物理模拟机制,从而找到理论上的最优策略。

文章首先回顾了游戏中的滑雪跳跃基本机制,包括滑下跳台、起跳、空中飞行和着陆四个阶段。游戏和手册提供了一些提示,例如在滑下跳台时避免偏离轨道,以及在飞行过程中保持滑雪板平行以减少阻力。但作者指出,这些提示不一定是最佳策略,可能存在开发者未预料到的隐藏机制或漏洞。

为了找到这些隐藏机制,作者深入研究了游戏的回放文件格式。通过分析回放文件,作者希望能够了解游戏如何记录和重现跳跃过程,从而找到影响跳跃距离的关键因素。这为后续破解游戏内部物理引擎,并最终实现理论上的最远跳跃奠定了基础。

作者提到,通过分析游戏二进制文件,可以更深入地了解游戏内部的物理模拟机制,包括游戏状态的表示方式、物理模拟的运行方式以及距离的计算方式。通过这些分析,或许可以发现一些简单的策略,例如“保持尽可能直线的姿势以最大化距离”。当然,实际的逻辑可能会更加复杂,因此需要创建一个滑雪跳跃逻辑的模型,提取相关部分,并在其上运行更高效的模拟。

通过学习游戏的回放文件格式,我们可以使用从模拟中找到的输入序列来创建自己的合成回放,并在游戏中回放它们,从而完全在游戏外部实现最佳滑雪跳跃。

目前还没有评论内容可以分析。


欧盟“聊天控制”提案:威胁数字隐私?

欧盟正在讨论的“聊天控制”提案,旨在强制扫描所有私人数字通信,包括加密消息和照片,这引发了对欧盟公民基本隐私权和数字安全的担忧。该提案要求自动扫描用户发送的每一张照片、每一条消息和每一个文件,无需用户同意或怀疑,影响深远。

这项提案的核心在于大规模监控,自动扫描所有私人信息,即使是加密通信也不例外。批评者认为,这会削弱甚至破坏端到端加密,使所有人的通信面临黑客、犯罪分子和敌对势力的威胁。更重要的是,这种做法侵犯了欧盟宪章保障的隐私和数据保护基本权利。自动扫描还可能产生误报,将无辜内容错误识别为非法,导致对普通民众的虚假指控和损害性调查。

值得注意的是,包括联合国在内的儿童保护专家和组织警告说,大规模监控不仅不能有效防止虐待,反而会降低儿童的安全,因为它削弱了所有人的安全,并将资源从经过验证的保护措施中转移出来。此外,这项提案可能开创危险的全球先例,使其他国家的政府效仿,从而在全球范围内破坏隐私和言论自由。目前,欧盟成员国对该提案的立场不一,一些国家表示反对,一些国家支持,还有一些国家尚未明确表态。

评论区中,有用户指出,除了“聊天控制”提案,还应关注强制性的年龄验证问题,尤其是在访问成人内容方面,欧洲议会已经投票支持一项法律,该法律规定对色情内容进行年龄验证,违者将面临最高一年的监禁。另有法国用户表示,法国国内对此提案的支持度很高,即使是所谓的左派也支持,个人能做的有限,只能通过捐款来表达反对。


探索技术前沿:Engineering.fyi 博客精选

Engineering.fyi 汇集了顶尖科技公司的技术博客文章,为开发者和科技爱好者提供了一站式的信息平台。本文将精选并解读近期发布的热门技术文章,涵盖 Kubernetes 升级、AI 模型进展、以及新兴的开发工具等方面。

近期 Engineering.fyi 上涌现了大量关于 AI 和机器学习的文章,OpenAI 发布了多个关于 GPT 模型的重要进展,包括更安全、更高效的训练方法 "safe-completion" 以及开源推理模型 gpt-oss-120b 和 gpt-oss-20b。Google 也推出了 Veo 3 和 Veo 3 Fast,用于高效生成高质量视频内容。此外,Gemini 模型在图像分割和信息提取方面也展现出强大的能力,例如 Gemini 2.5 Flash-Lite 提供了更快的速度和更大的上下文窗口,而 LangExtract 则可以从非结构化文本中提取结构化信息。

除了 AI 领域的进展,还有一些文章关注于工程实践和工具。Airbnb 分享了在 Kubernetes 集群上升级 Istio 的经验,FlashList v2 则提供了更快的加载速度和更好的滚动性能。Meta 推出了 ExecuTorch,这是一个用于边缘设备的 PyTorch 推理框架。Google Labs 发布了 Opal,一个可以通过自然语言构建动态 AI 应用的实验性工具。Apigee 则帮助企业将大型语言模型集成到现有的 API 生态系统中。

此外,还有一些文章关注于新兴技术和应用。Meta 的 Reality Labs 在手势控制设备方面取得了新的进展,而 Firebase Studio 则为开发者提供了 AI 优化的模板,以简化 AI 辅助的应用程序开发。Palantir 也在积极推动 AI 的应用。

总而言之,Engineering.fyi 提供了一个了解最新技术趋势和实践的绝佳平台,涵盖了从 AI 模型到工程工具的广泛主题。通过阅读这些文章,开发者可以及时了解行业动态,并将其应用到自己的项目中。



评论 0 条

暂无评论,来种下第一颗种子。