NET-69
-
A hiatus, and hopeful return
26SEP2024, Captain Picarl
Work, and some life events, have recently taken me away from SE, my hobby software development, and my normal routine. Please standby while I get my shit together.
As always: Fuck Russia, Fuck Putin, Fuck Donald Trump.
Slava Ukraini. -
Rest in Peace, James Earl Jones
10SEP2024, Captain Picarl
Star Wars fans everywhere have lost a huge hero and institution to them yesterday. May The Force Be With You.
-
ChatGPT: A new Era of Script kiddies.
18JUN2024, Captain Picarl
I was recently approached by a fellow clan member in Space Engineers to help him with a script.
The ask was simple enough: Use a DefenseShields API to get the heat value of a shield.
Specifically: He just wanted to get the value written to the programmable blocks' custom data.
Alright, seems straightforward. I didn't think much of it. New scripter learning scripting, right?
What this clan member had failed to mention was that he didn't know how to code at all - and was using ChatGPT and assistance from anyone who would answer in order to complete this script and get it running in a larger script (also made with chatGPT assistance) and was largely just collecting working pieces of code until he assembled something that ran.
What ChatGPT gave him was...a terrible amalgamation of unrelated iteration and string appending while using the wrong objects.
The script is as follows:
void Main(string argument)
{
// Specify the block type you want to check (IMyUpgradeModule from your mod)
List<IMyTerminalBlock> blocks = new List<IMyTerminalBlock>();
GridTerminalSystem.GetBlocksOfType<IMyUpgradeModule>(blocks);
// Initialize custom data string StringBuilder customData = new StringBuilder();
// Iterate through each block
foreach (IMyUpgradeModule block in blocks)
{
// Example: Read properties of each block
customData.Append($"Block Name: {block.CustomName}\n");
customData.Append($"Type: {block.GetType().Name}\n"); // Displaying the type of the block
customData.Append($"Is Working: {block.IsWorking}\n");
customData.Append($"Shield Heat: {block.GetShieldHeat}\n");
customData.Append("\n"); // Add a blank line for separation
}
// Set the custom data of the programming block itself
IMyProgrammableBlock pb = GridTerminalSystem.GetBlockWithName("YourProgrammingBlockName") as IMyProgrammableBlock;
if (pb != null)
{
pb.CustomData = customData.ToString();
Echo("Custom data updated successfully.");
}
else
{
Echo("Programming block not found.");
}
}
...So, the issue with all of this: Is that most of these lines are useless.
This script may appear to be chock full of relevant objects and operations, but the issue is: Most all of it is fluff!
Useless fluff that did nothing relevant to the end-goal of simply printing an int to the CustomData string of the programmable block!
I went ahead and accomplished what he (name redacted...for now) wanted the script to do with the following:
private PbApiWrapper DSapi;
I'll spare the in-depth dive of each object and it's relevance - but ultimately: This ChatGPT script would never have output the string we wanted. It iterates through every IMyUpgradeModule, which is hilarious - because that's stuff like...yield and speed upgrade modules not remotely related to the Defense Shield mod, and appends the modules' Name, Type, Whether it was operational or not, and finally - shield heat.
public Program()
{
DSapi = new PbApiWrapper(Me);
}
public void Main(string argument, UpdateType updateSource)
{
Me.CustomData = $"Shield Heat: {DSapi.GetShieldHeat()}\n";
}
Problem is, Batman: There is no shield heat on an upgrade module. Never was. Never will be.
Now, what concerns me here is not simply a shitty script. There are humans making shitty scripts all day, every day - that's nothing new under the sun.
What is concerning is the fact that we may have folk running around attempting to masquerade as men of science and practitioners of logic that they don't actually understand.
While ChatGPT and other Language Learning Models (LLMs) may someday consume enough data and training sets to accurately pump out a correct versions of scripts and other code - it won't be because they 'generated' it spontaneously, but rather: A crawler detected a working version, consumed it, and regurgitate its functional bits in an order the user wants. This is, of course, a far cry from the concept of "AI" that popular culture holds - but it won't stop a business major from throwing a picture of terminator on a scare-piece of journalism with the title:
"AI: It's coming for YOUR job! Undersell yourself TODAY!"
"But Picarl! What's the worst that can happen? This is just some dork trying to script in a videogame! Aren't you taking this a little far?"
In a video game? Not much. I get it: It does seem overboard to start a rant and rave about generated script, right?
However: I'm a bit of a philosopher.
It's time to take this principle to the 'nth' degree and ask you, the reader, the imagine a world where this hypothetical pretend-programmer ends up in a position where they are managing code that is critical to some kind of serious infrastructure - whether that's writing a real-time safety monitor on some piece of industrial equipment, or logging transactions somewhere mundane-but-essential for accountability: The damage a fool in the right place can do is staggering.
In the best case: This hypothetical project-managed-by-a-fool lingers and falters until said pretend-programmer either learns the craft proper, is fired, or quits.
Sure, there's always the fourth option of "The organization simply lingers and suffers" - but I'm doing the managers of the world the courtesy of assuming they will be able to identify their weak link.
In each of these cases - time and money are wasted on what could, arguably, be considered fraud on behalf of the pretend-programmer.
The worst case scenarios are fatal in a world where safety mechanisms everywhere are driven by software monitor-and-detection systems.
I can hear it now: "Picarl! You're just afraid of ChatGPT and AI because it's going to replace you!"
No. No it is not. Only fools believe we are approaching some kind of machine consciousness with technology like ChatGPT.
Only when we see an AI that progresses towards something seemingly akin to a soul will I start to get concerned about being replaced.
Of course - by the time I'm replacable: Most of the Earth is. And we'll have a totally different scale of problem on our hands altogether at that point.
Where does that leave us?
In the next generation of script-kiddies:
Fools who can generate compiling code masquerading as men of natural science.
Normally I would take some kind of solace in the human filters of the world - that surely businessfolk and technical managers have the awareness, headspace, and capacity to detect generated code and fakers before they touch any codebases.
...but those human systems often fail.
There will be slips through the cracks.
The fakers will get through the door, at least once. That's just being realistic.
Which brings us to the unfortunate first-but-also-last line of defense: Real men of the Natural Sciences are going to have to snuff out the pretenders. The alternative is to begin accepting dangerously poor quality of code for the sake of satisfying some MBA's hamfisted benchmarks, ultimately endangering people, all while diluting the real talent pool.
That's not to say: "Harass anyone who uses ChatGPT!"...
...but it is to say:
"Name and shame anyone who would try to pass-off generated code as their own solution and capabilities. Nevermind their protests while you do it: Presumably - you have the real skill, and they are butthurt fakers anyways, so no amount of wretching or profane response matters. Farm those tears, friends."
To quote the wisdom of Aesop Rock:
"You fuckin' dorks ain't a source of the art. You can't be cooler than the corners where you source all your parts!"
-
"PSA: Cheaters are not necessarily smart."
14JUN2024, Captain Picarl
It's just library injection.
Three monkeys and a keyboard, given enough time, would eventually write 'new Harmony(...)' at some point.
Don't put those dweebs on any sort of pedestal, folks.
-
"This thing on?"
07JUN2024, Captain Picarl
Debut blogpost!
Some spicy takes, just to set the tone:- USA! USA! USA!
- Fuck Republicans.
- Slava Ukraini. Fuck Russia.
- PC Master Race > Console Gamers
I will not be taking any questions.
-Picarl