1
00:00:00,340 --> 00:00:02,360
-Hello, folks!
-I'm Michael Dyrynda.

2
00:00:02,360 --> 00:00:03,730
And I'm Jake Bennett.

3
00:00:04,580 --> 00:00:10,340
And this is episode 185 of the North Meet
South web podcast.

4
00:00:10,340 --> 00:00:11,340
-Chaka-chaka!
-Chaka.

5
00:00:12,520 --> 00:00:14,219
Hey, everybody, it's been a long time.

6
00:00:14,220 --> 00:00:18,660
Glad to hear from you again, Michael. Glad
to see you. Um, okay, we're gonna talk

7
00:00:18,660 --> 00:00:19,1000
-about AI on this episode-
-Mm-hmm.

8
00:00:20,000 --> 00:00:23,640
But before we do, can I tell you one thing
that AI is not good at?

9
00:00:23,640 --> 00:00:26,760
-Tell me.
-It is not good at helping you debug

10
00:00:26,760 --> 00:00:29,920
three-way switches in your house. Do you
know what a three... Do you know what a

11
00:00:29,920 --> 00:00:33,660
-three-way switch is?
-Like a three, like where... Yeah. Yes.

12
00:00:33,660 --> 00:00:34,020
Yes.

13
00:00:34,880 --> 00:00:35,730
Do, do you know what this is, or you have-

14
00:00:35,730 --> 00:00:38,330
Where you've got, like, multiple switches
that all control the same light, whatever.

15
00:00:38,330 --> 00:00:40,160
That control the same thing. Yes.

16
00:00:40,160 --> 00:00:43,019
-Yeah.
-Yes. Now, I do not consider myself an

17
00:00:43,020 --> 00:00:46,200
expert in this, but I'm also no slouch.
Like, I've done this a number of times

18
00:00:46,200 --> 00:00:47,200
-before, right?
-Mm-hmm.

19
00:00:47,200 --> 00:00:51,340
Got all the tools, got all the stuff. I've
done this. But the thing that I do not

20
00:00:51,340 --> 00:00:54,360
have, and I'm not even, like, doing this
for the first time, like, I, I, I put in

21
00:00:54,360 --> 00:00:58,840
the switches that previously controlled
this, so I know which things went where.

22
00:00:58,840 --> 00:01:05,660
I, I know. However, the stupid switches
that I got don't have the common

23
00:01:05,660 --> 00:01:12,660
screw labeled, so it's, like, kind of a
guess as to what one it is, and so it's

24
00:01:12,660 --> 00:01:17,400
been extremely frustrating. I've spent
probably 40 minutes on it so far tonight,

25
00:01:17,400 --> 00:01:20,680
running back and forth from the switch
panel to this, so I'm just-

26
00:01:21,480 --> 00:01:23,830
-No good.
-Ah. But let me tell you-

27
00:01:23,830 --> 00:01:26,220
Electrical... So this is where, this is
where you and I differ. See, electrical

28
00:01:26,220 --> 00:01:27,800
-work, I-
-You, you've got a sparkie over here.

29
00:01:27,800 --> 00:01:30,280
I get a sparkie. Yeah, yeah. I had one in
here the other day.

30
00:01:30,280 --> 00:01:32,420
-Yeah.
-We're, we're, we're redoing... We're, I, I

31
00:01:32,420 --> 00:01:36,350
wanna say redoing our laundry. We are
doing our laundry, 'cause we've never had-

32
00:01:36,350 --> 00:01:36,610
Mm-hmm, mm-hmm

33
00:01:36,610 --> 00:01:39,980
... any cupboards, or storage, or bench,
or anything in there. It was very much

34
00:01:39,980 --> 00:01:44,840
when the house was built, it was what I,
what I have called a bachelor's laundry,

35
00:01:44,840 --> 00:01:45,450
-in that it had-
-Mm

36
00:01:45,450 --> 00:01:49,179
... like, a tub. It's got a washing
machine, and just, like, the cheapest,

37
00:01:49,180 --> 00:01:53,270
nastiest cupboard that, that I could
afford when I, when I built the house.

38
00:01:53,270 --> 00:01:56,040
-Sounds like ours. Yep.
-And, and that's it. So at the moment,

39
00:01:56,040 --> 00:02:01,440
we're just... We've just, um... I got the
text message this morning saying that we-

40
00:02:01,440 --> 00:02:06,340
we'll get the, um, all of the cabinetry
delivered on the 10th of February, and

41
00:02:06,340 --> 00:02:11,240
then they will be installing everything on
the 11th. So we're getting, like, benches

42
00:02:11,240 --> 00:02:15,720
and, like, a new sink, and storage, and
all kinds of stuff in there, which is,

43
00:02:15,720 --> 00:02:19,400
which is wonderful. But I had a sparkie
here yesterday, and I said, "I want three

44
00:02:19,400 --> 00:02:22,970
power points, and you, you know, that's
it." I'm not,

45
00:02:23,700 --> 00:02:27,080
-not touching. That's not for me.
-Yep. Yeah, so I'm gonna, I'm gonna figure

46
00:02:27,080 --> 00:02:30,260
it out, and then I'll let you know. So I
think, yeah, I, I think I've got it. I've

47
00:02:30,260 --> 00:02:33,739
got the, the volta- like, the voltage
testers out, and, like-

48
00:02:33,740 --> 00:02:35,020
-Mm
-... I thought I had it. I thought I had it

49
00:02:35,020 --> 00:02:35,840
figured out, and

50
00:02:36,480 --> 00:02:38,370
-chat was helping me, and-
-Yeah

51
00:02:38,370 --> 00:02:41,640
... then it just, kind of the wheels came
off, and so I just, like, I'm so

52
00:02:41,640 --> 00:02:42,570
-frustrated-
-Start a new chat

53
00:02:42,570 --> 00:02:44,290
-... with this stupid thing, so-
-You've, you've done too... gone too far.

54
00:02:44,290 --> 00:02:45,210
-Oh.
-You have to start a new chat.

55
00:02:45,210 --> 00:02:48,359
And the thing is, it, it learned from,
like, something that I did the other day.

56
00:02:48,360 --> 00:02:50,020
-Mm-hmm.
-Like, I also had a switched set of

57
00:02:50,020 --> 00:02:52,670
outlets, which is, like, where you have
these outlets, where the top one is always

58
00:02:52,670 --> 00:02:54,940
powered, but the bottom one is dependent
on a switch on the wall.

59
00:02:54,940 --> 00:02:56,440
-Right, yep.
-And that was not working from the last

60
00:02:56,440 --> 00:02:58,340
time I installed this, like, three years
ago.

61
00:02:58,340 --> 00:02:59,620
-Mm-hmm.
-And so I was like: Help me out, figure out

62
00:02:59,620 --> 00:03:02,920
what's going on. And it turns out I had
forgotten to break off one of the tabs on

63
00:03:02,920 --> 00:03:07,100
the things. Anyway, solved that problem.
It worked great for that.

64
00:03:07,100 --> 00:03:09,060
-Yeah.
-Three-way switches, not so much.

65
00:03:09,060 --> 00:03:11,329
-Yeah.
-So anyway, any of you people out there, if

66
00:03:11,329 --> 00:03:14,130
you like three-way switches, hit me up.
But we're not here to talk about three-way

67
00:03:14,130 --> 00:03:15,579
-switches.
-You'll have to wait for GPT 5.3 to come

68
00:03:15,580 --> 00:03:18,500
-out.
-Correct. Um, so I... Here's the first

69
00:03:18,500 --> 00:03:21,380
thing I wanna talk about. I wanna talk
about what models we're using. So-

70
00:03:21,380 --> 00:03:24,280
-Mm-hmm
-... um, let me just say, also, it's sort

71
00:03:24,280 --> 00:03:28,780
of like one of those, um... I, I feel
like, I, I can't remember the exact

72
00:03:28,780 --> 00:03:32,250
phrase, but it's sort of like a little bit
and then all at once.

73
00:03:32,960 --> 00:03:34,299
-Mm.
-That's kind of what it feels like AI has

74
00:03:34,300 --> 00:03:40,080
been for me, and sounds like for you, too.
Because it was like... What the heck?

75
00:03:42,400 --> 00:03:45,780
I have never heard that beep before. I've
never heard that beep before.

76
00:03:45,780 --> 00:03:46,780
-It's gonna drive you mad.
-I, I don't know-

77
00:03:46,780 --> 00:03:47,570
-That's, that's-
-I don't know what that beep was.

78
00:03:47,570 --> 00:03:50,380
That's the house. It's telling you, "Stop
playing with the electrical and get

79
00:03:50,380 --> 00:03:51,820
someone in here who knows what they're
doing."

80
00:03:51,820 --> 00:03:54,520
Literally, I, I, I think I've never heard
that beep before in my life. I don't know

81
00:03:54,520 --> 00:04:01,380
what that was. No idea. Um, anyway, okay,
it was like I was sort of

82
00:04:01,380 --> 00:04:04,400
dabbling. I was using the chat interfaces
to talk with the-

83
00:04:04,400 --> 00:04:05,780
-Mm-hmm
-... the AIs, right?

84
00:04:05,780 --> 00:04:08,220
-Yeah.
-All great, used it for three-way switches

85
00:04:08,220 --> 00:04:12,560
and stuff like that, right. But if I
wanted to do actual code stuff, I was,

86
00:04:12,560 --> 00:04:14,500
like, sort of copying and pasting and,
like-

87
00:04:14,500 --> 00:04:15,840
-Mm-hmm
-... it just wasn't a great experience. It

88
00:04:15,840 --> 00:04:16,399
-was okay.
-Mm-hmm.

89
00:04:16,399 --> 00:04:16,969
-It worked-
-Mm-hmm

90
00:04:16,969 --> 00:04:22,600
... but it was just not wonderful, right?
And then I installed Cloud Code, and my

91
00:04:22,600 --> 00:04:27,140
mind was blown. Was that your experience
as well, something like that?

92
00:04:27,140 --> 00:04:29,590
Yeah, so over the, over the holiday break-

93
00:04:29,590 --> 00:04:33,230
And I didn't install it until version 4.5,
until Opus 4.5 was out.

94
00:04:33,230 --> 00:04:34,560
-Yeah, yeah.
-So, like, I felt like I was just, like,

95
00:04:34,560 --> 00:04:36,950
immediately, like, all in, like, "This is
amazing."

96
00:04:36,950 --> 00:04:38,200
-Yeah.
-Go ahead. Sorry.

97
00:04:38,200 --> 00:04:41,960
Yeah, over the holiday break, I finally
sat down, and I bought, like, a whole

98
00:04:41,960 --> 00:04:47,400
bunch of home assist... Uh, a whole, a
whole bunch of, what are they called? Uh,

99
00:04:47,400 --> 00:04:49,340
-Zigbee temperature sensors.
-Yeah. Oh, yeah.

100
00:04:49,340 --> 00:04:49,1000
-So we had a new-
-Absolutely

101
00:04:50,000 --> 00:04:54,780
... we had a new, new air conditioner put
in, um, a few months ago, and there was

102
00:04:54,780 --> 00:05:00,920
the option to buy its, like, first-party
temperature sensors. And not, not that it

103
00:05:00,920 --> 00:05:05,560
can control the temperature per room, but
it uses the temperature sensors to

104
00:05:05,560 --> 00:05:06,130
-determine-
-Mm-hmm

105
00:05:06,130 --> 00:05:08,380
... whether it needs to increase or
decrease airflow-

106
00:05:08,380 --> 00:05:09,130
-Sure
-... and then open-

107
00:05:09,130 --> 00:05:11,219
-Yep, yep
-... and close the actuators. And they

108
00:05:11,220 --> 00:05:12,420
were, like, $130

109
00:05:13,080 --> 00:05:14,370
-per temperature sensor-
-Per temperature

110
00:05:14,370 --> 00:05:16,190
-... to hook into this thing.
-Yeah, you like, forget that.

111
00:05:16,190 --> 00:05:17,300
And so I bought

112
00:05:18,240 --> 00:05:23,500
10 of them, I think, to go into every
room, where we've got a, a dedicated zone,

113
00:05:23,500 --> 00:05:26,780
-and then I went to-
-No, wait, did you pull, did you pull the

114
00:05:26,780 --> 00:05:29,760
-trigger on the 130 a piece?
-No, no, no, no, I bought, so I bought-

115
00:05:29,760 --> 00:05:30,360
-Oh, okay, okay
-... the Zigbee ones-

116
00:05:30,360 --> 00:05:31,640
-All right
-... which were, like-

117
00:05:31,640 --> 00:05:32,860
-Got you, got you. All right
-... $200-

118
00:05:32,860 --> 00:05:34,040
-Good man. Thank you
-... for 10, or something like that.

119
00:05:34,040 --> 00:05:34,860
-Sure, sure, sure.
-So-

120
00:05:34,860 --> 00:05:36,620
-Okay
-... 'cause I had Home Assistant running,

121
00:05:36,620 --> 00:05:41,220
and I wasn't really using it for anything.
So I was like: "Okay, GPT, can you help

122
00:05:41,220 --> 00:05:46,640
me to build automation in, in Home
Assistant to read the sensors, to

123
00:05:46,640 --> 00:05:52,160
determine when you should open a vent or a
zone, or close a zone? You don't, don't

124
00:05:52,160 --> 00:05:57,820
mess with ones where the, where the zone
is turned off." Um, we do some stuff. We

125
00:05:57,820 --> 00:06:01,460
thought, through this process, that my
mas- that our master bedroom was the

126
00:06:01,460 --> 00:06:04,360
hottest room in the house, 'cause it get-
it's western-facing, it gets the afternoon

127
00:06:04,360 --> 00:06:08,520
sun. Turns out it is my study that is the
hottest room in the house by, like, one

128
00:06:08,520 --> 00:06:10,090
-and a half degrees.
-Okay.

129
00:06:10,090 --> 00:06:13,610
Because when this, when the house was
built, we insulated this room, 'cause this

130
00:06:13,610 --> 00:06:19,852
used to be my drum room.... and so once
it heats up, it stays heated. And so, you

131
00:06:19,852 --> 00:06:23,171
know, but I had built all of this
automation in there, like, the, the, the

132
00:06:23,171 --> 00:06:27,332
master bedroom's the hot one. We need to,
like, determine in the afternoon whether

133
00:06:27,332 --> 00:06:30,692
or not we need to pre-cool it to, you
know, get the airflow going early-

134
00:06:30,692 --> 00:06:32,352
-Sure, yeah
-... before the sun hits, because it's

135
00:06:32,352 --> 00:06:33,382
-easier to cool-
-Yep, yep

136
00:06:33,382 --> 00:06:34,311
... a cool room than it is

137
00:06:34,991 --> 00:06:37,171
-to, like, cool down a hot room.
-Of course.

138
00:06:37,171 --> 00:06:41,871
Um, and so, you know, did all of this just
in, in GPT, and then it was generating

139
00:06:41,871 --> 00:06:45,751
YAML, and I was copy-pasting the YAML into
Home Assistant, and then doing that.

140
00:06:45,751 --> 00:06:48,592
-Yes.
-And then eventually, we needed, you know,

141
00:06:48,592 --> 00:06:51,652
uh, eventually you get to a point when you
have to refactor, and even when it's just

142
00:06:51,652 --> 00:06:54,692
YAML, you still have to refactor it. You
know, you wanna simplify some things. I

143
00:06:54,692 --> 00:06:55,292
wanted to see

144
00:06:55,912 --> 00:06:59,972
why it was or wasn't doing stuff, and the
way that it was initially set up, it was,

145
00:06:59,972 --> 00:07:03,442
like, duplicating all of this logic. So we
changed it to, to basically

146
00:07:04,551 --> 00:07:08,212
give you a reason, and then whether or not
it did something was based on if that

147
00:07:08,212 --> 00:07:11,642
reason was, like, no blockers kind of
thing. And then in this process-

148
00:07:11,642 --> 00:07:13,322
And at this point, you're still copying
and pasting or no?

149
00:07:13,322 --> 00:07:14,842
-I'm still copying and pasting, yeah.
-Okay.

150
00:07:14,842 --> 00:07:16,832
And I'm, I'm trying to figure out the best
way, 'cause

151
00:07:17,631 --> 00:07:19,512
it, it started to get so much YAML

152
00:07:20,251 --> 00:07:24,832
that it was like syntax highlighting this,
and the tab with the chat just kept on

153
00:07:24,832 --> 00:07:28,452
crawling. But I was too scared to start a
new chat, lest it lose all of the history

154
00:07:28,452 --> 00:07:29,662
-and the-
-Yeah, all the context

155
00:07:29,662 --> 00:07:30,871
-... context of that first thing.
-Yeah, yeah, yeah.

156
00:07:30,871 --> 00:07:34,472
So I'm like: Okay, just give me, like,
snippets, give me patches, you know,

157
00:07:34,472 --> 00:07:37,871
diffs, and I'll just copy and paste them.
And then it... That became difficult, so I

158
00:07:37,871 --> 00:07:40,142
thought, "Okay, this is where we're
gonna, uh, bust-"

159
00:07:40,142 --> 00:07:42,251
You've gotta... Now you've gotta go. Yep,
you've gotta make the-

160
00:07:42,251 --> 00:07:42,522
-This is-
-You've gotta make the jump

161
00:07:42,522 --> 00:07:45,751
... this is where we go. We're gonna put
this into a, into a Git repo.

162
00:07:45,751 --> 00:07:48,150
-Yep, yep.
-We're gonna bust out OpenCode, and we're

163
00:07:48,152 --> 00:07:51,171
gonna use their, their free whatever
models-

164
00:07:51,171 --> 00:07:52,501
-Okay, so now real quick-
-To do this

165
00:07:52,501 --> 00:07:56,332
... real quick, so I think this is
important, right? So, uh, for me, there

166
00:07:56,332 --> 00:07:59,032
was some confusion around some of these
things, so I just wanna be, like, crystal

167
00:07:59,032 --> 00:07:59,332
-clear.
-Mm-hmm.

168
00:07:59,332 --> 00:08:01,751
For those of you who have not made the
jump yet, look, we're gonna, we're gonna

169
00:08:01,751 --> 00:08:05,032
try and do our best to define some things
here. Okay, so

170
00:08:05,772 --> 00:08:10,181
we have models, um, let's call the
providers. Let's talk about some providers

171
00:08:10,181 --> 00:08:16,412
real quick. So OpenAI is the creator of
the GPT models, which we all know,

172
00:08:16,412 --> 00:08:19,952
ChatGPT. They, I think, were the first
ones to popularise, you know, the chat

173
00:08:19,952 --> 00:08:21,192
-interface-
-Yeah

174
00:08:21,192 --> 00:08:24,631
... that you can use with their GPT
models. So ChatGPT, everybody uses Chat,

175
00:08:24,631 --> 00:08:25,491
-right?
-Mm-hmm.

176
00:08:25,491 --> 00:08:29,511
So that is OpenAI. There's also Anthropic-

177
00:08:29,511 --> 00:08:31,631
-Mm
-... which is now pushing commercials for

178
00:08:31,631 --> 00:08:34,300
-their models, which are Claude, right?
-Mm-hmm.

179
00:08:34,300 --> 00:08:39,052
And, uh, with Claude, you have a couple of
different flavours of models. You have

180
00:08:39,652 --> 00:08:41,881
-Sonnet, and you have Opus.
-Mm.

181
00:08:41,881 --> 00:08:47,891
And Sonnet is, uh, less... I- it's more,
um, it, it's, it's a faster, uh, model.

182
00:08:47,891 --> 00:08:51,081
It, it has less parameters, but it, so it
returns values faster.

183
00:08:51,081 --> 00:08:52,872
-Mm.
-But Opus is more of a, like a deep thring-

184
00:08:52,872 --> 00:08:55,512
a deep think model. It'll take a little
bit longer, but it's also much more

185
00:08:55,512 --> 00:08:57,112
-comprehensive, okay? So-
-Yeah

186
00:08:57,112 --> 00:09:01,632
... those are your providers and your
models. Then what we're talking about is,

187
00:09:01,632 --> 00:09:04,852
we've said, like, you know, we were just
pasting things into an interface in chat,

188
00:09:04,852 --> 00:09:07,550
whatever. Fine, fair enough. A lot of
these providers have their own chat

189
00:09:07,552 --> 00:09:11,012
interfaces to interact with their models.
However, what Michael's talking about now,

190
00:09:11,012 --> 00:09:11,732
OpenCode

191
00:09:12,352 --> 00:09:12,862
-is-
-Mm

192
00:09:12,862 --> 00:09:18,712
-... what? Tell me about OpenCode.
-So OpenCode is like a multiprovider

193
00:09:19,672 --> 00:09:24,791
version of... If you've used Claude, it's
a, a command line interface that you go

194
00:09:24,791 --> 00:09:28,652
in, and you have access to the models, and
it does things to your code on your

195
00:09:28,652 --> 00:09:34,612
computer, or you can tell it, you know, do
whatever. OpenCode is similar in vein,

196
00:09:34,612 --> 00:09:39,172
um, there is a distinction. Claude is a
command line interface, and it's like-

197
00:09:39,172 --> 00:09:39,422
-Mm-hmm
-... just

198
00:09:40,052 --> 00:09:45,232
doing and repainting things in your
terminal, whereas OpenCode is a terminal

199
00:09:45,232 --> 00:09:50,612
user interface, a TUI, where it's doing
much more modern things it, in, in a way

200
00:09:50,612 --> 00:09:55,912
that it's, like, able to render pretty
interfaces and scrolling and, um, colour

201
00:09:55,912 --> 00:09:58,972
support and all this other stuff, command
palettes, notifications, et cetera, et

202
00:09:58,972 --> 00:10:04,652
cetera. But the, the, the main difference,
Claude locks you to the Anthropic models.

203
00:10:04,652 --> 00:10:05,752
-You can only use-
-Mm-hmm

204
00:10:05,752 --> 00:10:08,072
-... what is provided by Anthropic.
-Right.

205
00:10:08,072 --> 00:10:11,192
-OpenCode is multimodal, multi-
-And you have to have a subscription

206
00:10:11,192 --> 00:10:12,502
-... provider.
-You have to have a subscription-

207
00:10:12,502 --> 00:10:13,752
-Yes, you've gotta have a subscription-
-to Claude stuff

208
00:10:13,752 --> 00:10:14,771
-... to that, yeah.
-Yes, to Claude.

209
00:10:14,771 --> 00:10:16,541
-So with OpenCode-
-Sorry

210
00:10:16,541 --> 00:10:22,652
... they, um, they host some models
themselves that, depending on what plan

211
00:10:22,652 --> 00:10:25,852
you're on, there are some free ones, there
are some part of their Zen plan. They

212
00:10:25,852 --> 00:10:30,271
just launched, a few weeks ago, their
Black plan, which is, uh, you know, more

213
00:10:30,271 --> 00:10:34,271
similar to what you'd be familiar with
Claude Pro, Claude Max. But they allow you

214
00:10:34,271 --> 00:10:38,852
to bring your own keys and use any
provider, and they support OpenAI, they

215
00:10:38,852 --> 00:10:43,212
support, um, Anthropic to some degree.
There was a bit of hubbub about that-

216
00:10:43,212 --> 00:10:43,811
-Right
-... over the break because-

217
00:10:43,811 --> 00:10:45,832
Anthropic sort of shut that down a little
bit, yeah.

218
00:10:45,832 --> 00:10:51,372
Yep. They support GitHub Copilot. They
support, um, ZAI is another one I tried.

219
00:10:51,372 --> 00:10:55,472
There's Minimax. There's, there's a list
of, I think, probably 30 or 40 different

220
00:10:55,472 --> 00:10:59,172
providers that you can bring your own
keys, and they basically just act as an

221
00:10:59,172 --> 00:11:00,941
-interface, and they give you a-
-So-

222
00:11:00,941 --> 00:11:06,631
... a much nicer interface to your models.
And the, the, the best bit about it is

223
00:11:06,632 --> 00:11:11,412
that you can switch between models from
the same interface. So you might find

224
00:11:11,412 --> 00:11:18,252
that, um, you know, Opus is the best for
reasoning and for, um, for code, but you

225
00:11:18,252 --> 00:11:22,652
might find that GPT is better for, you
know, general house things. You might find

226
00:11:22,652 --> 00:11:26,412
that Minimax is better for one thing,
that, you know, all these different models

227
00:11:26,412 --> 00:11:30,472
are, are suited for different purposes,
and it kinda allows you to, to wield them

228
00:11:31,811 --> 00:11:35,452
-quite easily.
-And you can also use it with, like, local

229
00:11:35,452 --> 00:11:37,732
-LLMs, right? Well, using Ollama.
-Yeah, yeah, Ollama.

230
00:11:37,732 --> 00:11:40,271
Right. And so to be clear, we're gonna
talk about this real quick. So Ollama,

231
00:11:40,271 --> 00:11:44,352
what is Ollama, right? So most of the
models that we're talking about are hosted

232
00:11:44,352 --> 00:11:49,732
for you. So Claude is hosted, um, or, uh,
ChatGPT or the GPT models are hosted,

233
00:11:49,732 --> 00:11:56,372
right? Um, Co- Copilot is hosted, but you
can run your own large language models on

234
00:11:56,372 --> 00:11:58,112
your own hardware if you'd like to.

235
00:11:58,752 --> 00:12:00,531
-Mm-hmm.
-So Ollama gives you the ability to do

236
00:12:00,531 --> 00:12:04,952
that. You download a model, and then you
run it on your machine, and then you can

237
00:12:04,952 --> 00:12:09,732
use something like OpenCode to point to
any of these hosted models if you'd like

238
00:12:09,732 --> 00:12:12,102
-to, or to your local model. So if you're-
-Mm-hmm

239
00:12:12,102 --> 00:12:16,051
... very concerned with or if your company
is very concerned with making sure that

240
00:12:16,051 --> 00:12:20,072
everything stays local and does not ever
get leaked out, that might be an option

241
00:12:20,072 --> 00:12:21,462
-for you as well.
-Yeah.

242
00:12:21,462 --> 00:12:26,932
So, uh, running your own stuff on Ollama.
Also, if you need more firepower than what

243
00:12:26,932 --> 00:12:28,742
your machine can give you, um,

244
00:12:29,672 --> 00:12:35,311
we actually just bought, at work, a NVIDIA
DGX Spark, which is pretty freaking sick.

245
00:12:35,311 --> 00:12:35,872
Mm.

246
00:12:35,872 --> 00:12:40,612
So it's like a $3,000, $4,000 machine,
which has got, like, a 128 gigabyte

247
00:12:40,612 --> 00:12:42,771
NVIDIA, uh, GPU in it,

248
00:12:43,531 --> 00:12:45,551
-and just ships with, like, Ubuntu on it.
-Mm-hmm.

249
00:12:45,551 --> 00:12:50,332
So you just set it up, and then you plug
it in, and away you go. You SSH into the

250
00:12:50,332 --> 00:12:55,743
box, and then you can run Ollama-... on
there. You can put any of the models that

251
00:12:55,743 --> 00:12:59,534
you want on there. Uh, I think you can run
all the big ones as well. And so-

252
00:12:59,534 --> 00:13:02,123
-Mm-hmm
-... you can use that as a way to not

253
00:13:02,123 --> 00:13:06,584
necessarily run it on your hardware on the
same machine, but on, like, a piece of

254
00:13:06,584 --> 00:13:09,843
hardware that's sitting next to your
machine, right? So that's an option as

255
00:13:09,843 --> 00:13:13,404
well. So, you know, if your company is
really interested in investing in the AI

256
00:13:13,404 --> 00:13:18,464
thing, but they're not-- they, like, you
know, they have things with your... They

257
00:13:18,464 --> 00:13:19,993
-have agreements maybe that says-
-Yeah

258
00:13:19,993 --> 00:13:22,444
... you can't do this. So they're like,
"Well, AI is off the table." It's not off

259
00:13:22,444 --> 00:13:24,814
the table. You just have to be creative,
right?

260
00:13:24,814 --> 00:13:26,873
-Yeah.
-So this NVIDIA DGX Spark is another option

261
00:13:26,873 --> 00:13:31,524
that you could use to allow yourselves to
use AI, and you can use something like

262
00:13:31,524 --> 00:13:34,444
OpenCode to only push things to that
thing.

263
00:13:34,444 --> 00:13:35,824
-Mm.
-So that's an option as well-

264
00:13:35,824 --> 00:13:37,843
-Yeah
-... um, which has been interesting. Sorry.

265
00:13:37,843 --> 00:13:37,884
Yeah.

266
00:13:37,884 --> 00:13:40,924
Go ahead. So you're using OpenCode. You've
got all these different models and stuff.

267
00:13:40,924 --> 00:13:40,964
Yeah.

268
00:13:40,964 --> 00:13:43,003
So what's, what's the journey been like
for you? What have you been building?

269
00:13:43,003 --> 00:13:43,064
So

270
00:13:43,743 --> 00:13:46,964
just be- before we move on as well,
OpenCode gives you access to different

271
00:13:46,964 --> 00:13:51,694
providers and different models. Different
providers can also offer the same models.

272
00:13:51,694 --> 00:13:53,554
So obviously, Anthropic owns,

273
00:13:54,223 --> 00:13:55,593
-owns Claude-
-Mm-hmm

274
00:13:55,593 --> 00:13:58,763
... and the Claude models, so it's gonna
want you to use Claude. But there are

275
00:13:58,763 --> 00:14:03,843
other providers out there. For example,
um, GitHub Copilot does give you access

276
00:14:03,843 --> 00:14:09,424
to, obviously, their compute, but also to
the Claude models, to, you know, different

277
00:14:09,424 --> 00:14:14,144
models that way. There's Amp Code, which
gives you access to, um, Opus and Sonnet

278
00:14:14,144 --> 00:14:16,624
-and things like that through there, so-
-Tell me about that real quick. I don't, I

279
00:14:16,624 --> 00:14:18,233
-don't know what that is. Tell... Can you-
-So-

280
00:14:18,233 --> 00:14:19,624
-explain that to me a little bit? I don't
know what-

281
00:14:19,624 --> 00:14:20,164
-No
-... what that means.

282
00:14:20,164 --> 00:14:22,084
No, I can't, 'cause I started using it
three days ago.

283
00:14:22,084 --> 00:14:23,664
-Oh.
-I'll tell you what I did use it for. Um,

284
00:14:23,664 --> 00:14:27,444
it was Aaron Francis who said, "Get Amp
Code. They give you $10 free per day or

285
00:14:27,444 --> 00:14:31,204
something, and use its Oracle." And so
what I did, uh, which we'll probably touch

286
00:14:31,204 --> 00:14:35,884
on in a little bit, is I built this
application in, in Go. I've never written

287
00:14:35,884 --> 00:14:37,444
-a line of Go in my life. I-
-Okay

288
00:14:37,444 --> 00:14:41,223
... it's simple enough a language to read,
but I used, um,

289
00:14:41,904 --> 00:14:46,324
the Minimax model to build this out, and
then I opened Amp and I said, "Hey, Amp,

290
00:14:46,324 --> 00:14:47,304
this is what I've built.

291
00:14:48,363 --> 00:14:53,084
Go and look at the code and tell me, is
this idiomatic Go? And use your Oracle."

292
00:14:53,084 --> 00:14:57,524
And the Oracle is Amp's whatever, it's an
oracle. And it went and looked at the code

293
00:14:57,524 --> 00:15:01,424
that was built, and it gave me a, a plan
effectively. "These are the things that

294
00:15:01,424 --> 00:15:06,263
you can change to make this more idiomatic
Go, to make it leverage, um, some

295
00:15:06,263 --> 00:15:08,763
things." You know, over time, you're
building this, and then you build this,

296
00:15:08,763 --> 00:15:15,553
and then you build this, and then even as,
you know, um, chisel, chisel in stone

297
00:15:15,553 --> 00:15:19,704
developers, old, old people like us, we
would build, you know, feature A, feature

298
00:15:19,704 --> 00:15:23,044
B, feature C, and then you would look at
that and then go, and, "Okay, where are

299
00:15:23,044 --> 00:15:26,233
the abstractions? Where are the things
that I can hoist up?" So Amp kind of did

300
00:15:26,233 --> 00:15:32,003
that, and then I took that plan and fed it
back into, um, the Minimax model in

301
00:15:32,003 --> 00:15:34,694
OpenCode, to then go and implement it. So,

302
00:15:35,624 --> 00:15:39,223
uh, the, the, the crux of the thing, I
think is fairl-- there's two main ways of

303
00:15:39,223 --> 00:15:42,303
doing this now, three main ways. You can
vibe it, where you just, like, whatever

304
00:15:42,304 --> 00:15:48,024
the code is generated, I'm just gonna use
whatever's generated. There's, um, there's

305
00:15:48,024 --> 00:15:52,363
this notion of, of roughing, where you
kind of just give it a plan, you give it

306
00:15:52,363 --> 00:15:56,954
a, a list of tasks, and you just run it
literally in a bash loop, and it will just

307
00:15:56,954 --> 00:16:00,483
pick the next thing off that it thinks it
should work on. It'll have its acceptance

308
00:16:00,483 --> 00:16:03,824
criteria test, static analysis, whatever
you want to do, and it will just keep

309
00:16:03,824 --> 00:16:07,644
running that loop until it's run out of
things to do. And then there's the thing

310
00:16:07,644 --> 00:16:09,343
that I've settled on that I think most

311
00:16:10,024 --> 00:16:13,444
proper, quote-unquote, "software
engineers" would do, and that is to plan

312
00:16:13,444 --> 00:16:17,584
out your feature. Get, get this document.
It's literally a markdown document that

313
00:16:17,584 --> 00:16:21,243
you can put into your, uh, applica- or,
you know, version control, store it in a

314
00:16:21,243 --> 00:16:25,084
computer, whatever, and tell Claude,
OpenCode, whatever, "Go read this and

315
00:16:25,084 --> 00:16:26,584
implement it exactly." And so

316
00:16:27,343 --> 00:16:32,384
I would spend thirty, forty minutes coming
up with a plan, looking at it, deciding

317
00:16:32,384 --> 00:16:35,284
this is, you know, these are the files I
want to create, this is the folder

318
00:16:35,284 --> 00:16:37,784
structure I want, these are the things I
do and don't want to do, et cetera, et

319
00:16:37,784 --> 00:16:38,124
cetera.

320
00:16:38,863 --> 00:16:42,242
So you can use this plan mode, and then
you can use different models. So, you

321
00:16:42,243 --> 00:16:46,564
know, we use Opus for planning at work
because it's, you know, more of a thinking

322
00:16:46,564 --> 00:16:50,904
model. It's able to find its way through
things. Once you come up with the plan,

323
00:16:50,904 --> 00:16:56,103
save it, um, start a new session, switch
over to build mode, use Sonnet, 'cause it,

324
00:16:56,103 --> 00:16:58,444
it's quicker. It doesn't need to think
about what it's doing, it just needs to

325
00:16:58,444 --> 00:17:01,884
execute the plan. So it reads the plan,
and it goes, "Yep, no worries," knock

326
00:17:01,884 --> 00:17:08,223
tasks off until it's done. So, um, yeah,
it's been, it's been a very interesting

327
00:17:08,223 --> 00:17:11,862
month or so. You know, I took some time
over Christmas and the New Year-

328
00:17:11,864 --> 00:17:12,134
-Double-
-Three-

329
00:17:12,134 --> 00:17:15,263
... Can I, can I interject one question or
one thing real quick?

330
00:17:15,263 --> 00:17:16,743
-Go. Go.
-The reason why you might want to switch

331
00:17:16,743 --> 00:17:19,913
between models is because it's more
expensive to use certain models, right?

332
00:17:19,913 --> 00:17:21,543
-Yeah.
-So something like a deep think model,

333
00:17:21,543 --> 00:17:22,523
like, like Opus-

334
00:17:23,324 --> 00:17:26,263
-Mm-hmm
-... requires more tokens, and so you can

335
00:17:26,263 --> 00:17:29,214
exhaust those tokens much faster if you're
using Opus for everything.

336
00:17:29,214 --> 00:17:29,864
-Yeah.
-Whereas if you're just-

337
00:17:29,864 --> 00:17:30,964
-Yeah
-... using it for the planning mode, and

338
00:17:30,964 --> 00:17:32,574
-then use Sonnet for the execution-
-Yeah

339
00:17:32,574 --> 00:17:34,313
-... that's fine too.
-Mm.

340
00:17:34,313 --> 00:17:37,464
Um, if you're on the max plan, like $200
plan, maybe it doesn't really matter.

341
00:17:37,464 --> 00:17:39,184
Maybe you just use Opus for everything,
right?

342
00:17:39,184 --> 00:17:40,984
-Yeah.
-Um, if you're a little bit more selective,

343
00:17:40,984 --> 00:17:43,704
you can save yourself some tokens that
way. Um-

344
00:17:43,704 --> 00:17:46,563
-Yeah.
-And, and one other thing, which is that

345
00:17:46,563 --> 00:17:50,624
the big difference between these things
and sort of using the chat window feature,

346
00:17:50,624 --> 00:17:55,083
is that these have access to do things on
your behalf-

347
00:17:55,083 --> 00:17:57,004
-Mm-hmm
-... but also they have the entire context

348
00:17:57,004 --> 00:17:58,913
of the repository at their fingertips,
right?

349
00:17:58,913 --> 00:18:00,563
-Yeah.
-So instead of having to p- paste the

350
00:18:00,563 --> 00:18:04,684
context, you can just say, "Hey, over in
this class here, I'm u- I'm seeing-

351
00:18:04,684 --> 00:18:05,724
-Mm-hmm
-... this sort of thing. I don't really

352
00:18:05,724 --> 00:18:08,864
like how we're doing this. Instead of
this, instead of doing this, could we use,

353
00:18:08,864 --> 00:18:10,793
-like, Laravel's upsert method?"
-Yeah.

354
00:18:10,793 --> 00:18:13,824
"And, you know, inspect all the other
places where we're using the suspend

355
00:18:13,824 --> 00:18:16,083
system, and just get rid of those. I don't
need those anymore if we use this

356
00:18:16,083 --> 00:18:16,533
-upsert."
-Mm-hmm.

357
00:18:16,533 --> 00:18:19,583
And it'll just say like: "Yep, let me take
a look," and it'll go through everything.

358
00:18:20,404 --> 00:18:23,504
And sometimes it'll even be like: "Uh,
here's the plan." When you go to execute

359
00:18:23,504 --> 00:18:28,104
it, it'll say things like, uh, "Do you
mind if I execute a artisan migrate or

360
00:18:28,104 --> 00:18:31,694
like a PHP artisan make command to make
this migration?"

361
00:18:31,694 --> 00:18:33,484
-Mm-hmm.
-So it'll ask, like, "Yes. Yeah, you can do

362
00:18:33,484 --> 00:18:36,083
that, and don't bother asking again for
this session," whatever. So

363
00:18:37,043 --> 00:18:39,324
it's, it's doing things on your behalf.
That- that's...

364
00:18:39,324 --> 00:18:40,684
-Yeah
-... And, and the big, you know, the

365
00:18:40,684 --> 00:18:43,714
context, all the context that it has,
that's, that's what makes it just

366
00:18:44,524 --> 00:18:46,264
-super powerful. Um-
-Yeah.

367
00:18:46,936 --> 00:18:51,195
... super, super powerful. And one other
thing, which we can talk about-

368
00:18:51,196 --> 00:18:53,636
-Mm-hmm.
-Which is MCPs, right? So-

369
00:18:53,636 --> 00:18:56,596
-Yeah.
-This was a big one that was really helpful

370
00:18:56,596 --> 00:19:00,486
for me, is on the thing that I was
building, I ended up having... Previously,

371
00:19:00,486 --> 00:19:04,636
I had a designer friend that I had worked
with, that had built some screenshots for

372
00:19:04,636 --> 00:19:07,006
-me in Figma for how this should look.
-Mm-hmm.

373
00:19:07,006 --> 00:19:11,316
So I described the feature and basically
the whole application to Claude, wrote up

374
00:19:11,316 --> 00:19:15,656
like a, like a page of, like, instructions
and said, "Make a plan." Made a plan,

375
00:19:15,656 --> 00:19:19,396
executed the plan, had a great MVP, but it
didn't look anything like what I wanted

376
00:19:19,396 --> 00:19:24,425
it to. So I said, "Um, let's install the
Figma MCP." Installed it-

377
00:19:24,425 --> 00:19:26,756
-Mm.
-Installed it, authenticated with it,

378
00:19:26,756 --> 00:19:31,086
copied the link to the particular design,
and I said, "I want it to look like this."

379
00:19:31,086 --> 00:19:31,376
Mm-hmm.

380
00:19:31,376 --> 00:19:34,605
And it said, "Yep, sure, no problem. You,
you good with me executing this?" "Yes."

381
00:19:34,605 --> 00:19:36,936
And it was like, "Okay," and it started
downloading screenshots. It started

382
00:19:36,936 --> 00:19:37,785
-downloading logos-
-Mm.

383
00:19:37,785 --> 00:19:41,016
- placing in my asset files, and then
started matching screenshot or s- you

384
00:19:41,016 --> 00:19:44,736
know, colors, offered to do fonts,
Tailwind. "Can I configure your Tailwind

385
00:19:44,736 --> 00:19:47,916
-config?" "Yes." Boom! Done.
-Yeah.

386
00:19:47,916 --> 00:19:49,556
-Freaking amazing!
-Yeah.

387
00:19:49,556 --> 00:19:51,726
-Right? That is wild. That is the-
-Yeah

388
00:19:51,726 --> 00:19:54,416
... That is the stuff that's just, like,
so insane.

389
00:19:54,416 --> 00:19:58,116
One of my colleagues... So we use ClickUp
at work for project management, and we use

390
00:19:58,116 --> 00:20:02,736
Figma for design. So one of, one of my,
uh, engineering colleagues hooked up his

391
00:20:02,736 --> 00:20:08,666
Claude to talk to ClickUp and to talk to
Figma, and all of our application is using

392
00:20:08,666 --> 00:20:10,916
the Mui framework for

393
00:20:12,256 --> 00:20:12,906
-design-
-Mui?

394
00:20:12,906 --> 00:20:14,566
-- and things like that.
-Mui?

395
00:20:14,566 --> 00:20:19,536
Yeah, Mui. Yep. And so basically, what he
said was, "Go and look in ClickUp and get

396
00:20:19,536 --> 00:20:25,476
all of the requirements for this ticket."
We then have a link to the Figma. It will

397
00:20:25,476 --> 00:20:29,986
then go into Figma, find the components it
needs to build, and because-

398
00:20:29,986 --> 00:20:31,896
-Mm
-... we're using Mui components in, in

399
00:20:31,896 --> 00:20:37,076
Figma, and we're using Mui components in
our React front end, it was able to just

400
00:20:37,076 --> 00:20:39,136
snap everything together from the ticket

401
00:20:39,796 --> 00:20:45,416
via Figma into actual React code. And so
this is, you know, where we're at now,

402
00:20:45,416 --> 00:20:51,126
getting things that are basically built.
And, and, um, it's an, it's an interesting

403
00:20:51,126 --> 00:20:53,546
-time to be alive because-
-It sure is

404
00:20:53,546 --> 00:20:57,315
... most of your time now is like, the
other day, I spent thirty, forty minutes

405
00:20:57,315 --> 00:21:01,656
prompting out a plan to implement
something. I was gonna go for a walk to go

406
00:21:01,656 --> 00:21:05,216
and get some lunch. I'm like: All right,
I've spent forty minutes planning this.

407
00:21:05,216 --> 00:21:09,536
It'll probably take ten, fifteen to get
going. This damn thing was finished

408
00:21:09,536 --> 00:21:10,526
-implementing-
-Right

409
00:21:10,526 --> 00:21:15,736
... my plan before I had finished putting
my shoes on. And you may not know this

410
00:21:15,736 --> 00:21:16,906
-about me, but I-
-Oh

411
00:21:16,906 --> 00:21:20,996
... do not have laces on my shoes. I've
got slip-ins, usually, that I wear during

412
00:21:20,996 --> 00:21:21,986
-the day.
-You wear Kiziks?

413
00:21:21,986 --> 00:21:23,656
-Around the house.
-You got Kiziks?

414
00:21:23,656 --> 00:21:26,256
-Uh, Skechers. I got Skechers.
-Oh, okay, okay.

415
00:21:26,256 --> 00:21:30,296
Skechers slip-ins. So I didn't even get a
chance to put my slip-ins on before this

416
00:21:30,296 --> 00:21:34,576
damn thing, after forty minutes of
refining a plan, had finished, finished

417
00:21:34,576 --> 00:21:39,356
implementing. So it is a, it is a wild
time, but it's just funny. Over Christmas

418
00:21:39,356 --> 00:21:42,976
and, and New Year, we, we had this
workshop at the end of last year at work,

419
00:21:42,976 --> 00:21:46,516
where we talked about what AI meant in our
business, and how we wanted to use it,

420
00:21:46,516 --> 00:21:49,116
and what we did and didn't want to do, and
what tools we could and couldn't use

421
00:21:49,116 --> 00:21:51,736
because of compli- you know, we're
finance, with there's, there's compliance

422
00:21:51,736 --> 00:21:56,796
things in there. So here's a set of tools
that have passed our, um, you know, vendor

423
00:21:56,796 --> 00:22:00,256
onboarding and all that kind of stuff
that we're allowed to use. And so

424
00:22:01,816 --> 00:22:04,656
I'm on the computer all day at work. It
gets to the end of the day, I don't wanna

425
00:22:04,656 --> 00:22:09,276
look at the computer again until the next
day. So during the break, where it was

426
00:22:09,276 --> 00:22:13,176
like family stuff, kid stuff, you know,
relaxing, when I had some time in the

427
00:22:13,176 --> 00:22:16,516
evenings, I was more inclined to wanna
touch the computer. And I was like: Well,

428
00:22:16,516 --> 00:22:19,776
now is a good a time as any to do this. So
I started with this, this home assistant

429
00:22:19,776 --> 00:22:23,736
thing, and that just blew my mind what it
could do. And I thought, "Okay, what's,

430
00:22:23,736 --> 00:22:27,956
what's the next thing we can do?" So I
built, like, a, a small SaaS. I did a

431
00:22:27,956 --> 00:22:33,536
Laravel new with a, with a Livewire
project. I... And I said, "Okay, I have a

432
00:22:33,536 --> 00:22:37,576
hundred and forty open tabs on my phone
for articles that I'm never going to read

433
00:22:37,576 --> 00:22:43,236
later. What I want to do, what I do all
the time, is I listen to podcasts," right?

434
00:22:43,236 --> 00:22:44,385
-When I walk, when I run-
-Mm-hmm

435
00:22:44,385 --> 00:22:45,406
-... when I'm doing stuff-
-Mm

436
00:22:45,406 --> 00:22:45,836
... around the house,

437
00:22:46,656 --> 00:22:48,306
podcasts. I say, "Okay, what we're gonna
do

438
00:22:48,936 --> 00:22:53,476
is we're gonna build this little micro
SaaS for myself, where I will give it a

439
00:22:53,476 --> 00:22:59,656
link. It will go and fetch the link. It
will summarize it, just, you know, to see,

440
00:22:59,656 --> 00:23:03,956
okay, what is this all about? It will
then generate speech." So it's not gonna

441
00:23:03,956 --> 00:23:05,336
read word for word

442
00:23:05,956 --> 00:23:09,235
what was written, but it's going...
Because, you know, you- people have lists,

443
00:23:09,235 --> 00:23:12,606
people have code, people have
parentheticals, all of this kind of stuff.

444
00:23:12,606 --> 00:23:17,315
So it will generate speech, and then it
will generate an audio file, and it will

445
00:23:17,316 --> 00:23:20,536
put it into a podcast feed so that it
lands on my phone, and then I don't even

446
00:23:20,536 --> 00:23:23,055
have to think about it. I can just listen
to this article.

447
00:23:23,056 --> 00:23:26,616
-Hmm.
-Um, so built that, like four hours one

448
00:23:26,616 --> 00:23:30,485
day. Start to finish, done. Right. Never
would've built that myself. Something I've

449
00:23:30,485 --> 00:23:34,596
always wanted, but nothing that I'm gonna
spend, you know, days to weeks building

450
00:23:34,596 --> 00:23:35,716
myself. Um,

451
00:23:37,296 --> 00:23:41,336
I built, uh, this thing for... We used it
for Laravel News. I said to you, when we

452
00:23:41,336 --> 00:23:44,576
recorded the Laravel News podcast, "I
don't wanna go through the last two weeks

453
00:23:44,576 --> 00:23:48,096
of articles and find the articles, and
generate the markdown, and put it into

454
00:23:48,096 --> 00:23:50,706
Notion." And, uh, so I built...

455
00:23:51,416 --> 00:23:55,956
I initially, like, the, quote-unquote,
"MVP," was just asking GPT, "Hey, go and

456
00:23:55,956 --> 00:23:59,696
fetch all of the articles from the last
two weeks from the Laravel News website.

457
00:23:59,696 --> 00:24:02,636
Give me a list," and I just copy-pasted
that into Notion. I thought, "We're onto

458
00:24:02,636 --> 00:24:03,896
-something here."
-Yeah, yeah.

459
00:24:03,896 --> 00:24:08,376
So I built out this little thing that for
Laravel News, I just say, "Go and find me

460
00:24:08,376 --> 00:24:10,816
all of the articles that were published
between date X, date Y.

461
00:24:11,436 --> 00:24:17,916
Classify it as releases, news, tutorials,
packages. Um, generate the PDF. Generate

462
00:24:17,916 --> 00:24:21,656
the show notes. Okay, we've recorded the
episode. We've got the, the markers in

463
00:24:21,656 --> 00:24:26,976
the, in the video file for YouTube. Go and
match up the markers with the original

464
00:24:26,976 --> 00:24:28,416
thing.

465
00:24:29,836 --> 00:24:33,476
Put, put together the show notes that we
can put into Transistor, into YouTube. Go

466
00:24:33,476 --> 00:24:35,376
and generate the transcription.

467
00:24:36,396 --> 00:24:38,875
Generate me the, you know, the, the
chapter markers," all of that kind of

468
00:24:38,876 --> 00:24:44,056
stuff. That's done. So now the, the only
time spent on the Laravel News podcast is

469
00:24:44,056 --> 00:24:47,056
you and I recording it, and then me
editing it, which is really these days,

470
00:24:47,056 --> 00:24:50,968
'cause we've been doing it for-...
donkey's years, um, is just putting the

471
00:24:50,968 --> 00:24:54,768
chapter markers in there. We-- Very low
touch editing. I put chapter markers in, I

472
00:24:54,768 --> 00:24:58,928
put titles into the video, and that's it.
And so another thing done. Um, I built

473
00:24:58,928 --> 00:24:59,568
this, this

474
00:25:00,348 --> 00:25:02,808
thing in Go. I've never written Go before.
I l-- I read it-

475
00:25:02,808 --> 00:25:04,008
-Right
-... and I'm like, "That looks like it's

476
00:25:04,008 --> 00:25:09,768
doing what I want it to do." It's just...
And, like, I've been hammering it at work,

477
00:25:09,768 --> 00:25:13,348
you know. Work hours, uh, work days only
last five hours now, because that's,

478
00:25:13,348 --> 00:25:15,998
that's what your Claude limit is, if you
can stretch it for five hours.

479
00:25:18,448 --> 00:25:20,208
-No, I keep-
-Yeah, that's how long until your tokens

480
00:25:20,208 --> 00:25:21,118
-wear out, right?
-Yeah.

481
00:25:21,118 --> 00:25:22,558
You get five hours until it, until it
resets again.

482
00:25:22,558 --> 00:25:26,208
Yeah, we're on the API plan, and, you
know, there's six of us... There's still a

483
00:25:26,208 --> 00:25:28,688
couple of guys on, on leave at the
moment. So there's six of us just

484
00:25:28,688 --> 00:25:31,728
hammering this API plan and just burning
through tokens. So we finally got onto the

485
00:25:31,728 --> 00:25:32,008
-team-
-Yeah

486
00:25:32,008 --> 00:25:35,868
... plan now, and it's like: Okay, you've
got five hours, use it wisely, kind of

487
00:25:35,868 --> 00:25:41,428
thing. So it is, it has definitely been
productive. It has... Like, I had to do

488
00:25:41,428 --> 00:25:45,467
something with Scramble yesterday, where
we've got spicy enums in our

489
00:25:47,068 --> 00:25:50,588
resources, but it doesn't read them
properly. And we had to try and figure

490
00:25:50,648 --> 00:25:51,288
out: Well, how do we get

491
00:25:51,928 --> 00:25:54,668
the values from a spicy enum to render in
the same way that

492
00:25:55,428 --> 00:25:58,848
native enums render in those Scramble
docs? And, you know, off it went. It went

493
00:25:58,848 --> 00:26:01,748
digging through the vendor code. It went
figuring out, okay, I need to write this.

494
00:26:01,748 --> 00:26:05,308
I need to, you know, hook into Scramble
over here. I need to register the

495
00:26:05,308 --> 00:26:10,548
extension. I, I would've spent a day on
that, probably, myself, figuring out. I

496
00:26:10,548 --> 00:26:13,968
said, "I don't wanna do that." You know,
all of this stuff we're just delegating,

497
00:26:13,968 --> 00:26:17,168
-um, and shipping stuff.
-Yeah.

498
00:26:17,168 --> 00:26:18,958
-It's just-
-It opens so many doors.

499
00:26:18,958 --> 00:26:19,808
-It's crazy.
-And so, like-

500
00:26:19,808 --> 00:26:20,928
-It's crazy
-... the, the, I just read this article

501
00:26:20,928 --> 00:26:22,568
-called Perfect Software, right?
-Mm-hmm.

502
00:26:22,568 --> 00:26:28,318
It's this idea of, uh, software for an
audience of one, right? And so the idea is

503
00:26:28,318 --> 00:26:32,708
that you don't have to buy something off
the shelf anymore that is, like, cooked up

504
00:26:32,708 --> 00:26:37,688
in Silicon Valley. Instead, you can say,
like this guy did, he's like: "I want to

505
00:26:37,688 --> 00:26:43,518
have... Like, I enjoy reading text that is
justified, like left to right justified."

506
00:26:43,518 --> 00:26:43,518
Yeah.

507
00:26:43,518 --> 00:26:45,088
-Like, that's what they are.
-Mm-hmm. Yeah, text justification.

508
00:26:45,088 --> 00:26:45,228
-And he's like-
-Yeah, true.

509
00:26:45,228 --> 00:26:49,328
So, so I just basically said, "Hey, build
a Chrome plugin that justifies text with

510
00:26:49,328 --> 00:26:51,408
-one click on a website." Done.
-Mm-hmm.

511
00:26:51,408 --> 00:26:53,818
Built it, of course. I mean, like, of
course, it could build that.

512
00:26:53,818 --> 00:26:55,178
-Yeah.
-Installed the plugin, and he's done.

513
00:26:55,178 --> 00:26:57,057
Doesn't have to go find it, doesn't have
to worry about, like-

514
00:26:57,057 --> 00:26:58,328
-Mm
-... it's selling his data, whatever. It's

515
00:26:58,328 --> 00:27:01,988
just, it's done, it's installed, and he
can use it.

516
00:27:01,988 --> 00:27:03,468
-Mm-hmm.
-So cool. Like, exactly the things that

517
00:27:03,468 --> 00:27:06,628
you're talking about. It's like, I want to
be able to do this, X, and all I have to

518
00:27:06,628 --> 00:27:06,858
-do-
-Mm

519
00:27:06,858 --> 00:27:08,268
-... is prompt it.
-Mm-hmm.

520
00:27:08,268 --> 00:27:11,807
It's so awesome. So it's like you don't
have to be, like, a 10X developer anymore.

521
00:27:11,868 --> 00:27:14,208
You know, it used to be so jealous of
these guys who had this time to just

522
00:27:14,208 --> 00:27:18,288
kinda... I wanna, you know, Nuno Maduro,
like: "Oh, I don't like the link-sharing

523
00:27:18,288 --> 00:27:21,848
services that are out there. I'm gonna
build Pyre," right? It's like, man, it

524
00:27:21,848 --> 00:27:25,168
would be so cool to just be able to have
the ti-- Like, we all have the time now to

525
00:27:25,168 --> 00:27:25,668
-do that.
-Yeah.

526
00:27:25,668 --> 00:27:26,188
-You don't have to-
-True.

527
00:27:26,188 --> 00:27:27,217
-Like, you can be a-
-Yeah, that's right

528
00:27:27,217 --> 00:27:29,298
-... 1X engineer and just an itch-
-Mm

529
00:27:29,298 --> 00:27:30,488
-... to solve a problem, right?
-Yeah.

530
00:27:30,488 --> 00:27:31,868
-And it's, and that's it. That's all you-
-Yeah.

531
00:27:31,868 --> 00:27:34,388
And in your LLM, and you're good to go.
And it's really-

532
00:27:34,388 --> 00:27:36,008
-Yeah
-... it's just like, it feels like you're

533
00:27:36,008 --> 00:27:39,688
tinkering again. It feels like you're
playing with code again. It's like-

534
00:27:39,688 --> 00:27:42,088
-Yeah
-... um, you know, I was talking to Andy-

535
00:27:42,088 --> 00:27:43,028
-I've had some late nights.
-Yeah, yeah.

536
00:27:43,028 --> 00:27:44,448
I've had some late nights for the last few
weeks because-

537
00:27:44,448 --> 00:27:45,698
I was up till 2:00. I was up till 2:00 the
other night doing this.

538
00:27:45,698 --> 00:27:46,128
-I can do this. Yeah.
-Just-

539
00:27:46,128 --> 00:27:49,738
Because it's like, oh, I'm gonna spend
three or four hours on this, but it'll be

540
00:27:49,738 --> 00:27:52,408
-done. Before it was like-
-It'll be done. Something that would've

541
00:27:52,408 --> 00:27:53,368
-taken forever
-... I would spend three or four hours on

542
00:27:53,368 --> 00:27:56,148
it. Yeah, I would spend three or four
hours on it before, and I would be tired,

543
00:27:56,148 --> 00:27:58,948
and I would be angry at the computer,
'cause, you know, when you get tired, it

544
00:27:58,948 --> 00:28:02,728
just... it's this, you know, missing a
semicolon or pro- you know, calling the

545
00:28:02,728 --> 00:28:03,178
-wrong method-
-Yeah

546
00:28:03,178 --> 00:28:04,748
... or something, you just don't even
realize it-

547
00:28:04,748 --> 00:28:05,557
-Or even, like, I don't wanna look-
-... when you're tired

548
00:28:05,557 --> 00:28:06,918
... at the documentation. I just wanted
to-

549
00:28:06,918 --> 00:28:08,108
-Yeah
-... like, I know what I need.

550
00:28:08,108 --> 00:28:09,708
-It's done.
-I know what the words are that I need to

551
00:28:09,708 --> 00:28:10,378
-do.
-Yeah, yeah.

552
00:28:10,378 --> 00:28:11,628
I just don't have to go look at the
documentation-

553
00:28:11,628 --> 00:28:13,208
-Yeah
-... to do it manually.

554
00:28:13,208 --> 00:28:14,247
-We have this, um-
-And so-

555
00:28:14,248 --> 00:28:14,818
-... iPad.
-Yeah.

556
00:28:14,818 --> 00:28:18,068
I had this iPad in the kitchen, and we had
this, like, little dashboard on it. And I

557
00:28:18,068 --> 00:28:22,008
used to have it so we could see the
current power price, you know, to

558
00:28:22,008 --> 00:28:24,888
determine, oh, should I, should the,
should I put the car on to charge? Should

559
00:28:24,888 --> 00:28:28,208
I run the air conditioner? Should I do the
dishwasher, or whatever else? And then

560
00:28:28,208 --> 00:28:31,048
this was another thing. I was like: Oh, I
wanna do this up a little bit. We've got a

561
00:28:31,048 --> 00:28:34,488
new, new solar system put in. We've got a
new battery put in. We need to change it

562
00:28:34,488 --> 00:28:38,688
over. So I said, "Hey, you know, AI, go
and, go and do that. Rebuild it, change it

563
00:28:38,688 --> 00:28:43,788
up." And so typically, we'd have just the
calendar on this iPad, and I'm like: "No,

564
00:28:43,788 --> 00:28:47,828
I want to see this power dashboard." And
Rhi would be like: "But I need to see

565
00:28:47,828 --> 00:28:51,908
what, what's on for tomorrow." So she-- So
I, I said, "Hey, AI, go and hook into

566
00:28:51,908 --> 00:28:55,928
iCal, you know? Go and look at our iCloud
calendars, put them all on there. Show us

567
00:28:55,928 --> 00:28:57,988
everything that's today. When there's
nothing for today, show us what's

568
00:28:57,988 --> 00:29:02,568
tomorrow." Oh, Rhi no longer switches to
the calendar. And she, she mocked me

569
00:29:02,568 --> 00:29:04,867
initially. She's like: "I can't believe
you're doing this, like, this AI thing,"

570
00:29:04,868 --> 00:29:08,948
whatever. Then she comes to me, and she
goes: "Hey, can you put tomorrow's weather

571
00:29:08,948 --> 00:29:13,047
on there?" "Yeah, done." Thirty seconds
later, weather's there. "Done. No

572
00:29:13,048 --> 00:29:17,968
problem." So, uh, she mocks me, but
there's, there's just utility, and, you

573
00:29:17,968 --> 00:29:21,448
know, for me to figure out how to get the
weather in there and, you know, not

574
00:29:21,448 --> 00:29:24,988
something that I couldn't do, something
that I probably couldn't do in thirty

575
00:29:24,988 --> 00:29:26,698
-minutes, you know?
-Right. Yeah, but now you can.

576
00:29:26,698 --> 00:29:29,588
Go and find the weather service, find that
API, figure out... You know, nah, doesn't

577
00:29:29,588 --> 00:29:31,068
matter. The AI can just do it.

578
00:29:31,908 --> 00:29:35,528
Yeah, and it's actually been a little bit
scary, uh, because it's been-- there's

579
00:29:35,528 --> 00:29:38,668
been a couple of things where I would talk
to one of my developers, and it'd be

580
00:29:38,668 --> 00:29:43,908
like: "Hey, I need to do this thing." Be
like: "Okay. Well, I'm... Hey, I'm heading

581
00:29:43,908 --> 00:29:46,388
out for a doctor's appointment. Can I
work on it tomorrow morning?" "Yeah,

582
00:29:46,388 --> 00:29:51,427
sure." He's like: "Just, just write it up
for me." "Cool. Well, I'm actually just

583
00:29:51,428 --> 00:29:53,608
gonna write it up for the LLM." And I did-

584
00:29:53,608 --> 00:29:55,968
-Yeah, save some time writing it out
-... and I had two... Literally, I'm, I

585
00:29:55,968 --> 00:29:58,848
wrote it up, and exactly what I would have
written for him, I wrote for the LLM,

586
00:29:58,848 --> 00:30:02,368
except for a little bit sloppier, and
pasted it in. And it was like I had two

587
00:30:02,368 --> 00:30:05,948
different versions of, like, experiments
that I had thought about the day before,

588
00:30:05,948 --> 00:30:08,628
and was able to basically get feedback
from the team. Which ones do we-- Which

589
00:30:08,628 --> 00:30:09,828
-one do we prefer?
-Mm-hmm.

590
00:30:09,828 --> 00:30:12,608
Okay, throw the other one away. I spent
ten minutes on it. Like-

591
00:30:12,608 --> 00:30:14,218
-Yeah
-... doesn't matter. It, it's so cool.

592
00:30:14,218 --> 00:30:16,047
-Yeah.
-Another s- another cool strategy, which

593
00:30:16,048 --> 00:30:18,938
I've seen some people do, is they
basically... So Jordan Brill, actually, on

594
00:30:18,938 --> 00:30:23,228
our team, said: "Do not do anything on
the back end." Like, he instructed the

595
00:30:23,228 --> 00:30:29,248
LLM, "Do not do anything s- like, um,
back-end related. I- I'm just interested

596
00:30:29,248 --> 00:30:33,228
in front-end, front-end exploration here.
Here are the challenges I'm, I'm having.

597
00:30:33,228 --> 00:30:36,228
Build me a front-end sort of, like,
mock-up, but don't, don't worry about

598
00:30:36,228 --> 00:30:38,018
actually persisting any of these things in
databases-"

599
00:30:38,018 --> 00:30:40,588
-Yeah
-... whatever." Unbelievable, what it was

600
00:30:40,588 --> 00:30:44,168
able to generate for him. And again, it's
just throwaway. If you don't like it,

601
00:30:44,168 --> 00:30:44,968
-don't worry about it.
-Mm.

602
00:30:44,968 --> 00:30:45,808
-Like, chuck it.
-Mm.

603
00:30:45,808 --> 00:30:47,818
Doesn't matter. Like, you've spent no time
on it.

604
00:30:47,818 --> 00:30:49,548
-Yeah.
-Like, you've spent some, some tokens, and

605
00:30:49,548 --> 00:30:51,098
-that's it. Um-
-Yeah

606
00:30:51,098 --> 00:30:55,107
... and so it's just great for doing
explorations to sort of say, like, "Do we

607
00:30:55,108 --> 00:30:58,318
like this? Do we not? Oh, that gives us
some good ideas. Let's kind of move that

608
00:30:58,318 --> 00:31:02,208
direction. Uh, we don't really need...
Like, if we do need that part, how would

609
00:31:02,208 --> 00:31:04,238
we structure that in the back end? Uh, we
should-

610
00:31:04,238 --> 00:31:05,428
-Mm
-... adjust that this way." You know, so

611
00:31:05,428 --> 00:31:10,848
like, um, it just allows you to sort
of-... experiment, kinda go down the road

612
00:31:10,848 --> 00:31:14,098
a little bit. Before, I felt like I
would've had to have much more

613
00:31:14,098 --> 00:31:17,078
justification to try something out,
because you know, you're develop-- you're,

614
00:31:17,078 --> 00:31:19,688
you're basically committing a day to it,
like, one of your developers'-

615
00:31:19,688 --> 00:31:21,818
-Mm-hmm
--days to it. So you kinda would waffle

616
00:31:21,818 --> 00:31:24,158
back and forth and like, "Ah, which
approach is gonna be the best? I don't

617
00:31:24,158 --> 00:31:26,808
know." Now, you literally just try both.
Try them both.

618
00:31:26,808 --> 00:31:27,988
-Mm.
-Let's see which one we like better.

619
00:31:27,988 --> 00:31:29,758
-Mm-hmm.
-Ah, I actually like that one better. Let's

620
00:31:29,758 --> 00:31:30,708
-go with that.
-And with-

621
00:31:30,708 --> 00:31:31,798
-And so-
-With the, with the-

622
00:31:31,798 --> 00:31:34,418
-Really, really cool
-... with, with, you know, the advent and

623
00:31:34,418 --> 00:31:39,418
the robustness now and the, the power of
these, these tools, coupled with the power

624
00:31:39,418 --> 00:31:40,498
of Git worktrees,

625
00:31:41,598 --> 00:31:43,378
-you can, you can-
-Ah, let's talk about Git worktrees.

626
00:31:43,378 --> 00:31:46,678
You can, you can have... You know, you
said you had two different approaches, why

627
00:31:46,678 --> 00:31:47,518
-not three approaches?
-Yeah.

628
00:31:47,518 --> 00:31:50,838
Why not the same two approaches with four
different models, you know?

629
00:31:50,838 --> 00:31:53,898
-Yeah.
-So worktrees then allow you to create a

630
00:31:53,898 --> 00:31:56,968
branch and a working environment for each
of these things. So previously, you

631
00:31:56,968 --> 00:31:59,898
would've just cloned down the same
repository four times. Well, now you can

632
00:31:59,898 --> 00:32:03,798
clone down the repository once with your
worktrees, and have four worktrees all

633
00:32:03,798 --> 00:32:09,038
working on, like, feature A one, feature A
two, feature A three, feature A four.

634
00:32:09,038 --> 00:32:11,118
-Okay, we're gonna send Opus-
-Can we, can we pause for a second to talk

635
00:32:11,118 --> 00:32:12,378
-about this?
-Sure.

636
00:32:12,378 --> 00:32:15,148
Like, what Git, what a Git worktree is.
So, like, I think we all know, like, a Git

637
00:32:15,148 --> 00:32:17,258
repository, you pull down, right? But
the, the-

638
00:32:17,258 --> 00:32:19,258
-Mm
-... the limitation with a Git repository

639
00:32:19,258 --> 00:32:22,938
is that y- you can only be working one
branch at a time, right? If you're on a

640
00:32:22,938 --> 00:32:25,138
branch, and you have something in your
working directory, and you need to,

641
00:32:25,138 --> 00:32:28,448
like... Oh, an emergency bug comes in, you
have to, like, either commit, or you have

642
00:32:28,448 --> 00:32:31,168
to Git stash, and then you have to switch
back to master, pull down master-

643
00:32:31,168 --> 00:32:32,398
-Mm
-... and make a new branch and do all that

644
00:32:32,398 --> 00:32:35,548
stuff, and it's like, you can only have
one thing working at a time. That's

645
00:32:35,548 --> 00:32:38,858
challenging, especially if you want to
have two different things going on at the

646
00:32:38,858 --> 00:32:41,288
same time on your own machine. How do you
do that?

647
00:32:41,288 --> 00:32:42,938
-Yeah.
-So what you said is, the solution used to

648
00:32:42,938 --> 00:32:46,458
be, you know, just clone down multiple
things, and then kind of it-- you know,

649
00:32:46,458 --> 00:32:49,208
you'd Git cd into each directory and do it
that way.

650
00:32:49,208 --> 00:32:51,578
-Yeah.
-Worktrees are the solution to this, and

651
00:32:51,578 --> 00:32:54,048
they are baked straight into Git. This is
not a-

652
00:32:54,048 --> 00:32:55,938
-Yeah
-... like, extra feature. This is a Git

653
00:32:55,938 --> 00:32:59,568
-thing. So, um, go ahead. Like, a, a Git-
-Yeah

654
00:32:59,568 --> 00:33:04,118
-... tree then is what? A worktree.
-Yeah, a worktree is just a, basically a

655
00:33:04,118 --> 00:33:10,218
directory that points to some branch in
your repository, and you can have multiple

656
00:33:10,218 --> 00:33:12,418
worktrees all pointing at the same branch

657
00:33:13,038 --> 00:33:15,578
if you really wanted to. I probably
wouldn't do it at the same time, but, you

658
00:33:15,578 --> 00:33:19,258
know, four branches, four worktrees, and
like I said, you could have Opus working

659
00:33:19,258 --> 00:33:23,218
on one, you could have, uh, GPT working on
one, you could have Sonnet working on

660
00:33:23,218 --> 00:33:28,198
one, and you could Minimax, GLM, whatever,
pick another of, of the models. "Here is

661
00:33:28,198 --> 00:33:32,258
the same plan for all four of you. Go
implement." And it-- and you've got four

662
00:33:32,258 --> 00:33:35,998
agents, four models, all working on the
same thing. "Look, pick which one you

663
00:33:35,998 --> 00:33:39,758
like. Pick which is, which is the one you
wanna have in there," and they all do it.

664
00:33:39,758 --> 00:33:44,858
So, um, yeah, I, I'd been using them for
years and years because I was often

665
00:33:44,858 --> 00:33:47,798
reviewing other people's code, looking at
other things. So if I was working on

666
00:33:47,798 --> 00:33:48,218
something,

667
00:33:48,898 --> 00:33:52,407
and I would have to stop because I wanted
to pull down a PR to look at it locally,

668
00:33:52,407 --> 00:33:56,078
'cause, you know, sometimes, most of the
time, it's not great to just look at it in

669
00:33:56,138 --> 00:33:59,118
the, in the GitHub UI. You want to pull
the code down, feel around, click around,

670
00:33:59,118 --> 00:34:03,438
see, see what it is. You'd have to, you
know, do a whip commit, stash your

671
00:34:03,438 --> 00:34:08,588
changes, change branches, come back to it,
you know, half a day later, forgetting,

672
00:34:08,588 --> 00:34:11,527
"Oh, and I forgot... forget about the
stash. Where'd that code go? I don't know.

673
00:34:11,527 --> 00:34:14,818
It must be lost somewhere," you know. The
worktree solved that problem, because you

674
00:34:14,818 --> 00:34:18,257
can just have everything and just switch
directories and, um, and do all that. So

675
00:34:18,257 --> 00:34:21,518
I, I built... This is the, this little Go
thing that I built, um,

676
00:34:22,578 --> 00:34:22,757
which

677
00:34:23,398 --> 00:34:27,538
doesn't-- like, it wraps over the top of
Git worktrees and just gives you, like, a

678
00:34:27,538 --> 00:34:33,578
nice UI, a nice, um, interface to then
create worktrees, spin up new projects,

679
00:34:33,578 --> 00:34:39,697
um, work and move between all of these
different things in a simpler way. With

680
00:34:39,697 --> 00:34:44,947
the, with the, like, idea in my head that
you could say, "Hey," um, tell your AI

681
00:34:44,947 --> 00:34:48,217
model, "Go and, go and create a new
worktree and go and explore this plan in,

682
00:34:48,217 --> 00:34:50,757
in that directory," and off it goes and,
and does its thing. So

683
00:34:51,498 --> 00:34:57,298
it was, it was... I saw, I saw OpenCode
has built this functionality into, I

684
00:34:57,298 --> 00:35:01,118
think, their GUI. I don't know if it's in
their command line version at the moment,

685
00:35:01,118 --> 00:35:04,378
but I saw a video. I literally finished
exporting the video that, that I published

686
00:35:04,378 --> 00:35:08,558
on, on Twitter, and I saw that the
OpenCode guys had, had posted a video

687
00:35:08,558 --> 00:35:11,868
saying they've got workspaces in OpenCode
now. So, um, it was more-

688
00:35:11,868 --> 00:35:13,278
Worktrees in, in OpenCode, it'll do it in
there.

689
00:35:13,278 --> 00:35:14,338
-Yeah.
-Yeah.

690
00:35:14,338 --> 00:35:16,268
Yeah, workspaces, I think they're calling
it, 'cause then they're saying-

691
00:35:16,268 --> 00:35:17,377
-Okay
-... you know, your workspace may not

692
00:35:17,378 --> 00:35:21,598
necessarily be a Git worktree. It could
be, like, a, a Docker environment or, you

693
00:35:21,598 --> 00:35:22,718
-know, some third-
-Sure

694
00:35:22,718 --> 00:35:27,368
... um, remote service or whatever. But it
was more an exploration in, um,

695
00:35:28,358 --> 00:35:34,658
how, how do I use these tools to, to craft
something where I'm not, I'm not the

696
00:35:34,658 --> 00:35:36,118
expert in the language?

697
00:35:37,398 --> 00:35:41,698
Putting myself in the shoes of, like, "I
know how to develop software. How would I

698
00:35:41,698 --> 00:35:45,478
apply this to build something that I would
never build myself?" Um,

699
00:35:46,298 --> 00:35:49,438
which, which was an interesting
experience. I learnt, I learnt a lot. Um,

700
00:35:49,438 --> 00:35:53,058
you know, having, having one model build
it and then having another model come

701
00:35:53,058 --> 00:35:56,017
through and review it and say, "You know,
this is not the way to do it. I would do

702
00:35:56,018 --> 00:35:59,498
it this other way." Creating a plan and
then, you know, bouncing, and then you

703
00:35:59,498 --> 00:36:02,818
learn, you know, which, which models are
good for which things. I mean, you could,

704
00:36:02,818 --> 00:36:07,398
if you wanted to burn all your tokens and
all of the trees in the world, use Opus

705
00:36:07,398 --> 00:36:10,118
-and just only use Opus for everything.
-That's what I do.

706
00:36:10,118 --> 00:36:14,718
Great! But- ... Opus, you know, and this,
and this is where the, you know, the...

707
00:36:14,718 --> 00:36:17,858
Yes, you can do that, but it's ex- it's
more expensive in terms of, like-

708
00:36:17,858 --> 00:36:20,678
-Sure
-... consumption of tokens. So you use the

709
00:36:20,678 --> 00:36:25,538
smart models, the reasoning, the thinking,
whatever models you wanna call them, to

710
00:36:25,538 --> 00:36:28,258
come up with the plans, 'cause they will
think about the edge cases. You know,

711
00:36:28,258 --> 00:36:31,277
you'd say: What have I missed here? What
do you think I should explore? Is this a

712
00:36:31,278 --> 00:36:35,158
good idea? Yada, yada, yada. Um, and then
once the plan is written, you get it to

713
00:36:35,158 --> 00:36:38,138
write it to a markdown file. You start a
new session, and you say, "Okay, let's

714
00:36:38,138 --> 00:36:43,978
switch to Sonnet or Minimax or GLM or
whatever, whatever, GPT, whatever. Um,

715
00:36:43,978 --> 00:36:48,337
here's the plan. Read it." It may have
other questions. Ask me, you know, if you

716
00:36:48,338 --> 00:36:53,358
think there's anything missing, um, and
then off you go. And then, you know... So

717
00:36:53,358 --> 00:36:59,138
where, let's say, an Opus token counts for
one, you know, one, one token is, is, is

718
00:36:59,138 --> 00:37:04,538
$1. Well, a Sonnet token, for example, is
50 cents. So you could do twice as many

719
00:37:04,538 --> 00:37:06,767
-tokens with your Sonnet model-
-Yeah, yeah

720
00:37:06,767 --> 00:37:10,598
... than you can with the Opus model. But
when it's, when it doesn't have to think

721
00:37:10,598 --> 00:37:15,389
or-... determine, you know, do I want A or
B? Do I wanna create this file or that

722
00:37:15,390 --> 00:37:19,710
file? No, it's just executing the plan
that you've already written. So there's no

723
00:37:19,710 --> 00:37:23,090
thinking involved. It's got fresh
context. It can just burn through it.

724
00:37:23,090 --> 00:37:26,850
Takes a couple of minutes. Um, you all
know this 'cause you've all been using AI

725
00:37:26,850 --> 00:37:31,890
for six, 12 months, whatever, already. I'm
late to the game. I'm as, as excited as

726
00:37:31,890 --> 00:37:35,890
-you were. I'm sorry that I missed this.
-Mm-hmm. Well, I mean, honestly, I feel

727
00:37:35,890 --> 00:37:38,210
-like, for me-
-I feel like it's only come along in the

728
00:37:38,210 --> 00:37:41,530
last two months or so, though. Like, since
Opus came out, which was Oct... I think

729
00:37:41,530 --> 00:37:46,100
October, November last year, like, that's
where w- where we saw this real shift. Um,

730
00:37:46,100 --> 00:37:46,720
-and, you know-
-Mm-hmm

731
00:37:46,720 --> 00:37:49,970
... the start of this year, where we
started to see a little bit of fallout

732
00:37:49,970 --> 00:37:53,190
from all of the, the changes come to a
head, I think so.

733
00:37:53,190 --> 00:37:56,430
Yeah. I read an article the other day, and
I'm trying to find it right now, but it

734
00:37:56,430 --> 00:38:01,420
was essentially, you know, a year ago, you
know, people were saying, like: "Oh, it's

735
00:38:01,420 --> 00:38:05,530
gonna, you know, replace all these jobs
of m- mid-level developers," and it was

736
00:38:05,530 --> 00:38:09,230
like, not a chance. And I read an article
the other day where, like, after Opus 4.5

737
00:38:09,230 --> 00:38:12,670
was released, they're like: "Nope, that's
actually true. That's actually true now.

738
00:38:12,670 --> 00:38:14,020
-It could."
-Mm-hmm. Mm.

739
00:38:14,020 --> 00:38:16,250
Um, I don't think it's gonna replace jobs.
I think it's just going to... People who

740
00:38:16,250 --> 00:38:19,830
don't know how to use AI are gonna be
outpaced by those who do, and so there'll

741
00:38:19,830 --> 00:38:24,070
still be people at-- There will still be a
human at the wheel a lot of times, right?

742
00:38:24,070 --> 00:38:26,850
Um, if you're using it responsibly and
wanna maintain a code base that actually

743
00:38:26,850 --> 00:38:28,589
is gonna live for longer than a year,
right?

744
00:38:28,590 --> 00:38:29,770
-Yeah, yeah.
-You're gonna have to sort of be

745
00:38:29,770 --> 00:38:33,710
intelligent about how you're using it,
but, um, yeah, I mean, I've already seen

746
00:38:33,710 --> 00:38:37,430
this in our own organisation. It's like,
you know, one of our guys was just like

747
00:38:37,430 --> 00:38:41,070
flying. I'm like: "What is he doing?"
Well, yeah, he's, he's using a lot of, uh,

748
00:38:41,070 --> 00:38:44,030
tooling, and it's not that he was being
lazy. He's literally just being efficient,

749
00:38:44,030 --> 00:38:44,640
-just work-
-Yeah

750
00:38:44,640 --> 00:38:47,810
... ripping through this stuff. So
shout-out, big shout-out on our team,

751
00:38:47,810 --> 00:38:52,180
honestly, Andy Hinkle is, uh, the dude
who's been pushing this so hard.

752
00:38:52,180 --> 00:38:53,810
-Mm.
-Like: "Hey, you guys gotta start using

753
00:38:53,810 --> 00:38:55,700
-this stuff." Um-
-Yeah

754
00:38:55,700 --> 00:38:56,440
-... and so-
-Yeah

755
00:38:56,440 --> 00:38:57,080
-... really, really neat.
-Well, I just mean, uh-

756
00:38:57,080 --> 00:38:59,650
And he's actually doing some... I, we
should have him on the show sometime. He,

757
00:38:59,650 --> 00:39:04,350
he's building, um, some of our own models,
like, to, you know, like I was talking

758
00:39:04,350 --> 00:39:07,070
-about, like, on our, on code stuff-
-Mm

759
00:39:07,070 --> 00:39:09,630
... um, no big deal. Like, we're not
actually hi-- you know, handling any

760
00:39:09,630 --> 00:39:13,369
private information, but when we start
dealing with actual data-

761
00:39:13,370 --> 00:39:14,790
-Mm
-... that's where you've gotta be careful.

762
00:39:14,790 --> 00:39:15,720
-Interesting.
-And that's why we have that-

763
00:39:15,720 --> 00:39:17,530
-Yeah
-... um, DGX. It's like we're, we're

764
00:39:17,530 --> 00:39:20,399
pushing stuff to that because that's
internal, not going anywhere.

765
00:39:20,399 --> 00:39:22,550
-Mm-hmm. Mm.
-And, uh, we're actually training-- he's

766
00:39:22,550 --> 00:39:22,890
training

767
00:39:23,830 --> 00:39:27,250
some of our own models on some of this
data, which is really exciting. Super cool

768
00:39:27,250 --> 00:39:30,550
stuff. He understands it so much better
than I do, but yeah, we should have him

769
00:39:30,550 --> 00:39:33,709
talk about it, uh, sometime, have him on
to talk about it. And he also has been

770
00:39:33,710 --> 00:39:36,770
doing this really cool... He introduced me
to this thing called the circuit breaker

771
00:39:36,770 --> 00:39:41,150
pattern today. Um, yeah, I'd have to have
him on to talk about that sometime, too,

772
00:39:41,150 --> 00:39:42,410
-but-
-Interesting.

773
00:39:42,410 --> 00:39:44,470
Yeah, good, good stuff. Really exciting.
Okay.

774
00:39:44,470 --> 00:39:45,900
-Um, yeah-
-Real... Go ahead.

775
00:39:45,900 --> 00:39:48,570
I think there, there's been a lot of doom
and gloom about developers being r- I

776
00:39:48,570 --> 00:39:53,549
think... Yes, I, I mean, I've got, I've
got a friend who's built, um, he built,

777
00:39:53,550 --> 00:39:57,410
like, an iOS app that he sent me a test
flight link for, which is just when he

778
00:39:57,410 --> 00:40:02,570
makes coffee, he will record the grind
size, the brewing time, what it tasted

779
00:40:02,570 --> 00:40:05,090
like, whether he liked it, whether he
didn't like it. He'll take a photo of the

780
00:40:05,090 --> 00:40:06,550
latte art that he did on it.

781
00:40:07,390 --> 00:40:12,390
This is a UX guy, no coding experience.
Just this, this is just what people can do

782
00:40:12,390 --> 00:40:16,209
now. No one-- no, no market for it. It
doesn't matter. I will use it, you know?

783
00:40:16,210 --> 00:40:20,510
It's always been... Laravel wouldn't exist
if Taylor wasn't building it for his own

784
00:40:20,510 --> 00:40:23,990
needs. The good things will find a market
for themselves. I think we're gonna see a

785
00:40:23,990 --> 00:40:27,959
lot more stuff come out, and we have been
seeing a lot more stuff come out. I think

786
00:40:28,610 --> 00:40:32,770
the doom and gloom is, is an interesting
prospect. Like, Salesforce fired four

787
00:40:32,770 --> 00:40:36,680
thousand people, and then I think, uh, the
CEO or whatever came out a couple of days

788
00:40:36,680 --> 00:40:39,450
ago and was like: "Whoops, made a
mistake. We actually need all those people

789
00:40:39,450 --> 00:40:45,230
back. AI is not quite what we thought it
was." So, um, I think there's still going

790
00:40:45,230 --> 00:40:50,110
to be space for people like us because
people still need to understand. Um, yes,

791
00:40:50,110 --> 00:40:52,910
you can ask the LLM to just go and fix the
problem, but eventually,

792
00:40:53,650 --> 00:40:57,530
any, any of us that have used it, that
have just, like, built without thought,

793
00:40:58,150 --> 00:41:02,070
um, you'll find yourself in, in a hole.
And so there's still gonna be a market for

794
00:41:02,070 --> 00:41:09,050
us to, to kind of do that kind of work.
But as developers, I think we

795
00:41:09,050 --> 00:41:14,510
always found ways to optimise our job. You
know, for years I've been given, you

796
00:41:14,510 --> 00:41:18,370
know, "Do this task, do this data entry.
We need to ingest this," you know,

797
00:41:18,370 --> 00:41:22,210
whatever. We write scripts to do that.
Like, this is the next evolution of

798
00:41:22,210 --> 00:41:25,490
writing a script to do that, so that we
can focus on, less on the, the

799
00:41:25,490 --> 00:41:29,440
boilerplate, the boring stuff, all these
conversations that have been had-

800
00:41:29,440 --> 00:41:31,110
-Mm
-... over and over again, you know? And

801
00:41:31,170 --> 00:41:35,910
again, I know I'm late to this, and I know
I've, I was a naysayer, but I've caught

802
00:41:35,910 --> 00:41:39,070
up, all right? We're here. We're ready to
go.

803
00:41:39,070 --> 00:41:41,770
-Yep, and it's great. It's exciting.
-This will not turn into the AI podcast,

804
00:41:41,770 --> 00:41:42,040
-though-
-I love it

805
00:41:42,040 --> 00:41:46,430
... but it's just, I think, given, given
that we took the plunge, both of us, kind

806
00:41:46,430 --> 00:41:48,790
-of at the same time, separately-
-Yeah

807
00:41:48,790 --> 00:41:54,090
... but together, um, we took the plunge.
We, "Oh, okay, we missed-- we, we, we were

808
00:41:54,090 --> 00:41:58,550
-late," but I think we're there now, so.
-Yeah. I mean, I've always, I've always

809
00:41:58,550 --> 00:42:00,680
been a late adopter. Honestly, I, I don't
feel-

810
00:42:00,680 --> 00:42:02,870
-Mm
-... like it's, it's killed me. I, I feel

811
00:42:02,870 --> 00:42:08,370
like, um, I, I can't say I've always been
a late adopter, but it's like specifically

812
00:42:08,370 --> 00:42:11,810
with these things, it's just we've got a
lot of stuff that we need to actually get

813
00:42:11,810 --> 00:42:15,870
done, and so if there's something that's a
flash in the pan, new thing, like, I'm

814
00:42:15,870 --> 00:42:19,010
probably gonna wait for a bit to kinda
jump on board with it, right?

815
00:42:19,010 --> 00:42:20,090
-Mm-hmm.
-Um, and

816
00:42:21,310 --> 00:42:25,830
i- in this case, I don't really think I
missed much. I think we got on about at

817
00:42:25,830 --> 00:42:29,060
the time where it's like, it's reaching
really good productivity levels.

818
00:42:29,060 --> 00:42:30,750
-Exactly.
-And it's like, I, I missed, I missed sort

819
00:42:30,750 --> 00:42:34,490
of the experimentation phase of a lot of
things and let some other folks figure

820
00:42:34,490 --> 00:42:38,310
that out, and now it's like, yep, I can
jump right in and be very productive. All

821
00:42:38,310 --> 00:42:40,169
-the tooling is already built out.
-Yeah.

822
00:42:40,170 --> 00:42:44,390
All the MCP stuff for Laravel is built
out, all done, and all the bugs and kinks

823
00:42:44,390 --> 00:42:48,729
are worked out, like, it's, it's a really
great time to jump in. So if you have not

824
00:42:48,730 --> 00:42:55,130
done so yet, try it out. Um, suggestions
for if you're just getting started, um, I

825
00:42:55,130 --> 00:43:00,170
think that if you want to just dip your
toe in, I think OpenCode is a really good

826
00:43:00,170 --> 00:43:04,310
one to just get started with. Just try it.
You can use some of their hosted models

827
00:43:04,310 --> 00:43:09,530
or, um, you know, like you said, AMP has
some free stuff. So find one that's free

828
00:43:09,530 --> 00:43:13,870
and just try it out and see if you like
it. If you do, I think that

829
00:43:14,790 --> 00:43:18,630
you should try Opus. I think that you
should get like a... It's, it's a twenty

830
00:43:18,630 --> 00:43:20,729
-dollar a month plan. So twenty bucks.
-Yeah.

831
00:43:20,730 --> 00:43:23,510
Try it out. You're gonna get rid of--
You're gonna eat all your tokens right

832
00:43:23,510 --> 00:43:25,590
away at first, 'cause you're not gonna
know what you're doing, and you're just

833
00:43:25,590 --> 00:43:26,970
-gonna exhaust them.
-Mm-hmm.

834
00:43:26,970 --> 00:43:30,010
You'll figure out how to switch between,
um, between models, between Sonnet and

835
00:43:30,010 --> 00:43:35,014
Opus and all that stuff, using Cloud Code
on your desktop. Um-... but you're gonna

836
00:43:35,014 --> 00:43:38,564
be able to create some pretty crazy stuff
pretty quick, and you're gonna realize the

837
00:43:38,564 --> 00:43:43,573
power of it very fast. So if it's a $20
investment, try it. It's really, really

838
00:43:43,574 --> 00:43:46,934
worth it, and it's not bad. It's not bad
to install it and get it going. It's, it's

839
00:43:46,934 --> 00:43:48,604
-pretty simple.
-Yeah.

840
00:43:48,604 --> 00:43:52,214
Um, so yeah, the, the learning curve is
just there isn't one anymore. It's very

841
00:43:52,214 --> 00:43:56,214
simple. It's, it's like if you can install
anything from Homebrew, you can install

842
00:43:56,214 --> 00:43:58,033
-Claude Code and get going.
-Mm-hmm.

843
00:43:58,034 --> 00:43:58,774
Um, so

844
00:44:00,054 --> 00:44:06,494
well worth the time, folks. Jump in. It's
good stuff. All right. Um, I was going to

845
00:44:06,494 --> 00:44:09,674
say one more thing about sort of what,
what I've built with mine. So I had a

846
00:44:09,674 --> 00:44:13,714
friend who was asking me to help with a
project.

847
00:44:13,774 --> 00:44:16,364
I had committed to it. This is the one I
was talking about, and I was-

848
00:44:16,364 --> 00:44:17,934
-Mm
-... supposed to meet with him, like, the

849
00:44:17,934 --> 00:44:21,954
next day to sort of show this project off.
I had all the designs, I had all the

850
00:44:21,954 --> 00:44:25,924
concepts, but I hadn't even started
building it at all. Like, that's why I was

851
00:44:25,924 --> 00:44:30,914
like, okay, started at, like, 8:00
o'clock, and I had it done by, like,

852
00:44:30,914 --> 00:44:36,414
midnight. Like, completely done, front
end, back end, saving to the database,

853
00:44:36,414 --> 00:44:41,874
doing local storage stuff on the front
end, validation, view. Um, I don't even

854
00:44:41,874 --> 00:44:43,344
-write view stuff, but it was all-
-Yeah

855
00:44:43,344 --> 00:44:45,764
... like, single, you know, single view
component.

856
00:44:45,764 --> 00:44:47,954
-Yeah.
-So it was really snappy. Um,

857
00:44:49,274 --> 00:44:54,434
unbelievable! Unbelievable. And that was
my first time using it in a three-hour

858
00:44:54,434 --> 00:44:55,494
span, and I was like,

859
00:44:56,234 --> 00:44:58,214
-"Sold, done, never looking back."
-Yeah.

860
00:44:58,214 --> 00:45:01,554
And I immediately bought... Like, I was on
the $100 plan by the end of the night. I

861
00:45:01,554 --> 00:45:02,214
-was like, "I'm-
-Mm

862
00:45:02,274 --> 00:45:05,224
-... I'm in." So crazy.
-Yeah.

863
00:45:05,224 --> 00:45:07,714
-So crazy. So-
-The interesting thing is, it's, it's

864
00:45:07,714 --> 00:45:08,404
possible, and

865
00:45:09,214 --> 00:45:13,124
I, I wonder how far the pendulum will
swing to, like, everyone can build

866
00:45:13,124 --> 00:45:15,913
-whatever they think of.
-Mm-hmm.

867
00:45:15,914 --> 00:45:20,514
Um, 'cause, like, lots of people build
stuff now and find no users. So yes, th-

868
00:45:20,514 --> 00:45:23,214
this is gonna enable people to build
anything that they dream of. That doesn't

869
00:45:23,214 --> 00:45:26,974
mean that it solves all the other
problems: marketing, having, finding a

870
00:45:26,974 --> 00:45:30,494
customer base, you know, people to use
your thing. Maybe it doesn't matter. Maybe

871
00:45:30,494 --> 00:45:31,044
just building

872
00:45:31,714 --> 00:45:36,194
20, 30 things for yourself to, to solve,
you know, miscellaneous little problems.

873
00:45:36,194 --> 00:45:39,734
But, uh, it'd be interesting to watch the
pendulum swing. 2026-

874
00:45:39,734 --> 00:45:41,174
-Yeah
-... will be an interesting year, I think.

875
00:45:42,954 --> 00:45:48,554
Absolutely. All right, folks, well, hey,
let's wrap it up there. Uh, episode 185,

876
00:45:48,554 --> 00:45:51,854
-is that what you said?
-Hmm. Yep.

877
00:45:52,094 --> 00:45:56,234
Yeah, 185. Find show notes for this
episode at northmeetsouth.audio/185. Hit

878
00:45:56,234 --> 00:46:01,404
us up on Twitter, on X, @jacobbennett and
@michaeldrenda, @northsouthaudio?

879
00:46:01,404 --> 00:46:04,254
-Mm-hmm.
-Think so. Um, that's it, everybody. Rate

880
00:46:04,254 --> 00:46:07,754
us up five, five stars in your podcatcher
of choice.

881
00:46:08,514 --> 00:46:11,094
-Loving this stuff, man. Loving it.
-Right.

882
00:46:11,094 --> 00:46:13,923
-It's fun again. It's fun again.
-It's, seriously-

883
00:46:13,923 --> 00:46:16,694
It gives me autonomy. I don't have to ask
everybody to do stuff for me, like, 'cause

884
00:46:16,694 --> 00:46:17,554
-I don't have time to do it.
-Yeah.

885
00:46:17,554 --> 00:46:19,814
I literally just ask my agent to do it,
and it's done.

886
00:46:19,814 --> 00:46:20,794
-Yep.
-So fun.

887
00:46:20,794 --> 00:46:21,814
-Here's a proof of concept.
-I'll stop.

888
00:46:21,814 --> 00:46:25,834
-Go, go deal with it. But yeah, it's good.
-Exactly. Exactly. All right, everybody.

889
00:46:25,834 --> 00:46:28,934
-Yeah.
-Sounds good. We'll see you next time.

890
00:46:28,934 --> 00:46:30,694
-Peace.
-Bye.