2024-07-20

36 篇热帖

1. Researcher finds flaw in a16z website that exposed some company data (www.kibty.town)

背景与漏洞发现

研究人员在通过社交媒体寻找目标进行渗透测试时,将目标锁定为知名风投公司 a16z。在对 a16z 进行子域名扫描时,研究人员使用自动化工具扫描 JavaScript 文件中的敏感信息,发现了疑似用于投资组合管理的子域名 portfolio.a16z.com

漏洞详情

在检查该子域名的前端 JS 文件时,研究人员发现整个 Heroku 实例的环境变量(process.env)被动态注入到了前端代码中。任何人只需通过浏览器的“检查元素”功能即可轻易获取这些真实的敏感凭证。泄露的关键数据包括:

  • 数据库连接 URL
  • AWS 存储桶名称、访问密钥(Access Key ID)和私密密钥(Secret Access Key)
  • Salesforce、Okta、Google 的客户端 ID、Secret 及相关密码
  • Mailgun 的 API 密钥、域名、用户名和密码
  • 各类 Session Secret、Cookie Secret 及 API 密码

安全影响

该配置错误导致 a16z 的多项核心服务面临严重的安全风险,具体影响包括:

  • 数据库泄露:包含个人身份信息(PII)的数据库被暴露。
  • 云基础设施:AWS 资源控制权暴露。
  • 邮件系统劫持:Mailgun 凭证泄露,攻击者可伪造 a16z 域名发送任意邮件,并读取历史邮件。
  • 企业服务风险:Salesforce、Okta 等企业级 SaaS 服务账户面临被未授权访问的风险。

披露过程与奖励争议

研究人员最终未获得 a16z 的漏洞赏金。a16z 拒付的理由是研究人员选择了公开披露(通过 Twitter 喊话)而非私下联系。研究人员对此解释称,由于 a16z 官方网站未提供可用的安全联系方式,且其公开的安全邮箱(security@a16z.com)存在退信(bounced)问题,导致无法进行私下沟通。研究人员指出,因官方渠道失效而被迫公开联系,以此为由拒付赏金有失公允。该安全事件随后被 TechCrunch 等科技媒体跟进报道。

2. Typst: An easy to learn alternative for LaTex (github.com)

Typst:易于学习的LaTeX替代方案

项目概述
Typst是一个新型基于标记的排版系统,旨在提供与LaTeX同等的强大功能,同时大幅降低学习和使用门槛。它具备以下核心特性:

  • 内置标记语法处理常见格式化任务
  • 灵活的函数系统支持扩展功能
  • 紧密集成的脚本系统
  • 支持数学排版、文献管理等高级功能
  • 通过增量编译实现快速编译
  • 提供友好的错误提示信息

仓库包含Typst编译器及其命令行工具,用户可在本地编译Typst文档。项目还提供免费的在线协作编辑器以优化写作体验。

功能示例
通过代码示例可快速了解Typst的能力:

  1. 配置规则:使用#set规则配置页面尺寸(如#set page(height: auto)自适应内容),支持标题编号等常用设置,亦可通过show规则完全自定义元素外观。
  2. 轻量标记:使用=创建标题(如= 一级标题== 二级标题),语法简洁直观。
  3. 数学排版:用美元符号包裹公式,多字母标识符自动识别为函数/定义(无需反斜杠),支持符号变体(如phi.alt)。
  4. 脚本集成:通过#嵌入代码,支持变量定义、递归函数(如斐波那契计算),并可用..展开数组生成表格内容。

安装与使用
安装途径

  • 从GitHub Releases下载预编译二进制文件,加入系统PATH
  • 包管理器安装:Linux(Snap/Repology)、macOS(brew install typst)、Windows(winget install --id Typst.Typst
  • Rust工具链安装:cargo install --locked typst-cli(稳定版)或从Git仓库安装开发版
  • 支持Nix和Docker环境部署

基本用法

  • 编译文档:typst compile file.typ(输出PDF至当前目录)或指定路径输出
  • 监视模式:typst watch file.typ(文件变动时增量重编译,速度更快)
  • 字体管理:--font-path参数添加自定义字体目录,typst fonts列出已发现字体

社区与贡献

  • 社区平台:Discord服务器(实时讨论)、论坛(问答与分享)
  • 包共享平台:Typst Universe(模板与包仓库)
  • 贡献方式:报告Bug、实现新功能(需遵循贡献指南),或开发共享包
  • 源码构建:需安装Rust工具链,克隆仓库后通过cargo build --release构建

设计原则
Typst围绕三大核心目标设计:

  1. 强大性:通过可组合性实现灵活扩展(提供基础组件,允许自由组合而非预设多功能方案)
  2. 简单性:通过一致性降低学习成本(类似操作逻辑统一,如= 标题#heading[标题]的语法糖)
  3. 高性能:通过增量编译保障实时预览(所有特性均适配增量编译需求,依赖comemo系统实现)

致谢
项目获Posit、NLnet、Science & Startups、Zerodha等机构资金支持,具体涉及全职编译器工程师资助、HTML导出及PDF无障碍性开发、创业奖学金等(资助金额超1万欧元)。

3. Garage: Open-Source Distributed Object Storage (garagehq.deuxfleurs.fr)

Garage: 开源分布式对象存储

项目目标

Garage 是一个轻量级、高效率的分布式对象存储系统,设计初衷包括:

  • 自包含:提供单一、无依赖的二进制文件,可在所有Linux发行版上运行。
  • 快速部署,安全运维:面向系统管理员,注重操作友好性。
  • 广泛部署:支持在互联网环境下跨多个数据中心运行,无需专用骨干网。
  • 高韧性:能够应对网络故障、高延迟、磁盘故障及管理操作失误。

系统要求

Garage 对硬件和网络环境要求较低,具体如下:

  • CPU:支持近10年内的 x86_64、ARMv7 或 ARMv8 处理器。
  • 内存:至少1 GB RAM。
  • 磁盘空间:最低16 GB。
  • 网络:延迟需低于200毫秒,带宽不低于50 Mbps。
  • 硬件异构性:支持利用各类二手机器构建集群。

技术基础与资金支持

  • 技术基础:Garage 借鉴了分布式系统领域的最新研究成果。
  • 资金支持:该项目多次获得公共资金资助:
    • 2021-2022年:获得 NGI POINTER 资助,支持3名全职员工工作一年。
    • 2023-2024年:获得 NLnet / NGI0 Entrust 资助,支持1名全职员工工作一年。
    • 2025年:获得 NLnet / NGI0 Commons Fund 资助,支持1.5名全职员工工作一年。
  • 项目鼓励通过捐赠或支持合同等方式参与资金支持。
  • 相关资金来源于欧盟“地平线2020”研究与创新计划下的 NGI-POINTER 项目(资助协议编号:871528),以及由 NLnet 基金会设立、欧盟委员会“下一代互联网”计划资助的 NGI Zero Entrust Fund(资助协议编号:101069594)和 NGI Zero Commons Fund(资助协议编号:101135429)。
4. The CrowdStrike file that broke everything was full of null characters (twitter.com)

根据您提供的信息,您分享的“文章内容”实际上是一段网站错误提示信息,而非关于CrowdStrike文件导致系统故障的新闻文章。该提示指出某些隐私相关扩展可能导致在x.com(推特)上出现问题,并建议用户禁用这些扩展后重试。

因此,无法基于当前提供的“内容”生成您所要求的关于CrowdStrike技术事故的摘要。要生成准确的摘要,需要提供与标题《The CrowdStrike file that broke everything was full of null characters》真正对应的技术性文章原文。

如果您能提供正确的文章内容,我将很乐意为您进行专业的摘要总结。

5. No Uptime Hosting (2006) (nouptime.com)

“No Uptime Hosting” 讽刺性网页内容总结

该文本是一个名为“No Uptime Hosting”(无正常运行时间托管)的虚构网络托管服务宣传页面(背景设定为2006年)。内容主要通过夸张和反讽的手法,嘲讽劣质主机服务商的虚假宣传、不合理配置以及糟糕的售后服务。

荒诞的托管套餐

页面列出了三个配置极不合理且充满恶搞元素的托管套餐:

  • 套餐一:提供极小的 200Kb 存储和 10Mb 带宽,支持 PHP 4/5/6 及多种数据库。荒诞卖点包括“最多托管 6.8 个网站”以及提供“免费身份盗窃”。
  • 套餐二:提供模糊的“大量存储”和仅 10Kb 的带宽。无厘头赠品包括“2根荧光棒”和“免费的坏烤面包机”,并提供“24/8”(非传统的24/7)邮件支持。
  • 套餐三:提供 200Gb 存储但仅有 10 Bytes 的“路径带宽”。技术栈恶搞了“Ruby on Railroads/Boats”,并包含“专属 Windows 3.11”和“史蒂夫·鲍尔默(Steve Ballmer)”等搞笑配置。

虚构的运营数据

  • 声称目前托管了超过 4,791,761 个网站。
  • 标榜自 1969 年(互联网ARPANET诞生之年)起就开始提供网站托管服务。

反讽的“服务承诺”

页面将其劣质服务包装为核心卖点,进行了强烈的反向讽刺:

  • 致力于宕机:宣称团队正不断致力于“改善服务器宕机时间(downtime)”,并将“让客户夜不能寐”作为公司的首要任务。
  • 推诿与迷惑:在“集群和可扩展性”方面,承诺如果网站发生宕机,客服会使用晦涩的技术术语和指令来迷惑客户,以激怒客户为己任且绝不令人失望。

客户评价

  • 页面底部声称拥有来自全球“满意”客户的 246 条评价(testimonials),进一步强化了整体的讽刺喜剧效果。

总体而言,该内容是一篇典型的网络恶搞(Parody)作品,旨在幽默地揭露和批评网络托管行业中常见的夸大宣传、配置缩水及客服推诿等乱象。

8. Public toilets are vanishing and that's a civic catastrophe (psyche.co)
9. CrowdStrike fixes start at "reboot up to 15 times", gets more complex from there (arstechnica.com)

CrowdStrike安全软件更新故障导致系统蓝屏及修复方案

事件概述

CrowdStrike的Falcon安全软件因错误更新导致全球大量基于Windows的系统出现蓝屏死机(BSOD)错误。受影响范围包括航空公司、支付处理商、911紧急呼叫中心、电视网络等关键业务领域。CrowdStrike和微软已确认问题更新已撤回。

修复方案(按复杂度递增)

1. 反复重启系统

  • 最简单的初步解决方案:多次重启受影响设备。
  • 原理:重启过程中系统有机会下载并安装CrowdStrike发布的修复更新。
  • 实际案例:部分客户需重启系统多达15次才能成功获取更新。

2. 系统备份恢复

  • 适用于重启无效的情况。
  • 具体操作:使用2023年7月18日04:09 UTC(美国东部时间7月17日午夜刚过)之前的系统备份进行恢复。
  • 时间依据:该时间点为CrowdStrike开始推送错误更新的时间,而修复版本部署于05:27 UTC。

3. 手动删除问题文件(最复杂方案)

  • 前两种方案无效时采用。
  • 操作步骤:
    • 将系统引导进入安全模式
    • 手动定位并删除引发蓝屏的特定驱动程序文件
  • 虚拟机特殊处理流程
    1. 将虚拟磁盘从原虚拟机分离
    2. 连接至一台功能正常的维修虚拟机
    3. 在维修环境中删除问题文件
    4. 将处理后的虚拟磁盘重新挂载回原虚拟机

修复复杂度因素

  • 企业受影响的系统数量
  • IT基础设施的具体配置方式
  • 所需修复时间从数分钟到数小时不等

关键时间节点

  • 故障更新开始推送:2023年7月18日 04:09 UTC
  • 修复版本部署:2023年7月18日 05:27 UTC
  • 受影响备份基准时间点:04:09 UTC之前的系统备份可用于恢复
10. A search engine by and for the federal government (search.gov)

SearchGov:专为联邦政府打造的搜索引擎

概述 SearchGov是专门为联邦政府网站构建的搜索引擎。它每年支持超过2亿次搜索,覆盖三分之一的联邦域名,提供一个可配置的搜索引擎,允许联邦机构为公众定制搜索体验。

核心特点与优势

  1. 自助服务:提供易于使用的界面,让网站管理员能够自主优化网站内容、设计搜索结果页面并分析搜索数据,从而定制搜索体验。
  2. 联邦友好:作为一项由政府管理的共享服务,SearchGov专为满足联邦机构的独特需求而设计,符合联邦安全、无障碍及其它相关政策要求。
  3. 客户支持:SearchGov团队随时准备解答问题,其任务是确保用户的成功。
  4. 无需文书手续与成本:该服务可立即使用,对联邦机构免费,无需签订机构间协议或进行支付,避免了常见的流程挑战。

使用与支持

  • 登录与注册:已有账户的用户可登录以管理账户和搜索体验。新用户可创建账户开始使用。
  • 自助指南:官方提供了指南,用于了解如何设置、设计、优化和分析搜索体验,并包含系统状态查询和服务条款说明。
  • 获取帮助:如有其他问题,可直接通过电子邮件联系SearchGov团队。
14. Playing guitar tablatures in Rust (agourlay.github.io)

Ruxguitar:基于 Rust 的吉他谱播放器

项目背景与目的

吉他谱(如 Guitar Pro 的 .gp 格式)是吉他学习的常用工具。由于优秀的开源播放器 TuxGuitar 基于 Java 且似乎已停止维护,作者使用 Rust 开发了 Ruxguitar,旨在提供一个跨平台、高性能的原生吉他谱播放器,目前已提供 Linux、macOS 和 Windows 的预编译二进制文件。

核心技术与功能实现

1. 吉他谱解析

  • 使用 nom crate 解析二进制的 .gp5 文件格式,提取版本、曲目信息、歌词、小节和音轨等数据。
  • 通过参考 TuxGuitar 等开源项目的源码来理解复杂的格式规范,并结合单元测试与高级不变量验证,确保了解析器的准确性与鲁棒性。

2. UI 构建与渲染

  • 选用 Iced 作为原生 GUI 库,利用其事件驱动特性和 Canvas 抽象进行自定义绘制。
  • 在 Canvas 上精确绘制琴弦、音符及各类弹奏效果(如滑音、推弦),并通过 iced-aw 的 wrap 组件将不同长度的小节组装成响应式网格布局。
  • UI 状态更新基于消息(Messages)和订阅(Subscriptions)机制,处理文件打开、播放控制及音轨切换等交互。

3. MIDI 音频合成

  • 将乐谱中的音符转换为带有时间戳(tick)的 MIDI 事件(NoteOn/NoteOff),并按时间排序,以便后续通过二分查找高效调度。
  • 使用 rustysynth 作为 MIDI 合成器,编译时内置基础音色库(TimGM6mb),同时支持通过命令行参数加载外部高质量音色库。
  • 采用 cpal 跨平台音频库在独立线程中运行音频循环,根据当前 BPM 和时间流逝计算 tick 增量,实时渲染波形并输出双声道音频。

4. UI 与音频的同步整合

  • 通过 iced::Subscriptiontokio::sync::watch channel 桥接音频线程与 UI。
  • 音频线程实时广播当前播放进度,UI 接收消息后更新光标位置并高亮当前音符,实现播放、暂停、进度跳转、切换音轨和独奏等交互的无缝同步。

未来规划

当前版本为 MVP(最小可行性产品),未来开发计划包括:

  • 支持更多 Guitar Pro 文件格式(目前仅支持 .gp5)。
  • 显示更多乐理信息(如节奏、拍号、调号等)。
  • 支持小节重复功能。
  • 支持播放减速与加速功能。
15. Multisatellite data depicts a record-breaking methane leak from a well blowout (pubs.acs.org)
16. The Later Years of Douglas Adams (www.filfre.net)

道格拉斯·亚当斯的晚年

道格拉斯·亚当斯是《银河系漫游指南》的天才创作者,但他痛恨写作本身。这种矛盾贯穿了他的职业生涯,尤其是在成名之后。

创作挣扎与“安全毯”

在完成《银河系漫游指南》系列的前四部小说后(1978-1984年),亚当斯对这个让他成名又令他感到束缚的系列产生了爱恨交织的感情。他觉得自己被定型为“搞笑外星人和42”的作家,渴望尝试新事物,但同时又离不开这个系列带来的安全感和声誉。他称之为“最珍视的创作安全毯”。

尝试突破与《最后的机会去看》

亚当斯努力开拓新领域:

  • Dirk Gently系列:创作了《全能侦探社》及其续集,但反响平平,未能帮助他突破科幻类型的局限。
  • 《官僚主义》游戏:与Infocom合作,但最终由好友迈克尔·拜沃特代笔完成。
  • 《最后的机会去看》:与动物学家马克·卡沃丁合作,前往世界各地记录濒危物种。这次合作有伙伴陪伴,无需虚构复杂情节,亚当斯可以专注于观察和描述,过程愉快。他亲自出资并认为这是自己最重要的作品。然而,该书销量惨淡,媒体也缺乏兴趣,这让他深受打击。尽管他本可以继续走这条路,但追求大众认可的心理使他难以接受从巅峰滑落至中等成功。

回归与《基本无害》

在《最后的机会去看》失败后,亚当斯退回舒适区,创作了第五部《银河系漫游指南》小说《基本无害》。写作过程依然痛苦,需要编辑和朋友“锁在房间里”监督。小说以毁灭所有平行宇宙的地球结局,仿佛亚当斯想彻底摧毁这个系列,以断绝回头路。书迷能感受到字里行间的厌倦。

数字村与《星际泰坦尼克》游戏

1995年,亚当斯与朋友共同创立了“数字村”公司,希望探索跨媒体创作,摆脱独自写作的孤独。公司最终专注于开发多媒体冒险游戏《星际泰坦尼克》。

  • 开发困境:项目因管理不善、内部矛盾而陷入混乱。亚当斯再次请来拜沃特协助剧本,导致两人友谊破裂。
  • 游戏失败:游戏于1998年发行,融合了第一人称冒险游戏最糟糕的设计(如视角不一致、谜题逻辑牵强),并加入了过时且不实用的文字解析器。游戏完全不好笑,与亚当斯以往的水准相去甚远。它商业上惨败,评论褒贬不一,成为压垮数字村的最后一根稻草。

好莱坞之梦与突然离世

游戏失败后,亚当斯将希望寄托于《银河系漫游指南》的电影改编。1997年,他与迪士尼签订开发协议,并举家搬到洛杉矶。他满怀热情地修改剧本,畅想演员阵容,但项目进展缓慢。 2001年5月11日,在提交剧本修改稿后不久,49岁的亚当斯在健身房因心脏骤停猝然离世。他的电影梦想最终未能在他有生之年实现(该片于2005年上映)。

永恒的悖论

道格拉斯·亚当斯的晚年充满了悖论:他是热爱创意的天才,却痛恨将创意转化为文字的过程;他渴望逃离《银河系漫游指南》的定型,却又依赖它作为情感和经济支柱;他在《最后的机会去看》中找到了最充实、最有意义的创作体验,却因市场反响而退缩。他的故事是一位才华横溢的作家与自身天赋、声誉和内心渴望之间持续斗争的缩影。

19. A brief interview with Tcl creator John Ousterhout (2023) (pldb.io)
20. Siblings miss crucial life-extending treatment because of CrowdStrike outage (www.kiro7.com)
21. Aro – Zig's new C compiler (github.com)

内容不匹配提示

所提供的内容与标题“Aro – Zig's new C compiler” 不符。实际内容为 GitHub 网站的通用导航与页眉信息,未包含任何关于“Aro”、“Zig 编译器”或相关技术主题的具体信息。

无法生成要求的摘要

22. Never Update Anything (blog.kronis.dev)

本文以“永远不要更新任何东西”为标题,通过归谬法探讨软件更新带来的问题,核心观点是频繁且常伴随破坏性变更的更新会消耗大量开发资源、阻碍进度,并可能引入新的故障。

主要论点:

  1. 更新的分类与现实困境:作者指出问题在于未区分更新类型(如功能更新、安全更新、错误修复)。理论上,语义化版本号应明确区分主要、次要和补丁版本,以维持向后兼容。但实践中,即使次要版本也可能引入破坏性变更,导致更新风险不可预测。
  2. 更新的成本与影响:支持旧版本的安全更新和错误修复成本极高(需要向多个旧版本移植补丁),导致许多软件商最终放弃对旧版本的支持。企业为适应频繁更新(如迁移Spring框架),需耗费大量人力时间进行重构和测试,严重影响产品交付速度和竞争力。
  3. 强制更新与商业模式:许多现代软件和工具链(如Flyway、Docker Desktop)通过强制更新或捆绑依赖来推动用户使用新版本,甚至将支持旧版本作为付费功能。这剥夺了用户的选择权,并可能因底层依赖(如数据库版本)的变化而破坏现有功能。
  4. 更新的现实后果:不更新可能面临安全风险(如旧系统被僵尸网络利用),但更新也常常导致系统故障、环境破坏,需预留大量时间处理。复杂的依赖网络(如React项目的上千个模块)使得安全审计和维护变得几乎不可能。
  5. 对稳定软件的倡导:作者以Lazarus IDE为例,赞赏其“电池全含”模式——将常用组件和驱动内置于开发工具中,通过工具的整体更新来管理依赖,类似于FreeBSD的软件包管理哲学。这能提供更稳定、可控的开发环境。
  6. 行业现状与建议:现实中,许多项目因迁移成本和风险而停留在旧技术上(如大量项目仍使用JDK 8)。作者认为,为应对此现实,应:
    • 选择长期稳定技术:优先选用预计支持10年以上、变化缓慢的“无聊技术”(如PostgreSQL、Debian、Java),而非快速迭代的工具(如React)。
    • 降低更新频率:通过选择技术栈和开发方式,尽量减少需要处理的更新。
    • 区分对待安全更新:标题是夸张说法,安全更新和LTS版本的更新仍应安装,但务必提前备份。
  7. 对未来的反思:作者希望软件开发能更注重长期工程,降低更新速度,使20年后的代码仍能被理解。当前快速迭代、追逐时髦的模式,可能导致未来出现大量无人能理解的遗留系统。

总结:本文并非真的主张永不更新,而是批判当前软件生态中频繁、破坏性更新所带来的巨大负担和风险,倡导更稳定、长期导向的软件开发与维护模式,以节省资源、保障系统可靠性。

23. What happened to BERT and T5? (www.yitay.net)

这篇文章探讨了在大型语言模型(LLM)时代,像BERT和T5这样的编码器模型或编码器-解码器模型为何似乎不再处于主流视野,并分析了其背后的原因。

核心架构关系

  • 编码器-解码器模型(如T5)本质上仍是自回归模型。其解码器是一个标准的因果解码器,只是通过交叉注意力机制利用了编码器的输出。
  • 前缀语言模型(PrefixLM) 架构与编码器-解码器类似,但去除了交叉注意力,输入与输出直接拼接。
  • 因此,编码器-解码器、解码器-only和PrefixLM模型在根本上并非截然不同。

关于去噪预训练目标

  • 去噪目标(如完形填空)并非架构特有,它只是一种数据转换方式。编码器-only、编码器-解码器以及解码器-only模型都可以使用这种目标进行训练。
  • 主要缺陷是“损失曝光率”低:在去噪任务中,仅被掩码的少量token参与损失计算,而标准语言建模(CLM)中几乎全部token都参与,导致去噪目标的样本效率较低。
  • 因此,去噪目标更适合作为CLM的补充,而非独立的预训练目标。当前许多模型(如UL2, PaLM-2)会混合使用语言建模和填充式训练。

BERT类模型没落的原因

  • 核心原因是范式统一:研究界从“单任务微调”转向构建能处理多种任务的“通用模型”。BERT架构需要为每个任务添加特定分类头,过于繁琐。
  • 自回归模型更具灵活性:编码器-解码器和解码器-only模型可以通过序列生成自然地表达多种任务,无需任务特定头,从而成为更优的替代方案。
  • 因此,BERT并非因为其目标过时,而是因为其架构在统一任务范式中处于劣势,被更灵活的自回归去噪模型(如T5)所取代。

架构细节与现状

  • 双向注意力在小规模模型上优势明显,但在大规模模型中其重要性可能减弱。
  • 编码器-解码器架构的优势在于可以在编码器侧进行更多注意力机制的创新(如线性注意力、池化),而不受因果掩码的限制,但输入输出需要固定预算,可能导致计算浪费。
  • 当前趋势:标准语言建模(CLM)仍是主流。去噪/填充目标常作为预训练的辅助或混合目标,尤其在代码模型中(用于代码补全)。针对特定任务的微调,较小但采用双向注意力和去噪目标的模型(如T5)有时能击败更大的纯解码器模型。

总结

BERT的淡出主要源于LLM追求通用性的范式转变,而非其预训练目标失效。更灵活的自回归架构(如T5和GPT系列)能够统一处理多样任务,因此成为主流。去噪预训练目标作为一种能增强模型表示能力的有效技术,目前通常与标准语言建模混合使用,而非单独作为主要目标。

25. Kompute – Vulkan Alternative to CUDA (github.com)

Kompute:跨厂商GPU的Vulkan计算框架

Kompute 是一个基于 Vulkan 的通用 GPU 计算框架,旨在为 AMD、Qualcomm、NVIDIA 等跨厂商显卡提供高性能计算能力。它是一个由 Linux 基金会旗下 LF AI & Data 基金会托管的开源项目,具有速度快、支持移动端、异步处理和高级 GPU 加速用例优化等特点。

核心原则与特性

  • 多语言支持:提供灵活的 Python 包和用于优化的 C++ SDK。
  • 异步与并行:支持通过 GPU 家族队列进行异步和并行处理。
  • 移动优化:通过 Android NDK 支持多种架构的移动端开发。
  • BYOV设计:“自带 Vulkan”设计,能与现有 Vulkan 应用无缝集成。
  • 内存管理:明确 GPU 与主机内存的所有权关系。
  • 健壮可靠:拥有 90% 的单元测试覆盖率。
  • 应用场景:适用于机器学习、移动开发和游戏开发等高级用例。

快速入门 文章通过 C++ 和 Python 示例演示了基础用法,核心步骤通常包括:

  1. 创建 Manager 来管理设备和资源。
  2. 创建并初始化用于存储数据的 Tensor(张量)。
  3. 基于着色器(Shader)和配置创建工作队列(Workgroup)和 Algorithm(算法)。
  4. 通过 Sequence 记录操作序列(如同步数据到GPU、调度算法执行),并同步或异步执行。
  5. 将结果从GPU异步同步回主机内存。

架构概述 Kompute 的核心架构由以下组件构成:

  • Kompute Manager:基础协调器,负责创建和管理设备及子组件。
  • Kompute Sequence:操作容器,可将多个操作作为批次发送到 GPU。
  • Kompute Operation:所有操作继承的基类。
  • Kompute Tensor:用于 GPU 操作的结构化张量数据。
  • Kompute Algorithm:在 GPU 上执行的着色器逻辑的抽象。

异步与并行操作 Kompute 利用 Vulkan 的 Fences 实现异步操作,并通过显式分配队列,支持跨队列家族的并行执行,充分利用硬件能力。

移动端支持 框架针对移动环境进行了优化,构建系统支持 Android 环境下的 Vulkan 共享库动态加载,并提供适用于 C++ 头文件的 Android NDK 包装器。

开发与构建

  • Python包:可通过 pip 安装,支持与 Python 列表、NumPy 数组等互操作。
  • C++构建:使用 CMake 跨平台构建系统,可通过顶层 Makefile 进行便捷开发。
  • 开发规范:遵循 Mozilla C++ 风格指南,使用 vcpkg 管理依赖,Doxygen 和 Sphinx 生成文档。
  • 测试:单元测试可通过 ACT 命令行工具运行,CI 使用 Github Actions,并利用 Swiftshader 在无 GPU 的 CPU 环境下运行测试。

项目动机 该项目的诞生源于观察到 PyTorch、TensorFlow 等众多知名机器学习项目为添加移动(及跨厂商)GPU 支持而集成 Vulkan SDK。尽管 Vulkan SDK 提供了强大的底层优化接口,但其代码冗长(通常需要 500-2000 行样板代码才能开始应用逻辑)。Kompute 的目标并非隐藏 Vulkan SDK 的接口,而是 增强 其 GPU 计算能力,专注于简化样板代码,促进知识转移并减少实现错误。

26. Converting Codebases with LLMs (blog.withmantle.com)

利用大语言模型(LLM)转换代码库

本文介绍了Mantle团队如何利用大语言模型,将R语言的原型代码转换为Golang和ReactJS的生产级代码,旨在通过LLM自动化处理大量样板代码和重复模式,从而将工程时间缩短三分之二,并使开发人员能专注于核心功能的优化。

面临的挑战

软件开发中常需将代码库从一种语言转换为另一种语言,常见动机包括提升可维护性、优化性能、扩大人才库以及将原型产品化。这类任务通常耗时漫长、风险高,且会挤占重要的产品开发资源。

核心方法:利用大上下文窗口

团队采用了基于Gemini 1.0 Pro模型(拥有超过100万token上下文窗口)的创新方法。通过将大量相关信息一次性输入模型,为LLM提供了理解代码库全貌的上下文,从而能够生成符合团队现有风格和结构的代码。

关键实施步骤

  1. 收集并构建上下文:这是成功的基础。团队精心组装了以下信息作为输入:

    • 原型源代码:以“文件路径:代码内容”的格式插入,帮助LLM理解原始代码的结构和逻辑。
    • 目标代码模式:通过提示词从现有生产代码中抽象出代码结构模式和风格指南,而非直接输入大量示例代码,以避免过度影响生成结果。
    • 现有库依赖:直接提供go.modpackage.json文件,确保生成的代码与现有技术栈兼容。
    • UI截图:作为前端代码的视觉参考,帮助LLM理解布局和设计意图。
    • 已生成的代码:随着转换过程推进,将持续生成的代码文件加入上下文,帮助LLM保持代码库的一致性和连贯性。
  2. 逐文件生成代码:由于输出token限制,代码需按文件生成。

    • 生成策略:采用自底向上的方法,先生成底层工具、库和数据库层,再生成API接口等上层文件,使LLM能更好地理解模块间的依赖关系。
    • 执行流程:为每个文件添加针对性上下文、生成代码、评审并微调、然后将满意的文件加入总上下文。
    • 处理大文件:对于超过输出限制的文件,采用分段生成。例如,先生成接口定义,再分段生成其实现,最后拼接。

成果与展望

通过这种方法,Mantle团队成功将原型转换为生产代码,显著提升了开发效率。文章总结指出,虽然具体方法需根据上下文调整,但利用文件结构、代码模式和相关代码作为LLM上下文是一种强大的工作范式。随着模型能力和上下文窗口的持续增长,代码转换过程将变得更加高效和经济,最终推动整个软件开发生态的发展。

27. Human parasites in the Roman World: health consequences of conquering an empire (www.cambridge.org)

罗马世界的人类寄生虫与健康影响研究

研究目的

本研究通过古寄生虫学证据,评估罗马帝国的扩张及其引入的公共卫生设施(如公共浴场、冲水厕所和下水道)是否实质性改善了当时欧洲和地中海地区居民的健康状况。

研究方法

研究通过分析考古遗址中的茅厕土壤、粪化石、骨盆土及木乃伊等样本,结合光学显微镜、酶联免疫吸附测定(ELISA)和古DNA技术,鉴定并追踪了罗马时期前后肠道寄生虫与体外寄生虫的地理分布与演变。

主要发现

  • 罗马时期前:新石器时代存在多种动物源性及粪口传播寄生虫。至青铜和铁器时代,动物源性寄生虫减少,因卫生条件差导致的寄生虫(如蛔虫、鞭虫、痢疾阿米巴)占据主导。
  • 罗马时期的肠道寄生虫:鞭虫和蛔虫是分布最广的肠道寄生虫。此外,鱼绦虫在多个非流行国家被发现,分布范围显著扩大。其他还包括牛/猪绦虫、包虫病、疟疾和弓形虫等。
  • 罗马时期的体外寄生虫:头虱、体虱、阴虱、跳蚤和臭虫广泛存在。这些寄生虫不仅引发瘙痒,还可能传播回归热、斑疹伤寒,甚至可能是引发查士丁尼鼠疫的媒介。

关键结论与原因分析

  • 卫生设施的悖论:尽管罗马人引入了完善的卫生系统,但并未降低寄生虫感染率。蛔虫和鞭虫的持续泛滥,主要归因于将未经充分堆肥的人类粪便直接用作农作物肥料,以及公共浴场温水导致的交叉感染。同时,公共浴场未能减少体外寄生虫的传播。
  • 饮食习惯与寄生虫传播:鱼绦虫在罗马时期的广泛传播是一个意外发现。这主要归因于罗马人热衷于食用未经高温烹饪的发酵鱼酱(garum),这种调味品在整个帝国境内的贸易运输成为了鱼绦虫传播的载体。
  • 医学认知与日常干预:罗马医学基于“体液学说”,错误地认为寄生虫是腐肉在热作用下自然生成的,主要采用放血和饮食调整来治疗。然而,考古出土的细齿除虱梳表明,物理除虱是当时人们应对体外寄生虫的常见日常手段。

总体而言,罗马帝国的征服和“罗马化”进程并未如预期般通过卫生技术的普及带来显著的健康红利,其特定的农业施肥习惯和饮食文化反而促进了某些寄生虫的广泛传播。

29. Google's shortened links will stop working next year (www.theverge.com)

Google缩短链接服务停用时间表

核心事件:Google宣布将停止其URL缩短服务goo.gl的所有链接重定向功能。

关键时间节点

  • 2024年8月23日起:goo.gl链接将开始显示过渡页面,提示“此链接将在不久后失效”。此提示最初会针对部分现有链接,随后逐步扩大范围。
  • 2025年8月25日:所有 https://goo.gl/* 格式的链接将彻底停止工作,并返回404错误。

背景与影响

  • 该服务已于2019年关闭新链接创建,但旧链接的重定向功能持续运行至今。
  • Google建议开发者尽快更新受影响的链接,因为过渡页面可能会中断链接的正常跳转。
  • Google此前(2018年)曾建议开发者迁移至Firebase Dynamic Links,但该替代服务后来也已被弃用。
30. Opinion: I'd rather have a headphone jack and a microSD slot than AI in my phone
31. Technical Details on Today's Outage (www.crowdstrike.com)

事件概述

2024年7月19日04:09 UTC,CrowdStrike在常规运维中向Windows系统发布了一个传感器配置更新。该更新触发了一个逻辑错误,导致受影响系统出现蓝屏崩溃。问题在05:27 UTC通过回滚更新得到解决。此次事件与网络攻击无关

影响范围

受影响系统需同时满足以下条件:

  • 运行 Falcon传感器 for Windows 7.11 或更高版本
  • 04:09 至 05:27 UTC 期间在线并下载了此次有问题的配置更新。

未受影响系统:运行Linux或macOS的系统,以及在该时间窗口外未下载更新的Windows系统。

技术细节

  • 配置文件(Channel Files):这些文件(文件名以“C-”开头,存储于 C:\Windows\System32\drivers\CrowdStrike\)是Falcon传感器行为防护机制的一部分,用于应对新发现的恶意战术。正常每天会更新数次。
  • 问题根源:本次出问题的文件是 Channel File 291(文件名以 C-00000291- 开头,扩展名为.sys)。该文件负责控制Falcon传感器评估Windows系统上的命名管道执行情况。命名管道是Windows中用于进程或系统间通信的正常机制。
  • 错误触发:04:09 UTC发布的更新旨在针对网络攻击中常见C2框架使用的新发现恶意命名管道,但该配置更新触发了逻辑错误,导致操作系统崩溃。
  • 澄清:此次事件与Channel File 291或其他文件中包含的空字节无关。Channel文件虽有.sys扩展名,但并非内核驱动。

修复措施

  • CrowdStrike已通过更新Channel File 291中的内容修正了逻辑错误
  • Falcon平台将继续评估和防护针对命名管道的滥用行为。
  • 最新的修复建议和指南可通过CrowdStrike博客或支持门户获取。

根本原因分析

CrowdStrike表示已了解问题发生原因,并正在进行彻底的根因分析以确定该逻辑缺陷如何产生。公司承诺将确定可实施的基础架构或流程改进措施,并将在调查过程中持续更新分析结果。

32. 1989 Networking: NetWare 386 (www.os2museum.com)

NetWare 386 (NetWare 3.0) 概述

NetWare 386(又称NetWare 3.0)是Novell公司于1989年9月发布的网络操作系统,是首个基于32位(386及更高)处理器的版本,取代了为286机器设计的NetWare 2.x系列。

核心特性与改进

  • 模块化设计:引入了NetWare可加载模块,网络驱动、磁盘驱动和协议等功能可作为独立模块(NLM)在运行时动态加载或卸载。这与NetWare 2.x在安装时需将内核链接成一个整体的复杂方式形成鲜明对比,显著简化了安装与维护。
  • 硬件要求与性能:要求至少386处理器,充分利用了当时的高端32位硬件。支持最多250个用户,是NetWare 2.x(100用户)的2.5倍。
  • 安装与启动
    • 与2.x不同,无法直接从硬盘引导,必须先启动DOS,然后运行SERVER.EXE来加载NetWare系统。
    • 安装过程是在已运行的NetWare系统上通过加载INSTALL.NLM来完成的,替代了2.x的外部安装程序。
    • 系统可以完全关闭并返回DOS环境,因此需要一个小型的可引导DOS分区或软盘。

初始版本的局限性

NetWare 3.0是一个功能完整但初期受限的版本:

  • 协议与驱动:仅支持IPX协议,可用的磁盘和网络驱动程序套件非常有限。
  • 生态系统:发布时缺乏NLM开发工具包,导致第三方NLM几乎不存在,且系统未附带CLIB.NLM等基础模块(这些后续才发布)。
  • 客户端兼容性:仅支持DOS 3.x和4.0客户端,使用旧式单体外壳。但可以与运行较新ODI驱动程序和新DOS版本的客户端正常通信。
  • 价格:定价为7,995美元,主要面向大型企业客户。

历史与现状

  • 作为Novell的旗舰产品,NetWare 3.0标志着一个全新32位网络操作系统时代的开始。
  • 由于售价高昂且销量可能仅数千套,其原始安装盘极为罕见。
  • 得益于1990年代初的软件破解,这款距今已有35年历史的软件得以重新被发现和运行。
33. CrowdStrike is not worth 83B Dollars (old.reddit.com)

核心论点: CrowdStrike(代码:CRWD)在撰写时市值约930亿美元,但其实际价值被严重高估。

核心指控: CrowdStrike实质上是一个企业级员工监控应用,却伪装成云应用可观测性仪表板。

主要观察:

  • 普通零售投资者、网络安全分析师和软件工程师对“云”、“软件工程”和“网络安全”等关键概念的理解普遍不足。
  • 普通零售投资者对“市场”和“流动性池”的理解同样有限。

具体批评:

  • 监控工具: 企业可购买CrowdStrike来监控其员工。
  • 功能单一: 其核心功能有限,主要是收集客户数据并将其展示在仪表板上。
  • 高风险访问: 它拥有对数千家公司内所有设备(即终端)的根访问权限,使其成为高价值目标。
  • 数据共同体: 客户签约后,其公司数据会被加入CrowdStrike的数据池,并授权CrowdStrike用于“关联分析”。
  • 政府目标: CrowdStrike是FBI/NSA获取数据的潜在目标。
  • 潜在宣传工具: 由于社会信息不对称,CrowdStrike可能利用其数据制造无法证伪的“虚假黑客故事”,充当美国政府的宣传工具。
  • 违背安全原则: 其Falcon产品与自身倡导的“零信任安全”原则相矛盾。真正的云应用安全应内建于“软件供应链”中(例如,容器引擎、操作系统和云基础设施供应商分离)。

产品与商业模式分析:

  • CrowdStrike的产品包含运行在每台客户终端(公司笔记本电脑)上的“客户端”,活动数据报告给IT和高管才能访问的内部仪表板。它还提供对客户自身“云应用”组件的可观测性。这两者是完全不同的业务线,容易被混淆。
  • CrowdStrike承认收集客户的“终端数据”,并与其他数据进行比较以“获取洞察”,这意味着每个客户都是其“数据共同体”的一部分。
  • 通过容器化微服务架构可以限制攻击者的“横向移动”,并降低大规模数据窃取的难度。员工往往是比外部“威胁行为者”更大的威胁。

公司现状(2024年):

  • 媒体常将其与业务线完全不同的Palo Alto Networks进行比较。
  • 据称其产品套件(如Falcon Discover, Spotlight, Prevent等)区分度不高,名称通用。
  • 其客户包括44家财富100强公司、37家全球顶级公司、9家顶级银行和7家顶级能源机构,这使其成为极具吸引力的攻击向量。
  • 其网站上的一些宣传视频被指具有误导性。

作者立场:

  • 作者持有看跌CRWD的期权头寸(具体为2025年11月21日到期、执行价185美元的看跌期权),并已获得浮盈。
34. Academics shocked after T&F sells access to their research to Microsoft AI (www.thebookseller.com)

学术出版商出售研究数据给微软AI引发学者震惊与不满

核心事件 学术出版商泰勒弗朗西斯集团(Taylor & Francis)被曝出已将旗下研究人员的成果数据出售给微软,用于人工智能(AI)训练。此举引发了众多学者的强烈震惊与不满。

学者的主要指控

  1. 缺乏知情权与事先通知:作者们声称,他们事先未被告知其研究成果被用于此类AI交易。
  2. 无退出选择权:相关学者表示,他们并未被给予任何机会,以选择是否同意将自己的研究纳入此交易范围。
  3. 未获得额外报酬:尽管研究成果被商业化用于AI开发,但作者们确认,他们并未因此交易获得任何额外的经济补偿。

事件本质 该事件凸显了学术界与出版界在人工智能时代面临的关键矛盾:即在未经原创者充分知情和同意的情况下,其学术成果作为训练数据被大规模商业化利用。这触及了学术伦理、知识产权以及研究者对其工作成果控制权的核心问题。

35. Ask HN: Can anyone from Crowdstrike explain the back story?
36. Ask HN: What is the best way to author blogs in 2024?