658
Clever guy (lemmy.world)
top 50 comments
sorted by: hot top controversial new old
[-] vzq@lemmy.blahaj.zone 212 points 2 weeks ago

As a PhD who has tried doing home improvement projects, it’s the most believable thing in the film.

[-] MadBob@feddit.nl 40 points 2 weeks ago

Actually some of the most naïve people I've ever met were theretofore academically successful.

[-] Riven@lemmy.dbzer0.com 15 points 2 weeks ago

My fiancee has a couple degrees while I just graduated high school. She's incredibly smart but I'm definitely more street savvy. She grew up a bit sheltered.

load more comments (1 replies)
[-] ByteOnBikes@slrpnk.net 25 points 2 weeks ago

Some pleeb shouted at me, "I thought you were an engineer!" And I shouted back, "A software engineer!" while I hammer a nail with my shoe.

[-] calcopiritus@lemmy.world 11 points 2 weeks ago

Ah, a C programmer.

[-] captainlezbian@lemmy.world 9 points 2 weeks ago

I’m a regular engineer and yeah I pull such shit. Listen, there’s a reason I tell everyone not to do what I do.

[-] skulblaka@sh.itjust.works 15 points 2 weeks ago

The difference between a regular idiot doing a dangerous job and an engineer doing a dangerous job is the engineer knows which parts of the job he's risking imminent death on. There may often be no other difference.

load more comments (1 replies)
[-] 0x4E4F@sh.itjust.works 21 points 2 weeks ago* (last edited 2 weeks ago)

Really?

Genuinely asking, I'm just an engineer... with very very bad grades. Passed was enough for me.

Once a professor asked me if I wanted to take the exam again because it was clear that I knew more than what I showed on the exam (a lot of 2 + 2 = 5 mistakes, I was fairly good at that and owe most of my low grades to that). I asked him if I passed, he said yes. Fuck that shit, I'm taking that grade and parading it across town, wooohoo 🥳.

As they say, a PhD is about learning more and more about less and less. Some of the smartest people at conferences I've attended legitimately risk death crossing the street.

load more comments (1 replies)
[-] bjoern_tantau@swg-empire.de 162 points 2 weeks ago

A high voltage electric fence. At some point even standing in front of the thing is enough.

[-] SzethFriendOfNimi@lemmy.world 51 points 2 weeks ago

Air only has so much resistance itself. High enough voltage and the closest path to ground is where the charge will go.

Just like with Lightning

load more comments (1 replies)
[-] thefartographer@lemm.ee 36 points 2 weeks ago

My arm once got pulled into an electric fence when I was a kid and I couldn't stop getting shocked until someone physically pulled me away. It was more of a self-control issue than accidentally bridging the gap.

That was the day I learned that some pain can be pleasant. The owner of the property didn't seem as pleased with my discovery as I did. He had to shut off the fence and yanked my arm away and then told me to go explore my perversions somewhere else. I was too young to understand the word "perversion," and I'm now eternally grateful to that poor unprepared rancher.

[-] bjoern_tantau@swg-empire.de 12 points 2 weeks ago

For more fun form a chain with other people and be the furthest from the person touching the fence.

load more comments (4 replies)
[-] absGeekNZ@lemmy.nz 17 points 2 weeks ago

At approx 3kV/mm, you would have to be pretty close to a 10kV fence.

Humidity plays a big role as does the frequency that the fence is running on. But you would be pretty safe standing a meter away, on that dry sunny day in the picture.

Also above a point, the high voltage causes the conductors to buzz.

[-] frezik@midwest.social 12 points 2 weeks ago

Dry? It was a carribean island, right? Probably humid as fuck.

load more comments (2 replies)
load more comments (6 replies)
[-] ArbiterXero@lemmy.world 14 points 2 weeks ago

With enough voltage, everything is a conductor.

[-] Grumpy@sh.itjust.works 13 points 2 weeks ago

I have a 10KV electric fence. 5KV to 15KV is typical electric fence voltage in a farm or bear prevention fence. Can't feel a thing unless you actually touch it.

They are also not lethal. Very low current, just very high voltage. So it only hurts like fuck, but won't kill a human, cow, or any other mammal that touches it.

load more comments (2 replies)
load more comments (8 replies)
[-] Lev_Astov@lemmy.world 100 points 2 weeks ago* (last edited 2 weeks ago)

At 10kV, a random stick would be all it takes to start an arc. He knows what he's doing.

[-] stupidcasey@lemmy.world 47 points 2 weeks ago* (last edited 2 weeks ago)

True, True… Hay who thought it was safe to run 10,000V Wire through a flammable overgrown jungle?

load more comments (1 replies)
load more comments (2 replies)
[-] OutlierBlue@lemmy.ca 64 points 2 weeks ago

Just because you're very good at one thing doesn't mean you're good at another. Sometimes the further you go down one path, the less you know about everything else.

load more comments (8 replies)
[-] SharpieThunderflare@lemmy.ca 59 points 2 weeks ago

IIRC, he was messing with the kids and knew it was off because the lights were off. He proceeded to put his hands on it and convulse wildly as a joke.

load more comments (3 replies)
[-] Th4tGuyII@fedia.io 53 points 2 weeks ago

As someone who has worked with academics, the more specialised the person, the less common sense they seem to hold onto.

As such, if this was outside their PhD specialisation, then it'd absolutely make sense that this wouldn't occur to them.

load more comments (4 replies)
[-] LEDZeppelin@lemmy.world 51 points 2 weeks ago

Clearly his PhD is not in electrical engineering or biology

[-] The_Picard_Maneuver@lemmy.world 38 points 2 weeks ago

It's actually a PhD in trombone. Someone misheard it one time, and nobody has ever thought to follow up.

"Oh, Alan? Yeah, he has a doctorate in bones or something."

load more comments (1 replies)
[-] celsiustimeline@lemmy.dbzer0.com 47 points 2 weeks ago

He must have skipped all of the Electrical Engineering classes in his Paleontology program.

[-] captainlezbian@lemmy.world 45 points 2 weeks ago

Yeah that’s people with PhDs in my experience

[-] finitebanjo@lemmy.world 9 points 2 weeks ago

Yeah, in this case it's so high voltage that the resistance of the dry stick wont mean as much.

[-] Damage@feddit.it 42 points 2 weeks ago

Wet wood from the ground is probably a better conductor than dinosaur scales

[-] SpaceNoodle@lemmy.world 9 points 2 weeks ago

Did dinosaurs have scales?

[-] Steve@startrek.website 29 points 2 weeks ago

They couldn’t even read music at all 😞

load more comments (1 replies)
[-] Evil_Shrubbery@lemm.ee 26 points 2 weeks ago

I dont think so, bananas are a relatively new thing iirc.

[-] MySkinIsFallingOff@lemmy.world 10 points 2 weeks ago

Mmmmmh, nom nom nom nom.

That's exactly the right amount of dopamine hit I'm scrolling for. Now I can turn off my phone and roll over to sleep. Thanks bud 👌

[-] MelastSB@sh.itjust.works 15 points 2 weeks ago

Obviously: how would they weight themselves otherwise?

load more comments (1 replies)
load more comments (1 replies)
load more comments (1 replies)
[-] Bertuccio@lemmy.world 42 points 2 weeks ago

I invite you to touch an electric fence with a stick then.

load more comments (4 replies)
[-] MalReynolds@slrpnk.net 35 points 2 weeks ago

I don't remember the scene, but personally I'd test an electric fence with a nonconductor. You'll probably get some sparks but won't die. You do you, ppl in this thread.

[-] Aceticon@lemmy.world 33 points 2 weeks ago* (last edited 2 weeks ago)

Well, I have an EE Degree specialized in Digital Systems - pretty much the opposite side of Electronic Engineering from the High Power side - and I would be almost as clueless as that guy when it comes to testing a 10,000V fence for power.

On the other hand I do know a lot of interesting things about CPU design ;)

What’s the most interesting thing you could tell us about CPU design, something that a layman could appreciate.

You should know as a software developer I write inefficient code and appreciate all the extra clock cycles we get these days haha.

[-] Aceticon@lemmy.world 29 points 2 weeks ago* (last edited 2 weeks ago)

First a fair warning: I learned this stuff 3 decades ago and I've actually been working as a programmer since then. I do believe the example I'll provide still applies up to a point, though CPUs often implement strategies to make this less of a problem.

=====

CPU's are internally like an assembly line or a processing pipeline, were the processing of an assembly instruction is broken down into a number of steps. A rough example (representative but not exactly for any specific CPU architecture) would be:

  • Step 1: fetch assembly instruction from memory
  • Step 2: fetch into the CPU data in memory that the instruction requires (if applicable).
  • Step 3: execute arithmetic or binary operation (if applicable).
  • Step 4: evaluate conditions (if applicable)
  • Step 5: write results to memory (if applicable)

Now, if the CPU was waiting for all the steps to be over for the processing of an assembly opcode before starting processing of the next, that would be quite a waste since for most of the time the functionality in there would be available for use but not being used (in my example, the Arithmetic Processing Unit, which is what's used in step #3, would not be used during the time when the other steps were being done).

So what they did was get CPUs to process multiple opcodes in parallel, so in my example pipeline you would have on opcode on stage #1, another that already did stage #1 and is on stage #2 and so on, hence why I also called it an assembly line: at each step a "worker" is doing some work on the "product" and then passing it to the next "worker" which does something else on it and they're all working at the same time doing their thing, only each doing their bit for a different assembly instruction.

The problem with that technique is: what happens if you have an opcode which is a conditional jump (i.e. start processing from another point in memory if a condition is valid: which is necessary to have to implement things like a "for" or "while" loop or jumping over of a block of code in an "if" condition fails)?

Remember, in the my example pipeline the point at which the CPU finally figures out if it should jump or not is almost at the end of the pipeline (step #4), so everything before that in the pipeline might be wrong assembly instructions being processed because, say, the CPU assumed "no-jump" and kept picking up assembly instructions from the memory positions after that conditional-jump instruction but it turns out it does have to jump so it was supposed to be processing instructions from somewhere else in memory.

The original naive way to handle this problem was to not process any assembly instructions after a conditional jump opcode had been loaded in step #1 and take the processing of the conditional jump through each step of the pipeline until the CPU figured out if the jump should occur or not, by which point the CPU would then start loading opcodes from the correct memory position. This of course meant every time a conditional jump appeared the CPU would get a lot slower whilst processing it.

Later, the solution was to do speculative processing: the CPU tried to guess if it would the condition would be true (i.e. jump) or false (not jump) and load and start processing the instructions from the memory position matching that assumption. If it turned out the guess was wrong, all the contents of the pipeline behind that conditional jump instruction would be thrown out. This is part of the reason why the pipeline is organised in such a way that the result of the work only ever gets written to memory at the last step - if it turns out it was working in the wrong instructions, it just doesn't do the last step for those wrong instructions. This is in average twice as fast as the naive solution (and better guessing makes it faster still) but it still slowed down the CPU every time a conditional jump appeared.

Even later the solution was to do the processing of both branches (i.e. "jump" and "no-jump") in parallel and then once the condition had been evaluated throw out the processing for the wrong branch and keep doing the other one. This solved the speed problem but at the cost of having double of everything, plus had some other implications on things such as memory caching (which I'm not going to go into here as that's a whole other Rabbit Hole)

Whilst I believe modern CPUs of the kind used in PCs don't have this problem (and probably also at least ARM7 and above), I've actually been doing some Shader programming of late (both Computing and Graphics Shaders) and if I interpreted what I read correctly a version of this kind of problem still affected GPUs not that long ago (probably because GPUs work by having massive numbers of processing units which work in parallel, so by necessity they are simple) though I believe nowadays it's not as inadvisable to use "if" when programming shaders as it used to be a few years ago.

Anyways, from a programming point of view, this is the reason why C compilers have an optimization option of doing something called "loop unrolling" - if you have a "for" loop with a fixed number of iterations known at compile time - for example for(int i = 0; i < 5; i++){ /* do stuff */ } - the compiler instead of generating in assembly a single block of code with the contents of the "for" loop and a conditional jump at the end, will instead "unroll the loop" by generating the assembly for the body of the loop as many times as the loop would loop - so in my example the contents of that "for" loop would end up as 5 blocks in assembly each containing the assembly for the contents, one after the other, the first for i=0, the next for i=1 and so on.

As I said, it's been a long time since I've learned this and I believe nowadays general CPUs implement strategies to make this a non-problem, but if you're programming microcontrollers or doing stuff like Compute Shaders to run on GPUs, I believe it's actually the kind of thing you still have to take in account if you want max performance.

Edit: Just remembered that even the solution of doing the parallel execution of both branches doesn't solve everything. For example, what if you have TWO conditional jump instructions one after the other? Theoretically would need almost 4 or everything to handle parallel execution for it. How about 3 conditional jumps? "Is you nested for-loop screwing your performance? More news at 11!". As I said, this kind of stuff is a bit of a Rabbit Hole.

load more comments (2 replies)
[-] Honytawk@lemmy.zip 32 points 2 weeks ago

Is his PhD in Electrical Engineering?

[-] MehBlah@lemmy.world 16 points 2 weeks ago

He is already standing too close and that stick would arc with that many volts flowing through it. The most likely outcome in reality if it had been energized. The arc would have jumped from the stick to him and no more New Zealand guy.

load more comments (4 replies)
[-] Matriks404@lemmy.world 13 points 2 weeks ago

Hey it's a "It's a UNIX system" movie, isn't it?

[-] JackbyDev@programming.dev 17 points 2 weeks ago

Did you know the weird 3d file system navigation thingy was a real program (just not widely used)?

But I can't get over the way she held the mouse lol

[-] darklamer@lemmy.dbzer0.com 11 points 2 weeks ago

The funny thing about that quote is that it really was a Unix system that was shown on screen.

load more comments (2 replies)
load more comments (1 replies)
[-] wowwoweowza@lemmy.world 11 points 2 weeks ago

Why people gotta hate on a movie three decades old that remains perfect?

[-] The_Picard_Maneuver@lemmy.world 13 points 2 weeks ago

Gotta meme to keep it alive

[-] billwashere@lemmy.world 11 points 2 weeks ago

Yep. Very domain specific knowledge but couldn’t pour piss outta a boot with the instructions on the heel.

load more comments (2 replies)
load more comments
view more: next ›
this post was submitted on 26 Sep 2024
658 points (95.8% liked)

Funny

6669 readers
124 users here now

General rules:

Exceptions may be made at the discretion of the mods.

founded 1 year ago
MODERATORS