this post was submitted on 10 Jul 2024
1080 points (93.8% liked)

Programmer Humor

19471 readers
1338 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 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] Fades@lemmy.world 186 points 3 months ago* (last edited 3 months ago) (10 children)

WHY IS THE HEALTH INPUT PARAMETER A GODDAMN STRING?????????????

Why are you passing ‘%’ inside said goddamn string?!?! Not to mention the static reference instead of the actual instance.

Shame on you

[–] jdaxe@infosec.pub 69 points 3 months ago

Also putting sudo in front of what looks like Java code not shell.

[–] cupcakezealot@lemmy.blahaj.zone 36 points 3 months ago (1 children)

OldMan.setHealth("Robert'); DROP TABLE Students;--")

[–] Fades@lemmy.world 4 points 3 months ago

Finally someone with some wisdom

[–] blind3rdeye@lemm.ee 29 points 3 months ago* (last edited 3 months ago)

I guess its just a reminder that getting a PhD is often more about dedication than it is about practical knowledge.

[–] Buddahriffic@lemmy.world 23 points 3 months ago

Because the meme wasn't made by someone with a doctorate in CS or even a bachelor's.

[–] devfuuu@lemmy.world 19 points 3 months ago* (last edited 3 months ago)

Smells like JavaScript.

[–] lud@lemm.ee 18 points 3 months ago (1 children)

It's not his fault the world is made this way.

He just has to follow it or else that man dies.

[–] explodicle@sh.itjust.works 6 points 3 months ago

Found the legacy support person

[–] FilthyShrooms@lemmy.world 14 points 3 months ago (2 children)

They use a look-up table with every value from 0% to 100%

[–] Mesa@programming.dev 4 points 3 months ago

Floating points included for thoroughness!

[–] FatTony@lemmy.world 9 points 3 months ago* (last edited 3 months ago)

Honestly, if someone were to try to safe my life. And I find out he uses a string as a parameter to do so. Just let me die right there.

[–] veganpizza69@lemmy.world 6 points 3 months ago (4 children)

The high level setter function should be made to handle both string and numeric values.

If it contains "%" it's a percentage value.

If it's a string without a "%" it's an absolute value and needs to be normalized.

If it's a numeric value, it's an absolute value.

If it's a numeric 100, it's 100%.

If it's a subunitary numeric value, it's a percentage.

[–] sandbox@lemmy.world 28 points 3 months ago (1 children)

yeah I’m gonna go ahead and reject your PR, please change this function to accept a decimal value between 0 and 1

[–] ChickenLadyLovesLife@lemmy.world 12 points 3 months ago (2 children)

Ironically, the worst thing I ever saw a coworker do was to change a function that accepted an Integer value between 0 and 32767 to one that accepted a Float between 0.0 and 1.0. Perfectly sensible change except that it resulted in a 120 mph knuckleball fired a foot above a 10 year old kid's head, followed by a fist fight between the client and my boss.

[–] jaybone@lemmy.world 11 points 3 months ago (1 children)

That sounds like something that should have been caught by QA, integration tests or unit tests long before it was launching balls at ten year olds.

[–] ChickenLadyLovesLife@lemmy.world 6 points 3 months ago (1 children)

Yes, testing the new Little League control module on a field full of Little Leaguers was not the best plan.

[–] jaybone@lemmy.world 3 points 3 months ago (2 children)

What is a little league control module?

[–] ChickenLadyLovesLife@lemmy.world 7 points 3 months ago

You push a button and it makes Little Leaguers do whatever you tell them to do. Very potent, should never be misused.

[–] skulblaka@sh.itjust.works 1 points 3 months ago

The Big League Control Modules are called contracts.

[–] funkless_eck@sh.itjust.works 4 points 3 months ago

yeah every engineer knows you gotta set KidHeadKnuckleballClearance waaay higher than that, it's compsci 101

[–] NTripleOne@lemmy.world 13 points 3 months ago (1 children)

If it’s a numeric 100, it’s 100%.

absolute lunacy

[–] veganpizza69@lemmy.world 3 points 3 months ago* (last edited 3 months ago)

Absolute (cm)

adding one 0:

100%, automatically changes unit to %

(Word table properties)

[–] Skates@feddit.nl 4 points 3 months ago (1 children)

Oldman.setHealth("dicktits"); //normalize pls

Oldman.setHealth("-100±1%"); //make percentage pls

Oldman.setHealth(0.0); //it is subunitary, but undefined behavior - will it access the 'numeric value' overload, or the 'subunitary numeric value' overload?

Don't write your own code just yet.

[–] veganpizza69@lemmy.world 3 points 3 months ago

Oldman.setHealth(“dicktits”); //normalize pls

0

Oldman.setHealth(“-100±1%”); //make percentage pls

Reject operations.

Use absolute number to remove the minus. Math.abs()

Oldman.setHealth(0.0); //it is subunitary, but undefined behavior - will it access the ‘numeric value’ overload, or the ‘subunitary numeric value’ overload?

Same result either way, so whatever if branch is first.

Understand the purpose. If you want to kill the old man with 0, then there's no point to leaving it as 0.9%, understand the non-linear characteristics of life and death.

When you're dealing with the low level functions, sure, you can keep it simple. When you're reaching the surface of user input, you're either going to waste time with validation and error reporting, or you're going to waste time with interfaces that can handle more shit without complaining. There's no fool proof either way, but good luck pissing users off with endless docs.

Don’t write your own code just yet.

If your goal in programming is just to be a traffic cop between the user input and the database, all you're doing is building a virtual bureaucracy, the kind that people really hate and is easily generated with coding tools. Or you're just deferring the "smoothing out" burden to the UI developers.

[–] iAvicenna@lemmy.world 3 points 3 months ago* (last edited 3 months ago) (1 children)
[–] veganpizza69@lemmy.world 1 points 3 months ago* (last edited 3 months ago)

...ends with. And there are more ways to parse.

[–] MonkderDritte@feddit.de 2 points 3 months ago (1 children)

Yeah, in Ren'py games usually it's character_health=100 or something.

[–] Fades@lemmy.world 3 points 3 months ago

Yes absolutely, the parameter even if not in a strongly typed language should be a specific number and the unit should be implied. Overload the method to support different units if necessary or provide a unit as an additional parameter instead of forcing the method to parse the string for any unit type hints that may or may not be there