2024 07 23 HackerNews

2024-07-23 Hacker News Top Stories #

  1. 乔·拜登宣布放弃民主党候选人提名,全力支持卡马拉·哈里斯对抗特朗普,引发关于政治家退休年龄限制的讨论。
  2. Jellyfin项目负责人称资金充足无需捐款,建议支持客户端开发者,社区对此反应不一。
  3. Rust中的Pin类型在异步编程中作用关键但使用复杂,作者计划改善其易用性。
  4. Jiff库提供高性能的日期时间处理,支持时区转换,计划发布1.0版本,用户对其API设计有不同看法。
  5. Brendan Gregg警告计算机系统崩溃风险,提议Windows采用eBPF技术预防内核驱动问题。
  6. Alexis King提倡“解析,而不是验证”的理念,通过类型系统确保数据有效性,提高代码质量。
  7. 研究人员发现新激素CCN3能增强骨密度,开发水凝胶贴片促进骨折愈合,引发激素替代疗法讨论。
  8. 文章质疑ChatGPT总结能力,指出其并未真正理解文本,呼吁谨慎使用大语言模型。
  9. 瑞安航空在美国法院赢得对Booking.com的屏幕抓取案,可能影响第三方订票网站行为。
  10. Eza作为ls命令的现代替代品,提供丰富功能和改进,如颜色区分、Git状态显示和安全修复,引起用户对日期显示格式的讨论。

Joe Biden stands down as Democratic candidate #

https://twitter.com/JoeBiden/status/1815087772216303933

在这条推文中,乔·拜登宣布他决定不接受提名,专注于他作为总统的职责,直到任期结束。他提到,自己在 2020 年作为党提名候选人时做出的第一个决定是选择卡马拉·哈里斯作为副总统,并称这是他做出的最佳决定之一。拜登表示,他全力支持卡马拉·哈里斯成为今年党提名候选人,并呼吁民主党团结一致,共同击败特朗普。


HN 热度 946 points | 评论 1682 comments | 作者:jsheard | 1 day ago #

https://news.ycombinator.com/item?id=41026741

  • 有人提到美国政治中,政治家不愿退休是一个两党共同面临的问题,建议设定年龄限制以促进新鲜血液的加入。
  • 另有观点认为,选民不愿意投票给现任者才是问题的根源,认为应改革竞选融资方式以打破现任者的优势。
  • 有评论指出,现行的初选和普选制度已经是对政治家的过滤,认为问题在于选民的选择。
  • 一些人提到,排名投票制度可以多样化候选人,但也有人担心这种制度会被迅速禁止。
  • 还有人认为,任期限制可能会导致政治经验的缺失,建议在任期内增加对政策的理解和掌握。
  • 讨论中提到,年龄限制和任期限制的设定应考虑到政治家的能力和经验,而不仅仅是年龄。
  • 有人认为,现行的两党制导致选民选择有限,建议探索更灵活的投票系统以增加候选人多样性。
  • 一些评论者认为,政治体制应允许中年人进入,而不是让老一辈的政治家长期占据权力。
  • 还有人提到,政治家应具备一定的年龄和经验,但也应设定上限以避免过于年长的候选人。
  • 最后,有人提到,民主制度的有效性在于能够非暴力地更换无能的官员,认为选民的选择是关键。

Jellyfin: We’re Good, Seriously #

https://forum.jellyfin.org/t-we-re-good-seriously

在 Jellyfin 论坛的帖子《We’re good, seriously》中,项目负责人 joshuaboniface 提供了关于捐款的更新。他表示,Jellyfin 在过去五年中积累了超过 24,000 美元的预算,而每月的平均开支仅约 600 美元,这意味着他们有超过三年的资金储备。因此,当前并不需要社区的捐款。

他建议社区成员将捐款转向他们使用的客户端的开发者,因为客户端的支持是 Jellyfin 生态系统中最困难的部分,通常由个人或小团队维护。随着即将发布的 10.9.0 和 10.10.0 版本,客户端开发者将面临更大的工作量,因此他们更需要支持。

joshuaboniface 强调,捐款并不违反 Jellyfin 的“无付费开发”政策,因为这些捐款只是自愿的支持,而不是为开发付费。他表示,直到项目的资金储备降到一年以下时,他们会重新评估情况。

帖子引发了一些社区成员的讨论,大家纷纷表示会考虑支持客户端开发者,并感谢 Jellyfin 团队的努力。


HN 热度 518 points | 评论 275 comments | 作者:bo0tzz | 15 hours ago #

https://news.ycombinator.com/item?id=41031998

  • 有人认为 Jellyfin 应该直接将收入分配给生态系统开发者,而不是要求停止捐款。
  • 认为将资金用于其他项目可能会分散注意力,并可能引发争议。
  • 有人支持 Jellyfin 的做法,认为透明度和资金使用的灵活性是重要的。
  • 认为捐款应该由捐赠者决定如何使用,而不是由项目维护者来决定。
  • 有人提到,Jellyfin 的开发者不想将项目变成工作,而是希望保持其作为爱好的性质。
  • 有人指出,重新分配资金可能会导致政治问题,选择“值得”支持的项目是复杂的。
  • 认为 Jellyfin 的做法是成熟的,因为他们有足够的资金支持项目运营。
  • 有人提到,捐款者可能会对资金的使用感到失望,如果他们的捐款被转移到其他项目。
  • 认为 Jellyfin 应该考虑如何更有效地使用资金来吸引更多的开发者。
  • 有人认为,Jellyfin 的开发者应该专注于核心项目,而不是管理资金分配。

Pin #

https://without.boats/blog/pin/

这篇文章讨论了 Rust 编程语言中的“Pin”类型及其在异步编程中的重要性。以下是详细摘要:

1. Pin 的概念 #

  • 基础构建块:Pin 是 Rust 异步生态系统的基础,旨在解决自引用结构体在内存移动时可能导致的无效引用问题。
  • 自引用问题:自引用结构体可能会在移动时指向无效内存,Pin 通过确保对象在某些状态下不被移动来解决这一问题。

2. Pin 的历史背景 #

  • 异步/等待的开发:在开发异步功能时,需要在 Future 中存储引用,尤其是自引用的情况。Pin 的出现是为了确保这些引用在对象状态变化时仍然有效。

3. Pin 的工作原理 #

  • 不可移动性:Pin 确保一旦对象进入“固定状态”,就不能再被移动。这一特性是通过 Pin 类型实现的,它包装了任何指针类型,确保目标对象在被引用时进入固定状态。
  • Unpin 特性:大多数类型不需要固定,因此 Rust 引入了 Unpin 特性,允许这些类型在不需要固定的情况下被移动。

4. Pin 的使用问题 #

  • 复杂性:尽管 Pin 解决了重要问题,但其使用复杂性较高,用户在与 Pin 交互时常常感到困惑。
  • API 限制:与普通引用相比,Pin 缺乏许多语法糖和内置支持,导致用户在使用时遇到困难。例如,Pin 不支持“重借用”,需要使用特定的 API 进行操作。

5. 未来的改进 #

  • 用户反馈:作者承认 Pin 的复杂性,并计划在后续文章中探讨如何改进 Pin 的使用体验,提出“固定位置”的概念。

6. 总结 #

  • 尽管 Pin 在 Rust 的异步编程中发挥了关键作用,确保了自引用对象的安全性,但其复杂性仍然是一个挑战。作者希望通过进一步的讨论和改进,使 Pin 的使用更加直观和易于理解。

这篇文章深入探讨了 Pin 的设计理念、实现方式及其在 Rust 中的重要性,同时也反映了开发者在使用过程中遇到的挑战。


HN 热度 447 points | 评论 101 comments | 作者:thunderbong | 1 day ago #

https://news.ycombinator.com/item?id=41029287

  • 有人认为 Pin 的官方文档不够清晰,导致理解困难,特别是关于 Pin 和 Unpin 的概念。
  • 有人建议使用生活中的类比来帮助理解 Pin 和 Unpin 的关系。
  • 许多开发者表示在实际编程中对 Pin 的理解不够深入,使用时往往是因为编译器的要求而被迫使用 Pin。
  • 一些评论认为 Pin 的概念本身模糊,缺乏明确的语义,导致用户困惑。
  • 有人指出,Pin 的意义在于防止指针目标被移动,除非目标类型实现了 Unpin。
  • 讨论中提到,Rust 的异步编程模型复杂,许多开发者在使用 Pin 时感到挫败。
  • 有人认为 Pin 的命名不够直观,可能导致误解,建议使用更具描述性的名称。
  • 还有人提到,Rust 的异步编程在某些情况下比其他语言的实现更复杂,可能需要重新思考设计。
  • 一些开发者希望 Rust 能够改进异步编程的体验,减少学习曲线。

Jiff: Datetime library for Rust #

https://github.com/BurntSushi/jiff

Jiff 是一个用于 Rust 的日期时间库,旨在帮助用户轻松处理日期和时间。该库的设计理念是提供高层次的日期时间原语,避免误用,并具备合理的性能。Jiff 支持与时区数据库的自动无缝集成,具备夏令时感知的算术运算和舍入功能,能够无损地格式化和解析时区感知的日期时间,并提供可选的 Serde 支持等多种功能。

主要特点: #

  1. 高层次的 API:Jiff 提供易于使用的 API,旨在减少用户在日期时间处理中的错误。
  2. 时区支持:支持 IANA 时区数据库,能够处理时区转换和夏令时。
  3. 性能优化:尽管 Jiff 的主要目标是易用性,但也注重性能,尽量减少不必要的开销。
  4. 文档和示例:提供详细的文档和示例代码,帮助用户快速上手。

使用示例: #

以下是一个简单的示例,展示如何解析 RFC 3339 格式的时间戳,将其转换为时区感知的日期时间,并进行时间的加法运算:

use jiff::{Timestamp, ToSpan};

fn main() -> Result<(), jiff::Error> {
    let time: Timestamp = "2024-07-11T01:14:00Z".parse()?;
    let zoned = time.intz("America/New_York")?.checked_add(1.month().hours(2))?;
    assert_eq!(zoned.to_string(), "2024-08-10T23:14:00-04:00[America/New_York]");
    Ok(())
}

安装与使用: #

用户可以通过在项目的 Cargo.toml 文件中添加 jiff 作为依赖来使用该库,或者直接运行 cargo add jiff 来快速添加。

未来计划: #

开发者计划在接下来的时间内对 Jiff API 进行迭代,预计在一年内发布 1.0 版本,以确保 API 的稳定性和长期支持。

许可证: #

Jiff 采用 MIT 或 UNLICENSE 双重许可证,用户可以根据自己的需求选择适合的许可证。

结论: #

Jiff 是一个功能强大且易于使用的 Rust 日期时间库,适合需要处理复杂日期时间逻辑的开发者。通过其高层次的 API 和良好的文档支持,用户可以快速上手并有效地管理日期和时间。


HN 热度 417 points | 评论 201 comments | 作者:goranmoomin | 19 hours ago #

https://news.ycombinator.com/item?id=41031037

  • 对于 Jiff 库的语法,部分用户认为 ToSpan 的用法有些奇怪,尤其是参数的顺序。
  • 有用户提到 Rust 的 parse() 方法是如何通过类型推断来工作的,且 Rust 的孤儿规则避免了库之间的冲突。
  • 讨论中提到 Rust 的 FromStr 特性是解析字符串为时间戳的关键,且多种解析方式是等价的。
  • 有人建议 Jiff 库在时间跨度的加法操作上可以更灵活,支持组件式加法。
  • 对于时间库的复杂性,有用户指出,处理时间和时区的细节是非常困难的,尤其是在分布式系统中。
  • 有人提到 Jiff 库的设计文档提供了很好的背景信息,帮助理解其设计选择。
  • 讨论中提到现有时间库在处理闰秒方面的不足,认为这影响了时间计算的准确性。
  • 用户对 Jiff 库的未来发展表示期待,认为其在 API 和时区支持方面有潜力。
  • 有人提到 Rust 标准库不应包含过多的库,以避免破坏现有的兼容性。
  • 讨论中提到命名参数的需求,认为这可以提高代码的可读性。

No More Blue Fridays #

https://www.brendangregg.com/blog/2024-07-22/no-more-blue-fridays.html

在 2024 年 7 月 22 日,Brendan Gregg 在其博客上发布了一篇名为《不再有蓝色星期五》的文章,讨论了计算机系统崩溃的风险及其未来的解决方案。

文章提到,2024 年 7 月 19 日,全球范围内的 Windows 计算机遭遇了严重的崩溃,导致医院、航空公司、银行和媒体等多个行业的服务中断。这次事件被称为信息技术史上最大的故障,原因是某安全公司对其广泛使用的产品进行的配置更新,导致内核驱动尝试读取无效内存,从而崩溃

Gregg 指出,Linux 系统的相关公司已经在采用 eBPF(扩展的伯克利包过滤器),这种技术能够防止此类崩溃。随着微软对 Windows 的 eBPF 支持逐渐成熟,Windows 安全软件也可以迁移到 eBPF,从而避免内核崩溃的风险。

eBPF 被描述为一个安全的内核执行环境,类似于浏览器中的安全 JavaScript 运行时。它通过软件验证器进行安全检查,确保程序不会导致系统崩溃。即使 eBPF 本身也存在一些管理代码的 bug,但修复这些 bug 将有助于提高所有 eBPF 供应商的安全性。

Gregg 还提到,除了 eBPF,还有其他方法可以降低软件部署的风险,如金丝雀测试和分阶段推出等。他强调,eBPF 作为一种软件解决方案,未来将在 Linux 和 Windows 内核中默认可用,企业在选择商业软件时应考虑将 eBPF 作为必要条件。

最后,Gregg 呼吁企业提高对 eBPF 的认识,以避免未来发生类似的全球性故障。文章的作者还包括来自 Isovalent 和 Google 的其他专家。


HN 热度 371 points | 评论 221 comments | 作者:moreati | 11 hours ago #

https://news.ycombinator.com/item?id=41033579

  • 对于微软的 eBPF 支持,评论者认为其在 Windows 上的实现尚不成熟,可能无法替代现有的内核级安全软件。
  • 有人指出,微软可能并不希望 eBPF 成为标准,可能会选择其他与.NET 集成的方案。
  • 评论中提到,微软在过去几十年里一直在努力解决内核中软件过多的问题,但方法可能不如 Unix 世界有效。
  • 另有观点认为,微软已经将大量代码移出内核,未来可能会进一步限制第三方内核模式代码的使用。
  • 有人提到,eBPF 的引入可能会使 Windows 的安全软件运行更为安全,但也有人对其实际效果表示怀疑。
  • 讨论中提到,eBPF 的设计使得不安全的代码无法执行,这可能会提高系统的稳定性和安全性。
  • 还有评论指出,微软在安全性方面的努力可能不足以解决根本问题,用户可能仍需依赖第三方安全软件。
  • 有人提到,eBPF 的引入可能会导致开发者面临新的挑战,尤其是在性能和兼容性方面。
  • 最后,评论者普遍认为,微软需要在安全性和用户体验之间找到更好的平衡。

Parse, Don’t Validate (2019) #

https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/

这篇文章的标题是《解析,而不是验证》(Parse, don’t validate),作者是 Alexis King。文章主要探讨了在类型驱动设计中,如何通过解析而非验证来处理数据,以提高代码的安全性和可维护性。

主要内容摘要: #

  1. 类型驱动设计的核心理念

    • 作者提出了一个简洁的口号:“解析,而不是验证”,强调在编程中应优先考虑解析数据,而不是仅仅验证输入的有效性。
  2. 静态类型系统的优势

    • 静态类型系统可以帮助开发者在编写代码时,明确函数的输入和输出类型,从而避免不必要的运行时错误。例如,Haskell 中的类型签名可以明确表示某个函数是否可以实现。
  3. 处理部分函数

    • 文章通过 Haskell 中的 head 函数示例,展示了如何将部分函数(如可能对空列表调用的 head)转变为总函数。作者通过引入 Maybe 类型来处理可能的空值,但指出这种方法在使用时会导致冗余检查,增加了代码复杂性。
  4. 使用非空列表类型

    • 作者介绍了 NonEmpty 类型,它可以确保列表至少有一个元素。通过使用 NonEmpty,可以消除对空列表的检查,从而简化代码并提高安全性。
  5. 解析与验证的区别

    • 验证函数(如 validateNonEmpty)只检查输入的有效性,而解析函数(如 parseNonEmpty)不仅检查输入,还返回更具体的类型信息。解析函数保留了输入的结构信息,使得后续处理更加安全。
  6. 避免“散弹枪解析”

    • 文章提到了一种编程反模式,即“散弹枪解析”,指的是将解析和验证逻辑混合在一起,导致代码难以维护和理解。作者强调,解析应在程序的边界处进行,以确保输入的有效性。
  7. 实践中的解析

    • 作者建议在设计数据结构时,选择能够自然表达有效状态的类型。例如,使用 Map 而不是列表来避免重复键的问题。通过这种方式,可以在类型系统中强制执行数据的有效性。
  8. 总结与反思

    • 最后,作者鼓励开发者在编写代码时,关注数据类型的设计,利用 Haskell 的类型系统来提高代码的安全性和可维护性。文章还推荐了一些相关的阅读材料,以帮助读者深入理解这些概念。

总之,文章强调了在编程中通过解析来处理数据的重要性,认为这种方法能够有效减少错误,提高代码的健壮性。


HN 热度 299 points | 评论 99 comments | 作者:revskill | 17 hours ago #

https://news.ycombinator.com/item?id=41031585

  • 文章强调“解析而非验证”的理念,认为在编程中应通过类型系统来确保数据的有效性,避免重复验证。
  • 强类型语言提供了更大的自由度,能够通过类型转换确保数据的合法性,减少错误。
  • 使用明确的类来表示不同状态的数据(如未验证、已验证的邮箱)可以避免混淆,提高代码的可读性和可维护性。
  • 许多开发者认为,过度验证已保证的属性会导致代码复杂化,违反 DRY 原则,增加维护难度。
  • 在动态类型语言中,依赖命名约定和程序员的自律来确保数据的有效性是一个挑战。
  • 文章的标题可能导致误解,许多人认为作者反对所有验证,实际上是讨论验证的时机和方式。
  • 强调在设计时应考虑到数据的状态,避免在业务逻辑中出现无效状态。
  • 解析和验证并非完全对立,解析过程中也应包含验证的步骤。
  • 文章提到的“隐式验证”可能在复杂系统中导致问题,明确的状态管理更为重要。
  • 许多评论者认为,类型系统的使用可以减少错误,提高代码的可靠性和可维护性。

Scientists discover a new hormone that can build strong bones #

https://www.ucsf.edu/news/2024/07/428011/scientists-discover-new-hormone-can-build-strong-bones

加州大学旧金山分校(UCSF)和加州大学戴维斯分校(UC Davis)的研究人员发现了一种新激素,称为母体脑激素(Maternal Brain Hormone,CCN3),该激素能够增强哺乳期女性的骨密度和强度。这一发现解决了一个长期以来的难题,即哺乳期女性在失去钙质以生产乳汁的情况下,如何保持骨骼的强健。

研究表明,CCN3 在哺乳期的女性小鼠大脑中特定神经元中产生,缺乏这种激素的小鼠会迅速失去骨量,且其幼崽体重下降,进一步确认了该激素在维持骨骼健康中的重要性。研究团队发现,通过增加 CCN3 的水平,可以显著提高年轻和老年小鼠的骨量和强度,尤其是在缺乏雌激素的情况下,CCN3 甚至能够使骨量增加一倍。

此外,研究人员还开发了一种水凝胶贴片,可以直接应用于骨折部位,缓慢释放 CCN3,促进骨折愈合。实验结果显示,该贴片能够有效促进老年小鼠的骨愈合,显示出 CCN3 在骨骼再生中的潜力。

未来,研究团队计划深入探讨 CCN3 的分子机制、在哺乳期女性中的水平,以及其在治疗各种骨骼疾病中的应用潜力。这项研究为治疗骨质疏松症和骨折提供了新的思路,尤其是针对女性在绝经后和其他高风险人群的骨骼健康问题。


HN 热度 269 points | 评论 96 comments | 作者:gmays | 7 hours ago #

https://news.ycombinator.com/item?id=41036462

  • 许多绝经后女性的骨质疏松问题根本原因是缺乏雌激素,医生应更多推荐激素替代疗法。
  • 激素替代疗法的风险在过去 5-10 年内被重新评估,改善生活质量的效果被认为是显著的。
  • 男性因睾酮转化为雌激素而在骨质疏松方面相对受保护,老年男性的雌激素水平通常高于绝经后女性。
  • 女性在力量训练方面的参与度较低,可能导致骨密度下降,过度的有氧运动也可能对骨密度产生负面影响。
  • 皮质醇在强度训练和有氧运动中都会释放,可能影响骨生长和重吸收。
  • 雌激素替代疗法可能增加女性癌症风险,但研究结果复杂,需具体分析分子类型。
  • 骨骼健康与整体健康密切相关,骨折可能导致严重的健康问题和生活质量下降。
  • 对于太空旅行,骨密度的保持至关重要,研究可能对未来的太空探索有帮助。
  • 研究表明,母乳喂养对骨骼的影响可能并不像传统观点所认为的那样显著。
  • 钙补充剂的必要性存在争议,健康饮食可能更为重要。
  • 研究中使用小鼠骨折模型,探讨新激素对骨愈合的影响,涉及伦理问题。

When ChatGPT summarises, it does nothing of the kind #

https://ea.rna.nl/2024/05/27/when-chatgpt-summarises-it-actually-does-nothing-of-the-kind/

这篇文章探讨了 ChatGPT 及类似大型语言模型(LLMs)在总结文本时的局限性。作者认为,尽管人们普遍期待这些模型能够有效地进行总结,但实际上它们并没有真正理解文本内容,而只是表面上看起来在进行总结。

文章的核心论点是,ChatGPT 在被要求总结时,实际上是在缩短文本,而不是进行真正的总结。真正的总结需要理解文本的核心思想和结构,而缩短文本则不需要这种深层理解。作者通过自己对一篇关于荷兰养老金系统变革的 50 页论文进行总结的经历,展示了 ChatGPT 生成的总结与原文之间的差距。

在对比中,作者发现 ChatGPT 的总结缺乏对论文中关键提议的准确反映,尤其是关于“利益相关者委员会”的提议完全被忽略。作者指出,ChatGPT 的总结往往包含一些模糊的陈述,而缺乏具体的、可操作的建议,这使得其总结的有效性受到质疑。

此外,作者还提到,ChatGPT 在处理复杂文本时,可能会因为其注意机制而错误地强调不重要的内容,从而抑制关键句子的表达。这种现象表明,LLMs 在总结时的表现受到其训练数据和上下文的双重影响,且在某些情况下,训练数据的影响可能会超过文本本身。

最后,作者对 LLMs 在商业应用中的可靠性表示怀疑,认为在许多情况下,它们的总结能力并不足以满足实际需求。文章呼吁人们对 LLMs 的能力保持谨慎态度,尤其是在需要准确理解和总结复杂信息的场合。


HN 热度 244 points | 评论 168 comments | 作者:josephcsible | 1 day ago #

https://news.ycombinator.com/item?id=41027658

  • 文章未提及使用的 GPT 模型,缺乏必要的信息让读者无法深入分析问题。
  • ChatGPT 在总结时往往只是缩短文本,而非真正理解和总结其核心内容。
  • 许多用户认为 ChatGPT 在处理特定任务时表现良好,但需要耐心和明确的提示。
  • 文章指出缩短与总结之间的语义差异,强调总结需要理解,而 ChatGPT 缺乏这种能力。
  • 有人认为,使用 AI 进行总结的有效性取决于具体的上下文和任务。
  • 对于 AI 生成的总结,用户应保持批判性思维,不能盲目相信其输出。
  • AI 在总结任务中存在的根本问题在于其输出的准确性和可靠性。
  • 许多评论者认为,AI 的总结功能在某些情况下仍然有用,尤其是在用户熟悉的内容上。
  • 对于 AI 的期待和实际表现之间存在差距,许多人对 AI 的能力持怀疑态度。
  • 文章缺乏严谨的实证研究,更多是基于个人经验的观察。

Ryanair wins screen scraping case against Booking.com in US court ruling #

https://www.rte.ie/news/business/2024/0719/1460807-ryanair-wins-us-court-case-against-bookingcom/

在 2024 年 7 月 19 日,美国特拉华州地方法院裁定,Booking.com 违反了《计算机欺诈和滥用法》,未经许可访问了瑞安航空(Ryanair)网站的部分内容。瑞安航空表示,此裁决将有助于结束第三方订票网站未经授权的屏幕抓取行为。

瑞安航空是欧洲最大的航空公司,近年来对未经授权转售其机票的第三方订票平台采取了一系列法律行动。这些公司使用屏幕抓取软件查找并转售机票,增加额外费用,并使航空公司难以联系乘客。陪审团一致认为,Booking.com 的行为是出于“欺诈意图”,并且诱使第三方未经授权访问瑞安航空的网站。

法院还驳回了 Booking.com 的反诉,认为瑞安航空没有诽谤该平台,也没有参与不正当竞争。Booking.com 对此裁决表示失望,并计划上诉,认为允许客户访问和比较旅行行业的票价有助于促进消费者选择。

瑞安航空首席执行官迈克尔·奥利里(Michael O’Leary)表示,此裁决有望结束在线旅行代理商(OTA)对航空公司和消费者的非法活动和额外收费。他希望这一裁决能促使英国和欧洲的消费者机构采取行动,禁止非法屏幕抓取和对航班及附加服务的过度收费。近期,瑞安航空还与多家在线旅行代理商签署了授权转售机票的协议。


HN 热度 242 points | 评论 230 comments | 作者:rodhan | 15 hours ago #

https://news.ycombinator.com/item?id=41031960

  • 有人认为这项裁决可能会被推翻,因为它与第九巡回法院关于 HiQ 与 LinkedIn 的判决相悖。
  • 讨论认为此案的关键在于代理人的欺骗行为,而非屏幕抓取本身。
  • 有评论指出,CFAA(计算机欺诈和滥用法)并不适合用于此案,认为法院的论点较弱。
  • 一些人认为裁决可能会影响 Booking.com 及其他类似服务的未来。
  • 有观点认为,Ryanair 希望通过此案限制竞争,以便获得更高的利润。
  • 讨论中提到,Ryanair 的商业模式依赖于通过复杂的购买流程进行附加销售。
  • 有人提到,航空公司与在线旅行代理商(OTA)之间的关系复杂,OTA 的存在可能会影响消费者的选择。
  • 还有评论指出,航空公司在定价和服务方面的透明度不足,导致消费者在选择时面临困惑。
  • 有人提到,Ryanair 的诉讼可能会影响未来的 AI 训练数据抓取案件。
  • 讨论中提到,消费者在使用 OTA 时可能会面临额外费用和服务问题。

Eza: A modern, maintained replacement for ls #

https://github.com/eza-community/eza

该 GitHub 项目“eza”是一个现代化的、维护良好的命令行工具,旨在替代 Unix 和 Linux 操作系统中传统的文件列表命令“ls”。以下是该项目的详细摘要:

项目概述 #

  • 名称: eza
  • 功能: 提供比传统 ls 命令更多的功能和更好的默认设置。
  • 特点:
    • 使用颜色区分文件类型和元数据。
    • 支持符号链接、扩展属性和 Git 状态。
    • 体积小、速度快,只有一个单一的二进制文件。

主要功能 #

  • 修复了在 exa 2021 中引入的“网格错误”。
  • 支持超链接。
  • 显示挂载点的详细信息。
  • 输出 SELinux 上下文。
  • 显示 Git 仓库状态。
  • 提供人类可读的相对日期。
  • 多项安全修复。
  • 支持明亮的终端颜色。
  • 其他小的 bug 修复和改进。

安装与使用 #

  • 平台: 支持 Windows、macOS 和 Linux。
  • 安装说明: 具体的安装步骤可以在 INSTALL.md 文件中找到。
  • 命令行选项: eza 的选项与 ls 的选项有相似之处,但也有不同,详细的使用文档可以通过 man eza 命令访问。

贡献与社区 #

  • 项目遵循“贡献者公约”,希望参与者遵循相关的行为规范。
  • 有关贡献的详细信息可以在 CONTRIBUTING.md 中找到。

其他信息 #

  • 语言: 主要使用 Rust 编写。
  • 活跃度: 项目有 9500 多个星标和 171 个分支,显示出较高的社区参与度。

结论 #

eza 是一个功能丰富且用户友好的命令行工具,旨在为用户提供更好的文件管理体验。如果你对命令行工具感兴趣,eza 值得一试。


HN 热度 240 points | 评论 193 comments | 作者:alexzeitler | 18 hours ago #

https://news.ycombinator.com/item?id=41031112

  • 有人对“人类可读日期”表示不满,认为在目录列表中显示具体的日期和时间更为重要。
  • 许多人认为在 GitHub 等平台上,显示相对时间而非具体时间会导致混淆,尤其是在寻找特定提交时。
  • 有人提到可以通过用户脚本或书签来替换相对日期为具体日期,以提高可读性。
  • 对于移动设备用户,无法悬停查看具体时间是一个问题,应该提供更直接的信息。
  • 一些用户认为相对时间在快速浏览时更方便,尤其是在社交媒体和评论区。
  • 有人指出,许多网站故意隐藏发布日期,可能是为了让内容看起来更相关。
  • 讨论中提到了一些现代命令行工具的替代品,用户分享了他们的使用经验和偏好。
  • 有人提到“eza”作为“ls”的现代替代品,强调了其维护状态和功能。
  • 讨论中提到的工具和功能包括 Git 集成、颜色高亮等,用户分享了各自的使用习惯和技巧。
  • 有人对“eza”的命名和使用表示疑虑,认为与传统的“ls”相比,使用习惯可能会受到影响。