1
00:00:01,080 --> 00:00:04,799
Speaker 1: How'd you like to listen to dot NetRocks with no ads? Easy?

2
00:00:05,360 --> 00:00:08,560
Become a patron for just five dollars a month. You

3
00:00:08,599 --> 00:00:11,320
get access to a private RSS feed where all the

4
00:00:11,359 --> 00:00:14,599
shows have no ads. Twenty dollars a month, we'll get

5
00:00:14,599 --> 00:00:18,440
you that and a special dot NetRocks patron mug. Sign

6
00:00:18,519 --> 00:00:22,920
up now at Patreon dot dot NetRocks dot com. Hi,

7
00:00:23,000 --> 00:00:24,679
this is Carl Franklin.

8
00:00:24,239 --> 00:00:25,480
Speaker 2: And this is Richard Campbell.

9
00:00:25,839 --> 00:00:30,000
Speaker 1: We've got two special shows coming up soon, episode nineteen

10
00:00:30,120 --> 00:00:32,039
ninety nine and two thousand.

11
00:00:32,399 --> 00:00:35,079
Speaker 2: For episode nineteen ninety nine, we're collecting people's y two

12
00:00:35,159 --> 00:00:37,560
k stories what did you do to help the Y

13
00:00:37,600 --> 00:00:39,719
two k event not actually happen?

14
00:00:40,240 --> 00:00:42,960
Speaker 1: And for episode two thousand, we're going to be sharing

15
00:00:43,000 --> 00:00:45,479
stories about how dot net shaped your career.

16
00:00:46,000 --> 00:00:48,719
Speaker 2: We have a special page at dot netroocks dot com

17
00:00:48,719 --> 00:00:52,159
slash voxpop where you can record messages for us that

18
00:00:52,200 --> 00:00:54,000
we can play on these special episodes.

19
00:00:54,439 --> 00:00:56,479
Speaker 1: So tell us what you did for Y two k

20
00:00:56,759 --> 00:00:59,039
and what dot net means to you, and of course

21
00:00:59,079 --> 00:01:00,960
how long you've been listening to dot net rocks.

22
00:01:01,640 --> 00:01:04,439
Speaker 2: So go to dot netroocks dot com slash vox pop

23
00:01:04,560 --> 00:01:06,480
now and leave us a message before the thought of

24
00:01:06,560 --> 00:01:09,200
operates like whiskey left in a glass overnight.

25
00:01:09,159 --> 00:01:09,640
Speaker 3: Do it?

26
00:01:21,879 --> 00:01:24,120
Speaker 1: Hey, and welcome back to dot net Rocks. I'm Carl

27
00:01:24,120 --> 00:01:26,959
Franklin and I'm Richard Campbell. Damian Brady is here with us.

28
00:01:27,040 --> 00:01:31,400
You'll probably hear him before I introduce him formally. But

29
00:01:32,239 --> 00:01:37,000
this being show nineteen ninety, we need to talk about

30
00:01:37,040 --> 00:01:37,959
what happened that year.

31
00:01:38,239 --> 00:01:39,879
Speaker 4: Don't wait, you're big years, aren't they?

32
00:01:40,040 --> 00:01:42,000
Speaker 3: They know? Oh yeah, big years.

33
00:01:42,079 --> 00:01:45,760
Speaker 1: Yeah. So I remember nineteen ninety because that's the year

34
00:01:45,959 --> 00:01:49,159
I got married the first time, and my wife and

35
00:01:49,200 --> 00:01:52,920
I were watching television and you know, we heard about

36
00:01:53,359 --> 00:01:56,599
the Berlin Wall coming down and the reunification of Germany

37
00:01:57,400 --> 00:02:00,959
and that was just like it was a crazy, crazy cool.

38
00:02:00,879 --> 00:02:03,799
Speaker 4: You think about how many pieces were involved in doing that, because,

39
00:02:04,200 --> 00:02:06,599
sure me it being broken up after World War Two,

40
00:02:06,760 --> 00:02:08,560
so you had to have the agreement of all of

41
00:02:08,599 --> 00:02:12,919
the states that were involved in that, which includes Russia,

42
00:02:13,199 --> 00:02:16,319
right or the Soviet Union at that time, and then

43
00:02:17,120 --> 00:02:22,240
unification of the currency, the complete dismantling of the eastern

44
00:02:22,800 --> 00:02:26,360
the Eastern Germany political system essentially to go over to

45
00:02:26,360 --> 00:02:28,879
the western one. I'm like it was huge, huge task.

46
00:02:29,000 --> 00:02:32,360
Speaker 1: I went back to college that year, and so I

47
00:02:32,400 --> 00:02:36,960
remember my history teacher was a Cthiopian guy, and he

48
00:02:37,120 --> 00:02:40,280
was just like, just can you believe this is the garbageoff,

49
00:02:40,560 --> 00:02:42,680
just like you know, who saw that coming?

50
00:02:43,360 --> 00:02:44,560
Speaker 3: And my.

51
00:02:46,439 --> 00:02:50,039
Speaker 1: Economics teacher, a macroeconomics class that I had, she was

52
00:02:50,120 --> 00:02:53,960
like a protest hippie from the sixties, you know, and

53
00:02:54,039 --> 00:02:57,879
she said, we used to go around saying free Nelson Mandela,

54
00:02:58,039 --> 00:03:01,360
and now he's free. So that was yeah, February eleventh.

55
00:03:01,400 --> 00:03:03,080
Speaker 4: That happened in nineteen ninety as well.

56
00:03:02,960 --> 00:03:04,159
Speaker 1: Yeah, February eleventh.

57
00:03:04,199 --> 00:03:07,680
Speaker 4: So and then she also saw what started in eighty

58
00:03:07,759 --> 00:03:09,719
nine with the dissolution of the Eastern Bloc. Now you

59
00:03:09,719 --> 00:03:13,919
start having elections in Poland and in Czechoslovakia and the

60
00:03:14,039 --> 00:03:14,800
former Yugoslavia.

61
00:03:14,879 --> 00:03:17,520
Speaker 1: But it wasn't so good for Yugoslavia though, that was

62
00:03:18,479 --> 00:03:20,520
collapsing there, the communist regime.

63
00:03:20,840 --> 00:03:23,680
Speaker 4: Yeah, and they separates nations that form from that and

64
00:03:23,680 --> 00:03:25,759
they are quite hostile to each other. So things are

65
00:03:25,759 --> 00:03:27,879
going to get ugly in that part of the world.

66
00:03:27,680 --> 00:03:32,000
Speaker 1: And they would go to war in the next few years. Yeah.

67
00:03:32,039 --> 00:03:34,919
The beginning of the human genome projects. Not to steal

68
00:03:34,960 --> 00:03:37,759
your science, but it's good that's a good one.

69
00:03:37,879 --> 00:03:40,120
Speaker 4: Yeah, and it take years and years, but look where

70
00:03:40,120 --> 00:03:42,240
we are today. I forgot. They spent what two and

71
00:03:42,280 --> 00:03:44,639
a half billion dollars to do that over a decade,

72
00:03:44,639 --> 00:03:46,960
and today you can get it for three hundred bucks. Yeah,

73
00:03:47,120 --> 00:03:50,039
so pretty amazing, you know, talk about transformation. Hey, before

74
00:03:50,080 --> 00:03:52,520
we go off of the whole Eastern Bloc thing. Most importantly,

75
00:03:52,520 --> 00:03:56,759
in nineteen ninety, Moscow gets its first McDonald's wow, and

76
00:03:56,879 --> 00:03:58,080
its first pizza Hut.

77
00:03:58,159 --> 00:04:00,400
Speaker 1: That was the real reason they wanted to of the

78
00:04:00,400 --> 00:04:02,960
Soviet Union, right, so he could bring McDonald's and pizza

79
00:04:03,039 --> 00:04:03,560
Hut in there.

80
00:04:03,879 --> 00:04:06,360
Speaker 4: I don't know the answer to that. By the way,

81
00:04:06,360 --> 00:04:08,879
they're also opening in China at the same time, so

82
00:04:08,919 --> 00:04:10,199
that was going on as well.

83
00:04:10,319 --> 00:04:11,919
Speaker 3: Yeah, any others.

84
00:04:12,240 --> 00:04:14,560
Speaker 1: Go ahead, No, that's enough. I mean I would go

85
00:04:14,639 --> 00:04:16,920
over the movies, but the best movies are in the eighties.

86
00:04:16,959 --> 00:04:17,319
Speaker 4: We know that.

87
00:04:17,439 --> 00:04:19,199
Speaker 3: So yeah, yeah, I think we've already had that wave.

88
00:04:19,279 --> 00:04:23,079
Speaker 4: I will go one more geopolitical mention, which is the

89
00:04:23,120 --> 00:04:26,360
Iraqi invision of could wait that's right? Yeah, yeah, obviously

90
00:04:26,360 --> 00:04:28,920
we'll have more dire consequences, although it takes time for

91
00:04:28,959 --> 00:04:30,199
folks to really have that sink in.

92
00:04:30,360 --> 00:04:34,439
Speaker 1: Yeah, absolutely. I know you're going to do science and tech,

93
00:04:34,480 --> 00:04:37,759
but I just want to apologize because last week I

94
00:04:37,800 --> 00:04:40,639
said nineteen eighty nine was the beginning of the world

95
00:04:40,680 --> 00:04:44,720
Wide Web. Tim berners lead didn't actually invent that until

96
00:04:44,800 --> 00:04:47,879
nineteen ninety. So he developed the first web server, laying

97
00:04:47,920 --> 00:04:48,519
the foundation.

98
00:04:48,680 --> 00:04:51,240
Speaker 4: Yeah, he put the proposal in in nineteen eighty nine

99
00:04:51,399 --> 00:04:54,759
to Thurn in December. Yes, yeah, you know, and this

100
00:04:54,800 --> 00:04:56,879
is in March of eighty nine. He put the proposal

101
00:04:56,920 --> 00:05:01,360
in Oh okay, March and turned him down.

102
00:05:02,120 --> 00:05:05,160
Speaker 3: We don't need that. That's not a good idea time on.

103
00:05:05,279 --> 00:05:07,079
Speaker 1: What do you think the people that turned him down

104
00:05:07,560 --> 00:05:10,959
to sleep at night? Do you think they're just like, ah,

105
00:05:11,040 --> 00:05:11,560
that was done.

106
00:05:11,720 --> 00:05:14,360
Speaker 4: Fortunately, he kind of just kept working on it, and

107
00:05:14,759 --> 00:05:17,560
his direct report, his boss was fine with him still

108
00:05:17,560 --> 00:05:20,879
working on it. And yeah, by nineteen ninety on his

109
00:05:20,920 --> 00:05:22,879
next computer. And you can go see this machine. It's

110
00:05:22,879 --> 00:05:24,879
at certain I've seen. It's got a big label on it. Yeah,

111
00:05:24,879 --> 00:05:28,560
it says server do not turn off. And that's really cool.

112
00:05:28,600 --> 00:05:31,560
First web server, the first browser, all of it.

113
00:05:32,600 --> 00:05:33,560
Speaker 1: I gotta go see it.

114
00:05:33,560 --> 00:05:34,279
Speaker 4: It's really a thing.

115
00:05:34,399 --> 00:05:36,680
Speaker 1: So what else happened in science and tech and space?

116
00:05:37,279 --> 00:05:39,519
Speaker 4: Let's do Internet first. I'll do space last. Although I

117
00:05:39,519 --> 00:05:44,040
think the computing stuff is huge, because the Internet obviously

118
00:05:44,120 --> 00:05:48,600
has a very big year. Was not only just tim

119
00:05:48,600 --> 00:05:51,720
getting the WWW working, but this is when the first

120
00:05:51,839 --> 00:05:55,279
search engine comes out. It's called Archie, written by team

121
00:05:55,319 --> 00:05:58,480
of three Allen Mtaje, Bill heal And and Mike Parker out

122
00:05:58,480 --> 00:05:59,720
of McGill, University of Montreal.

123
00:06:00,000 --> 00:06:02,079
Speaker 1: There's a whole bunch of named things that were about

124
00:06:02,240 --> 00:06:06,079
Archie and Veronica and all that, that whole comic strip.

125
00:06:06,160 --> 00:06:09,519
Speaker 4: Yeah, and it all happened now right like this expansion,

126
00:06:09,600 --> 00:06:12,160
Like really, what's happened is that we don't have the

127
00:06:12,160 --> 00:06:14,839
Internet yet. It's arpendet, but this is the year that

128
00:06:15,000 --> 00:06:18,160
arpaet goes away and it becomes nsf net or National

129
00:06:18,160 --> 00:06:21,920
Science Foundation Network. So they're understanding it isn't the Cold

130
00:06:21,959 --> 00:06:25,759
War tool anymore. It's not that that. It's it's something else.

131
00:06:25,920 --> 00:06:29,199
So besides Archie, you also get in Gopher this year

132
00:06:29,279 --> 00:06:32,600
out of Minnesota University of Minnesota, which was a search

133
00:06:32,639 --> 00:06:33,319
and retrieval tool.

134
00:06:33,399 --> 00:06:33,560
Speaker 3: Yeah.

135
00:06:33,600 --> 00:06:35,720
Speaker 4: Remember we're only at one hundred thousand or so machine,

136
00:06:35,720 --> 00:06:39,759
so it's still reasonable for your computer to search everything.

137
00:06:39,839 --> 00:06:43,439
Speaker 1: Gopher was like file folders on the Internet. It was

138
00:06:43,480 --> 00:06:46,399
like a hierarchical file folders system and you can.

139
00:06:46,319 --> 00:06:49,759
Speaker 4: Go fetch the files as you want, all right, so beyond.

140
00:06:50,600 --> 00:06:53,279
This is also the year that the Electronic Frontier.

141
00:06:52,879 --> 00:06:53,800
Speaker 3: Foundation is formed.

142
00:06:53,839 --> 00:06:55,920
Speaker 4: Ah, Mitch kpar Yeah, don't forget that.

143
00:06:56,279 --> 00:06:59,399
Speaker 1: And John Perry Barlow who went to write songs with

144
00:06:59,519 --> 00:07:02,000
Bob We're for the Grateful Dead, Cassidy being one of

145
00:07:02,000 --> 00:07:02,560
my favorites.

146
00:07:02,680 --> 00:07:03,160
Speaker 3: Nice. Yeah.

147
00:07:03,199 --> 00:07:06,199
Speaker 4: This is the year that the first company in history

148
00:07:06,279 --> 00:07:08,759
ever makes more than a billion dollars in sales. And

149
00:07:08,759 --> 00:07:13,160
that company is Microsoft. And what are they selling in

150
00:07:13,240 --> 00:07:18,319
nineteen ninety Windows three, MS DOS and Windows Yeah. So

151
00:07:18,360 --> 00:07:20,639
this is when version three comes out. It's the first

152
00:07:20,839 --> 00:07:23,079
multitasking version of Windows, so if you have a three

153
00:07:23,160 --> 00:07:26,240
D six or better, you can have multiple apps running simultaneously.

154
00:07:26,319 --> 00:07:29,160
It's also the first version to include Solitaire, which is

155
00:07:29,199 --> 00:07:33,560
clearly worth a billion dollars. It's also the first edition

156
00:07:33,800 --> 00:07:38,519
of Microsoft Office. It was called the Microsoft Office for Windows,

157
00:07:39,120 --> 00:07:42,240
included Word one point one, Excel two point one D,

158
00:07:43,079 --> 00:07:44,360
and PowerPoint two point zero.

159
00:07:44,399 --> 00:07:44,600
Speaker 1: Wow.

160
00:07:44,720 --> 00:07:47,040
Speaker 4: It's also the year that Microsoft and IBM and their

161
00:07:47,079 --> 00:07:50,160
relationship on operating systems. That's the MMOs two And this

162
00:07:50,199 --> 00:07:52,120
is the beginning of NT and all those sorts of things.

163
00:07:52,199 --> 00:07:55,319
You have two other important pieces of software. This is

164
00:07:55,360 --> 00:07:58,759
the first version of Photoshop is in nineteen ninety only

165
00:07:58,759 --> 00:08:01,879
for the mac's the beginning of it. And one you

166
00:08:01,920 --> 00:08:05,879
know and love snagg It is in nineteen ninety.

167
00:08:05,959 --> 00:08:06,720
Speaker 3: Yeah. All right.

168
00:08:06,920 --> 00:08:09,360
Speaker 4: On the space side, I'll go down two stacks. There

169
00:08:09,360 --> 00:08:12,399
are six Shuttle flights this year. A lot of them

170
00:08:12,439 --> 00:08:14,759
are just satellite missions, but there are three I will

171
00:08:14,759 --> 00:08:15,759
talk about specifically.

172
00:08:16,079 --> 00:08:16,680
Speaker 3: In April.

173
00:08:17,439 --> 00:08:20,920
Speaker 4: Spatial Discovery deploys the Hubble space telescope.

174
00:08:20,959 --> 00:08:21,480
Speaker 1: That's right.

175
00:08:22,000 --> 00:08:24,399
Speaker 4: Originally supposed to launch in nineteen eighty three, delayed by

176
00:08:24,399 --> 00:08:28,120
the Challenger disaster and also budget. There's some evidence that

177
00:08:28,160 --> 00:08:31,160
it was actually based on the KH eleven spy satellite,

178
00:08:31,199 --> 00:08:33,240
which is still classified, so we don't really know for sure,

179
00:08:33,279 --> 00:08:36,240
but every image of it looks an awful lot like novel.

180
00:08:36,840 --> 00:08:39,320
Probably was a prototype that wasn't quite right for their application,

181
00:08:39,399 --> 00:08:40,759
so they gave it to NASA and they built the

182
00:08:40,759 --> 00:08:44,720
saddle the Hubble around it two point four meter mirror

183
00:08:44,879 --> 00:08:47,279
that was, of course, in ninety ninety discovered to a

184
00:08:47,279 --> 00:08:50,159
big ground incorrectly, and it'll be a few years before

185
00:08:50,159 --> 00:08:52,039
they figure out how to fix that. So it didn't

186
00:08:52,039 --> 00:08:52,480
work all like it.

187
00:08:52,639 --> 00:08:54,840
Speaker 1: So I just got to say this, this is my

188
00:08:55,000 --> 00:08:59,799
favorite David Letterman top ten top ten Hubble space tell

189
00:08:59,840 --> 00:09:03,919
Us scope excuses, and the number one was bum with squeegee,

190
00:09:03,960 --> 00:09:05,480
smeared lens at stopped light.

191
00:09:11,519 --> 00:09:11,799
Speaker 3: All right.

192
00:09:11,840 --> 00:09:15,440
Speaker 4: Two more Shuttle missions. One is Discovery in October launching

193
00:09:15,440 --> 00:09:19,000
the Ulysses Solar probe. This there's been solar pros for this,

194
00:09:19,039 --> 00:09:20,879
but what Elysses did it was with the ESA that

195
00:09:20,879 --> 00:09:23,159
they did. This one is they actually did a slingshot

196
00:09:23,159 --> 00:09:26,519
maneuver off of Jupiter so that they could get imaging

197
00:09:26,639 --> 00:09:29,240
of the poles of the Moon that had never been

198
00:09:29,279 --> 00:09:32,759
done before. It meant that its orbit ran several years long.

199
00:09:32,960 --> 00:09:34,759
It was a very large elliptical orbit, but it means

200
00:09:34,799 --> 00:09:36,519
they've got the first images of the North and South

201
00:09:36,559 --> 00:09:40,679
poles of the Sun. And finally Colombia and December with

202
00:09:40,759 --> 00:09:44,200
the Space Labs with Astro one. So space Lab was

203
00:09:44,320 --> 00:09:47,279
this laboratory before the space station came along.

204
00:09:47,320 --> 00:09:47,759
Speaker 3: It was in the.

205
00:09:50,200 --> 00:09:52,679
Speaker 4: Cargo compartment of the space station, gave more pressurized space

206
00:09:52,720 --> 00:09:55,120
to work in, and in behind that was this non

207
00:09:55,159 --> 00:09:57,679
pressurized palate. There were a few different options for spacelab

208
00:09:57,720 --> 00:09:59,320
doping what're doing. This is the first time they flew

209
00:09:59,360 --> 00:10:03,120
with Astro one, which was four telescopes mounted on a

210
00:10:03,200 --> 00:10:06,360
pointing rig built by Darnier out the back of the

211
00:10:06,360 --> 00:10:09,480
shuttle and the four satellite. The four telescopes were the

212
00:10:09,519 --> 00:10:13,799
Hopkins ultra violet telescope, the Wisconsin Ultraviolet Photo Parimeter, the

213
00:10:13,840 --> 00:10:18,000
experiment the Ultravallet Imaging telescope, and the Broadband X ray telescope. Wow,

214
00:10:18,120 --> 00:10:20,960
so lots of science. And I promised that I'd be

215
00:10:20,960 --> 00:10:23,639
talking about Mirror going forward, And in nineteen ninety the

216
00:10:23,720 --> 00:10:28,639
Crystal Module is lifted for mir This was a experimental

217
00:10:29,200 --> 00:10:32,600
module that had materials processing furnaces on it, so they

218
00:10:32,600 --> 00:10:35,320
were attempting to make ultra puer versions silicon and a

219
00:10:35,320 --> 00:10:38,679
bunch of other experiments. They also had one of the

220
00:10:38,799 --> 00:10:45,000
very first androgynist docking ports, initially for the Brand Shuttle,

221
00:10:45,000 --> 00:10:46,960
which of course would only have flown once a few

222
00:10:47,000 --> 00:10:49,600
years ago, will never fly again, but that port would

223
00:10:49,679 --> 00:10:53,600
be used by Spatial Atlantis at nineteen ninety five at

224
00:10:53,639 --> 00:10:57,759
the first dockings of space to the Shuttle to Mirror.

225
00:10:57,799 --> 00:11:00,399
Speaker 1: Okay, and that's what I got, all right, that's very

226
00:11:00,399 --> 00:11:03,440
good stuff. Yeah, and I think Damien's just kind of

227
00:11:03,519 --> 00:11:05,679
quiet because it's like seven o'clock in the morning where

228
00:11:05,720 --> 00:11:06,440
you are, right.

229
00:11:06,399 --> 00:11:09,600
Speaker 3: It's it's not too bad. It's I but I mean

230
00:11:09,639 --> 00:11:11,799
I was listening to all this. It's fascinating. I was ten,

231
00:11:12,240 --> 00:11:17,200
so yeah. Yeah, although that's the first computer I ever

232
00:11:17,240 --> 00:11:19,879
got was that year nineteen ninety. Yeah, and I say

233
00:11:20,399 --> 00:11:25,080
I got dad hadn't have had some stay over it. Yeah. Yeah,

234
00:11:25,279 --> 00:11:28,080
he slowly lost control over it over the next few years.

235
00:11:28,080 --> 00:11:30,279
Speaker 4: I suspect ten years old is one I got grabbed

236
00:11:30,279 --> 00:11:32,799
by computing too, dude, just a few years earlier than years.

237
00:11:32,799 --> 00:11:36,240
Speaker 1: Well yeah, yeah, well let's keep going with better no

238
00:11:36,360 --> 00:11:47,639
framework roll the music got so I thought when I

239
00:11:47,679 --> 00:11:51,879
found you know, I look for trending GitHub repos right

240
00:11:53,000 --> 00:11:55,000
and I found this one. And when I saw it,

241
00:11:55,120 --> 00:11:59,120
I thought, I swore that we had done this before,

242
00:12:00,120 --> 00:12:06,279
but apparently not. Maybe it was I just don't know. Anyway.

243
00:12:06,360 --> 00:12:11,440
This is hardened Windows Security from hot Cake X. And

244
00:12:11,480 --> 00:12:17,240
it's not code really, it's documentation. It's hardened Window security,

245
00:12:17,320 --> 00:12:21,799
a new threat to malware, hardened Windows safely securely with

246
00:12:22,320 --> 00:12:28,759
only official Microsoft methods. So it's basically you know, documentation

247
00:12:29,120 --> 00:12:33,120
and all the things that you need to know to

248
00:12:33,159 --> 00:12:37,360
shore up your Windows security, which is really becoming more

249
00:12:37,440 --> 00:12:40,240
and more and more important for everyday people to do,

250
00:12:41,200 --> 00:12:45,440
especially you know, those who don't understand what the difference

251
00:12:45,519 --> 00:12:49,120
is between just plugging into your cable modem and using

252
00:12:49,159 --> 00:12:53,720
a router and using net addresses and private networks and

253
00:12:54,159 --> 00:12:58,039
allowing your friends to come over and access your Wi Fi.

254
00:12:58,639 --> 00:13:01,279
Can they access your machine? It's like, there's so many

255
00:13:01,279 --> 00:13:06,000
things people need to know about Windows security. And you

256
00:13:06,080 --> 00:13:08,679
may not think that, oh, well, I trust my friends,

257
00:13:08,679 --> 00:13:10,879
but you know what, somebody could be sitting outside your

258
00:13:10,960 --> 00:13:15,840
driveway and hacking your stuff. So all sorts of things

259
00:13:15,840 --> 00:13:16,360
to know here.

260
00:13:16,519 --> 00:13:18,639
Speaker 4: I think it's important to remember that Windows is configured

261
00:13:18,639 --> 00:13:22,679
for maximum compatibility, not maximum security, right, and so often

262
00:13:22,679 --> 00:13:24,200
there's a whole lot of features that turned on that

263
00:13:24,200 --> 00:13:27,080
are very much edge cases. But you know, normal people

264
00:13:27,120 --> 00:13:29,080
that those things weren't turned on would return the machines

265
00:13:29,080 --> 00:13:31,120
that didn't work for them, and that's more expensive to

266
00:13:31,200 --> 00:13:34,320
Microsoft than leaving it somewhat unsecure. So it's well worth

267
00:13:34,399 --> 00:13:35,559
running on so many tools.

268
00:13:35,600 --> 00:13:38,799
Speaker 1: As our friend Patrick Hines likes to say, convenience is

269
00:13:38,799 --> 00:13:41,960
the enemy of security and vice versa totally. So that's

270
00:13:42,000 --> 00:13:43,879
what I got. Richard, who's talking to us today?

271
00:13:44,000 --> 00:13:46,519
Speaker 4: We grab a Colmin Hot Show fourteen twenty five.

272
00:13:46,559 --> 00:13:48,080
Speaker 3: That's right, baby, going back to the way.

273
00:13:47,919 --> 00:13:49,960
Speaker 4: Back we should good nine years ago. Wow, the show

274
00:13:50,039 --> 00:13:54,039
is called brown Field DevOps with one Damien Brady. Maybe

275
00:13:54,039 --> 00:13:57,679
you've heard of them. So it's just we actually shot

276
00:13:57,679 --> 00:14:00,639
this at NDC Lendon. You and I in a booth

277
00:14:00,679 --> 00:14:03,159
with Damien. Back in the day we were talking. You know,

278
00:14:03,159 --> 00:14:05,679
the demops movement was more mature than it is twenty seventeen.

279
00:14:05,720 --> 00:14:07,679
Asould I say, how do we take these practices and

280
00:14:07,720 --> 00:14:10,519
put them on to existing applications, sort of get them

281
00:14:10,639 --> 00:14:13,200
geared up to the way they ought to be and

282
00:14:13,519 --> 00:14:15,840
at least comments a few years old. Robert Mattingley says,

283
00:14:16,000 --> 00:14:18,879
thanks for the great show, guys. Legacy shows are always

284
00:14:18,919 --> 00:14:21,639
stock provoking. But the common trend seems to be defining

285
00:14:21,679 --> 00:14:25,600
the term quote legacy code. It's kind of subject discussed.

286
00:14:25,600 --> 00:14:28,879
It needs to be redefined for our current conversation. I

287
00:14:28,879 --> 00:14:30,440
think the big hairy problem is that we use the

288
00:14:30,480 --> 00:14:33,200
term legacy to define three separate categories of code. The

289
00:14:33,240 --> 00:14:35,600
first and best category code, which is battle tested, reliable

290
00:14:35,879 --> 00:14:38,120
makes the best use of the language features at the time,

291
00:14:38,720 --> 00:14:40,879
may be hard to improve with modern features. A lot

292
00:14:40,879 --> 00:14:43,240
of Cobol could fall into this category. It may see

293
00:14:43,279 --> 00:14:46,480
our cane, but it's reliable and it uses the platform well.

294
00:14:46,720 --> 00:14:49,360
The second category, code is functional and reliable uses conventions

295
00:14:49,399 --> 00:14:52,759
which are now considered outdated or harmful. I'm looking at

296
00:14:52,799 --> 00:14:56,519
you go to command. The code doesn't need a change,

297
00:14:56,559 --> 00:14:58,480
but could be improved by taking advantage of new features

298
00:14:58,559 --> 00:15:01,720
or conventions. And the final category is code the just

299
00:15:01,759 --> 00:15:04,360
plane sucks. It was bad when it was written, and

300
00:15:04,399 --> 00:15:06,840
it's bad now. We've all written it, so there's no

301
00:15:06,960 --> 00:15:10,039
use of pointing fingers. But it is an ugly baby.

302
00:15:10,320 --> 00:15:13,919
Ugly things like using a cascade of seventeen try catch

303
00:15:13,960 --> 00:15:17,120
blocks to handle a value assignment, or these SQL injectable

304
00:15:17,120 --> 00:15:21,840
storage procedures because hey, we need dynamic behavior, or checking

305
00:15:21,840 --> 00:15:24,480
if your user is authenticated or not checking if your

306
00:15:24,559 --> 00:15:28,279
user is authenticated anywhere but the log in page letting

307
00:15:28,279 --> 00:15:30,759
anyone who could play yes the URL to have full

308
00:15:30,799 --> 00:15:33,759
of mint access to your web app. If we call

309
00:15:33,840 --> 00:15:37,440
all these things legacy code, as if they all had

310
00:15:37,480 --> 00:15:39,200
the same value, it needed to be treated.

311
00:15:39,039 --> 00:15:39,679
Speaker 3: The same way.

312
00:15:40,159 --> 00:15:42,480
Speaker 4: They really don't, and it's important to recognize they need

313
00:15:42,519 --> 00:15:44,799
to be treated differently. Be nice to have a term

314
00:15:44,960 --> 00:15:47,639
for each of these categories so that we could differentiate them.

315
00:15:48,039 --> 00:15:49,919
They really don't, and it's important to recognize that they

316
00:15:49,960 --> 00:15:50,919
need to be treated differently.

317
00:15:51,240 --> 00:15:51,759
Speaker 3: It would be.

318
00:15:51,759 --> 00:15:53,639
Speaker 4: Nice to have a term for each of these categories

319
00:15:53,639 --> 00:15:56,840
so we could differentiate what should be preserved and what

320
00:15:57,000 --> 00:15:58,519
genuinely needs a rewrite.

321
00:15:58,600 --> 00:16:02,759
Speaker 1: I consider legacy code any code that nobody on staff

322
00:16:02,759 --> 00:16:05,159
can read and understand. That's fair.

323
00:16:05,960 --> 00:16:08,200
Speaker 4: We're no longer compilable. That's a good one.

324
00:16:08,320 --> 00:16:10,480
Speaker 1: That's a good one. Yeah, that's pretty good.

325
00:16:10,879 --> 00:16:12,240
Speaker 4: I don't know that I have much to add to

326
00:16:12,320 --> 00:16:14,840
Roberts's points here, because I think he's completely correct. That's

327
00:16:14,879 --> 00:16:16,600
one of the reasons I read it. There really is

328
00:16:16,639 --> 00:16:19,279
these different kinds of software, and yeah, it would be

329
00:16:19,360 --> 00:16:22,159
nice if we treated them with especially that old good code,

330
00:16:22,200 --> 00:16:25,159
with more respect. Right, And certainly, you know, we tend

331
00:16:25,159 --> 00:16:27,480
to package up those old reliable apps, like those Cobald

332
00:16:27,519 --> 00:16:29,279
apps in wrappers so that we can call to them

333
00:16:29,279 --> 00:16:32,679
with more modern things. But often that coach does not

334
00:16:32,879 --> 00:16:33,639
need to be replaced.

335
00:16:33,879 --> 00:16:34,440
Speaker 3: It works.

336
00:16:35,200 --> 00:16:37,919
Speaker 4: But we've all made some ugly Yeah, we'd all love

337
00:16:37,960 --> 00:16:39,840
to go back and clean up the ugly. It's usually,

338
00:16:40,080 --> 00:16:43,000
you know, no applications finished, it's just taken away from

339
00:16:43,039 --> 00:16:46,200
you and deployed. M HM, which you could do about that, Robert,

340
00:16:46,279 --> 00:16:48,000
thank you so much for your comment. And a copy

341
00:16:48,000 --> 00:16:49,360
of music co Buy is on its way to you.

342
00:16:49,360 --> 00:16:50,799
And if you'd like a copy of music go buy,

343
00:16:50,919 --> 00:16:52,919
write a comment on the website at dot net rocks

344
00:16:52,919 --> 00:16:54,960
dot com or on the Facebook and a couple whichever

345
00:16:54,960 --> 00:16:56,720
show there and you comment there and I reading the show,

346
00:16:56,879 --> 00:16:58,320
we'll send you copy bees to go buy.

347
00:16:58,399 --> 00:17:00,600
Speaker 1: Yeah, music to code by dot net where you can

348
00:17:00,639 --> 00:17:03,039
get that if you don't win it yourself and you

349
00:17:03,120 --> 00:17:05,480
just want to buy it. We have the entire twenty

350
00:17:05,480 --> 00:17:10,039
two track collection in MP, three wave and FLACK versions.

351
00:17:11,079 --> 00:17:14,160
All right, So I guess it's time to introduce Damien.

352
00:17:14,400 --> 00:17:16,599
His bio has changed a little bit since the last

353
00:17:16,640 --> 00:17:19,680
time he's been on the show. Damian Brady is a developer,

354
00:17:19,839 --> 00:17:25,920
speaker and author specializing in DevOps, mL OPS, developer process

355
00:17:26,000 --> 00:17:29,480
and software architecture. He's a senior manager and the Developer

356
00:17:29,480 --> 00:17:34,759
advocac team at GitHub based in Brisbane, Australia. Formerly a

357
00:17:34,759 --> 00:17:38,039
cloud advocate, at Microsoft for four years and prior to

358
00:17:38,079 --> 00:17:41,880
that a dev at Octopus Deploy and a Microsoft MVP.

359
00:17:42,480 --> 00:17:46,880
Damien has over twenty years in software development and consulting

360
00:17:47,319 --> 00:17:50,960
in a broad range of industries. In Australia. He co

361
00:17:51,079 --> 00:17:54,799
organized the Brisbane dot Net User Group and launched the

362
00:17:54,799 --> 00:17:59,000
annual DDD Brisbane Conference. Welcome back, Damien.

363
00:17:59,359 --> 00:18:00,880
Speaker 3: Thanks really good to be back.

364
00:18:01,039 --> 00:18:03,400
Speaker 4: I think we've interviewed you in every one of your jobs.

365
00:18:03,839 --> 00:18:05,400
I'm sure we did a show when you were with

366
00:18:05,640 --> 00:18:06,480
Octavis Deploy.

367
00:18:06,720 --> 00:18:08,240
Speaker 1: Definitely, yeah, yeah.

368
00:18:08,079 --> 00:18:10,839
Speaker 4: And definitely when at Microsoft and our GitHub, although as

369
00:18:10,880 --> 00:18:13,400
I understand it now, the line between Microsoft and GitHub

370
00:18:13,519 --> 00:18:16,720
is very almost not existent these days, isn't it.

371
00:18:17,119 --> 00:18:20,319
Speaker 3: Look it depends which part of GitHub and Microsoft you're in.

372
00:18:20,400 --> 00:18:24,720
But yes, yeah, exactly right. Yeah, there's some very interesting

373
00:18:24,799 --> 00:18:27,759
reporting chains going on at Microsoft and get ub at

374
00:18:27,759 --> 00:18:32,599
the moment. But the short version is that we're much

375
00:18:32,640 --> 00:18:35,240
closer than we used to be. So there's people on

376
00:18:35,279 --> 00:18:37,519
my team, like right next to me on my team

377
00:18:37,559 --> 00:18:41,279
who work for Microsoft and have the same manager as me,

378
00:18:42,160 --> 00:18:44,759
even though I'm employed by GitHub. So there's a lot

379
00:18:44,799 --> 00:18:47,920
of that kind of thing happening. Means that you know

380
00:18:48,160 --> 00:18:51,200
the stuff we're developing, particularly you know, co Pilot and

381
00:18:51,440 --> 00:18:54,880
all the dev tools. You know, we're working on them together.

382
00:18:55,000 --> 00:18:57,599
Speaker 4: I guess sounds like our friend Martin Woodward has got

383
00:18:57,599 --> 00:18:58,519
a big, fat promotion.

384
00:18:58,759 --> 00:19:04,240
Speaker 3: He is a VP of Devrell and very recently that

385
00:19:04,279 --> 00:19:09,559
includes a huge number of developer advocates or like your

386
00:19:09,680 --> 00:19:12,920
old job. Yeah, yeah, exactly, so half of the Microsoft

387
00:19:12,920 --> 00:19:14,799
Deverell team kind of reports up through him.

388
00:19:14,839 --> 00:19:16,960
Speaker 4: Now, I've always been a big fan of Martin wood

389
00:19:16,960 --> 00:19:18,279
where I'm glad he's doing well.

390
00:19:18,400 --> 00:19:19,279
Speaker 1: Me too, he is.

391
00:19:19,359 --> 00:19:23,079
Speaker 3: I saw him just before NDC London that were we

392
00:19:23,079 --> 00:19:24,960
were both at Richard the other day.

393
00:19:25,039 --> 00:19:26,880
Speaker 4: Yeah, you were really keyn order for that show.

394
00:19:26,920 --> 00:19:29,640
Speaker 3: As I recall, I was, yeah, that was fun.

395
00:19:30,000 --> 00:19:33,119
Speaker 1: I like the way Martin says bogs and to fix

396
00:19:33,200 --> 00:19:33,720
the bugs.

397
00:19:33,920 --> 00:19:37,079
Speaker 3: I think I think the faith is naughty. I think

398
00:19:37,160 --> 00:19:46,759
we get to say naughty a lot, those naughty bogs right, love.

399
00:19:46,640 --> 00:19:47,279
Speaker 4: Me and Irish Ac.

400
00:19:47,519 --> 00:19:49,680
Speaker 1: So what are you thinking about these days in terms

401
00:19:49,680 --> 00:19:52,920
of software and the big picture? It seems to have

402
00:19:53,039 --> 00:19:55,039
changed a bit since you were last with us.

403
00:19:55,200 --> 00:19:59,480
Speaker 3: Yeah, yes, well, yes, definitely, but in some respects No,

404
00:20:00,440 --> 00:20:04,640
it was interesting listening to that. You know the title

405
00:20:04,720 --> 00:20:09,039
of that that last last podcast I recorded with you guys,

406
00:20:09,039 --> 00:20:12,759
the you know, the brown Fields DevOps of stuff, and

407
00:20:12,799 --> 00:20:15,880
I remember that, remember that distinctly, and that was really

408
00:20:15,920 --> 00:20:20,799
all about taking code that did not have, you know, that,

409
00:20:20,839 --> 00:20:24,799
the safety nets around it and adding those safety nets in.

410
00:20:24,960 --> 00:20:27,200
And in that respect, I'm kind of talking about the

411
00:20:27,200 --> 00:20:32,119
same stuff these days. Sure, it's just instead of you know,

412
00:20:32,279 --> 00:20:35,400
legacy code that nobody understands, it has no tests around.

413
00:20:35,119 --> 00:20:38,200
Speaker 4: It, written by a person that no longer at the company.

414
00:20:38,880 --> 00:20:40,880
Now it's just not written by a person at all.

415
00:20:41,279 --> 00:20:43,599
Speaker 3: That's right. Yeah, We've we've evolved. We're not we're not

416
00:20:43,680 --> 00:20:47,640
using the people anymore. Yeah, So it's a similar kind

417
00:20:47,680 --> 00:20:50,559
of thing like where I mean that the way we

418
00:20:50,640 --> 00:20:55,200
write code largely has changed, where Like depending on how

419
00:20:55,279 --> 00:20:58,279
much of the code you're you're physically typing out yourself.

420
00:20:58,839 --> 00:21:02,960
And there's a huge area everything from you know, just

421
00:21:03,119 --> 00:21:07,400
using copilot or clawed or cursor or any of those things,

422
00:21:07,440 --> 00:21:10,000
to you know, to just auto complete the line you're

423
00:21:10,039 --> 00:21:12,119
on all the way through to hey, you give me

424
00:21:12,119 --> 00:21:15,279
an app that does this and then ship it to PROD.

425
00:21:16,559 --> 00:21:18,480
But either way, you know that code is not coming

426
00:21:18,480 --> 00:21:24,079
out of your fingers directly one could argue the things

427
00:21:24,079 --> 00:21:26,039
that run on the machine have not come out of

428
00:21:26,039 --> 00:21:28,880
your fingers directly for quite some time. But it's a

429
00:21:28,920 --> 00:21:30,920
little bit less deterministic now, you know.

430
00:21:31,160 --> 00:21:33,400
Speaker 4: Yeah, so you said none of us has written a

431
00:21:33,519 --> 00:21:37,119
garbage collect or any time recently, or any cryptographic library.

432
00:21:37,400 --> 00:21:39,119
You know, we depend on code all the time.

433
00:21:39,279 --> 00:21:43,400
Speaker 1: Yeah, exactly, And that's really it and software development encoding

434
00:21:43,640 --> 00:21:47,279
is really about expression. You want to express your intent

435
00:21:47,359 --> 00:21:50,000
to the computer to do something and have it do it,

436
00:21:50,839 --> 00:21:54,480
and you know, you express through code the instructions. But

437
00:21:54,680 --> 00:21:58,000
now we're at such a high level with you know,

438
00:21:58,240 --> 00:22:01,039
the agents and all of that that we're expressing to

439
00:22:01,200 --> 00:22:04,599
an agent in the English what to do, and it's

440
00:22:04,799 --> 00:22:08,200
just another higher level of programming if you think about it.

441
00:22:08,319 --> 00:22:11,160
Speaker 3: There is I think there was, there's always been this

442
00:22:11,279 --> 00:22:15,000
level at which you don't quite understand what's happeningneth. I mean,

443
00:22:15,559 --> 00:22:17,759
you write your code, and if you understand what that

444
00:22:17,799 --> 00:22:21,599
code is supposed to do, then you can largely trust

445
00:22:21,640 --> 00:22:25,119
that the OS and the hardware and the platform and

446
00:22:25,160 --> 00:22:27,599
the framework and all the things you're using are going

447
00:22:27,640 --> 00:22:30,559
to do what you expect them to do. There was

448
00:22:30,640 --> 00:22:33,880
an interesting story told in this ynote as well. Actually

449
00:22:33,920 --> 00:22:38,039
about basically showed people some code and it was a

450
00:22:38,079 --> 00:22:41,519
you know, setting some variables and then a trycatch statement

451
00:22:41,599 --> 00:22:44,960
and then they catch you you know, would write some

452
00:22:44,960 --> 00:22:47,599
stuff out to the console, and you know, this is

453
00:22:47,640 --> 00:22:50,799
a dot Net you know, some c sharp. It took people,

454
00:22:51,039 --> 00:22:53,799
you know a few seconds, but everybody kind of said, okay, well, great,

455
00:22:54,039 --> 00:22:57,400
it writes this value out. And that's true. It absolutely does,

456
00:22:57,680 --> 00:23:02,039
unless you compiled it in September of nineteen ninety five

457
00:23:02,200 --> 00:23:04,400
or something like that, because there was a version of

458
00:23:04,440 --> 00:23:07,599
the dot net framework, not ninety ninety five, twenty fifteen,

459
00:23:07,599 --> 00:23:09,519
I think there was a version of the dot net

460
00:23:09,640 --> 00:23:13,000
four point six framework where they changed the just in

461
00:23:13,039 --> 00:23:16,160
time compiler. So if you compiled that in release mode

462
00:23:16,200 --> 00:23:20,839
with compiler optimizations on, sometimes it wiped out. It optimized

463
00:23:20,839 --> 00:23:21,920
out that catch statement.

464
00:23:23,519 --> 00:23:28,799
Speaker 4: When that thing's more optimal than not running code. That's

465
00:23:28,920 --> 00:23:29,559
very optimal.

466
00:23:29,640 --> 00:23:30,160
Speaker 3: That's true.

467
00:23:30,599 --> 00:23:33,200
Speaker 1: Well, you know it's still deterministic though you just didn't

468
00:23:33,240 --> 00:23:33,759
know the rule.

469
00:23:34,359 --> 00:23:38,079
Speaker 3: Yeah, right, right, And it's very very difficult to debug

470
00:23:38,160 --> 00:23:41,519
that if it only runs in an optimized release mode.

471
00:23:41,559 --> 00:23:44,319
But like to credit, they fixed it very quickly. However,

472
00:23:44,799 --> 00:23:48,160
you know, it did highlight that at some point you

473
00:23:48,200 --> 00:23:50,200
don't really know what's going to happen. I think the

474
00:23:50,759 --> 00:23:54,519
huge difference that we've got now is that all of

475
00:23:54,519 --> 00:23:57,200
that stuff is largely trustworthy. You know, if if that

476
00:23:57,240 --> 00:23:59,200
doesn't work for you, it's also not working for the

477
00:23:59,599 --> 00:24:02,880
banker around the corner that has all your money. You know,

478
00:24:03,160 --> 00:24:05,480
your inventory system is probably the least of your worries

479
00:24:05,559 --> 00:24:09,880
right now. But with AI driven stuff, where you are

480
00:24:09,880 --> 00:24:12,599
giving it the intent, you actually don't know what code

481
00:24:12,599 --> 00:24:15,519
is running underneath, and so there's a huge gap, much more,

482
00:24:15,759 --> 00:24:19,680
much more of a significant gap between your intent and

483
00:24:20,240 --> 00:24:22,319
what actually comes out of the other side. And that's

484
00:24:22,720 --> 00:24:24,759
that's something that we probably and then need to think.

485
00:24:24,880 --> 00:24:29,359
Speaker 1: And the nondeterministic nature of these agents means that you know,

486
00:24:29,559 --> 00:24:33,680
you could express your intent once on a Monday and

487
00:24:33,839 --> 00:24:36,559
express that same intent on Tuesday, and you're two completely

488
00:24:36,640 --> 00:24:39,079
different results and one of them could be absolutely wrong.

489
00:24:39,319 --> 00:24:41,039
Speaker 3: That's yeah, that's exactly right, all right.

490
00:24:41,279 --> 00:24:45,240
Speaker 4: I've run two prompts simultaneously and gotten two different results

491
00:24:45,240 --> 00:24:47,640
back from the same prom Like, you don't have to

492
00:24:47,680 --> 00:24:49,799
wait milk, It'll give you something ever time.

493
00:24:50,319 --> 00:24:52,599
Speaker 3: So if you show somebody a programmer a line of

494
00:24:52,640 --> 00:24:54,519
code and say what does this do? They will be

495
00:24:54,559 --> 00:24:56,519
able to tell you if you show them a prompt,

496
00:24:56,599 --> 00:24:58,920
a single line prompt and say what does this do?

497
00:24:59,480 --> 00:25:02,519
There's no to know. You can guess. You know, the

498
00:25:02,920 --> 00:25:07,319
tools are getting better and a little bit more deterministic,

499
00:25:07,359 --> 00:25:09,880
but at some point, you know, especially when you're asking

500
00:25:09,880 --> 00:25:12,319
for large pieces of work, at some point you really

501
00:25:12,359 --> 00:25:13,759
just don't know what's going to come out.

502
00:25:13,920 --> 00:25:16,319
Speaker 4: Right, So is this all about testing?

503
00:25:16,359 --> 00:25:16,519
Speaker 3: Then?

504
00:25:16,640 --> 00:25:18,200
Speaker 4: Like, is that really the thing we've got to get

505
00:25:18,200 --> 00:25:18,599
better at.

506
00:25:19,000 --> 00:25:21,200
Speaker 3: I mean, that's that's definitely a large part of it.

507
00:25:21,680 --> 00:25:25,240
But there's only so much you can really do with

508
00:25:25,240 --> 00:25:29,839
with tests, I mean, especially especially asking for large pieces

509
00:25:29,839 --> 00:25:33,039
of code, so that there's kind of a sliding scale

510
00:25:33,240 --> 00:25:37,319
of you know how much you're asking for, asking an

511
00:25:37,400 --> 00:25:41,880
LLM for, or asking a tool for, and the know

512
00:25:41,920 --> 00:25:46,960
how close to your desired outcome it's going to get.

513
00:25:47,160 --> 00:25:49,160
If you ask for a single line of code that

514
00:25:49,200 --> 00:25:52,000
does this, it's very very likely that that's going to

515
00:25:52,039 --> 00:25:55,119
be correct. If you ask for a function, depends on

516
00:25:55,160 --> 00:25:57,680
the function, but pretty likely that you're going to get

517
00:25:57,680 --> 00:26:00,000
a good result as long as you've defined it correctly

518
00:26:00,079 --> 00:26:01,640
and you've given it a good prompt and it's got

519
00:26:01,680 --> 00:26:04,559
some good context. But if you ask for an entire application,

520
00:26:05,240 --> 00:26:07,920
you know, even if it's a relatively small one, you're

521
00:26:07,960 --> 00:26:10,039
probably going to have to iterate on that a handful

522
00:26:10,079 --> 00:26:10,440
of time.

523
00:26:10,839 --> 00:26:14,839
Speaker 1: So I'm much more comfortable iterating than I am just

524
00:26:15,000 --> 00:26:17,079
you know, giving. And I didn't used to think that,

525
00:26:17,920 --> 00:26:20,920
especially before I even started with this stuff, sitting down

526
00:26:20,920 --> 00:26:23,440
with Scott got three at a conference somewhere and we

527
00:26:23,440 --> 00:26:26,519
were both in agreement that just you know, use your imagination.

528
00:26:26,640 --> 00:26:29,200
It's so big, just think big and give it this great,

529
00:26:29,279 --> 00:26:32,400
big prompt, and you know, if it doesn't work, it

530
00:26:32,440 --> 00:26:34,640
doesn't work, you just try again. And I don't think

531
00:26:34,680 --> 00:26:38,640
that anymore. I think small iterations is much better, especially

532
00:26:38,680 --> 00:26:42,000
because you can kind of track the progress and test things,

533
00:26:42,519 --> 00:26:44,920
you know, and if something doesn't work, you can say no, no, no, no,

534
00:26:45,000 --> 00:26:48,400
that was wrong. Yeah that's not what I meant. Erase

535
00:26:48,480 --> 00:26:49,599
that and try again.

536
00:26:49,799 --> 00:26:53,279
Speaker 3: Yeah. That's how I'm comfortable doing it. And that means

537
00:26:53,279 --> 00:26:56,119
that all of your existing testing strategies, you know, TDD

538
00:26:56,279 --> 00:26:57,880
and stuff like that, you can still kind of do

539
00:26:57,960 --> 00:27:00,559
that if you if you can give at an entry

540
00:27:00,559 --> 00:27:04,519
point and an expected result. So here is a function header,

541
00:27:05,599 --> 00:27:08,200
Go implement that function for me, and I can write

542
00:27:08,240 --> 00:27:10,279
some tests around that to proof that that works. I

543
00:27:10,279 --> 00:27:12,200
can even get, you know, get the tools to help

544
00:27:12,200 --> 00:27:13,920
me write those tests. I can get the tools to

545
00:27:13,960 --> 00:27:16,000
help you look for edge cases I hadn't thought of.

546
00:27:16,559 --> 00:27:19,160
But yeah, if you're asking for a web app to

547
00:27:19,200 --> 00:27:21,559
do it to do X thing, then you don't know

548
00:27:21,599 --> 00:27:23,680
what shape that code is going to take, and so

549
00:27:23,720 --> 00:27:26,839
it's a little hard to write tests around that. At least,

550
00:27:27,440 --> 00:27:30,039
you know, very specific tests. You could probably write some

551
00:27:30,119 --> 00:27:33,920
broad functional tests, I guess, but even then they've got

552
00:27:33,960 --> 00:27:35,759
to match the shape of the code that comes out.

553
00:27:36,119 --> 00:27:39,400
Speaker 4: The token economy actually encourages practice. I mean the problem

554
00:27:39,400 --> 00:27:41,319
with ready the mother of all prompts. It thinks the

555
00:27:41,359 --> 00:27:44,640
mother of all tokens, and then it's wrong and you've

556
00:27:44,640 --> 00:27:45,720
got to do it again.

557
00:27:46,039 --> 00:27:49,279
Speaker 3: Yeah a little bit. Yeah, I mean behind the scenes,

558
00:27:50,839 --> 00:27:53,480
and this is not how you're charged necessarily, but behind

559
00:27:53,519 --> 00:27:56,200
the scenes there's usually a lot of iteration going on anyway,

560
00:27:56,599 --> 00:27:58,480
because it's very difficult to give it the mother of

561
00:27:58,519 --> 00:28:02,079
all prompts and then say, okay, go implement those thirty

562
00:28:02,079 --> 00:28:05,440
five files in one in one cycle. I mean, the

563
00:28:05,839 --> 00:28:09,279
context window even if it's luge enough, it's you know,

564
00:28:09,519 --> 00:28:11,599
you lose fidelity. I guess once it.

565
00:28:11,559 --> 00:28:13,839
Speaker 4: Gets reminds me of the guy who writes a giant

566
00:28:13,880 --> 00:28:16,400
stored procedure that I had to swat with a newspaper. Bad,

567
00:28:16,720 --> 00:28:21,799
don't it's not good? Like I feel like you're taking

568
00:28:21,799 --> 00:28:24,640
the architect's responsibility here to do a decomposition of the

569
00:28:24,640 --> 00:28:27,200
problem spaced, break it down a series of steps, and

570
00:28:27,200 --> 00:28:30,200
then feed it to the machine to execute each piece

571
00:28:30,200 --> 00:28:30,559
in turn.

572
00:28:30,680 --> 00:28:34,880
Speaker 1: And there's there's a there's a danger here that you

573
00:28:34,920 --> 00:28:38,720
don't pay. You know, you're so eager to finish the

574
00:28:38,759 --> 00:28:41,319
feature and get it working and check it in that

575
00:28:41,400 --> 00:28:45,200
you don't check it out. You don't understand what it did.

576
00:28:45,720 --> 00:28:49,960
You didn't read the three through the code, and then

577
00:28:50,119 --> 00:28:52,519
so you're you're trying to figure it out because there's

578
00:28:52,519 --> 00:28:54,680
a bug or something like that that you have to fix,

579
00:28:54,680 --> 00:28:56,279
and you think, oh, I'll just look through the code

580
00:28:56,279 --> 00:28:59,039
and see what it is. What's that. Oh I didn't

581
00:28:59,039 --> 00:29:02,880
write that, Well, no, you didn't. Your agent wrote that. Oh,

582
00:29:03,000 --> 00:29:05,400
now I got to figure that out at the wrong time.

583
00:29:05,680 --> 00:29:08,000
You should. You should know what it does when it's.

584
00:29:07,839 --> 00:29:10,440
Speaker 3: Written and if it if it appears correct, like it

585
00:29:10,480 --> 00:29:13,759
seems to be doing the right thing, then that's great,

586
00:29:13,799 --> 00:29:19,680
but how how correct is the code underneath? Anyway, you

587
00:29:19,880 --> 00:29:22,119
are probably not looking at all the educases when you're

588
00:29:22,160 --> 00:29:24,559
just clicking through. It's kind of the old school QA

589
00:29:24,640 --> 00:29:27,240
where somebody had a spreadsheet of you know, here are

590
00:29:27,240 --> 00:29:29,680
the things that it should do, and they just click

591
00:29:29,680 --> 00:29:32,519
on the buttons and say, yep, that's great, and then yeah.

592
00:29:32,200 --> 00:29:34,200
Speaker 1: And I like to be engaged in the process, Like

593
00:29:34,279 --> 00:29:37,200
I like thinking about the architecture and what I need

594
00:29:37,240 --> 00:29:39,599
to do to implement a feature. Oh, this is going

595
00:29:39,680 --> 00:29:41,240
to have to go there, and then this guy's got

596
00:29:41,279 --> 00:29:43,200
to reference that, and then you're going to throw it

597
00:29:43,240 --> 00:29:45,480
over the wall to that guy and blah blah blah.

598
00:29:45,559 --> 00:29:48,240
You know, I kind of really like that because it

599
00:29:48,319 --> 00:29:51,880
keeps me engaged in the in the software itself. It'd

600
00:29:51,880 --> 00:29:54,319
be boring for me if I just handed all that

601
00:29:54,480 --> 00:29:57,000
over to an agent. So I like, there's a nice

602
00:29:57,039 --> 00:30:00,319
balance there that I've gotten myself into the works.

603
00:30:00,359 --> 00:30:03,519
Speaker 3: Well, yeah, I agree. I work very similarly. So I

604
00:30:03,559 --> 00:30:05,880
have a right in front of me on the screen.

605
00:30:05,880 --> 00:30:08,359
Actually I have a little time zone help. I think

606
00:30:08,799 --> 00:30:11,559
I'm in Australia obviously, but a lot of the team,

607
00:30:11,680 --> 00:30:15,079
especially the team now that it's grown a bit scattered

608
00:30:15,400 --> 00:30:18,960
kind of close by time zone wise but not exactly right.

609
00:30:19,279 --> 00:30:21,799
And yes, there are some really good time zone tools

610
00:30:22,000 --> 00:30:23,839
on the internet, but I just wanted one where I

611
00:30:23,839 --> 00:30:26,480
could glance at it and say, for these time zones,

612
00:30:26,880 --> 00:30:30,119
this is what time is right now. That was largely

613
00:30:30,160 --> 00:30:34,440
a one shot using the Copilot CLI, but I still

614
00:30:34,440 --> 00:30:37,119
iterated on it four or five times to say, oh,

615
00:30:37,160 --> 00:30:39,400
this is great, but can you let me color code

616
00:30:39,400 --> 00:30:41,640
these things? And can you change it so these things

617
00:30:41,680 --> 00:30:45,359
line up instead? And so that's a relatively large piece

618
00:30:45,400 --> 00:30:47,039
to start off with. But then once I have that

619
00:30:47,160 --> 00:30:48,880
in front of me, I'm like, all right, here's the

620
00:30:49,240 --> 00:30:50,799
here are the new things that I want, And what

621
00:30:50,880 --> 00:30:54,920
did you actually do to implement that? Yeah, but this

622
00:30:55,119 --> 00:30:57,599
is also this is like a little toy that I

623
00:30:57,640 --> 00:30:59,599
have right in front of me. This is not a

624
00:30:59,680 --> 00:31:02,319
super personal piece of software, is what it is? You

625
00:31:02,400 --> 00:31:04,200
literally built a thing for you. Yeah.

626
00:31:04,279 --> 00:31:06,519
Speaker 1: I have so many of those little tools that and

627
00:31:06,599 --> 00:31:08,880
I mentioned them from time to time, and I almost

628
00:31:08,920 --> 00:31:10,599
don't want to mention them because I don't want people

629
00:31:10,640 --> 00:31:12,839
to think I just sit around writing dumb tools all

630
00:31:12,880 --> 00:31:15,640
the time, Like I have a professionalist artware development trives me.

631
00:31:16,559 --> 00:31:19,279
Speaker 3: Yeah, I have a friend who I'm not going to

632
00:31:19,319 --> 00:31:22,599
name them, but I have a friend who their daughter

633
00:31:22,920 --> 00:31:26,319
was going to look after their kid for a few days,

634
00:31:26,880 --> 00:31:30,000
and they rade it. They wrote a daughter as an adult.

635
00:31:30,279 --> 00:31:30,720
Speaker 1: I got it.

636
00:31:31,880 --> 00:31:34,559
Speaker 3: But they wrote a several page document about all the

637
00:31:34,559 --> 00:31:37,119
stuff in the house and what the kid does, and

638
00:31:37,160 --> 00:31:39,039
what the kid needs, and all the things that they

639
00:31:39,119 --> 00:31:41,359
need for school and all that, all that kind of stuff.

640
00:31:41,720 --> 00:31:44,519
But of course, you know this person is not going

641
00:31:44,559 --> 00:31:48,640
to read that document. So they vibe coded up a

642
00:31:48,720 --> 00:31:52,000
little like chat pot, and you can ask anything you

643
00:31:52,039 --> 00:31:54,799
want and it pulls the information just using a pretty

644
00:31:54,799 --> 00:31:58,440
basic rag and then we'll answer that questions. And it

645
00:31:58,480 --> 00:32:02,119
took half an hour. Right. It's a fun, little, very

646
00:32:02,160 --> 00:32:06,960
specific tool for that person to say, hey, here's here's

647
00:32:06,960 --> 00:32:09,920
a solution to the problem I'm inevitably going to have.

648
00:32:10,759 --> 00:32:14,680
That's great. Yeah, those little tools a fantastic to be

649
00:32:14,759 --> 00:32:17,839
able to do them even if you don't code. I

650
00:32:17,839 --> 00:32:20,839
mean that's a you know, if you if you can't

651
00:32:20,880 --> 00:32:23,680
look at that code and see exactly what it's doing.

652
00:32:23,880 --> 00:32:26,559
Speaker 1: You know, we used to talk about expert systems back

653
00:32:26,559 --> 00:32:30,680
in the eighties, right, that was you know, a more

654
00:32:30,759 --> 00:32:33,640
linearly coded thing that you could ask questions and it

655
00:32:33,720 --> 00:32:36,880
had the knowledge of the business or the whatever, and

656
00:32:36,920 --> 00:32:39,160
you could ask it questions and would tell you. I

657
00:32:39,200 --> 00:32:41,319
mean that now this has sort of come to reality,

658
00:32:41,599 --> 00:32:45,599
and I like the fact that you could take all

659
00:32:45,640 --> 00:32:48,880
the business knowledge that you have. Or let's say let's

660
00:32:48,880 --> 00:32:51,440
say somebody starts a small business and it grows, right,

661
00:32:51,480 --> 00:32:54,799
and this person has all the knowledge and everybody's always

662
00:32:54,799 --> 00:32:56,839
coming to them for the advice, and then how does

663
00:32:56,880 --> 00:32:59,599
this work? And all that stuff, let's be perfect for

664
00:32:59,640 --> 00:33:00,960
a little RAG application.

665
00:33:01,200 --> 00:33:02,000
Speaker 3: Yeah.

666
00:33:02,400 --> 00:33:05,039
Speaker 1: Yeah, it's like a brain dump into a chat.

667
00:33:05,079 --> 00:33:08,680
Speaker 3: But so the thing is these these little, you know,

668
00:33:09,279 --> 00:33:12,799
super personal little tools that you have. They're one thing

669
00:33:13,039 --> 00:33:16,640
and writing tests and having you know, CI around that

670
00:33:16,880 --> 00:33:19,319
it's not you know, super important. I mean, this is

671
00:33:19,359 --> 00:33:22,279
a little tool that you're running. But I've been around

672
00:33:22,319 --> 00:33:25,880
long enough to know that sometimes those little tools, you know,

673
00:33:25,880 --> 00:33:28,079
if you do them at work, get seen by a

674
00:33:28,160 --> 00:33:32,440
manager and then suddenly your machine is getting shipped to problem.

675
00:33:32,960 --> 00:33:35,240
So then like, if this has been vibe coded, you

676
00:33:35,359 --> 00:33:37,160
haven't seen any of the code. How do you get

677
00:33:37,200 --> 00:33:39,799
from that to something that other people can work on

678
00:33:39,960 --> 00:33:43,279
and that you can trust and that you know, you know,

679
00:33:43,359 --> 00:33:46,119
you've touched the edge cases. You know that you know

680
00:33:46,200 --> 00:33:51,079
it's it's secure, it's reliable, and that is It's not

681
00:33:51,160 --> 00:33:54,440
a new problem, but it is a problem. We can

682
00:33:54,480 --> 00:33:56,200
get to a lot faster than we used.

683
00:33:56,079 --> 00:33:58,200
Speaker 4: To a much more of it. This used to be

684
00:33:58,240 --> 00:34:00,559
the access guy who got out of hand, right, and

685
00:34:00,599 --> 00:34:02,920
suddenly they want to deploy it to one thousand users.

686
00:34:03,240 --> 00:34:05,640
Speaker 3: I mean one of the first jobs I had there

687
00:34:05,640 --> 00:34:07,599
was a four DL I don't know if you ever

688
00:34:07,720 --> 00:34:11,000
touched that. It was basically yeah, yeah, so a four

689
00:34:11,079 --> 00:34:13,599
DL system that was running in production.

690
00:34:13,400 --> 00:34:14,639
Speaker 1: Very high level language.

691
00:34:14,760 --> 00:34:17,400
Speaker 3: Yeah. One person knew how to use it to back

692
00:34:17,480 --> 00:34:21,000
them back to your on the legacy software. And when

693
00:34:21,000 --> 00:34:23,639
that person left, it's a black box, like you don't

694
00:34:23,639 --> 00:34:26,719
you don't know what's in this thing. Yeah. So it's

695
00:34:26,760 --> 00:34:28,679
not a new problem, but we can do it so

696
00:34:28,800 --> 00:34:31,760
much faster. Now we can get a running application, you know,

697
00:34:31,960 --> 00:34:33,840
in a minute or two. Yeah, really we can.

698
00:34:34,119 --> 00:34:35,760
Speaker 4: And Gami and I we did RUP for one moment

699
00:34:35,800 --> 00:34:42,079
for these very important messages. Eric back, it's done a

700
00:34:42,199 --> 00:34:44,639
Rocks and Richard Campbell. That's Carl Franklin. Hey, Hey, Hey,

701
00:34:44,840 --> 00:34:47,519
hanging with our z buddy. Damn me and Brady talking

702
00:34:47,519 --> 00:34:49,800
a little bit about we'll trying to make good software

703
00:34:49,800 --> 00:34:53,239
out of all this. Like this sounds like the same

704
00:34:53,280 --> 00:34:56,159
thing that I did for access for apps dB STAPs

705
00:34:56,199 --> 00:34:57,639
are four that this sounds like a job for a

706
00:34:57,679 --> 00:34:59,960
consultant Like this is when you call in an expert

707
00:35:00,239 --> 00:35:02,440
to go through what you've got here and kind of

708
00:35:02,840 --> 00:35:05,800
make the assessments around security and reliability, all of those

709
00:35:05,840 --> 00:35:06,480
sorts of things.

710
00:35:06,639 --> 00:35:10,679
Speaker 3: Yeah, I think so. I don't think there's a need

711
00:35:10,760 --> 00:35:13,320
to anything necessarily wrong with the code that comes out.

712
00:35:13,360 --> 00:35:16,440
It's just once it gets to a point where people

713
00:35:16,480 --> 00:35:19,400
trust it and need to run it in production and

714
00:35:19,440 --> 00:35:21,880
more people need to add to it, then suddenly you've

715
00:35:21,880 --> 00:35:25,280
got to start putting some rigor around that code again.

716
00:35:25,639 --> 00:35:31,159
So having you know, the pipelines that you used to

717
00:35:31,159 --> 00:35:35,559
have when you hand codeed everything that's super important. And

718
00:35:35,599 --> 00:35:40,199
then yeah, the testing around it, code coverage, things like that.

719
00:35:40,519 --> 00:35:43,800
The good news, I guess is that there's all these

720
00:35:43,840 --> 00:35:47,440
generative AI systems give us opportunities to help with that

721
00:35:47,519 --> 00:35:52,599
process as well. I was probably for a little while

722
00:35:52,599 --> 00:35:54,840
one of the few people who actually didn't mind hand

723
00:35:54,840 --> 00:35:59,159
coding GitHub Actions. You're it. You're the only one. Everybody

724
00:35:59,159 --> 00:36:01,880
else got a piece of Yeah, but I don't do

725
00:36:01,920 --> 00:36:04,400
that anymore. Really, I mean it's very very easy to

726
00:36:04,480 --> 00:36:06,559
ask any of these tools, hey, can you write a

727
00:36:06,559 --> 00:36:09,119
a action to do this and and check it? And

728
00:36:09,559 --> 00:36:11,639
you know, you don't have to write Yamel anymore if

729
00:36:11,639 --> 00:36:13,719
you don't really want to do you.

730
00:36:13,679 --> 00:36:15,880
Speaker 1: Have to read it though what he wants to. That's

731
00:36:15,880 --> 00:36:18,199
my problem. I don't want to read it. I don't

732
00:36:18,199 --> 00:36:20,400
want to write it. I don't even want to see it.

733
00:36:20,400 --> 00:36:23,039
Speaker 3: It's so readable though, Yeah, of all the of all

734
00:36:23,079 --> 00:36:25,800
the formats, of all the formats, Yeah, we're not reading

735
00:36:26,239 --> 00:36:30,599
at least so, but that means that, you know, if

736
00:36:30,599 --> 00:36:32,559
you do want to create a hey, I want to

737
00:36:32,599 --> 00:36:35,199
make sure I can build this and run the tests,

738
00:36:35,840 --> 00:36:39,320
that's a pretty quick prompt to say, get me a

739
00:36:39,320 --> 00:36:41,280
gi hub action workflow to do this.

740
00:36:42,000 --> 00:36:43,559
Speaker 4: But if it's all about the prompt, I mean, don't

741
00:36:43,599 --> 00:36:45,320
you just have to say take this application, make it

742
00:36:45,360 --> 00:36:46,280
secure and maintainable.

743
00:36:46,320 --> 00:36:51,079
Speaker 3: Does I mean you'd get something out? I'm sure I

744
00:36:52,480 --> 00:36:56,440
think what happen, what that actually would be is a

745
00:36:56,800 --> 00:36:59,519
bit of an issue. But I mean, even even within GitHub,

746
00:36:59,559 --> 00:37:02,360
if you don't don't actively do that work. We've been

747
00:37:02,519 --> 00:37:05,840
using gen Ai inside get Up to do a bunch

748
00:37:05,880 --> 00:37:10,679
of things like dependent but so that's been around for

749
00:37:10,719 --> 00:37:13,960
a while. It just looks at your dependencies and tells

750
00:37:14,000 --> 00:37:17,960
you whether there's any that have security vulnerabilities and it

751
00:37:17,960 --> 00:37:21,519
will alert you to right. But now we'll also give

752
00:37:21,519 --> 00:37:24,039
you a pr to change that. It's kind of got

753
00:37:24,079 --> 00:37:28,440
a little bit better in that now because because sometimes

754
00:37:28,559 --> 00:37:31,800
upgrading the dependency doesn't isn't just a one for one replacement.

755
00:37:31,840 --> 00:37:34,320
You've got to actually code. Sure, go and find the

756
00:37:34,360 --> 00:37:37,119
code that you need to change and make suggestions to say,

757
00:37:37,320 --> 00:37:41,360
here is your here's a suggested code change that goes

758
00:37:41,440 --> 00:37:43,320
with that, you know, dependency update.

759
00:37:43,960 --> 00:37:49,920
Speaker 1: Sometimes those dependencies are interdependent, so changing one requires that

760
00:37:49,960 --> 00:37:50,840
you change others.

761
00:37:51,400 --> 00:37:53,880
Speaker 3: And even I mean there's other things in the whole

762
00:37:53,920 --> 00:37:56,480
get Up Advanced Security Suite where it all look for

763
00:37:56,880 --> 00:37:59,679
potential issues in code and give you code suggestions to

764
00:37:59,760 --> 00:38:03,000
update them. And that's using Jennet in the back. So

765
00:38:03,039 --> 00:38:06,280
that's using copilot and that kind of gives you a

766
00:38:06,280 --> 00:38:08,320
little bit more rigor around that code that you're putting

767
00:38:08,360 --> 00:38:13,039
in to product code reviews is another one, so you know,

768
00:38:13,519 --> 00:38:16,079
assign a PR to Copilot and it will do a

769
00:38:16,079 --> 00:38:18,119
code review for you. And there's there's plenty of other

770
00:38:18,159 --> 00:38:22,239
tools that do that as well. We'll look at get

771
00:38:22,320 --> 00:38:25,280
up prs and yeah, and do that work as well,

772
00:38:25,320 --> 00:38:26,679
like third third party tools.

773
00:38:27,000 --> 00:38:29,119
Speaker 4: I have to wonder how far away we are from

774
00:38:29,199 --> 00:38:33,159
having a really good code review bot like that is

775
00:38:33,280 --> 00:38:34,920
more thorough than any human.

776
00:38:35,280 --> 00:38:40,880
Speaker 3: Yeah, it's interesting. There's there's I mean that's also dependent

777
00:38:40,960 --> 00:38:45,119
on your company's standards and what you care about with

778
00:38:45,119 --> 00:38:46,760
a code review as well, so it is a little

779
00:38:46,760 --> 00:38:51,159
bit personal. I know with Copilot code review, you can

780
00:38:51,199 --> 00:38:53,679
set you can give it custom instructions to say, hey,

781
00:38:53,679 --> 00:38:56,440
when you're doing a code review, here is some additional

782
00:38:56,480 --> 00:39:00,519
context I want to give you. And pretty recently I

783
00:39:00,519 --> 00:39:03,960
think we change that so you can give custom instructions

784
00:39:04,000 --> 00:39:06,880
that are different for when you're writing code and when

785
00:39:06,920 --> 00:39:09,599
you're reviewing code, and when you're you know, doing the

786
00:39:10,039 --> 00:39:13,239
hands off coding agent. So you can be a little

787
00:39:13,280 --> 00:39:15,559
bit more specific about what stuff you care about. So

788
00:39:15,920 --> 00:39:18,079
you could have some custom instructions in there to say,

789
00:39:18,960 --> 00:39:20,960
every time you do a code review, make sure that

790
00:39:21,000 --> 00:39:24,079
all of the code has testing around it in the

791
00:39:24,159 --> 00:39:25,360
code coveration.

792
00:39:25,320 --> 00:39:28,039
Speaker 4: And all criticism wrapped in a compliment sandwich.

793
00:39:30,199 --> 00:39:33,039
Speaker 3: I mean you're absolutely good? Yeah, I mean you really?

794
00:39:33,480 --> 00:39:35,960
Speaker 4: You talk about the challenge for me is someone who's

795
00:39:35,960 --> 00:39:37,400
done a lot of code review bit around a cloud.

796
00:39:37,400 --> 00:39:41,039
Code reviewers, like the best reviewers, often are kind of

797
00:39:41,079 --> 00:39:45,159
a difficult personality because they're very detail oriented, right, and

798
00:39:45,239 --> 00:39:48,079
so actually having to present the results in a form

799
00:39:48,159 --> 00:39:51,599
that is palatable to the reviewee is important too. Like

800
00:39:52,039 --> 00:39:57,159
somewhere's the LM with its own wavering obsequiousness like this

801
00:39:57,280 --> 00:40:02,880
might be meticulous and report like yeah, like what more

802
00:40:02,920 --> 00:40:04,480
could you ask for a code review?

803
00:40:04,960 --> 00:40:07,400
Speaker 1: Yeah, you're talking about like the code review people. I

804
00:40:07,400 --> 00:40:11,599
imagine Olton Brown watching you cook, you know, and giving commentary.

805
00:40:12,239 --> 00:40:13,079
Why didn't you do that?

806
00:40:13,519 --> 00:40:16,320
Speaker 4: I would I would wet myself that now was standing

807
00:40:16,360 --> 00:40:16,880
on my shoulder.

808
00:40:16,920 --> 00:40:19,360
Speaker 3: I was cooking, like, there's no way, no way.

809
00:40:19,440 --> 00:40:20,920
Speaker 1: Why didn't you temper those eggs?

810
00:40:21,719 --> 00:40:23,719
Speaker 3: I mean, it's the matter with you, I asked. I

811
00:40:23,719 --> 00:40:27,199
asked GIPT the other day. This was a comedy thing.

812
00:40:27,400 --> 00:40:29,920
I asked PT the other day to abuse me when

813
00:40:29,960 --> 00:40:33,760
I gave it an error or something and it refused.

814
00:40:33,760 --> 00:40:37,360
It wouldn't it wouldn't do it. Yeah, we did a

815
00:40:37,440 --> 00:40:39,159
kind of a middle ground where it told me the

816
00:40:39,199 --> 00:40:42,360
code was terrible, but it wouldn't it wouldn't abuse me.

817
00:40:42,519 --> 00:40:44,599
So I don't know, you might get.

818
00:40:44,440 --> 00:40:47,760
Speaker 4: Billy Hollis in there because people abuse the software, all

819
00:40:47,840 --> 00:40:48,079
of them.

820
00:40:48,159 --> 00:40:50,719
Speaker 1: Yeah, it's like I have Billy Hollis program that model.

821
00:40:50,800 --> 00:40:55,760
Speaker 3: You must suck as a coder. Yeah, I guess he

822
00:40:55,760 --> 00:40:58,800
could do that. You could even like have a look

823
00:40:58,800 --> 00:41:01,840
at who committed that and then look them up in

824
00:41:01,840 --> 00:41:05,079
a database to see how they prefer their feedback.

825
00:41:05,920 --> 00:41:07,119
Speaker 4: Yeah, it could be tailored.

826
00:41:07,199 --> 00:41:11,519
Speaker 1: I have a tangent here speaking of non secuiturs. Do

827
00:41:11,559 --> 00:41:18,199
you ever see a possible day when GitHub co pilot cli,

828
00:41:18,360 --> 00:41:23,400
for example, could work against a local inference engine like

829
00:41:23,519 --> 00:41:23,960
or Lama.

830
00:41:24,360 --> 00:41:29,960
Speaker 3: So I think you can do that with other tools

831
00:41:29,960 --> 00:41:34,920
in VS code at the moment, I don't. I mean, yes,

832
00:41:35,000 --> 00:41:38,239
it's the short answer. I can see that possibility for sure.

833
00:41:39,239 --> 00:41:41,719
One of the things that I know GitHub has been

834
00:41:41,719 --> 00:41:45,039
doing lately is trying to give you a bit more choice,

835
00:41:45,079 --> 00:41:49,039
even if it's not inside the gitub ecosystem. So your

836
00:41:49,079 --> 00:41:56,000
Copilot subscription can now include you know, Claude and Codex,

837
00:41:56,039 --> 00:41:57,719
And I think that's another one.

838
00:41:57,880 --> 00:41:59,920
Speaker 1: Great And so if you can reach out to CLAW,

839
00:42:00,159 --> 00:42:02,199
it could reach out to a LAMA just as easily.

840
00:42:02,239 --> 00:42:05,000
I mean, the real secret sauce there is knowing about

841
00:42:05,000 --> 00:42:07,920
your local repo and you know, I can do my

842
00:42:08,000 --> 00:42:09,559
own check ins and all that stuff.

843
00:42:09,559 --> 00:42:13,760
Speaker 3: But yeah, I mean you can. You can definitely call

844
00:42:13,840 --> 00:42:17,559
out to your own lms that are hosted in Azure,

845
00:42:17,960 --> 00:42:20,199
so you can say, I am I want to you know,

846
00:42:20,559 --> 00:42:26,760
host a five three you know, language model in foundry

847
00:42:26,920 --> 00:42:29,000
and then use that as my cop.

848
00:42:29,119 --> 00:42:31,840
Speaker 1: It's got to be it's got to be a Microsoft URL,

849
00:42:32,000 --> 00:42:35,239
not a local r L. Yeah, because obviously it's a

850
00:42:35,280 --> 00:42:36,320
Microsoft thing.

851
00:42:36,400 --> 00:42:39,159
Speaker 3: And yeah, I also I'm not one hundred percent sure

852
00:42:39,159 --> 00:42:41,239
when the show goes out, and I don't know everything

853
00:42:41,239 --> 00:42:43,239
about what's going on in engineering.

854
00:42:42,800 --> 00:42:45,400
Speaker 4: So I guess just like moving. So it's coming out

855
00:42:45,440 --> 00:42:48,880
next week, we're pretty close to It's basically, if you're

856
00:42:48,920 --> 00:42:52,519
invoking into a foundry, you have access to everything there,

857
00:42:52,679 --> 00:42:54,880
deep seeks there, like you name it right.

858
00:42:54,960 --> 00:42:56,480
Speaker 3: Yeah, absolutely, Well.

859
00:42:56,519 --> 00:43:00,280
Speaker 1: The issue I'm getting at is that we see a

860
00:43:00,320 --> 00:43:04,840
future where companies want my customers won't allow me to

861
00:43:04,960 --> 00:43:09,239
use a tool that shares its data across the internet

862
00:43:09,320 --> 00:43:14,800
in any way because they're so concerned about privacy and

863
00:43:14,920 --> 00:43:17,119
digital rights and all that stuff that they don't want

864
00:43:17,159 --> 00:43:21,800
their database schemas and their code, all that stuff going out.

865
00:43:21,880 --> 00:43:24,440
So we're going to have to use I'm going to

866
00:43:24,519 --> 00:43:27,000
have to use In one case, I have a customer

867
00:43:27,000 --> 00:43:29,320
coming up here that's going to demand it. It's already

868
00:43:29,320 --> 00:43:32,920
in the contract. So unless I have access to a

869
00:43:32,960 --> 00:43:37,239
local LLM, I can't use an agent.

870
00:43:37,519 --> 00:43:40,199
Speaker 3: I can. Yeah, I can absolutely understand that that as

871
00:43:40,239 --> 00:43:45,480
a requirement for organizations I think, and I'm biased because

872
00:43:45,519 --> 00:43:48,159
I speak to GitHub customers, but I often get the

873
00:43:48,239 --> 00:43:51,280
question about I need to run my LM locally because

874
00:43:51,280 --> 00:43:55,519
I don't want to stand to copilot. And I asked

875
00:43:55,559 --> 00:43:59,159
them where their code is stored. It's on GitHub, Like, well,

876
00:43:59,199 --> 00:44:03,000
then we have your code already, like we're I mean,

877
00:44:03,280 --> 00:44:07,920
if you're worried about that that boundary, it's already there.

878
00:44:07,960 --> 00:44:10,719
But I can understand, Yeah, definitely, if there's some parts

879
00:44:10,760 --> 00:44:12,960
of your code that you you do not want to

880
00:44:13,000 --> 00:44:17,800
expose outside at all, then running local models definitely works.

881
00:44:18,119 --> 00:44:20,079
I think that part of the issue is that the

882
00:44:20,280 --> 00:44:23,719
models that we tend to use by default, so the

883
00:44:23,760 --> 00:44:27,840
claudes and the code exits and the you know, the

884
00:44:27,880 --> 00:44:30,400
rest of those. They are huge things that run on

885
00:44:30,440 --> 00:44:34,559
a ones you know, in the cloud, and you know

886
00:44:35,239 --> 00:44:36,960
this show is very successful, but you don't have the

887
00:44:36,960 --> 00:44:38,480
money to run one of those in your basement.

888
00:44:38,519 --> 00:44:41,800
Speaker 1: I don't think, oh yeah, well, you know, the machine

889
00:44:41,800 --> 00:44:45,320
that I have running Olama is very fast and it

890
00:44:45,360 --> 00:44:49,920
produces results instantly, in fact, even quicker than I can

891
00:44:49,960 --> 00:44:52,760
get out of cloud. Yes, because I'm the only one

892
00:44:52,840 --> 00:44:54,360
using it.

893
00:44:54,360 --> 00:44:56,960
Speaker 3: It definitely is no longer the case that you have

894
00:44:57,039 --> 00:44:58,880
to use the cloud ones to get a good result.

895
00:44:59,079 --> 00:45:00,960
I mean, for a while, you know, you could run

896
00:45:01,000 --> 00:45:04,440
these medium language models I guess, or small language models

897
00:45:04,440 --> 00:45:06,639
on your machine and get results. But they went very good.

898
00:45:06,960 --> 00:45:09,400
These days, they're pretty good, Like you get to.

899
00:45:09,320 --> 00:45:14,199
Speaker 1: Around a thirty billion model and it's fast. Yeah, they

900
00:45:14,239 --> 00:45:15,280
do it because they got.

901
00:45:15,840 --> 00:45:20,639
Speaker 3: Nasty, stinky fast the boring part, without a doubt.

902
00:45:21,920 --> 00:45:24,039
Speaker 4: But yeah, it does speak to a future of a

903
00:45:24,199 --> 00:45:28,239
programming team, you know, ten fifteen people working together with

904
00:45:28,400 --> 00:45:31,519
a rack of their own compute just from the token

905
00:45:31,639 --> 00:45:34,159
expense perspective, like if you're really going to go grind

906
00:45:34,239 --> 00:45:37,880
it on this stuff. This whole excuse of I didn't

907
00:45:37,920 --> 00:45:40,119
get my future finished because I ran out of tokens.

908
00:45:40,239 --> 00:45:43,000
Speaker 3: That's got to end. There's got to be our solution

909
00:45:43,079 --> 00:45:46,480
to that one, right, Yeah, and that that is actually

910
00:45:46,480 --> 00:45:51,400
one of the selling points of of these tools that

911
00:45:52,440 --> 00:45:54,599
GitHub as well as Microsoft as well as a bunch

912
00:45:54,599 --> 00:45:56,400
of other companies have been trying to push. Is this

913
00:45:56,519 --> 00:46:00,000
idea of abundance where you can you can fire off

914
00:46:00,039 --> 00:46:02,840
a problem to ten different agents and then see what

915
00:46:02,880 --> 00:46:06,519
the best result is. But you're right, that does cost tokens. Yeah,

916
00:46:06,960 --> 00:46:10,199
and yeah, I mentioned before that you don't necessarily get

917
00:46:10,199 --> 00:46:13,239
built by the number of you know, cycles that you

918
00:46:13,320 --> 00:46:16,880
go through, and that's true, but you're still using those

919
00:46:16,960 --> 00:46:20,519
those tokens behind the Somebody is still using those those

920
00:46:20,519 --> 00:46:21,719
cycles behind the scenes.

921
00:46:22,320 --> 00:46:24,960
Speaker 4: You remind me, and I think I said it's the

922
00:46:25,000 --> 00:46:27,239
last show too. Like I come from the ol app

923
00:46:27,280 --> 00:46:29,840
world where we used to build these huge cubes and

924
00:46:29,840 --> 00:46:32,039
do an ounce on them. And back then there were

925
00:46:32,079 --> 00:46:35,440
several different data mining strategies, but all of them are competationly

926
00:46:35,840 --> 00:46:38,800
bit complex enough that you would literally spend weeks figure

927
00:46:38,840 --> 00:46:41,920
out which one to run, and then at some point

928
00:46:41,920 --> 00:46:43,679
in that when the cloud came along, it's like, you

929
00:46:43,679 --> 00:46:46,440
know what an easy answer is run them all and

930
00:46:46,480 --> 00:46:48,840
then have another another test to figure out which one

931
00:46:48,880 --> 00:46:50,480
was best. Yeah, you know, there was only like I

932
00:46:50,719 --> 00:46:52,360
think at one point we test there was like twenty

933
00:46:52,360 --> 00:46:54,920
two different strategies of data mining on this data sets.

934
00:46:54,920 --> 00:46:57,679
So just and you can get there with the software

935
00:46:57,679 --> 00:46:59,559
developments that I too, where it's like, yeah, there's a

936
00:46:59,559 --> 00:47:01,840
bunch of different ways to try and solve this particular problem.

937
00:47:02,000 --> 00:47:04,559
Speaker 1: Just try them all, try them all, especially getting an

938
00:47:04,559 --> 00:47:05,400
agent to help you with that.

939
00:47:05,559 --> 00:47:08,679
Speaker 3: Yeah, the fan out model of kind of like get

940
00:47:08,920 --> 00:47:11,320
five agents to try and solve it and then come

941
00:47:11,360 --> 00:47:13,079
back and see which one is the best. Yeah.

942
00:47:13,159 --> 00:47:16,360
Speaker 4: Yeah, that's crazy, man, And we're I mean right now

943
00:47:16,440 --> 00:47:19,320
where there's all this conversation about GPU constraints and COVID

944
00:47:19,360 --> 00:47:21,760
clasts and so forth, like that's clearly not what we're

945
00:47:21,800 --> 00:47:23,880
going to do at the moment, but you can see

946
00:47:23,880 --> 00:47:24,639
a world like that.

947
00:47:24,800 --> 00:47:27,880
Speaker 3: The irony is though, that to get the best results

948
00:47:27,880 --> 00:47:30,199
sometimes you have to break things down in just the

949
00:47:30,280 --> 00:47:32,440
smaller part. So I think we've mentioned this before, but

950
00:47:32,840 --> 00:47:35,280
breaking it down into the smaller tasks and then firing

951
00:47:35,320 --> 00:47:40,000
those tasks off. So the idea of you know, how

952
00:47:40,039 --> 00:47:44,000
you implement this grand feature that just use one you know,

953
00:47:44,159 --> 00:47:49,000
agent and one like back and forth cycle that's not feasible.

954
00:47:49,039 --> 00:47:50,840
You're not going to get a good result. So there's

955
00:47:50,880 --> 00:47:53,960
probably a happy medium here where you can break it

956
00:47:54,000 --> 00:47:56,079
down at a level that's going to give you a

957
00:47:56,079 --> 00:47:59,119
good result and then fire that work off and maybe

958
00:47:59,199 --> 00:48:02,480
use smaller model to do those initial pieces of work local.

959
00:48:03,159 --> 00:48:07,440
So I know that there's definitely work behind the scenes

960
00:48:07,480 --> 00:48:09,800
to do things that give you a bit more control

961
00:48:09,840 --> 00:48:12,559
over what models are used for different pieces of work.

962
00:48:12,679 --> 00:48:17,639
So you know, if you want to create a specification document,

963
00:48:17,679 --> 00:48:21,519
maybe you don't need the gigantic, huge thinking model. Maybe

964
00:48:21,559 --> 00:48:24,960
you just need a smaller one that you can cost

965
00:48:25,000 --> 00:48:27,760
a lot less money, that's quicker and iterate a bit more.

966
00:48:27,960 --> 00:48:31,000
Speaker 1: That seems like something that could be a preprocessor, right

967
00:48:31,039 --> 00:48:34,039
that could look at your prompt and determine which model

968
00:48:34,079 --> 00:48:34,559
to send it to.

969
00:48:34,800 --> 00:48:37,880
Speaker 3: Yeah, well, honestly, that's what happens these days. When you

970
00:48:37,960 --> 00:48:42,119
send something to Gemini or Claude or chat GPT. The

971
00:48:42,199 --> 00:48:44,920
first iteration really is what does this person want to

972
00:48:44,960 --> 00:48:47,239
do and where do I send that information? So when

973
00:48:47,280 --> 00:48:51,519
you're like MCP for example, which has become really really popular,

974
00:48:51,559 --> 00:48:55,159
that kind of first initial what does this person asked for?

975
00:48:55,840 --> 00:48:58,320
It's a Hey, here are the tools that you've got

976
00:48:58,719 --> 00:49:00,960
available to you, and here's what they do. And here's

977
00:49:01,000 --> 00:49:03,679
the question that the person asked, what tools do I

978
00:49:03,760 --> 00:49:06,679
need to solve that problem? And the skills Yeah, the

979
00:49:06,719 --> 00:49:09,480
skills or the whatever whatever else you want to call it.

980
00:49:09,519 --> 00:49:13,119
I guess, yeah, winning around. But yeah, that that first

981
00:49:13,199 --> 00:49:15,880
iteration can be done with quite a small model. And

982
00:49:15,920 --> 00:49:20,480
I think there's some of that that happens locally in

983
00:49:20,639 --> 00:49:23,039
VS code. So if you have a look to the

984
00:49:23,360 --> 00:49:25,920
folder structure. I think I did this a little while ago.

985
00:49:26,000 --> 00:49:30,559
There is a like a small model that sits there

986
00:49:30,559 --> 00:49:32,400
that does some of that work up front, so you

987
00:49:32,440 --> 00:49:37,320
don't necessarily have to send send that information and you

988
00:49:37,360 --> 00:49:38,199
can literally.

989
00:49:37,880 --> 00:49:41,079
Speaker 4: Do this with confidence. You know expressions too, right, It's

990
00:49:41,119 --> 00:49:43,400
like I run it through a small model, but it's

991
00:49:43,400 --> 00:49:45,280
such a known it may be a complicated request, but

992
00:49:45,360 --> 00:49:47,440
it's such a known function. It's back back a chunk

993
00:49:47,480 --> 00:49:50,079
of code with a ninety something percentile. Confiden, It's like,

994
00:49:50,239 --> 00:49:52,639
do not continue, but if you come back in sixty percent,

995
00:49:53,119 --> 00:49:55,519
all right, kick it up into a higher model and

996
00:49:55,559 --> 00:49:57,280
see if we can get to a higher a percentage.

997
00:49:57,760 --> 00:50:01,559
So you're only confusing as much computis absolutely need recognizing

998
00:50:01,599 --> 00:50:03,519
all those small models are far cheaper than by the

999
00:50:03,519 --> 00:50:04,880
time you get to the big one. And if you

1000
00:50:04,880 --> 00:50:07,280
needed that one time, you know the time is worth it.

1001
00:50:07,840 --> 00:50:10,840
Speaker 3: And they don't necessarily need to be language models. They

1002
00:50:10,840 --> 00:50:13,360
can be a bit more specific, you know, the old

1003
00:50:13,400 --> 00:50:16,360
school what we used to do with machine learning before

1004
00:50:16,360 --> 00:50:19,800
we just threw everything at an l M, where you

1005
00:50:19,840 --> 00:50:22,360
know it's a little bit more specific to the task. Yeah,

1006
00:50:22,400 --> 00:50:25,360
this person ask this question, here are the tools? What

1007
00:50:25,880 --> 00:50:27,599
should you know? What do you need to do? You

1008
00:50:27,639 --> 00:50:30,920
don't need to absorb to have absorbed the entire Internet

1009
00:50:31,320 --> 00:50:34,960
text to in that question. Yeah, I keep waiting.

1010
00:50:35,000 --> 00:50:36,559
Speaker 1: We were just talking about this last week.

1011
00:50:36,599 --> 00:50:40,239
Speaker 4: Yeah, sure, I keep waiting for a completely software development

1012
00:50:40,320 --> 00:50:42,480
centric model to be built. It's it's not good in

1013
00:50:42,559 --> 00:50:45,840
anything else except software, and even then you'd probably want

1014
00:50:45,840 --> 00:50:47,719
to tailor down. Hey, I only need one that's good

1015
00:50:47,719 --> 00:50:49,360
at C share of javascripted SQL.

1016
00:50:49,559 --> 00:50:53,079
Speaker 3: Yeah. I think the sticking point at the moment of

1017
00:50:53,119 --> 00:50:56,039
those is that if you're asking for things in natural language,

1018
00:50:56,119 --> 00:50:58,719
you get a huge shortcut just by absorbing the world's

1019
00:50:58,800 --> 00:51:01,519
natural language. And then the pattern matching means that it

1020
00:51:01,599 --> 00:51:04,360
kind of can interpret that really well, and then there's

1021
00:51:04,400 --> 00:51:07,199
the coding pit. But yeah, I mean you could break

1022
00:51:07,199 --> 00:51:09,920
that up into two pieces. One that's really good at

1023
00:51:09,920 --> 00:51:14,000
interpreting what's required, another one that's really good at writing code.

1024
00:51:14,719 --> 00:51:18,039
I'm not deep enough into the engineering side of co

1025
00:51:18,199 --> 00:51:20,840
Pilot to, you know, to know what they're doing along

1026
00:51:20,840 --> 00:51:23,400
those lines, but that sounds total.

1027
00:51:23,679 --> 00:51:25,519
Speaker 4: I know from some of the papers that I've read,

1028
00:51:25,519 --> 00:51:29,320
there's lots of conversation about specialist models and an orchestrator

1029
00:51:29,559 --> 00:51:31,440
is in front of it that says that makes that

1030
00:51:31,519 --> 00:51:35,440
assessment and then sends to various orchestrator the specific models

1031
00:51:35,480 --> 00:51:38,440
and in order. It's almost like a map reduced, break

1032
00:51:38,480 --> 00:51:40,960
it up, fire it after multiple enities, roll it back together.

1033
00:51:41,199 --> 00:51:43,480
Speaker 3: Yeah. I suspect that's the future for sure. Yeah.

1034
00:51:43,760 --> 00:51:45,599
Speaker 4: Yes, it's back to that thing you said we couldn't do,

1035
00:51:45,639 --> 00:51:47,960
which was sending other of all prompts. Like the fact is,

1036
00:51:48,000 --> 00:51:50,360
if this architecture works what it is, you'll send them

1037
00:51:50,360 --> 00:51:52,639
other role prompts out and it'll carve it up for you.

1038
00:51:52,760 --> 00:51:55,760
Speaker 3: Yep. So there's some really good projects that kind of

1039
00:51:56,400 --> 00:51:58,199
that help you do that. I mean, the problem with

1040
00:51:58,360 --> 00:52:02,320
sending them other orble prompts is we have never been

1041
00:52:02,440 --> 00:52:07,239
wonderful at defining exactly what we want to people. Even

1042
00:52:07,480 --> 00:52:10,719
so by the time you get the requirements document and

1043
00:52:10,719 --> 00:52:13,679
then the specification document and then the you know, the

1044
00:52:14,719 --> 00:52:19,079
functional spec list. To a programmer, there's something has been lost.

1045
00:52:19,199 --> 00:52:24,320
Speaker 4: And the English language especially is you know, almost intentionally vague. Yes,

1046
00:52:24,639 --> 00:52:26,840
so often it's tough to be clear of what you

1047
00:52:26,880 --> 00:52:28,840
intend once you get past the first paragraph.

1048
00:52:29,079 --> 00:52:31,760
Speaker 3: Yeah. Like we say, the lms are non deterministic, but

1049
00:52:31,920 --> 00:52:36,840
I mean really human language is nondeterministic. So even if

1050
00:52:36,840 --> 00:52:38,880
you could send that mother of all prompts and get

1051
00:52:39,079 --> 00:52:41,440
you know, exactly what you've asked for back, there's going

1052
00:52:41,480 --> 00:52:44,039
to be some assumptions made along the way, and then

1053
00:52:44,079 --> 00:52:48,079
you've probably got some things wrong. So there's projects like

1054
00:52:48,880 --> 00:52:52,840
spec kit or just that technique I guess which which

1055
00:52:52,960 --> 00:52:55,679
kind of walk you through that process of Okay, so

1056
00:52:55,719 --> 00:52:58,360
what are the requirements that you have. Here's a big

1057
00:52:58,400 --> 00:53:02,519
markdown document, look through that make some changes however you want,

1058
00:53:02,760 --> 00:53:07,000
either directly yourself or just asking the agent to do

1059
00:53:07,079 --> 00:53:10,599
that work for you. That's also in plan mode in

1060
00:53:10,760 --> 00:53:14,280
viscode as well. And the idea is, you know, you

1061
00:53:14,320 --> 00:53:17,599
are defining it as accurately as you can, and you're

1062
00:53:17,599 --> 00:53:20,039
working kind of with the agents to do that, and

1063
00:53:20,079 --> 00:53:22,239
then you move on to the specification of this is

1064
00:53:22,480 --> 00:53:27,519
what technical implementation we need, and it's still using large

1065
00:53:27,559 --> 00:53:31,000
language models and coding tools to do that work or

1066
00:53:31,000 --> 00:53:33,039
to help you do that work. But ultimately what you

1067
00:53:33,159 --> 00:53:37,400
end up with is these quite well defined individual tasks

1068
00:53:37,679 --> 00:53:39,960
that then you can get good results from when you

1069
00:53:40,000 --> 00:53:44,360
send them to a coding agent. They're small pieces of work.

1070
00:53:44,400 --> 00:53:47,679
You can put tests around them, you can examine what

1071
00:53:47,800 --> 00:53:50,840
comes back from each of those pieces, and then you

1072
00:53:50,920 --> 00:53:55,760
know that gives you a little bit more rigor around

1073
00:53:55,840 --> 00:53:58,400
what code ends up coming out. Then even if you

1074
00:53:58,480 --> 00:54:01,800
send a mother of all prompts to something like the

1075
00:54:02,559 --> 00:54:05,000
like the Copilot coding agent, or if you send an

1076
00:54:05,039 --> 00:54:07,440
issue to that agent, that's kind of what it's doing

1077
00:54:07,440 --> 00:54:09,599
in the background as well. It says, right, i've got

1078
00:54:09,639 --> 00:54:12,440
this issue, I've got this description that the person's given me.

1079
00:54:12,760 --> 00:54:15,280
Let's break that down into requirements, let's break it down

1080
00:54:15,320 --> 00:54:18,719
into its specification. Let's define a bunch of tasks to do,

1081
00:54:18,840 --> 00:54:22,159
and then let's do those tasks. And I think we've

1082
00:54:22,280 --> 00:54:25,440
found that you get a much better result doing it

1083
00:54:25,480 --> 00:54:27,679
that way than you would otherwise.

1084
00:54:27,280 --> 00:54:29,199
Speaker 4: I certainly seen a lot of folks now starting to

1085
00:54:29,360 --> 00:54:32,480
use the tools to write the prompts before running the prompts,

1086
00:54:32,840 --> 00:54:34,960
and I do you know, I wonder if we shouldn't

1087
00:54:34,960 --> 00:54:38,519
be making more of this confidence equation visible as you

1088
00:54:38,559 --> 00:54:41,800
go along. It's like, Hey, I don't want to actually

1089
00:54:41,800 --> 00:54:44,840
attempt to execute this prompt until it's in the ninetieth

1090
00:54:44,840 --> 00:54:47,960
percent pile of confidence. So let's keep iterating on it

1091
00:54:48,039 --> 00:54:50,599
until we can clear up the vagaries that will probably

1092
00:54:50,800 --> 00:54:53,159
you know, send the tools down the wrong path until

1093
00:54:53,360 --> 00:54:55,519
you're really competent. This is an awesome prompt as a

1094
00:54:55,599 --> 00:54:59,280
very good chance of producing code that's useful. It's interesting, right,

1095
00:54:59,360 --> 00:55:01,800
like it is. That's the whole can of worms. We

1096
00:55:01,920 --> 00:55:03,719
go back and forth. But it's something I think I'd

1097
00:55:03,760 --> 00:55:06,159
done as a PM anyway, where you know, the customer

1098
00:55:06,239 --> 00:55:09,639
gam theset requirements is like, wow, these look like requirements,

1099
00:55:09,639 --> 00:55:12,760
except that you didn't actually clarify anything here. Let's go

1100
00:55:12,840 --> 00:55:15,119
work through the yeah, And.

1101
00:55:14,920 --> 00:55:18,679
Speaker 3: That kind of gets to the core of the problem

1102
00:55:18,760 --> 00:55:21,679
is if if the people doing the work don't actually

1103
00:55:22,000 --> 00:55:24,119
care a lot about the quality of what's coming out,

1104
00:55:24,159 --> 00:55:28,400
then you can't make them care. And that's again not

1105
00:55:28,440 --> 00:55:32,079
a new problem. It's just you can get a lot

1106
00:55:32,119 --> 00:55:34,960
further without caring these days, I think a lot faster.

1107
00:55:36,840 --> 00:55:40,519
And so yeah, and again that's kind of why, that's

1108
00:55:40,599 --> 00:55:42,280
kind of where you can put some rigorin. So if

1109
00:55:42,280 --> 00:55:48,280
you have these CI builds and these quality checks and gates,

1110
00:55:48,400 --> 00:55:51,119
you can even do gates like with AI in them

1111
00:55:51,159 --> 00:55:52,880
to say, hey, can you just make sure that this

1112
00:55:52,960 --> 00:55:55,559
has been looked at? And this has been looked at

1113
00:55:56,039 --> 00:55:59,920
and it's vague enough that the large language model will

1114
00:55:59,920 --> 00:56:02,599
be how to interpret you know, yeah, it doesn't look

1115
00:56:02,639 --> 00:56:04,800
like they've looked at accessibility on this page at all.

1116
00:56:06,280 --> 00:56:09,280
Those things can be used as well. So having that

1117
00:56:09,280 --> 00:56:13,079
that pipeline that we've always had, even if it's kind

1118
00:56:13,079 --> 00:56:16,639
of AI enhanced, can can mean that if you do

1119
00:56:16,719 --> 00:56:19,800
have people who don't really care about the quality of

1120
00:56:19,880 --> 00:56:22,920
what comes out, you still have those those checks and

1121
00:56:23,000 --> 00:56:24,039
balances in the way.

1122
00:56:24,199 --> 00:56:27,039
Speaker 4: I appreciate that. And you're again leveraging the strength of

1123
00:56:27,119 --> 00:56:30,400
these tools to be meticulous and good at going down

1124
00:56:30,519 --> 00:56:33,480
checklists and catch all those details so that you can

1125
00:56:33,960 --> 00:56:36,559
be sure of things when the tool gets to avolved.

1126
00:56:36,559 --> 00:56:39,400
The checklists and they're all red you know checks or

1127
00:56:39,480 --> 00:56:40,960
green checks you've done something good.

1128
00:56:41,559 --> 00:56:44,639
Speaker 3: Yeah, Yeah, that's exactly right. Yeah. I mean they're powerful tools.

1129
00:56:44,880 --> 00:56:46,800
Using them for the right reasons in the right way

1130
00:56:47,320 --> 00:56:49,360
is you know, the way we should be doing it.

1131
00:56:49,440 --> 00:56:53,679
Just like you know, one sentence prompt it looks okay,

1132
00:56:53,880 --> 00:56:56,599
you'll lower it into PROD. That's not really the right

1133
00:56:56,880 --> 00:56:57,679
right way to use them.

1134
00:56:57,840 --> 00:56:59,920
Speaker 4: You're going to find out in a hurry you were wrong.

1135
00:57:01,199 --> 00:57:05,159
Speaker 1: That's right, damnian. Is there anything we missed that we're

1136
00:57:05,199 --> 00:57:06,920
we should bring up before we sign?

1137
00:57:06,920 --> 00:57:07,000
Speaker 4: That?

1138
00:57:07,079 --> 00:57:09,480
Speaker 3: Nothing huge? I just I just wanted to jump on

1139
00:57:09,559 --> 00:57:12,000
that that comment about the confidence intervals that Richard had.

1140
00:57:12,079 --> 00:57:14,679
I feel like that's something you could absolutely add into

1141
00:57:14,719 --> 00:57:18,519
your custom instructions or your agent's MD file or whatever

1142
00:57:18,519 --> 00:57:20,679
it is that you use to say, each time I

1143
00:57:20,719 --> 00:57:23,760
ask you to help me define something, can you give

1144
00:57:23,800 --> 00:57:26,639
me a confidence interval at the end to tell me

1145
00:57:26,800 --> 00:57:29,760
how how accurate you think you are? And that being

1146
00:57:29,800 --> 00:57:33,639
a you know, standing order would mean just imprompt Yeah,

1147
00:57:33,760 --> 00:57:34,760
that kind of sits in there.

1148
00:57:35,039 --> 00:57:37,880
Speaker 4: It's instead of looking at the developer and seeing if

1149
00:57:37,880 --> 00:57:40,400
they look confused or not as your prompt isn't that good?

1150
00:57:41,000 --> 00:57:41,199
Speaker 3: You know?

1151
00:57:41,320 --> 00:57:43,039
Speaker 4: Now you have the software giving you a number. Although

1152
00:57:43,039 --> 00:57:44,480
if you're smart, you just make it into a set

1153
00:57:44,480 --> 00:57:46,079
of faces too, right, He goes, oh, well that's the

1154
00:57:46,119 --> 00:57:48,960
sixty percent. Look confused. You could yeah, think about how

1155
00:57:49,000 --> 00:57:51,760
much we already do this when you're trying to pass

1156
00:57:51,800 --> 00:57:54,000
instructions along and just like do you get this? Do

1157
00:57:54,079 --> 00:57:56,519
you are you on board? Like, don't what we need

1158
00:57:56,519 --> 00:57:57,679
to do this to the software too.

1159
00:57:58,039 --> 00:58:01,159
Speaker 1: I still wish these things would say I don't know

1160
00:58:01,199 --> 00:58:03,840
the answer when they don't instead of making stuff up.

1161
00:58:03,960 --> 00:58:07,719
Speaker 3: Yeah, you can be a little explicit about that. And again,

1162
00:58:07,880 --> 00:58:11,480
custom instructions agents MD that kind of thing to say. Look,

1163
00:58:11,559 --> 00:58:14,880
if if you know you're not absolutely sure about something

1164
00:58:14,920 --> 00:58:17,760
I've asked, then please prompt me to define that a

1165
00:58:17,760 --> 00:58:20,719
bit more clarifying or something to clarify. Yeah. But then

1166
00:58:21,119 --> 00:58:23,199
I mean you sometimes end up in a loop where

1167
00:58:23,199 --> 00:58:25,559
it tries to be far too helpful and you're constantly

1168
00:58:25,639 --> 00:58:30,239
field questions yeah, and you almost have to interrupt and

1169
00:58:30,280 --> 00:58:33,159
say no, I think I think you've got it. Just

1170
00:58:33,159 --> 00:58:33,719
just go.

1171
00:58:33,840 --> 00:58:36,920
Speaker 4: You've had enough detail, Now go work. But you know what,

1172
00:58:37,079 --> 00:58:39,840
you've also had that employee that you know, rather do

1173
00:58:39,880 --> 00:58:41,719
the work, would like to just keep asking questions.

1174
00:58:41,760 --> 00:58:44,440
Speaker 1: I've had to press control C a couple of times,

1175
00:58:45,199 --> 00:58:48,559
you know, when you know Claude in GitHub co pilots

1176
00:58:48,559 --> 00:58:52,400
Cli says, ah, I know the I see the problem

1177
00:58:52,519 --> 00:58:55,280
and it's completely wrong, you know, and then it goes

1178
00:58:55,320 --> 00:58:58,559
off trying to fix these control see break ye, no

1179
00:58:58,880 --> 00:59:01,800
you're wrong about that. And then it comes back with

1180
00:59:01,960 --> 00:59:08,840
of course you're exactly right. Yeah, yeah, you're right.

1181
00:59:09,119 --> 00:59:10,320
Speaker 4: Turn the shining is down.

1182
00:59:10,639 --> 00:59:14,280
Speaker 1: It's been great talking to you, Damien, and come back

1183
00:59:14,320 --> 00:59:14,920
again soon.

1184
00:59:15,280 --> 00:59:18,199
Speaker 3: Absolutely, I won't wait until the next job this time.

1185
00:59:18,039 --> 00:59:21,639
Speaker 1: I think definitely. We have a lot to talk about,

1186
00:59:22,840 --> 00:59:24,400
all right, and we'll talk to you.

1187
00:59:24,360 --> 00:59:45,360
Speaker 5: Next time on dot net rocks.

1188
00:59:46,679 --> 00:59:49,360
Speaker 1: Dot net Rocks is brought to you by Franklin's Net

1189
00:59:49,480 --> 00:59:53,440
and produced by Pop Studios, a full service audio, video

1190
00:59:53,480 --> 00:59:57,599
and post production facility located physically in New London, Connecticut,

1191
00:59:57,840 --> 01:00:02,639
and of course in the cloud line at pwop dot com.

1192
01:00:02,840 --> 01:00:04,960
Visit our website at d O T N E, t

1193
01:00:05,199 --> 01:00:09,239
R O c k S dot com for RSS feeds, downloads,

1194
01:00:09,360 --> 01:00:13,039
mobile apps, comments, and access to the full archives going

1195
01:00:13,079 --> 01:00:16,480
back to show number one, recorded in September two thousand

1196
01:00:16,519 --> 01:00:19,159
and two. And make sure you check out our sponsors.

1197
01:00:19,320 --> 01:00:22,320
They keep us in business. Now go write some code.

1198
01:00:22,679 --> 01:00:26,159
See you next time you got jam bands

1199
01:00:28,239 --> 01:00:28,280
Speaker 4: And

