你需要启用 JavaScript 才能运行此应用。
你需要启用 JavaScript 才能运行此应用。
## 马航370:十年后,新的搜索开始 马来西亚航空公司MH370航班,载有239人,于2014年3月8日从吉隆坡飞往北京途中失踪,成为航空史上最大的谜团之一。 尽管在南印度洋进行了两次大规模但未果的搜索——耗资超过2亿美元——由海洋机器人公司海洋无限公司领导的新的“找不到不收费”搜索正在进行中。 初步调查显示,飞机严重偏离航线,飞越马来西亚和苏门答腊后向南转弯。 它的应答器被故意关闭,阻碍了追踪。 虽然确认来自飞机的残骸已漂流到非洲和印度洋,但主要残骸仍未找到。 海洋无限公司的新搜索利用了改进的声纳和分析技术,重点是定位更大的、完整的部件,如发动机。 专家承认这一巨大的挑战——即使知道泰坦尼克号的位置,也花了近一个世纪才找到它。 2018年的一份报告表明,飞机的控制权可能被操纵,但原因和责任方仍然未知,引发了无数阴谋论。 一份完整的调查报告将于7月30日公开发布。
到1902年,大英帝国拥有“红线”,这是一个非凡且具有韧性的全球海底电报通讯网络。这个网络环绕地球,能够快速传递信息——几分钟到几小时,并且在电缆被切断时自动重新路由。 它的优势在于冗余性;多条电缆连接着关键地点,使得完全中断变得极其困难。军事评估确定敌人需要切断57条电缆才能孤立英国,15条才能孤立加拿大,7条才能孤立南非。 至关重要的是,帝国在电缆生产和维修方面是自给自足的,并拥有无与伦比的海军来保护这一重要的基础设施。迈克尔·德洛奈博士强调,这个系统是大英工程和战略远见卓识的证明,确保了在其广阔殖地范围内安全可靠的通讯。
启用 JavaScript 和 Cookie 以继续。
## Swift 并发:安全与代码运行位置 大多数应用是 I/O 密集型的,使用 `async/await` 和 `Tasks` 在主线程上处理得很好。然而,CPU 密集型任务(如复杂计算)如果直接在主线程上运行*会*冻结 UI。 历史上,管理这个问题涉及线程、GCD 和 Combine 等选项——所有这些都需要手动安全措施来防止数据竞争(当多个线程同时访问和修改相同的数据时)。数据竞争会导致不可预测的崩溃和错误。 Swift 的并发系统将重点从代码*运行的位置*转移到*谁*可以访问数据,引入了 **隔离**。它建立在 libdispatch 之上,通过 **actor** 添加编译时安全检查。 有三种隔离域:**MainActor**(用于 UI 更新,通过 `@MainActor` 强制执行)、**Actors**(保护可变状态,通过 `await` 访问)和 **nonisolated** 代码(选择退出隔离,可以从任何地方访问)。 新的 Xcode 项目默认采用简化的模型,`SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor` 和 `SWIFT_APPROACHABLE_CONCURRENCY = YES`,使并发更容易上手。可以使用 `@concurrent` 卸载 CPU 密集型工作。该系统优先考虑安全性,让编译器防止数据竞争,而不是依赖于手动且容易出错的解决方案。
curl 项目已从其源代码中移除 `strncpy()` 和 `strcpy()`,以提高安全性和代码可靠性。`strncpy()` 被认为存在问题,因为它可能导致非空终止和填充,因此倾向于完全复制或使用 `memcpy()` 进行显式错误处理。 虽然 `strcpy()` 具有更清晰的 API,但风险在于在长期开发周期内保持一致的缓冲区大小检查。为此,curl 引入了 `curlx_strcopy()`,一个自定义字符串复制函数,需要显式指定目标缓冲区大小和源字符串长度。这确保了复制*和*空终止符始终可以容纳,并使用 `memcpy()` 安全地实现。 虽然比 `strcpy()` 更冗长,但 `curlx_strcopy()` 提供了更严格的控制,并防止缓冲区大小检查的偏差。一个小的优点是减少了 AI 聊天机器人发出的错误安全警报,这些警报通常会将 `strcpy()` 标记为固有不安全——作者承认这场斗争不太可能长期获胜。
## 高效平面表示 本文详细介绍了一种简洁高效的代码表示平面(以及通常意义上的N维空间中的超平面)的方法。传统上,平面由法向量和平面内的一个点来定义。然而,作者证明仅存储法向量(`n`)和法向量与平面上任意一点的内积(`dot(n, o)`)就足够了。 这个`dot(n, o)`值表示原点到平面沿法向量方向的距离。这允许快速计算:从*任何*点到平面的距离都可以通过一个内积来找到。确定两个平面是否平行简化为检查它们的法向量的叉积是否为零。 该表示使用模板进行泛化,从而易于应用于二维直线。这种方法简化了平面操作,并通过将变换应用于法向量和平面上派生的原点来简化变换。
## loss32:基于Linux的Win32桌面
“loss32”项目旨在构建一个以原生运行Win32软件为中心的Linux发行版,利用WINE。其核心理念是通过利用现有的庞大.exe应用程序库,重现90年代末至2010年代初期的强大、用户友好的桌面体验,尤其针对创意专业人士。
与尝试*重新实现*Windows内核的ReactOS不同,loss32建立在稳定的Linux内核*之上*,利用WINE、ReactOS用户态的组件以及其他工具。这种方法旨在提供更好的硬件兼容性和稳定性,同时保留运行原生Linux软件的能力——这是ReactOS的局限性。
该项目认为Win32代表着一个非常稳定的应用程序二进制接口(ABI),拥有数十年的软件支持,填补了Linux/POSIX的空白,尤其是在创意领域。目标不仅仅是功能,而是通过在专用桌面环境中进行重点开发来改进WINE本身。
创建者正在寻求在打包、Wayland兼容性、WINE/ReactOS内部机制以及通用的Linux发行版专业知识方面的帮助。
美国国务院最近恢复使用Times New Roman作为标准字体,推翻了2023年改用Calibri的决定。鲁比奥部长以专业性、历史一致性以及对之前决定相关的“DEIA政治”的拒绝为理由,为这一改变辩护——这一举动符合当前政府更广泛的反DEIA议程。
然而,分析表明这种设计理由很薄弱。像Times New Roman这样的衬线字体的权威性很大程度上是*社会建构的*,而非内在的。Times New Roman本身是为报纸设计的,优先考虑实用性而非正式美学,并且通常被排版专业人士认为平庸。此外,最高法院和国会使用更具区分度的衬线字体。
虽然2023年选择Calibri旨在提高可访问性,但它并非专门为此目的而设计,并且在没有解决底层文档结构的情况下,提供的改进有限。最终,恢复使用Times New Roman似乎主要是出于政治动机,用可疑的历史主张掩盖了缺乏真正的设计考虑。这是一种回归熟悉默认值的行为,而不是对清晰度或传统的深思熟虑的选择。