## Sonner:一个流行的Toast库的故事
Sonner,一个Toast通知库,已经迅速流行起来——每周npm下载量超过700万次,并被X、Vercel等公司采用,以及作为shadcn/ui的默认库。尽管市场竞争激烈,但Sonner的成功源于其对优雅性和用户体验的关注。
创建者有意选择了独特的名称“Sonner”(法语中“敲响”的意思),而不是功能性的名称,优先考虑了易记性。至关重要的是,Sonner视觉上吸引人的堆叠动画虽然并非全新,却是第一个被广泛可用的开源实现。
除了美观之外,Sonner还优先考虑流畅的开发者体验。它避免了像Context这样的复杂React模式,而是利用了一个简单的观察者模式和一个直接的`toast()`函数调用。诸如滑动消失、展开Toast以及处理标签页非活动状态等功能,都体现了对细节的关注。动画使用CSS过渡处理,以实现可中断性,并且巧妙的CSS技术保持了hover状态和拖动功能的一致性。
最终,Sonner的成功归功于其美丽的设计和易用性——提醒我们,在软件开发中,优先考虑美学可以成为强大的差异化因素。
## macOS 应用结构:历史概述
早期的 Mac 应用(如 QuarkXPress 4.11)将资源——窗口、菜单等——存储在与可执行代码分离的“资源分支”中。这与简单的命令行程序形成对比。Mac OS X 的出现带来了从 NeXTSTEP 继承的重大转变,即“捆绑包”结构。
现代 macOS 应用本质上是结尾为 `.app` 的目录,包含一个 `Contents` 文件夹。该文件夹包含可执行代码(在 `MacOS` 中)、资源(如图标,在 `Resources` 中)以及潜在的共享库(`Frameworks`)。 重要的是,`Info.plist` 定义了应用元数据——可执行文件名称、所需的 macOS 版本、文档类型——而 `PkgInfo` 保留了经典的 Mac OS 类型/创建者信息。
启动应用涉及 `launchd`、`LaunchServices` 和 `RunningBoard`,它们都依赖于 `Info.plist` 数据。 随着时间的推移,安全功能(如代码签名,Leopard 中添加)和公证引入了 `_CodeSignature` 和 `_MASReceipt` 等目录。
如今的捆绑包越来越集中组件——以前分散在 Library 文件夹中——在应用本身内(例如,`Library`、`XPCServices`、`Plugins`)。这种自包含的方法简化了安装、更新、删除,并通过签名和公证增强了安全性,无论 Intel 还是 Arm 架构。
## 科里·多克托关于批评人工智能和“逆向半人马”
科里·多克托最近在华盛顿大学的演讲,预览了他即将出版的书籍《逆向半人马的生活指南》(2026年6月),重点讨论了如何有效地批评人工智能。他认为,许多关于人工智能的讨论都偏离了重点,受到炒作和投资者利益的驱动,而非真正的社会效益。
多克托通过“逆向半人马”的概念来阐述这个问题——人类作为机器的附属物,为了效率提升而被剥削(例如,被人工智能监控的快递员)。他认为人工智能的发展方向是*创造*这些逆向半人马,而不是赋能人类。
他批评科技垄断企业需要像人工智能这样的持续“泡沫”来维持增长,并警告说人工智能取代工作的承诺是为削减成本和剥削工人服务的烟幕弹。多克托提倡将批评的重点放在人工智能的*实际*危害上——它如何恶化工作并可能降低质量——以及基于共同利益建立联盟,而不是陷入关于人工智能潜在意识的争论。他强调理解科技公司如何构建叙事以谋取自身利益的重要性,并敦促人们关注替代方案,抵制“别无选择”的心态。