There have been multiple accounts created with the sole purpose of posting advertisement posts or replies containing unsolicited advertising.

Accounts which solely post advertisements, or persistently post them may be terminated.

programmerhumor

This magazine is from a federated server and may be incomplete. Browse more on the original instance.

grendel , in Oops, wrong person.
@grendel@lemmy.world avatar

Is this skype? A skype screenshot? How old is it?

YoorWeb OP ,

Pretty damn old.

HubertManne , in question, When were programmers supposed to be obsolete?

So far my experience with ai is it cannot evaluate the quality of the data it uses to any significant degree. As such it can summarize which is convenient for searching and give examples but ultimately you have to correct its mistakes and know enough to do so. There is some savings for a programmer in the sense you might be able to get some rough scaffolding and its a bit eaiser to identify relevant search links but I don't see it replacing developers. It definitely allows one to do more though or even increase the quality. One really great thing it can do is auto commenting of the code which does not need as much improvement as actual code and makes it more likely for you to do the task (both because it does it and because it causes you to go. no don't explain it like that). Is similarly helps with documentation. I doubt it could more than double productivity though. At least as how it stands now. Im not sure it can do much better without becoming general ai.

Ephera ,

One really great thing it can do is auto commenting of the code

But then it only comments the ‘what’, it cannot possibly know the ‘why’. I know, some devs disagree on that, but personally, I would rather not have what-comments in my code.

HubertManne ,

I almost never put why. this cycles though hostnames and parses out blah blah blah. I guess I assume the why is self evident.

SzethFriendOfNimi , in Oops, wrong person.
@SzethFriendOfNimi@lemmy.world avatar

Remember, always validate your inputs.

draughtcyclist ,

Little Bobby Tables we call him.

azimir ,

Such great Exploits of a Mom: xkcd.com/327/

GombeenSysadmin ,

They had to change the law in the uk around naming companies!

VikingHippie ,

Company SC656788 is still named ROBERT’); DROP TABLE STUDENTS; LIMITED

Beautiful! Whatever they’re selling, I’m buying!

MightyGalhupo ,

I still can’t believe that comic is 15 years old now

tourist , in Oops, wrong person.
@tourist@lemmy.world avatar

why bother with the variations?

think they’re hoping to knock the same victim more than once?

messed up

Deebster ,
@Deebster@programming.dev avatar

Maybe it’s an attempt to evade automated systems that check for spam.

xmunk ,

So that their fixed script isn’t so predictable that we can just nuke them by looking for identical conversations.

Jknaraa ,

Could be to match the style of the target, to try and make the conversation feel more natural for them.

PM_Your_Nudes_Please ,

Probably a basic way to evade spam detection. If you start sending the exact same message to 500 people, most chat services will shut that shit down in an instant. But if you send unique messages, it makes you look more like a real person, and the chat system may let it slide.

Adalast ,

What’s bad is that modern spam detection can employ semantic algorithms so it would still catch all of them as the I’m as message. The use of synonyms in the optionals is a huge vulnerability in the scam.

Ephera ,

Well, it does not appear to be a terribly sophisticated system to begin with…

Adalast ,

Touché

MyFeetOwnMySoul , in Oops, wrong person.

How does this exploit work? I understand that inputs were not sanitized, but what did the injected code do?

powerofm ,

My guess would be the response text is passed through a rudimentary templating engine that looks for { and }. Somehow it must be processing the whole chat history. The templater fails at the unexpected braces in the code block and then just gives up (probably a try-catch ignores the error and sends the message anyway).

mumblerfish ,

So the attack would just be a } then?

kromem ,

I don’t think the code is doing anything, it looks like it might be the brackets.

That effectively the spam script has like a greedy template matcher that is trying to template the user message with the brackets and either (a) chokes on an exception so that the rest is spit out with no templating processor, or (b) completes so that it doesn’t apply templating to the other side of the conversation.

So { a :‘b’} might work instead.

Sharpiemarker , in Oops, wrong person.

Whoops, the mask slipped and we all saw the bot behind it.

titter ,

Mask slipped? The bot saw a person speak code and was like l, rips off mask Comrade!

Sharpiemarker ,

Lol good point.

Decoy321 ,

And then they were best friends. <3

Sharpiemarker ,

🤜🤛

aliyss ,
@aliyss@programming.dev avatar

I think there’s a second mask. Who sends oops wrong person in the same text message?

HStone32 , in question, When were programmers supposed to be obsolete?

sometimes, it feels like managers hate engineers, and are constantly plotting their replacement. maybe its because it hurts their ego to know that the engineers they manage worked harder to get there and deserve a higher salary.

or else, it could be office politics. anyone who can claim to have removed an entire department from payroll is due a huge raise.

LesserAbe ,

I don’t think it’s just managers saying hey we could automate such and such a thing away. It’s human nature to think “how could I improve this” which almost immediately leads to “if I get this right it could mean no work at all”

HStone32 ,

that explains why the idea to replace engineers would enter peoples minds, but not why they would try so, so hard to get people to believe it.

LesserAbe ,

Every business’s biggest expense is labor. Skilled labor costs more. The people in charge like it when you save money.

I think it’s wrong. But only because the interests of the people who own the machines and businesses diverge from the worker’s interests. I’d like to see more worker cooperatives. If the workers own the machines, then it’s good when things are automated.

I also don’t believe anything will ever be truly automated, or that it’s a good idea to try.

All that to say we don’t have to resort to an explanation of “managers must hate engineers” to understand why they would want to eliminate positions.

tias ,

sometimes, it feels like managers hate engineers

They hate engineers because the engineers ask difficult questions that somebody needs to answer in order to really automate a process, and they take the time necessary to do so.

savvywolf , in question, When were programmers supposed to be obsolete?
@savvywolf@pawb.social avatar

Was before my time, but iirc C and other (then) high level languages were supposedly able to put programmers out of jobs.

tias , (edited )

SQL was explicitly designed to allow “normal humans” to query the database. Nowadays even “normal developers” aren’t able to use it properly.

NigelFrobisher , in question, When were programmers supposed to be obsolete?

Zero-code has been about to make us all redundant for about five decades running so far.

tiefling , in My debugging experience today: Quantum Debugging

The most cryptic status code I’ve received is 403: OK, while the entire app fails to load

Venat0r ,

That means you’re not allowed in, and that’s OK 😂

Probably should be redirected to a login page or something though 😅

cone_zombie ,

“Shhh, it’s okay”

flambonkscious , in When your program is a complete mess but does its job

Yeah, I’ve been nursing one of these projects for a while…

Initially it started out as an autohotkey script, because I’m not a programmer, I’m a filthy windows engineer.

Then I tried rewriting it in Powershell because I wanted to own the code (v1 was written on work time, so they provably own it), and have it in something slightly less arcane (!). That was not a great choice of languages, but I’m still not ready to learn a real one, yet.

There’s surely some head banging roflcopter in there - I’m still not sure I’ve tested all the scenarios, but I just don’t have the emotional energy to wade through it (and my client can’t even use the new version, I’m not sure any others would care).

It was fun, but now it’s just a burden

realitista OP ,
@realitista@lemmy.world avatar

We all have one. I’m also not a professional programmer but I have stuff like this for my home automation that I know I should really clean up but it works so I don’t want to mess around and break it.

gravitas_deficiency , in My debugging experience today: Quantum Debugging

Haha, heisenbugs, always a fun time.

More seriously, I’d be surprised if this wasn’t a classic race condition

BlueKey OP ,
@BlueKey@fedia.io avatar

It wasn't :D
See my comments below.

mcmodknower ,

Well, technically it was a race condition. Just one between two different programs.

BeigeAgenda , in question, When were programmers supposed to be obsolete?
@BeigeAgenda@lemmy.ca avatar

Rational Rose etc. could generate code from UML diagrams, then you “only” needed architects.

In reality it only gave a little help during the design phase, as soon as someone touches the generated code, you have to manually merge changes to UML.

leisesprecher ,

It’s really weird, though, that nobody really created a language/tool to bridge these two world. It’s always just generating one representation from the other, mostly in a bad way.

I’d argue, that for many problems, a graphical view of the system can help reasoning. But there simply is nothing in that regard.

Ephera ,

For OOP languages, you can definitely get IDE plugins, which create UML from code.

Personally, I’ve never found them useful, though, partially because our code was never OOP enough, e.g. we were using the actor pattern, or had important modules with functions, or had lots of small classes for handing data around etc…

But also because it just makes for bad architecture diagrams.
It has no sense of what’s important and what should be abstracted away. Or how to structure the diagram to make it readable, e.g. REST API at the top, database at the bottom.

What I also really don’t like about generated architecture diagrams in general (even when the contents are specified via e.g. PlantUML), is that things jump around every time you make a structural change. This means people looking at the diagram have no chance of learning what it looks like, so they can spot changes or know where to look for what they’re interested in.

TheRagingGeek ,

I had to learn how to use that in the military, used to call it crashinal rose

andrew , in Gender.js
@andrew@lemmy.stuart.fun avatar

Joke’s on you because they’re all still mutable objects behind the reference.

Phen ,

Last one can be freely changed by anyone, the middle one still has some restraints.

soloner ,

Reassignment isn’t the same as mutation. But mutation depends on the type of value. If gender was a string like “female” it wouldn’t be mutable cuz strings are immutable in JS.

andrew ,
@andrew@lemmy.stuart.fun avatar

Yeah this is true. My joke makes an assumption about the type not being a primitive type.

andrew ,
@andrew@lemmy.stuart.fun avatar

var isn’t global unless it’s not inside a function. var is just function scoped, with declaration auto hoisted to the beginning of the function. let is a little more intuitive since you can’t refer to it before it’s been declared and has block scope rather than function scope.

Klaymore ,
@Klaymore@sh.itjust.works avatar

Wait… you can use a variable before you declare it?

andrew ,
@andrew@lemmy.stuart.fun avatar

<span style="color:#323232;">var a;
</span><span style="color:#323232;">(function() {
</span><span style="color:#323232;">  a='hoisted';
</span><span style="color:#323232;">  console.log(a);
</span><span style="color:#323232;">  var a;
</span><span style="color:#323232;">})()
</span><span style="color:#323232;">console.log(a);
</span>

Should log hoisted and then undefined, showing that you’ve assigned to the later-declared var a which was hoisted vs the external global a.

CheezyWeezle ,

Kind of. With hoisting, the compiler/interpreter will find variable declarations and execute them before executing the rest of the code. Hoisting leaves the variables as undefined until the code assigning the value to the variable is executed. Hoisting does not initialize the variables.

For example:

console.log(foo); var foo; //Expected output: console logs ‘null’

foo = ‘bar’; console.log(foo); var foo; //Expected output: console logs ‘bar’

console.log(foo === undefined); var foo; //Expected output: console logs ‘true’

This means you can essentially write your code with variable declarations at the end, but it will still be executed as though the declarations were at the beginning. Your initializations and value assignments will still be executed as normal.

This is a feature that you should probably avoid because I honestly cannot think of any good use case for it that won’t end up causing confusion, but it is important to understand that every variable within your scope will be declared at the beginning of execution regardless of where it is written within your code.

shotgun_crab ,

Classic javascript doing javascript things (this is why they introduced let and const)

lseif ,

typescript: const as const (readonly) ‘pretty please dont mutate it’

Baizey ,

// @ts

Bishma , in question, When were programmers supposed to be obsolete?
@Bishma@discuss.tchncs.de avatar

The earliest I can think of (from personal experience) is 4GL languages; the early low-code platforms that first started to get traction in the early 80s. They wouldn’t have replaced programmers but some thought/hoped they would usher in an age of “low skill” programmers that companies could get away with paying minimum wage to.

Ephera ,

Oh yeah, low-code platforms in general are pretty much always a thing, in every industry for various tasks.

I’ve also never seen any of them that were not horribly abused with ridiculous workarounds or custom code snippets, which effectively made them as complex as a real program.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • [email protected]
  • random
  • lifeLocal
  • goranko
  • All magazines