每日HackerNews RSS

## HarfBuzz GPU 与 Slug 渲染彩色字体 Eric Lengyel 的 Slug 算法现已开源,并集成到 HarfBuzz 中作为 GPU 库,超越了文本塑形,进入了字形渲染领域。传统上,文本渲染依赖于在特定尺寸下栅格化位图,这对于缩放或 3D 环境来说是个问题。像符号距离场 (SDF) 这样的替代方案也有局限性,但 Slug 直接在片段着色器中计算字形覆盖率,从而实现完美的缩放和变换。 核心思想是将字形曲线预处理成数据缓冲区并上传到 GPU。虽然最初是用于单色字形,但可以通过 COLRv0 和 COLRv1 等格式扩展到矢量彩色字体(如表情符号)。COLRv0 将表情符号渲染为堆叠的彩色字形,可以通过调整现有的单色渲染来轻松支持。COLRv1 更加复杂,利用带有变换、裁剪和混合的渲染树 – 由 HarfBuzz 的 `hb-paint` 组件处理。 这涉及将绘图命令(裁剪蒙版、填充、变换、组)编码到纹理缓冲区中,并在片段着色器中执行它们,可能需要基于图层的混合方法。最终,这使得在任何应用程序中都能实现清晰、可缩放的表情符号渲染,并且即使对于单色文本也优于传统方法。作者希望该概述能够激发进一步的开发并集成到现有的渲染库中。

对不起。

我们检测到您的浏览器已禁用 JavaScript。请启用 JavaScript 或切换到受支持的浏览器以继续使用 x.com。您可以在我们的帮助中心查看受支持的浏览器列表。帮助中心 服务条款 隐私政策 Cookie 政策 版权信息 广告信息 © 2026 X Corp.

本文详细描述了在一次意外断电后,成功恢复一个严重损坏的12TB Btrfs文件系统,该文件系统跨越3个设备池(数据单副本,元数据DUP,DM-SMR磁盘)的过程。标准的`btrfs check --repair`命令失败,由于extent树和空闲空间树的问题陷入无限循环。 恢复是通过14个基于btrfs-progs API构建的定制C工具实现的,数据损失极小——大约4.59TB中的7.2MB(0.00016%)。作者分享此案例作为研究,*而非*错误报告,并为btrfs-progs的潜在改进提供建设性反馈。 提出了九个具体的改进领域,重点是增强的修复工具功能(进度检测、extent树重建、孤立inode清理)、更清晰的文档以及对已识别边缘情况的修复。定制工具的参考实现以及一个补丁已在GitHub上公开提供,作为进一步调查和讨论的资源,而非直接提交补丁。

## Btrfs 数据恢复案例研究与讨论 最近的案例研究详细描述了在提交操作期间断电后,如何恢复一个损坏的 12TB Btrfs 多设备池。作者利用自定义 C 脚本,并借助 LLM (Claude) 的帮助,在原生 Btrfs 工具失效后恢复了 99.9% 的数据。 该事件引发了关于 Btrfs 可靠性的争论。人们对文件系统在意外关机期间数据丢失的脆弱性表示担忧,并质疑这种风险是否已得到充分记录。许多评论员指出,特定配置——例如在没有 RAID 的情况下使用元数据 DUP——尤其容易出现问题。其他人分享了他们 Btrfs 损坏的个人经历,并将其与 ZFS 的感知稳定性进行了对比。 虽然有些人为 Btrfs 辩护,承认可能存在用户错误或硬件问题,但普遍的看法是,它的恢复过程通常很脆弱,导致整个文件系统无法访问,而不是孤立的数据损坏。 建议使用 ZFS,甚至 LVM、dm-integrity 和 mdraid 的组合,尽管每种方案在性能和复杂性方面都有其自身的权衡。 这次讨论凸显了围绕 Btrfs 成熟度和是否适合生产环境的持续争论。

利用月球反射信号——被称为地月地(EME)通信——长期以来一直是无线电爱好者的终极挑战。它需要大型天线、昂贵设备以及精确的手动指向和跟踪。我们试图将这项技术带到地面,提供体验太空通信的乐趣所需的所有工具,通过开源软件定义的相控阵来实现。

## Bun vs. Node.js:Trigger.dev 的 5 倍性能提升 Trigger.dev 在其对延迟敏感的“Firestarter”服务(一个处理数千个长轮询 HTTP 连接的预热连接代理)中用 Bun 替换了 Node.js,从而实现了 **5 倍的吞吐量提升**。初步分析显示 Node.js 实现存在瓶颈:缓慢的 SQLite 查询、过多的 Zod 解析以及低效的头部转换。 第一阶段消除了 SQLite 数据库,用复合键 Map 替换它,实现 O(1) 查找,吞吐量翻倍,延迟减半。第二阶段切换到 Bun 的原生 `bun.serve()` API,进一步将性能翻倍。随后的分析(第三阶段)识别并修复了与 Zod 验证、头部处理和调试日志记录相关的热点,将 CPU 使用率提高了 40%。最后,编译成单个二进制文件(第四阶段)又将吞吐量提高了 14%,并将镜像大小从 180MB 减少到 68MB。 一个关键发现是 Bun 的 HTTP 模型中存在内存泄漏:来自断开连接的客户端的未解决的 Promise。修复此问题稳定了内存使用并进一步提高了性能。该团队强调分析的重要性,在每个步骤进行基准测试,并理解 Bun 独特的 HTTP 生命周期。他们还为常见的 Bun 问题创建了一个调试技能。

对不起。

最近的研究正在揭示阴蒂的奥秘,这个器官由于社会禁忌和解剖学挑战,历史上一直研究不足。研究人员利用同步加速器的先进X射线技术,首次在微米级别上创建了阴蒂神经的详细三维图像。 发表在bioRxiv上的研究表明,阴蒂背神经(DNC)有力地延伸到阴蒂龟头,广泛分支并连接到周围组织,如耻骨区域。这与先前的神经逐渐变细的假设相矛盾。 这种详细的解剖学图谱具有重要意义。它可以改善针对女性生殖器切割术后患者的重建手术,并帮助外科医生在其他盆腔手术中避免神经损伤。专家强调,随着性别肯定治疗的进步,人们对生殖神经重要性的认识日益增强,并强调需要进一步研究以开发针对相关疾病的更好疗法。该团队计划扩大研究范围,纳入更多样化的捐赠者。

这个黑客新闻的讨论围绕着LiveScience最近重新发布的一篇文章,该文章详细介绍了对阴蒂神经的首次完整绘制。用户最初将帖子标记为重复,并指出通过HN的搜索功能很难找到原始提交——这是最近几位评论者遇到的问题。 对话很快演变成一系列关于HTTP错误代码(404、403、502、411、420、402)的玩笑,利用了文章敏感的主题以及令人沮丧的搜索问题。几位用户指出,这些错误代码与主题相关的幽默之处,其中一人建议使用“420 Enhance your calm?”的回应。这个帖子既突出了科学发现,也突出了HN搜索功能的怪癖,以及社区略显尴尬但轻松的反应。

👍 1人点赞 👎 1人踩 😄 1人笑 🎉 1人欢呼 😕 1人困惑 ❤️ 1人爱心 🚀 1人火箭 👀 1人眼睛。 你现在无法执行该操作。

对不起。

``` /research "GraphQL性能特征" 收集证据,读取你的代码库,搜索网络,并记录发现的内容。每个发现都有一个类型(事实、风险、预估)和一个证据等级——从“声明”(有人说)到“测试”(原型验证)。 r001 [事实|文档] GraphQL消除了移动客户端的过度获取,减少了40-60%的负载大小。 r002 [事实|网络] GraphQL N+1查询问题需要DataLoader或等效的批量处理层。 r003 [风险|文档] 现有的REST缓存(CDN、HTTP)无法直接应用于GraphQL,需要自定义解决方案。 ```

一个黑客新闻的讨论围绕着人工智能生成工具和网站的激增,特别是名为“wheat”的一个工具,它迫使LLM通过CLI来解释它们的答案。 许多评论者表示怀疑,一些人认为这些工具是“无用的垃圾”,认为直接与LLM交互足以完成简单的任务。 还有人指出这些网站的重复性和糟糕的设计,并提到烦人的“淡入”效果是明显的标志。 然而,一些用户发现像“wheat”这样的工具很有价值,尤其是在与Claude等模型进行长时间会话时,并指出在代码合并方面提高了生产力。 讨论凸显了人们对不断涌现的人工智能工具的日益疲劳,以及关于它们是否真正解决了问题,还是仅仅增加了不必要的复杂性的争论。

## 软件版本控制:为什么重要以及如何正确实施 最近的一次生产事故暴露了软件版本控制中的一个关键缺陷:无法*精确*知道正在运行的代码是什么。尽管快速识别出潜在的修复方案,但由于缺乏对构建版本和发布的可见性,仍然浪费了数小时。这促使我们重新审视最佳实践,并回忆起十多年前在 i3 窗口管理器中实施的一种解决方案。 核心问题在于令人惊讶的低版本控制标准——即使是家用电器也具有详细的版本信息!有效的软件版本控制需要三个步骤:**标记它!**(包含源代码修订版),**连接它!**(确保此信息在构建和打包过程中不会丢失),以及**报告它!**(在日志、用户界面甚至 HTTP 标头中显示版本信息)。 最有价值的信息是 VCS(版本控制系统)修订版。虽然 Go 现在可以自动使用此数据标记构建,但将其集成到 Nix 等打包系统中可能很复杂。像 `stapelberg/nix/go-vcs-stamping` 这样的叠加层可以弥合这一差距。 最终,优先考虑“版本可观测性”——在整个系统中一致报告 VCS 修订版——是一个高影响、低成本的项目,可以在事件响应期间节省大量时间和压力。不要满足于基本的版本号;要知道*精确*正在运行的代码是什么。

对不起。

## Sheets:终端电子表格 Sheets 将电子表格功能带到你的终端。你可以启动它来直接读取通过 stdin 管道传入的 CSV 数据,或者打开现有的 CSV 文件。导航侧重于键绑定,允许使用 `h, j, k, l` 在单元格之间移动,并使用 `gg`(顶部)或 `B9`(单元格 B9)等命令快速跳转到特定位置。 Sheets 支持通过直接赋值 (`B7=10`) 和插入模式 (`i`) 修改单元格。强大的功能包括搜索 (`/`)、标记 (`ma`)、跳转列表 (`ctrl+o`) 和视觉选择 (`v`),用于复制、剪切和粘贴。公式可以在视觉模式下使用 `=` 插入。 保存、打开其他文件和退出都通过激活 `:` 的命令提示符来完成。安装很简单,可以使用 Go (`go install...`) 或下载预构建的二进制文件。该项目采用 MIT 许可,并欢迎用户反馈。

## 终端电子表格:Hacker News 汇总 Hacker News 的讨论重点介绍了新的基于终端的电子表格工具“Sheets” ([github.com/maaslalani](https://github.com/maaslalani))。 这篇文章引发了对类似项目的兴趣,揭示了在终端界面中可用的电子表格功能选项数量惊人。 几位用户推荐了 **VisiData** 和 **visidata (vd)**,称赞它们的速度以及处理大型数据集的能力,甚至可以抓取网站上的表格数据。 还有人指出 **Oleo** 及其现代分支 **NeoLeo**,这是一个更小、基于 C++ 的版本,具有 Tcl 绑定以进行自定义和独特的查询语言。 **lnav** 也被提及为强大的 CLI 数据工具。 对话转向怀旧,回忆了早期的电子表格程序,如 **Lotus 1-2-3**、**Quattro Pro** 和 **Visicalc**,其中一些至今仍可使用模拟器运行。 一个共同的主题是对结合电子表格和笔记本功能的工具的渴望,像 **TreeSheets** 和 Obsidian 插件提供了部分解决方案。 虽然许多人欣赏基于终端的工具的简单性和强大功能,但与现代电子表格格式(如 .xlsx)的兼容性仍然是更广泛采用的关键挑战。

更多

联系我们 contact @ memedata.com