HackerURLs

一次又一次被重新发现的经典。

同一个链接,相隔一年以上,一次又一次被人重新发现、再次冲上 Hacker News 首页。能经受住这种时间检验的,大多是值得一读再读的文章。每篇附中文标题,讨论最热的那些再加上中文导读和高赞评论翻译。

从名人堂开始
  • 4,700+篇经过时间检验的经典

Hall of fame

名人堂

在经典库里看全部精选

上首页次数最多、而且有中文导读的 30 篇。时间轴上每个黑点是一次上首页,空心点是一次没冲上去的投稿。

  1. 正在载入经典…

Archive

经典库

按第一次上首页的年份分布,点柱子筛选。

排序

    About

    这些经典是怎么挑出来的

    1. 01

      合并同一个链接

      读取 Hacker News 自 2006 年以来的全部链接投稿,把 http/https、www、跟踪参数等写法不同的同一篇文章合并成一条。

    2. 02

      只留经得起时间的

      同一链接至少两次拿到 50 分以上(约等于上首页),而且两次相隔一年以上;再由 AI 剔除状态页、产品首页和新闻事件。

    3. 03

      写导读、译评论

      上首页次数最多的 2,000 篇配上中文导读、"为什么经久不衰",并精选翻译 HN 高赞评论。导读由 AI 生成,可能有误。

    工具与资源github.com

    Sonic:快速、轻量且无模式的搜索后端

    Sonic: Fast, lightweight and schema-less search backend

    2次上首页
    3年跨度
    813累计得分
    194条评论

    2019 — 2022,它一次次回到首页

    黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。

    导读

    Sonic 是用 Rust 编写的轻量、无 schema 全文搜索后端,定位为 Elasticsearch 的低资源替代品,强调简单协议和低内存占用。它采用滑动窗口,只保留每个词最近 N 条索引,因此更适合消息/搜索框等场景,而不是需要全量归档的搜索。

    为什么经久不衰:它以极低资源开销提供够用的搜索能力,在简单搜索场景中可作为 Elasticsearch 的轻量替代;但滑动窗口和自有协议也意味着使用前需确认是否适合你的数据模型。

    关键词 Rust全文搜索Elasticsearch替代轻量级

    HN 评论精选

    新协议增加迁移门槛;若做 ES drop-in 替代更能扩大影响。

    虽然我很喜欢他们轻量、类 SQL 的协议,而不是 Elasticsearch 臃肿的 JSON,但我真觉得这个项目如果能成为 ES 的即插即用替代品,影响会大得多。即便只提供 ES 功能的一小部分,也足以覆盖至少一半用例。Sonic 本可以有强卖点:“用大多数真实应用都够用的 ES 替代品,Rust 编写,内存占用只是 ES 一小部分,且不要求你改应用代码”。然而他们提出了另一个搜索协议,开发者得学习和采用,这肯定增加采用门槛。

    blacklight查看英文原文

    While I really like their lightweight, SQL-like protocol instead of Elasticsearch's fat JSON, I really think that this project could have much more impact if it could be a drop-in replacement for ES. Even if it offers only a fraction of the features offered by ES, that may be fair enough for at least half of the use-cases out there. Sonic could have really had a strong selling point: "Use an ES-alternative that works fine in most of the real-world applications, but it's written in Rust and it only takes a fraction of the memory footprint required by ES, and it shouldn't require you to change your application code". Instead, they are proposing yet another search protocol, that developers have to learn and adopt. That definitely increases the adoption barriers.

    质疑滑动窗口导致每个词最多 N 文档,组合查询可能漏结果。

    Sonic 对每个词只保留最近推入的 N 条结果,以滑动窗口方式(窗口宽度可配置)。这是否意味着每个词最多只能找到 N 个文档?即便搜索“A and B”可能也找不全,即使同时含 A 和 B 的文档少于 N,因为 A 或 B 单独的条目可能已被滑动窗口移除。这样理解对吗?

    atesti查看英文原文

    >Also, Sonic only keeps the N most recently pushed results for a given word, in a sliding window way (the sliding window width can be configured) Does this mean that it only ever finds at most N documents per word? Even searches for "A and B" would probably not find everything, even if less than N documents contain A and B, because they might have been removed with the sliding window already for A or B alone. Is that correct?

    许可证最初限制商业使用,后改为 MPL2。

    嗯,最初发布时它有一个奇怪且商业限制性的许可证,但看起来后来被改回去了,可能是在 /r/rust 上(礼貌)讨论之后。现在它是 MPL 2。

    mrec查看英文原文

    Huh. When this was initially posted it had a weird and commercially restrictive license, but it looks like that's been reverted, possibly after (polite) discussion on /r/rust. It's MPL 2 now. https://github.com/valeriansaliou/sonic/issues/52#issuecomment-475911660

    滑动窗口适合消息不适合帮助台;Groonga/PGroonga 可索引全部但更耗内存。

    性能数字很棒,语言支持也很好。Sonic 对给定词只保留最近推入的 N 条结果。这个索引会丢弃旧条目。对消息来说没问题,因为旧条目相关性下降。但开发者把它用于帮助台,我认为帮助台应平等对待所有条目。这个领域主要竞争者可以说是 Groonga,可通过 PGroonga 扩展集成到 PostgreSQL,且索引全部数据,但消耗内存多得多。

    javitury查看英文原文

    Performance figures are awesome. Also language support is great. > Sonic only keeps the N most recently pushed results for a given word This index discards old entries. This is fine for messages, in which aging items lose relevance. Yet the developer uses it for a help desk, which I think should give equal importance to all items. In this area I would say the main comperitor is Groonga. It can be integrated into PostgreSQL with the PGroonga extension, and it indexes all of the data. However it consumes way more ram.

    历次讨论

    同类还值得读

    1. 直接在浏览器中启动 Linux 内核

      Boot a linux kernel right inside your browser.

      Fabrice Bellard 的 JSLinux 页面,用 JavaScript 在浏览器里启动一个 Linux 内核,并提供一个可交互的终端环境。

      工具与资源上首页 5 次 · 2011–2025bellard.org
    2. Hacker News 未公开功能与行为清单(2018)

      A List of Hacker News's Undocumented Features and Behaviors (2018)

      数据科学家 Max Woolf 整理的 Hacker News 未公开功能与行为清单,涵盖投票机制、排名算法、账号惩罚等社区运作细节。

      工具与资源上首页 5 次 · 2019–2025github.com
    3. MapSCII:在终端中用盲文和 ASCII 渲染地图

      MapSCII – Braille and ASCII map renderer for the console

      MapSCII 是一个在命令行终端里渲染地图的开源工具,用盲文字符和 ASCII 字符把地理数据画成可交互浏览的字符地图。

      工具与资源上首页 5 次 · 2017–2025github.com
    4. 顶尖大学的免费在线课程

      Free Online Courses from Top Universities

      Open Culture 整理的一份免费在线课程合集,汇集了全球顶尖大学(如 MIT、斯坦福、耶鲁等)向公众开放的网络课程资源,涵盖音频、视频等多种形式。

      工具与资源上首页 5 次 · 2010–2022openculture.com
    5. 淘气字符串:容易引发用户输入问题的字符串清单

      Naughty Strings: A list of strings likely to cause issues as user-input data

      一个 GitHub 仓库,收录了大量容易让程序出问题的用户输入字符串,如特殊字符、emoji、SQL 注入片段、系统命令等,供开发者用于测试输入处理逻辑。

      工具与资源上首页 4 次 · 2015–2020github.com

    打赏支持

    打赏二维码

    觉得有用,请作者喝杯咖啡。

    WeChat

    关注向阳乔木

    微信公众号「向阳乔木推荐看」

    微信公众号「向阳乔木推荐看」二维码

    微信扫一扫;在微信里打开本页时,长按二维码识别。