每日HackerNews RSS

## Zig 语言宣布新的异步 I/O 方法 Zig 编程语言正在引入一种新的异步 I/O 设计,旨在实现简单性和灵活性。 与具有特殊 async 代码语法的语言(如 Python 或 Rust)或将所有内容都设为异步的语言(如 Haskell)不同,Zig 的方法避免了这些复杂性。 核心是一个新的 `Io` 接口,作为所有 I/O 操作的网关。 函数接收一个 `Io` 实例作为参数。 计划了两个初始实现:`Io.Threaded`(同步,可选线程)和 `Io.Evented`(使用事件循环(如 `io_uring`)的异步)。 程序员还可以创建自定义 `Io` 实现以进行细粒度控制。 这种设计允许代码在同步或异步 I/O 中都能正确运行,而无需修改。 库可以通过异步方式提供性能优化,而无需改变其核心逻辑。 需要并行执行的函数使用 `asyncConcurrent()`。 虽然仍在开发中——`Io.Evented` 仍处于实验阶段,并且计划支持 WebAssembly——但这种方法优先考虑熟悉的 Zig 语法和控制流,从而最大限度地减少对开发人员的干扰。 目标是在 Zig 走向 1.0 版本发布的过程中,建立一个稳定的 I/O 接口。

必须启用 JavaScript 才能使用 Notion。请启用 JavaScript 以继续。

## Strudel:用JavaScript进行实时编码音乐 一种名为Strudel的新型JavaScript环境正日益流行,用于通过代码创作和表演音乐。在Hacker News上分享的Strudel允许用户在浏览器中以视觉和交互方式创作音乐,为数字音乐创作提供了一种独特的方法。 用户称赞其直观的界面、实时反馈以及轻松可视化代码和相应声音的能力。 许多评论者分享了他们的创作和体验,强调了它在实时编码表演方面的潜力——这种日益流行的趋势在TikTok和Reels等平台上有所展示。 与成熟的工具(如启发Strudel的TidalCycles)和传统的DAW相比,Strudel提供了一个更易于入门的途径,特别是对于熟悉JavaScript的用户而言。虽然它可能缺乏一些高级功能,但其易用性和视觉特性正在吸引越来越多的音乐家和开发者。 已经提供了一些资源和扩展,包括VS Code插件和NeoVim集成,以增强工作流程。

该网站包含Jake VanderPlas的《Python数据科学手册》全文;内容以Jupyter笔记本的形式在GitHub上提供。文本以CC-BY-NC-ND许可协议发布,代码以MIT许可协议发布。如果您觉得这些内容有用,请考虑通过购买本书来支持这项工作!

## Hacker News 讨论:Python 数据科学手册 Hacker News 的讨论围绕 Jake VanderPlas 的《Python 数据科学手册》(jakevdp.github.io)展开。用户称赞 VanderPlas 的教学能力,提及他的“黑客统计”演讲以及本书对初学者的实用性(尤其是在 2017-2018 年左右)。 对话的重要部分围绕 **Pandas** 展开,一些用户强烈批评它不可测试、难以阅读且容易出错,提倡使用列表推导式和 Polars 等替代方案。另一些人则为 Pandas 在 Python 生态系统中的广泛采用和集成辩护,尤其是在与静态模式包装器和类型检查器结合使用时。 讨论突出了数据科学工具不断发展的格局,**Polars** 作为 Pandas 的更快、更高效的替代方案正在获得关注,但有些人认为它是一种炒作技术。 存在关于现代数据科学是否正在转向数据工程的争论,以及 Spark 和 Dask 等工具的作用。 最终,许多人认为 VanderPlas 的书仍然很有价值,因为它侧重于基本概念,而不是短暂的趋势。用户还指出链接的 GitHub 仓库包含本书的第二版。

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

## SDK 错误与 200 响应:处理 API 演进 SDK 用户常见的困扰是收到成功的 (200) HTTP 响应 *同时* 伴随 SDK 错误。这通常源于 API 演进——例如新的枚举值或缺失字段的变化——与严格的 SDK 验证产生冲突。虽然 API 提供者可以尝试预防措施,如版本控制或服务器端验证,但完美的向后兼容性通常是不切实际的。 Speakeasy SDK 通过优先处理 API 变化的客户端优雅处理来解决这个问题。主要功能包括:**向前兼容的枚举和联合类型**(自动接受新值而不破坏代码)、**宽松模式**(为缺失字段填充合理的默认值,而不是失败)和 **智能联合类型反序列化**(根据填充的字段智能选择正确的联合类型)。 这些功能默认启用于新的 TypeScript SDK 中,确保类型安全 *和* 流畅的开发者体验。它们允许 API 演进而不会立即破坏现有的集成,为不可避免的“规范漂移”提供了一个强大的解决方案,并保持 SDK 用户的生产力。Speakeasy 的其他语言 SDK 也提供类似的前向兼容性功能。

黑客新闻 新 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 TypeScript API 客户端/SDK 中的向前兼容性和容错性 (speakeasy.com) 5 分,作者 mfbx9da4,1 天前 | 隐藏 | 过去 | 收藏 | 讨论 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系方式 搜索:

这篇轶事集回顾了几十年关于软件开发即将过时的预测。从 20 世纪 90 年代的观点认为面向对象编程将消除对程序员的需求——设想一种“类似乐高”的预制组件组装——到最近对人工智能工具的担忧,作者始终观察到炒作的周期以及对熟练开发人员的持续需求。 每一种“威胁”——高级 IDE 带有重构工具、自动化工作流程,甚至多媒体的兴起——最初都显得革命性,似乎要取代人类程序员。然而,这些进步不可避免地会产生*新的*复杂性和需求。自动化不会消除工作,它会改变工作内容。重点从重复性任务转移到更高层次的问题解决,以及关键的,*新的*逻辑创建。 作者强调了一个反复出现的主题:对人类因素的低估。人工智能中的伦理数据处理、超越仅仅“在线”的强大商业模式的需求,以及熟练劳动力的持久价值,都表明技术本身不能替代周到的实施和持续的维护。尽管不断有关于它衰落的预测,软件开发仍然存在,不断发展而不是消失。

## 飞行墙:开源航班追踪器 飞行墙是一个DIY LED显示屏,根据您的位置显示实时航班信息。该开源项目使用20个LED面板、一个ESP32开发板以及3D打印(或替代材料)支架进行构建。它通过OpenSky的ADS-B数据显示航班位置和呼号,并通过FlightAware AeroAPI获取飞机/航空公司详细信息——需要免费注册账户以获取API密钥。 系统通过简单的代码调整来配置WiFi凭据和位置。构建需要PlatformIO进行固件上传。虽然刷新率较低(不适合游戏!),但该墙有效地可视化了附近的空中交通。 对于那些不想进行DIY项目的人,预制显示屏可在[theflightwall.com](https://theflightwall.com)购买。未来的更新可能包括航空公司标志查找以及更多自定义选项。在Instagram上使用@theflightwall分享您的作品!

## 物理学阅读的转变 作者对主流物理学停滞不前感到沮丧——它被渐进式进展和大型验证项目所主导——因此转向了“怪异科学”——探索非常规思想的理论论文。这并非关于伪科学主张(如阿维·洛布的观点),而是关于真正引人深思的概念,即使最终被证明是错误的。 目前的研究兴趣包括质疑基本假设:轻子会产生引力吗?引力是否是矩阵力学的一种熵结果?更有趣的是,电子*是否*是具有环状形状的光子?后者尤其提供了一个引人注目的量子电动力学替代方案,自然地解释了电子的自旋和电荷等性质。 这种探索并非为了寻找立竿见影的答案,而是为了拥抱物理学潜在动荡时期,这类似于社会变革时期科学和艺术领域的历史性转变。作者还强调了探索非常规天体生物学的重要性,考虑基于截然不同的生物化学的生命形式的可能性——这些生命形式可能无法被当前方法检测到。这些“怪异”的探索,虽然是推测性的,但与既定领域中缺乏创新形成了一种令人耳目一新的对比。

## x86 整数加法:编译器技巧 x86 汇编处理整数加法的方式与 ARM 等架构不同。虽然 ARM 允许直接的“结果 = 操作数1 + 操作数2”指令,但 x86 的 `add` 指令会修改第一个操作数 (`lhs += rhs`),缺乏专用的目标寄存器。 编译器通过巧妙地利用 x86 强大的内存寻址系统来克服这个限制。`mov` 指令可以直接访问内存,而无需专门的加载/存储,寻址模式允许在单个指令中进行复杂的计算。 `lea` (加载有效地址) 指令*计算*内存地址,而无需实际访问它。这被用于加法:通过将加法构建为计算一个由操作数偏移的内存地址,寻址硬件执行加法。 这个 `lea` 技巧有效地实现了三操作数加法,指定了目标寄存器并保留了原始操作数的值。虽然它涉及 64 位计算,即使是 32 位加法也是如此,但多余的位会被丢弃。这种技术通常可以节省一条指令并提高性能,编译器会自动在有利的情况下使用它。

## Hacker News 讨论总结:x86 LEA 指令和汇编优化 这次 Hacker News 的讨论围绕 Matt Godbolt 最近的文章,探讨了 x86 汇编中的 `lea` (Load Effective Address) 指令。核心观点是,`lea` 可以是一种高效的加法运算方式,尤其是在需要保留操作数的值或 CPU 标志时。 用户深入探讨了 `lea` 具有优势的原因——它避免了修改原始操作数,并且可以保留进位标志,这在跳转表实现等场景中很有用。 讨论扩展到更广泛的话题,例如何时使用内联汇编、编译器在优化中的作用,以及人工编写的汇编代码与编译器生成的代码之间的权衡。 许多评论者指出,现代编译器通常在优化方面非常有效,但手动编写的汇编代码在特定领域仍然有益,例如模拟器、解释器或处理专用硬件功能。 讨论还涉及依赖编译器“技巧”的脆弱性与结构良好代码的可移植性之间的争论。 讨论还涉及 x86 指令编码的复杂性和 CISC 与 RISC 架构的历史背景。 最后,分享了学习汇编和理解编译器输出的资源(如 Godbolt.org)。

## HIV 治疗取得进展,新的干细胞案例 第七位患者在接受血液癌症干细胞移植后被治愈了艾滋病毒,这个案例正在挑战之前关于如何实现这种治愈的假设。 与之前的五个案例不同,这位患者接受的干细胞*没有*被认为对艾滋病毒具有抵抗力的基因突变(CCR5)。 这加强了证据,继去年第六个类似案例之后,CCR5并非治愈的唯一关键。 这位患者于2015年接受治疗,在接受移植前接受化疗以消除他现有的免疫细胞。 他在移植后三年停止了抗逆转录病毒治疗(ART),并且在超过七年的时间里保持无病毒状态——这是第二长的记录在案的缓解期。 科学家们现在认为,成功的治愈可能取决于供者的新的免疫系统主动清除残留的患者细胞,然后再让病毒重新建立自身,而不是仅仅依赖于具有抵抗力的细胞。 虽然更广泛的干细胞供者可能潜在地可行,但成功的结局可能需要基因因素的特定组合。 尽管取得了这些进展,但干细胞移植仍然是一种有风险的程序,仅适用于*也*需要癌症治疗的人。 ART 和像lenacapavir 这样的新型长效药物仍然是管理艾滋病毒最安全和最有效的方法,适用于绝大多数人。

## 接受干细胞移植后治愈艾滋病毒 – 摘要 一名男子在接受干细胞移植后意外治愈了艾滋病毒,这是第二例*没有*使用抗艾滋病毒干细胞发生的病例。这一点意义重大,因为之前的成功案例依赖于具有罕见基因突变(CCR5)的供体,该突变赋予了抗艾滋病毒能力,这表明即使没有它,治愈也是可能的。 然而,该程序离广泛应用还有很远。干细胞移植具有风险,生存率约为50%,通常涉及摧毁患者的免疫系统,并面临移植物抗宿主病等潜在并发症。许多评论员指出,目前的艾滋病毒治疗可以实现接近正常的寿命,使得这种剧烈的程序往往“弊大于利”。 该病例为正在增长的、但仍然有限的研究提供了治愈潜在方案的线索。虽然本身并非突破,但它强化了追求艾滋病毒治愈并非徒劳的想法,并为病毒和免疫系统提供了宝贵的见解。

更多

联系我们 contact @ memedata.com