Hacker News

Latest

I Championed Prediction Markets. Look What They've Become

2026-07-27 @ 00:25:05Points: 30Comments: 43

PGSimCity - How PostgreSQL Works

2026-07-27 @ 00:19:04Points: 116Comments: 18

Show HN: Port Zero – how I learned to stop worrying and love PORT=0

2026-07-27 @ 00:03:48Points: 10Comments: 3

Recently I wasted several hours wrangling my dev environment only to find out that the browser frontend was talking to the wrong version of the backend. This got me thinking--why on earth are we still using simple numbers to describe which process to connect to? Why not use names instead? I thought of all the times a program wouldn't start because of port conflicts. The more I thought about it, the crazier it seemed.

Modern operating systems already offer no-conflict ports: if you make your TCP server listen on port 0, the OS assigns you a random available port. But that only solves half the problem.

I built the other half: PortZero. It's a GPLv3 program that watches for processes (and docker containers!) with a special PZ_TUNNEL environment variable:

  PZ_TUNNEL=myapp-{branch}.portzero.local:80 npm run dev
When it sees such a process or container, PortZero does this:

1. Create a virtual NIC (if it hasn't already)

2. Create a new virtual IP address

3. Create a DNS record that substitutes things like {branch} based on the working directory of the process, and points at that virtual IP address

4. Start listening on that virtual IP address on the port of your choice (e.g. port 80 for http, port 443 for https, port 5432 for postgresql)

5. Forward any TCP connections to that virtual IP address / virtual port to the random, OS-assigned port that your process or container is actually listening on

The result is you don't have to think about ports anymore, you just have to think about subdomains. You can have multiple services available on port 80 without conflicts, as long as they have different portzero.local subdomains.

It does some other cool stuff like:

- Enable HTTPS on local HTTP services by creating a local CA and registering it on your machine

- Enable cloud tunnels so you can access your apps on other devices (paid feature)

Links:

https://portzero.net/docs/

https://github.com/PortZeroNetwork/portzero

Visualizing the Artemis II Mission

2026-07-26 @ 23:50:25Points: 6Comments: 0

Artemis II Photo Timeline - https://news.ycombinator.com/item?id=47954394 - April 2026 (28 comments)

Fonts In Use – Find out where a font is used

2026-07-26 @ 23:45:09Points: 16Comments: 0

US citizen charged after GrapheneOS phone wipes during airport search

2026-07-26 @ 22:21:41Points: 188Comments: 116

Teaching Kids Forth

2026-07-26 @ 21:39:17Points: 53Comments: 16

We have proof automation now

2026-07-26 @ 20:53:26Points: 80Comments: 10

Plasma Tunnels Reveal How Dying Satellites Fall to Earth

2026-07-26 @ 20:31:57Points: 47Comments: 25

Simulate cassette tape audio profiles using FFmpeg

2026-07-26 @ 20:02:15Points: 76Comments: 40

How to Block Some of the Bots

2026-07-26 @ 18:32:46Points: 83Comments: 93

Decker, a platform that builds on the legacy of Hypercard and classic macOS

2026-07-26 @ 18:23:06Points: 228Comments: 56

Introduction to Data-Oriented Design [pdf]

2026-07-26 @ 18:11:16Points: 116Comments: 35

How AST-grep Rewrote Tree-sitter in Rust and Made It 30% Faster

2026-07-26 @ 17:51:03Points: 74Comments: 11

French firefighters face 'pyrocumulonimbus' for first time

2026-07-26 @ 17:49:44Points: 191Comments: 101

How to Write English Prose

2026-07-26 @ 17:29:35Points: 78Comments: 41

Show HN: CheapSecurity – Lightweight, Self-Hosted CCTV for Linux SBCs

2026-07-26 @ 15:53:55Points: 109Comments: 22

Design is compromise

2026-07-26 @ 15:51:12Points: 199Comments: 74

The relay market powering token resellers and fraud

2026-07-26 @ 15:17:06Points: 158Comments: 94

The New AI Superpowers: Focus and Followthrough

2026-07-26 @ 13:13:03Points: 148Comments: 45

Show HN: Reverse Minesweeper

2026-07-26 @ 12:51:03Points: 154Comments: 52

Go Analysis Framework: modular static analysis by go team

2026-07-26 @ 12:21:26Points: 182Comments: 40

Htmx 4.0, the first JavaScript library to release exclusively on the Game Boy

2026-07-26 @ 12:00:11Points: 365Comments: 113

Kill The Cookie Banner

2026-07-26 @ 11:53:17Points: 841Comments: 411

History of John Backus's functional programming project [draft]

2026-07-24 @ 16:32:23Points: 9Comments: 1

I learned PCB design, 3D printing and C just to listen to music

2026-07-23 @ 14:37:13Points: 176Comments: 35

The Usefulness of Useless Knowledge (1939) [pdf]

2026-07-23 @ 12:58:02Points: 23Comments: 1

I wanted a clock that never needed setting. Things escalated

2026-07-23 @ 12:01:52Points: 55Comments: 52

Using sed to make indexes for books (1997)

2026-07-23 @ 04:25:24Points: 52Comments: 9

Jimothy the raccoon has a rare spinal condition. Here's what that means

2026-07-21 @ 19:28:55Points: 102Comments: 54

Archives

2026

2025

2024

2023

2022