Let's be real here: when people hear the word AI or LLM they don't think of any of the applications of ML that you might slap the label "potentially useful" on (notwithstanding the fact that many of them also are in a all-that-glitters-is-not-gold--kinda situation). The first thing that comes to mind for almost everyone is shitty autoplag like ChatGPT which is also what the author explicitly mentions.
mii
You lost, buddy? Points at the sidebar.
That's gotta be one of my favorite Zitron piece to date. Ed managed to articulate some points which have been floating around in my mind for a while which I did not have the words to explain. Especially how using any form of out-of-the-box computer these days is just a completely user-hostile pile of steaming horseshit, and why I am anal-retentive about what software gets installed on my devices and how exactly my window manager has to work, &c.
I mean, it's probably because I'm an obsessive nerd, but the fact that it makes me feel in control when I can rip shit of the source code that bugs me (or put shit in that I miss) is a major factor, too.
Jfc, when I saw the headline I thought this would be a case of the city being too cheap to hire an actual artist and instead use autoplag, but no. And the guy they commissioned isn't even some tech-brain LARP'ing as an artist, he has 20+ years of experience and a pretty huge portfolio, which somehow makes this worse on so many levels.
[...] placed in environments that incentivize scheming.
If this turns out to be another case of "research" where they told the model exactly what to do beforehand and then go all surprised Pikachu when it does, I'm gonna be shocked ...
... because it's been a while since they've tried that.
Yay, day 3 with Regexp magic.
Day 3
open(FH, '<', $ARGV[0]) or die $!;
my $sum = 0;
my $sum2 = 0;
my $enabled = 1;
while (<FH>) {
while ($_ =~ /(?:mul\((\d{1,3}),(\d{1,3})\)|(do)\(\)|(don\'t)\(\))/g) {
$enabled = 1 if $3;
$enabled = 0 if $4;
$sum += $1 * $2 if $1 && $2;
$sum2 += $1 * $2 if $enabled && $1 && $2;
}
}
close(FH);
print "Part 1: $sum\n";
print "Part 2: $sum2\n";
That conversation reads like from a variation of Mafia/Werewolf where you have to figure out who in your circle of rationalists is secretly e/acc and wants to build the torment nexus.
1 day old and over 1000 kudos. Holy shit.
No beta we die like Brian Thompson.
Day 2, Part 1
use strict;
use List::Util qw( min max );
open(FH, '<', $ARGV[0]) or die $!;
my @lines;
while (<FH>) {
my @report = split /\s/, $_;
push @lines, \@report;
}
close FH;
sub in_range {
my $diff = max($_[0], $_[1]) - min($_[0], $_[1]);
return $diff >= 1 && $diff <= 3;
}
sub is_safe {
my $prev = @$_[0];
my $dir = 0;
for (my $i = 1; $i < scalar @$_; ++$i) {
my $el = @$_[$i];
if ($el > $prev) {
return 0 unless $dir >= 0;
$dir = 1;
} elsif ($el < $prev) {
return 0 unless $dir <= 0;
$dir = -1;
}
return 0 unless in_range $prev, $el;
$prev = $el;
}
return 1;
}
sub part1 {
my $safe_reports = 0;
foreach (@_) {
$safe_reports++ if is_safe @$_;
}
return $safe_reports;
}
print 'Part 1: ', part1(@lines), "\n";
My part 2 solution didn't work with the real input but worked with all the test cases I threw at it, so I couldn't figure out what was wrong with it and I'm too lazy to debug any more right now.
Advent of Code is one of these things I wanna do every year and then I end up in fucking end-of-the-year crunch time every December and work for 10-12 hours and really don't wanna code after work anymore.
But hey, here's a quick solution for day 1. Let's see how far I make it.
Day 1
use strict;
use List::Util qw( min max );
open(FH, '<', $ARGV[0]) or die $!;
my @left;
my @right;
while (<FH>) {
my @nums = split /\s+/, $_;
push(@left, $nums[0]);
push(@right, $nums[1]);
}
@left = sort { $b <=> $a } @left;
@right = sort { $b <=> $a } @right;
my $dist = 0;
my $sim = 0;
my $i = 0;
foreach my $lnum (@left) {
$sim += $lnum * grep { $_ == $lnum } @right;
my $rnum = $right[$i++];
$dist += max($lnum, $rnum) - min($lnum, $rnum);
}
print 'Part 1: ', $dist, "\n";
print 'Part 2: ', $sim, "\n";
close(FH);
Promptfondlers too lazy to even fondle prompts anymore. I’m sure this is the prime target demographic for Elon’s brain chips.
Nice, me too, and whenever some tech-brained C-suite bozo tries to mansplain to me why LLMs will make me more efficient, I smile, nod politely, and move on, because at this point I don't think I can make the case that pasting AI slop into prod is objectively a worse idea than pasting Stack Overflow answers into prod.
At the end of the day, if I want to insert a snippet (which I don't have to double-check, mind you), auto-format my code, or organize my imports, which are all things I might use ChatGPT for if I didn't mind all the other baggage that comes along with it, Emacs (or Vim, if you swing that way) does this just fine and has done so for over 20 years.
If LOC/min or a similar metric is used to measure efficiency at your company, I am genuinely sorry.