geuis a day ago

oh boy I wrote one of these many years ago for HN.

Within like an hour or two pg emailed me asking me to stop. I didn't know it at the time, but HN was being run on a rusty potato and scraping the homepage every 5 or 10 seconds was causing significant load.

  • jerbear4328 a day ago

    Haha, my version makes a websocket connection to the official Firebase that the HN servers already send everything to, so it is zero extra load on HN

  • wizzwizz4 a day ago

    Afaict, HN is still running on a rusty potato. The software's written well, so it doesn't need to run on more than that. (What's going to happen to it? Someone links to it from HN?)

    • gregsadetsky a day ago

      less rusty as of ~sep 2024 :-) https://news.ycombinator.com/item?id=44099006

      • wizzwizz4 a day ago

        They've upgraded to a multi-eye potato‽ Truly the wonders of modern technology have no bound.

        • consumer451 a day ago

          I mean, I love what it says about the insanity of some of the tech stacks that we run these days.

          The potato with multiple eyes works to serve one of the more important and trafficked properties on the Internet.

          • pinkmuffinere a day ago

            > one of the more important and trafficked properties on the Internet.

            I like HN, but it's really only important within a very niche subset of the Internet, and it also doesn't have much traffic. There's like a single post submitted every two minutes. That's not much.

            • airstrike 20 hours ago

              Given how often a link that makes it to the front page struggles to serve the incoming traffic from HN, it's fair to say HN is quite efficient

              • pinkmuffinere 4 hours ago

                I think [being unable to handle peak load] does not imply efficiency. Unless perhaps this is a joke that I’m misunderstanding?

                Nonetheless, i suspect that HN probably is quite efficient, just based on what I know about dang. Even so, the parent claim was that it was popular and important, not that it was efficient

            • youniverse 21 hours ago

              I wonder what % of users submit posts and browse new submissions on here and on reddit.

gregsadetsky a day ago

Source code: https://github.com/jerbear2008/hn-live

And live firebase source/api (run by HN) used for this: https://github.com/HackerNews/API

(just making sure it's obvious - I didn't create this site! all credits to @jerbear4328 who is here on HN - I'll email them to let them know it's trending) :-)

blinding-streak a day ago

Cool!

Would be slightly more contextual if the title of the original post was displayed.

  • jkarneges a day ago

    The HN/Firebase API doesn't make this easy. For https://hnstream.com I ended up crawling items to find the article.

    • ryandrake 15 hours ago

      Any tips on respectfully crawling HN so you don’t get throttled? I had an application idea that could not be served by the API (need karma values) so I started to write code to scrape but got rate limited pretty quickly.

      • jkarneges 4 hours ago

        I've had no trouble hitting the Firebase API at the speed items are created, with a 5 second delay between retries.

        For scraping HN directly, in my experience you have to go extremely slow, like 1 minute between fetching items. And if you get blocked, it may be better to wait a long time (minutes) before trying again rather than exponential backoff, in order to get out of the penalty box. You'll need a cache for sure.

    • esafak a day ago

      The comments don't even have a thread ID?

      • zamadatix a day ago

        Comment items look like https://hacker-news.firebaseio.com/v0/item/45533616.json?pri...:

          {
            "by" : "jkarneges",
            "id" : 45533018,
            "kids" : [ 45533616 ],
            "parent" : 45532549,
            "text" : "The HN&#x2F;Firebase API doesn&#x27;t make this easy. For <a href=\"https:&#x2F;&#x2F;hnstream.com\" rel=\"nofollow\">https:&#x2F;&#x2F;hnstream.com</a> I ended up   crawling items to find the article.",
            "time" : 1760043552,
            "type" : "comment"
          }
        
        "parent" can either be the actual parent comment or the parent article, depending where in the comment chain you are.
        • smusamashah 16 hours ago
          • zamadatix 8 hours ago

            As does hnstream.com from the sourced sample comment itself. Both just traverse the parent id until it's the root (article). It takes more queries, but the API is not rate limited.

            • krapp 8 hours ago

              It wouldn't take more queries if the comments were cached. It could probably be done entirely in memory, HN's entire corpus can't be that large.

              If one were to start at the page endpoints (eg /topstories) one could add references to origin ids while preloading comments, and probably cover the most likely to be referenced ID, and even make traversal up the tree even more efficient.

  • jerbear4328 a day ago

    I tried this, but it required making a request for every comment and would probably call for a backend, wheras this can run just off of the Firebase websocket stream on a static HTML file.

  • neom a day ago

    I found it a fun game to guess what I thought the post was about.

insin a day ago

If you want a live version of most of the site (including tracking new comments in items you've already looked at), I made this to improve my React skills when the HN API first came out:

https://insin.github.io/react-hn

  • MrCzar a day ago

    Wow it looks really cool, I think I might enjoy actually using it as the main way to view the site

    • Imustaskforhelp a day ago

      I was going to say the same thing too!

      I just wish there was a dark mode.. Let me install night reader to see how well it looks :p

      Edit: would've loved if there was a way to sign up or make comments from there, oh well :< I wish there was, I am not sure if that's possible tho but I hope it could be.

Imustaskforhelp a day ago

I checked the github repo and I found out that its a single static html page and ahh I forgot to see that its hosted on github.io as well because of their static hosting, somehow I didn't see it!!

Static hosting is super cool and I am going to tinker with it to have monospace-web instead for something like this https://owickstrom.github.io/the-monospace-web/

Thanks a lot for creating this! Appreciate it, I haven't read the source code but I am going to read it oneday (If I don't procastinate lol)!

Have a nice day!

Rendello a day ago

I often wonder if dang and tomhow have something like this running.

  • poly2it a day ago

    I wonder to what extent they read everything which is posted here.

    • dang a day ago
      • Rendello 21 hours ago

        I moderated a few chat rooms and dreamed of all this complex tooling I could build to automate and help me fix issues right away. Of course, the tiny chat rooms didn't need any of that. The hard part is actually moderating fairly and trying to figure out where the boundaries are. I couldn't do it. Makes sense why pg said "don't start a forum".

    • bigwheels a day ago

      A person would lose their mind pretty quickly this way.

      Great potential job for an LLM to potentially spot abuse. The existing mod tools/system seem to work quite well.. I like HN how it is!

    • krapp a day ago

      I know they get an alert whenever a comment is flagged. I assume they get an alert whenever certain "problematic" accounts post. Maybe they get an alert whenever the flamewar detector goes off? This forum is written in a Lisp so they can probably hotpatch whatever code they want and add whatever filters they want.

      But dang has said numerous times that he doesn't read everything, that would probably not even be feasible.

      The question is, YC being what it is, are they using LLMs to automate moderation or do sentiment analysis?

      • dang a day ago

        We're working on the latter but it's not yet in production. We're only going to deploy it once it's clear that it significantly improves on what mods + the existing software are already doing. The hard part, of course, is how to evaluate that.

  • Imustaskforhelp a day ago

    Lol. Imagine them having a whole room of tv's running it...

    Could be a cool movie scene where the stream of data is actually live HN comments lol.

jasonthorsness a day ago

Another great use of the HN API! It would be nice to filter it somehow to threads where I have commented, sometimes I don't notice until days later that someone replied to me.

To shill my own use of the API:

I did an animated "replay" view for historical threads like Rust 1.0 launch: https://hn.unlurker.com/replay?item=9551937

And a (static, refreshable) view of recent activity grouped by topic: https://hn.unlurker.com

  • onli a day ago

    You know about https://www.hnreplies.com/ ? Sends you a mail when someone replies to your comment.

    • Imustaskforhelp a day ago

      Didn't know about this! Thanks, I just wish something like this was on signal or discord but maybe that's because I don't operate much mail and I really like signal...

      But anyways, just as a headsup for a moment I was confused that I wasn't getting the verification mail and I was literally going to comment it but then I got the mail just in time, so maybe to anyone out there, maybe be a bit patient as its worth it (or it could totally just be an issue from my side as I spammed it twice or maybe it got congested I am not sure)

      EDIT: It wasn't that they sent me 2 mails but rather that they sent me 1 mail and I clicked on it and then got another and I thought it was because of me spamming verification twice but it turns out that they sent me a mail because someone had responded to me :)

      Neato. I really like this.

      • onli 13 hours ago

        Yeah, you need to give it a moment. In active discussions I usually see the reply before getting the notification. I guess the service needs a bit to detect responses, and then each email need a bit of time as well.

    • jval43 10 hours ago

      This has been very reliable for me in the past, great project.

fragmede 3 hours ago

Of course, the next thing is to watch for edits and deletes. What gets written and then gets thought better of. What does raw and unfiltered HN think?

1zael a day ago

Pretty cool! I must manually refresh to see new posts. Implementing real-time updates (e.x. via WebSocket or Server-Sent Events) would significantly improve usability.

  • geuis a day ago

    It sounds cool, but for usability its not great. Think about how reddit recalculates the results order as you're paging through, and you see items from the previous page show up on the next. Now imagine that happening in realtime. Maybe there's a link you want to read, but you get pulled away for 10 minutes. By the time you get back the link is higher or lower, or may be completely missing.

    As a side feature, that would be neat though.

    • 1zael a day ago

      That is a good point, however there are design solutions around it. For example: - Poll every X seconds instead of real-time - Enable user to toggle real-time mode - Load new posts in with a "+" button at the top to fetch the latest posts (like Twitter)

      • 1718627440 2 hours ago

        That's a good idea. Maybe bind that to a key (what about Ctrl-R). And maybe you can put this feature into UAs, since it would be useful for more websites.

Retr0id a day ago

Writing this comment just to see how quickly it shows up

Edit: Felt like it took almost a minute, I wasn't timing precisely because I didn't expect it to take so long!

  • jerbear4328 a day ago

    It (hopefully) took exactly 30 seconds, the page delays every item until 30 seconds after its posted date. It doesn't poll HN's server, it opens a websocket to the official HN Firebase, and without the delay, items appear in large chunks. I'm pretty sure the HN server syncs with Firebase every 30 seconds, so this is as fast as it can go while still being accurate.

    • dzhiurgis a day ago

      Interestingly some comments appear as [delayed].

Descon a day ago

Fun! A css animation would make the updates less jarring and the feed easier to read

citbl 21 hours ago

It works, but I'd advise about using the same branding. Consider making it significantly different than the website's comments page to avoid any issues, since it's not part of the webapp nor sanctioned.

  • moralestapia 21 hours ago

    Ignore this guy, lol.

    • citbl 20 hours ago

      Okay, maybe you could explain why copying the look of a product to look exactly like the said product, without it being warranted is a worth ignoring and funny?

ferguu 11 hours ago

This is awesome!

ranger_danger a day ago

Bets on how overwhelmingly negative the comment sentiments are? Anyone got an LLM handy to analyze that

  • gregsadetsky a day ago

    a very very quick copy/paste of 73 comments there - fed to claude with a basic "characterize+count comments" give me 70% neutral/technical, 14% positive, 16% negative.

    claude also said "The negative comments tend to be more substantive critiques of systems or research approaches rather than personal attacks." - so... that's good? :-)

  • Karrot_Kream a day ago

    I've done it before on large threads. Neutral sentiment tends to dominate at roughly 50% but negative sentiment is much higher than positive sentiment. Negative sentiment is also higher if you just take the highest ranked comments.

  • AlecSchueler a day ago

    It's actually quite stark looking at it this way and makes me question how healthy it is to use this site as often as I do. Fully aware that we're also piling on the negative sentiment.