WEBVTT

00:00:00.000 --> 00:00:01.680
What about yourself, Vincent? What's

00:00:01.680 --> 00:00:02.760
news with you?

00:00:02.760 --> 00:00:04.800
>> Well, Fable is back, so that was

00:00:04.800 --> 00:00:07.080
exciting.

00:00:07.080 --> 00:00:09.120
>> So, you're smashing it.

00:00:09.120 --> 00:00:12.160
>> Yeah. So, not like

00:00:12.160 --> 00:00:14.240
I just last time Fable was here, I asked

00:00:14.240 --> 00:00:15.760
him to create a proposal on how we

00:00:15.760 --> 00:00:18.680
should implement newer Terraform

00:00:18.680 --> 00:00:20.800
provider features in in a way that's

00:00:20.800 --> 00:00:23.160
compatible both with Terraform and Open

00:00:23.160 --> 00:00:25.560
Tofu, given they have diverged in the

00:00:25.560 --> 00:00:27.960
protocol they implement. And Fable

00:00:27.960 --> 00:00:30.280
created a beautiful proposal of how we

00:00:30.280 --> 00:00:31.800
should implement this.

00:00:31.800 --> 00:00:33.640
And I was like

00:00:33.640 --> 00:00:34.715
you know, at some point I'll implement

00:00:34.715 --> 00:00:35.960
[clears throat] it.

00:00:35.960 --> 00:00:37.640
Uh but now Fable came back. So, I was

00:00:37.640 --> 00:00:39.200
like, "Okay, Fable.

00:00:39.200 --> 00:00:41.480
Um I tried this theory.

00:00:41.480 --> 00:00:43.440
Um so, I I I thought that if you give

00:00:43.440 --> 00:00:45.520
Fable as the orchestrator the

00:00:45.520 --> 00:00:48.440
instruction to use Sonnet 5, which is

00:00:48.440 --> 00:00:50.440
almost Opus quality at a much higher

00:00:50.440 --> 00:00:53.520
speed um and just basically create

00:00:53.520 --> 00:00:55.840
dynamic workflows. So, I for the first

00:00:55.840 --> 00:00:57.760
time in my life used the /goal,

00:00:57.760 --> 00:00:59.680
which is a Claude Code feature to set a

00:00:59.680 --> 00:01:01.520
goal. And the model will keep going

00:01:01.520 --> 00:01:03.800
until it reaches that goal. So, I said

00:01:03.800 --> 00:01:05.720
So, I thought this was a perfect um

00:01:05.720 --> 00:01:07.760
perfect scenario, right? I I I used

00:01:07.760 --> 00:01:09.840
/goal. I pointed to its proposal

00:01:09.840 --> 00:01:12.520
it created a month ago. And I told it

00:01:12.520 --> 00:01:14.720
>> like a a page a one-pager, cuz I thought

00:01:14.720 --> 00:01:16.480
goal was supposed to be like one prompt

00:01:16.480 --> 00:01:17.240
or something.

00:01:17.240 --> 00:01:19.680
>> No, I said the goal is to land this

00:01:19.680 --> 00:01:21.920
proposal. So, it could explore the

00:01:21.920 --> 00:01:23.120
proposal.

00:01:23.120 --> 00:01:23.320
>> I see.

00:01:23.320 --> 00:01:25.320
>> And I made sure that it was on the

00:01:25.320 --> 00:01:27.320
latest head. So, the CDK terrain

00:01:27.320 --> 00:01:29.880
project, which is the, you know,

00:01:29.880 --> 00:01:31.800
community fork of CDK for Terraform

00:01:31.800 --> 00:01:34.400
after HashiCorp deprecated it, has moved

00:01:34.400 --> 00:01:36.720
on significantly. We have removed a

00:01:36.720 --> 00:01:38.240
whole bunch of like deprecated

00:01:38.240 --> 00:01:40.200
dependencies, reduced the binary size,

00:01:40.200 --> 00:01:43.120
addressed several CVEs, and landed like

00:01:43.120 --> 00:01:44.880
functional support like function

00:01:44.880 --> 00:01:47.800
support. So, newer Terraform core and

00:01:47.800 --> 00:01:49.200
OpenTofu, they have a whole bunch of

00:01:49.200 --> 00:01:51.240
like additional functions like cider,

00:01:51.240 --> 00:01:52.680
subnet calculations, and things like

00:01:52.680 --> 00:01:54.120
that. All of that has been now

00:01:54.120 --> 00:01:56.240
integrated within CDK terrain.

00:01:56.240 --> 00:01:57.120
>> of improvements.

00:01:57.120 --> 00:01:59.440
>> A lot. And another thing, somebody's

00:01:59.440 --> 00:02:02.360
>> rewriting the whole CLI to not longer

00:02:02.360 --> 00:02:06.000
use or depend on react for the UI. So

00:02:06.000 --> 00:02:08.360
initially the project creators they used

00:02:08.360 --> 00:02:10.479
react library so that you can render

00:02:10.479 --> 00:02:12.480
components react components in in the

00:02:12.480 --> 00:02:14.880
terminal and it's going it's being

00:02:14.880 --> 00:02:17.120
completely replaced. That one isn't I'm

00:02:17.120 --> 00:02:18.240
I'm not think I don't think we're going

00:02:18.240 --> 00:02:20.000
to cut that right now because we have a

00:02:20.000 --> 00:02:22.800
release PR ready ready to go but we keep

00:02:22.800 --> 00:02:24.840
landing more features and and replacing

00:02:24.840 --> 00:02:28.000
the the user interface like that we is

00:02:28.000 --> 00:02:29.880
quite complicated. So

00:02:29.880 --> 00:02:30.200
>> Wait.

00:02:30.200 --> 00:02:32.720
>> Yeah. So oh he has no access. Okay.

00:02:32.720 --> 00:02:34.800
Anyway, so yeah that that it's been it's

00:02:34.800 --> 00:02:37.480
very interesting.

00:02:37.480 --> 00:02:40.400
>> So you're living you're you're I'm

00:02:40.400 --> 00:02:42.080
assuming you you're doing all these

00:02:42.080 --> 00:02:45.959
development on using Fable now and

00:02:45.959 --> 00:02:47.840
>> So today Fable became available like

00:02:47.840 --> 00:02:49.680
it's supposed to be from July 1st but in

00:02:49.680 --> 00:02:51.760
Vietnam yesterday even at 10:00 p.m.

00:02:51.760 --> 00:02:53.680
before I sleep I was checking cuz I

00:02:53.680 --> 00:02:55.840
already had the direct goal in mind and

00:02:55.840 --> 00:02:57.520
you only get 7 days.

00:02:57.520 --> 00:02:57.840
>> Yeah.

00:02:57.840 --> 00:02:59.840
>> I know that my limit was resetting this

00:02:59.840 --> 00:03:02.200
morning. So I had like 12 hours for my

00:03:02.200 --> 00:03:03.800
weekly limit. I thought I could like

00:03:03.800 --> 00:03:05.480
maximize because then I know my weekly

00:03:05.480 --> 00:03:06.400
limit resets.

00:03:06.400 --> 00:03:07.080
>> Yeah.

00:03:07.080 --> 00:03:08.880
>> But they do track Fable separately so

00:03:08.880 --> 00:03:11.120
I'm not sure how they're tracking it. So

00:03:11.120 --> 00:03:13.200
I had a very clear like goal of what to

00:03:13.200 --> 00:03:14.920
build with Fable the moment it came

00:03:14.920 --> 00:03:15.200
available.

00:03:15.200 --> 00:03:16.320
>> Those features that you mentioned all

00:03:16.320 --> 00:03:17.720
those improvements you've done to city

00:03:17.720 --> 00:03:19.760
cater rain like

00:03:19.760 --> 00:03:22.160
this is only really possible with Claude

00:03:22.160 --> 00:03:23.880
right? This is what I was going to

00:03:23.880 --> 00:03:24.519
allude to.

00:03:24.519 --> 00:03:26.480
>> of it comes from community contributors.

00:03:26.480 --> 00:03:28.320
I know that some of them are using AI. I

00:03:28.320 --> 00:03:30.280
think the the the most difficult bit is

00:03:30.280 --> 00:03:32.400
like having a reliable reviewers.

00:03:32.400 --> 00:03:34.800
There's one person John Steinek who has

00:03:34.800 --> 00:03:36.280
worked on the project a long time ago.

00:03:36.280 --> 00:03:38.959
He's also a Java user so he has a lot of

00:03:38.959 --> 00:03:41.160
requirements related to how the Java

00:03:41.160 --> 00:03:43.200
part of it works. He's been reviewing

00:03:43.200 --> 00:03:45.239
and I really appreciate his reviews

00:03:45.239 --> 00:03:46.880
because they have deep technical

00:03:46.880 --> 00:03:48.920
references like we used to do it this

00:03:48.920 --> 00:03:50.720
way. We decided not to do this. This

00:03:50.720 --> 00:03:53.200
could be a problem. He he goes in a very

00:03:53.200 --> 00:03:55.360
good detail. And I feel a little bit

00:03:55.360 --> 00:03:59.560
guilty if I send a PR and it's all AI

00:03:59.560 --> 00:04:03.600
and honestly, I I just ask AI to

00:04:03.600 --> 00:04:05.520
validate it, which is bad, right?

00:04:05.520 --> 00:04:06.959
Because I come up with a whole bunch of

00:04:06.959 --> 00:04:09.600
scenarios and when it all passes, I do

00:04:09.600 --> 00:04:12.080
like cursory reviews. Um, I do look at

00:04:12.080 --> 00:04:14.480
the the code a little, but not not in

00:04:14.480 --> 00:04:16.440
great detail. So, I feel a bit guilty

00:04:16.440 --> 00:04:17.920
there because I don't want to be the guy

00:04:17.920 --> 00:04:21.280
keeps contributing AI slop. And and and

00:04:21.280 --> 00:04:23.160
and that's like the biggest problem.

00:04:23.160 --> 00:04:23.560
>> Yeah.

00:04:23.560 --> 00:04:25.360
>> One thing that's I feel one of my

00:04:25.360 --> 00:04:26.880
tenants that I've had

00:04:26.880 --> 00:04:28.080
at

00:04:28.080 --> 00:04:30.040
that I've had throughout my life is that

00:04:30.040 --> 00:04:32.040
if I don't know what something is, I do

00:04:32.040 --> 00:04:33.000
try to learn.

00:04:33.000 --> 00:04:33.520
>> Of course.

00:04:33.520 --> 00:04:35.320
>> And but of course with with AI it makes

00:04:35.320 --> 00:04:37.040
it easy just to ship. Like it's kind of

00:04:37.040 --> 00:04:39.360
working. Yeah, go go go. But like

00:04:39.360 --> 00:04:40.600
if there's something in the in the

00:04:40.600 --> 00:04:42.240
programming language like I don't really

00:04:42.240 --> 00:04:43.280
understand like what's the difference

00:04:43.280 --> 00:04:44.480
between

00:04:44.480 --> 00:04:45.919
I don't know this read byte thing and

00:04:45.919 --> 00:04:49.160
this raw thing. I actually usually just

00:04:49.160 --> 00:04:51.520
I try take the time to and and this is

00:04:51.520 --> 00:04:53.040
where again where AI is damn useful.

00:04:53.040 --> 00:04:54.360
Like, can you explain to me the

00:04:54.360 --> 00:04:56.360
difference between this, you know, byte

00:04:56.360 --> 00:04:59.120
array and this raw representation of a

00:04:59.120 --> 00:05:01.000
string? Uh

00:05:01.000 --> 00:05:02.160
And then it and then it tells me and

00:05:02.160 --> 00:05:04.360
then I know and then I can basically not

00:05:04.360 --> 00:05:06.200
understand

00:05:06.200 --> 00:05:08.160
or keep understanding what I'm doing.

00:05:08.160 --> 00:05:10.200
And I feel I mean there must be people

00:05:10.200 --> 00:05:12.200
who have just uh

00:05:12.200 --> 00:05:13.440
Oh yeah, there's been blogs written

00:05:13.440 --> 00:05:15.480
about this cognitive uh

00:05:15.480 --> 00:05:16.680
>> offload your brain

00:05:16.680 --> 00:05:17.840
>> term?

00:05:17.840 --> 00:05:19.400
At At the osmotic cognitive

00:05:19.400 --> 00:05:20.000
>> serenade

00:05:20.000 --> 00:05:21.440
>> serenade or something. When you just

00:05:21.440 --> 00:05:23.520
basically like, okay, now the AI knows

00:05:23.520 --> 00:05:25.120
how to do this. I don't need to know

00:05:25.120 --> 00:05:27.120
this. No, no, you know how to you need

00:05:27.120 --> 00:05:29.440
to know how it works. Oh, yeah. Oh, I I

00:05:29.440 --> 00:05:31.880
wanted to share that um I tried a new

00:05:31.880 --> 00:05:34.800
feature yesterday. Have you heard of

00:05:34.800 --> 00:05:36.800
Hold on. I have to find it. This might

00:05:36.800 --> 00:05:38.400
take me some time. Give me a second.

00:05:38.400 --> 00:05:39.600
>> Yeah, I need just needed to kick off

00:05:39.600 --> 00:05:41.840
SonarQube 5 to do some validation. So so

00:05:41.840 --> 00:05:43.880
one of the main things that I wanted to

00:05:43.880 --> 00:05:45.200
validate

00:05:45.200 --> 00:05:47.040
was explain able to orchestrate

00:05:47.040 --> 00:05:48.960
SonarQube five like I told you right.

00:05:48.960 --> 00:05:50.760
>> Let me share something with you. I think

00:05:50.760 --> 00:05:51.920
I'm I'm going to make a video about

00:05:51.920 --> 00:05:54.680
this. Okay, so you know I'm a number one

00:05:54.680 --> 00:05:57.360
AWS fan for many years and I've been

00:05:57.360 --> 00:05:58.880
doing serverless stuff for a while. But

00:05:58.880 --> 00:05:59.960
when you use

00:05:59.960 --> 00:06:02.040
>> Yeah, I've read this.

00:06:02.040 --> 00:06:04.200
This is nonsense. I mean, they're

00:06:04.200 --> 00:06:06.520
basically getting on par with Terraform.

00:06:06.520 --> 00:06:08.280
>> Well, yeah, yeah, there there are tricks

00:06:08.280 --> 00:06:10.240
to update the binary and this I guess

00:06:10.240 --> 00:06:11.520
this is what they're doing right?

00:06:11.520 --> 00:06:13.640
They're using some sort of some sort of

00:06:13.640 --> 00:06:15.160
I don't know exactly I don't I don't

00:06:15.160 --> 00:06:16.360
think they go into detail about how

00:06:16.360 --> 00:06:19.200
Express works. But I'm I'm assuming it

00:06:19.200 --> 00:06:20.919
does what Terraform

00:06:20.919 --> 00:06:22.120
could do.

00:06:22.120 --> 00:06:24.919
>> No, the the main thing that Express does

00:06:24.919 --> 00:06:28.880
is to avoid the validation phase, right?

00:06:28.880 --> 00:06:30.280
I I read one blog post about

00:06:30.280 --> 00:06:32.880
CloudFormation. They added the

00:06:32.880 --> 00:06:34.560
deployment validation. I thought this

00:06:34.560 --> 00:06:35.880
was Express.

00:06:35.880 --> 00:06:37.520
>> Is it that simple? They just removed the

00:06:37.520 --> 00:06:39.280
bloody validation step. They don't

00:06:39.280 --> 00:06:40.760
mention that in the blog. They don't

00:06:40.760 --> 00:06:42.680
mention that but like yeah, I was I'm

00:06:42.680 --> 00:06:44.320
not showing my whole screen. I tried it

00:06:44.320 --> 00:06:45.800
out and uh

00:06:45.800 --> 00:06:47.360
it is much faster to deploy.

00:06:47.360 --> 00:06:48.520
>> Yeah, it's about the resource

00:06:48.520 --> 00:06:50.120
stabilization. So basically

00:06:50.120 --> 00:06:52.680
CloudFormation is famous for like it's

00:06:52.680 --> 00:06:54.720
very famous it does something Terraform

00:06:54.720 --> 00:06:57.280
doesn't do which is it does

00:06:57.280 --> 00:06:58.840
validates your deployment and if it

00:06:58.840 --> 00:07:00.680
doesn't pass the validation it rolls

00:07:00.680 --> 00:07:03.800
everything back which is a massive

00:07:03.800 --> 00:07:06.160
feature of CloudFormation that Terraform

00:07:06.160 --> 00:07:08.360
misses and to be honest because I was

00:07:08.360 --> 00:07:10.640
building a startup with my friend to

00:07:10.640 --> 00:07:13.919
automate and he was using CloudFormation

00:07:13.919 --> 00:07:15.400
and then we were looking at like uh

00:07:15.400 --> 00:07:17.480
Azure and the biggest issue was how do

00:07:17.480 --> 00:07:19.640
we ensure that the Terraform deployment

00:07:19.640 --> 00:07:21.760
is correct? It's hard. CloudFormation

00:07:21.760 --> 00:07:23.640
does that out of the box but that's also

00:07:23.640 --> 00:07:25.720
the main gripe people have against

00:07:25.720 --> 00:07:28.160
CloudFormation because it goes into this

00:07:28.160 --> 00:07:30.880
crash loop back up not sorry that's

00:07:30.880 --> 00:07:32.960
it goes into these like rollback revert

00:07:32.960 --> 00:07:35.280
failures where you know it deployed like

00:07:35.280 --> 00:07:38.200
an S3 bucket or a DynamoDB table and

00:07:38.200 --> 00:07:39.720
that is flagged as like something

00:07:39.720 --> 00:07:41.680
stateful and then in the rollback it

00:07:41.680 --> 00:07:44.120
refuses to remove those. Those are all

00:07:44.120 --> 00:07:45.960
issues that were like very common in the

00:07:45.960 --> 00:07:47.640
past. I'm not sure if they introduced

00:07:47.640 --> 00:07:50.440
more like fixes for that. But the whole

00:07:50.440 --> 00:07:53.120
CloudFormation validation step was the

00:07:53.120 --> 00:07:54.160
main issue like when people say

00:07:54.160 --> 00:07:56.040
CloudFormation is slow, it's like

00:07:56.040 --> 00:07:57.840
Terraform is so much faster and easier,

00:07:57.840 --> 00:07:59.000
it's because Terraform doesn't do any

00:07:59.000 --> 00:08:00.680
validation. And Terraform also you have

00:08:00.680 --> 00:08:03.200
to build your own runtime around it. Or

00:08:03.200 --> 00:08:05.080
you have to adopt a cloud for it. Like

00:08:05.080 --> 00:08:06.960
CloudFormation is a runtime provided by

00:08:06.960 --> 00:08:09.040
AWS for you. Gives you a whole bunch of

00:08:09.040 --> 00:08:11.600
like um validation mechanisms. The

00:08:11.600 --> 00:08:13.040
runtime is cross-regional, so you don't

00:08:13.040 --> 00:08:14.720
have to go and boost everything. It's

00:08:14.720 --> 00:08:15.200
all there.

00:08:15.200 --> 00:08:17.200
>> For you, I like I'm just try Sorry, I'm

00:08:17.200 --> 00:08:18.440
trying to summarize and make sense of

00:08:18.440 --> 00:08:20.320
this. Do you find the validation useful?

00:08:20.320 --> 00:08:21.760
To be To be honest, I don't find it

00:08:21.760 --> 00:08:23.800
useful. But like am I an idiot?

00:08:23.800 --> 00:08:25.760
>> Well, if you are having to guarantee

00:08:25.760 --> 00:08:27.120
that something It's like a database

00:08:27.120 --> 00:08:28.760
transaction, right? Is a database

00:08:28.760 --> 00:08:31.600
transaction useful? You can you start

00:08:31.600 --> 00:08:33.120
transaction and then you commit

00:08:33.120 --> 00:08:35.560
transaction. It's all or nothing, right?

00:08:35.560 --> 00:08:37.400
That's very hard to guarantee in

00:08:37.400 --> 00:08:39.680
Terraform. Terraform can go go and go

00:08:39.680 --> 00:08:41.320
off and apply a bunch of things and

00:08:41.320 --> 00:08:43.120
leave it like all of these resources

00:08:43.120 --> 00:08:45.040
were updated, but then it failed because

00:08:45.040 --> 00:08:47.320
of the the API endpoint returned an

00:08:47.320 --> 00:08:48.360
error

00:08:48.360 --> 00:08:50.040
and it's blocked. You can't roll back.

00:08:50.040 --> 00:08:53.240
>> like many many times I've deployed

00:08:53.240 --> 00:08:55.560
something and and the rollback feature

00:08:55.560 --> 00:08:57.480
caused more problems than

00:08:57.480 --> 00:08:59.240
it it should have solved. As you were

00:08:59.240 --> 00:09:00.120
saying, right?

00:09:00.120 --> 00:09:02.080
>> I mean, it's it's really up to how you

00:09:02.080 --> 00:09:04.560
like your tolerance for and how you

00:09:04.560 --> 00:09:06.240
approach the problem, right? In some

00:09:06.240 --> 00:09:09.200
scenarios, a full validation is what you

00:09:09.200 --> 00:09:11.440
want. So it's all like it depends. And

00:09:11.440 --> 00:09:13.240
to be honest, if you try to build a full

00:09:13.240 --> 00:09:15.440
validation mechanism, the failure modes

00:09:15.440 --> 00:09:17.800
like you I think this is probably also

00:09:17.800 --> 00:09:19.680
why CloudFormation fails. The failure

00:09:19.680 --> 00:09:22.400
modes in Terraform are very hard to

00:09:22.400 --> 00:09:24.800
recover from sometimes because it goes

00:09:24.800 --> 00:09:25.839
and creates like half of the

00:09:25.839 --> 00:09:27.880
configuration as it should be. And then

00:09:27.880 --> 00:09:29.000
sometimes

00:09:29.000 --> 00:09:30.880
the other parts are not there. It's not

00:09:30.880 --> 00:09:32.760
simple like take back the old config and

00:09:32.760 --> 00:09:34.280
reapply it to go back to your working

00:09:34.280 --> 00:09:36.680
state. It could be completely broken and

00:09:36.680 --> 00:09:38.400
requires you to manually go and figure

00:09:38.400 --> 00:09:40.440
out what actually worked, how do I

00:09:40.440 --> 00:09:41.680
recover from this? Like, is it roll

00:09:41.680 --> 00:09:43.400
forward? Is there a way? Cuz cuz my

00:09:43.400 --> 00:09:45.040
friend had these ideas, like he was

00:09:45.040 --> 00:09:46.760
using full cloud formation, it was very

00:09:46.760 --> 00:09:48.320
reliable, and he was like, "How do I do

00:09:48.320 --> 00:09:49.600
this with Terraform?" He was trying to

00:09:49.600 --> 00:09:51.080
like, "I'm going to snapshot every

00:09:51.080 --> 00:09:52.760
Terraform configuration before we do an

00:09:52.760 --> 00:09:54.480
apply, and then if it fails, we do a

00:09:54.480 --> 00:09:55.880
rollback by just reapplying the old

00:09:55.880 --> 00:09:57.160
one." And I told him, "That's not going

00:09:57.160 --> 00:09:58.720
to work. Terraform doesn't work like

00:09:58.720 --> 00:10:00.280
that. Terraform providers don't work

00:10:00.280 --> 00:10:02.920
like that, and the the the APIs that

00:10:02.920 --> 00:10:04.240
they talk to don't work like that."

00:10:04.240 --> 00:10:04.760
>> Yeah.

00:10:04.760 --> 00:10:06.320
>> And I think that's the main thing that

00:10:06.320 --> 00:10:08.360
people say when they say uh you can't

00:10:08.360 --> 00:10:10.480
treat infrastructure as code, it's in

00:10:10.480 --> 00:10:12.760
configuration, it's not the same

00:10:12.760 --> 00:10:14.880
deployment pipeline as you do with like,

00:10:14.880 --> 00:10:17.000
you know, it's like database migrations,

00:10:17.000 --> 00:10:19.240
right? You can't treat it the same.

00:10:19.240 --> 00:10:20.920
Like, you can't auto approve. That's

00:10:20.920 --> 00:10:22.720
also why people say you can't have like

00:10:22.720 --> 00:10:24.760
a cross plane controller reconciling

00:10:24.760 --> 00:10:27.640
your infrastructure all the time because

00:10:27.640 --> 00:10:28.920
all of these scenarios where the cloud

00:10:28.920 --> 00:10:31.120
goes and upgrades a database engine uh

00:10:31.120 --> 00:10:32.640
behind the scene, and then your

00:10:32.640 --> 00:10:34.520
reconciler tries to downgrade, which is

00:10:34.520 --> 00:10:36.520
not allowed by the API. There's a whole

00:10:36.520 --> 00:10:39.120
bunch of like edge cases that that that

00:10:39.120 --> 00:10:41.280
these like that doesn't fit with ice

00:10:41.280 --> 00:10:42.800
like infrastructure. But

00:10:42.800 --> 00:10:45.240
>> Yeah. Well, I I mean, I know you said it

00:10:45.240 --> 00:10:47.360
depends, but like the majority of the

00:10:47.360 --> 00:10:50.280
time I feel like the Terraform flow and

00:10:50.280 --> 00:10:53.120
the fixed forward approach has been good

00:10:53.120 --> 00:10:55.000
to me. Like, I I don't think I

00:10:55.000 --> 00:10:56.240
>> I wouldn't I wouldn't make a blanket

00:10:56.240 --> 00:10:57.520
statement like you. I would I would

00:10:57.520 --> 00:10:59.200
never. Because

00:10:59.200 --> 00:11:00.320
>> It's all about I I think it's all about

00:11:00.320 --> 00:11:00.680
the

00:11:00.680 --> 00:11:02.960
>> database migrations are also not useful.

00:11:02.960 --> 00:11:04.760
I think you will find if you claim to be

00:11:04.760 --> 00:11:07.080
a developer, a lot of developers upset

00:11:07.080 --> 00:11:08.920
if you say all database migrations are

00:11:08.920 --> 00:11:11.120
not useful. I find that I should just

00:11:11.120 --> 00:11:12.800
always fail forward and never use a

00:11:12.800 --> 00:11:14.680
database migration. Like, no, it

00:11:14.680 --> 00:11:15.280
depends.

00:11:15.280 --> 00:11:17.240
>> True, true, true. I I guess I'm just

00:11:17.240 --> 00:11:19.360
trying to debate with you

00:11:19.360 --> 00:11:21.960
that uh at least the majority of the

00:11:21.960 --> 00:11:25.960
cases don't need that level of support,

00:11:25.960 --> 00:11:29.040
but yeah. I think your point is is

00:11:29.040 --> 00:11:30.320
better made than mine.

00:11:30.320 --> 00:11:33.200
>> Hello and welcome to the AI and podcast.

00:11:33.200 --> 00:11:35.280
In this podcast we like to discuss our

00:11:35.280 --> 00:11:38.200
experience using AI as infrastructure

00:11:38.200 --> 00:11:41.760
engineers and try to hit on some of the

00:11:41.760 --> 00:11:44.560
implications towards how it will impact

00:11:44.560 --> 00:11:46.480
software delivery life cycle and

00:11:46.480 --> 00:11:48.920
security at our job. I think the main

00:11:48.920 --> 00:11:50.280
topic or the

00:11:50.280 --> 00:11:52.080
one of the main highlights of today is

00:11:52.080 --> 00:11:54.280
that Fable is back as you can see on the

00:11:54.280 --> 00:11:56.520
shared screen with lots of tabs open

00:11:56.520 --> 00:11:57.840
which is another

00:11:57.840 --> 00:12:00.200
>> because it requires to turn off

00:12:00.200 --> 00:12:02.560
zero data retention which is not allowed

00:12:02.560 --> 00:12:04.720
in the enterprise environment for fear

00:12:04.720 --> 00:12:07.440
of our our amazing source code being

00:12:07.440 --> 00:12:08.720
leaked to

00:12:08.720 --> 00:12:10.560
>> Yeah, it makes total sense. These models

00:12:10.560 --> 00:12:12.520
are being trained on our usage, right?

00:12:12.520 --> 00:12:14.800
So I am using it for an open source

00:12:14.800 --> 00:12:16.560
project mainly. Some things that I

00:12:16.560 --> 00:12:18.680
really wanted to land into this project

00:12:18.680 --> 00:12:20.760
and I think regular listeners will be

00:12:20.760 --> 00:12:22.640
familiar with the fact with Terraform

00:12:22.640 --> 00:12:24.880
CDK and that I keep talking about how it

00:12:24.880 --> 00:12:26.480
was deprecated and how I forked it with

00:12:26.480 --> 00:12:28.160
a couple of people. And in this

00:12:28.160 --> 00:12:30.640
particular case Fable helped me plan out

00:12:30.640 --> 00:12:33.600
some features. And I was actually before

00:12:33.600 --> 00:12:36.040
we go into that rabbit hole asked a a

00:12:36.040 --> 00:12:39.000
question to Kai earlier which was is he

00:12:39.000 --> 00:12:41.680
actually still using cloud Claude Code

00:12:41.680 --> 00:12:43.360
plan mode which is like one of the

00:12:43.360 --> 00:12:45.320
famous things that drew people into

00:12:45.320 --> 00:12:48.640
cloud coming from chat GPT experiencing

00:12:48.640 --> 00:12:51.080
um you know, an unstructured chat mode

00:12:51.080 --> 00:12:53.360
where you're very hard to set targets

00:12:53.360 --> 00:12:56.040
and getting snippets and bits back or

00:12:56.040 --> 00:12:57.760
evolving into cursor where the agent

00:12:57.760 --> 00:12:59.640
goes and modifies your files and you

00:12:59.640 --> 00:13:02.160
look at typing and re-rewriting the

00:13:02.160 --> 00:13:04.480
whole file originally and then cloud

00:13:04.480 --> 00:13:06.760
code coming up with this plan mode

00:13:06.760 --> 00:13:08.480
laying out cleanly what it is going to

00:13:08.480 --> 00:13:11.240
do and and then people like TV Egge

00:13:11.240 --> 00:13:13.880
coming up with task trackers to do cross

00:13:13.880 --> 00:13:16.160
session content like re-reloading the

00:13:16.160 --> 00:13:16.839
session.

00:13:16.839 --> 00:13:18.480
>> I don't use plan mode

00:13:18.480 --> 00:13:21.440
uh as much anymore. I like I I I do find

00:13:21.440 --> 00:13:23.600
I like yesterday I put it into plan mode

00:13:23.600 --> 00:13:26.480
as a as a as a safety mechanism not for

00:13:26.480 --> 00:13:28.760
it to start editing my code. Like I just

00:13:28.760 --> 00:13:29.600
had

00:13:29.600 --> 00:13:31.440
That's what I use plan mode for. Like

00:13:31.440 --> 00:13:34.360
don't edit my code little idea here, but

00:13:34.360 --> 00:13:35.720
then whatever.

00:13:35.720 --> 00:13:36.440
>> That's right.

00:13:36.440 --> 00:13:38.280
>> I don't use it very much to

00:13:38.280 --> 00:13:40.680
>> I actually see also in open code, it's

00:13:40.680 --> 00:13:42.840
kind of like plan versus build. And I

00:13:42.840 --> 00:13:44.440
see when I work with other people, they

00:13:44.440 --> 00:13:47.000
very heavily use plan mode to put it in

00:13:47.000 --> 00:13:48.520
a read only mode.

00:13:48.520 --> 00:13:50.040
To me it was always like it's going to

00:13:50.040 --> 00:13:51.800
explore and find some things. I think it

00:13:51.800 --> 00:13:53.880
was like you say a guardrail.

00:13:53.880 --> 00:13:55.800
Even if the model decides to to write

00:13:55.800 --> 00:13:57.640
something down, plan mode often blocks

00:13:57.640 --> 00:13:59.160
it saying like you know, you can't. The

00:13:59.160 --> 00:14:01.680
only allowed path for you to write is in

00:14:01.680 --> 00:14:04.200
the plan uh file uh path and using the

00:14:04.200 --> 00:14:06.400
planning tool, I guess. But plan mode

00:14:06.400 --> 00:14:08.160
was great until you had to plan

00:14:08.160 --> 00:14:10.120
something complicated that involved

00:14:10.120 --> 00:14:12.120
doing research on certain libraries or

00:14:12.120 --> 00:14:13.800
even getting buying with other people.

00:14:13.800 --> 00:14:15.640
So then something that became quite

00:14:15.640 --> 00:14:17.560
famous is spectrum in development. And I

00:14:17.560 --> 00:14:19.560
would I adopted it back in September and

00:14:19.560 --> 00:14:21.920
I found it much more effective. I think

00:14:21.920 --> 00:14:23.760
one of the big differences between then

00:14:23.760 --> 00:14:25.240
and now is that we now have 1 million

00:14:25.240 --> 00:14:28.880
context uh tokens and also the agent

00:14:28.880 --> 00:14:31.120
like interactions are much better. The

00:14:31.120 --> 00:14:33.920
main models tend to create complicated

00:14:33.920 --> 00:14:36.160
workflows with sub-agents or even just

00:14:36.160 --> 00:14:38.200
branch out to agents to keep the context

00:14:38.200 --> 00:14:40.400
focused and allow you to go a lot

00:14:40.400 --> 00:14:42.120
further without having to resort to

00:14:42.120 --> 00:14:43.839
these elaborate plans.

00:14:43.839 --> 00:14:45.320
>> I always thought spectrum in development

00:14:45.320 --> 00:14:46.839
to me

00:14:46.839 --> 00:14:48.520
more to do with team alignment. Have you

00:14:48.520 --> 00:14:50.960
Have you used a slash team onboarding

00:14:50.960 --> 00:14:53.000
shortcut or whatever command?

00:14:53.000 --> 00:14:55.280
>> I tried it a long time ago and I didn't

00:14:55.280 --> 00:14:58.280
like it. I don't know. But But like I've

00:14:58.280 --> 00:15:00.320
also got some experience like Originally

00:15:00.320 --> 00:15:02.440
the way I saw uh spectrum in development

00:15:02.440 --> 00:15:05.880
was to create like a a breakdown of why

00:15:05.880 --> 00:15:07.920
I I built something. Sometimes first to

00:15:07.920 --> 00:15:10.120
get buying for other people to comment

00:15:10.120 --> 00:15:13.320
on. So there are very nice tools like

00:15:13.320 --> 00:15:16.040
crit uh and others that allow you to

00:15:16.040 --> 00:15:18.160
collect feedback from people and I think

00:15:18.160 --> 00:15:19.560
that's a lot of these tools are still

00:15:19.560 --> 00:15:22.080
>> You like crit? Okay. I thought you were

00:15:22.080 --> 00:15:22.240
>> I

00:15:22.240 --> 00:15:24.880
>> see very like nice tools like crit. Crit

00:15:24.880 --> 00:15:27.120
became absolute slop. Sorry. Like I

00:15:27.120 --> 00:15:29.160
looked at it and then in just in a span

00:15:29.160 --> 00:15:31.440
of two weeks, the whole root of the

00:15:31.440 --> 00:15:34.040
repository was filled with markdown and

00:15:34.040 --> 00:15:36.040
>> I think crit I mean Thomas is still

00:15:36.040 --> 00:15:38.560
working on it and he's still on X and

00:15:38.560 --> 00:15:40.320
he's very approachable. So I'm going to

00:15:40.320 --> 00:15:41.840
give let's give him the benefit of the

00:15:41.840 --> 00:15:44.080
doubt and say it there is tools like

00:15:44.080 --> 00:15:46.400
crit, but it might have been

00:15:46.400 --> 00:15:47.920
a bad experience.

00:15:47.920 --> 00:15:49.240
>> and I think some of them do it a lot

00:15:49.240 --> 00:15:51.080
better. There's Anyway, I don't want to

00:15:51.080 --> 00:15:52.800
go too much into that details because I

00:15:52.800 --> 00:15:54.480
think what we concluded after you

00:15:54.480 --> 00:15:56.240
answered the question and I answered the

00:15:56.240 --> 00:15:58.280
question was that with the state of the

00:15:58.280 --> 00:15:59.960
tools, I don't see the point of it that

00:15:59.960 --> 00:16:02.280
much anymore. Definitely not for like I

00:16:02.280 --> 00:16:04.880
think we've gone back to Yes, I do read

00:16:04.880 --> 00:16:06.680
the source code and we need to break

00:16:06.680 --> 00:16:08.440
things down in small PR's like what you

00:16:08.440 --> 00:16:09.920
were saying like you you spend a lot of

00:16:09.920 --> 00:16:11.840
time focused on how do I make sure that

00:16:11.840 --> 00:16:14.680
the PR is small enough and reviewable,

00:16:14.680 --> 00:16:16.480
right?

00:16:16.480 --> 00:16:19.680
>> My sense has come in like I I used it in

00:16:19.680 --> 00:16:21.920
my project that I mentioned yesterday to

00:16:21.920 --> 00:16:24.600
break up the commit. So now

00:16:24.600 --> 00:16:25.839
can I share the screen now?

00:16:25.839 --> 00:16:27.720
>> Just just no. Because breaking up

00:16:27.720 --> 00:16:29.839
commits, I I don't see the point and

00:16:29.839 --> 00:16:31.480
also actually Fable is doing this really

00:16:31.480 --> 00:16:33.320
>> makes it really good not not just for

00:16:33.320 --> 00:16:34.640
PR's, but for me.

00:16:34.640 --> 00:16:35.680
>> So

00:16:35.680 --> 00:16:37.200
if I walk you through this, I don't

00:16:37.200 --> 00:16:38.240
think

00:16:38.240 --> 00:16:40.640
Okay. So I didn't see the point of

00:16:40.640 --> 00:16:42.720
breaking down individual commits, but I

00:16:42.720 --> 00:16:45.480
I do see Fable doing this really well.

00:16:45.480 --> 00:16:47.760
Like when you do a plan like when in

00:16:47.760 --> 00:16:49.600
this case, okay, let let's just walk

00:16:49.600 --> 00:16:50.960
away from all of this history of

00:16:50.960 --> 00:16:52.760
spectrum development goal. It's not

00:16:52.760 --> 00:16:54.839
really goal. It's like building

00:16:54.839 --> 00:16:57.480
elaborate documents for planning like

00:16:57.480 --> 00:16:59.920
data models and so on. I think they have

00:16:59.920 --> 00:17:01.680
absolutely have a purpose in certain

00:17:01.680 --> 00:17:03.760
scenarios, but if you're doing open

00:17:03.760 --> 00:17:05.760
source work and you're depending on

00:17:05.760 --> 00:17:08.000
other people's time to do the review and

00:17:08.000 --> 00:17:10.800
you need to land small little PR's that

00:17:10.800 --> 00:17:12.839
work. But they don't care about going

00:17:12.839 --> 00:17:15.520
through massive amount of markdown. And

00:17:15.520 --> 00:17:18.000
and actually when the Vogel he posted

00:17:18.000 --> 00:17:20.600
this uh this famous AWS working back

00:17:20.600 --> 00:17:23.040
from from the customer and user

00:17:23.040 --> 00:17:23.800
experience.

00:17:23.800 --> 00:17:24.120
>> that.

00:17:24.120 --> 00:17:26.280
>> I love that. He He posted, "How does

00:17:26.280 --> 00:17:28.199
this evolve in the age of AI when you

00:17:28.199 --> 00:17:30.120
can build a prototype? Like, when it

00:17:30.120 --> 00:17:31.920
used to take months to build software,

00:17:31.920 --> 00:17:34.280
now you can build a prototype in days."

00:17:34.280 --> 00:17:36.280
And so, they don't just write the

00:17:36.280 --> 00:17:38.400
document any anymore from just a press

00:17:38.400 --> 00:17:40.520
release and FAQ, but they actually also

00:17:40.520 --> 00:17:43.440
build a POC, a prototype. And there were

00:17:43.440 --> 00:17:44.480
two articles, [clears throat] Werner

00:17:44.480 --> 00:17:46.800
Vogels shared one article, and then he

00:17:46.800 --> 00:17:49.120
he pointed to uh I think the team lead

00:17:49.120 --> 00:17:51.880
of Kiro who who who who did that with

00:17:51.880 --> 00:17:53.920
with with her team, how they developed

00:17:53.920 --> 00:17:55.600
uh Kiro. Those are very interesting to

00:17:55.600 --> 00:17:57.360
read. What does it like what what does

00:17:57.360 --> 00:17:59.080
this like working back from the customer

00:17:59.080 --> 00:18:00.960
requirements? But, what I really wanted

00:18:00.960 --> 00:18:02.680
to to dive into right now without going

00:18:02.680 --> 00:18:05.800
too much in any other details there is

00:18:05.800 --> 00:18:08.600
that I tried a Fable 5 with this new

00:18:08.600 --> 00:18:10.600
thing called goal.

00:18:10.600 --> 00:18:13.560
>> Stashka, could you just control plus

00:18:13.560 --> 00:18:14.600
whatever, command plus?

00:18:14.600 --> 00:18:16.880
>> Okay. So, so I opened Cloud, and I do

00:18:16.880 --> 00:18:20.240
have Fable active. And there's a lot of

00:18:20.240 --> 00:18:22.280
people complaining about the the usage

00:18:22.280 --> 00:18:23.960
that you get. You only get it for 7

00:18:23.960 --> 00:18:26.640
days, and it's very hard limited. But,

00:18:26.640 --> 00:18:28.920
the way I saw it is like Fable shouldn't

00:18:28.920 --> 00:18:30.600
be the one doing most of the work,

00:18:30.600 --> 00:18:32.800
right? It should just be the expert like

00:18:32.800 --> 00:18:35.160
overhead orchestrator. And then, I

00:18:35.160 --> 00:18:36.680
thought because Suno AI 5 came out as

00:18:36.680 --> 00:18:39.320
well, and it's like almost Opus level at

00:18:39.320 --> 00:18:41.480
a fraction of the cost and much faster

00:18:41.480 --> 00:18:44.000
than Opus 4.8, they say. Therefore, I

00:18:44.000 --> 00:18:47.240
thought, "Hey, I have an RFC here that

00:18:47.240 --> 00:18:50.480
was built by Fable a month ago when it

00:18:50.480 --> 00:18:53.200
when it was available to

00:18:53.200 --> 00:18:55.520
Yeah, for It was available I I used it

00:18:55.520 --> 00:18:57.800
for two two or three days, I think. And

00:18:57.800 --> 00:19:00.120
basically, I asked it to to do a full

00:19:00.120 --> 00:19:02.160
sweep of all of the Terraform provider

00:19:02.160 --> 00:19:04.800
capabilities across OpenTofu and

00:19:04.800 --> 00:19:08.040
Terraform because each of them land the

00:19:08.040 --> 00:19:09.760
support different at different versions

00:19:09.760 --> 00:19:11.440
at different releases. So, we want to

00:19:11.440 --> 00:19:13.760
make sure that if somebody uses our meta

00:19:13.760 --> 00:19:15.560
language, which is in TypeScript, to

00:19:15.560 --> 00:19:17.440
configure your Terraform, basically gets

00:19:17.440 --> 00:19:19.760
like a lot of niceties like if you use

00:19:19.760 --> 00:19:22.320
this feature, you got a little synth

00:19:22.320 --> 00:19:23.760
warning like the configuration you're

00:19:23.760 --> 00:19:25.520
generating right now, it will work with

00:19:25.520 --> 00:19:28.720
OpenTofu 1.10. You are currently on on

00:19:28.720 --> 00:19:30.800
1.5. It doesn't It won't work or

00:19:30.800 --> 00:19:32.560
something like that. They started at 1.6

00:19:32.560 --> 00:19:34.640
actually, I think. So, yeah, that that's

00:19:34.640 --> 00:19:35.960
kind of like the things that that Fable

00:19:35.960 --> 00:19:38.320
actually landed a month ago, the ability

00:19:38.320 --> 00:19:40.520
to and we went through some iterations.

00:19:40.520 --> 00:19:42.200
I I let it do completely organically.

00:19:42.200 --> 00:19:44.240
Fable, just tell me how you would do it.

00:19:44.240 --> 00:19:45.800
Initially, Fable quickly highlighted

00:19:45.800 --> 00:19:47.360
like, "Hey, we're doing a config

00:19:47.360 --> 00:19:49.360
generation and we're we're calling out

00:19:49.360 --> 00:19:51.160
to a binary, which is kind of bad

00:19:51.160 --> 00:19:53.280
because the binary callout could be on a

00:19:53.280 --> 00:19:54.920
synthesis machine that doesn't have

00:19:54.920 --> 00:19:56.480
access to the right binary, right? The

00:19:56.480 --> 00:19:57.920
binary only gets called when you do the

00:19:57.920 --> 00:20:00.920
apply." So, we we we flipped it around

00:20:00.920 --> 00:20:02.640
like Fable kind of highlighted it that

00:20:02.640 --> 00:20:04.560
it would make more sense to let the the

00:20:04.560 --> 00:20:06.480
people writing the configuration declare

00:20:06.480 --> 00:20:08.520
what they support and then when you call

00:20:08.520 --> 00:20:10.000
those configurations, you get this

00:20:10.000 --> 00:20:11.880
validation happening when the binary is

00:20:11.880 --> 00:20:13.880
actually being executed when you do the

00:20:13.880 --> 00:20:15.600
plan and the apply and then it will

00:20:15.600 --> 00:20:17.040
highlight, "Okay, you know, there's a

00:20:17.040 --> 00:20:19.320
couple of functions in here that that

00:20:19.320 --> 00:20:20.840
are not going to work uh because it's

00:20:20.840 --> 00:20:22.520
not supported in Terraform, it's only

00:20:22.520 --> 00:20:24.400
OpenTofu available, for example." So,

00:20:24.400 --> 00:20:26.440
anyway, yeah, so that that Fable was

00:20:26.440 --> 00:20:28.720
able to land before it was taken away

00:20:28.720 --> 00:20:30.600
and then it also did a full sweep of all

00:20:30.600 --> 00:20:33.040
of the provider schemas. So, looking at

00:20:33.040 --> 00:20:35.360
at the plugin protocol, so if you're

00:20:35.360 --> 00:20:37.120
familiar with Go lang and Terraform, Go

00:20:37.120 --> 00:20:38.800
lang doesn't really support like plugins

00:20:38.800 --> 00:20:41.200
well unless you do some type of GRPC or

00:20:41.200 --> 00:20:42.400
HTTP

00:20:42.400 --> 00:20:43.120
um

00:20:43.120 --> 00:20:45.400
in like interaction between the main Go

00:20:45.400 --> 00:20:47.120
lang process and then other processes,

00:20:47.120 --> 00:20:49.120
which are the plugins. So, this protocol

00:20:49.120 --> 00:20:50.760
is is is defined.

00:20:50.760 --> 00:20:52.960
>> Okay, like like binaries type stuff,

00:20:52.960 --> 00:20:53.560
right?

00:20:53.560 --> 00:20:54.520
>> Yes.

00:20:54.520 --> 00:20:55.360
>> Okay.

00:20:55.360 --> 00:20:57.120
>> Go lang is not good with like in-process

00:20:57.120 --> 00:20:59.000
plugins system.

00:20:59.000 --> 00:21:00.600
>> that's the benefit of Go is everything's

00:21:00.600 --> 00:21:02.160
statically built, but yeah, okay, I get

00:21:02.160 --> 00:21:03.560
where you're going at. Yeah.

00:21:03.560 --> 00:21:06.720
>> Yeah, so so so the Terraform um

00:21:06.720 --> 00:21:08.880
works through protocols like the plugin

00:21:08.880 --> 00:21:12.280
protocol and Fable did the full matrix

00:21:12.280 --> 00:21:14.160
built of what are the the different

00:21:14.160 --> 00:21:15.920
versions that the port which plugin

00:21:15.920 --> 00:21:17.160
protocols

00:21:17.160 --> 00:21:18.440
between

00:21:18.440 --> 00:21:20.720
both of them. And then I just kept it

00:21:20.720 --> 00:21:22.880
very simple. Like I didn't even pointed

00:21:22.880 --> 00:21:24.600
at the proposal. There's an RFS it's

00:21:24.600 --> 00:21:26.480
like an RFC. There's a proposal in there

00:21:26.480 --> 00:21:27.840
but there's like a lot of like a static

00:21:27.840 --> 00:21:30.000
schema everything. I said look, our goal

00:21:30.000 --> 00:21:31.920
is to land this proposal and we want to

00:21:31.920 --> 00:21:34.240
land it into this into this library. And

00:21:34.240 --> 00:21:36.400
I I did want it to like not do bulk of

00:21:36.400 --> 00:21:38.200
the work and use iterative dynamic

00:21:38.200 --> 00:21:40.400
workflows with Sonar 5 agents because I

00:21:40.400 --> 00:21:41.640
thought that's going to save me cost,

00:21:41.640 --> 00:21:43.560
right? Fable is going to do the like the

00:21:43.560 --> 00:21:46.280
overall project status planning and then

00:21:46.280 --> 00:21:47.720
Sonar is going to do bulk of the bulk of

00:21:47.720 --> 00:21:47.840
the

00:21:47.840 --> 00:21:49.720
>> I got deja vu. This was the case with

00:21:49.720 --> 00:21:52.160
Opus and Sonar months back, right? But

00:21:52.160 --> 00:21:52.680
okay.

00:21:52.680 --> 00:21:53.080
>> Right.

00:21:53.080 --> 00:21:53.760
>> Here we go.

00:21:53.760 --> 00:21:54.440
>> So

00:21:54.440 --> 00:21:56.360
So this and then actually funny because

00:21:56.360 --> 00:21:58.040
I had to leave the house. So I really

00:21:58.040 --> 00:21:59.640
wanted to kick this off this morning

00:21:59.640 --> 00:22:01.320
because Fable was available. You only

00:22:01.320 --> 00:22:03.720
have 7 days. I have to go out of the

00:22:03.720 --> 00:22:05.160
house for like 2 3 hours.

00:22:05.160 --> 00:22:07.080
>> hell for you, man.

00:22:07.080 --> 00:22:08.520
>> Yeah, so

00:22:08.520 --> 00:22:10.640
there's auto mode on and goal was

00:22:10.640 --> 00:22:12.280
acknowledged and it just went off,

00:22:12.280 --> 00:22:14.080
right? It started doing commits and this

00:22:14.080 --> 00:22:16.080
is like it makes very small commits,

00:22:16.080 --> 00:22:18.560
very detailed and it even when it

00:22:18.560 --> 00:22:20.360
finishes it gives you an overview and

00:22:20.360 --> 00:22:22.680
we'll see that. So it it it generates

00:22:22.680 --> 00:22:24.960
like the the mappers, blah blah blah,

00:22:24.960 --> 00:22:26.400
whole bunch of stuff. I didn't even read

00:22:26.400 --> 00:22:28.160
it. And I think this is another pattern

00:22:28.160 --> 00:22:30.720
that I started to follow is that I'm no

00:22:30.720 --> 00:22:32.440
longer following the stream of what the

00:22:32.440 --> 00:22:35.080
model is doing. Like I I usually am not

00:22:35.080 --> 00:22:36.400
at the at the at the chair and I'm

00:22:36.400 --> 00:22:37.760
scrolling back and trying to figure out

00:22:37.760 --> 00:22:40.320
what happened is kind of annoying. So

00:22:40.320 --> 00:22:42.200
what I I I tend to do now is if I have a

00:22:42.200 --> 00:22:45.080
question if my ADHD pulled my attention

00:22:45.080 --> 00:22:47.000
away before I was able to read the whole

00:22:47.000 --> 00:22:49.200
summary that that that Fable provided, I

00:22:49.200 --> 00:22:51.400
just go by the way, was there anything

00:22:51.400 --> 00:22:53.040
unusual or was there something wrong in

00:22:53.040 --> 00:22:55.000
the proposal that that was that you

00:22:55.000 --> 00:22:56.920
needed to work around, things like that

00:22:56.920 --> 00:22:58.040
that I wanted to highlight.

00:22:58.040 --> 00:22:58.560
>> Isn't [clears throat] there isn't there

00:22:58.560 --> 00:23:00.960
like a slash recap command, too?

00:23:00.960 --> 00:23:03.440
>> There is like it always it

00:23:03.440 --> 00:23:04.920
shows up, but it's like just one line.

00:23:04.920 --> 00:23:06.560
It doesn't answer my questions

00:23:06.560 --> 00:23:08.480
>> Yeah, true. I I

00:23:08.480 --> 00:23:10.760
I'm just like you, Vincent. I It does

00:23:10.760 --> 00:23:12.440
some stuff, and I'm like, I'm switch

00:23:12.440 --> 00:23:14.040
context, and then I'm back there like,

00:23:14.040 --> 00:23:16.000
"What did it do what I wanted it to do?"

00:23:16.000 --> 00:23:17.680
>> I think this is normal. I We're at the

00:23:17.680 --> 00:23:19.760
point where we're no longer driving the

00:23:19.760 --> 00:23:22.120
shell. We're not at the seat. We're We

00:23:22.120 --> 00:23:23.760
may have five or six running at the same

00:23:23.760 --> 00:23:25.720
time, and we're just switching between

00:23:25.720 --> 00:23:27.040
them, and we need to very quickly pick

00:23:27.040 --> 00:23:28.000
up what happened.

00:23:28.000 --> 00:23:30.080
>> Yeah.

00:23:30.080 --> 00:23:32.080
>> posted there is definitely a feature

00:23:32.080 --> 00:23:33.680
that's exactly aimed at that. Like,

00:23:33.680 --> 00:23:35.200
you're coming back into this What Where

00:23:35.200 --> 00:23:37.240
are we? What did we just do? What So,

00:23:37.240 --> 00:23:38.920
it's fully landed, it's told me, but

00:23:38.920 --> 00:23:40.480
that didn't give me much. So, then it

00:23:40.480 --> 00:23:41.880
also told me like all of the things it

00:23:41.880 --> 00:23:43.160
did. Um

00:23:43.160 --> 00:23:44.360
>> What landed?

00:23:44.360 --> 00:23:46.120
>> This was the This is review. Hold on.

00:23:46.120 --> 00:23:48.280
We're not yet at the review. Here, this

00:23:48.280 --> 00:23:50.440
is This is where it goes. So, done. It's

00:23:50.440 --> 00:23:52.960
landed, and there's seven commits. And

00:23:52.960 --> 00:23:54.360
here are each one of them, and what is

00:23:54.360 --> 00:23:56.120
your focus for the review? If you review

00:23:56.120 --> 00:23:57.240
these commits, this is what you need to

00:23:57.240 --> 00:23:58.000
focus on.

00:23:58.000 --> 00:24:00.440
>> Following conventional commits, is that

00:24:00.440 --> 00:24:02.280
Is that out of the box, or did you have

00:24:02.280 --> 00:24:03.680
that in your claw.md?

00:24:03.680 --> 00:24:05.680
>> I can't I don't know because does it

00:24:05.680 --> 00:24:07.600
does it look at the git log? I deployed

00:24:07.600 --> 00:24:09.160
release please from Google, which

00:24:09.160 --> 00:24:10.680
requires conventional commits. Maybe

00:24:10.680 --> 00:24:13.680
that drove it. So, I can't say if this

00:24:13.680 --> 00:24:14.240
is a

00:24:14.240 --> 00:24:16.280
>> Should Should ask it why How do you know

00:24:16.280 --> 00:24:16.880
you're

00:24:16.880 --> 00:24:18.440
>> I'm I'm 100% sure it's actually

00:24:18.440 --> 00:24:20.200
following the convention because there's

00:24:20.200 --> 00:24:22.640
a contributing.md from the original

00:24:22.640 --> 00:24:25.360
Terraform CDK, which which clearly says

00:24:25.360 --> 00:24:27.200
you need to put the the convention with

00:24:27.200 --> 00:24:29.480
the library or the area of effect. This

00:24:29.480 --> 00:24:31.200
is how contributing guideline tells it

00:24:31.200 --> 00:24:32.920
to do. So, it it followed that, yeah.

00:24:32.920 --> 00:24:35.200
So, it did four iterative workflows, and

00:24:35.200 --> 00:24:36.880
I sent you a screenshot of how much it

00:24:36.880 --> 00:24:39.040
used of my 5-hour session, right? It

00:24:39.040 --> 00:24:41.440
used about, I would say, 60% of my

00:24:41.440 --> 00:24:43.440
5-hour session in just 1 hour. Yeah,

00:24:43.440 --> 00:24:45.640
this is the cool thing here. Shown Shown

00:24:45.640 --> 00:24:47.720
for 1 hour and 14 minutes. Now, this

00:24:47.720 --> 00:24:50.400
isn't a very big I Actually, I think

00:24:50.400 --> 00:24:52.400
it's 4,000 line diff or something, so it

00:24:52.400 --> 00:24:53.960
is not small. Uh but it's not like

00:24:53.960 --> 00:24:55.800
people that used to show Fable building

00:24:55.800 --> 00:24:58.360
like whole 3D games in one shot, right?

00:24:58.360 --> 00:24:58.840
>> Yeah.

00:24:58.840 --> 00:24:59.680
>> So, I don't think it's

00:24:59.680 --> 00:25:01.080
>> I don't quite understand your point. I

00:25:01.080 --> 00:25:03.120
mean, it's still you

00:25:03.120 --> 00:25:04.720
>> said it kept running for like a day or

00:25:04.720 --> 00:25:07.160
so or like 12 hours. For me, I was I was

00:25:07.160 --> 00:25:08.840
happy to go away for 2 hours and come

00:25:08.840 --> 00:25:11.520
back to it having run 1 hour and 14

00:25:11.520 --> 00:25:11.800
minutes.

00:25:11.800 --> 00:25:14.120
>> get that point. That for it to to to

00:25:14.120 --> 00:25:16.280
work away for an hour and get some great

00:25:16.280 --> 00:25:18.360
results is fine by me, too. Yeah.

00:25:18.360 --> 00:25:21.080
>> Yeah. And then, because I I also want to

00:25:21.080 --> 00:25:22.880
use the models I efficiently and I had

00:25:22.880 --> 00:25:25.800
to also go eat and stuff. So, I I then

00:25:25.800 --> 00:25:28.440
asked my Hermes agent while I was on the

00:25:28.440 --> 00:25:31.520
go, uh which is using GPT-5.5,

00:25:31.520 --> 00:25:34.360
to basically build a demo repository.

00:25:34.360 --> 00:25:36.000
So, this was the PR it created. It's

00:25:36.000 --> 00:25:37.800
quite massive. So, then I was like, now

00:25:37.800 --> 00:25:39.200
I have to read all of this, you know?

00:25:39.200 --> 00:25:40.680
And I was like, I don't

00:25:40.680 --> 00:25:41.760
What do you mean? I don't really want to

00:25:41.760 --> 00:25:42.240
read it.

00:25:42.240 --> 00:25:44.280
>> did you get Codex to pick up the the

00:25:44.280 --> 00:25:46.240
code session? I don't quite follow.

00:25:46.240 --> 00:25:48.280
>> So, no, no, no. This this is a draft PR

00:25:48.280 --> 00:25:51.240
open on on there. And then I just asked,

00:25:51.240 --> 00:25:52.800
um where is it?

00:25:52.800 --> 00:25:54.840
>> Well, you use spaces like a fiend. I

00:25:54.840 --> 00:25:56.720
should I should maybe use spaces,

00:25:56.720 --> 00:25:58.280
actually.

00:25:58.280 --> 00:25:59.760
Do you do you use your trackpad or do

00:25:59.760 --> 00:26:01.120
you use the keyboard to switch?

00:26:01.120 --> 00:26:04.400
>> I I use my my uh MacBook uh laptop

00:26:04.400 --> 00:26:06.120
trackpad. Well, you know, with the three

00:26:06.120 --> 00:26:08.360
fingers, like you can do so much more.

00:26:08.360 --> 00:26:10.480
Um so, yeah, I

00:26:10.480 --> 00:26:13.720
I basically asked Hermes to

00:26:13.720 --> 00:26:14.920
when I was at the keyboard still, I

00:26:14.920 --> 00:26:16.440
should go to the top of the thread.

00:26:16.440 --> 00:26:18.600
Yeah, I say, "Hey, can you review this

00:26:18.600 --> 00:26:20.160
draft PR?" How do I make this?

00:26:20.160 --> 00:26:22.080
>> Sorry, and this was the PR created by

00:26:22.080 --> 00:26:22.640
Sona.

00:26:22.640 --> 00:26:24.640
>> Uh by yeah, Fable. So, this is

00:26:24.640 --> 00:26:25.320
>> Fable.

00:26:25.320 --> 00:26:27.080
>> This is the draft PR.

00:26:27.080 --> 00:26:27.560
>> Okay, so it's

00:26:27.560 --> 00:26:28.880
>> And I have some tooling called review

00:26:28.880 --> 00:26:31.280
polar. So, the review polar is a tool

00:26:31.280 --> 00:26:32.840
that runs on a cron and always prepares

00:26:32.840 --> 00:26:34.800
a work tree for certain repositories

00:26:34.800 --> 00:26:37.160
that I'm reviewing. I set this like it

00:26:37.160 --> 00:26:39.160
did a full review. Oh, it actually also

00:26:39.160 --> 00:26:41.520
read contributing, everything. So, these

00:26:41.520 --> 00:26:43.320
ones pop up, like you like you

00:26:43.320 --> 00:26:44.560
mentioned, this is annoying. I think

00:26:44.560 --> 00:26:46.160
this one I missed. So, this one didn't

00:26:46.160 --> 00:26:49.440
execute. So, Codex is like GPT is trying

00:26:49.440 --> 00:26:50.960
to do a review, but half of the things

00:26:50.960 --> 00:26:52.840
it's trying to see are are like timing

00:26:52.840 --> 00:26:54.360
out because I'm not paying attention to

00:26:54.360 --> 00:26:56.840
my phone and I didn't approve it. So, it

00:26:56.840 --> 00:26:59.240
actually found a few like concerns. I

00:26:59.240 --> 00:27:01.440
wasn't sure if they were very relevant.

00:27:01.440 --> 00:27:03.560
But, what I really wanted this reviewer

00:27:03.560 --> 00:27:05.280
to do is

00:27:05.280 --> 00:27:08.040
is to build a demo, you know? So,

00:27:08.040 --> 00:27:10.680
basically, where is my I wanted it to

00:27:10.680 --> 00:27:13.080
build a a demo of this new feature. So,

00:27:13.080 --> 00:27:15.000
this is not yet landed in into the

00:27:15.000 --> 00:27:17.840
binary and I wanted to build examples

00:27:17.840 --> 00:27:19.960
using this feature before it landed. Of

00:27:19.960 --> 00:27:21.560
course, I do think we have full

00:27:21.560 --> 00:27:24.320
integration tests inside this as well,

00:27:24.320 --> 00:27:26.240
but I wanted something very simple that

00:27:26.240 --> 00:27:28.800
I could easily review. So, this actually

00:27:28.800 --> 00:27:31.480
showed like it's importing the the

00:27:31.480 --> 00:27:33.680
Terraform provider AWS functions and

00:27:33.680 --> 00:27:35.680
it's using the ARN parse, it's using the

00:27:35.680 --> 00:27:38.480
ARN build, it's using trim IAM role

00:27:38.480 --> 00:27:40.120
path. So, it's using all of these

00:27:40.120 --> 00:27:41.600
functions that the Terraform provider

00:27:41.600 --> 00:27:43.800
AWS now ships with it so that you can

00:27:43.800 --> 00:27:45.640
use in your Terraform configuration. So,

00:27:45.640 --> 00:27:47.080
it's actually came up with a couple of

00:27:47.080 --> 00:27:49.840
like basic examples of how to use it.

00:27:49.840 --> 00:27:51.720
And then it did the whole Terraform plan

00:27:51.720 --> 00:27:53.440
against my AWS account. That's what the

00:27:53.440 --> 00:27:55.720
Hermes agent did. So, my Hermes agent

00:27:55.720 --> 00:27:57.560
had a Of course, Claude Code on my laptop

00:27:57.560 --> 00:27:59.560
has a lot of capabilities as well, but

00:27:59.560 --> 00:28:01.320
my Hermes agent was accessible while I

00:28:01.320 --> 00:28:05.040
was outside with Discord and able to

00:28:05.040 --> 00:28:06.960
>> Yeah, that seems pretty cool. Like

00:28:06.960 --> 00:28:09.160
getting your getting your Hermes agent

00:28:09.160 --> 00:28:13.440
to to review Claude output. So, long

00:28:13.440 --> 00:28:16.560
story short, was a bit But, I mean, what

00:28:16.560 --> 00:28:19.000
I often think is lacking here is is the

00:28:19.000 --> 00:28:21.160
back and forth. Like, is there some back

00:28:21.160 --> 00:28:23.040
and forth? Is there some iterations

00:28:23.040 --> 00:28:24.360
going on?

00:28:24.360 --> 00:28:26.960
>> So, after the Hermes agent did a bunch

00:28:26.960 --> 00:28:29.960
of tests and executed, one of the things

00:28:29.960 --> 00:28:31.760
I asked it like, "Hey, tell me how this

00:28:31.760 --> 00:28:34.440
feature felt from a UX." Cuz the LLM is

00:28:34.440 --> 00:28:36.440
making assumptions on how it works and

00:28:36.440 --> 00:28:38.160
it writes an example, then it runs and

00:28:38.160 --> 00:28:41.000
it fails. And so so so so Hermes said,

00:28:41.000 --> 00:28:43.080
"I don't know. I saw that it tried to do

00:28:43.080 --> 00:28:44.800
something and it failed." And I said,

00:28:44.800 --> 00:28:46.840
"Can And write down everything that you

00:28:46.840 --> 00:28:49.160
assumed was going to work but failed.

00:28:49.160 --> 00:28:50.960
Because that's important UX as well.

00:28:50.960 --> 00:28:53.120
>> All right. That's interesting.

00:28:53.120 --> 00:28:55.240
>> It did actually say here, UX integration

00:28:55.240 --> 00:28:56.560
notes from the demo. I don't know if

00:28:56.560 --> 00:28:58.280
they're that useful, but it did say

00:28:58.280 --> 00:29:00.280
like, "Hey, I tried to import from a

00:29:00.280 --> 00:29:04.040
barrel import and Node.js

00:29:04.040 --> 00:29:05.920
went ran ran out of memory. So, this

00:29:05.920 --> 00:29:09.080
this Hermes agent had 8 GB of memory and

00:29:09.080 --> 00:29:09.720
um

00:29:09.720 --> 00:29:11.680
and it doing a barrel import didn't

00:29:11.680 --> 00:29:13.480
work. So, I think that's an like very

00:29:13.480 --> 00:29:15.080
relevant UX

00:29:15.080 --> 00:29:16.760
feedback. And another one was like, I

00:29:16.760 --> 00:29:19.040
tried to do things while the rest is,

00:29:19.040 --> 00:29:20.640
you know, fallout. Another thing is

00:29:20.640 --> 00:29:23.760
like, ephemeral as null had to be used

00:29:23.760 --> 00:29:25.480
with sensitive true. So, this is like

00:29:25.480 --> 00:29:27.400
very Terraform specific. Didn't really

00:29:27.400 --> 00:29:29.360
care too much about that. But, one of

00:29:29.360 --> 00:29:30.760
the things that that that made me

00:29:30.760 --> 00:29:33.360
annoyed was like, I removed an example

00:29:33.360 --> 00:29:36.360
of user agent. I was like, why? Why do

00:29:36.360 --> 00:29:38.040
you need to remove an example? What what

00:29:38.040 --> 00:29:40.520
went wrong? Why why didn't it work? And

00:29:40.520 --> 00:29:42.200
so, I I spent like a lot of time trying

00:29:42.200 --> 00:29:44.080
to figure out what is this user agent

00:29:44.080 --> 00:29:47.040
function for? And even asked at ChatGPT,

00:29:47.040 --> 00:29:49.000
what are the common use cases and how do

00:29:49.000 --> 00:29:50.720
you use this? So, I went a bit down a

00:29:50.720 --> 00:29:53.160
rabbit hole of this one particular thing

00:29:53.160 --> 00:29:54.560
that the Terraform provider AWS

00:29:54.560 --> 00:29:55.960
provides. But, it was interesting

00:29:55.960 --> 00:29:58.240
because it showed, for example, that you

00:29:58.240 --> 00:30:00.080
can use this feature in your in your

00:30:00.080 --> 00:30:02.800
module so that CloudTrail shows which

00:30:02.800 --> 00:30:04.720
Terraform module is creating these

00:30:04.720 --> 00:30:07.320
resources. So, you can attribute things.

00:30:07.320 --> 00:30:10.040
So, where is the actual usage of it?

00:30:10.040 --> 00:30:15.000
Here. So, in in the database version.tf

00:30:15.000 --> 00:30:15.920
>> small screen here.

00:30:15.920 --> 00:30:17.640
>> Trying to zoom in. So, here is the

00:30:17.640 --> 00:30:22.240
Terraform provider AWS module and they

00:30:22.240 --> 00:30:25.400
insert metadata to highlight that that

00:30:25.400 --> 00:30:28.440
it's the AWS modules creating this. And

00:30:28.440 --> 00:30:31.080
and if you go back to the reason that

00:30:31.080 --> 00:30:34.040
feature is there is because CloudTrail

00:30:34.040 --> 00:30:36.840
shows you generic Terraform execution,

00:30:36.840 --> 00:30:40.880
but this augments your logs showing you

00:30:40.880 --> 00:30:44.200
which module is creating those things.

00:30:44.200 --> 00:30:44.720
>> That's cool.

00:30:44.720 --> 00:30:46.040
>> Yeah, it's it's really cool and it's

00:30:46.040 --> 00:30:47.840
very useful also if you build

00:30:47.840 --> 00:30:49.440
complex constructs, right? If you have

00:30:49.440 --> 00:30:50.440
like

00:30:50.440 --> 00:30:51.440
L2 constructs.

00:30:51.440 --> 00:30:52.960
>> I'm now I'm now curious what the log

00:30:52.960 --> 00:30:55.640
looks like. Does it also put a version

00:30:55.640 --> 00:30:57.000
number in, I wonder?

00:30:57.000 --> 00:30:59.400
>> Yeah, I need to find back to the

00:30:59.400 --> 00:31:01.000
>> Cuz version numbers are so key in my

00:31:01.000 --> 00:31:03.400
opinion. Like every software needs to

00:31:03.400 --> 00:31:05.560
show me the version number. And and

00:31:05.560 --> 00:31:07.320
>> By default, yeah. The annoying thing

00:31:07.320 --> 00:31:10.000
about on about Jet GPT is when I ask it

00:31:10.000 --> 00:31:11.920
to give examples, it goes from all of

00:31:11.920 --> 00:31:13.240
the memories it knows about me. Like

00:31:13.240 --> 00:31:15.680
this is a tool I bit built. And it goes

00:31:15.680 --> 00:31:17.560
like, "Oh, this is how you could use it.

00:31:17.560 --> 00:31:19.600
You could

00:31:19.600 --> 00:31:21.800
>> You could use your your binary show the

00:31:21.800 --> 00:31:23.240
the binary and the version.

00:31:23.240 --> 00:31:25.080
>> memory for these very reasons. Like it

00:31:25.080 --> 00:31:27.280
just picks up something random. Like,

00:31:27.280 --> 00:31:29.240
"Oh, I know you have two kids and this

00:31:29.240 --> 00:31:31.240
is why I've done it." Like, "No, I mean,

00:31:31.240 --> 00:31:32.000
you shouldn't

00:31:32.000 --> 00:31:34.360
>> This is the Yeah, this was the one why

00:31:34.360 --> 00:31:36.160
they added They added I think the main

00:31:36.160 --> 00:31:38.560
function is like provider meta support

00:31:38.560 --> 00:31:40.280
and and it shows here like can show

00:31:40.280 --> 00:31:43.360
example module version, example comment.

00:31:43.360 --> 00:31:45.360
>> Okay, so you went down some rabbit hole

00:31:45.360 --> 00:31:47.960
because of your adversarial review. So,

00:31:47.960 --> 00:31:49.720
okay, so you you went down that rabbit

00:31:49.720 --> 00:31:51.480
hole. That then what? I'm still curious

00:31:51.480 --> 00:31:53.960
if your I mean, your your PR review

00:31:53.960 --> 00:31:56.880
thing with with Codex or looks really

00:31:56.880 --> 00:31:59.240
cool, but is it going back and forth?

00:31:59.240 --> 00:32:01.560
This is the key that I feel is missing,

00:32:01.560 --> 00:32:03.640
but I guess being able to review on the

00:32:03.640 --> 00:32:07.000
go from Discord is is pretty cool.

00:32:07.000 --> 00:32:08.280
>> Yeah.

00:32:08.280 --> 00:32:10.560
Um so, it was able to like build all of

00:32:10.560 --> 00:32:12.680
this and then I told it, "But it doesn't

00:32:12.680 --> 00:32:14.760
comment until I tell it to." So, then I

00:32:14.760 --> 00:32:16.160
had I had I was on my phone, so I have

00:32:16.160 --> 00:32:18.080
to like copy these messages and you

00:32:18.080 --> 00:32:19.800
can't select things in Discord, which is

00:32:19.800 --> 00:32:21.320
very annoying. So, I have to like right

00:32:21.320 --> 00:32:23.120
click, copy text.

00:32:23.120 --> 00:32:23.960
>> Oh my god.

00:32:23.960 --> 00:32:26.040
That kills me. I hate Discord. I hate

00:32:26.040 --> 00:32:27.640
it. Okay, but

00:32:27.640 --> 00:32:28.720
>> Yeah, so anyway,

00:32:28.720 --> 00:32:29.560
>> I'm I'm going to

00:32:29.560 --> 00:32:32.080
>> back and forth that happened is that I

00:32:32.080 --> 00:32:33.520
asked Hermes to

00:32:33.520 --> 00:32:35.160
comment this and then I went back to

00:32:35.160 --> 00:32:37.800
Fable and I said, "Do you think some of

00:32:37.800 --> 00:32:39.880
this should be in this PR? Is it out of

00:32:39.880 --> 00:32:41.600
scope? Should we create follow-up

00:32:41.600 --> 00:32:42.280
tickets?"

00:32:42.280 --> 00:32:44.080
>> So, you just basically copied and pasted

00:32:44.080 --> 00:32:45.600
some feedback in there, right?

00:32:45.600 --> 00:32:48.440
>> No, I told Hermes that these particular

00:32:48.440 --> 00:32:50.240
things it found, I found that those were

00:32:50.240 --> 00:32:52.640
relevant and asked it to to make the

00:32:52.640 --> 00:32:54.200
comment. So, it actually didn't even

00:32:54.200 --> 00:32:55.680
make the comment because I think I I

00:32:55.680 --> 00:32:57.920
made it very like don't post anything

00:32:57.920 --> 00:32:59.840
because if it posts something stupid

00:32:59.840 --> 00:33:01.680
>> and then Fable is able to suck that

00:33:01.680 --> 00:33:02.200
down.

00:33:02.200 --> 00:33:04.080
>> So, the thing is with Hermes, I don't

00:33:04.080 --> 00:33:07.080
want it to post comments at willy-nilly.

00:33:07.080 --> 00:33:07.480
>> Yeah.

00:33:07.480 --> 00:33:09.000
>> Because sometimes I'm like conversing

00:33:09.000 --> 00:33:11.200
with it and it and it says I

00:33:11.200 --> 00:33:12.680
misunderstands me and it goes and posts

00:33:12.680 --> 00:33:14.760
a comment. As discussed, blah blah blah.

00:33:14.760 --> 00:33:16.400
And it makes no sense because nobody has

00:33:16.400 --> 00:33:19.000
that comment thread. So, I'm like very I

00:33:19.000 --> 00:33:20.520
told it several times don't comment

00:33:20.520 --> 00:33:22.680
until I tell you. And so, it actually

00:33:22.680 --> 00:33:24.640
even created like a a draft review

00:33:24.640 --> 00:33:27.360
comment and and and tells me exactly

00:33:27.360 --> 00:33:29.200
what it's going to post and then I said,

00:33:29.200 --> 00:33:31.480
"Okay, go ahead. Like looks good."

00:33:31.480 --> 00:33:34.760
>> That that that sounds like a good thing.

00:33:34.760 --> 00:33:36.480
>> Yeah, it's it's because you will lose

00:33:36.480 --> 00:33:39.200
trust. Like people filter out.

00:33:39.200 --> 00:33:39.480
>> Yeah.

00:33:39.480 --> 00:33:40.320
>> If it's

00:33:40.320 --> 00:33:41.000
>> I

00:33:41.000 --> 00:33:43.160
I already on my on my work thing there's

00:33:43.160 --> 00:33:44.720
there's some agent that's running

00:33:44.720 --> 00:33:46.680
reviewing things and it creates so much

00:33:46.680 --> 00:33:49.200
noise. I'm like and the trouble is is

00:33:49.200 --> 00:33:52.160
that like I reply to the bloody comment

00:33:52.160 --> 00:33:54.600
and the agent doesn't pick it up. So,

00:33:54.600 --> 00:33:55.120
anyway.

00:33:55.120 --> 00:33:55.720
>> Yeah.

00:33:55.720 --> 00:33:58.120
So, the back and forth is is really

00:33:58.120 --> 00:34:00.760
plain. You can ask either on Claude Code

00:34:00.760 --> 00:34:03.200
in the web or in here, you can ask it to

00:34:03.200 --> 00:34:05.640
monitor the PR and look for comments and

00:34:05.640 --> 00:34:06.400
wake up.

00:34:06.400 --> 00:34:06.920
>> Interesting.

00:34:06.920 --> 00:34:08.320
>> In this case, yeah, you can say

00:34:08.320 --> 00:34:10.240
>> How did you get it to propose it?

00:34:10.240 --> 00:34:11.679
>> It even proposes it. So, if you use

00:34:11.679 --> 00:34:13.360
Claude Code in the web, it will say,

00:34:13.360 --> 00:34:14.679
"I've created a PR. Do you want me to

00:34:14.679 --> 00:34:16.360
watch it?" And then you can say, "Yes,

00:34:16.360 --> 00:34:17.159
go watch it."

00:34:17.159 --> 00:34:19.040
>> Holy I mean,

00:34:19.040 --> 00:34:20.800
that's amazing.

00:34:20.800 --> 00:34:21.919
Though,

00:34:21.919 --> 00:34:24.639
can I debate with you here because you

00:34:24.639 --> 00:34:26.520
you have shown me a cool workflow for

00:34:26.520 --> 00:34:28.560
dealing with a 4,000 whatever line

00:34:28.560 --> 00:34:29.200
change.

00:34:29.200 --> 00:34:30.800
>> Well, I still need to read it. Like I

00:34:30.800 --> 00:34:33.399
can't dump this on other people.

00:34:33.399 --> 00:34:34.600
>> I still

00:34:34.600 --> 00:34:37.080
I would I wouldn't do that. I I I'm

00:34:37.080 --> 00:34:40.520
still in camp tiny change, tiny change.

00:34:40.520 --> 00:34:43.240
>> I I 100% expect somebody to come back

00:34:43.240 --> 00:34:44.960
and say, "Can you break this up?" And

00:34:44.960 --> 00:34:46.840
I'm this close of asking Fable to do the

00:34:46.840 --> 00:34:48.480
same, to say, "Hey, can we break this up

00:34:48.480 --> 00:34:49.879
into smaller PRs?"

00:34:49.879 --> 00:34:51.679
>> sensor because the brilliant thing is

00:34:51.679 --> 00:34:54.639
like I was vibing yesterday on that on

00:34:54.639 --> 00:34:57.320
that tennis membership thing. And it

00:34:57.320 --> 00:35:00.600
made 1,000 2,000 whatever li- lines of

00:35:00.600 --> 00:35:02.840
thing. And then right And then when I

00:35:02.840 --> 00:35:04.600
told it to commit, only then when it

00:35:04.600 --> 00:35:06.880
committed, then it was like working out

00:35:06.880 --> 00:35:09.720
how to sequence it. And then it built a

00:35:09.720 --> 00:35:12.120
really good good history. All because

00:35:12.120 --> 00:35:14.040
all because of my pre-commit hook

00:35:14.040 --> 00:35:16.040
limiting it to like 100 lines of change

00:35:16.040 --> 00:35:18.240
all the time. It was It was fantastic.

00:35:18.240 --> 00:35:19.920
>> Yeah, but the thing is you get a lot of

00:35:19.920 --> 00:35:22.080
overhead in that, right? I mean, it

00:35:22.080 --> 00:35:24.320
again, it's all depends if how many

00:35:24.320 --> 00:35:26.880
people you're working with.

00:35:26.880 --> 00:35:28.600
If I'm working alone on something and I

00:35:28.600 --> 00:35:30.640
don't have to get a PR review, I will

00:35:30.640 --> 00:35:33.040
100% do just get it through. Definitely

00:35:33.040 --> 00:35:35.200
if I'm vibe coding. But but like to be

00:35:35.200 --> 00:35:36.680
honest, in this project where there's a

00:35:36.680 --> 00:35:38.040
lot of other people and they have a lot

00:35:38.040 --> 00:35:40.320
of opinions of how it should be, that's

00:35:40.320 --> 00:35:41.840
where it that's where I'm forced to

00:35:41.840 --> 00:35:42.880
break it things down.

00:35:42.880 --> 00:35:45.520
>> I'm This is like the software

00:35:45.520 --> 00:35:48.600
development life cycle is about if I

00:35:48.600 --> 00:35:50.920
mean, this is the agile approach and PRs

00:35:50.920 --> 00:35:53.240
are always in the bloody way of this.

00:35:53.240 --> 00:35:55.360
Like, I hate Like, I'm I'm working with

00:35:55.360 --> 00:35:57.280
with with a guy on a project right now

00:35:57.280 --> 00:36:00.400
and it's just typical PR ping pong where

00:36:00.400 --> 00:36:02.720
like, "Oh, I made a change." And then

00:36:02.720 --> 00:36:05.360
And then like, you know, a day goes by,

00:36:05.360 --> 00:36:07.240
I review it and I say, "No, it's wrong."

00:36:07.240 --> 00:36:09.320
Then a day goes by and he fixes it. I

00:36:09.320 --> 00:36:12.680
mean, it it doesn't work. I feel it's

00:36:12.680 --> 00:36:14.480
really ineffective to do this in a in a

00:36:14.480 --> 00:36:16.520
in a business. I I know it makes sense

00:36:16.520 --> 00:36:18.520
in open source because it's a low trust

00:36:18.520 --> 00:36:21.080
environment, but but in business it's

00:36:21.080 --> 00:36:22.240
just it's pissing me off.

00:36:22.240 --> 00:36:23.400
>> a whole lot of discussion because

00:36:23.400 --> 00:36:24.640
there's quite a few discussions on

00:36:24.640 --> 00:36:27.440
LinkedIn people say like PRs are broken

00:36:27.440 --> 00:36:29.320
and it took agents for us to realize it,

00:36:29.320 --> 00:36:31.640
how broken they are. But, um but I just

00:36:31.640 --> 00:36:32.760
wanted to highlight here, and then I'll

00:36:32.760 --> 00:36:33.920
stop sharing my screen.

00:36:33.920 --> 00:36:36.160
>> how did agents help us realize that PRs

00:36:36.160 --> 00:36:38.120
are broken? Because you To me, you

00:36:38.120 --> 00:36:40.480
showed me agents loving the whole PR

00:36:40.480 --> 00:36:41.840
process because it gives you an

00:36:41.840 --> 00:36:45.640
opportunity to work your Hermes PR

00:36:45.640 --> 00:36:48.360
review agent, you know.

00:36:48.360 --> 00:36:50.520
It doesn't really show It doesn't show

00:36:50.520 --> 00:36:53.160
show off PRs being broken to me.

00:36:53.160 --> 00:36:54.800
>> I think I think the whole industry is

00:36:54.800 --> 00:36:56.080
questioning Git as a versioning

00:36:56.080 --> 00:36:57.840
mechanism. There's at least three, you

00:36:57.840 --> 00:36:59.520
know, well-funded startups that are

00:36:59.520 --> 00:37:01.600
reinventing Git or reinventing version

00:37:01.600 --> 00:37:02.600
control,

00:37:02.600 --> 00:37:04.040
um that are more that is more agent

00:37:04.040 --> 00:37:04.520
native.

00:37:04.520 --> 00:37:05.280
>> You mean pull requests?

00:37:05.280 --> 00:37:06.760
>> top of that, there was also LinkedIn

00:37:06.760 --> 00:37:09.520
post about trunk-based development and

00:37:09.520 --> 00:37:11.680
the way that PRs like work. I need to

00:37:11.680 --> 00:37:13.080
find it. Let me try and find it. That

00:37:13.080 --> 00:37:16.080
explains the problem. I think it was

00:37:16.080 --> 00:37:17.760
mainly on the review bottleneck that

00:37:17.760 --> 00:37:19.320
they were trying to highlight. And And

00:37:19.320 --> 00:37:20.680
it was also focused on trunk-based,

00:37:20.680 --> 00:37:22.240
yeah. Let me try and find that.

00:37:22.240 --> 00:37:23.840
>> Maybe let's take a little break cuz I

00:37:23.840 --> 00:37:24.560
need a pee.

00:37:24.560 --> 00:37:26.400
>> Actually, yeah. Maybe this is something

00:37:26.400 --> 00:37:28.920
I want to share is while I found the

00:37:28.920 --> 00:37:32.000
Hermes agent really good at finding

00:37:32.000 --> 00:37:33.840
things that I read on LinkedIn. For

00:37:33.840 --> 00:37:36.920
example, I asked ChatGPT about a post I

00:37:36.920 --> 00:37:39.120
read a day ago, and it couldn't find it.

00:37:39.120 --> 00:37:40.400
Like, it came up with generic Google

00:37:40.400 --> 00:37:41.560
results.

00:37:41.560 --> 00:37:43.440
And then I went back to

00:37:43.440 --> 00:37:47.440
Hermes on on Discord, and the agent has

00:37:47.440 --> 00:37:50.560
capabilities to scrape the web on demand

00:37:50.560 --> 00:37:52.840
more than than ChatGPT. So, I don't

00:37:52.840 --> 00:37:55.280
know. So, this was So, this was Yeah, so

00:37:55.280 --> 00:37:57.000
you're back. Okay, so I want What I was

00:37:57.000 --> 00:37:58.520
saying while you were gone is that to

00:37:58.520 --> 00:38:00.480
find back something I read on LinkedIn,

00:38:00.480 --> 00:38:03.160
I found ChatGPT very bad, very poor. I

00:38:03.160 --> 00:38:05.040
tried to find like, "Hey, I read this

00:38:05.040 --> 00:38:07.240
thing. It was about something." And

00:38:07.240 --> 00:38:09.160
ChatGPT can't find it, or it comes up

00:38:09.160 --> 00:38:10.600
with generic Google results or web

00:38:10.600 --> 00:38:13.080
search results. And this is an example

00:38:13.080 --> 00:38:15.360
where I just read the LinkedIn post of a

00:38:15.360 --> 00:38:17.920
end-to-hand hug end-to-hand hugging face

00:38:17.920 --> 00:38:20.360
model provisioning. So, it was a post

00:38:20.360 --> 00:38:22.440
that talked about you can pick any model

00:38:22.440 --> 00:38:24.760
card from hugging face and it will look

00:38:24.760 --> 00:38:26.600
at the GPU requirements. It will then go

00:38:26.600 --> 00:38:29.120
and find the properly sized GPU to rent

00:38:29.120 --> 00:38:30.600
it from like an

00:38:30.600 --> 00:38:32.560
like an a GPU

00:38:32.560 --> 00:38:34.480
inference provider and it would deploy

00:38:34.480 --> 00:38:36.560
the model on top of it and it would land

00:38:36.560 --> 00:38:39.040
you with Claude Code router configuration

00:38:39.040 --> 00:38:40.440
so that you could immediately launch

00:38:40.440 --> 00:38:42.000
your Claude Code using that model on

00:38:42.000 --> 00:38:44.680
rented GPU so that you can basically try

00:38:44.680 --> 00:38:46.920
an open weights model and before you buy

00:38:46.920 --> 00:38:49.280
all the GPU and hardware for it, you can

00:38:49.280 --> 00:38:51.720
experience what is it tokens per second

00:38:51.720 --> 00:38:53.040
is it is it like

00:38:53.040 --> 00:38:56.520
>> With Claude Code not using pie or open

00:38:56.520 --> 00:38:56.640
AI.

00:38:56.640 --> 00:38:58.800
>> Yeah, so so so the post was very cool,

00:38:58.800 --> 00:39:00.880
right? I just wanted to find it back and

00:39:00.880 --> 00:39:02.680
when I asked her GPT it did an absolute

00:39:02.680 --> 00:39:04.960
horrible job about how to take hugging

00:39:04.960 --> 00:39:07.640
face models run GPU and deploy them and

00:39:07.640 --> 00:39:10.080
here I ran out the gateway actually was

00:39:10.080 --> 00:39:11.920
was crashing and then Sony told me how

00:39:11.920 --> 00:39:13.800
to fix it. But then I came back and said

00:39:13.800 --> 00:39:14.200
hey

00:39:14.200 --> 00:39:15.880
>> You're using fire crawl, aren't you?

00:39:15.880 --> 00:39:16.920
>> Yeah,

00:39:16.920 --> 00:39:18.200
and and and the funny thing is it

00:39:18.200 --> 00:39:20.440
actually found him like it found GA

00:39:20.440 --> 00:39:23.480
Ahama who posted this this this thing

00:39:23.480 --> 00:39:25.640
and then when I asked it to use web

00:39:25.640 --> 00:39:27.520
search to to scrape and you whatever

00:39:27.520 --> 00:39:29.720
scraping skills you have to find it and

00:39:29.720 --> 00:39:31.480
then it very quickly found the exact

00:39:31.480 --> 00:39:34.040
post which was then posted a day ago and

00:39:34.040 --> 00:39:36.640
found the actual AI on demand GitHub

00:39:36.640 --> 00:39:38.960
repository and then we went ahead and we

00:39:38.960 --> 00:39:41.000
built we wrote a little blog post about

00:39:41.000 --> 00:39:41.320
it.

00:39:41.320 --> 00:39:43.600
>> fire crawl use your LinkedIn credentials

00:39:43.600 --> 00:39:44.560
to do the scraping?

00:39:44.560 --> 00:39:45.760
>> I think I

00:39:45.760 --> 00:39:48.000
not fire crawl but you can install

00:39:48.000 --> 00:39:50.600
custom tools. I I tried for a week to

00:39:50.600 --> 00:39:53.600
use XAI with an API key and I put $10 in

00:39:53.600 --> 00:39:56.280
it and it was it was it was empty within

00:39:56.280 --> 00:39:58.280
like two or four like within five days.

00:39:58.280 --> 00:40:00.720
So XAI is extremely expensive

00:40:00.720 --> 00:40:04.160
to use AI like API tools to to to scrape

00:40:04.160 --> 00:40:06.120
things. So don't use that.

00:40:06.120 --> 00:40:08.560
>> I bust through like a $10 budget within

00:40:08.560 --> 00:40:11.200
a a week and I was like I can't afford

00:40:11.200 --> 00:40:13.920
this even though XAI web search seems

00:40:13.920 --> 00:40:14.520
awesome.

00:40:14.520 --> 00:40:17.160
>> So so I wanted to I wanted to highlight

00:40:17.160 --> 00:40:18.960
actually if I want to find that LinkedIn

00:40:18.960 --> 00:40:20.760
post that we just discussed, it's better

00:40:20.760 --> 00:40:23.160
for me to ask the Hermes agent, sorry. I

00:40:23.160 --> 00:40:24.760
think Firecrawl with the web search is

00:40:24.760 --> 00:40:26.520
better than ChatGPT.

00:40:26.520 --> 00:40:28.040
>> It's like a a personal chat.

00:40:28.040 --> 00:40:30.160
>> Yeah, but but still I can't have a thing

00:40:30.160 --> 00:40:32.080
you need that most sites are getting

00:40:32.080 --> 00:40:34.680
good at at blocking it. Robot, so you

00:40:34.680 --> 00:40:36.800
have to use your logged-in creden- you

00:40:36.800 --> 00:40:38.680
have to use your your you have to like

00:40:38.680 --> 00:40:42.080
offer Chrome remote debugging port to

00:40:42.080 --> 00:40:44.320
your Firecrawl instance just to get

00:40:44.320 --> 00:40:45.040
anywhere.

00:40:45.040 --> 00:40:47.280
>> Yeah, maybe. I I think one thing I I I

00:40:47.280 --> 00:40:49.040
want to do is I know that somebody built

00:40:49.040 --> 00:40:51.800
a LinkedIn CLI tool for AI agents, so I

00:40:51.800 --> 00:40:53.800
could try to use that, I think.

00:40:53.800 --> 00:40:56.040
From Ion Murdock, he posted it. And

00:40:56.040 --> 00:40:57.320
there's also

00:40:57.320 --> 00:40:59.080
>> That sounds like familiar. It's a guy

00:40:59.080 --> 00:41:00.440
from Singapore, right?

00:41:00.440 --> 00:41:01.040
>> Yeah, yeah.

00:41:01.040 --> 00:41:03.240
>> That's our friend. He used to attend the

00:41:03.240 --> 00:41:04.120
meetings.

00:41:04.120 --> 00:41:06.040
I just had the same experience that you

00:41:06.040 --> 00:41:08.640
did about uh you know, Claude asking me

00:41:08.640 --> 00:41:10.640
a whole bunch of questions, and then it

00:41:10.640 --> 00:41:13.280
sort of no response. This is really

00:41:13.280 --> 00:41:14.480
interesting development.

00:41:14.480 --> 00:41:17.000
>> Yeah, but also I also had a few times, I

00:41:17.000 --> 00:41:19.040
think mostly in Claude Code web uh or

00:41:19.040 --> 00:41:21.480
Claude web, where I say use the ask user

00:41:21.480 --> 00:41:23.920
tool. No, even in in Claude Code on on

00:41:23.920 --> 00:41:25.880
the on the on the CLI, I had a quite a

00:41:25.880 --> 00:41:28.480
few times where it gives me a proposal,

00:41:28.480 --> 00:41:30.680
and I I I can add notes into it, and I

00:41:30.680 --> 00:41:32.680
add some notes, and then it come and I

00:41:32.680 --> 00:41:34.480
press enter and it goes like, "No

00:41:34.480 --> 00:41:36.880
response. Okay, I'll just assume." And

00:41:36.880 --> 00:41:40.080
I'm like, "I did respond." Like, "What"

00:41:40.080 --> 00:41:42.240
And then I I escape like, "I told you."

00:41:42.240 --> 00:41:43.520
Maybe I should double escape and go

00:41:43.520 --> 00:41:44.000
back.

00:41:44.000 --> 00:41:45.880
>> Do you have Claude on your on your

00:41:45.880 --> 00:41:47.560
mobile phone? Because I can't help but

00:41:47.560 --> 00:41:49.160
think it would be cool if it just

00:41:49.160 --> 00:41:50.880
notified you while you're having your

00:41:50.880 --> 00:41:53.040
lunch like, "Okay, these three things,

00:41:53.040 --> 00:41:54.120
yeah.

00:41:54.120 --> 00:41:55.640
Yeah, the second one."

00:41:55.640 --> 00:41:58.520
>> So, what what what I did see happen is

00:41:58.520 --> 00:42:00.240
if you have the Claude app on your on

00:42:00.240 --> 00:42:02.320
your laptop, and you're doing something

00:42:02.320 --> 00:42:04.000
in Claude Code on the web or even on my

00:42:04.000 --> 00:42:06.160
phone, and then that that Claude Code

00:42:06.160 --> 00:42:07.800
instance finishes, you get a

00:42:07.800 --> 00:42:09.600
notification on your laptop saying like

00:42:09.600 --> 00:42:11.480
that Claude Code instance finished, you

00:42:11.480 --> 00:42:13.400
can go it's like it's waiting for your

00:42:13.400 --> 00:42:16.000
response. So, it does from the app go

00:42:16.000 --> 00:42:18.160
back from your like from the web. I'm

00:42:18.160 --> 00:42:20.280
maybe on the phone as well, but maybe I

00:42:20.280 --> 00:42:21.800
don't have notifications. But, there

00:42:21.800 --> 00:42:23.760
were quite a few interesting posts about

00:42:23.760 --> 00:42:25.960
the Claude Code web app and also Cloud

00:42:25.960 --> 00:42:27.800
Code sorry

00:42:27.800 --> 00:42:31.720
about the Cloud

00:42:31.720 --> 00:42:33.280
>> I'm I'm starting to think I need my own

00:42:33.280 --> 00:42:35.720
Max plan. I got I got serious FOMO

00:42:35.720 --> 00:42:37.760
because I can't get Fable because of my

00:42:37.760 --> 00:42:39.440
enterprise stuff.

00:42:39.440 --> 00:42:41.640
>> But, then you have to like find a way to

00:42:41.640 --> 00:42:43.160
like toggle accounts. Like you said you

00:42:43.160 --> 00:42:44.760
were you were telling me that you were

00:42:44.760 --> 00:42:47.120
doing all of that with Docker sandboxes

00:42:47.120 --> 00:42:49.360
to set up like individual sessions with

00:42:49.360 --> 00:42:50.680
different authentications.

00:42:50.680 --> 00:42:53.080
>> Yep. I I I I think I'm I'll have to do

00:42:53.080 --> 00:42:55.040
it I'll have to do it I'll have to do

00:42:55.040 --> 00:42:57.760
it. I got my FOMO's too real. I need

00:42:57.760 --> 00:42:59.400
Fable.

00:42:59.400 --> 00:43:00.880
Okay, I think it's lunchtime here. I

00:43:00.880 --> 00:43:03.160
think we have enough content for for a

00:43:03.160 --> 00:43:05.560
for a podcast. It was a bit haphazard

00:43:05.560 --> 00:43:07.960
cuz I was getting interrupted, but if

00:43:07.960 --> 00:43:10.040
you Yeah, we should maybe plan out what

00:43:10.040 --> 00:43:11.320
we're going to talk about a bit better,

00:43:11.320 --> 00:43:13.280
okay? Cuz I did want to talk about the

00:43:13.280 --> 00:43:16.080
charity majors thing, too. The the

00:43:16.080 --> 00:43:17.680
>> What? The tennis? For the charity No, I

00:43:17.680 --> 00:43:19.000
definitely wanted to talk about that,

00:43:19.000 --> 00:43:20.760
but have you read it? Have you all read

00:43:20.760 --> 00:43:21.000
it?

00:43:21.000 --> 00:43:22.520
>> I I just read the headline.

00:43:22.520 --> 00:43:24.240
>> Okay, so I don't think we can talk about

00:43:24.240 --> 00:43:24.760
it much.

00:43:24.760 --> 00:43:25.080
>> Okay.

00:43:25.080 --> 00:43:26.880
>> I send you the link and I'm like I want

00:43:26.880 --> 00:43:28.080
to read it, but

00:43:28.080 --> 00:43:30.000
>> Okay, we should have we should we should

00:43:30.000 --> 00:43:32.160
have an agenda where we have have things

00:43:32.160 --> 00:43:33.960
and then have we read it and then only

00:43:33.960 --> 00:43:36.840
when when we both have click tick, we

00:43:36.840 --> 00:43:39.440
can get back to it. Okay, I'm going to

00:43:39.440 --> 00:43:41.240
sign off now. Hopefully, Riverside too

00:43:41.240 --> 00:43:43.840
can make sense of this recording and if

00:43:43.840 --> 00:43:46.360
you like the podcast, like it. In fact,

00:43:46.360 --> 00:43:48.800
if you didn't like it, like it. Comment

00:43:48.800 --> 00:43:50.200
why you didn't like it. Yeah, that's a

00:43:50.200 --> 00:43:51.400
good idea. Geez.

00:43:51.400 --> 00:43:53.400
>> You're a genius. Okay, see you. I'm

00:43:53.400 --> 00:43:54.720
going to take some lunch. Bye.

00:43:54.720 --> 00:43:57.200
>> Okay, bye.

