Top posts

Every blog post that took off on Hacker News, ranked by the votes of its best submission. 4,109 posts.

Any topic
2025
3365

Stop crawling my HTML – use the API

One of the (many) depressing things about the "AI" future in which we're living, is that it exposes just how many people are willing to outsource their critical thinking. Brute force is preferred to thinking about how to efficiently tackle a problem. For some reason, my websites are regularly targetted by "scrapers"…

3374

Chrome Returns 206 when the Server Returns 403

Chrome Returns 206 when the Server Returns 403 Postmortem It is a feature not a bug! I got detailed explanation from chrome developers which is very helpful. You may find the complete response in the bug ticket. Also this blog post draws a lot of attention after I post it on Hackers News. You may find comments here…

3386

What Killed Innovation?

I entered the data visualization field in 2012, when D3.js had just come out and interactive graphics were going through a digital Renaissance. By the time I was fully steeped in the field in 2016, it felt like a new, experimental project was coming out every week—each one pushing the boundaries of how we think about…

3388

Just Use HTML

I’ve worked on so many projects recently that were more complicated than they needed to be because they used JavaScript to generate HTML. JavaScript is… Slower to load Slower to run More prone to breaking Harder to read and reason about Doesn’t actually look like the final output It’s inferior to just using HTML in…

3389

Rootless Pings in Rust

Sending a ping by creating an ICMP socket normally requires root: you can’t create a raw socket to send ICMP packets without it. The ping command line tool works without root however, how is that possible? It turns out you can create a UDP socket with a protocol flag, which allows you to send the ping rootless. I…