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.”
I would not consider integration to be basic maths, honestly. Basic maths is addition and multiplication, and maybe vector geometry.
You probably wouldn’t consider x86 opcodes to be basic computer literacy either ;-)
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.
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
Makes sense. Human beings don’t actually need proteins or fats.
At least dead ones dont
Proteins and fats are for the weak. ARE YOU A FUCKING WEAK LOOSER?? No? THEN WHATS STOPPING YOU???
That seems like the opposite problem
Cherry tomatoes are the things you put in a salad at a restaurant to feel healthy, then pick them out once you get back to the table.
Look I’m not saying you’re wrong or anything just that I really don’t appreciate you stalking me.
What? Cherry tomatoes are good
For compost, yeah
Wut? Are we talking about one of those “salads” with mayo, eggs, bacon strips, croutons, sugary dressing and whatnot?
Because if not, then cherry tomatoes are going to be pretty much the sweetest thing you’ll find for your salad. I’d definitely still call them healthy, but not more so than the other ingredients of a salad…
Yep, that’s pretty much the standard salad where I live. Most people understand that’s not really healthy, but it still feels healthier than bread sticks and butter. The cherry tomatoes are the extra convincing we need to actually call it “healthy”
As a small time backyard gardener I can say from experience that 4 plants made more cherry tomatoes than I could reasonably eat. I was giving ziplock bags of cherry tomatoes away to people at work for a couple months. They probably did produce a year’s worth of cherry tomatoes, but they don’t refrigerate or freeze particularly well and they’re not a great choice for making tomato sauce because of their liquid/pulp/skin ratio.
Similarly I’ve found that I can grow a year’s supply of red pepper flakes with a whopping two cayenne plants. The rate at which I consume red pepper flakes, I’m about out by the time this year’s peppers start ripening.
I’m able, in my tiny little garden, to grow more of single kinds of foods than I can reasonably eat. I cannot grow enough to sustain my entire diet; I’d need more land than I own to grow grain.
You mean things like Bigfoot?
deleted by creator
That’s the one
That’s ludicrous.
It obviously stands for cryptography in general, not just TLS.
You know, I think I agree with the spirit of that assertion but not the letter of that assertion.
There are people who are kind of at their limit knowing that on your phone there’s a Facebook app, but you have to use your browser and go to the website on a computer. These folks will hear dial tones and TV static in their heads if you say “secure socket layer” to them. These folks have probably also sat through NordVPN ads and heard words like “secure” and “encrypted” used together, and will probably make understandable mistakes like “how’d someone steal bitcoins? I thought it was encrypted?”
Holy shit that was weird.
I saw that thread, I think. Or the same person in another thread talking about the same thing.
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.
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
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.
deleted by creator
I’ve had to train literally hundreds of people over the various jobs I’ve had and it causes me to over explain in almost every conversation.
I got two tricks to figure out how much someone knows about a topic and encourage them to ask questions rather than lie just to avoid being a little uncomfortable.
First, I look for them to use vocabulary that I haven’t already mentioned or if they seem to understand something just by using a couple words.
Second, I ask them to explain something early in the conversation to make it easier to ask if they don’t understand something later. It’s usually really simple, but it really does work to lower communication barriers.
I like to think it makes us feel more like equals trading expertise, rather than like I’m some authority talking down to them.
I hope this helps anyone
That’s the ticket, IMO. I start off assuming they know, then pause to ask “are you familiar with x concept?”
If they say yes and they really mean no, there’s really not a lot I can do. But it seems to make people feel at ease when talking to me - I don’t get called out for over explaining or infantalizing people this way.
Yeah that’s good stuff!
Seems like you have your best shot if you make it seem like a lack of knowledge on a given topic is really safe. “Is this something you’ve nerded out on before, or not yet? Oh you have - cool, it’s pretty esoteric. Do you know enough to summarize it in a sentence or a few? If not I like to try to give my own high level before diving in.”
Something open ended in there gives you a chance to validate whether the ‘I know what that is’ was ego or truth.
If there’s any chance they’ve heard about a concept, I’ll ask if they’ve heard of it and take them at their word (without comment either way).
And if they’re kinda nodding impatiently, I’ll wrap up the explanation and move on to the deeper level
At first, people will sometimes be defensive or lie about knowing a topic, but after you establish there’s no judgement either way with you I’ve found people become less hesitant about admitting ignorance and will even want to hear your explanation of something to check their knowledge
I also do the flip side - I pride myself on admitting when I don’t know something, so that might play in too
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.
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
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.
basically one computer science lecture later, I still haven’t told anything about my workday.
ahaha
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”.
Tough. Try my best with analogies, tailored if possible, but still tough.
“We had to try to translate our app into a language this ancient computer could understand. It was as easy as suddenly switching to Shakespearean English halfway through this conversation. Or like if you drove your car to a mechanic who’d been cryogenically frozen for the last hundred years. He doth protest much, methinks.
Overall, it was like putting together a thousand-piece puzzle, except the box came with a million pieces and most of them were useless!”
Good thing your mom was surely impressed with you all the same 😉
deleted by creator
But then you’re Mansplaining.
Even if we have the Patriarchy app4oved mind scanning kits out instructions are to not use them so…I’d hate to accidentally not Mansplain something.
Frustrating!!
Since there’s no way to fix the incorrect assumptions (a t-shirt proclaiming “I explain granularly to men too!!”?), best bet is probably to get ahead of the assumption with a disclaimer & offer to be receptive to feedback.
Someone could still be upset I guess but can’t please everyone!
Discussed a bit below.
Me talking to my dad (who last held the position of professional programmer 30 years ago) about the programming problem I’m working on and vastly overestimating how much he knows about modern software development parlance
One of the things I look for in employees is the ability to distill complex topics into the important elements and explain it to someone unfamiliar. Some people are just naturally good at it, and it’s a really important skill for moving up a leadership chain.
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 asje
(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?
The important thing is to be important. Engineering has to deal with teammates that don’t have these problems, so they equalize.
Isn’t there a version about mineralogy?
Oh, OP got me fooled, I thought this is original xkcd, well done on photoshop.
“So this here is a rock”
“Uhh, in english please?”“Oy! Guv! This here’s a rock, innit?”
They are talking about computer things, that’s about how familiar I am with whatever they are talking about.
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
andint3
might do.Everyone knows
jmp
andnop
, though, of course. 🙃Of course
That’s the exact same thing. x86 Assembly Code isn’t that hard(to know what it is, understanding it is something different),but I havent heard of the other stuff.
ret
urn from subroutine, int3 would be something relating to interrupts off the top of my head.Int3 is a special single-byte (CC, if I recall correctly) form of the INT instruction (which is CD imm8, I think) to raise an interrupt. Interrupt #3 is the debugging interrupt, so by overwriting any instruction with CC, you place a breakpoint there.
of course nods along
I’m pretty sure I’ve had this exact conversation. Took me a minute to understand what the point was.
NOP
0x90
“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.”
Here’s the source:
And the 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!
I mean I’m only missing int3
I didn’t even know they released int2
You guys have int?
I rolled a 14, so I have a +2 modifier.
I’ve got intelligible but that’s about it
It’s one of my six dump stats.
Bro missing the wis gains
I think it is 0xCC, or in long form 0xCD03
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
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.
deleted by creator
deleted by creator
I can’t tell if you’re joking and deliberately invoking the original comic above
She meant she could figure it out just playing around with it, not reading a manual or asking around. I told her she’d have to read a manual.
Erm I might be showing my inexperience here.
Is there no equivalent to
man LOAD
in the commodore world? Or even justhelp
?That thing had 16K of ROM. Every byte was sacred. Only manual was on paper.
Not that I remember.
With the ubiquity of C64 emulators, that’s easy enough to demonstrate by experiment
Someone told me every processor used 0xEA
Not sure if this is a riff on the joke or not.
Back in the day I dabbled in 6510 code, and up until today hadn’t even bothered to look at a chart of opcodes for any of its contemporaries. Today I learned that Z80 uses $00 for NOP.
Loth as I am to admit it, that actually makes sense. Maybe more sense than 65xx which acts more like a divide-by-zero has happened.
The rest of the opcode table was full of alien looking mnemonics though, and no undocumented single byte opcodes? Freaky, man.
But the point is that not even Z80 used $EA. If the someone was real they probably meant every 65xx processor.
*Lolth
What? This is system programming, not web development.
I was making a joke about their spelling error.
And I was making a joke about the D&D spider goddess.
But the word is “loath,” which has an accepted alternate spelling of “loth”. “Lolth” is the Dungeons and Dragons spider goddess, commonly worshiped by Drow.
Oh Christ, I can’t believe I missed that.
Operating on low sleep and responding before coffee.
I shall flog myself now
I thought NOP was 0x90. Edit: oh I just read the rest of the comment.
As a bytecode tinkerer, I’d say considering NOP to be global knowledge is a slippery slope.
Might want a sled and a ROPe to have a smooth descent
Careful you aren’t thrown off by a retpoline
Now I want to know what int3 does.
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. When the CPU encounters the instruction, it 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.
Hey thank you!
Not what I thought it was for sure 😃
How does it work if an instruction gets replaced by the INT3 though?
Excellent question!
Before replacing the instruction with INT 3, the debugger keeps a note of what instruction was at that point in the code. When the CPU encounters INT 3, it hands control to the debugger.
When the debugging operations are done, the debugger replaces the INT 3 with the original instruction and makes the instruction pointer go back one step, thereby ensuring that the original instruction is executed.
Whoo that seems complicated, I mean you akready compile a debug version.
Thanks for the explanation!
The debug version you compile doesn’t affect the code; it just stores more information about symbols. The whole shtick about the debugger replacing instructions with INT3 still happens.
You can validate that the code isn’t affected yourself by running objdump on two binaries, one compiled with debug symbols and one without. Otherwise if you’re lazy (like me 😄):
https://stackoverflow.com/a/8676610
And for completeness: https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Debugging-Options.html
Thanks, excellent information!
How come debug exes are bigger? Is the nifty stuff tucked on at the end?
All the code I know is stackoverflow search results.
Things said by Github copilot.