this post was submitted on 14 Sep 2026
268 points (96.9% liked)

Programmer Humor

33371 readers
1126 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 3 years ago
MODERATORS
all 34 comments
sorted by: hot top controversial new old
[–] lime@feddit.nu 86 points 2 weeks ago (4 children)

what happened to cache invalidation?

[–] VegOwOtenks@lemmy.world 51 points 2 weeks ago (3 children)

Networking Issues is probably Cache Invalidation in Disguise.

[–] lime@feddit.nu 52 points 2 weeks ago (2 children)

...it's dns again isn't it

[–] VegOwOtenks@lemmy.world 24 points 2 weeks ago (1 children)
[–] Monument@piefed.world 8 points 2 weeks ago (1 children)

If you visit the site via its IP address, it says no.

Source: I made that up.

[–] Natanael@infosec.pub 7 points 1 week ago

Surprise SNI error

[–] OpenStars@discuss.online 14 points 2 weeks ago

No, definitely not!

...

...

^but^ ^actually^ ^yes^

[–] Ooops@feddit.org 4 points 2 weeks ago* (last edited 2 weeks ago)

Low TTL of dns entries is there to avoid classical Cache Invalidation, so kind of...

[–] aquovie@lemmy.cafe 3 points 2 weeks ago (2 children)

I keep seeing "networking is hard" come up here. Where is this coming from? Is it IPv6 or something?

[–] blargh513@sh.itjust.works 13 points 2 weeks ago (3 children)

I started in networks.

The volume of people who work in technology that don't understand networking is astonishing. I probably spent more time explaining how a web proxy works than I did actually setting things up.

Firewall rules? Spells and magic. Routing? Unpossible! DNS? Forget it, I'm going home.

[–] aquovie@lemmy.cafe 3 points 1 week ago

People lack the necessary motivation. I explained DHCP, IP, and ports to my kids in like 10 minutes. Because otherwise they couldn't play Minecraft together.

[–] prettybunnys@piefed.social 2 points 2 weeks ago

Subnetting and the difference between /8 and /24 or /32 and how you allocate IP addresses between them has always been crazy for me to grasp.

I feel like if I could finally understand that after 20 years … I’d be happy but no here I am, effectively ignorant to it and looking at networking wizards as true wizards

[–] whoisearth@lemmy.ca 2 points 1 week ago

It's always DNS...

[–] brotundspiele@sh.itjust.works 7 points 2 weeks ago* (last edited 2 weeks ago) (3 children)

Networking is so easy nowadays. Just plug a network cable into your device and it mostly works out of the box. Don't you guys remember the bad old times of coax cables and token ring?

Imagine providing a public WiFi before 1993, even if you ignore the fact that WiFis had a cable back then.

[–] ignotum@lemmy.world 7 points 1 week ago

WiFis had a cable back then

[–] Ooops@feddit.org 3 points 2 weeks ago

I'm not old enough to having been bothered by network rings and grew up with the high-tech that were end resistors.

[–] HamsterRage@lemmy.ca 2 points 1 week ago

The most important technique to master: The Ping and Wiggle.

[–] rounding_error@lemmy.today 6 points 2 weeks ago

Distributed systems.

[–] who@feddit.org 6 points 2 weeks ago

OP might be suffering from cache misses. (Or maybe hasn't yet learnt about it.)

[–] who@feddit.org 45 points 2 weeks ago* (last edited 2 weeks ago)

There are only two hard things in Computer Science: cache invalidation and naming things.

— Widely attributed to Phil Karlton

There are 2 hard problems in computer science: cache invalidation, naming things, and off-by-1 errors.

— Leon Bambrick 2010-01-01

[–] thoughtfuldragon@lemmy.blahaj.zone 26 points 2 weeks ago (2 children)

There's actually only one and it's my coworkers.

Human-human interface configuration falls under networking issues. And naming things, now that I think about it.

And occasionally off-by-one issues :(

[–] Susaga@sh.itjust.works 7 points 2 weeks ago

It's possible your coworkers are the ones dealing with those issues, and you just never notice.

[–] weps@lemmy.world 5 points 2 weeks ago (2 children)

off by one is a margin not an error

[–] dohpaz42@lemmy.world 18 points 2 weeks ago

Tell that to the array out of bounds exception!

Off-by-one errors are real errors. A common mistake rookie developers make (or used to make, anyway) is forgetting that arrays are zero-indexed when creating an array, then seeing the value that should be in array[n-1] when they read array[n].

Another common off-by-one error is double counting: Some accumulators don't do all their processing in the same function, and occasionally one thing will be checked for inclusion twice, causing the accumulator to have one more element than it should.

[–] cantstopthesignal@sh.itjust.works 4 points 1 week ago* (last edited 1 week ago) (1 children)

The more I get into it the more I'm convinced that the most important skill in programming is lexicography.

[–] gandalf_der_13te@feddit.org 1 points 1 week ago

yeah i agree ... many people can write good software, but to make it stick around, you need a good name for it

[–] humanspiral@lemmy.ca 2 points 2 weeks ago* (last edited 2 weeks ago) (2 children)

0 based indexing of course, so what's the joke? oh, mixing up count and max index is a hardship you get over after a couple of years, but it comes back sometimes.

[–] RustySharp@programming.dev 2 points 1 week ago

The more you move through the networking stack, the more you start seeing OB1 error potentials.

Many protocols have packet ids starting from (and wrapping back to) 1. Modbus registers start from 1, but stored in memory offset 0.

Packet lengths can either include or exclude the length itself. E.g. packet length 200 in a protocol could either mean the length is followed by 200 bytes of data; or 1 byte containing the length + 199 data; or even 4 bytes length + 196 data (off by four!)

It's a wild world out there.

[–] gandalf_der_13te@feddit.org 1 points 1 week ago

it's not just zero-based indexing though. i've had situations like these a couple of times: write a for ... of loop to iterate through the elements of an iterable. a lot of the times, there's an unwanted first / last element in the list (that doesn't actually belong there) and i forget to remove it, then end up with garbage data in the result set.

[–] olafurp@lemmy.world 2 points 1 week ago

Caching and race conditions

Relentless problems... leadership