2024 04 23 HackerNews

2024-04-23 Hacker News Top Stories #

一句话摘要 #

  1. Equinox.space Equinox 是一款由 Little Workshop 开发的太空冒险游戏,以其流畅的动画、出色的美学设计和音乐获得玩家的高度评价。
  2. Meta Horizon OS Meta 宣布开放 Meta Quest 设备的操作系统给第三方硬件制造商,旨在构建更大的生态系统,提供更多选择给消费者和开发者。
  3. Inside the Super Nintendo cartridges 这篇文章深入探讨了超级任天堂卡带的内部构造,包括复制保护芯片、存储器和增强处理器等技术细节。
  4. Show HN: OpenOrb, a curated search engine for Atom and RSS feeds OpenOrb 是一个为 Atom 和 RSS 订阅源设计的筛选搜索引擎,提供相关性或日期排序的搜索结果,旨在提高内容可访问性。
  5. Infinitown Infinitown 是一个 WebGL 实验,通过程序化生成动态城市景观,提供了一个观赏性强的虚拟城市体验。
  6. Curl is just the hobby Daniel Stenberg 分享了 curl 项目的最新动态,强调 curl 不仅仅是他的爱好,也是他全职工作的一部分,服务于全球超过十亿用户。
  7. Pico.sh – Hacker Labs Pico.sh 是一个开源项目,提供一系列通过 SSH 协议托管的网络服务,简化了内容发布和网络服务管理的过程。
  8. Ruby vs. Python comes down to the for loop (2021) 文章比较了 Ruby 和 Python 在 for 循环处理上的差异,探讨了两种语言在数据处理和对象模型上的哲学和实践。
  9. A flat map with the least error possible: The Gott-Goldberg-Vanderbei projection 这个网页展示了 Gott-Goldberg-Vanderbei 地图投影,一种新的尝试以最小的误差展示地球平面图的投影方法。
  10. Py2wasm – A Python to WASM Compiler py2wasm 是一个将 Python 程序编译为 WebAssembly 的工具,旨在提高 Python 程序在 Web 上的运行效率。

Equinox.space #

https://equinox.space/

Equinox 是一款太空冒险游戏,故事随着您探索环境并与环境互动而展开。

Equinox 游戏是由 Little Workshop 开发,一家成立于 2010 年的巴黎创意工作室,将艺术与代码相结合,为各行业的品牌打造沉浸式的 3D 体验。他们的卓越表现赢得了众多奖项的认可,作品已在全球吸引了数百万人的关注。

Little Workshop 专注于创意和创新,利用最新技术创造引人入胜的体验,留下深刻的影响。从游戏到虚拟环境,他们的使命是赋予客户力量,激发并真正连接他们的受众。


HN 评论 264 comments | 作者:fragmede | 12 hours ago #

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

这篇帖子中的评论观点包括:

对游戏在浏览器中的表现印象深刻,赞赏其流畅的动画;

评论游戏的美学设计出色,音乐也很棒;

希望游戏能够在 VR 中运行;

赞赏游戏的细节和音效;

提到游戏让人想继续玩下去;

赞扬游戏的故事情节、视觉和声音设计水准高;

希望游戏能够开源,以便了解技术细节;

游戏让人感觉身高较高,或许门有点矮;

游戏让人联想到 Metroid Prime 等经典游戏;

游戏在浏览器中运行流畅,值得开发者们学习;

游戏让人感觉像在 VR 世界中移动;

游戏的音乐设计出色;

游戏让人想继续玩下去;

游戏的美学设计优秀。


Meta Horizon OS #

https://www.meta.com/blog/quest/meta-horizon-os-open-hardware-ecosystem-asus-republic-gamers-lenovo-xbox/

这篇博文介绍了 Meta 正在迈向更开放计算平台的愿景,将 Meta Quest 设备的操作系统开放给第三方硬件制造商,为消费者提供更多选择,并为开发人员构建更大的生态系统。新的硬件生态系统将运行在 Meta Horizon OS 上,这是支持 Meta Quest 头戴设备的混合现实操作系统。Meta Horizon OS 结合了当今混合现实体验的核心技术,将社交存在放在平台的中心。开发者可以利用 Meta 为创建混合现实体验构建的自定义框架和工具,并通过内置在操作系统中的内容发现和变现平台来扩展他们的业务。

此外,该博文还介绍了一些全球领先科技公司正在基于 Meta Horizon OS 开发新设备的计划,包括 ASUS 的 ROG 将推出全新性能游戏耳机、联想将开发用于生产力、学习和娱乐的混合现实设备,以及 Xbox 与 Meta 合作推出受 Xbox 启发的限量版 Meta Quest。这些设备将受益于与高通技术公司的长期合作,后者构建了与我们的软件和硬件堆栈紧密集成的 Snapdragon® 处理器。

此外,Meta 还在扩大应用开发者与用户之间的联系方式,包括将 Meta Horizon Store 与 App Lab 之间的障碍逐步消除,使 App Lab 的应用更易被发现。Meta 还在开发一个新的空间应用框架,帮助移动开发者创建混合现实体验,并将继续给用户更多选择访问应用的方式。

这篇博文展示了 Meta 对混合现实的未来愿景,认为多个硬件制造商在共同平台上构建将使消费者和开发者受益最多的生态系统。


HN 评论 442 comments | 作者:ahiknsr | 7 hours ago #

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

这篇帖子中的评论观点大致可以归纳为:

    1. 对新操作系统的期待,希望有新的发展路径;
    1. 对 Meta 控制软件体验的担忧,类似苹果控制 Mac OS;
    1. 对硬件制造商在市场竞争中的困境和挑战的讨论;
    1. 对 VR 头显市场低端和高端的观点,以及 Meta 在市场定位和硬件发展上的策略;
    1. 对 Meta 开放操作系统的看法,有人认为是推动市场增长,也有人认为是 Meta 放弃虚拟现实项目的猜测。

Inside the Super Nintendo cartridges #

https://fabiensanglard.net/snes_carts/index.html

这个网页详细介绍了超级任天堂卡带内部的构造和技术细节。其中提到了超级任天堂卡带内部的一些组件,如 CIC(复制保护芯片)、SRAM(静态随机存取存储器)和“增强处理器”。CIC 是超级任天堂的复制保护机制,一些非授权游戏可能没有 CIC 芯片。

此外,还介绍了游戏 ROM 的大小以及一些游戏中使用的增强处理器,如 Super FX、SA-1、CX4、DSP-1 等。这些处理器提供了不同的功能,如加速、图形处理、音频处理等,以改善游戏性能和体验。文章还提到了一些游戏如何利用这些处理器来改善游戏性能,以及模拟器社区对这些增强处理器的挑战和模拟情况。


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

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

评论中的观点归纳如下:

    1. 旧系统上的卡带类似于 PC 上的 PCI 扩展卡,直接连接到总线,功能强大;
    1. 现代增强芯片如 Raytracing 芯片或 MSU1 芯片为卡带带来现代化功能;
    1. 一些 DS 卡带具有 IR 接收器或蓝牙功能,扩展了功能;
    1. GBA 曾有测量血糖的扩展;
    1. DS 有扩展卡,如浏览器和吉他英雄游戏;
    1. SNES Flashcarts 支持 MSU1;
    1. SNES 游戏使用 FastROM 和 SlowROM 影响性能;
    1. SNES 的 RAM 速度受限;
    1. SNES 和 TurboGrafx-16 的比较;
    1. SNES 游戏 ROM 大小与其他因素的相关性;
    1. 开发人员为 SNES 游戏制作定制 IC 的成本和收益;
    1. 模拟器如何模拟卡带中的扩展芯片。

Show HN: OpenOrb, a curated search engine for Atom and RSS feeds #

https://openorb.idiot.sh/search

名为 OpenOrb 的网站。该网站提供搜索功能,用户可以根据相关性或日期对内容进行排序。

OpenOrb 是一个针对 Atom 和 RSS 订阅源的筛选搜索引擎。用户可以通过 OpenOrb 搜索特定的订阅源内容,使其更易访问。与 Google 等封闭式搜索引擎相比,OpenOrb 是开源、可配置、个性化和可预测的。该平台使用简单的搜索引擎,主要基于 Alex Molas 的 80 行 Python 代码,并且未来可能会添加更多功能。

但目前仍保持简单化。OpenOrb 的搜索结果受 RSS 的限制,如果订阅源未包含完整内容或设定了帖子数量限制,OpenOrb 将无法索引。用户需要接受网络数据的混乱,避免删除订阅源中的帖子。OpenOrb 的图标由 Maxicons 设计(CC BY 3.0)。


HN 评论 53 comments | 作者:lowercasename | 12 hours ago #

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

评论中的观点归纳如下:

    1. 对 OpenOrb 概念持赞赏态度,认为有助于内容消费;
    1. 讨论 RSS feed 的技术性和主题偏好;
    1. 讨论 RSS feed 是否应包含完整内容以及对用户体验的影响;
    1. 讨论 RSS 的发展趋势和广告问题;
    1. 讨论 RSS 在内容推广和广告方面的作用;
    1. 对 RSS 的前景持乐观态度,认为可能有新的发展方向。

Infinitown #

https://demos.littleworkshop.fr/infinitown

这个网站展示了一个名为 Infinitown 的 WebGL 实验,旨在创建一个有生命力且观赏性强的程序化城市。

首先,网站生成了一个有限的随机城市街区网格,然后通过添加各种元素和动态效果,使城市看起来充满活力。Infinitown 最初受到城市建设类视频游戏的启发,旨在呈现一个令人愉悦的虚拟城市体验。

您可以在这个实验中探索城市的不同部分,欣赏其细节和动态效果,感受这个虚拟城市的独特魅力。


HN 评论 44 comments | 作者:memalign | 22 hours ago #

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

  • 评论者认为这个项目很酷,但希望能够进行缩放操作。
  • 有人觉得这个项目让他想起了《模拟城市 2000》,执行得很好。
  • 评论中提到在 Firefox 上帧率不佳,但在 Chrome 上表现良好。
  • 有人表示这个项目让他想玩《模拟城市 2000》。
  • 评论者认为这个项目不是一个城镇,而是一个噩梦。
  • 有人觉得这个项目很可爱。
  • 评论者希望能够驾驶车辆,最好有更多车辆、工作的交通灯和碰撞检测。

Curl is just the hobby #

https://daniel.haxx.se/blog/2024/04/22/curl-is-just-the-hobby/

这篇博文是关于 curl 的,作者 Daniel Stenberg 提到了 curl 不仅是他的爱好,也是他全职工作的一部分。

他表示 curl 是一项业务,每天为超过十亿人提供服务。文章中提到了一位用户评论称 curl 只是作者的爱好,作者回应称他全职工作也是在开发 curl。文章中还展示了一些与 curl 相关的手工艺品,比如一个以 curl 命令为主题的十字绣作品和旧金山的一则广告。

此外,还展示了一个 curl 命令行示例,作者对其中使用 PUT 方法来 POST JSON 表达了自己的看法。

curl --request PUT \
  --url https://api.stytch.com/v1/b2b/organizations/{ID} \
  -d '{
        "mfa_policy": "REQUIRED_FOR_ALL",
        "mfa_methods": "RESTRICTED",
        "allowed_mfa_methods": ["totp", "sms_otp"]
       }'

最后,文章还包含了两位读者的评论,表达了对作者工作的感激之情。


HN 评论 82 comments | 作者:TangerineDream | 15 hours ago #

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

评论中的观点归纳如下:

    1. 在旧金山看到 API 广告在公交车站上是一件很奇怪的事情,可能是因为那里有很多软件工程师;
    1. 在其他地方也有类似的广告,比如巴黎地铁上招聘银行开发人员的广告;
    1. 这种现象在旧金山很常见,比如 Twilio 的广告;
    1. PUT 请求用于替换目标资源,而 POST 用于处理请求内容,使用 JSON 通过 PUT 并不奇怪;
    1. PUT 可以用于创建资源,只要请求有明确的目标;
    1. 有人提到了 RFC 9110 中 PUT 的幂等性,以及使用 PUT 创建数据库记录的安全性;
    1. 有人讨论了 RESTful API 的协议设计;
    1. 有人讨论了 cURL 的赞助和商业模式;
    1. 有人谈到了 Firefox 对 HSTS 的连接限制问题。

Pico.sh – Hacker Labs #

https://github.com/picosh/pico

这个 GitHub 仓库( https://github.com/picosh/pico)包含了一个名为“pico”的项目,旨在提供开源和托管的网络服务,利用 SSH 协议。该项目提供了一系列服务,包括:

  • pgs.sh:一个使用 SSH 进行站点部署的静态站点托管平台。
  • tuns.sh:利用 SSH 进行 https/wss/tcp 隧道连接到本地主机。
  • imgs.sh:使用 SSH 进行身份验证的 Docker 镜像注册表。
  • prose.sh:使用 SSH 进行内容管理的博客平台。
  • pastes.sh:使用 rsync、scp 和 sftp 上传代码片段的服务。
  • feeds.sh:使用 SSH 的 RSS 邮件通知服务。

通过这些服务,用户可以使用 SSH 工具发布内容,而无需安装任何额外的软件。例如,用户可以使用 rsync、scp 或 sftp 发布博客文章、网站或代码片段。该项目还提供了简单的命令,让用户可以轻松地进行站点部署、访问本地主机、发布博客文章以及推送和拉取 Docker 镜像。用户还可以通过该项目接收他们喜爱的 RSS 订阅的电子邮件通知。

总体而言,这个项目旨在简化用户发布内容和管理网络服务的过程,通过利用 SSH 协议提供了一种简单而有效的方式。


HN 评论 36 comments | 作者:modinfo | 20 hours ago #

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

这篇帖子中的评论观点归纳如下:项目介绍不清晰,缺乏说明;有人认为应该在源代码 README 中解释项目内容;有人认为需要更好的文档和说明;有人认为是为好奇者打造的实验室;还有人认为项目提供了一些简单的 Web 服务,通过 SSH 进行控制。


Ruby vs. Python comes down to the for loop (2021) #

https://softwaredoug.com/blog/2021/11/12/ruby-vs-python-for-loop.html

这篇文章讨论了 Ruby 和 Python 在处理循环时的差异。在 Python 中,对象告诉 for 循环如何与它们一起工作,for 循环的主体处理对象返回的内容;而在 Ruby 中,for 本身(通过 each)是对象的一个方法,调用者将 for 循环的主体传递给这个方法。Python 中的对象模型顺从于 for 循环,而 Ruby 中的 for 循环顺从于对象模型。

Python 通过列表和字典推导式实现 map 和 filter 等功能,核心是 for/迭代语义。而 Ruby 则采用方法优先的方式,使用一系列常用于集合的方法来处理数据。

Python 强调数据处理的规范性,让对象可迭代并按照语言规范进行处理;而 Ruby 则让对象具有更深层次的可定制性,让对象控制数据处理方式。Python 更像是 C 语言基础上的“面向对象”编程的延伸,而 Ruby 则将面向对象作为基础,将程序性代码放在块中,让对象与这些程序性块交互。

Python 在系统编程角度上感觉更自然,而 Ruby 更适合构建更流畅、更安全的 API 和 DSL。Python 在资源密集型数值计算领域有着广泛应用,而 Ruby 更适合构建领域模型。文章还提到了作者在 Ruby 工作中需要处理这些差异,邀请读者加入 Ruby-Python-Search Adventure。


HN 评论 168 comments | 作者:mooreds | 20 hours ago #

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

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

Ruby 的流程控制受 Smalltalk 影响,语法简单一致,但可能显得有些笨拙;

Ruby 的语法由于字符串插值等原因可能被认为糟糕;

Ruby 的方法优先方法使得实现集合方法更简单;

Python 的 collections.abc 用于类似功能;

Ruby 在 GUI 和 NLP 方面的生态系统相对 Python 较弱;

Ruby 和 Python 在私有方法访问方面有区别;

Ruby 和 Python 的语法设计哲学不同,Ruby 更面向对象,Python 更混合;

Python 的静态类型提示工具 Pylance/pyright 效果不错;

Python 2 和 Python 3 在整数除法上有不同行为;

RoR 在 SAAS 公司创业阶段提供高生产力,但也有一些缺点。


A flat map with the least error possible: The Gott-Goldberg-Vanderbei projection #

https://vanderbei.princeton.edu/planets_webgl/GottPlanets.html

这个网页提供了一个动态界面,展示了一个新的地图投影。你可以点击地图上的任何地方来选择不同的位置。你也可以旋转地图。

可选行星:

  • 地球
  • 带冰的地球
  • 显示国家的地球
  • 月球
  • 火星
  • 木星 1
  • 木星 2
  • 土星
  • 太阳系的泰科星
  • 银河系

地图投影的论文发布在这里: https://arxiv.org/pdf/2102.08176v1.pdf 这里有一篇纽约时报的文章介绍这张地图: 新世界地图 这里有一篇《科学美国人》的文章介绍这张地图: 迄今为止最准确的平面地球地图


HN 评论 78 comments | 作者:westcort | 20 hours ago #

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

根据 https://news.ycombinator.com/item?id=40111105 中评论的观点,归纳如下:

    1. 一些人认为 Gott-Goldberg-Vanderbei 的投影误差较低,但实用性显著降低;
    1. 有人喜欢 Winkel Tripel 作为世界地图的首选;
    1. 有人推崇 Equal Earth 投影,但认为其相对较不为人知;
    1. 有人赞赏 New Zealand Map Grid 的使用,特别是在本地区域使用上;
    1. 有人讨论了地铁地图和公交地图的地理准确性问题;
    1. 有人提到 Pierce Quincuncial 投影;
    1. 有人讨论了 Web Mercator 的使用便利性;
    1. 有人认为 3D 投影是理想的,因为它考虑了所有比例和大地水准面;
    1. 有人提到 Kavrayskiy VII 作为最平衡的伪圆柱投影之一;
    1. 有人质疑地图投影的实际应用意义。

Py2wasm – A Python to WASM Compiler #

https://wasmer.io/posts/py2wasm-a-python-to-wasm-compiler

这篇文章介绍了一个名为 py2wasm 的工具,它是一个将 Python 程序转换为 WebAssembly(Wasm)的编译器。通过使用 py2wasm,可以避免解释器开销,使 Python 程序在 WebAssembly 上运行速度提高了 3 倍。文章提到了如何安装和使用 py2wasm,以及进行基准测试的结果。基准测试显示,使用 py2wasm 相比原生 Python 速度大约为 70%,比基准解释器快 2.5~3 倍。

文章还探讨了优化 Python 在 WebAssembly 中运行速度的几种策略,包括将 Python 子集编译为 Wasm、使用 Python 中的 JIT、静态分析等方法。作者指出,通过使用 Nuitka 工具将 Python 编译为 WebAssembly 是目前在 WebAssembly 环境中加速 Python 执行速度最快的方法之一。文章还提到了对 Nuitka 进行的一些修改,以便更好地支持 WebAssembly。

未来的路线图包括将 py2wasm 发布为 Wasmer 软件包,以便用户可以更轻松地运行。作者还分享了关于 Wasm I/O 会议的演讲内容,并展望了 py2wasm 的未来发展。文章最后介绍了作者 Syrus Akbary 的背景和 Wasmer 公司的定位。


HN 评论 49 comments | 作者:fock | 9 hours ago #

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

  • 评论者对新项目创建和命名的合理性提出疑问,认为应该将贡献直接提交给 Nuitka。
  • 有人指出 py2wasm 计划将 Python 程序转换为 WebAssembly,希望能够比原生 CPython 快 3 倍。
  • 讨论者提到 py2wasm 项目的初衷是为了加速 Python 执行,以便将 Python Django 后端从 Google Cloud 迁移到 Wasmer Edge。
  • 有人对 Pyodide 和 Py2wasm 之间的区别进行了讨论,认为 Py2wasm 更适合将特定脚本编译为 WASM。
  • 评论者对 WasmGC 的最终化表示期待,希望看到更多编译器针对其进行目标化。
  • 讨论者探讨了 Python 在机器学习中的应用,提出了在 Web 浏览器中执行大多数用 Python 编写的 ML 框架的可能性。
  • 有人提到已经可以通过浏览器运行许多现代 ML 模型的推断。
  • 讨论者讨论了在浏览器中运行 Python 的可能性,以及 Pyodide 对于具有 C 依赖的库的支持问题。
  • 评论者提出了在 WebAssembly 中运行 FastAPI 的疑问。