"Fond" memories of playing King's Quest IV as a little kid on my parents' Apple IIe. You had to swap in a new 5.25" floppy almost every time you walked to another screen. I was fascinated by the game but my god was it tedious to constantly flip and swap the disks around. Google says it came on 8 double sided disks, I could have sworn it was a couple dozen.
The game I played for hours on the Apple ][+ was "FantasyLand 2041". It came on six double sided disks, and I was bummed to find out after quite a lot of game time that disk six was corrupted. I then found out many years later that it wasn't corrupted, the game wasn't ever finished. I then further discovered that John Bell, who produced that and other popular games (Sand of Mars, Beneath the Pyramids, House of Usher), is utterly batty and has written a few "the government is hiding UFOs from us" books.
That sounds really cool! My CS curriculum had one class where we had to read and write assembly (targeting an emulator for some Motorola chip I don't recall). It was fine but writing something that ran on an actual game console would have REALLY hooked me I'm sure. Instead we got that one little taste of low level development and then went back to writing sort algorithms in Java. This was in the early 2000s fwiw.
IPv4 has been "in crisis" for the entire 20 years I've worked in tech and we seem to be managing alright. Not to say things can't be better or we shouldn't try to improve. But I'll be surprised if v4 isn't still the default for most use cases in another 20 years.
That's because the Internet is basically broadcast TV 2.0 so no one cares about having public IPv4's at home as long as they can get to their memes and streaming. Great job, we took something that was meant to be a next frontier in humanity and let anyone connect with anyone else without gatekeepers/intermediaries and turned it 21st century brainrot troughs. Perhaps a society not in slow intellectual decline would have chosen otherwise.
> Great job, we took something that was meant to be a next frontier in humanity and let anyone connect with anyone else without gatekeepers/intermediaries
We already had that, it's called shortwave radio. The internet, especially as it's implemented and as it's used, is a terrible way to achieve this. It's service providers the whole way down.
It would be funny if HAM radio came back because the social filter imposed by the limitations wound up being more important than the technological capability.
Problem is that HAM radio also has social filters you broadcast to everyone and you don’t know who is listening. Encrypted communication is not allowed in HAM.
You are not supposed to use it for „communication” as in Facebook. You are supposed to use spectrum to test your gear and keep transmissions short to leave space for others.
I was in local HAM club and passed the exam for license but never got license to transmit mostly because you are not supposed to chat frivolously over the radio.
His point is that you're managing alright because you live in a country where your ISP can give you a public IP address. The author lives in a country where that is not possible and accesses the Internet behind layers of NAT.
It's possible for Indian ISPs to buy IPv4 addresses and assign them to customers. Maybe not for $5/month but if you're willing to pay US prices (plus tax) you should be able to get US quality service.
Yes, but they can't do that if every Indian wants one, and they especially can't do that if every Chinese person wants one at the same time.
IPv4 is 32 bits. It has a hard cap of ~4 billion addresses. China and India alone have 2.85 billion people.
Add in the United States and Europe, and now nobody else gets an IP address. South America, Canada, Mexico, Australia, Africa, the middle east, the rest of Southeast Asia, etc. don't get to use the internet. That's 4 billion people who don't get to use the internet.
> What's the difference, other than port forwarding? Does NAT cause some sort of unique issue that makes existence miserable?
The difference is that your home router does not get a public IP on its WAN interface, but perhaps the non-publicly-routable 100.64.0.0/10 [1] with CG-NAT.
So if you don't have a public IP address, how exactly are you supposed to forward anything? What is the other end supposed to connect to as an IP address?
> The difference is that your home router does not get a public IP on its WAN interface, but perhaps the non-publicly-routable 100.64.0.0/10 [1] with CG-NAT.
Yes...? I know that, but does that cause any issues in practice other than death of P2P?
> So if you don't have a public IP address, how exactly are you supposed to forward anything? What is the other end supposed to connect to as an IP address?
I already mentioned port forwarding because with something like CG-NAT, it is often not possible (or not allowed). But I am not aware of any issues that stem from this other than an inability for others to establish connections directly to you. In fact, my network has a public IPv4 without CG-NAT and yet I am already used to being unable to receive data other than back through a TCP stream. That is the entire reason reverse proxy tunnels (such as ngrok, etc.) exist.
> Yes...? I know that, but does that cause any issues in practice other than death of P2P?
Well:
> If you’re a gamer using PS5, Xbox, or PC in 2025, running into Double NAT or CGNAT port forwarding issues can make online play nearly impossible. Many 5G home internet and satellite services (like T-Mobile Home Internet and Starlink) put users behind carrier-grade NAT, which blocks direct connections and port forwarding. The good news? There are still workarounds that can open up your connection for smoother online gaming.
When we went from dial-up speeds to DSL/cable to fibre we were able to have all sorts new applications due to higher bandwidth. Smartphones are capable of all sorts of things because they're always online: back in the day people used to talk about "being online" and saying "sorry, I was offline", because you only had connectivity at the office or at home (where you dialed into your ISP).
What kind of applications and services are not being invented because we're stuck with the current non-P2P / centralized setup of IPv4+NAT?
> What kind of applications and services are not being invented because we're stuck with the current non-P2P / centralized setup of IPv4+NAT?
I don't know? I've never had CG-NAT and yet I've never seen a piece of software that takes advantage of that except maybe for games that use UPnP to open ports.
> I've never seen a piece of software that takes advantage of that except maybe for games
Maybe we haven't seen many products available on the market to take advantage of it because the current standard of NATs make such things practically unworkable?
Its pretty much impossible to ship smart home stuff that is hosted locally (i.e. not without it connecting to some cloud service) because people want to access these smart devices from outside their home. They're not likely to configure a VPN to connect home, they're not going to configure NATs in any workable fashion (or may be unable to, such as CGNAT), the applications probably don't want to have to handle having NAT hairpinning issues, etc.
So instead we continue down everything that's popular being something that requires a cloud proxy/relay (because that's the only way things actually work for most people), when in reality if things could just be public we could do a whole bunch more and empower people to easily host things themselves.
> I don't know? I've never had CG-NAT and yet I've never seen a piece of software that takes advantage of that except maybe for games that use UPnP to open ports.
Which, as a sibling comments mentions, is the point.
The fact that (CG-)NAT is in the way could be precluding the development of "software that takes advantage of that". It's a form of (negative/inverse) survivorship bias: kind of like zoning for only single-family homes and yet saying "no one wants mid-rise towers/apartments as evidenced by the fact no one building them". The current rules/structure/architecture preclude any other options.
Games, voice/video chat (especially open source ones), stuff like Tailscale, stuff like Magic Wormhole, ... stuff like Dropbox.
Is there anything you do on a computer that involves communicating with another user? That's not just anything - that's most things! All communication between two computers is improved by not requiring NAT.
Corporations love to keep us dependent on their central servers, of course.
Well you just handwaved away the most significant difference between NAT and native IP, obviously there won't be any major difference to discuss about anymore!
No, we can't ignore port forwarding. The key thing to realize about NAT is that someone owns the NAT. Back then, the NAT lived inside each of the home routers, so even if you have a "strict" NAT (endpoint-dependent mapping NAT, i.e. one that doesn't allow for hole-punching), you can easily bypass it by setting up a manual port forwarding entry.
With CGNAT that's no longer possible, you do not control the NAT. If your ISP decides to screw you over, you essentially do not have a choice but to get a relay, which needlessly costs you money.
---
But if you really want to know what advantages native IP has over NAT, I'd say the lack of keepalive packets (to keep a holepunched NAT entry from being removed) is a pretty nice thing.
What is this entitled mindset that somehow people without CG-NAT already benefit from their public IPv4? The only benefit I get from port forwarding is being able to expose my Plex media server to the wider internet, and Tailscale and Steam Networking being able to establish P2P. But even UDP should work through CG-NAT. So you can't hole-punch over WAN -- I've never encountered even a single piece of software that needs that except for servers.
Port forwarding is nice, but everyone already knows you can hardly run a server at home (even in countries where port forwarding is standard). It's been this way for as long as I can remember. So yes I handwave it away because it doesn't matter. If that's the only drawback to CG-NAT (other than single IP address bans applying to entire nations or something) I hardly understand why it warrants treatment as such a terrible awful disaster.
>What is this entitled mindset that somehow people without CG-NAT already benefit from their public IPv4?
I will raise you the opposite point: why deprive people of their ability to have a globally addressable IP address?
>But even UDP should work through CG-NAT.
I have already told you why it is wrong to make such as assumption, haven't I?
I have heard of stories coming from China and Vietnam that some ISPs implement so-called "type 4 NAT", otherwise known as symmetric NAT or NAT with endpoint-dependent mapping.
This kind of NAT is NOT hole-punchable. And because you don't control the NAT, you are simply SOL if one day your NAT decides to switch to it. Can't even use Tailscale without significant service degradation now, ouch.
Granted, I have only heard about it in Vietnam and China, and it's not a national thing -- only some provinces seem to have symmetric NAT implemented. But I feel the need to remind you that the ISPs there were able to get away with it, because the two countries have significant IPv6 presence. [0]
>Port forwarding is nice, but everyone already knows you can hardly run a server at home (even in countries where port forwarding is standard).
You can hardly run a server at home because we have been facing address space depletion since the dot com bubble.
>I hardly understand why it warrants treatment as such a terrible awful disaster.
You haven't faced an overloaded CGNAT gateway, have you? [1]
> I will raise you the opposite point: why deprive people of their ability to have a globally addressable IP address?
I wouldn't. I just don't understand, if the alternative is having no internet access at all, why CG-NAT is so utterly deplorable.
> This kind of NAT is NOT hole-punchable. And because you don't control the NAT, you are simply SOL if one day your NAT decides to switch to it.
Can you clarify what you mean by hole-punchable? If all else fails, just use TCP, right? Does TCP also not work? I'm also not talking about connection between peers but connection to a server. Connection between peers has never been a 100% reliable strategy regardless of anything.
> You haven't faced an overloaded CGNAT gateway, have you? [1]
I have not, but that is not inherent to CG-NAT, is it? Any switch or other hop between you and your destination can be overloaded. The destination itself can be overloaded.
> Please... learn more about hole punching before trying to engage in the topic.
I'm not engaging in the topic of hole punching though? The topic is whether CG-NAT has drawbacks other than lack of port forwarding. As I've said many times, expecting P2P connectivity has never been viable. But you ignore that and keep talking about how hard hole punching is, as if it's indispensable. What makes it so indispensable? Why is it so critical?
> Hole punching, in the context of NAT, is a technique where you establish peer-to-peer connection between hosts behind a NAT.
Good, that confirms I was never talking about that. I even explicitly clarified I was not talking about that (though you may have loaded my comment before that edit.)
> It does not matter which protocol you use, UDP or TCP or chuckles SCTP. If you want to establish P2P connection, you must hole punch.
You don't need to establish P2P connection so I don't see why that's such a problem. Again, it has never been safe to assume P2P connection is possible. Period. It is merely a progressive enhancement.
You don't mention port forwarding without mentioning about hole punching.
Because what port forwarding is for, if not to ease the establishment of direct connections?
>You don't need to establish P2P connection
If you are seriously suggesting Server-Client Is All You Need (TM), I feel we might as well stop the discussion now. VoIP essentially requires P2P, WebRTC is much better with P2P. BitTorrent etc obviously runs on P2P.
Services that provide relays (for people who can't establish P2P connection) for free, can only do so because they expect most connections to NOT go through the relay, and so they could simply stomach the costs of running one small relay.
"What's the difference other than the difference?". Not being able to forward ports means I can't play Tricky Towers with my friend (who isn't technical enough to join a VPN with me and would have privacy concerns about doing so).
Hole punching, which has various forms, may or may not work.
This means if you're doing something realtime, you may need to stick a server(reachable endpoint) in between it, at the very least reducing performance.
I have never seen any situation where this is not already necessary other than UPnP which already almost never works reliably. A publicly-addressable relay is already practically non-negotiable for anything over the internet.
For one, monopolies disabling it by default on their equipment? I remember some years ago having to guess the admin password at a vacation house so I could enable UPnP. It's usually framed as a security vulnerability, even.
uPnP fails when multiple devices are fighting over the same port assignments. uPnP fails when people have it disabled, as has been recommended many times over the years.
Part of the issue is this affects different countries differently, based on residential IP allocations to household ratios. I am currently on CGNAT in Australia split 256 ways, and any site that doesn't support IPv6 can be borderline unusable. I can't imagine what it's like in countries with worse ratios, like India.
It's been in crisis for decades, but it's also getting increasingly worse every year.
Does Valve even make games anymore? The only thing of note they've done since like 2020 is put a fresh coat of paint on CounterStrike. Which still counts of course but it feels like they are REALLY coasting on the reputation of games that came out 20+ years ago.
Valve's working on Deadlock, an FPS / MOBA. It's very polished, but in early access right now. Based on what I've seen when I tried playing it, and just what I hear in the gaming sphere, it'll probably be a decade-defining multiplayer game once it's done, like TF2 or CSGO both are.
They definitely coast, but when they do release something, it's always phenomenal. I do wish they'd make more games, though.
Definitely agree on the reduced usefulness for creative play. My kids got a lot of Lego sets as gifts when they were younger. Which is great, I love them playing with Legos. But once they're done with the instructions that's just kinda it. A Star Wars or Frozen or Minecraft themed kit ends up being all weird one-off specialty pieces. They are necessary to make an extremely detailed replica of the Millenium Falcon. But they have no place if you just want to grab a handful of bricks and start building whatever your imagination comes up with. We have a tub full of thousands of pieces and it never gets used. I think it's a bummer that they've pivoted to pushing these intricate $120 kits to adults rather than designs featuring more reusable components. You need to go out of your way to buy tranches of generic bricks if you want to have free play.
The Creator 3-in-1 sets are basically what you're looking for, they just don't get advertised much. A lot of them are more generified and rebuildable, sometimes even more refined versions of more expensive sets or parts of more expensive sets. Maybe the most obvious are the 3-in-1 dragon and dinosaur sets, which to me feel obviously like more generic reworks of D&D and Jurassic Park builds respectively, and have a lot more in the way of generic tiles and bricks than the licensed sets they're derived from.
I'm also looking right now and a lot of that resonates with me. The posted salary ranges are often a complete joke as you noted. "The pay band for this role is $80,000-250,000 commensurate with experience and interview performance". Yeah OK buddy are you seriously trying to tell me you have multiple people with the exact same job title making salaries over $100k apart? Feels like they're just giving the finger to lawmakers through malicious compliance.
I've also run into the industry specialization roadblock a few times. Got turned down by a fintech company after multiple interview rounds because I did not have banking industry experience, for example. I guess I get it as a tie breaker but I've operated in a PCI compliant environment for years, seems like that should count as relevant experience? Also if you're going to dumpster candidates without banking experience why on earth did you waste several hours of your staff's time giving me tech screens?
Job hunting has always sucked. But it feels particularly busted at the moment. The process is miserable. If you've coasted to an easy hiring in the last year, you're either amazing (and hats off to you!) or got very lucky.
The salary ranges are complete jokes on either end: they're either malicious compliance like you pointed out, or completely out of touch with reality.
My example of that was when I applied for an Architect role (as I'm at that point in my upward career trajectory), and they asked me instead to apply for a Senior Admin role as they "didn't know what the Architect role would look like yet". I did, I included my comp target, and got the hard sell on why I was being unreasonable and should take {2016_PAY}/{$100k below SV_FIRM} instead. I mentioned my absolute floor was {$75k lower than SV_FIRM}/{$25k lower than my target}, ran him through my math (median rent for the area, on-site expectations, commute costs, food costs, insurance costs, 50/30/20 budgeting, etc), and pointed out that floor would only cover needs (50) and savings (20) with no fun money (30) whatsoever. Ultimately I withdrew my name entirely because the guy just wouldn't listen to me, and all but demanded I be grateful for his number in the current economy.
I suspect something similar is going on with another company that's seemingly ghosted me, after I stated I was targeting their upper boundary of their listed comp range - still $85k below {SV_FIRM}, but with growth potential towards Architect and Director-type IT roles. Even when I'm fine eating huge pay cuts for work (and falling off the homebuying ladder, as not even {SV_FIRM} paid house-purchasing money), the employers out there really do want perfect diamonds for the cost of Halloween Trinkets.
> Also if you're going to dumpster candidates without banking experience why on earth did you waste several hours of your staff's time giving me tech screens?
This is also something that's grinding my gears. Had an investment firm put me through six technical interviews with glowing recommendations every step of the way only for the seventh round (CIO) to put the kibosh on it without a reason and after showing up unprepared and disinterested. Also had companies say I lack financial discipline experience when I've literally built models, showback systems, budget forecasts, and cemented six-figures of monthly savings in prior roles; same with companies saying I "lack compliance experience" despite calling out running infra in highly regulated environments, performing compliance audits for clients, and uplifting infra to satisfy compliance regimes.
If I didn't know better, I'd say the entire HR process is just feeding shit into chatbots and letting them make hiring decisions. Nobody seems to actually care about the humans involved or the wider systems at play.
It's immensely frustrating, but I can only keep on keeping on until something changes. I don't need to win every application, I just need to win one.
As someone applying right now I agree. I think I've had one company out of dozens get back to me on a cold application this year. Every contact that has led to an interview was from being referred in by a current employee, or a LinkedIn recruiter reaching out to me about a job. I assume the application forms get spammed with hundreds if not thousands of applicants. It's hard to blame someone for not wanting to sift through all that muck when there's already a stream of vetted candidates coming in from their recruiter. Sucks for the job seekers, though.
I'm putting more time into cleaning up my LinkedIn profile since that's been my most reliable route into hiring pipelines (other than referrals and networking).
I assume online forms are spammed with thousands of AI generated resumes now. The only reason I apply is it seems to flag your account as active which triggers recruiters to contact me.
I got laid off at the end of last year and am currently interviewing for Staff+ DevOps/Platform Engineer type roles. I definitely feel this. I've had a decent flow of recruiter inquiries and had multiple companies go 2-3 rounds of interviews deep with me (not counting the initial "do you have a pulse" recruiter screen calls). Then the communication always seems to dry up and I'm left to wonder what box I failed to check on their hiring rubric.
Semi related, holy hell do companies have a lot of interview rounds these days. It seems pretty standard to spread 5-6 Teams calls over the course of a month. I get that these are high salary, high impact roles and you want to get it right. But this feels really excessive. And I'm not talking about FAANG tech giants here. It's everyone, from startups to random midsize insurance companies.
Very cool work! This is giving me a big nostalgia hit, as a LONG time ago (when UO was a current game ;) I maintained a C++ UO emulator called UOX3. To be clear I absolutely did not initially develop it or even write any particularly large or difficult features. I just took over maintaining the codebase, taking patches and cutting releases, managing the community, that sort of thing. The original author decided to step away and I had apparently been enough of a busybody in the tool's community that he tapped me to lead it for a while. I also helped some Canadian guy with money, hardware, and bandwidth to burn run a private server based on UOX. Both were delightful experiences and I learned a ton.
In hindsight I am very glad Origin was not overly litigious and didn't send the FBI to my house for "hacking" their game.
When I was in high school, I played a lot of UO. It was actually the last computer/video game I ever played regularly, because I convinced myself as a teenager that I was addicted to it and needed to drop it "cold turkey" to focus on academics and extracurriculars.
(A sign of the times for the late-1990s nostalgics: I sold my UO account on eBay for a few thousand dollars and an MTG Mox Pearl. I owned a bunch of virtual real estate, e.g. a UO tower on an island only accessible via moongate. The high bidder "threw in" a Mox Pearl as a kind of informal escrow, to make sure I completed the account transfer after getting paid.)
Before I dropped UO from my life, I discovered UOX. I was learning C++ and UOX was a great way for me to practice my emerging C++ skills.
My clearest memory of feeling the power of programming was when I created a mod for my UOX server that allowed me to drop an unlimited number of interconnected and color-coded moongates all over my server, creating something akin to the feeling of the game "Portal," but long before Valve released "Portal."
It was after having a blast with UOX that I decided to dig into programming much more. Somehow, the UOX server mod made programming feel "real" for me in the way my prior forays into coding simply didn't.
That led to me learning Python -- as a way of toying around with the Slackware Linux server I had in my basement. I left C++ behind, but it was an important stepping stone for me. Now, decades later, learning Python was probably the single most important decision of my life in childhood. (See e.g. https://amontalenti.com/about)
UOX is such a cool project. UO was a really ahead-of-its time internet game, as well. Great memories. Thank you.
That’s awesome to hear!
Actually UOX3 is one of the inspirations behind Moongate. The way it approached the server architecture and scripting was really interesting and it influenced some of the ideas I’m exploring in the project.
Projects like UOX3 are a big part of the history of the Ultima Online emulator scene, so it’s great to hear from someone who helped maintain it.
reply