2024 03 12 HackerNews

2024-03-12 Hacker News Top Stories #

一句话摘要 #

  1. JSON Canvas – An open file format for infinite canvas data是一个开放文件格式,旨在为无限画布应用程序创建的数据提供长期性、可读性、互操作性和可扩展性。
  2. LocalSend是一个免费、开源、跨平台的文件共享工具,可以实现快速的局域网端对端传输。
  3. 蒙特卡洛图搜索(Monte-Carlo Graph Search)的文档介绍了一种新的图搜索算法,旨在提高效率和可扩展性。
  4. Python的Pull Request允许通过环境变量或命令行选项禁用全局解释器锁(GIL),以提高多线程程序的性能。
  5. 《Flowers for Algernon》通过主人公查理·戈登的日记条目讲述了他接受智力提升手术后的心理变化和社会观念的冲突。
  6. Paul Graham的文章“最佳文章”探讨了写作高质量文章的过程,强调了发现新想法的重要性。
  7. “Perf Is Not Enough”讨论了数据库性能评估的局限性,强调了用户体验、易用性等因素的重要性。
  8. GrapheneOS通过ARM MTE发现了Android 14 QPR2中蓝牙LE的内存损坏漏洞,并正在开发修复方案。
  9. Airbnb宣布将禁止室内安全摄像头的使用,以保护租客的隐私权。
  10. Timelock.dev提供时间锁加密服务,允许用户将信息加密并发送到未来的特定时间。

JSON Canvas – An open file format for infinite canvas data #

https://jsoncanvas.org/

https://jsoncanvas.org/ 是一个关于无限画布数据的开放文件格式。

无限画布工具是一种以空间方式查看和组织信息的方式,类似于数字白板。无限画布鼓励自由和探索,并已成为许多应用程序中流行的界面模式。JSON Canvas 格式的创建旨在为使用无限画布应用程序创建的数据提供长期性、可读性、互操作性和可扩展性。该格式旨在易于解析,并使用户拥有对其数据的所有权。JSON Canvas 文件使用 .canvas 扩展名。

JSON Canvas 最初是为 Obsidian 创建的。JSON Canvas 可以自由实现为任何应用程序或工具的导入、导出和存储格式。该网站及所有与 JSON Canvas 相关的资源均在 MIT 许可下开源。


HN 评论 95 comments | 作者:nickmain | 5 hours ago #

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

  • 评论中提到 JSON Canvas 规范较为保守,适合文档存储,相比 XML/SVG 更易处理;
  • 有人认为规范过于简洁是好事,类似 Obsidian 的 Markdown 文件,轻量且便于扩展;
  • 建议规范应明确节点排序、线条形状、节点关系等,以提高可扩展性;
  • 讨论了使用 JSON 还是 YAML,以及 SQLite 的优劣;
  • 有人认为 SQLite 对于这种应用数据存储可能过于复杂,而 JSON 更适合;
  • 评论提到 SQLite 的数据完整性、性能等优势,但也指出 JSON 更适合版本控制和协作;
  • 讨论了 SQLite 在不同编程语言中的使用复杂性,以及 JSON 和 SQLite 在不同场景下的适用性。

LocalSend: Open-source, cross-platform file sharing to nearby devices #

https://localsend.org

LocalSend 是一个免费、开源、跨平台的文件共享工具,可以将文件分享到附近的设备。

该工具支持 Windows、Mac、Linux、Android 和 iOS 等多个平台,实现快速的跨平台局域网端对端传输。

LocalSend 的开发者为 Tien Do Nam 和 Localsend 贡献者,其代码遵循 MIT 许可证。网站声明与提供的服务与所提及的品牌无关,所有商标、标识和品牌名称均归其各自所有者所有,仅供信息目的使用。


HN 评论 147 comments | 作者:alexzeitler | 1 day ago #

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

可以总结如下:

    1. LocalSend 跨平台文件共享工具易用,但存在一些 bug,如在 Windows 和 Linux 上可能导致系统无法休眠;
    1. 有人提到 Flutter UI 框架的工作原理和优缺点;
    1. 有用户表示 LocalSend 是跨平台、非专有的本地文件共享软件;
    1. 有人分享了类似服务的 Web 版本,但存在浏览器文件大小限制;
    1. 有人讨论了 AirDrop 的优势和竞争对手;
    1. 有人提到 LocalSend 的隐私政策和服务条款引发争议;
    1. 有人比较了 LocalSend 和其他类似工具的传输速度和问题;
    1. 有人讨论了 Bluetooth 和 WiFi 在文件传输中的作用。

Monte-Carlo graph search from first principles #

https://github.com/lightvector/KataGo/blob/master/docs/GraphSearch.md

这个文档介绍了关于蒙特卡洛图搜索(Monte-Carlo Graph Search)的内容。传统的蒙特卡洛树搜索(MCTS)通常用于树形结构,但在图形结构中实现起来比较困难。文档提出了一种更直观、更清晰的图搜索算法,从基本原理出发解释了为什么图搜索需要以这种方式工作,并揭示了一些额外的可能的实现选择。

文档讨论了在游戏树搜索或其他树搜索应用中,通常会发现多个可能的移动序列转换为相同状态的情况,以及如何在图中共享计算以减少搜索成本。此外,文档还探讨了如何将状态空间建模为有向无环图(DAG),以及如何在 DAG 上应用 MCTS 算法可能会导致不稳定的结果。

最后,文档提供了一些现代理论观点,解释了为什么 MCTS 实际上是一种在线策略学习算法,以及如何从这个角度推导正确的泛化方法。


HN 评论 24 comments | 作者:bumbledraven | 1 day ago #

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

  • 有人认为需要在 AI 推理中采用这种图探索方法,提到了 Zobrist 哈希和语言状态描述的哈希;
  • 另一观点认为应该联合学习状态表示和搜索算法,提到了 DeepMind 的 Genie 项目;
  • 有人提出简化方法,建议构建 Merkle 树来表示论点的哈希;
  • 有人怀疑 Monte-Carlo Tree Search 中是否存在随机性;
  • 有人讨论 MCTS 中的随机性和 NN 评估的关系;
  • 有人指出 MCTS 实际上是确定性的,因为使用了 NN 评估代替随机模拟;
  • 有人提到 MCTS 的特殊性,使用了神经网络作为启发式方法;
  • 有人讨论 Monte Carlo 方法的收敛性和资源消耗;
  • 有人评论文章对图搜索方法的探索,认为作者理解透彻;
  • 有人强调图搜索方法节省了计算和内存,转换了树为有向无环图。

gh-116167: Allow disabling the GIL #

https://github.com/python/cpython/pull/116338

这个 Pull Request 是关于在 Python 中允许通过 PYTHON_GIL=0 或 -X gil=0 来禁用全局解释器锁(GIL)。在自由线程构建中,现在可以通过设置这些环境变量来禁用 GIL。该 PR 还跟踪了后续工作,以在加载不兼容的扩展时重新启用 GIL,并在默认情况下禁用 GIL。

为了支持在运行时重新启用 GIL,所有与 GIL 相关的数据结构都会像往常一样初始化,禁用 GIL 只是在启动时设置一个标志,导致 take_gil() 和 drop_gil() 提前返回。

通过设置 PYTHON_GIL=0,作者对一些不使用线程的测试和小程序进行了抽样检查,它们似乎都可以正常运行,而一些基本的多线程程序也能工作,但在尝试运行完整的测试套件时会很快崩溃,特别是在 test_asyncio 中。

该 PR 还包括了添加 -X gil 选项的工作,并对环境变量进行了相应的修改。最终,该 PR 被合并,以便在 Python 中可以更灵活地管理 GIL 的状态。


HN 评论 158 comments | 作者:freediver | 6 hours ago #

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

  • 有关 Python GIL 的讨论,包括 biased reference counting 和 ownership transfer 的实现方式;
  • 对于多线程 Python 的性能提升可能不会太大,因为大多数对象只被单个线程访问;
  • 期待看到 Python 性能提升,提到了一些工具如 Mojo、pytorch、triton、numba、taichi;
  • 对于 Mojo 和 Taichi 的评价,以及对 Python 生态系统的影响;
  • 讨论了 C++ 对 C 的影响,以及对 Java 学习曲线的担忧;
  • 讨论了 Python GIL 的影响,以及去除 GIL 对 Python 多线程编程的影响;
  • 讨论了 Python 多线程编程的困难性,以及去除 GIL 后的潜在好处;
  • 讨论了 Python 多线程编程在性能和易用性方面的挑战;
  • 讨论了 Python 多线程编程与其他语言的比较,以及不同语言对多线程的处理方式。

Flowers for Algernon (1965) [pdf] #

https://www.sdfo.org/gj/stories/flowersforalgernon.pdf

《Flowers for Algernon》这个故事的信息。这个故事通过主人公查理·戈登(Charlie Gordon)写的一系列日记条目来讲述。查理是一个智商只有 68 的男人,从事一份卑微的工作。

故事主要讲述了查理接受了一项实验性手术,使他的智力得到提升,但随着他变得越来越聪明,他开始意识到周围人对他的态度和看法发生了变化。

这个故事涉及到智商、人性、社会观念等深刻的主题,引人深思。希望这些信息能帮助您对这个故事有更多的了解。


HN 评论 226 comments | 作者:xNeil | 10 hours ago #

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

这篇帖子中的评论观点归纳如下:

    1. 对失智症的恐惧,包括失去记忆、理智能力和个性,以及独立性的消失;
    1. 对智力和个人优秀价值的看法,强调应重视个人优秀而非仅仅智力;
    1. 失去智力并非可怕,失智症才是,因为其带来的痛苦和人格消失;
    1. 大脑模型与人类思维之间的相似性;
    1. 对老年时失去智力的观点有异议;
    1. 认为大脑发育不会在 25 岁停止;
    1. 对安乐死和自主选择死亡的讨论;
    1. 对失智症患者和照顾者的观点,包括痛苦和困难;
    1. 对失智症患者的内心体验和外界观察者的看法;
    1. 对失智症患者的生活质量和家人的困境的讨论。

The Best Essay #

https://paulgraham.com/best.html

这篇名为"The Best Essay"的文章由 Paul Graham 于 2024 年 3 月撰写。尽管标题是“最佳文章”,但作者的目标并非写出最佳文章,而是探讨最佳文章应该具备的特质。作者认为最佳文章不仅要写得好,更重要的是内容。一个好的文章必须具有令人惊讶的内容,要告诉读者一些他们之前不知道的事情。最佳文章应该涉及最重要的主题,并向人们揭示一些令人惊讶的事实。

文章指出,写作最好的文章是一种发现思想的方式。开始写作时,应该从一个问题开始,这个问题可能并不完整或正确,但通过不断重写和反思,可以逐渐完善。作者建议在写作过程中要保持严格,因为发现自己的回答与真相之间的差距通常会带来新的想法。

此外,文章还探讨了如何选择写作的主题以及如何在写作过程中发现新的想法。作者认为,写作关于永恒重要性的主题是一种广泛适用性的写作方式,而广泛适用性和新颖性是写作过程中追求的目标。

总的来说,这篇文章探讨了写作最佳文章的过程,强调了发现新想法的重要性,以及如何通过广泛的提问和精确的回答来提高文章的质量。


HN 评论 217 comments | 作者:tosh | 1 day ago #

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

  • 有评论认为文章没有参考任何已经写过的伟大文章,类似于大学英语系主任试图发现“最好的计算机程序”而没有参考任何专注于研究和实践这门技艺的人的工作。
  • 另一些观点认为从第一原则出发有价值,可能会带来独特的东西,就像外来艺术一样。
  • 也有人认为大多数时候,这种方法会导致深刻的发现,但社会总体受益。
  • 有评论质疑这篇文章是否真的是 Paul Graham 写的,认为文章中的观点可能是由 AI 生成的。
  • 还有人认为 Paul Graham 在文章中提到的一些观点可能会限制解决方案的空间。
  • 有评论指出最好的文章不一定要探讨科学或新颖想法,而是要与作者之前的尝试相比有所改进。

Perf Is Not Enough #

https://motherduck.com/blog/perf-is-not-enough/

这篇名为“Perf is not enough”的文章讨论了数据库性能评估的重要性以及性能评估在选择数据库时的局限性。

作者指出,性能是数据库领域中最常用的衡量标准之一,但过于依赖性能评估可能会导致选择错误。文章提到了数据库行业一直专注于提高性能,但实际上,除了性能之外,用户体验、易用性、生态系统、更新速度以及与工作流程的整合性等因素同样重要。

作者还分享了一些关于数据库性能评估的案例,强调了性能评估结果与实际用户体验之间的差异,以及数据库性能在用户角度和数据库服务器角度之间的主观性差异。

最后,文章总结了选择数据库时应考虑的因素,强调了除了性能之外,还应关注数据库的功能、易用性以及对用户工作流程的支持。


HN 评论 75 comments | 作者:shubhamjain | 1 day ago #

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

  • 有评论指出性能不足以解决实际问题,应该关注真实世界使用的性能而不是单个组件的性能;
  • 另一观点认为没有单一指标能够全面覆盖数据库重要性,强调性能不是唯一关键因素;
  • 有人提到应该关注客户需求,性能只是工具而非终极目标;
  • 还有评论指出应该从客户体验出发,而非单纯关注性能指标;
  • 有人讨论了 Google 的外包策略和核心竞争力之间的平衡;
  • 还有评论提到了数据库性能与用户体验之间的平衡,以及不同数据库架构对性能的影响。

GrapheneOS finds Bluetooth memory corruption via ARM MTE #

https://grapheneos.social/@GrapheneOS/112066872276203917

这篇文章是关于 GrapheneOS 在 Pixel 8 和 Pixel 8 Pro 上发现的硬件内存标记支持揭示了 Android 14 QPR2 中为蓝牙 LE 引入的内存损坏漏洞。他们目前正在调查如何修复或临时禁用新引入的功能作为解决方法。文章指出,即使在短期内,禁用此进程的内存标记也不是可接受的解决方法,因为无论这个特定的漏洞是否能被利用,它都是一个主要的攻击面。这个问题只会出现在某些蓝牙 LE 设备上,而不是所有蓝牙设备。

GrapheneOS 已经为他们在蓝牙 LE 中发现的使用后释放漏洞开发了一个补丁。他们的重点是尽快发布一个带有修复的 GrapheneOS 版本,并将其报告为一个 Android 安全漏洞。这应该解决 BLE 音频退化问题。

文章还提到,他们已经为基础 Android 14 QPR2 中发现的使用后释放漏洞开发了一个补丁,并且已经有用户证实了他们的修复方案有效。此问题也影响了原始 Pixel OS。GrapheneOS 通过硬化的 malloc 内存标记支持检测到这一问题,并添加了 MTE 崩溃通知以及一个发送报告的功能。

此外,文章还讨论了 Android 将许多蓝牙代码移植到 Rust 的情况,以及 GrapheneOS 如何默认启用 MTE 以及用户可选择启用所有用户安装的应用程序的功能。

希望这个摘要能帮助您了解这篇文章的内容!


HN 评论 147 comments | 作者:gaul | 9 hours ago #

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

  • 有关 Memory Tagging Extensions(MTE)的评论:GrapheneOS 使用自己的硬件内存标记实现,提供更强的安全性属性,通过对基本操作系统和已知兼容应用程序启用堆 MTE。用户可以为用户安装的应用程序启用 MTE,对于不兼容的应用程序可以选择退出。
  • 安装 GrapheneOS 和日常使用的评论:安装简单,99% 情况下与其他 Android 手机一样方便,但可能会在某些应用程序上遇到问题,如银行应用。GrapheneOS 提供用户友好的崩溃报告系统,稳定性高,不会频繁崩溃,但可能需要启用兼容模式。
  • 对 GrapheneOS 的支持和未来设备的评论:GrapheneOS 可能会支持其他符合安全要求的设备,但目前只支持谷歌设备。计划支持符合要求的其他设备,但目前没有其他设备符合要求。
  • 对 GrapheneOS 的使用体验的评论:安装简单,与原生 Android 几乎无异,但可能会缺少一些 Google 应用,如 Google Pay。GrapheneOS 注重安全性,不鼓励 Root,提供了用户友好的崩溃报告系统。

Airbnb is banning indoor security cameras #

https://www.theverge.com/2024/3/11/24097107/airbnb-indoor-security-camera-ban

根据《The Verge》的报道,Airbnb 将不再允许房东使用室内安全摄像头,无论放置在何处或用于何种用途。

在周一的更新中,Airbnb 表示这一变化是为了“优先考虑租客的隐私”,将于 4 月 30 日生效。此前,这款度假租赁应用程序允许房东在房源的“公共区域”安装安全摄像头,包括走廊、客厅和前门。Airbnb 要求房东在房源中披露安全摄像头的存在并使其清晰可见,并禁止房东在卧室和浴室使用摄像头。但现在,房东完全不能使用室内安全摄像头。这一变化是在许多报告中客人发现在租赁房内隐藏摄像头之后而做出的,导致一些度假者在房间中寻找摄像头。

Airbnb 的新政策还为室外安全摄像头引入了新规定,现在要求房东在客人预订房源之前披露其使用和位置。房东也不能使用室外摄像头监视室内空间,也不能在“某些室外区域,存在极高的隐私期望”的地方使用,比如室外淋浴或桑拿浴室。

此外,房源将必须披露噪音分贝监测器,房东可能会用来测量他们的租赁房内是否正在举办派对 — Airbnb 在 2022 年禁止了这种行为。Airbnb 的新政策仍无法控制隐藏摄像头的存在,但至少可以让人放心,知道遵守规定的房东不再能在他们的租赁房内随意放置摄像头。


HN 评论 356 comments | 作者:matbilodeau | 7 hours ago #

https://news.ycombinator.com/item?id=39669167 #

  • 有人认为 Airbnb 并不便宜,只是提供更“有趣”的住宿选择。
  • 一些人觉得 Airbnb 已经变成了商业化的企业,而不再是提供独特廉价选项的平台。
  • 一位数字游牧者表示 Airbnb 逐渐变得像“大公司”,并且在一些城市或国家被禁止,导致住宿选择减少。
  • 有人指出人们普遍不擅长定价租金,类似于一般人不擅长定价餐厅食物。
  • 一些评论提到 Airbnb 的清洁费被认为是一种欺诈手段,使得房源费用看起来更低。
  • 讨论了 Airbnb 禁止室内摄像头的影响,以及一些人对此举可能只影响诚实房东的担忧。

Show HN: Timelock.dev – Send a secret into the future using timelock encryption #

https://timelock.dev/

网站 https://timelock.dev/ 是一个提供 Timelock 加密服务的网站,旨在让用户将信息加密并发送到未来。Timelock 加密是一种系统,允许您加密一条消息直到未来的特定时间,类似于“数字时间胶囊”。

该网站提供了一个界面,用于 Cloudflare 和 Entropy 联盟实施的 Timelock 加密系统。工作原理是一组可信的、地理分布的组织持有密钥,共有 18 个组织运行总共 22 个节点,需要 12 个节点才能释放一个秘密。这消除了任何单点故障,并通过依赖于没有共谋理由的独立组织,创建了一个极其强大的系统。网站还提供了更多阅读材料,包括限制、用例、Entropy 联盟等。


HN 评论 132 comments | 作者:aarreedd | 1 day ago #

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

  • 有关时间锁加密系统的评论中,有人提到 RSA 加密的时间锁难题需要顺序计算,无法并行化。
  • 讨论中指出,时间锁难题的解决方法是进行 t 次模 n 的平方运算,需要顺序计算,无法更快地解决。
  • 有人认为时间锁难题和区块链是对密码学中一个重要问题的 hacky 解决方案。
  • 讨论中提到了时间晶体和铀等物质的性质,以及时间和重力的测量难题。
  • 有人提到了 Cloudflare 的时间锁加密技术,以及使用多个信任代理的方法。
  • 讨论中还涉及到量子计算、加密货币、以太坊智能合约等相关话题。