this post was submitted on 14 Sep 2026
267 points (96.8% liked)

Programmer Humor

33809 readers
1360 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 85 points 1 month ago (4 children)

what happened to cache invalidation?

[–] VegOwOtenks@lemmy.world 51 points 1 month ago (3 children)

Networking Issues is probably Cache Invalidation in Disguise.

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

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

[–] VegOwOtenks@lemmy.world 24 points 1 month ago (1 children)
[–] Monument@piefed.world 8 points 1 month 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 month ago

Surprise SNI error

[–] OpenStars@discuss.online 14 points 1 month ago

No, definitely not!

...

...

^but^ ^actually^ ^yes^

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

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

[–] aquovie@lemmy.cafe 3 points 1 month 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 1 month 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 month 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 1 month 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 month ago

It's always DNS...

[–] brotundspiele@sh.itjust.works 7 points 1 month ago* (last edited 1 month 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 month ago

WiFis had a cable back then

[–] Ooops@feddit.org 3 points 1 month 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 month ago

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

[–] who@feddit.org 5 points 1 month ago

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

[–] rounding_error@lemmy.today 5 points 1 month ago

Distributed systems.

[–] who@feddit.org 44 points 1 month ago* (last edited 1 month 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 1 month 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 1 month ago

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

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

off by one is a margin not an error

[–] dohpaz42@lemmy.world 18 points 1 month 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 month ago* (last edited 1 month 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 month ago

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

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

Caching and race conditions

[–] humanspiral@lemmy.ca 2 points 1 month ago* (last edited 1 month 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 month 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 month 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.

Relentless problems... leadership