Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Fascinating question, reminds me of this one that made HN almost two years ago: “What happens when you type Google.com into your browser and press enter?”

https://github.com/alex/what-happens-when

Would love to see Knuth's Challenge setup in a repo for collaboration.

HN Discussion on the above link:

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



Sad that it has 57 issues and 27 pull requests, and begins with When you just press "g" the browser receives the event and the entire auto-complete machinery kicks into high gear... ... not exactly a low level explanation.

I was expecting non-keyboard input methods, keyboard scan codes, keymaps, input modes, fonts, glyph selection, screen resolution and rendering. Scan codes are mentioned in the next paragraph, but the rest are ignored (OK, they finally mention DOM rendering, but leave out the earlier screen updates). Two seconds later they are discussing ARP... really? What about virtualization, sandboxing, firewalling, link layer selection, use of multiple concurrent link layers for a given network-layer address range, non-ARP link layers, existing transport-layer sessions to the relevant hosts, VPNs, proxies, offline mode, caches and load balancers (possibly multiple layers), non DNS-based name resolution, differences between available IPv4 and IPv6 address classes (mobile IP), layer 2 transparent proxying (eg. proxy ARP/heartbeat), switch ARP caches, etc.

I also think this is an excellent interview question for any internet-related engineering role, as it really gives people a chance to show their degree of comprehension of many layers.


Know anything else that actually lists all that? I'd love to research each thing on its own independently but it's so hard to come up with the list without already knowing


I'd love to research each thing on its own independently but it's so hard to come up with the list without already knowing

I would recommend examining from different perspectives: network activity or options at each layer (wireshark), browser activity (firebug, debugger, or read the code), OS activity (debugger, or read the code), program activity (debugger, or read the code, or learn various system monitoring tools like filesystem monitors, kernel or library-based tracers, etc), virtualization systems (their hardware and network emulation), network systems (proxies, load balancers and caches of all configurations) security systems of all kinds. You are right that there is probably no holistic resource, because the question is sort of ridiculously specific.


You should add this to the repo!


The only option is to fork, as apparently it's unmaintained. I have enough projects right now.


You've just made my day. I've had some ideas brewing on this topic for years. It is now at the top of my reading list....along with the other suggestions in this topic.

> Would love to see Knuth's Challenge setup in a repo for collaboration.

Go for it!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: