fasterthanli.me

3 篇内容

工程实践fasterthanli.me

Making our own spectrogram

文章以“自己实现一个频谱图”为目标,先说明频谱图如何把声音波形分解为不同频率,再把结果映射成随时间滚动的可视化图像。作者并没有只停留在概念层面,而是结合自己的 Rust 应用,讲解了项目由哪些 crate 组成、音频线程与图形线程如何协作,以及数据如何从采集、分析到绘制流转。文中重点不只是“怎么画出来”,还包括实时处理时的组织方式、线程分工和界面刷新策略,体现出一个可运行工具的整体结构。它更偏向具体实现与工程组装,而不是纯理论推导,因此对理解音频可视化管线很有帮助。边界在于文章主题集中在作者这套实现上,读者若要迁移到其他语言或更专业的 DSP 场景,还需要补充信号处理基础。

文中直接给出了频率提取、Rust crate 组合、音频/图形线程协作和绘制流程,证据明确,不是泛泛展示效果。适合做音频可视化、实时图形或 Rust 工程实现的参考,但迁移到更严肃的 DSP 场景时仍需补足信号处理细节。

工程实践fasterthanli.me

color npm package compromised

文章围绕 2025 年 npm 生态中 color 包相关的账号入侵事件展开,描述攻击者通过伪造 2FA 重置邮件窃取维护者 qix 的账号,并开始发布带后门的恶意版本。作者还补充了事件时间线、钓鱼域名 npmsj.help 的注册背景,以及受害账号如何在短时间内影响下游依赖。核心观点是:开源供应链风险往往不是代码本身先出问题,而是发布权限、身份验证和维护者信任链被攻破。文章借此强调了对 npm 发布流程、强制多因素认证、账号恢复机制和依赖治理的审视价值。它更偏安全事件复盘与风险分析,适合作为供应链安全与开源生态治理的案例参考,但不属于完整的防护教程。

有明确的真实事件证据:维护者账号被伪造 2FA 邮件钓鱼后投递后门版本,直接体现了供应链攻击链路。适合做安全治理、开源依赖管理和账号防护的案例参考,能迁移到发布权限、身份验证和应急响应设计中。

技术文章fasterthanli.me

Catching up with async Rust

文章围绕 Rust 中 async fn in traits 的稳定化,回顾了 free function 和 impl 方法里的 async 早已成熟,但 trait 里长期缺位所造成的生态断层。作者解释了这一特性背后的关键难点,包括异步函数返回值难以直接命名、trait object 的对象安全限制,以及编译器如何把 async 代码降解为状态机。文章还对比了过去常见的 async_trait 宏方案与原生语法的差异,指出原生支持能减少样板代码、提升可读性,但并没有彻底消除 dyn 兼容、泛型边界和性能理解上的复杂性。整体上,它更像是一篇帮助读者跟上 async Rust 现状与迁移边界的技术梳理,而不是入门教程。

收录,因为文章直接围绕 async fn in traits 的稳定化展开,并明确讨论了状态机降解、对象安全和宏替代方案等关键技术证据,而非单纯功能播报。适合已在使用 Rust async 的读者,以及需要判断新特性迁移边界、理解原生语法与 async_trait 差异的工程场景。