9天前
|
|
|
111
## 今天 Hacker News 社区聊了啥? NO.20250723
今天份的科技日报来啦!这期内容超丰富:从GitHub Actions缓存的黑科技加速,到Radicle CI的开发新姿势,再到Cerebras发布超快AI模型,绝对让你脑洞大开!还有复古Geocities背景图,带你一秒回到旧时光。想知道为啥AI公司开始抢高薪专家?gRPC客户端的性能瓶颈怎么破?还有Game Boy卡带的秘密等你来探索!别犹豫了,赶紧点开全文,一起探索科技世界的无限可能!

---
## 加速 GitHub Actions 缓存:逆向工程解析
本文深入探讨了如何通过逆向工程 GitHub Actions 缓存机制,并透明地将缓存请求路由到更快的协同缓存,从而实现高达 10 倍的性能提升,且无需修改代码或维护上游 actions 的 fork。
文章首先指出,维护大量 actions 的 fork 成本过高,因此作者决定逆向工程 GitHub Actions 缓存。通过借助 LLM 工具 Claude,成功分析了 GitHub 发送到其控制平面的请求,并获得了 actions 服务的 proto 定义。由于 GitHub 使用 Azure Blob Storage,而作者的缓存后端运行在自托管的 MinIO 集群(S3 兼容)之上,因此需要解决两者之间的兼容性问题。
为了实现无缝体验,文章介绍了如何使用 NGINX 在 VM 内部署轻量级代理,将缓存相关请求重定向到宿主机代理。同时,利用内核级的网络技术(nftables)解决了 Azure SDK 的兼容性问题,并构建了自己的 Azure-like URLs,以及在宿主机代理中构建了解码器和转换器,将其转换为 S3 兼容的端点。此外,文章还强调了保持代理轻量级的重要性,并介绍了如何使用 Go 语言的 io 库和 Resty 库来实现高效的数据流处理和连接池管理。
最后,文章简要提及了缓存的另一个有趣方面,即在某些情况下,未能检索到缓存反而是更快的选择。
- 原文: [Reverse engineering GitHub Actions cache to make it fast](https://www.blacksmith.sh/blog/cache)
- Hacker News: [https://news.ycombinator.com/item?id=44658909](https://news.ycombinator.com/item?id=44658909)
- 作者: tsaifu
- 评分: 43
- 评论数: 11
- 发布时间: 2025-07-23 21:17:43
---
## 使用 Radicle CI 进行开发
本文介绍了作者如何使用 Radicle 及其 CI 支持进行软件开发,包括项目启动、添加到 Radicle、添加 CI 支持以及管理补丁和问题。作者主要使用 Emacs 和命令行进行开发,并专注于与 Radicle 相关的开发流程。
文章首先概述了 Radicle CI,Radicle 节点进程打开一个 Unix 域套接字,用于发送描述节点中更改的事件。其中一个事件表示节点存储中存储库的更改。Radicle 中的 CI 支持围绕存储库更改事件构建。Radicle CI 代理 (`cib`) 侦听事件,并将其与配置进行匹配,以确定何时运行 CI。节点运营商可以决定为哪些存储库运行 CI。CI 代理本身不运行 CI,而是调用一个单独的程序“适配器”,该适配器接收触发 CI 的事件。适配器要么自己执行运行,要么使用外部 CI 系统来执行它。这使得 Radicle 可以通过为每个 CI 系统编写一个简单的适配器来支持各种 CI 系统。作者使用自己编写的 CI 引擎 Ambient 及其适配器 `radicle-ci-ambient`。还有一些适配器可以在主机上或容器中本地运行 CI,GitHub Actions,Woodpecker 等。
文章还通过一个“hello world”程序展示了 Radicle CI 的实际使用。首先创建一个带有 Rust 项目的 Git 仓库,然后使用 `rad init` 命令创建一个 Radicle 仓库。为了使用带有 Ambient 的 Radicle CI,需要创建 `.radicle/ambient.yaml` 文件,该文件告诉 Ambient 运行 `cargo clippy` 和 `cargo test`。作者还提到了一个 `rad` 的扩展 `rad-ci`,可以在本地运行 CI,从而避免了等待服务器 CI 运行完成的麻烦。
由于文章中没有评论内容,因此无法总结评论观点。
- 原文: [Using Radicle CI](https://radicle.xyz/2025/07/23/using-radicle-ci-for-development)
- Hacker News: [https://news.ycombinator.com/item?id=44658820](https://news.ycombinator.com/item?id=44658820)
- 作者: aiw1nt3rs
- 评分: 37
- 评论数: 2
- 发布时间: 2025-07-23 21:09:01
---
## Cerebras 发布 Qwen3-235B:号称世界最快 Frontier AI 模型
Cerebras 发布了 Qwen3-235B 模型,声称在推理云平台上实现了 1.5k tokens/秒的速度,并支持 131K 上下文。该模型在速度和成本方面都优于闭源替代方案,旨在变革企业 AI 部署。
Qwen3-235B 在科学、编码和通用知识基准测试中,性能与 Claude 4 Sonnet、Gemini 2.5 Flash 和 DeepSeek R1 等模型相媲美。该模型采用混合专家架构,在 Cerebras 上以极低的成本提供服务,每百万输入 tokens 0.6 美元,每百万输出 tokens 1.2 美元。Cerebras 利用 Wafer Scale Engine 将 Qwen3-235B 加速到 1,500 tokens/秒,将响应时间从 1-2 分钟缩短到 0.6 秒。Cerebras 还将其上下文长度支持从 32K 扩展到 131K tokens,从而能够处理大型代码库和复杂文档,适用于生产级应用程序开发。
Cerebras 与 Cline 合作,Cline 是 Microsoft VS Code 的智能编码代理,拥有超过 180 万用户。Cline 用户现在可以直接在编辑器中访问 Cerebras Qwen 模型,首先是具有 64K 上下文的 Qwen3-32B。未来将扩展到包含具有 131K 上下文的 Qwen3-235B,与 DeepSeek R1 等替代方案相比,代码生成速度提高 10-20 倍。
评论区主要关注了模型的成本、上下文长度以及实际应用。
* **aurareturn** 指出,如果使用全 fp16 量化,则需要 2TB 内存才能支持 131K 上下文,运行成本高昂,相比之下,使用多个 DGX B200 系统可能更具成本效益。
* **nisten** 质疑 Cerebras 提供的上下文长度是否为完整上下文,并询问了具体的量化方案。
* **mehdibl** 认为此新闻可能已过时,并与 Qwen 3 coder 405B 的发布相混淆。
* **0vermorrow** 期待 Qwen 3 coder 在 Cerebras 上的可用性,并强调了高速推理对于智能代理循环的重要性。
* **Inviz** 询问了 Cerebras 服务的定价是否有所改善,看起来现在已经引入了按需付费模式。
- 原文: [Cerebras launches Qwen3-235B, achieving 1.5k tokens per second](https://www.cerebras.ai/press-release/cerebras-launches-qwen3-235b-world-s-fastest-frontier-ai-model-with-full-131k-context-support)
- Hacker News: [https://news.ycombinator.com/item?id=44657727](https://news.ycombinator.com/item?id=44657727)
- 作者: mihau
- 评分: 228
- 评论数: 85
- 发布时间: 2025-07-23 18:51:51
---
## 怀旧Geocities背景图集:Pixel Moondust的复古宝藏
Pixel Moondust网站分享了一个Geocities背景图集,唤醒了许多人的复古回忆。该图集按照颜色、主题等进行了详细分类,包括黑色、蓝色、棕色、绿色、灰色、橙色、粉色、紫色、红色、白色、黄色以及彩虹色等多种颜色选择。主题方面,更是涵盖了动物纹理、动物图案、砖块、棋盘格、浮雕、织物、奇幻、花卉、昆虫、风景、线条、条纹、大理石、金属、音乐、油污、纸张、波点、流行文化、宗教、岩石、缎面、天空、星星、漩涡、科技、文字、瓷砖、水、编织、木纹以及其他各种混合主题。
图集还包括动态背景和左侧边框背景,方便用户打造个性化的复古网页。作者建议在新标签页中打开图片,以便完整浏览,并强调这些图片主要用于页面垂直方向的背景平铺。这个资源对于那些希望重温Geocities时代风格,或者为项目添加复古元素的开发者和爱好者来说,是一个非常棒的素材库。
评论区里,用户们分享了各自的看法和使用场景。有人指出了更精确的索引链接,方便查找背景;有人提到公司防火墙阻止了图片加载,影响了怀旧体验;还有人表示早该发现这个资源,因为多年前的第一个网站就使用了类似的背景图片。此外,有用户指出在Firefox iOS上无法点击磁贴更改背景,也有人认为这些背景非常适合用于制作复古风格的PowerPoint演示文稿。还有用户表达了对平铺桌面壁纸的喜爱,以及对Geocities的怀念,认为它像一场新的冒险。
- 原文: [Geocities Backgrounds](https://pixelmoondust.neocities.org/archives/archivedtiles)
- Hacker News: [https://news.ycombinator.com/item?id=44631042](https://news.ycombinator.com/item?id=44631042)
- 作者: marcodiego
- 评分: 73
- 评论数: 16
- 发布时间: 2025-07-21 09:42:22
---
## 优化低延迟网络中 gRPC 客户端的瓶颈
本文深入探讨了在低延迟网络环境中,gRPC 客户端可能出现的性能瓶颈问题,并提供了相应的解决方案。文章通过一个简单的 gRPC ping 微基准测试,揭示了即使在资源充足的情况下,客户端也可能成为性能瓶颈,导致资源闲置和延迟增加。
文章首先简要介绍了 gRPC 的工作原理,强调了 gRPC 基于 HTTP/2 协议,并利用多路复用技术在单个 TCP 连接上支持多个并发 RPC。然而,作者发现,即使客户端为每个 worker 创建独立的 gRPC channel,它们仍然可能共享同一个 TCP 连接,从而限制了并发性能。文章重申了 gRPC 官方文档中关于连接数限制的建议,即为高负载区域创建单独的 channel,或使用 channel 池来分散 RPC 请求。
为了验证这个问题,作者使用 C++ 编写了一个简单的 gRPC ping 微基准测试,并在具有低延迟网络连接的两台服务器上运行。测试结果表明,即使在少量并发请求下,实际吞吐量也远低于理论值,表明客户端存在性能瓶颈。作者通过实验数据展示了随着并发请求数量的增加,延迟也显著增加,进一步证实了瓶颈的存在。
文章建议的解决方案是结合 gRPC 官方文档中的两个建议:为每个高负载区域创建单独的 channel,并使用 channel 池来分散 RPC 请求。通过这种方式,可以有效地利用多个 TCP 连接,避免单个连接上的拥塞,从而提高吞吐量并降低延迟。
由于没有评论内容,因此跳过评论相关的总结与分析。
- 原文: [The Surprising gRPC Client Bottleneck in Low-Latency Networks](https://blog.ydb.tech/the-surprising-grpc-client-bottleneck-in-low-latency-networks-and-how-to-get-around-it-69d6977a1d02)
- Hacker News: [https://news.ycombinator.com/item?id=44658973](https://news.ycombinator.com/item?id=44658973)
- 作者: eivanov89
- 评分: 22
- 评论数: 1
- 发布时间: 2025-07-23 21:23:20
---
## Linux 桌面 20 年:Ubuntu 分裂与移动浪潮
本文回顾了 Linux 桌面发展 20 年历程中的关键事件,重点讲述了 Ubuntu 逐渐偏离 Debian 和 GNOME,以及移动计算兴起对桌面环境的冲击。文章剖析了 Ubuntu 放弃 GNOME 转而开发 Unity 的决策,以及 Canonical 在开源方面的策略转变。
2010 年,Mark Shuttleworth 宣布 Ubuntu 将放弃 GNOME,转而采用内部开发的 Unity 桌面环境,这标志着 Ubuntu 与 GNOME 社区的分裂。作者回忆当时在现场感到震惊,因为 Canonical 希望创建一个可以在电脑和触摸屏上通用的界面。与此同时,GNOME 社区对自身发展方向感到迷茫,而 SUSE 与微软达成的专利协议也给 GNOME 项目带来了潜在的法律风险。
尽管 GNOME 社区尝试使用 JavaScript 开发 GNOME Shell 作为替代方案,但其性能问题令人担忧。Shuttleworth 对 GNOME 的未来感到担忧,最终决定放弃它,这终结了 Ubuntu 作为 Debian+GNOME 的时代。作者还指出,Ubuntu 越来越多地使用闭源产品,例如 Launchpad,这与他最初认为 Ubuntu 会完全开源的设想不符。虽然 Canonical 尝试解决 Linux 生态系统中的核心问题,但有时也会触及红线,例如 Unity 捆绑 Amazon 广告,这引起了用户的强烈不满。
与此同时,在移动领域,Nokia 也面临着来自 Apple 和 Google 的竞争压力。微软的 Stephen Elop 先与 Nokia 签订了开发 Symbian 版 Microsoft Office 的合同,随后又跳槽到 Nokia 担任 CEO,这加速了 Nokia 的衰落。作者加入了 Lanedo 公司,专注于 GNOME 技术的开发,并逐渐减少了在 Ubuntu 社区的参与。加入 Lanedo 意味着作者与 Ubuntu 的缘分走到了尽头。
- 原文: [20 years of Linux on the Desktop (part 4)](https://ploum.net/2025-07-23-linux_desktop4.html)
- Hacker News: [https://news.ycombinator.com/item?id=44658770](https://news.ycombinator.com/item?id=44658770)
- 作者: todsacerdoti
- 评分: 72
- 评论数: 41
- 发布时间: 2025-07-23 21:03:22
---
## 指纹识别器协议逆向工程
本文介绍了如何对指纹识别器的Windows驱动和USB协议进行逆向工程,最终实现了一个Python脚本,能够以大约15 FPS的速度从传感器流式传输图像。文章重点在于理解Goodix指纹识别器的工作原理,并尝试在Linux系统上重现其功能。
文章首先介绍了如何识别设备并确定其USB ID,发现该设备在`libfprint`的支持设备列表中。作者随后使用`wireshark`和`usbmon`内核模块捕获USB流量,观察驱动程序和设备之间的交互。尽管捕获到了大量数据,但作者发现图像数据似乎被加密或压缩了。为了进一步了解协议,作者开始分析Windows驱动程序,确定了关键的驱动文件,例如`wbdi.dll`,并使用Ghidra等工具进行逆向工程。通过分析驱动程序,作者逐步理解了设备初始化、数据传输和图像处理的流程。文章还提到了使用Wireshark dissector来解析Goodix协议,以及调试初始化过程和修改PSK(预共享密钥)的方法。最终,作者成功地创建了一个Python驱动程序的PoC(概念验证),能够从指纹识别器获取图像数据。
文章还提到,最近成立了一个 Discord 社区,目标是在 libfprint 中支持所有类型的 Goodix 设备。
由于没有评论内容,因此不进行评论总结。
- 原文: [Reversing a Fingerprint Reader Protocol (2021)](https://blog.th0m.as/misc/fingerprint-reversing/)
- Hacker News: [https://news.ycombinator.com/item?id=44619835](https://news.ycombinator.com/item?id=44619835)
- 作者: thejj100100
- 评分: 19
- 评论数: 3
- 发布时间: 2025-07-20 06:02:37
---
## AI 公司战略转变:高薪专家取代低成本数据标注员
AI 领域正在发生转变,AI 公司不再依赖低成本的“数据标注员”,转而聘请高薪专家。 这篇文章探讨了这一趋势背后的原因以及它对 AI 行业的影响。
过去,AI 模型的训练依赖大量的数据,而这些数据的标注工作通常由低薪劳动力完成。 然而,随着 AI 技术的进步,人们意识到高质量的数据标注对于模型性能至关重要。 低成本的数据标注往往质量不高,导致模型出现偏差和错误。
为了提高模型质量,AI 公司开始投资聘请领域专家来进行数据标注。 这些专家不仅能够准确地标注数据,还能提供更深入的见解,帮助改进模型的设计和训练。 此外,一些公司也在探索使用合成数据来减少对人工标注的依赖。
这种转变对 AI 行业产生了多方面的影响。 一方面,它提高了 AI 模型的质量和可靠性。 另一方面,它也增加了 AI 开发的成本,并可能导致一些公司难以负担高质量的数据标注。 此外,它也改变了 AI 领域的人才需求,对数据标注员的技能提出了更高的要求。
- 原文: [AI groups spend to replace low-cost 'data labellers' with high-paid experts](https://www.ft.com/content/e17647f0-4c3b-49b4-a031-b56158bbb3b8)
- Hacker News: [https://news.ycombinator.com/item?id=44622637](https://news.ycombinator.com/item?id=44622637)
- 作者: eisa01
- 评分: 110
- 评论数: 46
- 发布时间: 2025-07-20 15:02:03
---
## QuestDB 招聘技术内容负责人
QuestDB 正在招聘一位技术内容负责人,负责制定和执行其技术内容战略,旨在提升开发者体验、扩大开源社区并增加网站的自然流量。该职位需要具备深厚的技术背景和出色的沟通能力,能够创建引人入胜的技术内容,并与团队合作维护 QuestDB 的文档。
QuestDB 是一家专注于时间序列数据的数据库公司,致力于提供高性能、可靠和简易的解决方案。他们正在寻找一位充满活力的人才来领导其技术内容战略,涵盖文档、用户界面、文章、网站、代码仓库、新闻邮件和语言客户端等多个方面。作为团队的重要成员,你将负责策划、执行和迭代内容战略,以帮助发展 QuestDB 的开源社区,并为网站带来更多自然流量。你将与社区和研发团队紧密合作,确保 QuestDB 的整体形象清晰、准确,并为开发者提供流畅的体验。
该职位需要具备 5 年以上开发者工具文档和/或内容战略的实践经验,以及为技术受众创建引人入胜的技术内容的能力。你需要精通 Git 和 Markdown 相关技术,并具备衡量和测试内容战略效果的经验。此外,还需要具备设计、构建和维护改进内容规划、生产和效果跟踪的系统或流程的能力。熟悉时间序列数据库和至少一种常用编程语言将是加分项。
QuestDB 提供慷慨的股权期权、灵活的工作时间、100% 远程办公、自由选择技术设备以及与优秀同事共事的机会。他们拥有透明、协作和包容的文化,并为员工提供职业发展的机会。
目前还没有评论内容。
- 原文: [QuestDB (YC S20) Is Hiring a Technical Content Lead](https://questdb.com/careers/technical-content-lead/)
- Hacker News: [https://news.ycombinator.com/item?id=44658233](https://news.ycombinator.com/item?id=44658233)
- 作者: nhourcard
- 评分: 1
- 评论数: 0
- 发布时间: 2025-07-23 20:00:36
---
## 将 SQL 注入变成功能:一个数据库演变的故事
本文讲述了一个网站报表功能如何一步步演变成一个完全开放的 SQL 文本框,最终变成 “SQL 注入即服务”(SIAAS)的故事。这个过程并非一蹴而就,而是历经十年,通过一个个看似合理的请求和妥协逐渐形成的。
文章详细描述了这一演变过程的七个阶段。最初,开发者只是为了满足用户不断增加的报表字段需求,直接修改硬编码的 SQL 语句。随着需求的复杂化,他们引入了下拉菜单来选择不同类型的报表,但这也导致了报表数量的爆炸式增长。为了解决报表命名混乱的问题,他们又允许用户修改报表名称,最终甚至出现允许超级管理员用户直接编写 SQL 查询的“秘密页面”。为了防止恶意操作,开发者还加入了对 `INSERT`、`UPDATE` 和 `CREATE` 等关键词的过滤,以及对查询执行时间的限制。最终,这个报表功能变成了一个充满各种警告和限制的 SQL 文本框,用户被告知不要随意使用 `JOIN`,并且避免在备份系统运行时运行查询。作者接手后,虽然想改进这个工具,但最终还是决定维持原状,因为即使是简单的 `DELETE` 操作也可能导致严重的问题。
评论区中,@adontz 指出,在大型商业系统中,用户可能没有直接访问原始数据的权限,但却有权查看包含聚合数据的报表。因此,报表权限不能简单地从基本的 CRUD 权限推导出来。他建议可以采取一些措施来安全地实现 “在 HTML 表单中编辑原始 SQL” 的功能,例如:检查查询是否为 `SELECT` 查询,只允许超级用户编辑查询,使用参数化查询,并为查询设置独立的权限系统。@crazygringo 的评论被截断,无法得知其观点。
- 原文: [SQL Injection as a Feature](https://idiallo.com/blog/sql-injection-as-a-feature)
- Hacker News: [https://news.ycombinator.com/item?id=44638304](https://news.ycombinator.com/item?id=44638304)
- 作者: foxfired
- 评分: 48
- 评论数: 18
- 发布时间: 2025-07-22 01:59:23
---
## 使用 Fennel 扩展 Emacs 的可能性
本文主要探讨了如何利用 Fennel 语言来扩展 Emacs 编辑器,以及使用 Fennel 相比 Guile 的优势。
文章指出,虽然 Guile Emacs 正在复兴,但作者认为不应该局限于 Guile。Guile 拥有多种语言的虚拟机,例如 Emacs Lisp、ECMAScript、Brainfuck、Lua、Ruby 和 Python。然而,Guile 对这些语言的支持可能与原生实现存在差异,例如 Guile Lua 可能不是 PUC Lua。因此,作者提出直接使用 Lua 的想法,并开发了一个名为 `require-fennel.el` 的 Emacs 包,允许加载 Fennel (或 Lua) 模块,并在 Emacs 端为每个 Fennel 函数定义一组函数。
通过 `require-fennel.el`,Emacs 可以连接到 Fennel REPL,就像连接到 Common Lisp 或 Clojure 一样。文章展示了如何加载 Fennel 模块,并在 Emacs Lisp 中调用 Fennel 函数,包括处理函数签名、文档字符串和数据结构转换。Fennel 函数支持使用特殊语法进行解构。例如,Fennel 的哈希表在 Emacs Lisp 中表示为关联列表。文章还详细介绍了 Elisp 和 Fennel 之间的数据转换规则,例如 Elisp 列表和向量都转换为 Fennel 列表,而 Fennel 的哈希表转换为 Elisp 的关联列表。
此外,文章还提供了一些示例,展示了如何使用 `require-fennel.el` 加载和调用各种 Fennel 库,包括 `cljlib`、JSON 解析器,甚至是 Clojure 库 `clj-http` 的 Fennel 移植版本。这些例子展示了 Fennel 扩展 Emacs 的强大能力和灵活性。
- 原文: [Extending Emacs with Fennel (2024)](https://andreyor.st/posts/2024-12-20-extending-emacs-with-fennel/)
- Hacker News: [https://news.ycombinator.com/item?id=44656073](https://news.ycombinator.com/item?id=44656073)
- 作者: Bogdanp
- 评分: 116
- 评论数: 21
- 发布时间: 2025-07-23 13:54:21
---
## WebAssembly 何时才能获得 DOM 支持?
本文探讨了 WebAssembly (Wasm) 是否已准备好在 Web 应用程序中投入生产使用,以及 Wasm 是否需要直接 DOM 访问。文章指出,Wasm 可能永远不会获得直接 DOM 访问,但它已经可以通过 JavaScript 间接访问 DOM,从而支持各种 Web 集成用例。
Wasm 从一开始就被设计为与 JavaScript 严格分离。与嵌入在 JavaScript 中的 asm.js 不同,Wasm 字节码完全不包含 JavaScript 的“遗产”。然而,Wasm 仍然是 Web 平台的一部分。文章解释说,Wasm 不需要新的 Web API 版本(如 DOM),因为现有的 JavaScript API 就可以很好地工作。Wasm 通过 JavaScript API 允许编译器生成的胶水代码无缝访问任何 JavaScript 代码。
Wasm 正在逐步发展,以允许构建工具链发出更少的代码,特别是减少使 Web 应用程序在 Wasm 中变得缓慢和臃肿的代码。Wasm 与 JavaScript 的集成将继续通过 W3C Wasm CG 的工作而发展和深化。未来可能会添加一种机制,可以直接从 Wasm 调用 Web API,但这需要巨大的努力来设计和实现。
文章还通过一个调用 `console.log` 的例子,解释了 Wasm 和 JavaScript 如何协同工作。Wasm 是一个模块语言,每个 Wasm 模块声明导入和导出。要运行一个模块,需要使用一组导入来实例化它,这个操作提供了导出的集合。Wasm JavaScript API 使得可以从 JavaScript 访问这个模块实例化功能。
此外,文章还讨论了如何使用 Wasm 的简单内置类型系统来调用 JavaScript API,即使这些 API 接受对象作为参数。通过在 JavaScript 中维护一个包含所有 Wasm 程序需要关心的 JavaScript 对象引用的数组,Wasm 可以通过整数索引来访问这些对象。
总而言之,Wasm 的目标是使更多程序能够在 Web 上以良好的性能运行,而不是消除每一丝 JavaScript。将程序的核心编译为 Wasm,可能是在实践中使应用程序工作的关键。
- 原文: [When Is WebAssembly Going to Get DOM Support?](https://queue.acm.org/detail.cfm?id=3746174)
- Hacker News: [https://news.ycombinator.com/item?id=44655921](https://news.ycombinator.com/item?id=44655921)
- 作者: jazzypants
- 评分: 100
- 评论数: 99
- 发布时间: 2025-07-23 13:16:24
---
## SDR42E1 调控维生素 D 吸收与癌症发病机制
本文探讨了 SDR42E1 在维生素 D 吸收和癌症发病机制中的作用,通过体外模型深入研究了其潜在机制。研究发现 SDR42E1 的缺失会扰乱类固醇的生物合成,导致 7-DHC 积累和维生素 D 水平降低。
维生素 D 对于钙和磷的稳态、骨骼健康和免疫功能至关重要。SDR42E1 是一种短链脱氢酶/还原酶,可能在脂质和类固醇代谢中发挥重要作用。此前的全基因组关联研究 (GWAS) 发现,SDR42E1 基因上的一个无义突变与维生素 D 缺乏相关,该突变导致产生截短的、无功能的 SDR42E1 酶,并与血清中 8-DHC 和 7-DHC 水平升高有关。
研究人员利用 CRISPR/Cas9 基因编辑技术,在 HCT116 细胞中引入了与维生素 D 缺乏相关的 SDR42E1 无义突变,并通过全面的转录组和蛋白质组分析,表征了 SDR42E1 破坏后的下游分子改变。实验方法包括细胞培养、质粒构建与克隆,以及利用 CRISPR/Cas9 构建 SDR42E1 敲入细胞。研究结果旨在深入了解 SDR42E1 在维生素 D 稳态中的作用,并探索其在代谢调节和疾病发病机制中的更广泛意义。
研究使用了人结直肠癌细胞系 HCT116,并在特定的培养条件下进行培养。通过构建含有野生型 SDR42E1 的质粒,并利用脂质体 3000 进行瞬时转染,来评估 SDR42E1 蛋白的潜在作用。为了模拟患者中观察到的变异,研究人员使用 CRISPR/Cas9 技术在 HCT116 细胞中引入了 SDR42E1 基因中的功能缺失型 p.Q30* 无义突变。
- 原文: [SDR42E1 modulates Vitamin D absorption and cancer pathogenesis](https://www.frontiersin.org/journals/endocrinology/articles/10.3389/fendo.2025.1585859/full)
- Hacker News: [https://news.ycombinator.com/item?id=44658798](https://news.ycombinator.com/item?id=44658798)
- 作者: bookofjoe
- 评分: 23
- 评论数: 2
- 发布时间: 2025-07-23 21:06:43
---
## 探索动画缓动函数:打破常规,追求更细腻的运动效果
本文探讨了动画中常用的缓动函数,并指出其存在的局限性,尤其是在需要更精细和独特的动画效果时。文章还介绍了 Apple 提出的参数化缓动函数以及卷积滤波器等替代方案,旨在为动画开发者提供更多选择和灵感。
文章首先解释了缓动函数的基本概念,即通过非线性变换,使动画的运动过程更加自然生动,符合“慢入慢出”等动画原则。然后,作者指出,现有的缓动函数种类有限,容易导致动画效果的重复和缺乏个性化。为了解决这个问题,文章介绍了 Apple 提出的参数化缓动函数,该函数允许开发者调整动画的多个属性,如是否包含预 anticipation、overshoot 程度和振荡次数。然而,作者也指出,在实际使用中,调整这些参数可能会相互影响,导致调试过程复杂。此外,文章还提到了卷积滤波器等其他替代方案,旨在为动画开发者提供更多选择和灵感,打破传统缓动函数的局限。作者认为,运动本身就能赋予物体性格,而代码实现的动画应该有更多可能性,不应局限于现有的缓动函数。
- 原文: [I'm Unsatisfied with Easing Functions](https://www.davepagurek.com/blog/easing-functions/)
- Hacker News: [https://news.ycombinator.com/item?id=44625500](https://news.ycombinator.com/item?id=44625500)
- 作者: surprisetalk
- 评分: 30
- 评论数: 16
- 发布时间: 2025-07-20 22:24:28
---
## 英国电信地下掩体中的 PDP-11 系统救援
本文讨论了从英国电信位于伦敦市中心的一个大型地下掩体中抢救两台 PDP-11 系统的过程。一位论坛成员成功地将这些古老的计算机系统从即将被重新利用的地点中拯救出来。
文章中提到,这些 PDP-11 系统包括两台 11/23 底盘,每个底盘都有额外的 Qbus 扩展底盘,以及用于每台机器的富士通 8 英寸 SMD 硬盘。由于空间限制,Cipher 1/2 英寸磁带驱动器和 19 英寸机架被遗留在原地。一位用户对能够成功完成这次救援行动表示赞赏,并希望能够看到关于这些 Qbus 系统的配置和已安装板卡的更多图片。救援者承诺在拆卸系统后提供更详细的清单。
- 原文: [Rescuing two PDP-11s from a former British Telecom underground shelter (2023)](https://forum.vcfed.org/index.php?threads/rescuing-two-pdp-11-systems-in-uk-from-a-former-big-british-telecom-underground-shelter-in-central-london.1244723/page-2)
- Hacker News: [https://news.ycombinator.com/item?id=44656105](https://news.ycombinator.com/item?id=44656105)
- 作者: mhh__
- 评分: 90
- 评论数: 13
- 发布时间: 2025-07-23 14:02:40
---
## 使用 Herringbone Wang Tiles 生成 2D 区域
本文介绍了使用 Herringbone Wang Tiles 技术从较小的 2D tiles 生成大型 2D 区域的方法,该技术扩展了 Wang Tiles 的概念,并与 Sucker Punch 的 Infamous 中使用的地图系统相关。
文章的核心思想是使用一种新颖的平铺模式(即人字形平铺模式)来平铺 tiles,从而减少规则平铺的重复感,并在没有任何计算的情况下实现比简单方法更好的连通性。作者还提到了“jigsaw colors”的概念,即允许 tiles 的边缘形状以某种方式变化,以打破普通平铺的长直线边缘,但没有对此进行深入探讨。
文章还讨论了 Wang Tiles 的一些理论,例如,为了获得“最佳”结果,应该为每种情况准备足够的 tiles,以便能够拥有每种可能的“输出”边缘组合,从而将给定位置的 tile 选择限制为仅影响其直接邻居。作者将这种 tiles 集合称为“完整随机集”。
文章还探讨了如何在 Wang Tile 系统中放置比单个 tile 大的“特殊内容”,例如大型洞穴或大型会议中心。作者提出了两种方法:一种是在 tiles 之间引入新的、独特的颜色,另一种是在生成其他 tiles 之前首先放置大型 tiles。作者认为,完整随机集 tiling 是一种重要且有价值的 Wang Tiles 实现方法,因为它保证了 tile 选择不会影响超过一个邻居,并且可以轻松地在随机生成之前预先放置规则 tiles 和大型 tiles。当然,缺点是需要大量的内容。
- 原文: [Herringbone Tiles](https://nothings.org/gamedev/herringbone/herringbone_tiles.html)
- Hacker News: [https://news.ycombinator.com/item?id=44634047](https://news.ycombinator.com/item?id=44634047)
- 作者: smusamashah
- 评分: 3
- 评论数: 0
- 发布时间: 2025-07-21 19:42:04
---
## 探索 CPython 3.14 的远程调试协议
CPython 3.14 引入了 `sys.remote_exec`,允许开发者将 Python 代码注入到正在运行的进程中,极大地简化了远程调试流程。这篇文章深入探讨了这一新特性的原理和实际应用,展示了如何利用它来调试和检查远程 Python 程序的内部状态。
文章首先强调了 Python 在调试工具开发方面的优势,例如对异常回溯的一流对象处理,以及 `traceback` 和 `eval`/`exec` 等标准库模块的强大功能。这些特性使得开发像 `pdb` 这样的调试器变得相对容易,并促进了 `ipdb` 和 `pdb++` 等定制化工具的出现。然而,传统的调试方法通常需要修改程序源代码并重启,而 `sys.remote_exec` 的出现旨在解决这个问题。
`sys.remote_exec` 接受一个进程 ID 和一个 Python 脚本路径作为参数,它会向目标进程发送信号,指示其执行指定的脚本。文章通过一个简单的示例,演示了如何使用 `sys.remote_exec` 在远程进程中打印堆栈信息,并强调了远程脚本的执行发生在当前运行上下文中的事实。这意味着开发者可以轻松地访问和检查程序的状态,而无需中断程序的运行。
文章还展示了如何使用 `remote_pdb` 库建立交互式调试会话,以及如何通过 `python -m pdb -p pid` 直接连接到运行中的进程。作者提醒说,虽然直接连接会暂停目标进程,但使用 `traceback.print_stack()` 等非侵入式方法可以降低对运行进程的影响。总的来说,`sys.remote_exec` 为 Python 开发者提供了一种强大而灵活的远程调试工具,可以极大地提高调试效率和诊断问题的能力。
- 原文: [Checking Out CPython 3.14's remote debugging protocol](https://rtpg.co/2025/06/28/checking-out-sys-remote-exec/)
- Hacker News: [https://news.ycombinator.com/item?id=44657433](https://news.ycombinator.com/item?id=44657433)
- 作者: ingve
- 评分: 36
- 评论数: 10
- 发布时间: 2025-07-23 17:57:25
---
## MIT 开放课程:计算机科学中的数学(2024)
MIT OpenCourseWare 提供了 2024 年春季学期的“计算机科学中的数学”课程,涵盖了计算机科学中常用的基础离散数学知识。 这门课程旨在为科学和工程领域的学生提供有用的数学工具和证明技巧。
课程内容包括逻辑符号、集合、关系、基本图论、状态机和不变式、归纳法和反证法等。 此外,还涉及递归、渐近符号、算法的基本分析、初等数论和密码学、排列组合、计数工具以及离散概率等多个方面。 课程提供了丰富的学习资源,包括课程大纲、阅读材料、讲座视频、讲义、热身问题和作业题。授课教师包括 Erik Demaine 教授、Zachary Abel 博士和 Brynmor Chapman 博士。 该课程适合本科生学习,涵盖了工程、计算机科学(包括算法和数据结构)以及数学(包括计算)等主题。 学习资源类型多样,包括讲座视频、讲义、阅读材料、作业题和开放教科书。
评论区中,有用户感叹能够免费访问世界顶尖大学的课程是难以置信的,并指出该课程提供了 31 小时的深度数学讲解。 这体现了开放教育资源的价值,以及人们对于高质量教育内容的渴求。
- 原文: [Mathematics for Computer Science (2024)](https://ocw.mit.edu/courses/6-1200j-mathematics-for-computer-science-spring-2024/)
- Hacker News: [https://news.ycombinator.com/item?id=44655565](https://news.ycombinator.com/item?id=44655565)
- 作者: vismit2000
- 评分: 215
- 评论数: 37
- 发布时间: 2025-07-23 11:47:18
---
## 深入了解 Game Boy 卡带的工作原理
本文深入探讨了 Game Boy 卡带的工作原理,旨在为那些希望从零开始制作 Game Boy 卡带的开发者提供全面的指导。作者分享了多年研究和设计的成果,并提供了一个开源的 Game Boy 卡带设计方案。
文章详细介绍了制作 Game Boy 卡带所需的各种知识,包括数字存储器的工作原理、微处理器的通信方式、十六进制和二进制数的概念等。此外,文章还讨论了 Game Boy 作为游戏平台的独特之处,例如其简单易懂的设计、便携性和低功耗、以及丰富的技术文档和开源工具链。文章还涵盖了 Game Boy 卡带的基本原理,包括硬件和软件之间的界限、卡带的物理结构和电子元件、以及 CPU 如何与卡带进行通信。
由于没有评论内容,这里跳过评论相关的总结与讨论。
- 原文: [More than you wanted to know about how Game Boy cartridges work](https://abc.decontextualize.com/more-than-you-wanted-to-know/)
- Hacker News: [https://news.ycombinator.com/item?id=44651770](https://news.ycombinator.com/item?id=44651770)
- 作者: todsacerdoti
- 评分: 372
- 评论数: 41
- 发布时间: 2025-07-23 03:17:38
---
## AI 编程助手消除编程语言障碍
本文讨论了 AI 编程工具如何降低学习和使用多种编程语言的门槛,使得开发者能够更轻松地跨越语言界限。
作者分享了自己从一名 Ruby 开发者转型为能够使用 C++, C 和 Rust 等语言的经历。他认为,AI 编程工具,例如 Cursor 和 Claude Code,在其中起到了关键作用。虽然过去学习新语言的机会一直存在,但 AI 显著降低了学习曲线。作者以 ZJIT 项目为例,说明了 AI 如何在理解语言语法、概念和标准模式方面提供帮助,从而减轻了开发者需要掌握的知识负担。作者强调,AI 并非要完全替代人类程序员,而是作为一种辅助工具,与开发者形成互补关系,共同解决问题。通过 AI,开发者可以更快地掌握新语言,并能更专注于解决实际问题,而不是纠结于语言的细节。
评论区出现了一些不同的声音。有人指出,AI 可能会加剧主流语言的流行程度,因为 AI 在这些语言上的训练数据更多,错误率更低。这可能会导致非主流语言更难入门,因为普通开发者难以发现 AI 产生的错误。还有人认为,AI 在处理非主流语言时表现不佳,因为训练数据不足。即使是主流语言,AI 也可能因为混淆不同版本的库而产生问题。不过,也有人认为,AI 将推动编程语言朝着更强的 Hindley-Milner 类型检查方向发展,例如 Haskell。
- 原文: [AI coding agents are removing programming language barriers](https://railsatscale.com/2025-07-19-ai-coding-agents-are-removing-programming-language-barriers/)
- Hacker News: [https://news.ycombinator.com/item?id=44655515](https://news.ycombinator.com/item?id=44655515)
- 作者: Bogdanp
- 评分: 75
- 评论数: 84
- 发布时间: 2025-07-23 11:39:13
---
## Show HN:纯 C 语言实现的无内存分配 GIF 解码器
本文介绍了一个纯 C 语言实现的 GIF 解码器,它最大的特点是无需动态内存分配,并且以 header-only 形式提供,易于集成到项目中。这意味着开发者可以直接将头文件包含到他们的项目中,而无需进行复杂的编译和链接过程。
这个解码器的亮点在于其简洁性和易用性。由于没有内存分配,它可以避免潜在的内存泄漏和碎片问题,这在资源受限的环境中尤其重要。header-only 的实现方式也简化了集成过程,开发者只需包含头文件即可使用。该实现方式借鉴了 `stb_image` 库的思路,将所有实现代码都放在头文件中。
有开发者分享了自己开发 GIF 编码器的经验,重点在于如何从 RGB 图像计算调色板以最小化文件大小,并提到了早期的一个代码示例,但同时也指出需要对其进行大量修改以适应现代需求,例如避免全局变量和使用更高精度的浮点数。
此外,还有人将其与 WUFFS 项目进行了比较,WUFFS 也提供了一个无内存分配的 GIF 解码器。
评论区对这个 header-only 的实现方式存在一些疑问,有人指出头文件中包含了非静态、非内联的函数,这可能会导致在不同的编译单元中多次包含该头文件时出现链接错误。也有人猜测 README 文件可能是由 LLM 生成的,并表达了对这种做法的看法。当然,也有人质疑在 2025 年还需要一个新的 C 语言 GIF 解码器的意义,以及将所有代码都放在一个文件中的必要性。但也有开发者表示,以往经验表明,需要定义 `XXX_IMPLEMENTATION` 的 header-only C 库通常都非常优秀,暗示了这个库的潜力。
- 原文: [Show HN: Header-only GIF decoder in pure C – no malloc, easy to use](https://news.ycombinator.com/item?id=44658027)
- Hacker News: [https://news.ycombinator.com/item?id=44658027](https://news.ycombinator.com/item?id=44658027)
- 作者: FerkiHN
- 评分: 44
- 评论数: 31
- 发布时间: 2025-07-23 19:36:33
---
🫵 来啊,说点有用的废话!