每日HackerNews RSS

你需要启用 JavaScript 才能运行此应用。

黑客新闻 新 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 Hive (YC S14) 正在招聘数据系统软件工程师 (ashbyhq.com) 1天前 | 隐藏 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请YC | 联系 搜索:

## 马航370:十年后,新的搜索开始 马来西亚航空公司MH370航班,载有239人,于2014年3月8日从吉隆坡飞往北京途中失踪,成为航空史上最大的谜团之一。 尽管在南印度洋进行了两次大规模但未果的搜索——耗资超过2亿美元——由海洋机器人公司海洋无限公司领导的新的“找不到不收费”搜索正在进行中。 初步调查显示,飞机严重偏离航线,飞越马来西亚和苏门答腊后向南转弯。 它的应答器被故意关闭,阻碍了追踪。 虽然确认来自飞机的残骸已漂流到非洲和印度洋,但主要残骸仍未找到。 海洋无限公司的新搜索利用了改进的声纳和分析技术,重点是定位更大的、完整的部件,如发动机。 专家承认这一巨大的挑战——即使知道泰坦尼克号的位置,也花了近一个世纪才找到它。 2018年的一份报告表明,飞机的控制权可能被操纵,但原因和责任方仍然未知,引发了无数阴谋论。 一份完整的调查报告将于7月30日公开发布。

## 马航370:新的搜索与持续的谜团 一项新的搜索正在进行,旨在为马来西亚航空公司370号航班的239名乘客家属提供答案。该航班于2014年失踪。这次失踪引发了无数的理论,其中一个主要理论认为,飞行员扎哈里·艾哈迈德·沙阿机长故意偏离航线,并可能使客舱失压,导致其他所有人员死亡。证据包括修改后的飞行模拟器数据显示航线飞越印度洋,机上额外燃料以及机组人员的氧气供应。 讨论的重点在于飞行员是否故意为之——可能出于自杀或隐藏的动机——以及原因。马航370号航班失事后,航空公司曾短暂强制要求始终有两人在驾驶舱内(在德国之翼航空空难之后),但许多航空公司已恢复到单人驾驶舱协议。人们仍然担心飞行员的心理健康和报告问题,以及缺乏实时飞机跟踪。一些人猜测美国或中国海军可能参与其中或知情,但确认信息仍然难以捉摸。尽管已经过去十年,关于*为什么*的核心问题仍然没有答案,这推动了持续的调查和辩论。

一个黑客新闻的讨论围绕着并发哈希表的設計和潜在的竞争条件。 初始帖子链接到一个文章 (bluuewhale.github.io) 详细描述了这些问题。 一种常见的、看似简单的实现方式,使用受单个互斥锁保护的 `get()`、`put()` 和 `remove()` 方法,被指出容易在获取和设置值之间发生竞争条件。 提出了替代方案,包括使用函数式修饰符(`modify()`、`modifyMany()`)的 API,以更安全地处理更新。 讨论还指出了 .NET 的 `GetOrAdd()` 方法中的一个类似陷阱——虽然线程安全,但不是原子性的,可能在使用于缓存昂贵操作时导致“踩踏”问题。 用户报告链接文章存在格式问题,原因是浏览器扩展程序(如 1Password),并提出了解决方法(禁用扩展程序或使用阅读视图)。

到1902年,大英帝国拥有“红线”,这是一个非凡且具有韧性的全球海底电报通讯网络。这个网络环绕地球,能够快速传递信息——几分钟到几小时,并且在电缆被切断时自动重新路由。 它的优势在于冗余性;多条电缆连接着关键地点,使得完全中断变得极其困难。军事评估确定敌人需要切断57条电缆才能孤立英国,15条才能孤立加拿大,7条才能孤立南非。 至关重要的是,帝国在电缆生产和维修方面是自给自足的,并拥有无与伦比的海军来保护这一重要的基础设施。迈克尔·德洛奈博士强调,这个系统是大英工程和战略远见卓识的证明,确保了在其广阔殖地范围内安全可靠的通讯。

## 大英帝国的海底电报网络:摘要 一篇Hacker News的讨论强调了大英帝国的海底电报网络的非凡韧性和影响力。这个网络是互联网的前身,实现了远距离的近乎即时通信,从根本上改变了全球贸易、金融,甚至时间与隐私的概念。 这次讨论引发了进一步阅读的推荐,包括尼尔·斯蒂芬森的《母地球,母板》和汤姆·斯坦德奇的《维多利亚时代的互联网》,它们详细描述了这个早期通信系统的社会和技术影响。 除了技术成就之外,讨论还涉及了网络建设的人力成本,特别是古塔胶的生产中使用的童工,古塔胶是电缆的关键绝缘材料。网络的战略重要性也被指出,它影响了像一战这样的事件,并影响了基础设施的发展,例如中继站催生了像澳大利亚爱丽丝泉这样的城镇。人们也进行了现代类比,反思革命性技术常常会引发兴奋和怀疑,这与今天对LLM等进步的反应相呼应。

启用 JavaScript 和 Cookie 以继续。

## 数据中心担忧与人工智能投资 – 摘要 最近一篇 Axios 文章,在 Hacker News 上讨论,强调了对数据中心潜在过度建设的日益增长的担忧,让人联想到互联网泡沫时期。核心担忧是“建设起来他们就会来”的策略可能无法实现,特别是如果超大规模企业继续拥有和运营自己的设施,而不是依赖第三方提供商。 讨论线程显示人们对当前繁荣的可持续性表示怀疑,并将其与过去的泡沫(如铁路狂潮和光纤过度建设)进行比较。许多评论员指出,当前数据中心的建设具有专业性——高度关注用于人工智能的 GPU 容量——如果人工智能的热潮降温,这可能是一个潜在的弱点。 人们讨论了这些设施的替代用途,包括将现有基础设施用于海水淡化、水培,甚至恢复到更通用的计算需求。一些人认为,未来过剩的容量可能会降低成本,从而可能实现自托管和云游戏。一个反复出现的主题是资本错配以及对电价和更广泛经济的潜在影响。

## 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 密集型工作。该系统优先考虑安全性,让编译器防止数据竞争,而不是依赖于手动且容易出错的解决方案。

## Swift 并发:可访问性与复杂性的讨论 一篇关于“易于理解的 Swift 并发”的文章引发了 Hacker News 上关于该语言并发特性的讨论。许多人欣赏 Swift 与 Go 在类似任务(如获取和解码数据)方面的更简洁语法,但一些经验丰富的开发者认为这种简洁性可能会产生误导。实际的 Swift 代码通常需要更强大的错误处理,使其比最初的示例更冗长。 这次对话凸显了易于理解的并发理想与生产代码的实际复杂性之间的矛盾。尽管 Swift 具有安全特性,但人们对潜在的死锁和线程耗尽表示担忧。一些人认为,大量的新关键字和概念会增加认知负担。 另一些人则为 Swift 辩护,指出其 actor 模型以及融合命令式和声明式风格的优势。一个关键点是,Swift 的并发旨在有效利用多核处理器,这对于现代设备来说是一个显著的优势。最终,这场讨论强调了在并发编程中平衡表达力、安全性和可维护性的挑战。

curl 项目已从其源代码中移除 `strncpy()` 和 `strcpy()`,以提高安全性和代码可靠性。`strncpy()` 被认为存在问题,因为它可能导致非空终止和填充,因此倾向于完全复制或使用 `memcpy()` 进行显式错误处理。 虽然 `strcpy()` 具有更清晰的 API,但风险在于在长期开发周期内保持一致的缓冲区大小检查。为此,curl 引入了 `curlx_strcopy()`,一个自定义字符串复制函数,需要显式指定目标缓冲区大小和源字符串长度。这确保了复制*和*空终止符始终可以容纳,并使用 `memcpy()` 安全地实现。 虽然比 `strcpy()` 更冗长,但 `curlx_strcopy()` 提供了更严格的控制,并防止缓冲区大小检查的偏差。一个小的优点是减少了 AI 聊天机器人发出的错误安全警报,这些警报通常会将 `strcpy()` 标记为固有不安全——作者承认这场斗争不太可能长期获胜。

## 黑客新闻讨论:`strcpy` 的问题与 AI 生成的漏洞报告 一场黑客新闻讨论围绕着 C 函数 `strcpy` 持续存在的问题以及低质量、AI 生成的漏洞报告激增。核心论点是,即使在现代 CPU 上,`strcpy` 本身也不安全且效率低下,应避免使用。 许多评论者提倡采用长度检查的字符串处理方式,或者理想情况下,完全放弃以空字符结尾的字符串,模仿大多数其他现代语言的做法。 讨论的重要部分集中在涌入的大量自动化漏洞报告上,这些报告通常由 AI 标记,将 `strcpy` 识别为漏洞,但缺乏适当的上下文或有效的利用证明。 这些“垃圾报告”浪费了维护者的时间,并凸显了激励性低质量安全提交的更广泛问题。 尽管人们承认存在危险,但有人指出 C 语言的持续流行以及广泛代码更改的实际挑战。 另一些人建议使用现有的、更安全的字符串库,如 `bstring`,或采用像 Rust 的字符串处理方式这样的现代替代方案。 最终,这场对话强调了在 C 语言中持续需要更安全的字符串操作实践,以及对安全漏洞报告采取更明辨的态度。

## 高效平面表示 本文详细介绍了一种简洁高效的代码表示平面(以及通常意义上的N维空间中的超平面)的方法。传统上,平面由法向量和平面内的一个点来定义。然而,作者证明仅存储法向量(`n`)和法向量与平面上任意一点的内积(`dot(n, o)`)就足够了。 这个`dot(n, o)`值表示原点到平面沿法向量方向的距离。这允许快速计算:从*任何*点到平面的距离都可以通过一个内积来找到。确定两个平面是否平行简化为检查它们的法向量的叉积是否为零。 该表示使用模板进行泛化,从而易于应用于二维直线。这种方法简化了平面操作,并通过将变换应用于法向量和平面上派生的原点来简化变换。

这个Hacker News讨论围绕着一种处理任意维度平面的一种新方法。核心思想,详见链接文章(gpfault.net),是将点定义为超平面的交点。 一个关键优势是优雅地处理平行线——它们自然地定义了“无穷远点”,无缝地融入几何运算。这个概念源于**射影几何代数**,它为此方法提供了一个框架。 此外,讨论指出,对该系统的修改可以导向**保形几何**,将所有事物定义为球面的交点。本质上,平面可以被看作中心位于无穷远的球面。Eigen库也使用一个二次方程在3D空间中实现了类似的表示。

## 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发行版专业知识方面的帮助。

Hacker News新 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交登录 [重复] Win32 是稳定的 Linux ABI (loss32.org)166 分 krautburglar 1 天前 | 隐藏 | 过去 | 收藏 | 1 条评论 tomhow 1 天前 [–] 评论已移动至 https://news.ycombinator.com/item?id=46424173.回复 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:

美国国务院最近恢复使用Times New Roman作为标准字体,推翻了2023年改用Calibri的决定。鲁比奥部长以专业性、历史一致性以及对之前决定相关的“DEIA政治”的拒绝为理由,为这一改变辩护——这一举动符合当前政府更广泛的反DEIA议程。 然而,分析表明这种设计理由很薄弱。像Times New Roman这样的衬线字体的权威性很大程度上是*社会建构的*,而非内在的。Times New Roman本身是为报纸设计的,优先考虑实用性而非正式美学,并且通常被排版专业人士认为平庸。此外,最高法院和国会使用更具区分度的衬线字体。 虽然2023年选择Calibri旨在提高可访问性,但它并非专门为此目的而设计,并且在没有解决底层文档结构的情况下,提供的改进有限。最终,恢复使用Times New Roman似乎主要是出于政治动机,用可疑的历史主张掩盖了缺乏真正的设计考虑。这是一种回归熟悉默认值的行为,而不是对清晰度或传统的深思熟虑的选择。

更多

联系我们 contact @ memedata.com