2024 03 03 HackerNews

2024-03-03 Hacker News Top Stories #

一句话摘要 #

  1. Ente 是一个开源、跨平台的照片应用,提供端到端加密和多种照片管理功能,被用户视为 Google 照片的隐私友好替代品。
  2. WhatsApp 赢得了对 NSO Group 的法律战斗,迫使其分享 Pegasus 间谍软件的秘密代码,揭示了该软件监视用户的手段。
  3. 一篇关于 Bash 调试的漫画,讨论了在 Bash 脚本中使用调试技巧和工具,以及提高脚本质量和可维护性的方法。
  4. 加州公共事业委员会批准了 Waymo 在洛杉矶和旧金山半岛地区扩展其无人驾驶汽车服务的计划。
  5. FastUI 是一个工具,通过 Pydantic 模型和 TypeScript 接口定义用户界面,旨在帮助开发者更快速地构建更好的 UI。
  6. 美国国家气象局(NOAA)的 GitHub 页面提供了关于 NWS 公共数据 API 的文档和社区讨论,旨在改善天气数据的访问和使用。
  7. 一篇文章建议自由开源软件(FOSS)项目避免使用 Discord,因为它是一个专有平台,可能会限制社区的自由和包容性。
  8. 一篇文章讨论了 Kubernetes 服务网格的兴起和其带来的成本问题,指出企业在选择服务网格解决方案时需要仔细评估。
  9. 一篇文章分享了作者尝试在 Bash 中从头开始编写 Minecraft 服务器的经历,探讨了在 Bash 中处理二进制数据的挑战。
  10. Wintergatan Marble Machine 的视频展示了一台复杂的机械音乐装置,评论者对其设计和工程挑战表示赞赏。

Ente: Open-Source, E2E Encrypted, Google Photos Alternative #

https://ente.io/

Ente 是一个安全的、跨平台的、开源的、加密的照片应用,可以保护您的照片和视频。它提供自动备份、端到端加密、协作相册、家庭计划、库同步、一键导入、人工支持、锁定照片、动态照片、描述、私密分享、搜索等功能。

为什么选择 Ente:

私密性: Ente 采用端到端加密,保证您的数据只有您自己能够查看。

可靠性: Ente 是一个可靠的业务,通过用户订阅收入来存储数据的三份副本,其中一份存放在地下防核避难所。

多平台支持: 您可以在所有平台上可靠地查看、分享、组织和下载您的数据,保持原始质量。

人工支持: 您可以随时与团队联系,获得人工支持。

用户评价:

用户对 Ente 的端到端加密备份/同步、真正的多平台支持和完全开源表示赞赏。

用户发现 Ente 是一个适合替代 Google 照片的选择,尤其赞赏其注重隐私而不牺牲功能性。

用户对 Ente 的客户服务给予极高评价,团队响应迅速,解决问题效率高。

用户认为 Ente 是一个备份和组织照片的完美应用,同时赞赏其价格实惠和人性化支持。


HN 评论 229 comments | 作者:madmax108 | 15 hours ago #

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

评论中的观点可以总结为:

对于 Ente 的 CEO 发布的开源服务器表示兴奋和支持。

有用户希望 Ente 的营销宣传能更强调其具有原生移动应用程序,与自托管服务器通信。

有用户对 Ente 提供的功能感到兴奋,但希望能更容易地指向自托管服务器。

有用户对 Immich 团队建立的出色应用表示祝贺。

有用户关注在 iOS 上备份照片和慢动作视频的问题。

有用户提出了关于数据备份和恢复的问题。

有用户对 Ente 团队的工作表示赞赏,但也提出了一些技术上的疑问。

有用户对 Immich 应用的更新频率和稳定性表示担忧。

有用户分享了自己对 Immich 应用的使用经验和备份策略。


WhatsApp forces Pegasus spyware maker to share its secret code #

https://arstechnica.com/tech-policy/2024/03/whatsapp-finally-forces-pegasus-spyware-maker-to-share-its-secret-code/

WhatsApp 终于获准探索以色列 NSO Group 公司的 Pegasus 间谍软件的全功能,这是一个长期以来由以色列国防部守密的高度机密项目。

WhatsApp 指控 Pegasus 被用于监视 1,400 位用户,未经授权地获取其敏感数据,包括加密信息。NSO 最初试图阻止此诉讼中的所有发现工作,但未成功。

最近,NSO 输掉了另一场战斗,法院裁定 WhatsApp 可以获得有关 Pegasus 全部功能的信息。然而,NSO 不必透露其客户身份。审判将于 2025 年 3 月开始。


HN 评论 139 comments | 作者:Tomte | 1 day ago #

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

根据您提供的链接,这篇帖子中的评论观点主要包括:

美国情报机构可能仍在使用 Pegasus 间谍软件,尽管官方上已将其列入黑名单,可能会尝试以泄露机密信息或损害国家利益为由要求美国情报机构阻止案件。

美国情报机构更可能通过合作情报机构获取情报,而不是直接使用 Pegasus 软件,以避免法律风险。

FISA 法庭系统存在问题,可能会批准政府要求而不经过审查,缺乏公开透明度。

FISA 法庭虽然存在,但如果有政治意愿,仍可以进行改革。

FISA 法庭的审批可能过于宽松,缺乏监督和审查,可能成为强大机构的橡皮图章。

FISA 法庭的决定和论点可能不公开,导致缺乏监督和审查。

FISA 法庭的存在可能是为了避免情报机构涉入法庭和媒体,保持信息的机密性。


Bash Debugging #

https://wizardzines.com/comics/bash-debugging/


HN 评论 70 comments | 作者:ColinWright | 22 hours ago #

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

根据您提供的链接,这篇帖子中的评论观点可以归纳为:

提供调试技巧和工具链接。

建议在 Bash 脚本中使用调试日志和性能分析机制。

推荐使用 caller 内建函数打印堆栈跟踪。

建议使用 ShellCheck 进行脚本检查,并建议将脚本重写为其他语言以提高可维护性。

讨论在 CI/CD 工程中转换脚本语言的挑战。

分享关于使用 exit codes 和 helper functions 的技巧。

推荐使用各种工具和库来改善 Bash 脚本的质量和可读性。

讨论 Bash 作为默认脚本语言的原因,包括遗留和惯例。

讨论 Bash 在脚本编写中的实用性和稳定性。

推荐使用 ShellCheck 等工具来改善脚本质量。

以上是对帖子评论观点的中文摘要。


California Approves Waymo Expansion to Los Angeles and SF Peninsula [pdf] #

https://www.cpuc.ca.gov/-/media/cpuc-website/divisions/consumer-protection-and-enforcement-division/documents/tlab/av-programs/waymo-al-2-disposition-letter-20240301_signed.pdf

这份文件是关于加州公共事业委员会(CPUC)对 Waymo 公司的建议信(Advice Letter)0002 的处理情况。

文件信息:

文件标题:Waymo AL 2 Disposition Letter 20240301 发布日期:2024 年 3 月 1 日 发布机构:加州公共事业委员会(CPUC)

内容概要:

Waymo 公司提交了 Advice Letter 0002,寻求批准其更新的乘客安全计划(PSP)以及扩展其第一阶段无人驾驶自动车辆(AV)部署服务至洛杉矶和旧金山半岛地区。 CPUC 批准了 Waymo 的建议信,其中包括 81 份支持性回应和来自各方的抗议。 文件包含了 Waymo 的请求、抗议和回应、Waymo 的答复以及 CPUC 的处理情况。

审批结果:

CPUC 批准了 Waymo 的 Advice Letter 0002,允许其扩展无人驾驶 AV 服务的操作范围。 Waymo 的更新的 PSP 得到批准,以适应其扩展的操作设计领域(ODD)。

抗议与回应:

支持回应来自 81 个组织或个人,包括残疾人权利倡导者、社区组织、经济发展组织、学者、选举官员、劳工代表和交通倡导者。 抗议来自南旧金山市、圣马特奥县、洛杉矶交通部门、旧金山县交通管理局和旧金山出租车工人联盟等。

讨论:

文件涵盖了 Waymo 公司的扩展计划、安全措施、社区参与以及对公共安全和环境的影响。 CPUC 对抗议进行了评估,并认为抗议内容未能符合规定的抗议标准,因此未予采纳。

这份文件详细介绍了 Waymo 公司在扩展无人驾驶汽车服务范围方面的申请过程以及相关的抗议和回应情况。


HN 评论 397 comments | 作者:ra7 | 1 day ago #

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

这篇评论讨论了自动驾驶汽车与行人、自行车、摩托车等道路使用者之间的互动。

评论中有人认为自动驾驶汽车应该提供一种方式来模拟目光接触和直接的沟通信号,以提高行人和骑车者的安全感。另一些人则认为自动驾驶汽车已经非常了解周围环境,应该专注于提升安全性而不是增加外部沟通方式。

此外,也有人提到对于一些新兴自动驾驶汽车公司,可能存在更多的安全和 AI 决策方面的未知因素,因此不能简单地说所有自动驾驶汽车都比人类驾驶更安全。

最后,也有人分享了对 Waymo 和其他自动驾驶汽车公司的积极和负面经历,强调了自动驾驶汽车对生活质量的提升。


FastUI: Build Better UIs Faster #

https://github.com/pydantic/FastUI

FastUI 是一个由匹配的 Pydantic 模型和 TypeScript 接口组成的工具,允许您定义用户界面。这个界面在构建时由 TypeScript 和 pyright/mypy 进行验证,在运行时由 Pydantic 进行验证。FastUI 的核心是一组匹配的 Pydantic 模型和 TypeScript 接口,允许您定义用户界面。

RESTful 原则:

FastUI 是 RESTful 原则的一种实现,但不是通常理解的那种方式。它遵循 Roy Fielding 的博士论文中定义的原则,这个原则在 htmx.org 上的这篇文章中得到了很好的总结。RESTful 原则的核心是前端不需要(也不应该)了解您正在构建的应用程序的任何内容。相反,它应该只提供构建界面所需的所有组件,后端可以告诉前端该做什么。

其他信息:

FastUI 的目标是帮助用户更快地构建更好的用户界面。请注意,FastUI 仍然是一个正在积极开发中的项目,不要期望它已经完全完成。


HN 评论 161 comments | 作者:realsarm | 1 day ago #

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

根据您提供的链接,这篇帖子中的评论观点可以归纳为:

有人认为前端展示层不应与渲染代码紧密耦合,应使用模板语言,甚至建议从不同语言渲染模板。

有人提到使用不同系统编码逻辑范式到接口中,与传统 ORM 相比,这些系统完全不同。

有人认为如果团队完全精通 Python 并需要 Web UI,采用类似 FastUI 这样的工具比迅速提升 JavaScript 技能更容易。

有人分享了使用 FastUI 构建轻量级应用的经验,认为相比 Streamlit,FastUI 更快且更流畅。

有人讨论了 Streamlit 的一些不足之处,如状态管理不直观、需要进行 CSS/Markdown 调整、控制流程不灵活等。

有人推荐了 Shiny(Python 版本)作为 Streamlit 的替代品,认为其在响应式编程方面更出色。

有人提到了 Django 和 htmx 的优点,认为在处理基本 HTML 渲染方面表现出色。

有人讨论了各种前端框架对于渲染基本 HTML 的复杂性,以及与服务器的往返交互对用户体验的影响。

有人分享了对于使用类似 FastUI 这样的工具的看法,认为这些工具可以降低维护成本,简化技术栈,提高团队生产力。

有人提到了使用 Dart/Flutter 和 htmx 的经验,以及在部署网站方面遇到的问题。

有人讨论了将前端开发细节放入服务器端抽象的可行性,认为适用于一些应用场景,如管理 UI。

有人质疑每次客户端交互都需要与服务器往返的做法是否适合构建用户界面。

有人分享了使用 FastAPI 中文件上传功能的体验,认为 FastX 在当今很受欢迎。

有人提到了 Django Ninja,并询问其他人对其有无经验。

有人分享了对于类似 FastUI 这类工具的使用场景,认为适用于内部工具。

有人讨论了前端框架的优缺点,认为除了速度和性能外,FastUI 还是一个不错的选择。


Weather.gov 2.0 #

https://github.com/weather-gov/weather.gov

GitHub 上的 weather.gov 是美国国家气象局(NOAA)的国家气象服务。这个仓库包含了有关 NWS API 的社区讨论和文档。它提供了关于 NWS 公共数据 API(api.weather.gov)的常见问题解答,包括特定端点信息、网格点、报告问题等。用户可以在 GitHub 页面上浏览相关文档,并与其他开发人员以及 NWS API 开发团队进行连接。

此外,该页面还包含了免责声明,指出任何非政府资源、服务或服务提供商的列出或链接仅供用户方便,并不构成美国国家气象局、NOAA 或美国商务部对这些资源的推荐或认可。


HN 评论 86 comments | 作者:KoftaBob | 13 hours ago #

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

另一些评论提到了政府机构和大公司中存在的官僚主义问题,以及在这些环境中运作的挑战;

还有评论关注了新版网站的用户界面和功能,以及对现有功能的迁移是否在计划范围内;

有人提到了对天气数据的需求,以及希望新版网站能提供更多的 API 支持和定制化体验。


Don’t Use Discord for FOSS (2021) #

https://drewdevault.com/2021/12/28/Dont-use-Discord-for-FOSS.html

请不要在自由开源软件项目中使用 Discord

在这篇文章中,作者强烈建议不要在自由开源软件(FOSS)项目中使用 Discord。作者指出,使用 Discord 会将社区分割成两部分,一部分愿意使用专有的 Discord 客户端,另一部分则不愿意。这会将对自由软件热情的用户(即最热情的贡献者或潜在贡献者)排除在外,同时也排除了具有辅助功能需求的用户,因为专有的 Discord 客户端对他们来说通常难以使用。

此外,Discord 还拒绝为处于美国制裁下的国家(如伊朗)的用户提供服务。作者认为,选择 Discord 会排除社区中的穷人、残障用户以及使用新颖或不寻常操作系统或设备的用户。作者还指出,使用 Discord 会将聊天记录的所有权、设置有用机器人的权利以及根据自己的判断管理项目空间的权利保留给 Discord,而这些权利被拒绝给了用户。

作者认为,FOSS 社区无法共同合作创新专有客户端,或构建更适合他们需求的改进客户端,因为 Discord 坚持对体验拥有绝对控制。作者强调,选择使用 Discord 实际上是对其平台的认可,同时也是对 FOSS 平台的撤资。作者建议使用 SourceHut、Matrix 和 Zulip 等优秀的 FOSS 替代品。

文章还提到,大多数这些论点可以泛化,例如,如果项目依赖于专有基础设施,作者建议与合作者进行认真讨论。最后,作者强调选择对于 FOSS 生态系统的长期成功和所在生态系统的长期成功至关重要。文章最后呼吁选择明智。


HN 评论 199 comments | 作者:gvxvik | 18 hours ago #

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

  1. 对于使用 GitHub 和 Discord 的观点:

    • 使用 GitHub 和 Discord 会使项目更容易被人发现和参与,但这两个平台都是专有的,可能会违背自由软件的原则。
    • GitHub 是专有的,但至少是基于 git,便于迁移;Discord 则不具备搜索和归档功能,且内容容易丢失。
    • 一些人认为 FOSS 项目应该放弃便利性,坚守自由原则,但也有人认为自由包括使用便利。
    • Stallman 认为自由软件不仅符合原则,而且在功能和体验上也优秀,但他的观点可能偏见。
  2. 对于 FOSS 项目的用户体验(UX)和参与问题:

    • FOSS 在库和框架方面质量较高,但在用户端应用上存在严重的可用性问题,缺乏设计师等参与者的支持。
    • FOSS 项目很难取得市场份额领导地位,因为主要由开发者组成,缺乏其他利益相关者的参与和支持。
  3. 使用自由软件的意义和可持续性:

    • 自由软件支持者的行为影响着整个 FOSS 社区的自由度,使用专有软件可能会限制他人的自由。
    • FOSS 协议和客户端更有可持续性,避免了依赖专有技术或平台导致项目无法继续的风险。
  4. 对于使用 Discord 的看法:

    • Discord 可能不是最好的解决方案,用户很难跟上不同服务器和频道的聊天内容,可能会选择更适合的工具。
    • 对于替代 Slack 和 Discord 的观点,应该设计一个简单易用的平台,而不是过于复杂的加密和分布式系统。
  5. 结论:

    • 使用自由软件是为了保护整个 FOSS 社区的自由,同时也考虑到便利性和可持续性的平衡。
    • Discord 可能会面临类似 Freenode 的问题,但开源软件有更好的应对能力。

Wintergatan Marble Machine (2016) #

https://www.youtube.com/watch?v=IvUU8joBb1Q


HN 评论 73 comments | 作者:kaycebasques | 8 hours ago #

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

根据您提供的链接,这篇帖子中的评论观点可以总结为:

有关 Wintergatan Marble Machine 的评论:包括对艺术家的设计过程和工程角度的赞赏,以及对他重新设计机器的期待和兴奋。

对 Wintergatan 频道内容的评论:有人认为频道内容变得过于情绪化和沉重,不再像之前那样有趣和放松。

关于 Wintergatan 的工程挑战:评论涉及他对完美主义的挑战,以及他在设计和工程方面的努力和困难。

对 Wintergatan 的音乐和机械设计的评论:有人对他的音乐机器项目的音乐性能和机械设计提出了质疑和期待。

其他评论:还有一些评论涉及到 Wintergatan 的其他项目,比如 modulin 等,以及与他频道内容相关的其他创意音乐项目。


K8s Service Meshes: The Bill Comes Due #

https://matduggan.com/k8s-service-meshes/

文章作者 Mathew Duggan 在《K8s Service Meshes: The Bill Comes Due》中指出,随着 Kubernetes 的使用,安装服务网格成为首要建议之一。Kubernetes 中的所有内容默认对外开放,服务之间的流量未加密。为了加密流量并控制服务间通信,需要类似 JWT 和客户端证书的机制。服务网格的流行源于其实现强制加密、细粒度服务访问控制的简便方式,同时提供更好的监控和一些功能,如熔断和请求重试。随着 Kubernetes 部署规模的增长,服务网格从“nice to have”变为运营要求。

服务网格的功能:

  • 提供易于使用的服务间请求的指标
  • 自动加密所有请求并进行自动轮换
  • 确保仅接受加密请求
  • 在路由/服务/命名空间级别轻松设置网络隔离
  • 自动重试、全局超时限制、熔断等功能
  • 减少变更失败率

文章还介绍了几种服务网格解决方案,包括 Linkerd、Cilium、Istio、Consul Connect 以及云服务提供商的服务网格。作者提到,服务网格不再免费,各种解决方案都有不同的定价模式,需要企业仔细评估选择适合自身需求的服务网格方案。


HN 评论 212 comments | 作者:zdw | 19 hours ago #

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

有人认为服务网格的吸引力不明显,认为大部分功能已被 Kubernetes 覆盖,剩下的是节点间 VPN 和跟踪;

另一观点认为服务网格主要用于透明的 L7 ALB,特别适用于 gRPC 等长连接服务的负载均衡;

也有人认为服务网格对于拥有数千微服务的大型企业是必要的,但对于规模较小的公司可能有些过度;

有人指出,服务网格主要解决组织问题,而非技术问题;

一些人认为服务网格可能会成为可伸缩性瓶颈,但通过在 Pod 中运行“sidecar”容器来解决这个问题;

还有人质疑服务网格解决的问题是否已经被更标准化的技术解决;

有人讨论了加密流量的必要性和安全性问题;

也有人对 Kubernetes 的复杂性提出质疑,认为可能会考虑使用无服务器选项;

对于 Kubernetes 的价值增加,一些人认为它提供了一个可扩展的 API,为异构硬件提供了良好的抽象;

还有人讨论了 Helm 的使用和优势;

有人提到了社交媒体评论分析工具,如 Repustate IQ、Sprout Social、Agora Pulse 等,以及它们的功能和优势。


Writing a Minecraft server from scratch in Bash (2022) #

https://sdomi.pl/weblog/15-witchcraft-minecraft-server-in-bash/

《在 Bash 中从头开始编写一个 Minecraft 服务器》

这篇文章讨论了作者在过去一年中考虑在 Bash 中编写一个 Minecraft 服务器的想法。作者尝试过使用经典协议(2009 年的那个)编写过,但很快意识到在 Bash 中没有有效地解析二进制数据的方法。作者提到了 Bash 对空字节(0x00)的支持不足,以及在处理严格二进制协议时可能会严重破坏数据的问题。

作者提到了通过使用 dd 传递给 xxd 而不仅仅是 xxd 来读取字节的方法,以便可以微调要读取的字节数。作者还讨论了实现 Minecraft 服务器所需的一些核心协议概念,如 VarInts 和 VarLongs,以及一些实现中遇到的挑战,如 IEEE754 浮点数和 VarInt/VarLong 数字。

作者还分享了关于实现整数到 VarInt 的函数以及 IEEE 754 浮点数的困难经历。文章还提到了作者在实现 NBT 格式时遇到的一些问题,以及在实际编写服务器时遇到的挑战和解决方案。最后,作者分享了关于 Bash 在处理十进制数方面的困难,服务器的一些特点以及一些常见问题的 FAQ 部分。

这篇文章展示了作者在尝试在 Bash 中编写 Minecraft 服务器时遇到的技术挑战和解决方案,涵盖了协议实现、数据类型转换、性能优化等方面的内容。


HN 评论 29 comments | 作者:LorenDB | 8 hours ago #

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

根据您提供的链接,这篇帖子中的评论观点可以归纳为:

对使用 Bash 从头开始编写 Minecraft 服务器的技术表示印象深刻,认为 Minecraft 的自定义服务器仍然很重要,Java 版本的 Minecraft 支持广泛的免费内容更新和活跃的模组社区,还有人认为 Minecraft 的成功应该激励其他游戏工作室改变他们的开发方式。