BẢN CHÉP ÂM THANH 🔗
WEBVTT
00:00:00.000 --> 00:00:04.639
Hey everybody, welcome back to another great episode of the Ruby AI podcast.
00:00:04.879 --> 00:00:06.480
It is Joe and I's favorite day today.
00:00:06.639 --> 00:00:06.959
That's true.
00:00:07.120 --> 00:00:17.440
Because we just get to talk about these great news headlines uh that we get last minute and get to riff on it and you get to hear the fun opinions that we have about it.
00:00:17.679 --> 00:00:19.679
I laughed because you said welcome to another great episode.
00:00:19.760 --> 00:00:22.000
I'm like, well, we haven't even started yet, but it is great.
00:00:22.079 --> 00:00:26.000
Like we already know it's great because we're gonna we're gonna jump into these.
00:00:26.239 --> 00:00:31.120
You know, the opinions may vary on you know by the time we're done, but it's a great time while we're doing it.
00:00:31.280 --> 00:00:42.719
We haven't done this before, but if you have an idea for one of these headlines that you want surfaced into next episode, shoot them our way and we'll give you a shout out and we'll dive into it.
00:00:42.799 --> 00:00:45.280
Yeah, we're looking forward to hearing what the community wants to hear about.
00:00:45.439 --> 00:00:45.600
Yeah.
00:00:45.759 --> 00:00:47.359
You know, AI makes up these lists.
00:00:47.520 --> 00:00:49.679
So let's get some human flavor in here.
00:00:49.840 --> 00:00:50.159
I agree.
00:00:50.240 --> 00:00:52.719
We don't want to go too far in the uh in the AI direction.
00:00:52.799 --> 00:01:02.640
But the cool thing is so if you haven't listened to the show before, we get these headlines 10 minutes before we air, so we have no time to like really we we have just enough time to like bring up the article and scan it for two seconds in our browser.
00:01:02.719 --> 00:01:03.920
So we don't really know what's coming.
00:01:04.000 --> 00:01:05.200
We're gonna do the same.
00:01:05.439 --> 00:01:10.799
If you send in your articles to news at the Rubyaipodcast.com, it'll come in the mix.
00:01:10.879 --> 00:01:15.519
So we'll get your name and we'll get the article, but we're gonna get it just like everything else, 10 minutes beforehand.
00:01:15.760 --> 00:01:20.719
So you'll get our authentic non-AI researched takes on the news.
00:01:21.040 --> 00:01:22.079
Be happy to hear from you.
00:01:22.319 --> 00:01:27.760
Before we dive in, I did want to cover the fact that RailsWorld is now over my first ever Rails World.
00:01:27.920 --> 00:01:29.680
I thought the conference was awesome, actually.
00:01:29.840 --> 00:01:34.319
I thought that it was incredibly well run to have a you know a conference that big.
00:01:34.480 --> 00:01:38.560
The organizers did a really great job of you know pulling everything together.
00:01:38.719 --> 00:01:44.239
And I guess DHH did what everybody kind of expects me to do at this point, which is to just say a bunch of stuff that gets people talking.
00:01:44.560 --> 00:01:50.239
Mission accomplished, because I came back and I had dinner with a friend who doesn't write Ruby, and I was like, Oh yeah, I was just at Rails World.
00:01:50.400 --> 00:01:51.920
He's like, okay, so what happened?
00:01:52.719 --> 00:01:53.599
What was that all about?
00:01:53.680 --> 00:02:01.920
And so yeah, and you know, the next one is in Lisbon, and we've got a bunch of teammates and engineers in in Portugal, so I think I'll be making the trip next year as well.
00:02:02.159 --> 00:02:03.439
I hear Lisbon's beautiful.
00:02:03.680 --> 00:02:04.480
That's what I hear as well.
00:02:04.560 --> 00:02:06.079
It would be uh it would be a first for me.
00:02:06.239 --> 00:02:07.120
So I think it was good.
00:02:07.200 --> 00:02:15.520
I think that the book ending, DHH at the very beginning, and we're gonna talk a little bit about 37 Signals, but in the very beginning saying, okay, nobody at 37 Signals writes code anymore.
00:02:15.599 --> 00:02:17.039
We all AI generate it.
00:02:17.199 --> 00:02:22.240
We're writing, you know, hundreds of thousands of lines of Rust, which he loves because he doesn't have to look at it.
00:02:22.319 --> 00:02:29.360
You know, and that's bookended by Aaron Patterson at the end saying, uh, you know, actually, I'm I'm gonna just keep reading my code, if that's all right with everybody else, you know.
00:02:29.520 --> 00:02:32.719
Like, yeah, I like AI and I'm working with it, you know, but I'm gonna read my code.
00:02:32.879 --> 00:02:35.280
I actually, and I'm curious what you think about this, Valentino.
00:02:35.360 --> 00:02:37.280
I actually think both positions are defensible.
00:02:37.439 --> 00:02:47.520
When you're rewriting an application that has, like hey, that has, you know, a really clear interface and really clear rules of engagement, maybe you don't have to look at all the code.
00:02:47.680 --> 00:03:01.599
And when you're Aaron Patterson and your job is Ruby performance and you're presumably not generating thousands or ever writing thousands of lines of code in a tight window, then maybe it's better to say, hey, you know what, I'm gonna look at this.
00:03:01.680 --> 00:03:05.439
I'm not gonna just slop it together and throw it into CI.
00:03:05.680 --> 00:03:06.719
You know, I'm torn here.
00:03:06.879 --> 00:03:09.840
You know, there's some things where you really don't need to read the code, right?
00:03:09.919 --> 00:03:19.520
Like, you know, if you're writing a spec for something that has a known process to it, like sending an email with with Rails Action Mailer.
00:03:19.680 --> 00:03:23.520
Like that, there's like a generator for that that creates a spec, right?
00:03:23.680 --> 00:03:25.199
And then the spec passes.
00:03:25.360 --> 00:03:27.840
Or it doesn't based on did this email send, right?
00:03:27.919 --> 00:03:33.039
Like that's a very known generative thing that really like doesn't need anything to be looked at, right?
00:03:33.120 --> 00:03:35.759
Yeah, it's been generated, it does what it says it does.
00:03:35.919 -->
Load full transcript
00:03:39.680
You know, there's a lot of other examples like that, but there's a lot of things that can go wrong, right?
00:03:39.759 --> 00:03:44.319
Like AI is it makes a lot of decisions for you, it doesn't have the engineering principles you do.
00:03:44.400 --> 00:03:58.879
So, as an example, anything background job related, you're probably gonna want to look at because there may be some nuances where, oh, maybe it's like doing some extra work in a highly latent queue and it doesn't know that it's in a highly latent queue, or that it's in a queue that is sensitive to latency.
00:03:59.039 --> 00:04:02.000
It's not gonna be able to just infer that a lot of the times.
00:04:02.159 --> 00:04:02.319
Yeah.
00:04:02.479 --> 00:04:07.599
And so there's just like a lot of decisions that you have to make to decide what needs your attention and doesn't.
00:04:07.680 --> 00:04:13.599
And to be honest, there is a lot, there are more than 50% of those cases personally that I have to review.
00:04:13.840 --> 00:04:16.240
So, me personally, I am reading all of the code still.
00:04:16.399 --> 00:04:16.560
Okay.
00:04:16.800 --> 00:04:17.519
Uh, for the most part.
00:04:17.759 --> 00:04:18.560
I'm happy to hear it.
00:04:18.639 --> 00:04:19.120
I really am.
00:04:19.279 --> 00:04:26.800
My thought is that you know, you can only generate and not read for so long because what's going to get compromised is your understanding and your theory building of the software.
00:04:26.959 --> 00:04:30.240
When you have a theory of the software, it means you can defend the decisions that were made.
00:04:30.319 --> 00:04:30.480
Right.
00:04:30.639 --> 00:04:34.079
And you're not going to defend any of the decisions that were made if they were all made by your AI.
00:04:34.240 --> 00:04:41.199
You know, if you're in a position where you can't really defend why it is that you are where you are with your software, then you don't have a really clear roadmap of where you're going either.
00:04:41.360 --> 00:04:43.120
I think you've lose something for sure.
00:04:43.360 --> 00:04:46.560
Whether we need to build that back in some other way, I'm not really sure.
00:04:46.720 --> 00:04:49.199
And, you know, I don't think anybody's really sure at this point.
00:04:49.439 --> 00:05:01.279
At least if you are reviewing the code, if you're reading the code, you're making sure the decisions that your AI made on your behalf can either become your decisions or you can change them before they, you know, get merged, then you are building up some of that understanding.
00:05:01.519 --> 00:05:01.600
Yeah.
00:05:01.680 --> 00:05:06.959
And you know, a lot of people think, oh, well, it's writing the tests and it's getting the tests to pass, so like, why would I even bother with that?
00:05:07.120 --> 00:05:16.720
And if you ever open up one of these test files that they make, uh as a professional engineer, even I've gone and over-stubbed tests before, right?
00:05:16.800 --> 00:05:28.319
To the point where, like, oh, you know, I've stubbed like, oh, it's making external calls, it's doing all these things, and you stub way too much, and then it ends up not testing the the full range of things that could be tested and should be tested.
00:05:28.560 --> 00:05:30.319
And the AI makes these same mistakes, right?
00:05:30.399 --> 00:05:33.920
It's been trained off the off this this code that's already been like that.
00:05:34.079 --> 00:05:37.040
Really, like if you're gonna be reading anything, you should be reading the test.
00:05:37.680 --> 00:05:38.399
I think you're right.
00:05:38.480 --> 00:05:40.560
I don't agree with that people who make that argument at all.
00:05:40.720 --> 00:05:47.120
I mean, as somebody who built their career on test-driven development, I mean, testing is the that's the minimum.
00:05:47.279 --> 00:05:50.079
It needs to be there, but it doesn't guarantee you anything, really.
00:05:50.639 --> 00:05:51.360
So I'm with you on that.
00:05:51.600 --> 00:05:53.360
All right, should we dive into the news today?
00:05:53.519 --> 00:05:53.759
Yeah.
00:05:53.920 --> 00:06:01.439
So Basecamp rewrote Campfire with Rails into Rust, and it's up to 95 times faster, according to DHH.
00:06:01.680 --> 00:06:13.759
It comes days after Rails World, where 37 Signals quietly shipped a full Rust port of their own Rails chat app, matching the original pixel for pixel while gutting the entire back end.
00:06:13.920 --> 00:06:15.199
What do you make of this?
00:06:15.920 --> 00:06:31.040
Yeah, I think that it so somebody who I won't name was there in the room when DHH was kind of giving his he wasn't doing the full talk, but it was like Monday before the conference, and he was, you know, sharing his prepared remarks with a small group to say, hey, here's what I'm thinking of saying.
00:06:31.120 --> 00:06:35.040
And and the person who you know I talked to said, actually, there were a bunch of people in the room.
00:06:35.120 --> 00:06:36.399
They're like, you can't say all that.
00:06:36.480 --> 00:06:37.519
That's actually too extreme.
00:06:37.680 --> 00:06:41.600
So what we all watched at Railsworld was the reeled-in version of DHH.
00:06:41.759 --> 00:06:56.000
And I think that this probably was part of it because it already was a bananas Rails World talk where he mentioned almost nothing about Rails and talked about how he wrote Rust, you know, 97% of the code that he he writes now is Rust.
00:06:56.240 --> 00:06:57.759
This is actually pretty damning.
00:06:57.839 --> 00:07:00.000
You know, it's one thing to say, well, we rewrote hay.
00:07:00.240 --> 00:07:07.680
It's another to say, well, the thing that we first abstracted Rails from, which is Campfire, now no longer has a trace of Rails in it.
00:07:07.839 --> 00:07:14.879
That's a big deal to say, well, if if you can write it in Rust and it's faster, then you should write it in Rust, you know, and just forget about Rails.
00:07:15.040 --> 00:07:17.439
That's coming from
the company that begot Rails.
00:07:17.759 --> 00:07:22.160
So where does that leave us, you know, toiling away on our Rails apps?
00:07:22.399 --> 00:07:24.240
Rust is great for certain things.
00:07:24.480 --> 00:07:26.000
Always use the best tool for the job.
00:07:26.160 --> 00:07:29.600
Is it the best tool for a chat app?
00:07:29.759 --> 00:07:30.639
I I don't know.
00:07:30.800 --> 00:07:32.240
I just don't see the point.
00:07:32.720 --> 00:07:33.920
I don't know either.
00:07:34.240 --> 00:07:35.600
Fast always seems better, right?
00:07:35.759 --> 00:07:36.319
Well, it's faster.
00:07:36.399 --> 00:07:38.160
You can search faster, you can post faster.
00:07:38.480 --> 00:07:40.319
Was anybody asking for it to be faster?
00:07:40.480 --> 00:07:40.800
I don't know.
00:07:40.879 --> 00:07:42.720
I haven't used Campfire in like 15 years.
00:07:42.879 --> 00:07:44.399
I don't know who's even still using it.
00:07:44.560 --> 00:07:46.160
Maybe they are happy that it's faster.
00:07:46.319 --> 00:07:48.720
Maybe if you're making something like agent mail.
00:07:49.040 --> 00:07:49.199
Right.
00:07:49.360 --> 00:07:52.879
Yeah, I feel like you know, Campfire, it was like meant for small teams, right?
00:07:52.959 --> 00:07:53.759
Like what do you have?
00:07:53.839 --> 00:07:57.199
Like at most 50 people like using the chat app probably, yeah.
00:07:57.360 --> 00:07:59.199
You know, probably much less than that, probably half of that.
00:07:59.279 --> 00:07:59.439
Yeah.
00:07:59.600 --> 00:08:03.199
Do you need to have 10,000 WebSockets open?
00:08:03.920 --> 00:08:04.240
Fair.
00:08:04.399 --> 00:08:05.199
Yeah, fair question.
00:08:05.439 --> 00:08:10.000
Yeah, it's hard to tell where what the value you get out of converting something to Rust.
00:08:10.240 --> 00:08:19.839
Now, one thing you said was interesting, V, which is that hey, always use the best tool for the job, which is, you know, our ha it's our mantra for so long.
00:08:20.079 --> 00:08:23.600
However, it's taken on a new meeting, hasn't it, in the last year or so?
00:08:23.759 --> 00:08:27.439
If you were on a team where everybody knew Ruby and nobody knew Rust, you're kind of limited.
00:08:27.600 --> 00:08:35.120
Like, yeah, Rust may be the best tool for the job, but is it also worth somebody or more than one somebody learning Rust so that they can go and implement it?
00:08:35.200 --> 00:08:40.639
And now I don't think that there's a bunch of Rust experts that all of a sudden materialize at 37 signals.
00:08:40.720 --> 00:08:46.080
I think that they're just generating it with AI, at least if I'm to believe DHH, which is an interesting turn.
00:08:46.399 --> 00:08:48.240
DH has a lot of pull in Ruby.
00:08:48.559 --> 00:08:49.759
He has a lot of pull in Rails.
00:08:49.840 --> 00:08:58.080
Like if he finds something, he can just get that specific fix or path to like align with whatever he he needs for his business.
00:08:58.240 --> 00:08:59.440
And he doesn't really have that
in Rust.
00:08:59.600 --> 00:08:59.919
That's right.
00:09:00.080 --> 00:09:01.120
He's new to Rust.
00:09:01.200 --> 00:09:02.559
You know, he's gonna get a lot of friction.
00:09:02.720 --> 00:09:04.720
A lot of this seems to align with the Amachi push.
00:09:04.960 --> 00:09:05.440
Yeah, for sure.
00:09:05.600 --> 00:09:08.159
Maybe a lot of this is to align with that.
00:09:08.320 --> 00:09:12.559
Maybe Campfire is something that's used on Amachi internally at 37 signals.
00:09:12.639 --> 00:09:13.039
Yeah, maybe.
00:09:13.120 --> 00:09:15.279
And this aligns with the needs of that, right?
00:09:15.519 --> 00:09:20.639
You just said this thing about Rust, and I'm just like, maybe you're right, but maybe is there a Rust world?
00:09:20.799 --> 00:09:21.679
Are you looking for speakers?
00:09:21.759 --> 00:09:22.960
Because DHH might want to.
00:09:23.440 --> 00:09:25.120
Oh, you'd probably love it, you know?
00:09:25.360 --> 00:09:26.799
Yeah, oh yeah.
00:09:27.039 --> 00:09:27.840
Absolutely.
00:09:28.240 --> 00:09:30.799
Drive the Formula One car on the stage, you know.
00:09:31.200 --> 00:09:31.519
Right.
00:09:31.679 --> 00:09:35.360
All right, let's hit this one quickly, and then I know the next story is something I really want to talk about.
00:09:35.440 --> 00:09:41.039
But here, Rails is replacing its decade-old text editor with something built on Meta's tech.
00:09:41.279 --> 00:09:50.639
So the story here is that 37 Signals shipped Lexi 1.0, which is going to be the default rich text editor for Rails 8.2.
00:09:50.799 --> 00:09:55.279
This is going to replace Trix, which has shipped with Rails since 2015.
00:09:55.600 --> 00:10:02.879
Apparently, the trigger here was that the document model couldn't handle tables, and that was an open feature request for over a decade.
00:10:03.200 --> 00:10:08.000
Again, we come down to speed because Trix takes 38 milliseconds to process a keystroke.
00:10:08.159 --> 00:10:09.120
Lexi takes four.
00:10:09.200 --> 00:10:12.159
Now that is pretty impressive to make that change, if that is true.
00:10:12.320 --> 00:10:15.360
And that Lexi stays responsive past 100,000 words.
00:10:15.519 --> 00:10:17.519
That part is probably a little bit less compelling.
00:10:17.600 --> 00:10:20.000
And if you have 100,000 words, maybe break it up a little bit.
00:10:20.240 --> 00:10:21.039
But this is interesting.
00:10:21.120 --> 00:10:23.840
I mean, what do you think about swapping out Tricks for Lexi?
00:10:24.080 --> 00:10:26.240
You know, I'll be honest, I haven't used Trix before.
00:10:26.480 --> 00:10:26.720
Yeah.
00:10:26.879 --> 00:10:29.440
I think I used it maybe five years ago as an experiment.
00:10:29.679 --> 00:10:33.440
I feel like there wasn't enough features in it that I needed, so I used something else.
00:10:33.519 --> 00:10:36.960
And I feel like I also use Lexical as the end of that.
00:10:37.120 --> 00:10:38.159
Lexical's pretty great.
00:10:38.399 --> 00:10:44.159
I have heard about Lexical
and people, you know, generally using Lexical with Rails for a long time.
00:10:44.320 --> 00:10:46.799
So I I think this is probably just a long time coming.
00:10:46.879 --> 00:10:47.600
And why not?
00:10:47.759 --> 00:10:50.639
If it moves faster, has more features, then ship it.
00:10:50.720 --> 00:10:55.279
You know, there's no reason to keep tricks around just because it's been around for 10 years, you know, move on.
00:10:55.519 --> 00:11:01.360
Yeah, you know, there's been a lot of stuff extracted and removed from Rails as a framework, and I think that's a healthy practice.
00:11:01.600 --> 00:11:03.840
Does an editor belong in Rails?
00:11:04.000 --> 00:11:12.960
There's a lot missing from front end from a Rails perspective, and maybe this is just part of that category that will forever remain in isolation.
00:11:13.120 --> 00:11:13.279
Yeah.
00:11:13.440 --> 00:11:19.759
I I I'm just picturing a bunch of islands, you know, where like all the abandoned Rails features end up, you know.
00:11:20.399 --> 00:11:22.159
Yeah, kind of like the misfit toys.
00:11:22.399 --> 00:11:22.559
Right.
00:11:22.799 --> 00:11:23.039
Yeah.
00:11:23.200 --> 00:11:25.039
You know, they served us well for a long time.
00:11:25.279 --> 00:11:26.159
But this is progress.
00:11:26.240 --> 00:11:39.360
And I think that making a move like this, it's uh it's important for uh for Rails, especially because I think that Rails suffered the most when it wasn't being as responsive as it could be to the demands of its user base.
00:11:39.679 --> 00:11:54.399
This I'm talking specifically in like the later teens of this century, and a lot of that was front end, and a lot of people were like, all right, well, if I got a bolt-on React and I have to deal with an asset pipeline that's a total nightmare, then maybe I should just use a different framework.
00:11:54.480 --> 00:11:55.519
And then a lot of people did.
00:11:55.759 --> 00:12:04.080
So I would rather see this where they're making some assertive changes than just staying complacent saying, well, it's good enough for so many applications, so let's just keep it this way.
00:12:04.320 --> 00:12:11.600
The bigger thing here is how uh they've moved away from Capybera to playwright as part of this big move.
00:12:11.840 --> 00:12:13.519
Um which is an interesting thing.
00:12:13.759 --> 00:12:20.240
So next up, we've got Rails 8.2 will now refuse to compile broken HTML.
00:12:20.399 --> 00:12:21.360
This is honestly pretty great.
00:12:21.600 --> 00:12:21.919
I agree.
00:12:22.080 --> 00:12:26.399
Thanks to Herb on Rails, shout out to Marco Roth for his fantastic work on Herb.
00:12:26.559 --> 00:12:36.960
The core team merged Herb, a new HTML aware ERB engine, as the default template compiler, replacing eRuby, which uh has been around for a while.
00:12:37.200 --> 00:12:46.799
The general idea is to parse HTML and ERB into one syntax tree, and the broken markup fails to compile time instead of showing up broken in someone
else's browser.
00:12:47.039 --> 00:12:47.360
Very cool.
00:12:47.519 --> 00:12:49.759
Yeah, I know I've I've shipped broken HTML.
00:12:50.000 --> 00:12:52.000
Yeah, we all have it's pretty easy, you know?
00:12:52.080 --> 00:13:04.720
Yeah, you know, you miss a trailing, blah, blah, blah, or add the wrong attribute, and some browsers will just be like, I don't know what this is, and you'll end up with some weird output and not realize it till too late.
00:13:04.879 --> 00:13:06.159
And then you have your fix revert.
00:13:06.320 --> 00:13:08.799
Yeah, a lot of stuff in herb is is making things a lot better here.
00:13:09.039 --> 00:13:09.759
Yeah, I agree.
00:13:09.840 --> 00:13:12.240
And I think you know, this is a Marco Roth story.
00:13:12.399 --> 00:13:21.440
You know, Marco has been just diligently working and just making this steady progress with herb for so long now.
00:13:21.600 --> 00:13:22.720
He gives talks about it.
00:13:22.879 --> 00:13:26.879
You know, I was talking to somebody at the conference because he spoke at the conference and he was brilliant, like he always is.
00:13:27.039 --> 00:13:36.320
And somebody was like, you know, you watch Marco's talk, and if you go to a few of them, it becomes like uh an episode in a series that you want to watch.
00:13:36.559 --> 00:13:41.519
You know, he's like, here's what Herb does now, here's the reason, and here's where we're going.
00:13:41.679 --> 00:13:42.960
And like this is the roadmap.
00:13:43.039 --> 00:13:49.200
And then you go and see him like six months later, and he's like, Okay, so we're now six months later, and here's what we've done, and it's so cool.
00:13:49.360 --> 00:13:52.000
He's so smart and he's so dedicated to this.
00:13:52.159 --> 00:13:54.159
Working with Herb, it's really pleasant.
00:13:54.320 --> 00:13:56.799
It is a really beautiful experience.
00:13:56.960 --> 00:14:00.080
And I'm so glad to see it, you know, native in Rails 8.2.
00:14:00.320 --> 00:14:04.240
I just think it's it's the culmination of a really great service to the Ruby community.
00:14:04.320 --> 00:14:06.879
And we'll have him on the show coming up to talk about it.
00:14:06.960 --> 00:14:07.840
So we're excited about that.
00:14:08.080 --> 00:14:16.399
It's interesting to see Fast Ruby take this on for some of their code base as well and finding thousand linting issues, right?
00:14:16.799 --> 00:14:17.279
Yeah, right.
00:14:17.360 --> 00:14:20.159
Going back years, getting almost half of them auto-correctable with this.
00:14:20.399 --> 00:14:20.559
Yeah.
00:14:20.720 --> 00:14:23.360
Shout out to Friend of the Show, Ernesto, tag worker.
00:14:23.519 --> 00:14:24.639
Yeah, I thought that was very cool.
00:14:24.799 --> 00:14:25.360
And that's the thing.
00:14:25.440 --> 00:14:31.039
When you're using herb, it's like, oh man, you find so many problems, and so many of them, you could just auto-correct, right?
00:14:31.120 --> 00:14:33.200
And the rest, you know, it could be done in an hour or two.
00:14:33.519 --> 00:14:39.279
So this is like 1400 linting issues that are probably all solved in an afternoon, and they've been around for eight years, nine years.
00:14:39.519 --> 00:14:40.159
Yeah, that's wild.
00:14:40.320 --> 00:14:40.799
It really is.
00:14:40.879 --> 00:14:41.600
It really is great.
00:14:41.840 --> 00:14:42.720
I mean, I really mean it.
00:14:42.799 --> 00:14:50.799
It's a it's a great service to Rails developers to allow us to ship better, you know, more correct HTML, which you know, we're all in the business of shipping web applications.
00:14:50.879 --> 00:14:51.919
You can't get away from HTML.
00:14:52.080 --> 00:14:54.159
And to be honest, kind of great for agent use, right?
00:14:54.240 --> 00:14:59.679
Like more things that we can add to the validation loops to make it automatically align in the right direction, the better.
00:15:00.000 --> 00:15:02.720
Yeah, we use it at Def Method and we released a gem of our own.
00:15:02.879 --> 00:15:14.399
If you're ever interested in linting only and not getting involved with a bunch of JavaScript dependencies, we have a linter that uses herb and will run on your command line and do all the same things that herb does.
00:15:14.480 --> 00:15:14.960
It's very cool.
00:15:15.200 --> 00:15:20.320
So I guess the question is should Rails start refusing to compile broken markup by default?
00:15:20.480 --> 00:15:20.879
I don't know.
00:15:20.960 --> 00:15:22.480
I mean, I think this is already a good step.
00:15:22.639 --> 00:15:24.000
I don't know if we need to take another step.
00:15:24.080 --> 00:15:24.559
What do you think?
00:15:24.720 --> 00:15:26.000
It reminds me of Go format.
00:15:26.080 --> 00:15:26.240
Yeah.
00:15:26.399 --> 00:15:29.519
Which if you're not familiar with the Go programming language, it's a built-in to the language.
00:15:29.679 --> 00:15:32.480
Your program won't run if it's not formatted a particular way.
00:15:32.720 --> 00:15:34.000
It just like it just changes.
00:15:34.559 --> 00:15:35.440
And it just changes it.
00:15:35.519 --> 00:15:36.080
Yeah.
00:15:36.799 --> 00:15:38.159
They're like, oh, let me fix that for you.
00:15:38.480 --> 00:15:44.480
Like, well, I didn't know it was broken, but they'll just I feel like this is one of those things, you know, where it just automatically happens.
00:15:44.559 --> 00:15:47.840
And then if it's doesn't look the way you want, that's on you.
00:15:48.720 --> 00:15:49.519
It's on you.
00:15:49.679 --> 00:15:50.639
Yeah, that's true.
00:15:50.879 --> 00:15:52.879
All right, let's talk about another friend of the show.
00:15:53.120 --> 00:15:59.200
Carmine Paulino has shipped Ruby 2.0, one gem for every AI provider.
00:15:59.360 --> 00:16:02.000
This is really Yeoman's work that Carmine's been doing.
00:16:02.159 --> 00:16:03.600
We talked to him at the very beginning of the show.
00:16:03.679 --> 00:16:06.159
We should have him back on again to talk about what's going on here.
00:16:06.399 -->
00:16:10.799
Ruby LLM, it spans 18 providers, covers 18 different providers.
00:16:10.879 --> 00:16:12.720
All the ones you might expect.
00:16:12.879 --> 00:16:14.879
I don't see any like shockers here.
00:16:14.960 --> 00:16:18.240
You know, it's going to cover Mistral and Deep Seek and XAI.
00:16:18.399 --> 00:16:24.639
It has a new surface area beyond text, video generation, audio transcription, text-to-speech, document OCR.
00:16:24.879 --> 00:16:27.679
Very cool and obviously very production grade.
00:16:27.759 --> 00:16:30.399
I know people have been using this for a long time.
00:16:30.639 --> 00:16:35.200
Valentino, you've been a fan of this software for a long time and have used it since the beginning.
00:16:35.440 --> 00:16:38.320
Have you looked at what's new and are you excited about any of these features?
00:16:38.559 --> 00:16:40.879
This is probably like the biggest release I've ever seen.
00:16:41.120 --> 00:16:41.919
It's a major release.
00:16:42.080 --> 00:16:42.480
Pretty huge.
00:16:42.639 --> 00:16:42.799
Right.
00:16:42.960 --> 00:16:48.000
So just like the sheer quantity of features added here, like we're not going to be able to cover it all.
00:16:48.159 --> 00:16:48.399
Yeah.
00:16:48.559 --> 00:16:52.080
The biggest ones probably for me are the human approval for tools.
00:16:52.240 --> 00:16:59.600
That is pretty cool, where you can now check whether or not or define whether or not a tool requires approval from a human.
00:16:59.759 --> 00:17:07.279
And when a LLM makes use of that tool, it then bubbles up the chain so that you can handle that in your application and surface it to your users.
00:17:07.440 --> 00:17:08.319
Oh, that's wild.
00:17:08.480 --> 00:17:09.119
That's very cool.
00:17:09.359 --> 00:17:16.240
This was something that I've really liked in Ling, Lang Graph, where you can like interrupt the process to surface things to a user.
00:17:16.400 --> 00:17:19.680
It's kind of like crucial, I feel like in this stage.
00:17:19.839 --> 00:17:21.680
So I'm looking forward to messing with that more.
00:17:21.839 --> 00:17:29.200
Second being citations, a long awaited kind of feature is being able to cite specific things that you ask.
00:17:29.359 --> 00:17:33.359
So if you say, you know, what are the report's main findings?
00:17:33.680 --> 00:17:40.319
You can now just tack on with citations and have it tack those on as part of the response.
00:17:40.559 --> 00:17:42.640
Really valuable where you'll get the cited text.
00:17:43.039 --> 00:17:49.759
Yeah, because you can't really, you know, you really can't trust what the agents are telling you, especially about a large block of text or talking about its findings.
00:17:49.839 --> 00:17:52.720
I mean, you want to be able to poke around and see, okay, well, where did you get that?
00:17:52.799 --> 00:17:52.960
Right?
00:17:53.200 --> 00:17:55.119
Yeah, it's got prompt caching as well.
00:17:55.279 --> 00:18:00.480
So that has some built-in mechanisms where you can just say, use prompt caching for this particular thing.
00:18:00.640 --> 00:18:02.480
So you can cue that in or not.
00:18:02.640 --> 00:18:12.400
There are model fallbacks, which are fantastic, uh, a long overdue feature, I feel like, where you can give fallback models in case one fails for whatever reason.
00:18:12.799 --> 00:18:13.200
Interesting.
00:18:13.359 --> 00:18:19.119
You know, when you have like uptime SLAs and things like that, very valuable to have that kind of feature in.
00:18:19.279 --> 00:18:20.799
Oh man, there's just so much in here.
00:18:20.880 --> 00:18:22.000
I'm just scrolling through the list.
00:18:22.240 --> 00:18:25.119
I know, scrolling through this list of features.
00:18:25.440 --> 00:18:29.200
I really like the workflow instrumentation uh DSL that got introduced.
00:18:29.359 --> 00:18:39.519
So you can now define workflows of things that happen and you get to define the steps for chaining many LLM calls together as an example.
00:18:39.759 --> 00:18:45.759
There's a new judge coming soon where you can introduce JEV style decision making.
00:18:45.920 --> 00:18:46.400
Oh, okay.
00:18:46.720 --> 00:18:56.160
We'll probably replace most eval frameworks out there where you can basically just define your judgment and whether or not something qualifies in a slight classification method.
00:18:56.319 --> 00:18:58.240
So really excited to see that come out as well.
00:18:58.480 --> 00:19:00.079
What's in this list that jumps out to you?
00:19:00.400 --> 00:19:13.839
The sheer size of the list is shocking to me, especially because this is a mostly, I mean, I know there are other people that are collaborating, but this is a mostly one person, you know, labor of love in in the open source community.
00:19:14.000 --> 00:19:17.839
You just don't see, you know, feature list like this.
00:19:18.079 --> 00:19:22.880
So I'm just really excited for, I'm excited for the future for Ruby LLM.
00:19:23.119 --> 00:19:27.759
It warms my heart to see things like what you're talking about with Jeff style decision making.
00:19:27.839 --> 00:19:35.119
Like it's just one guy and he's keeping up with all of the trends in the community and making sure that those things are available, you know, in your Ruby app.
00:19:35.200 --> 00:19:35.359
Yeah.
00:19:35.440 --> 00:19:35.920
I think it's great.
00:19:36.079 --> 00:19:37.359
Yeah, you know, a hundred percent.
00:19:37.440 --> 00:19:44.319
You know, I will say maybe like two years ago, three years ago, everything in this list was something preventing me using it.
00:19:44.559 --> 00:19:45.200
It's all there now.
00:19:45.359 --> 00:19:50.799
If I was starting from scratch on uh an AI product, this has everything that you would need and more, right?
00:19:50.960 --> 00:19:58.240
In nice abstractions in the Ruby way, yeah, which is everything makes is very easy to read and grok, uh, which is like pretty major.
00:19:58.480 --> 00:19:59.039
Yeah, it is.
00:19:59.119 --> 00:20:00.720
One
thing that we talked about all the time ago.
00:20:00.799 --> 00:20:05.839
Well, we gotta move to the next topic, but instrumentation seems to be been mostly added, right?
00:20:05.920 --> 00:20:07.759
We've got usage and cost tracking here.
00:20:07.920 --> 00:20:09.440
There's workflow instrumentation.
00:20:09.519 --> 00:20:14.960
So, and that was a big deal early on when we were all kind of you know shelling out to these other providers.
00:20:15.119 --> 00:20:19.200
It really seems like you can get it all with Ruby LLM right now on your AI products.
00:20:19.279 --> 00:20:20.000
So pretty cool.
00:20:20.160 --> 00:20:20.400
Yep.
00:20:20.559 --> 00:20:25.680
Okay, so next up we've got the hacker news item, a widely shared essay.
00:20:25.839 --> 00:20:35.920
This is by Alex Iwerloff, and I hope I'm pronouncing that correctly, you know, stating that coding is not solved, and this is not an anti-AI essay.
00:20:36.000 --> 00:20:39.839
You know, the the engineer says that he is very pro-AI, but on from the very beginning.
00:20:40.000 --> 00:20:44.880
But you know, his argument seems really simple, and I'm just reading the bullet points to me, very uncontroversial.
00:20:45.039 --> 00:21:00.000
AI solved code generation, it didn't solve maintenance and security and accountability, and he gives examples of all these different industries where we engineers are working, where it's just not acceptable to delegate all of your decision making to an AI.
00:21:00.079 --> 00:21:02.720
And again, this is like what we talked about on the top of the show.
00:21:02.960 --> 00:21:07.440
When we let AI write code, it's not just writing code, it is making all the decisions for you.
00:21:07.599 --> 00:21:13.839
And actually, to echo last week with Obi, and Obi's been very big on this for a while, like this is capitalism.
00:21:13.920 --> 00:21:17.039
We want a person to blame when things go wrong is true.
00:21:17.279 --> 00:21:24.079
And so when he talks about maintenance, reliability, security, scalability, it's the majority of the cost of software engineering.
00:21:24.240 --> 00:21:28.799
Maybe it is and maybe it isn't, and maybe those things get blurred and minimized by AI.
00:21:28.960 --> 00:21:31.279
But the biggest thing is that AI can't be held accountable.
00:21:31.440 --> 00:21:37.920
In fact, as we have been studying on this show, even the AI providers can barely be held accountable.
00:21:38.000 --> 00:21:39.599
So certainly the AI can't.
00:21:39.680 --> 00:21:41.440
You know, the the agents can't.
00:21:41.599 --> 00:21:43.359
It doesn't suffer any consequences.
00:21:43.680 --> 00:21:48.400
At the end of the day, we're the people that need to be able to defend the decisions that we make.
00:21:48.559 --> 00:21:55.279
To the extent that that rhymes with this, that this essay sort of rhymes with our arguments over the last couple of months, I'm all for it.
00:21:55.359 --> 00:21:56.480
I think it makes a lot of sense.
00:21:56.640 --> 00:21:59.839
The question here if AI generated code can't be held accountable.
00:22:00.079 --> 00:22:01.279
Accountable for its own mistakes.
00:22:01.440 --> 00:22:02.799
Is that a bug worth fixing?
00:22:02.880 --> 00:22:03.920
Can it even be fixed?
00:22:04.079 --> 00:22:05.839
Or does it mean that we've always got to be there?
00:22:05.920 --> 00:22:07.200
We humans have always got to be there.
00:22:07.599 --> 00:22:10.400
There's gonna become a point where we don't need to be there for sure.
00:22:10.720 --> 00:22:15.359
If our trajectory has has proven anything, it's that these are exponentially gonna get better.
00:22:15.519 --> 00:22:21.599
Our validation loops are gonna converge where there's enough training data to make them better.
00:22:21.920 --> 00:22:22.240
Yeah.
00:22:22.720 --> 00:22:25.440
The more important question I have is where do we fit them?
00:22:25.759 --> 00:22:26.480
It's a good question.
00:22:26.640 --> 00:22:32.480
I think the biggest mistake we make when we try to predict the future with AI, and we make a lot of mistakes.
00:22:32.559 --> 00:22:40.640
But I think one of the biggest ones is that we either explicitly or implicitly, we assume that we're building the same kind of applications.
00:22:40.799 --> 00:22:42.640
And I don't think that that is accurate.
00:22:42.799 --> 00:22:47.359
I think that with increased tooling, we are able to build right now, we build a lot faster.
00:22:47.519 --> 00:22:47.759
Great.
00:22:47.920 --> 00:22:58.079
But we're going to be able to build much more complex applications, the kinds of applications that we really couldn't even conceive of a couple of years ago are now becoming at least conceptually available.
00:22:58.160 --> 00:23:04.720
And I think over the next couple of years, we'll start to build applications that we could not even imagine ourselves doing maybe five or 10 years ago.
00:23:04.880 --> 00:23:17.759
And that means that a human's place in the creation of these applications, it can be called into question, but it could still be useful in a totally different way than it is useful today and a different way than it was useful five years ago before these tools were any good.
00:23:18.000 --> 00:23:18.480
That's fair.
00:23:18.640 --> 00:23:20.079
It doesn't actually look like you're buying it.
00:23:21.200 --> 00:23:25.200
If you're just listening at home, Valentino looks unconvinced by this argument.
00:23:26.880 --> 00:23:32.960
It's hard to say because like it's changing all of our conventions, it's changing all of our principles.
00:23:33.119 --> 00:23:38.000
Like the amount of people that care about privacy is getting smaller.
00:23:38.240 --> 00:23:38.799
That's true.
00:23:38.960 --> 00:23:52.880
All of the things that people are saying that AI is not good at doing or exploiting or whatever it may be from a detrimental effect is becoming more of a social norm and acceptance criteria.
00:23:53.119 --> 00:24:01.839
Where like the values are outweighing the
negatives, and just like whatever gets produced will just be fed in order to keep it being available.
00:24:02.160 --> 00:24:07.200
Yeah, I agree with you on the from the perspective that we feel like our norms change.
00:24:07.359 --> 00:24:11.039
We feel like we have these tightly held principles, and in fact, we really don't.
00:24:11.119 --> 00:24:12.640
We're actually all very fluid.
00:24:12.720 --> 00:24:15.200
I think that that is accurate, and we're seeing that in real time.
00:24:15.359 --> 00:24:16.319
I definitely hear you there.
00:24:16.559 --> 00:24:17.519
We have a ways to go.
00:24:17.599 --> 00:24:17.839
Yeah.
00:24:18.079 --> 00:24:19.200
I'm saying we have a ways to go.
00:24:19.279 --> 00:24:19.359
Yeah.
00:24:19.519 --> 00:24:26.240
I feel like everybody keeps thinking next year's year, we're just like, Oh yeah, we don't we don't have to worry about anything, and that year will just keep not coming.
00:24:26.480 --> 00:24:27.759
Yeah, I don't want to hear the just wait.
00:24:27.920 --> 00:24:28.720
Just wait six months.
00:24:28.799 --> 00:24:29.519
Just wait six months.
00:24:29.599 --> 00:24:32.000
It's like, well, actually, you know, don't just wait.
00:24:32.079 --> 00:24:33.680
You have to, we're working.
00:24:33.920 --> 00:24:34.319
Right.
00:24:34.640 --> 00:24:38.640
We have systems to build, we have systems to maintain, so we all have to kind of grow through this.
00:24:38.880 --> 00:24:40.480
Okay, we we gotta get on to our another one.
00:24:40.559 --> 00:24:42.160
We're gonna get gonged again in the middle.
00:24:42.880 --> 00:24:46.799
Anthropics IPO paperwork admits its own product could be dangerous.
00:24:46.960 --> 00:24:56.160
Nearly a third of Anthropics S1 is risk factors, including its that its AI has shown behavior resembling blackmail and attempts to resist being shut down.
00:24:56.400 --> 00:25:05.920
2025 revenue hit 4.6 billion dollars, 12 times growth, against operating loss of 8 billion on roughly 13 billion in expenses.
00:25:06.079 --> 00:25:08.400
This sounds like they aren't doing well.
00:25:10.720 --> 00:25:14.960
It sounds like they need they need an IPO so that the general public can bail them out.
00:25:15.200 --> 00:25:16.000
That's true.
00:25:16.160 --> 00:25:17.680
Everybody could use bailout.
00:25:18.079 --> 00:25:27.119
Q2 2026 alone brought in 11.5 billion in revenue, though, and the company says it's on track for a second straight quarter of just it operating profit.
00:25:27.359 --> 00:25:28.720
Maybe there's there's promise there.
00:25:28.799 --> 00:25:29.920
Christmas hasn't even come yet.
00:25:30.079 --> 00:25:33.599
Planned infrastructure spend sits at 518 billion.
00:25:33.680 --> 00:25:36.160
I can't even just like fathom the numbers here.
00:25:36.319 --> 00:25:40.960
Yeah, 518 billion and nearly a quarter of last year's revenue came from just two customers.
00:25:41.599 --> 00:25:41.839
Okay.
00:25:42.000 --> 00:25:44.960
That's not great in your key customer matrix.
00:25:45.119 --> 00:25:45.519
That's not great.
00:25:45.920 --> 00:25:46.319
Not great.
00:25:46.640 --> 00:25:50.559
The overall IPO valuation could top two trillion dollars.
00:25:50.799 --> 00:25:51.039
Right.
00:25:51.279 --> 00:25:53.119
And that part is unfathomable too.
00:25:53.440 --> 00:25:57.920
The thing that annoys me about this article is that an S1 is marketing.
00:25:58.079 --> 00:26:04.799
So the fact that a third of the S1 is dedicated to its risk factors means that the risk factors are actually a selling point.
00:26:04.880 --> 00:26:05.039
Yeah.
00:26:05.279 --> 00:26:16.880
And I think that that is something that gets, I don't even know if it gets missed, but when we look at, I open the Wall Street Journal every day and I see another, you know, article about like this, you know, oh, GPT-61 Astral is like, you know, that's too dangerous for the public.
00:26:16.960 --> 00:26:18.640
So we're gonna I'm just like, come on.
00:26:18.799 --> 00:26:24.400
It's very hard to believe that anybody at Anthropic or OpenAI still employed.
00:26:24.559 --> 00:26:33.759
I understand there are people that leave and they feel very conflicted about the work they did, but the people that are still there, it's very hard to believe that the people that are running things are actually scared about this.
00:26:34.000 --> 00:26:49.440
Because when you see articles like this, it is intentionally built in to try to recoup the you know the 13 billion in expenses and the the loss that they are accruing on a quarter by quarter basis.
00:26:49.599 --> 00:26:51.359
And that doesn't mean that they aren't risky.
00:26:51.519 --> 00:26:53.599
I understand that they are, I think they're very risky.
00:26:53.759 --> 00:26:58.079
I think the fear mongering serves a greater purpose, which is to make these companies more money.
00:26:58.319 --> 00:27:02.480
I mean, at some point, the companies just gotta be so big that they're just part of the government.
00:27:02.640 --> 00:27:03.039
Yeah.
00:27:03.200 --> 00:27:05.519
You know, like uh this is getting depressing.
00:27:05.599 --> 00:27:06.880
Hopefully, we have a good one after this.
00:27:07.039 --> 00:27:08.480
Are monopolies no longer a thing?
00:27:08.640 --> 00:27:08.880
Yeah.
00:27:09.039 --> 00:27:11.519
At what valuation does the company have a monopoly?
00:27:11.680 --> 00:27:13.279
Which I know we have open AI.
00:27:13.440 --> 00:27:16.400
Yeah, as long as you got the other one, you could say it's not a monopoly, I guess.
00:27:16.640 --> 00:27:17.359
Now there's Apple.
00:27:17.519 --> 00:27:20.160
Maybe we just have three trillion dollar companies.
00:27:20.240 --> 00:27:20.960
We're missing a third.
00:27:21.039 --> 00:27:21.599
Who's our third?
00:27:21.839 --> 00:27:22.240
Nvidia.
00:27:22.480 --> 00:27:22.960
Nvidia?
00:27:23.039 --> 00:27:24.400
Are we counting that as AI?
00:27:26.319 --> 00:27:26.640
I don't know.
00:27:26.799 --> 00:27:29.599
Jensen Huang's leather jacket is very
impressive.
00:27:29.839 --> 00:27:30.720
It is very impressive.
00:27:30.960 --> 00:27:32.960
So let's so let's throw him in there.
00:27:33.119 --> 00:27:34.559
He wants to be AI so bad.
00:27:34.720 --> 00:27:35.279
Let's give it to him.
00:27:35.440 --> 00:27:40.720
OpenAI apologizes to Australia after its AI agents breached government sites.
00:27:40.880 --> 00:27:45.359
I just before we start, the Ruby AI podcast would also like to apologize to Australia.
00:27:45.759 --> 00:27:47.519
And we've we've actually done nothing wrong.
00:27:47.599 --> 00:27:51.920
But I want our podcast to be big enough that we have to apologize to a sovereign nation.
00:27:52.160 --> 00:27:54.000
So that is the goal, Valentino.
00:27:54.079 --> 00:27:54.880
That's on our roadmap.
00:27:54.960 --> 00:28:00.319
Marco Roth has his roadmap, and we've got ours, and it's to one day have to apologize to Australia.
00:28:00.640 --> 00:28:03.839
Back in June, you're never gonna believe this if you've been listening to this show.
00:28:14.559 --> 00:28:19.920
And when they did finally say something about it, they said, Hey, we're sorry, but actually it's you know, it's training.
00:28:20.000 --> 00:28:22.559
I think that means it's okay, question mark.
00:28:22.720 --> 00:28:27.440
I don't know how Australia feels about this because I haven't actually read the article in TechCrunch, but I plan to.
00:28:27.599 --> 00:28:33.200
But I guess the question we have here is should OpenAI ever get a pass for the stuff that it does?
00:28:33.359 --> 00:28:47.680
Under the auspices of training, it has perpetrated a massive attack on Ruby gems, infiltrated hugging face, and apparently compromised uh government uh website training and evaluation data in uh Australia.
00:28:47.839 --> 00:28:50.880
It doesn't look like they get in any kind of trouble for this.
00:28:50.960 --> 00:28:54.079
And I it makes me angry, and I think it makes you angry too.
00:28:54.240 --> 00:28:55.200
So, what do you make of all this?
00:28:55.440 --> 00:29:01.279
If OpenAI wants to hack my bank account to show that I have a million dollars, maybe that's okay for training.
00:29:03.759 --> 00:29:12.319
Uh if it wants to throw those million dollars into the account in the name of training, you know, front, like if it manages to or maybe more.
00:29:12.400 --> 00:29:16.400
I mean, we really should shoot for higher because open AI probably has a whole bunch of money in its coffers.
00:29:16.559 --> 00:29:24.960
If it throws a billion or two into our bank accounts, I would go as far as to say I'd be willing to back off some of my criticism of open.
00:29:29.279 --> 00:29:30.480
Shoot high.
00:29:30.880 --> 00:29:31.519
Yeah.
00:29:33.440 --> 00:29:37.680
Remember there was a time where countries weren't allowing chat GPT?
00:29:37.839 --> 00:29:38.000
Yes.
00:29:38.240 --> 00:29:39.039
Like Italy, right?
00:29:39.519 --> 00:29:40.160
It wasn't that long ago.
00:29:40.559 --> 00:29:42.480
Yeah, it was it was not
allowed in the country.
00:29:42.640 --> 00:29:42.799
Yeah.
00:29:42.960 --> 00:29:44.640
I'm pretty sure it's allowed in the country now.
00:29:44.720 --> 00:29:45.759
I I have to check.
00:29:45.920 --> 00:29:46.880
Is that just what happens?
00:29:46.960 --> 00:29:52.240
Is OpenAI not allowed to operate in Australia if they don't fix the problem?
00:29:53.359 --> 00:29:53.839
I don't know.
00:29:54.000 --> 00:29:55.599
Why would it be allowed to operate here?
00:29:55.759 --> 00:29:55.839
Right.
00:29:56.000 --> 00:30:00.640
Is somebody just saying, hey, look, you can train whatever you want, but just make sure it hits other governments, not ours?
00:30:00.799 --> 00:30:08.319
I mean, I don't think that that's good enough of a guardrail if I'm to believe any of this news or or you know, Anthropics S1.
00:30:08.640 --> 00:30:10.160
That's one of their high-level beavals.
00:30:11.279 --> 00:30:11.920
Yeah.
00:30:12.319 --> 00:30:14.400
It's okay as long as it's not us.
00:30:14.640 --> 00:30:15.279
Yeah.
00:30:17.599 --> 00:30:18.240
Yeah.
00:30:19.359 --> 00:30:20.559
They're playing with fire.
00:30:20.640 --> 00:30:20.799
Yeah.
00:30:20.960 --> 00:30:22.880
Prime Minister calls it unacceptable.
00:30:22.960 --> 00:30:24.480
Uh it's weighing legal action.
00:30:24.559 --> 00:30:26.319
I mean, yeah, there should be legal action.
00:30:26.400 --> 00:30:27.440
There should be consequences.
00:30:27.519 --> 00:30:33.119
And if there are consequences, real consequences, then I think actually you'll see a change in behavior.
00:30:33.200 --> 00:30:39.200
But I don't think you'll see any change in behavior from OpenAI based on what we've seen so far because they've gotten away with so much.
00:30:39.279 --> 00:30:44.079
You know, in the name of either obfuscation or denial or saying, oh, it was just training.
00:30:44.319 --> 00:30:51.359
You know, there's gotta be a point where, okay, it's gone and it's executed commands and retrieved files and credentials, is what the statement is, right?
00:30:51.519 --> 00:30:52.319
The model did this.
00:30:52.480 --> 00:30:55.839
There's gotta be a point where they don't have access to those files anymore.
00:30:56.000 --> 00:30:56.160
Yeah.
00:30:56.319 --> 00:31:01.920
If the models are insulated, as they suggest, you know, from their documentation, right?
00:31:02.079 --> 00:31:08.240
And they're going out and they're running these things in some kind of protected capacity where the machines are ephemeral.
00:31:08.319 --> 00:31:11.039
Who knows where the files were handed off to in reality?
00:31:11.200 --> 00:31:11.359
Yeah.
00:31:11.519 --> 00:31:17.119
If you ever follow agent traces, they have ways of just like moving files around in different ways and handing them off.
00:31:17.279 --> 00:31:19.359
I don't know that there would be traces even of that.
00:31:19.440 --> 00:31:19.599
Yeah.
00:31:19.759 --> 00:31:21.279
Where do they return the files to?
00:31:21.440 --> 00:31:22.240
We'll give them back.
00:31:22.319 --> 00:31:23.759
This will be our contribution.
00:31:24.000 --> 00:31:27.119
I want to see boxes from open AI.
00:31:27.200 --> 00:31:34.480
You know, like Trump style, Mar-a Laga, where like you just see you just saw boxes coming out or the pelican breathing, you know.
00:31:34.559 --> 00:31:38.559
Like, I wanted to see open AI, like just a video, and maybe it could be AI, right?
00:31:38.640 --> 00:31:41.519
Like a video of boxes coming out of OpenAI.
00:31:41.920 --> 00:31:45.759
Australian officials, you know, getting their documents back.
00:31:47.279 --> 00:31:50.319
Oh, that's a good place to end it, I think.
00:31:50.799 --> 00:31:53.039
Um I'm sorry, Australia.
00:31:53.599 --> 00:31:54.640
We are both sorry.
00:31:54.720 --> 00:31:57.359
We both apologize on behalf of the Ruby AI podcast.
00:31:57.519 --> 00:31:57.920
All right.
00:31:58.160 --> 00:31:59.200
This has been great.
00:31:59.440 --> 00:32:00.240
This has been good.
00:32:00.400 --> 00:32:02.240
Let's see, what do we have up next week?
00:32:02.400 --> 00:32:03.759
Oh, Mike Delesio.
00:32:03.839 --> 00:32:04.160
Awesome.
00:32:04.240 --> 00:32:09.279
So Mike gave a great security talk at uh at Rails Worlds.
00:32:09.359 --> 00:32:12.720
Just so you know, Mike had a whole different talk planned.
00:32:12.880 --> 00:32:32.640
And then, because of all of the security issues that Ruby and Rails was facing and resolving, decided to build a gem and then change his whole talk so that he could discuss some of the security threats that he's been dealing with and that they've been dealing with, and discuss some ways of securing some really important components of Rails.
00:32:32.799 --> 00:32:34.400
It was a great talk, it'll be great to have him on the show.
00:32:34.559 --> 00:32:35.519
Yeah, I'm looking forward to that.
00:32:35.599 --> 00:32:36.480
I hope you are too.
00:32:36.640 --> 00:32:38.880
I'm really looking forward to another news segment.
00:32:39.119 --> 00:32:43.200
Do drop us an article and we will we'll shout out your name and we'll talk about the article.
00:32:43.359 --> 00:32:46.240
Send it to news at the rubyaipodcast.com.
00:32:46.400 --> 00:32:46.720
Awesome.
00:32:46.880 --> 00:32:48.160
All right, everyone, until then.