Hacker News

New stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. British Museum bans visitors from photographing Bayeux Tapestry(bbc.com)
    1comments
  2. Wanix – WASM-native Unix sandboxing for the web(wanix.dev)
    discuss
  3. A Colab sandbox for exploring the Drosophila connectome(drive.google.com)
    discuss
  4. Let AI agents search across workspace with the Universal Search MCP Server(developers.google.com)
    discuss
  5. Cargo Ship Tourism Voyages(cnn.com)
    discuss
  6. The Small Car Is Disappearing in America(worldofsystems.co)
    1comments
  7. What's a 'wellness darty'? Gen Z's latest college party trend(mashable.com)
    discuss
  8. What's Behind the Baby Bust?(newyorker.com)
    1comments
  9. Tau-induced mitochondrial reverse electron transport drives neurodegeneration(cell.com)
    discuss
  10. Auditing in the age of (good enough) AI(trailofbits.com)
    discuss
  11. IBM: First Modular Cryogenic Systems in Milestone Toward Fault-Tolerant(ibm.com)
    discuss
  12. Show HN: Praxos – Multiplayer AI(praxos.ai)
    discuss
  13. European Commission Reaches Agreement(ox.ac.uk)
    discuss
  14. Jev is an honest game changer(benbrady.dev)
    2comments
  15. Ask HN: Dead Internet
    5comments
  16. Floci: Local AWS Emulator for Development, Testing, and CI(github.com/floci-io)
    discuss
  17. The Real-Time Volumetric Cloudscapes of Horizon – Zero Dawn(drive.google.com)
    discuss
  18. Why So Much Money on "AI"?(rosshartshorn.net)
    1comments
  19. What Palantir Actually Does(thediff.co)
    discuss
  20. A tiny macOS menu bar app that keeps your Mac awake with the lid closed(github.com/archestra-ai)
    discuss
  21. Strands harness: frontier performance with 28% lower token cost(strandsagents.com)
    discuss
  22. Accumulated Variance(vibingarcologies.substack.com)
    discuss
  23. Lasso: AI Watermarks Change How Agents Act(techstrong.ai)
    discuss
  24. Show HN: WebGCM – a global climate model running in the browser on WebGPU(echorelay.net)
    discuss
  25. Lisse: Squircle JavaScript Library(corne.rs)
    discuss
  26. Splitt – Group expense splitting, settle-up, no caps (iOS)(splitt.cash)
    discuss
  27. Synthesia Interactive Avatar API(synthesia.io)
    discuss
  28. The Internet (1997 – 2021)(opte.org)
    1comments
  29. Show HN: A Self-hosted Deferred Deep linking. Firebase dynamic link model(github.com/newtdev)
    1comments
  30. Gold Steadies as Traders Weigh Inflation and Fed Hike Outlook(coinmarketcap.com)
    discuss

Ask HN: How to Learn Systems Programming

1 pointsby 1h ago
2 comments
I am a junior back end web developer. When I was learning programming, I just wanted to make "apps". But now that I can make "apps", I realize that with all the abstraction and tools out there, making "apps" is really not that hard.

Now that I am in my career, I am far more inspired by lower level libraries and tools, like multiplexers, terminals, event loop libraries, new compilers and languages. But I have no clue how to build any of that stuff.

I know I am not gonna learn that stuff by just reading books, watching tutorials, or just continuing on with my web dev career, I won't learn that stuff on the job.

For those of you who have broken out of web dev and become proficient with lower level concepts, how do you recommend learning systems level programming?

1h agoHN ↗

My best advise on this comes in two parts:

1. Go low level, as low as your language or runtime allows.

2. Keep things simple, where simple means few not easy.

As a Node.js developer low level to me are net sockets, streams, and the file system. Yes there is more, but those 3 things will get you 95% of what you need. You really need to understand that when it comes to systems programming most of what you need is in the OS kernel and you do not have direct access to any of it, but it is available to you in some form via run time API. For example TCP, UDP, TLS, and more are all in the kernel. What you eventually see are payloads riding upon those protocols with their header information stripped.

In the case of Node.js if you learn streams and pipes you can eventually figure out everything else out. A server is just an event listener on a port, IPC, or named pipe and all communications are data fragments on sockets and sockets are duplex streams. File system access is also comprised of streams and streams can share data access via pipes.

After that its just a matter of solving for practical problems one step at a time as they come up. This is how I wrote my own HTTP and WebSocket libraries. Node ships with an excellent HTTP library, but mine is lower level so I can do other things with it. My WebSocket library can now push messages at 5,000,000 per second on a single socket including roundtrip responses. You just take it one step at a time. You find lots of challenges and break a lot of things along the way, but only because you will find new edge scenarios later that you were not currently aware of.

52m agoHN ↗

i appreciate the write up and the insight, i will apply it, thanks!