this post was submitted on 21 May 2024
1386 points (98.8% liked)

Programmer Humor

32361 readers
1007 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
 
top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 118 points 5 months ago (6 children)

One of the most useful concepts ever:

the Curse of Knowledge.

Explaining something to someone? Zoom out. Back up. What if that person were an alien, how much more context would you need to explain?

The curse of knowledge is a cognitive bias that occurs when an individual, who is communicating with others, assumes that others have information that is only available to themselves, assuming they all share a background and understanding. This bias is also called by some authors the curse of expertise.

[–] [email protected] 45 points 5 months ago (1 children)

My friend really needs to learn about this. He works for Intel and does some really involved stuff, I on the other hand am a moronic jackass factory worker.

No friend, I haven't the slightest idea what you're trying to tell me you did if you keep using technical terms.

[–] [email protected] 13 points 5 months ago (1 children)

If you said something like “if I were a marketing intern…” or “if I were a college freshman majoring in English, how would you explain it?”

…would he not know how to clearly communicate still? :)

Maybe get him with the “is this a curse of knowledge situation?” (along with a link to Wikipedia) heh

[–] [email protected] 11 points 5 months ago (2 children)

Problem is, even if they are capable of explaining it, it's basically our job to learn things 8 hours a day. Trying to catch someone up on that, who doesn't have that same job, that's nearly impossible. Well, and you still want to rant/tell about your day for social interaction purposes.

Like, my mum would also sometimes ask what my (programmer) workday was like and I'd start telling that we had to deploy onto a really old Linux system. Wait hang on, Linux is an operating system. And an operating system is the software that makes computers go. Do you know what "software" is? Hmm, it's like....
...And yeah, basically one computer science lecture later, I still haven't told anything about my workday.

Sometimes, I can try to leave out such words, like "we had to roll out our software onto a really old computer", but then I can practically only say "that was really annoying". To actually explain how I slayed the beast, I do need to explain the scene.

load more comments (2 replies)
[–] [email protected] 29 points 5 months ago (2 children)

what's it called when you try to be aware of this and inadvertently say stuff that comes off as condescending, umm, asking for a friend

[–] [email protected] 16 points 5 months ago (3 children)

ooooof

I know for men who are equal opportunity overexplainers it can still be seen as “mansplaining” when overexplaining to women.

But in general, if your tone of voice is right and it’s still happening, perhaps communicating your intention and a safeguard would work, at least sometimes?

May I try to explain this? If I start too basic, and overexplain so it feels condescending, please stop me so I can dig into it more technically.

load more comments (3 replies)
load more comments (1 replies)
load more comments (4 replies)
[–] [email protected] 105 points 5 months ago (2 children)

There's an old joke about two mathematicians in a cafe. They're arguing about whether ordinary people understand basic mathematics. The first mathematician says yes, of course they do! And the second disagrees.

The second mathematician goes to the toilet, and the first calls over their blonde waitress. He says to her, "in a minute my friend is going to come back from the toilet, and I'm going to ask you a question. I want you to reply, "one third x cubed.'"

"One ther desque," she repeats.

"One third x cubed," the mathematician tries again.

"One thir dek scubed."

"That'll do," he says, and she heads off. The second mathematician returns from the toilet and the first lays him a challenge. "I'll prove it. I'll call over that blonde waitress and ask her a simple integration question, and see if she can answer." The second mathematician agrees, and they call her over.

"My friend and I have a question," the first mathematician asks the waitress. "Do you know what is the integral of x squared?"

"One thir dek scubed," she answers and the second mathematician is impressed and concedes the point.

And as she walks away, the waitress calls over her shoulder,

"Plus a constant."

load more comments (2 replies)
[–] [email protected] 103 points 5 months ago (7 children)

Just yesterday I ran into some chucklehead here on Lemmy that had convinced themselves that the average person would interpret "crypto" to mean SSL rather than cryptocurrency.

[–] [email protected] 33 points 5 months ago (8 children)

I had one last week here on claiming the average person could feed themselves for years by growing cherry tomatoes from 6 tiny plants. Bro is supposed to be a big-time agricultural bigwig

[–] [email protected] 11 points 5 months ago (2 children)

Makes sense. Human beings don't actually need proteins or fats.

load more comments (2 replies)
load more comments (7 replies)
load more comments (6 replies)
[–] [email protected] 77 points 5 months ago (1 children)

All the code I know is stackoverflow search results.

[–] [email protected] 38 points 5 months ago

Things said by Github copilot.

[–] [email protected] 66 points 5 months ago (2 children)

Isn't there a version about mineralogy?

[–] [email protected] 101 points 5 months ago (1 children)
[–] [email protected] 28 points 5 months ago

Oh, OP got me fooled, I thought this is original xkcd, well done on photoshop.

[–] [email protected] 33 points 5 months ago (2 children)

"So this here is a rock"
"Uhh, in english please?"

[–] [email protected] 26 points 5 months ago

"Oy! Guv! This here's a rock, innit?"

load more comments (1 replies)
[–] [email protected] 40 points 5 months ago (1 children)
[–] [email protected] 14 points 5 months ago (1 children)

0x90^0x90^0x90^0x90^0x90^0x90^0x90^0x90^0x90^0x90^

load more comments (1 replies)
[–] [email protected] 33 points 5 months ago (2 children)

It's insane how close that handwriting is to randall's, did he make multiple versions of this comic or was this written by a professional forger?

[–] [email protected] 28 points 5 months ago* (last edited 5 months ago) (2 children)

For context, here's the original comic:

[–] [email protected] 11 points 5 months ago (1 children)

Holy shit. I remembered the original comic, but didn't remember what the subject matter of it was. So if you hadn't left this comment, I would have just gone on believing that the OP's version was Randall's version.

load more comments (1 replies)
[–] [email protected] 21 points 5 months ago* (last edited 5 months ago) (1 children)

Why does it not surprise me at all that this exists?

https://github.com/ipython/xkcd-font

load more comments (1 replies)
[–] [email protected] 33 points 5 months ago (7 children)

NOP is $EA, of course, and... um...

...sorry, I'm just a Commodore 64 scrub, I don't know nothing about this high and mighty Intel 8086 nonsense.

[looking up]

...it's 0x90 on IA-32? WHAT? Someone told me every processor used 0xEA because that was commonly agreed and readily apparent. ...guess I was wrong

[–] [email protected] 11 points 5 months ago (1 children)

My daughter told me the other day, "I bet I could figure out a Commodore 64 if I had one."

Good luck figuring out LOAD "*",8,1 by yourself, kid.

load more comments (1 replies)
load more comments (6 replies)
[–] [email protected] 31 points 5 months ago (1 children)
[–] [email protected] 10 points 5 months ago (1 children)

I feel like I skipped right over this comment.

[–] [email protected] 11 points 5 months ago (1 children)
load more comments (1 replies)
[–] [email protected] 29 points 5 months ago (1 children)

I mean who hasnt watched "Assembly Language in 100 seconds" by Fireship

load more comments (1 replies)
[–] [email protected] 27 points 5 months ago (2 children)

I mean I'm only missing int3

[–] [email protected] 35 points 5 months ago (1 children)

I didn't even know they released int2

[–] [email protected] 18 points 5 months ago (4 children)
[–] [email protected] 12 points 5 months ago

I rolled a 14, so I have a +2 modifier.

load more comments (3 replies)
load more comments (1 replies)
[–] [email protected] 25 points 5 months ago (1 children)

I recently took a class on ARM assembly, and yet I don't even know half of these x86 instructions.

[–] [email protected] 58 points 5 months ago (1 children)

'I recently took a french class, and yet I don't even know half of these german words'

load more comments (1 replies)
[–] [email protected] 25 points 5 months ago

of course nods along

[–] [email protected] 21 points 5 months ago (2 children)

I’m pretty sure I’ve had this exact conversation. Took me a minute to understand what the point was.

load more comments (2 replies)
[–] [email protected] 18 points 5 months ago (1 children)

Now I want to know what int3 does.

[–] [email protected] 23 points 5 months ago* (last edited 5 months ago) (5 children)

https://en.wikipedia.org/wiki/INT_(x86_instruction) (scroll down to INT3)

https://stackoverflow.com/a/61946177

The TL;DR is that it's used by debuggers to set a breakpoint in code.

For example, if you're familiar with gdb, one of the simplest ways to make code stop executing at a particular point in the code is to add a breakpoint there.

Gdb replaces the instruction at the breakpoint with 0xCC, which happens to be the opcode for INT 3


generate interrupt 3. The CPU when it encounters the instruction then generates interrupt 3, following which the kernel's interrupt handler sends a signal (SIGTRAP) to the debugger. Thus, the debugger will know it's meant to start a debugging loop there.

load more comments (5 replies)
[–] [email protected] 17 points 5 months ago* (last edited 5 months ago)

"oh you laughed at that joke despite the fact that the bridge followed the falling action instead of preceding the punch word? Amateurs shouldn't be allowed to watch comedy."

[–] [email protected] 15 points 5 months ago (1 children)

Alt text: "How could anyone consider themselves a well-rounded adult without a basic understanding of silicate geochemistry? Silicates are everywhere! It's hard to throw a rock without throwing one!"

load more comments (1 replies)
[–] [email protected] 14 points 5 months ago (1 children)

They are talking about computer things, that's about how familiar I am with whatever they are talking about.

[–] [email protected] 25 points 5 months ago (1 children)

Yeah, it's intentionally obscure. Basically, x86 assembly code is a way of telling a processor what to calculate, at a very low level.
So, it's similar to programming languages, but those actually get translated into x86 assembly code, before it's told to the processor. ("x86" is a certain processor architecture. Others exist, too, most prominently "ARM".)

But yeah, even with me knowing that much, I'd need to guess what ret and int3 might do.

Everyone knows jmp and nop, though, of course. 🙃

[–] [email protected] 15 points 5 months ago
[–] [email protected] 11 points 5 months ago* (last edited 5 months ago) (1 children)

Is there any situation where you'd want to remember the opcodes? Disassemblers should give you user-friendly assembly code, without any need to look at the raw numbers. Maybe it's useful to remember which instructions are pseudo instructions (so you know stuff like jz (jump if zero) being the same as je (jump if equal) making it easier to understand the disassembly), but I don't think you need to remember the opcode numbers for that.

Edit: Maybe with malware analysis where the malware in question may be obfuscated in interesting ways to make the job of binary analysis harder?

load more comments (1 replies)
load more comments
view more: next ›