WEBVTT

1
00:00:01.080 --> 00:00:04.799
<v Speaker 1>How'd you like to listen to dot NetRocks with no ads? Easy?

2
00:00:05.360 --> 00:00:08.560
<v Speaker 1>Become a patron for just five dollars a month. You

3
00:00:08.599 --> 00:00:11.320
<v Speaker 1>get access to a private RSS feed where all the

4
00:00:11.359 --> 00:00:14.599
<v Speaker 1>shows have no ads. Twenty dollars a month, we'll get

5
00:00:14.599 --> 00:00:18.440
<v Speaker 1>you that and a special dot NetRocks patron mug. Sign

6
00:00:18.519 --> 00:00:22.920
<v Speaker 1>up now at Patreon dot dot NetRocks dot com. Hi,

7
00:00:23.000 --> 00:00:24.679
<v Speaker 1>this is Carl Franklin.

8
00:00:24.239 --> 00:00:25.480
<v Speaker 2>And this is Richard Campbell.

9
00:00:25.839 --> 00:00:30.000
<v Speaker 1>We've got two special shows coming up soon, episode nineteen

10
00:00:30.120 --> 00:00:32.039
<v Speaker 1>ninety nine and two thousand.

11
00:00:32.399 --> 00:00:35.079
<v Speaker 2>For episode nineteen ninety nine, we're collecting people's y two

12
00:00:35.159 --> 00:00:37.560
<v Speaker 2>k stories what did you do to help the Y

13
00:00:37.600 --> 00:00:39.719
<v Speaker 2>two k event not actually happen?

14
00:00:40.240 --> 00:00:42.960
<v Speaker 1>And for episode two thousand, we're going to be sharing

15
00:00:43.000 --> 00:00:45.479
<v Speaker 1>stories about how dot net shaped your career.

16
00:00:46.000 --> 00:00:48.719
<v Speaker 2>We have a special page at dot netroocks dot com

17
00:00:48.719 --> 00:00:52.159
<v Speaker 2>slash voxpop where you can record messages for us that

18
00:00:52.200 --> 00:00:54.000
<v Speaker 2>we can play on these special episodes.

19
00:00:54.439 --> 00:00:56.479
<v Speaker 1>So tell us what you did for Y two k

20
00:00:56.759 --> 00:00:59.039
<v Speaker 1>and what dot net means to you, and of course

21
00:00:59.079 --> 00:01:00.960
<v Speaker 1>how long you've been listening to dot net rocks.

22
00:01:01.640 --> 00:01:04.439
<v Speaker 2>So go to dot netroocks dot com slash vox pop

23
00:01:04.560 --> 00:01:06.480
<v Speaker 2>now and leave us a message before the thought of

24
00:01:06.560 --> 00:01:09.200
<v Speaker 2>operates like whiskey left in a glass overnight.

25
00:01:09.159 --> 00:01:09.640
<v Speaker 3>Do it?

26
00:01:21.879 --> 00:01:24.120
<v Speaker 1>Hey, and welcome back to dot net Rocks. I'm Carl

27
00:01:24.120 --> 00:01:26.959
<v Speaker 1>Franklin and I'm Richard Campbell. Damian Brady is here with us.

28
00:01:27.040 --> 00:01:31.400
<v Speaker 1>You'll probably hear him before I introduce him formally. But

29
00:01:32.239 --> 00:01:37.000
<v Speaker 1>this being show nineteen ninety, we need to talk about

30
00:01:37.040 --> 00:01:37.959
<v Speaker 1>what happened that year.

31
00:01:38.239 --> 00:01:39.879
<v Speaker 4>Don't wait, you're big years, aren't they?

32
00:01:40.040 --> 00:01:42.000
<v Speaker 3>They know? Oh yeah, big years.

33
00:01:42.079 --> 00:01:45.760
<v Speaker 1>Yeah. So I remember nineteen ninety because that's the year

34
00:01:45.959 --> 00:01:49.159
<v Speaker 1>I got married the first time, and my wife and

35
00:01:49.200 --> 00:01:52.920
<v Speaker 1>I were watching television and you know, we heard about

36
00:01:53.359 --> 00:01:56.599
<v Speaker 1>the Berlin Wall coming down and the reunification of Germany

37
00:01:57.400 --> 00:02:00.959
<v Speaker 1>and that was just like it was a crazy, crazy cool.

38
00:02:00.879 --> 00:02:03.799
<v Speaker 4>You think about how many pieces were involved in doing that, because,

39
00:02:04.200 --> 00:02:06.599
<v Speaker 4>sure me it being broken up after World War Two,

40
00:02:06.760 --> 00:02:08.560
<v Speaker 4>so you had to have the agreement of all of

41
00:02:08.599 --> 00:02:12.919
<v Speaker 4>the states that were involved in that, which includes Russia,

42
00:02:13.199 --> 00:02:16.319
<v Speaker 4>right or the Soviet Union at that time, and then

43
00:02:17.120 --> 00:02:22.240
<v Speaker 4>unification of the currency, the complete dismantling of the eastern

44
00:02:22.800 --> 00:02:26.360
<v Speaker 4>the Eastern Germany political system essentially to go over to

45
00:02:26.360 --> 00:02:28.879
<v Speaker 4>the western one. I'm like it was huge, huge task.

46
00:02:29.000 --> 00:02:32.360
<v Speaker 1>I went back to college that year, and so I

47
00:02:32.400 --> 00:02:36.960
<v Speaker 1>remember my history teacher was a Cthiopian guy, and he

48
00:02:37.120 --> 00:02:40.280
<v Speaker 1>was just like, just can you believe this is the garbageoff,

49
00:02:40.560 --> 00:02:42.680
<v Speaker 1>just like you know, who saw that coming?

50
00:02:43.360 --> 00:02:44.560
<v Speaker 3>And my.

51
00:02:46.439 --> 00:02:50.039
<v Speaker 1>Economics teacher, a macroeconomics class that I had, she was

52
00:02:50.120 --> 00:02:53.960
<v Speaker 1>like a protest hippie from the sixties, you know, and

53
00:02:54.039 --> 00:02:57.879
<v Speaker 1>she said, we used to go around saying free Nelson Mandela,

54
00:02:58.039 --> 00:03:01.360
<v Speaker 1>and now he's free. So that was yeah, February eleventh.

55
00:03:01.400 --> 00:03:03.080
<v Speaker 4>That happened in nineteen ninety as well.

56
00:03:02.960 --> 00:03:04.159
<v Speaker 1>Yeah, February eleventh.

57
00:03:04.199 --> 00:03:07.680
<v Speaker 4>So and then she also saw what started in eighty

58
00:03:07.759 --> 00:03:09.719
<v Speaker 4>nine with the dissolution of the Eastern Bloc. Now you

59
00:03:09.719 --> 00:03:13.919
<v Speaker 4>start having elections in Poland and in Czechoslovakia and the

60
00:03:14.039 --> 00:03:14.800
<v Speaker 4>former Yugoslavia.

61
00:03:14.879 --> 00:03:17.520
<v Speaker 1>But it wasn't so good for Yugoslavia though, that was

62
00:03:18.479 --> 00:03:20.520
<v Speaker 1>collapsing there, the communist regime.

63
00:03:20.840 --> 00:03:23.680
<v Speaker 4>Yeah, and they separates nations that form from that and

64
00:03:23.680 --> 00:03:25.759
<v Speaker 4>they are quite hostile to each other. So things are

65
00:03:25.759 --> 00:03:27.879
<v Speaker 4>going to get ugly in that part of the world.

66
00:03:27.680 --> 00:03:32.000
<v Speaker 1>And they would go to war in the next few years. Yeah.

67
00:03:32.039 --> 00:03:34.919
<v Speaker 1>The beginning of the human genome projects. Not to steal

68
00:03:34.960 --> 00:03:37.759
<v Speaker 1>your science, but it's good that's a good one.

69
00:03:37.879 --> 00:03:40.120
<v Speaker 4>Yeah, and it take years and years, but look where

70
00:03:40.120 --> 00:03:42.240
<v Speaker 4>we are today. I forgot. They spent what two and

71
00:03:42.280 --> 00:03:44.639
<v Speaker 4>a half billion dollars to do that over a decade,

72
00:03:44.639 --> 00:03:46.960
<v Speaker 4>and today you can get it for three hundred bucks. Yeah,

73
00:03:47.120 --> 00:03:50.039
<v Speaker 4>so pretty amazing, you know, talk about transformation. Hey, before

74
00:03:50.080 --> 00:03:52.520
<v Speaker 4>we go off of the whole Eastern Bloc thing. Most importantly,

75
00:03:52.520 --> 00:03:56.759
<v Speaker 4>in nineteen ninety, Moscow gets its first McDonald's wow, and

76
00:03:56.879 --> 00:03:58.080
<v Speaker 4>its first pizza Hut.

77
00:03:58.159 --> 00:04:00.400
<v Speaker 1>That was the real reason they wanted to of the

78
00:04:00.400 --> 00:04:02.960
<v Speaker 1>Soviet Union, right, so he could bring McDonald's and pizza

79
00:04:03.039 --> 00:04:03.560
<v Speaker 1>Hut in there.

80
00:04:03.879 --> 00:04:06.360
<v Speaker 4>I don't know the answer to that. By the way,

81
00:04:06.360 --> 00:04:08.879
<v Speaker 4>they're also opening in China at the same time, so

82
00:04:08.919 --> 00:04:10.199
<v Speaker 4>that was going on as well.

83
00:04:10.319 --> 00:04:11.919
<v Speaker 3>Yeah, any others.

84
00:04:12.240 --> 00:04:14.560
<v Speaker 1>Go ahead, No, that's enough. I mean I would go

85
00:04:14.639 --> 00:04:16.920
<v Speaker 1>over the movies, but the best movies are in the eighties.

86
00:04:16.959 --> 00:04:17.319
<v Speaker 4>We know that.

87
00:04:17.439 --> 00:04:19.199
<v Speaker 3>So yeah, yeah, I think we've already had that wave.

88
00:04:19.279 --> 00:04:23.079
<v Speaker 4>I will go one more geopolitical mention, which is the

89
00:04:23.120 --> 00:04:26.360
<v Speaker 4>Iraqi invision of could wait that's right? Yeah, yeah, obviously

90
00:04:26.360 --> 00:04:28.920
<v Speaker 4>we'll have more dire consequences, although it takes time for

91
00:04:28.959 --> 00:04:30.199
<v Speaker 4>folks to really have that sink in.

92
00:04:30.360 --> 00:04:34.439
<v Speaker 1>Yeah, absolutely. I know you're going to do science and tech,

93
00:04:34.480 --> 00:04:37.759
<v Speaker 1>but I just want to apologize because last week I

94
00:04:37.800 --> 00:04:40.639
<v Speaker 1>said nineteen eighty nine was the beginning of the world

95
00:04:40.680 --> 00:04:44.720
<v Speaker 1>Wide Web. Tim berners lead didn't actually invent that until

96
00:04:44.800 --> 00:04:47.879
<v Speaker 1>nineteen ninety. So he developed the first web server, laying

97
00:04:47.920 --> 00:04:48.519
<v Speaker 1>the foundation.

98
00:04:48.680 --> 00:04:51.240
<v Speaker 4>Yeah, he put the proposal in in nineteen eighty nine

99
00:04:51.399 --> 00:04:54.759
<v Speaker 4>to Thurn in December. Yes, yeah, you know, and this

100
00:04:54.800 --> 00:04:56.879
<v Speaker 4>is in March of eighty nine. He put the proposal

101
00:04:56.920 --> 00:05:01.360
<v Speaker 4>in Oh okay, March and turned him down.

102
00:05:02.120 --> 00:05:05.160
<v Speaker 3>We don't need that. That's not a good idea time on.

103
00:05:05.279 --> 00:05:07.079
<v Speaker 1>What do you think the people that turned him down

104
00:05:07.560 --> 00:05:10.959
<v Speaker 1>to sleep at night? Do you think they're just like, ah,

105
00:05:11.040 --> 00:05:11.560
<v Speaker 1>that was done.

106
00:05:11.720 --> 00:05:14.360
<v Speaker 4>Fortunately, he kind of just kept working on it, and

107
00:05:14.759 --> 00:05:17.560
<v Speaker 4>his direct report, his boss was fine with him still

108
00:05:17.560 --> 00:05:20.879
<v Speaker 4>working on it. And yeah, by nineteen ninety on his

109
00:05:20.920 --> 00:05:22.879
<v Speaker 4>next computer. And you can go see this machine. It's

110
00:05:22.879 --> 00:05:24.879
<v Speaker 4>at certain I've seen. It's got a big label on it. Yeah,

111
00:05:24.879 --> 00:05:28.560
<v Speaker 4>it says server do not turn off. And that's really cool.

112
00:05:28.600 --> 00:05:31.560
<v Speaker 4>First web server, the first browser, all of it.

113
00:05:32.600 --> 00:05:33.560
<v Speaker 1>I gotta go see it.

114
00:05:33.560 --> 00:05:34.279
<v Speaker 4>It's really a thing.

115
00:05:34.399 --> 00:05:36.680
<v Speaker 1>So what else happened in science and tech and space?

116
00:05:37.279 --> 00:05:39.519
<v Speaker 4>Let's do Internet first. I'll do space last. Although I

117
00:05:39.519 --> 00:05:44.040
<v Speaker 4>think the computing stuff is huge, because the Internet obviously

118
00:05:44.120 --> 00:05:48.600
<v Speaker 4>has a very big year. Was not only just tim

119
00:05:48.600 --> 00:05:51.720
<v Speaker 4>getting the WWW working, but this is when the first

120
00:05:51.839 --> 00:05:55.279
<v Speaker 4>search engine comes out. It's called Archie, written by team

121
00:05:55.319 --> 00:05:58.480
<v Speaker 4>of three Allen Mtaje, Bill heal And and Mike Parker out

122
00:05:58.480 --> 00:05:59.720
<v Speaker 4>of McGill, University of Montreal.

123
00:06:00.000 --> 00:06:02.079
<v Speaker 1>There's a whole bunch of named things that were about

124
00:06:02.240 --> 00:06:06.079
<v Speaker 1>Archie and Veronica and all that, that whole comic strip.

125
00:06:06.160 --> 00:06:09.519
<v Speaker 4>Yeah, and it all happened now right like this expansion,

126
00:06:09.600 --> 00:06:12.160
<v Speaker 4>Like really, what's happened is that we don't have the

127
00:06:12.160 --> 00:06:14.839
<v Speaker 4>Internet yet. It's arpendet, but this is the year that

128
00:06:15.000 --> 00:06:18.160
<v Speaker 4>arpaet goes away and it becomes nsf net or National

129
00:06:18.160 --> 00:06:21.920
<v Speaker 4>Science Foundation Network. So they're understanding it isn't the Cold

130
00:06:21.959 --> 00:06:25.759
<v Speaker 4>War tool anymore. It's not that that. It's it's something else.

131
00:06:25.920 --> 00:06:29.199
<v Speaker 4>So besides Archie, you also get in Gopher this year

132
00:06:29.279 --> 00:06:32.600
<v Speaker 4>out of Minnesota University of Minnesota, which was a search

133
00:06:32.639 --> 00:06:33.319
<v Speaker 4>and retrieval tool.

134
00:06:33.399 --> 00:06:33.560
<v Speaker 3>Yeah.

135
00:06:33.600 --> 00:06:35.720
<v Speaker 4>Remember we're only at one hundred thousand or so machine,

136
00:06:35.720 --> 00:06:39.759
<v Speaker 4>so it's still reasonable for your computer to search everything.

137
00:06:39.839 --> 00:06:43.439
<v Speaker 1>Gopher was like file folders on the Internet. It was

138
00:06:43.480 --> 00:06:46.399
<v Speaker 1>like a hierarchical file folders system and you can.

139
00:06:46.319 --> 00:06:49.759
<v Speaker 4>Go fetch the files as you want, all right, so beyond.

140
00:06:50.600 --> 00:06:53.279
<v Speaker 4>This is also the year that the Electronic Frontier.

141
00:06:52.879 --> 00:06:53.800
<v Speaker 3>Foundation is formed.

142
00:06:53.839 --> 00:06:55.920
<v Speaker 4>Ah, Mitch kpar Yeah, don't forget that.

143
00:06:56.279 --> 00:06:59.399
<v Speaker 1>And John Perry Barlow who went to write songs with

144
00:06:59.519 --> 00:07:02.000
<v Speaker 1>Bob We're for the Grateful Dead, Cassidy being one of

145
00:07:02.000 --> 00:07:02.560
<v Speaker 1>my favorites.

146
00:07:02.680 --> 00:07:03.160
<v Speaker 3>Nice. Yeah.

147
00:07:03.199 --> 00:07:06.199
<v Speaker 4>This is the year that the first company in history

148
00:07:06.279 --> 00:07:08.759
<v Speaker 4>ever makes more than a billion dollars in sales. And

149
00:07:08.759 --> 00:07:13.160
<v Speaker 4>that company is Microsoft. And what are they selling in

150
00:07:13.240 --> 00:07:18.319
<v Speaker 4>nineteen ninety Windows three, MS DOS and Windows Yeah. So

151
00:07:18.360 --> 00:07:20.639
<v Speaker 4>this is when version three comes out. It's the first

152
00:07:20.839 --> 00:07:23.079
<v Speaker 4>multitasking version of Windows, so if you have a three

153
00:07:23.160 --> 00:07:26.240
<v Speaker 4>D six or better, you can have multiple apps running simultaneously.

154
00:07:26.319 --> 00:07:29.160
<v Speaker 4>It's also the first version to include Solitaire, which is

155
00:07:29.199 --> 00:07:33.560
<v Speaker 4>clearly worth a billion dollars. It's also the first edition

156
00:07:33.800 --> 00:07:38.519
<v Speaker 4>of Microsoft Office. It was called the Microsoft Office for Windows,

157
00:07:39.120 --> 00:07:42.240
<v Speaker 4>included Word one point one, Excel two point one D,

158
00:07:43.079 --> 00:07:44.360
<v Speaker 4>and PowerPoint two point zero.

159
00:07:44.399 --> 00:07:44.600
<v Speaker 1>Wow.

160
00:07:44.720 --> 00:07:47.040
<v Speaker 4>It's also the year that Microsoft and IBM and their

161
00:07:47.079 --> 00:07:50.160
<v Speaker 4>relationship on operating systems. That's the MMOs two And this

162
00:07:50.199 --> 00:07:52.120
<v Speaker 4>is the beginning of NT and all those sorts of things.

163
00:07:52.199 --> 00:07:55.319
<v Speaker 4>You have two other important pieces of software. This is

164
00:07:55.360 --> 00:07:58.759
<v Speaker 4>the first version of Photoshop is in nineteen ninety only

165
00:07:58.759 --> 00:08:01.879
<v Speaker 4>for the mac's the beginning of it. And one you

166
00:08:01.920 --> 00:08:05.879
<v Speaker 4>know and love snagg It is in nineteen ninety.

167
00:08:05.959 --> 00:08:06.720
<v Speaker 3>Yeah. All right.

168
00:08:06.920 --> 00:08:09.360
<v Speaker 4>On the space side, I'll go down two stacks. There

169
00:08:09.360 --> 00:08:12.399
<v Speaker 4>are six Shuttle flights this year. A lot of them

170
00:08:12.439 --> 00:08:14.759
<v Speaker 4>are just satellite missions, but there are three I will

171
00:08:14.759 --> 00:08:15.759
<v Speaker 4>talk about specifically.

172
00:08:16.079 --> 00:08:16.680
<v Speaker 3>In April.

173
00:08:17.439 --> 00:08:20.920
<v Speaker 4>Spatial Discovery deploys the Hubble space telescope.

174
00:08:20.959 --> 00:08:21.480
<v Speaker 1>That's right.

175
00:08:22.000 --> 00:08:24.399
<v Speaker 4>Originally supposed to launch in nineteen eighty three, delayed by

176
00:08:24.399 --> 00:08:28.120
<v Speaker 4>the Challenger disaster and also budget. There's some evidence that

177
00:08:28.160 --> 00:08:31.160
<v Speaker 4>it was actually based on the KH eleven spy satellite,

178
00:08:31.199 --> 00:08:33.240
<v Speaker 4>which is still classified, so we don't really know for sure,

179
00:08:33.279 --> 00:08:36.240
<v Speaker 4>but every image of it looks an awful lot like novel.

180
00:08:36.840 --> 00:08:39.320
<v Speaker 4>Probably was a prototype that wasn't quite right for their application,

181
00:08:39.399 --> 00:08:40.759
<v Speaker 4>so they gave it to NASA and they built the

182
00:08:40.759 --> 00:08:44.720
<v Speaker 4>saddle the Hubble around it two point four meter mirror

183
00:08:44.879 --> 00:08:47.279
<v Speaker 4>that was, of course, in ninety ninety discovered to a

184
00:08:47.279 --> 00:08:50.159
<v Speaker 4>big ground incorrectly, and it'll be a few years before

185
00:08:50.159 --> 00:08:52.039
<v Speaker 4>they figure out how to fix that. So it didn't

186
00:08:52.039 --> 00:08:52.480
<v Speaker 4>work all like it.

187
00:08:52.639 --> 00:08:54.840
<v Speaker 1>So I just got to say this, this is my

188
00:08:55.000 --> 00:08:59.799
<v Speaker 1>favorite David Letterman top ten top ten Hubble space tell

189
00:08:59.840 --> 00:09:03.919
<v Speaker 1>Us scope excuses, and the number one was bum with squeegee,

190
00:09:03.960 --> 00:09:05.480
<v Speaker 1>smeared lens at stopped light.

191
00:09:11.519 --> 00:09:11.799
<v Speaker 3>All right.

192
00:09:11.840 --> 00:09:15.440
<v Speaker 4>Two more Shuttle missions. One is Discovery in October launching

193
00:09:15.440 --> 00:09:19.000
<v Speaker 4>the Ulysses Solar probe. This there's been solar pros for this,

194
00:09:19.039 --> 00:09:20.879
<v Speaker 4>but what Elysses did it was with the ESA that

195
00:09:20.879 --> 00:09:23.159
<v Speaker 4>they did. This one is they actually did a slingshot

196
00:09:23.159 --> 00:09:26.519
<v Speaker 4>maneuver off of Jupiter so that they could get imaging

197
00:09:26.639 --> 00:09:29.240
<v Speaker 4>of the poles of the Moon that had never been

198
00:09:29.279 --> 00:09:32.759
<v Speaker 4>done before. It meant that its orbit ran several years long.

199
00:09:32.960 --> 00:09:34.759
<v Speaker 4>It was a very large elliptical orbit, but it means

200
00:09:34.799 --> 00:09:36.519
<v Speaker 4>they've got the first images of the North and South

201
00:09:36.559 --> 00:09:40.679
<v Speaker 4>poles of the Sun. And finally Colombia and December with

202
00:09:40.759 --> 00:09:44.200
<v Speaker 4>the Space Labs with Astro one. So space Lab was

203
00:09:44.320 --> 00:09:47.279
<v Speaker 4>this laboratory before the space station came along.

204
00:09:47.320 --> 00:09:47.759
<v Speaker 3>It was in the.

205
00:09:50.200 --> 00:09:52.679
<v Speaker 4>Cargo compartment of the space station, gave more pressurized space

206
00:09:52.720 --> 00:09:55.120
<v Speaker 4>to work in, and in behind that was this non

207
00:09:55.159 --> 00:09:57.679
<v Speaker 4>pressurized palate. There were a few different options for spacelab

208
00:09:57.720 --> 00:09:59.320
<v Speaker 4>doping what're doing. This is the first time they flew

209
00:09:59.360 --> 00:10:03.120
<v Speaker 4>with Astro one, which was four telescopes mounted on a

210
00:10:03.200 --> 00:10:06.360
<v Speaker 4>pointing rig built by Darnier out the back of the

211
00:10:06.360 --> 00:10:09.480
<v Speaker 4>shuttle and the four satellite. The four telescopes were the

212
00:10:09.519 --> 00:10:13.799
<v Speaker 4>Hopkins ultra violet telescope, the Wisconsin Ultraviolet Photo Parimeter, the

213
00:10:13.840 --> 00:10:18.000
<v Speaker 4>experiment the Ultravallet Imaging telescope, and the Broadband X ray telescope. Wow,

214
00:10:18.120 --> 00:10:20.960
<v Speaker 4>so lots of science. And I promised that I'd be

215
00:10:20.960 --> 00:10:23.639
<v Speaker 4>talking about Mirror going forward, And in nineteen ninety the

216
00:10:23.720 --> 00:10:28.639
<v Speaker 4>Crystal Module is lifted for mir This was a experimental

217
00:10:29.200 --> 00:10:32.600
<v Speaker 4>module that had materials processing furnaces on it, so they

218
00:10:32.600 --> 00:10:35.320
<v Speaker 4>were attempting to make ultra puer versions silicon and a

219
00:10:35.320 --> 00:10:38.679
<v Speaker 4>bunch of other experiments. They also had one of the

220
00:10:38.799 --> 00:10:45.000
<v Speaker 4>very first androgynist docking ports, initially for the Brand Shuttle,

221
00:10:45.000 --> 00:10:46.960
<v Speaker 4>which of course would only have flown once a few

222
00:10:47.000 --> 00:10:49.600
<v Speaker 4>years ago, will never fly again, but that port would

223
00:10:49.679 --> 00:10:53.600
<v Speaker 4>be used by Spatial Atlantis at nineteen ninety five at

224
00:10:53.639 --> 00:10:57.759
<v Speaker 4>the first dockings of space to the Shuttle to Mirror.

225
00:10:57.799 --> 00:11:00.399
<v Speaker 1>Okay, and that's what I got, all right, that's very

226
00:11:00.399 --> 00:11:03.440
<v Speaker 1>good stuff. Yeah, and I think Damien's just kind of

227
00:11:03.519 --> 00:11:05.679
<v Speaker 1>quiet because it's like seven o'clock in the morning where

228
00:11:05.720 --> 00:11:06.440
<v Speaker 1>you are, right.

229
00:11:06.399 --> 00:11:09.600
<v Speaker 3>It's it's not too bad. It's I but I mean

230
00:11:09.639 --> 00:11:11.799
<v Speaker 3>I was listening to all this. It's fascinating. I was ten,

231
00:11:12.240 --> 00:11:17.200
<v Speaker 3>so yeah. Yeah, although that's the first computer I ever

232
00:11:17.240 --> 00:11:19.879
<v Speaker 3>got was that year nineteen ninety. Yeah, and I say

233
00:11:20.399 --> 00:11:25.080
<v Speaker 3>I got dad hadn't have had some stay over it. Yeah. Yeah,

234
00:11:25.279 --> 00:11:28.080
<v Speaker 3>he slowly lost control over it over the next few years.

235
00:11:28.080 --> 00:11:30.279
<v Speaker 4>I suspect ten years old is one I got grabbed

236
00:11:30.279 --> 00:11:32.799
<v Speaker 4>by computing too, dude, just a few years earlier than years.

237
00:11:32.799 --> 00:11:36.240
<v Speaker 1>Well yeah, yeah, well let's keep going with better no

238
00:11:36.360 --> 00:11:47.639
<v Speaker 1>framework roll the music got so I thought when I

239
00:11:47.679 --> 00:11:51.879
<v Speaker 1>found you know, I look for trending GitHub repos right

240
00:11:53.000 --> 00:11:55.000
<v Speaker 1>and I found this one. And when I saw it,

241
00:11:55.120 --> 00:11:59.120
<v Speaker 1>I thought, I swore that we had done this before,

242
00:12:00.120 --> 00:12:06.279
<v Speaker 1>but apparently not. Maybe it was I just don't know. Anyway.

243
00:12:06.360 --> 00:12:11.440
<v Speaker 1>This is hardened Windows Security from hot Cake X. And

244
00:12:11.480 --> 00:12:17.240
<v Speaker 1>it's not code really, it's documentation. It's hardened Window security,

245
00:12:17.320 --> 00:12:21.799
<v Speaker 1>a new threat to malware, hardened Windows safely securely with

246
00:12:22.320 --> 00:12:28.759
<v Speaker 1>only official Microsoft methods. So it's basically you know, documentation

247
00:12:29.120 --> 00:12:33.120
<v Speaker 1>and all the things that you need to know to

248
00:12:33.159 --> 00:12:37.360
<v Speaker 1>shore up your Windows security, which is really becoming more

249
00:12:37.440 --> 00:12:40.240
<v Speaker 1>and more and more important for everyday people to do,

250
00:12:41.200 --> 00:12:45.440
<v Speaker 1>especially you know, those who don't understand what the difference

251
00:12:45.519 --> 00:12:49.120
<v Speaker 1>is between just plugging into your cable modem and using

252
00:12:49.159 --> 00:12:53.720
<v Speaker 1>a router and using net addresses and private networks and

253
00:12:54.159 --> 00:12:58.039
<v Speaker 1>allowing your friends to come over and access your Wi Fi.

254
00:12:58.639 --> 00:13:01.279
<v Speaker 1>Can they access your machine? It's like, there's so many

255
00:13:01.279 --> 00:13:06.000
<v Speaker 1>things people need to know about Windows security. And you

256
00:13:06.080 --> 00:13:08.679
<v Speaker 1>may not think that, oh, well, I trust my friends,

257
00:13:08.679 --> 00:13:10.879
<v Speaker 1>but you know what, somebody could be sitting outside your

258
00:13:10.960 --> 00:13:15.840
<v Speaker 1>driveway and hacking your stuff. So all sorts of things

259
00:13:15.840 --> 00:13:16.360
<v Speaker 1>to know here.

260
00:13:16.519 --> 00:13:18.639
<v Speaker 4>I think it's important to remember that Windows is configured

261
00:13:18.639 --> 00:13:22.679
<v Speaker 4>for maximum compatibility, not maximum security, right, and so often

262
00:13:22.679 --> 00:13:24.200
<v Speaker 4>there's a whole lot of features that turned on that

263
00:13:24.200 --> 00:13:27.080
<v Speaker 4>are very much edge cases. But you know, normal people

264
00:13:27.120 --> 00:13:29.080
<v Speaker 4>that those things weren't turned on would return the machines

265
00:13:29.080 --> 00:13:31.120
<v Speaker 4>that didn't work for them, and that's more expensive to

266
00:13:31.200 --> 00:13:34.320
<v Speaker 4>Microsoft than leaving it somewhat unsecure. So it's well worth

267
00:13:34.399 --> 00:13:35.559
<v Speaker 4>running on so many tools.

268
00:13:35.600 --> 00:13:38.799
<v Speaker 1>As our friend Patrick Hines likes to say, convenience is

269
00:13:38.799 --> 00:13:41.960
<v Speaker 1>the enemy of security and vice versa totally. So that's

270
00:13:42.000 --> 00:13:43.879
<v Speaker 1>what I got. Richard, who's talking to us today?

271
00:13:44.000 --> 00:13:46.519
<v Speaker 4>We grab a Colmin Hot Show fourteen twenty five.

272
00:13:46.559 --> 00:13:48.080
<v Speaker 3>That's right, baby, going back to the way.

273
00:13:47.919 --> 00:13:49.960
<v Speaker 4>Back we should good nine years ago. Wow, the show

274
00:13:50.039 --> 00:13:54.039
<v Speaker 4>is called brown Field DevOps with one Damien Brady. Maybe

275
00:13:54.039 --> 00:13:57.679
<v Speaker 4>you've heard of them. So it's just we actually shot

276
00:13:57.679 --> 00:14:00.639
<v Speaker 4>this at NDC Lendon. You and I in a booth

277
00:14:00.679 --> 00:14:03.159
<v Speaker 4>with Damien. Back in the day we were talking. You know,

278
00:14:03.159 --> 00:14:05.679
<v Speaker 4>the demops movement was more mature than it is twenty seventeen.

279
00:14:05.720 --> 00:14:07.679
<v Speaker 4>Asould I say, how do we take these practices and

280
00:14:07.720 --> 00:14:10.519
<v Speaker 4>put them on to existing applications, sort of get them

281
00:14:10.639 --> 00:14:13.200
<v Speaker 4>geared up to the way they ought to be and

282
00:14:13.519 --> 00:14:15.840
<v Speaker 4>at least comments a few years old. Robert Mattingley says,

283
00:14:16.000 --> 00:14:18.879
<v Speaker 4>thanks for the great show, guys. Legacy shows are always

284
00:14:18.919 --> 00:14:21.639
<v Speaker 4>stock provoking. But the common trend seems to be defining

285
00:14:21.679 --> 00:14:25.600
<v Speaker 4>the term quote legacy code. It's kind of subject discussed.

286
00:14:25.600 --> 00:14:28.879
<v Speaker 4>It needs to be redefined for our current conversation. I

287
00:14:28.879 --> 00:14:30.440
<v Speaker 4>think the big hairy problem is that we use the

288
00:14:30.480 --> 00:14:33.200
<v Speaker 4>term legacy to define three separate categories of code. The

289
00:14:33.240 --> 00:14:35.600
<v Speaker 4>first and best category code, which is battle tested, reliable

290
00:14:35.879 --> 00:14:38.120
<v Speaker 4>makes the best use of the language features at the time,

291
00:14:38.720 --> 00:14:40.879
<v Speaker 4>may be hard to improve with modern features. A lot

292
00:14:40.879 --> 00:14:43.240
<v Speaker 4>of Cobol could fall into this category. It may see

293
00:14:43.279 --> 00:14:46.480
<v Speaker 4>our cane, but it's reliable and it uses the platform well.

294
00:14:46.720 --> 00:14:49.360
<v Speaker 4>The second category, code is functional and reliable uses conventions

295
00:14:49.399 --> 00:14:52.759
<v Speaker 4>which are now considered outdated or harmful. I'm looking at

296
00:14:52.799 --> 00:14:56.519
<v Speaker 4>you go to command. The code doesn't need a change,

297
00:14:56.559 --> 00:14:58.480
<v Speaker 4>but could be improved by taking advantage of new features

298
00:14:58.559 --> 00:15:01.720
<v Speaker 4>or conventions. And the final category is code the just

299
00:15:01.759 --> 00:15:04.360
<v Speaker 4>plane sucks. It was bad when it was written, and

300
00:15:04.399 --> 00:15:06.840
<v Speaker 4>it's bad now. We've all written it, so there's no

301
00:15:06.960 --> 00:15:10.039
<v Speaker 4>use of pointing fingers. But it is an ugly baby.

302
00:15:10.320 --> 00:15:13.919
<v Speaker 4>Ugly things like using a cascade of seventeen try catch

303
00:15:13.960 --> 00:15:17.120
<v Speaker 4>blocks to handle a value assignment, or these SQL injectable

304
00:15:17.120 --> 00:15:21.840
<v Speaker 4>storage procedures because hey, we need dynamic behavior, or checking

305
00:15:21.840 --> 00:15:24.480
<v Speaker 4>if your user is authenticated or not checking if your

306
00:15:24.559 --> 00:15:28.279
<v Speaker 4>user is authenticated anywhere but the log in page letting

307
00:15:28.279 --> 00:15:30.759
<v Speaker 4>anyone who could play yes the URL to have full

308
00:15:30.799 --> 00:15:33.759
<v Speaker 4>of mint access to your web app. If we call

309
00:15:33.840 --> 00:15:37.440
<v Speaker 4>all these things legacy code, as if they all had

310
00:15:37.480 --> 00:15:39.200
<v Speaker 4>the same value, it needed to be treated.

311
00:15:39.039 --> 00:15:39.679
<v Speaker 3>The same way.

312
00:15:40.159 --> 00:15:42.480
<v Speaker 4>They really don't, and it's important to recognize they need

313
00:15:42.519 --> 00:15:44.799
<v Speaker 4>to be treated differently. Be nice to have a term

314
00:15:44.960 --> 00:15:47.639
<v Speaker 4>for each of these categories so that we could differentiate them.

315
00:15:48.039 --> 00:15:49.919
<v Speaker 4>They really don't, and it's important to recognize that they

316
00:15:49.960 --> 00:15:50.919
<v Speaker 4>need to be treated differently.

317
00:15:51.240 --> 00:15:51.759
<v Speaker 3>It would be.

318
00:15:51.759 --> 00:15:53.639
<v Speaker 4>Nice to have a term for each of these categories

319
00:15:53.639 --> 00:15:56.840
<v Speaker 4>so we could differentiate what should be preserved and what

320
00:15:57.000 --> 00:15:58.519
<v Speaker 4>genuinely needs a rewrite.

321
00:15:58.600 --> 00:16:02.759
<v Speaker 1>I consider legacy code any code that nobody on staff

322
00:16:02.759 --> 00:16:05.159
<v Speaker 1>can read and understand. That's fair.

323
00:16:05.960 --> 00:16:08.200
<v Speaker 4>We're no longer compilable. That's a good one.

324
00:16:08.320 --> 00:16:10.480
<v Speaker 1>That's a good one. Yeah, that's pretty good.

325
00:16:10.879 --> 00:16:12.240
<v Speaker 4>I don't know that I have much to add to

326
00:16:12.320 --> 00:16:14.840
<v Speaker 4>Roberts's points here, because I think he's completely correct. That's

327
00:16:14.879 --> 00:16:16.600
<v Speaker 4>one of the reasons I read it. There really is

328
00:16:16.639 --> 00:16:19.279
<v Speaker 4>these different kinds of software, and yeah, it would be

329
00:16:19.360 --> 00:16:22.159
<v Speaker 4>nice if we treated them with especially that old good code,

330
00:16:22.200 --> 00:16:25.159
<v Speaker 4>with more respect. Right, And certainly, you know, we tend

331
00:16:25.159 --> 00:16:27.480
<v Speaker 4>to package up those old reliable apps, like those Cobald

332
00:16:27.519 --> 00:16:29.279
<v Speaker 4>apps in wrappers so that we can call to them

333
00:16:29.279 --> 00:16:32.679
<v Speaker 4>with more modern things. But often that coach does not

334
00:16:32.879 --> 00:16:33.639
<v Speaker 4>need to be replaced.

335
00:16:33.879 --> 00:16:34.440
<v Speaker 3>It works.

336
00:16:35.200 --> 00:16:37.919
<v Speaker 4>But we've all made some ugly Yeah, we'd all love

337
00:16:37.960 --> 00:16:39.840
<v Speaker 4>to go back and clean up the ugly. It's usually,

338
00:16:40.080 --> 00:16:43.000
<v Speaker 4>you know, no applications finished, it's just taken away from

339
00:16:43.039 --> 00:16:46.200
<v Speaker 4>you and deployed. M HM, which you could do about that, Robert,

340
00:16:46.279 --> 00:16:48.000
<v Speaker 4>thank you so much for your comment. And a copy

341
00:16:48.000 --> 00:16:49.360
<v Speaker 4>of music co Buy is on its way to you.

342
00:16:49.360 --> 00:16:50.799
<v Speaker 4>And if you'd like a copy of music go buy,

343
00:16:50.919 --> 00:16:52.919
<v Speaker 4>write a comment on the website at dot net rocks

344
00:16:52.919 --> 00:16:54.960
<v Speaker 4>dot com or on the Facebook and a couple whichever

345
00:16:54.960 --> 00:16:56.720
<v Speaker 4>show there and you comment there and I reading the show,

346
00:16:56.879 --> 00:16:58.320
<v Speaker 4>we'll send you copy bees to go buy.

347
00:16:58.399 --> 00:17:00.600
<v Speaker 1>Yeah, music to code by dot net where you can

348
00:17:00.639 --> 00:17:03.039
<v Speaker 1>get that if you don't win it yourself and you

349
00:17:03.120 --> 00:17:05.480
<v Speaker 1>just want to buy it. We have the entire twenty

350
00:17:05.480 --> 00:17:10.039
<v Speaker 1>two track collection in MP, three wave and FLACK versions.

351
00:17:11.079 --> 00:17:14.160
<v Speaker 1>All right, So I guess it's time to introduce Damien.

352
00:17:14.400 --> 00:17:16.599
<v Speaker 1>His bio has changed a little bit since the last

353
00:17:16.640 --> 00:17:19.680
<v Speaker 1>time he's been on the show. Damian Brady is a developer,

354
00:17:19.839 --> 00:17:25.920
<v Speaker 1>speaker and author specializing in DevOps, mL OPS, developer process

355
00:17:26.000 --> 00:17:29.480
<v Speaker 1>and software architecture. He's a senior manager and the Developer

356
00:17:29.480 --> 00:17:34.759
<v Speaker 1>advocac team at GitHub based in Brisbane, Australia. Formerly a

357
00:17:34.759 --> 00:17:38.039
<v Speaker 1>cloud advocate, at Microsoft for four years and prior to

358
00:17:38.079 --> 00:17:41.880
<v Speaker 1>that a dev at Octopus Deploy and a Microsoft MVP.

359
00:17:42.480 --> 00:17:46.880
<v Speaker 1>Damien has over twenty years in software development and consulting

360
00:17:47.319 --> 00:17:50.960
<v Speaker 1>in a broad range of industries. In Australia. He co

361
00:17:51.079 --> 00:17:54.799
<v Speaker 1>organized the Brisbane dot Net User Group and launched the

362
00:17:54.799 --> 00:17:59.000
<v Speaker 1>annual DDD Brisbane Conference. Welcome back, Damien.

363
00:17:59.359 --> 00:18:00.880
<v Speaker 3>Thanks really good to be back.

364
00:18:01.039 --> 00:18:03.400
<v Speaker 4>I think we've interviewed you in every one of your jobs.

365
00:18:03.839 --> 00:18:05.400
<v Speaker 4>I'm sure we did a show when you were with

366
00:18:05.640 --> 00:18:06.480
<v Speaker 4>Octavis Deploy.

367
00:18:06.720 --> 00:18:08.240
<v Speaker 1>Definitely, yeah, yeah.

368
00:18:08.079 --> 00:18:10.839
<v Speaker 4>And definitely when at Microsoft and our GitHub, although as

369
00:18:10.880 --> 00:18:13.400
<v Speaker 4>I understand it now, the line between Microsoft and GitHub

370
00:18:13.519 --> 00:18:16.720
<v Speaker 4>is very almost not existent these days, isn't it.

371
00:18:17.119 --> 00:18:20.319
<v Speaker 3>Look it depends which part of GitHub and Microsoft you're in.

372
00:18:20.400 --> 00:18:24.720
<v Speaker 3>But yes, yeah, exactly right. Yeah, there's some very interesting

373
00:18:24.799 --> 00:18:27.759
<v Speaker 3>reporting chains going on at Microsoft and get ub at

374
00:18:27.759 --> 00:18:32.599
<v Speaker 3>the moment. But the short version is that we're much

375
00:18:32.640 --> 00:18:35.240
<v Speaker 3>closer than we used to be. So there's people on

376
00:18:35.279 --> 00:18:37.519
<v Speaker 3>my team, like right next to me on my team

377
00:18:37.559 --> 00:18:41.279
<v Speaker 3>who work for Microsoft and have the same manager as me,

378
00:18:42.160 --> 00:18:44.759
<v Speaker 3>even though I'm employed by GitHub. So there's a lot

379
00:18:44.799 --> 00:18:47.920
<v Speaker 3>of that kind of thing happening. Means that you know

380
00:18:48.160 --> 00:18:51.200
<v Speaker 3>the stuff we're developing, particularly you know, co Pilot and

381
00:18:51.440 --> 00:18:54.880
<v Speaker 3>all the dev tools. You know, we're working on them together.

382
00:18:55.000 --> 00:18:57.599
<v Speaker 4>I guess sounds like our friend Martin Woodward has got

383
00:18:57.599 --> 00:18:58.519
<v Speaker 4>a big, fat promotion.

384
00:18:58.759 --> 00:19:04.240
<v Speaker 3>He is a VP of Devrell and very recently that

385
00:19:04.279 --> 00:19:09.559
<v Speaker 3>includes a huge number of developer advocates or like your

386
00:19:09.680 --> 00:19:12.920
<v Speaker 3>old job. Yeah, yeah, exactly, so half of the Microsoft

387
00:19:12.920 --> 00:19:14.799
<v Speaker 3>Deverell team kind of reports up through him.

388
00:19:14.839 --> 00:19:16.960
<v Speaker 4>Now, I've always been a big fan of Martin wood

389
00:19:16.960 --> 00:19:18.279
<v Speaker 4>where I'm glad he's doing well.

390
00:19:18.400 --> 00:19:19.279
<v Speaker 1>Me too, he is.

391
00:19:19.359 --> 00:19:23.079
<v Speaker 3>I saw him just before NDC London that were we

392
00:19:23.079 --> 00:19:24.960
<v Speaker 3>were both at Richard the other day.

393
00:19:25.039 --> 00:19:26.880
<v Speaker 4>Yeah, you were really keyn order for that show.

394
00:19:26.920 --> 00:19:29.640
<v Speaker 3>As I recall, I was, yeah, that was fun.

395
00:19:30.000 --> 00:19:33.119
<v Speaker 1>I like the way Martin says bogs and to fix

396
00:19:33.200 --> 00:19:33.720
<v Speaker 1>the bugs.

397
00:19:33.920 --> 00:19:37.079
<v Speaker 3>I think I think the faith is naughty. I think

398
00:19:37.160 --> 00:19:46.759
<v Speaker 3>we get to say naughty a lot, those naughty bogs right, love.

399
00:19:46.640 --> 00:19:47.279
<v Speaker 4>Me and Irish Ac.

400
00:19:47.519 --> 00:19:49.680
<v Speaker 1>So what are you thinking about these days in terms

401
00:19:49.680 --> 00:19:52.920
<v Speaker 1>of software and the big picture? It seems to have

402
00:19:53.039 --> 00:19:55.039
<v Speaker 1>changed a bit since you were last with us.

403
00:19:55.200 --> 00:19:59.480
<v Speaker 3>Yeah, yes, well, yes, definitely, but in some respects No,

404
00:20:00.440 --> 00:20:04.640
<v Speaker 3>it was interesting listening to that. You know the title

405
00:20:04.720 --> 00:20:09.039
<v Speaker 3>of that that last last podcast I recorded with you guys,

406
00:20:09.039 --> 00:20:12.759
<v Speaker 3>the you know, the brown Fields DevOps of stuff, and

407
00:20:12.799 --> 00:20:15.880
<v Speaker 3>I remember that, remember that distinctly, and that was really

408
00:20:15.920 --> 00:20:20.799
<v Speaker 3>all about taking code that did not have, you know, that,

409
00:20:20.839 --> 00:20:24.799
<v Speaker 3>the safety nets around it and adding those safety nets in.

410
00:20:24.960 --> 00:20:27.200
<v Speaker 3>And in that respect, I'm kind of talking about the

411
00:20:27.200 --> 00:20:32.119
<v Speaker 3>same stuff these days. Sure, it's just instead of you know,

412
00:20:32.279 --> 00:20:35.400
<v Speaker 3>legacy code that nobody understands, it has no tests around.

413
00:20:35.119 --> 00:20:38.200
<v Speaker 4>It, written by a person that no longer at the company.

414
00:20:38.880 --> 00:20:40.880
<v Speaker 4>Now it's just not written by a person at all.

415
00:20:41.279 --> 00:20:43.599
<v 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
<v Speaker 3>using the people anymore. Yeah, So it's a similar kind

417
00:20:47.680 --> 00:20:50.559
<v Speaker 3>of thing like where I mean that the way we

418
00:20:50.640 --> 00:20:55.200
<v Speaker 3>write code largely has changed, where Like depending on how

419
00:20:55.279 --> 00:20:58.279
<v Speaker 3>much of the code you're you're physically typing out yourself.

420
00:20:58.839 --> 00:21:02.960
<v Speaker 3>And there's a huge area everything from you know, just

421
00:21:03.119 --> 00:21:07.400
<v Speaker 3>using copilot or clawed or cursor or any of those things,

422
00:21:07.440 --> 00:21:10.000
<v Speaker 3>to you know, to just auto complete the line you're

423
00:21:10.039 --> 00:21:12.119
<v Speaker 3>on all the way through to hey, you give me

424
00:21:12.119 --> 00:21:15.279
<v Speaker 3>an app that does this and then ship it to PROD.

425
00:21:16.559 --> 00:21:18.480
<v Speaker 3>But either way, you know that code is not coming

426
00:21:18.480 --> 00:21:24.079
<v Speaker 3>out of your fingers directly one could argue the things

427
00:21:24.079 --> 00:21:26.039
<v Speaker 3>that run on the machine have not come out of

428
00:21:26.039 --> 00:21:28.880
<v Speaker 3>your fingers directly for quite some time. But it's a

429
00:21:28.920 --> 00:21:30.920
<v Speaker 3>little bit less deterministic now, you know.

430
00:21:31.160 --> 00:21:33.400
<v Speaker 4>Yeah, so you said none of us has written a

431
00:21:33.519 --> 00:21:37.119
<v Speaker 4>garbage collect or any time recently, or any cryptographic library.

432
00:21:37.400 --> 00:21:39.119
<v Speaker 4>You know, we depend on code all the time.

433
00:21:39.279 --> 00:21:43.400
<v Speaker 1>Yeah, exactly, And that's really it and software development encoding

434
00:21:43.640 --> 00:21:47.279
<v Speaker 1>is really about expression. You want to express your intent

435
00:21:47.359 --> 00:21:50.000
<v Speaker 1>to the computer to do something and have it do it,

436
00:21:50.839 --> 00:21:54.480
<v Speaker 1>and you know, you express through code the instructions. But

437
00:21:54.680 --> 00:21:58.000
<v Speaker 1>now we're at such a high level with you know,

438
00:21:58.240 --> 00:22:01.039
<v Speaker 1>the agents and all of that that we're expressing to

439
00:22:01.200 --> 00:22:04.599
<v Speaker 1>an agent in the English what to do, and it's

440
00:22:04.799 --> 00:22:08.200
<v Speaker 1>just another higher level of programming if you think about it.

441
00:22:08.319 --> 00:22:11.160
<v Speaker 3>There is I think there was, there's always been this

442
00:22:11.279 --> 00:22:15.000
<v Speaker 3>level at which you don't quite understand what's happeningneth. I mean,

443
00:22:15.559 --> 00:22:17.759
<v Speaker 3>you write your code, and if you understand what that

444
00:22:17.799 --> 00:22:21.599
<v Speaker 3>code is supposed to do, then you can largely trust

445
00:22:21.640 --> 00:22:25.119
<v Speaker 3>that the OS and the hardware and the platform and

446
00:22:25.160 --> 00:22:27.599
<v Speaker 3>the framework and all the things you're using are going

447
00:22:27.640 --> 00:22:30.559
<v Speaker 3>to do what you expect them to do. There was

448
00:22:30.640 --> 00:22:33.880
<v Speaker 3>an interesting story told in this ynote as well. Actually

449
00:22:33.920 --> 00:22:38.039
<v Speaker 3>about basically showed people some code and it was a

450
00:22:38.079 --> 00:22:41.519
<v Speaker 3>you know, setting some variables and then a trycatch statement

451
00:22:41.599 --> 00:22:44.960
<v Speaker 3>and then they catch you you know, would write some

452
00:22:44.960 --> 00:22:47.599
<v Speaker 3>stuff out to the console, and you know, this is

453
00:22:47.640 --> 00:22:50.799
<v Speaker 3>a dot Net you know, some c sharp. It took people,

454
00:22:51.039 --> 00:22:53.799
<v Speaker 3>you know a few seconds, but everybody kind of said, okay, well, great,

455
00:22:54.039 --> 00:22:57.400
<v Speaker 3>it writes this value out. And that's true. It absolutely does,

456
00:22:57.680 --> 00:23:02.039
<v Speaker 3>unless you compiled it in September of nineteen ninety five

457
00:23:02.200 --> 00:23:04.400
<v Speaker 3>or something like that, because there was a version of

458
00:23:04.440 --> 00:23:07.599
<v Speaker 3>the dot net framework, not ninety ninety five, twenty fifteen,

459
00:23:07.599 --> 00:23:09.519
<v Speaker 3>I think there was a version of the dot net

460
00:23:09.640 --> 00:23:13.000
<v Speaker 3>four point six framework where they changed the just in

461
00:23:13.039 --> 00:23:16.160
<v Speaker 3>time compiler. So if you compiled that in release mode

462
00:23:16.200 --> 00:23:20.839
<v Speaker 3>with compiler optimizations on, sometimes it wiped out. It optimized

463
00:23:20.839 --> 00:23:21.920
<v Speaker 3>out that catch statement.

464
00:23:23.519 --> 00:23:28.799
<v Speaker 4>When that thing's more optimal than not running code. That's

465
00:23:28.920 --> 00:23:29.559
<v Speaker 4>very optimal.

466
00:23:29.640 --> 00:23:30.160
<v Speaker 3>That's true.

467
00:23:30.599 --> 00:23:33.200
<v Speaker 1>Well, you know it's still deterministic though you just didn't

468
00:23:33.240 --> 00:23:33.759
<v Speaker 1>know the rule.

469
00:23:34.359 --> 00:23:38.079
<v Speaker 3>Yeah, right, right, And it's very very difficult to debug

470
00:23:38.160 --> 00:23:41.519
<v Speaker 3>that if it only runs in an optimized release mode.

471
00:23:41.559 --> 00:23:44.319
<v Speaker 3>But like to credit, they fixed it very quickly. However,

472
00:23:44.799 --> 00:23:48.160
<v Speaker 3>you know, it did highlight that at some point you

473
00:23:48.200 --> 00:23:50.200
<v Speaker 3>don't really know what's going to happen. I think the

474
00:23:50.759 --> 00:23:54.519
<v Speaker 3>huge difference that we've got now is that all of

475
00:23:54.519 --> 00:23:57.200
<v Speaker 3>that stuff is largely trustworthy. You know, if if that

476
00:23:57.240 --> 00:23:59.200
<v Speaker 3>doesn't work for you, it's also not working for the

477
00:23:59.599 --> 00:24:02.880
<v Speaker 3>banker around the corner that has all your money. You know,

478
00:24:03.160 --> 00:24:05.480
<v Speaker 3>your inventory system is probably the least of your worries

479
00:24:05.559 --> 00:24:09.880
<v Speaker 3>right now. But with AI driven stuff, where you are

480
00:24:09.880 --> 00:24:12.599
<v Speaker 3>giving it the intent, you actually don't know what code

481
00:24:12.599 --> 00:24:15.519
<v Speaker 3>is running underneath, and so there's a huge gap, much more,

482
00:24:15.759 --> 00:24:19.680
<v Speaker 3>much more of a significant gap between your intent and

483
00:24:20.240 --> 00:24:22.319
<v Speaker 3>what actually comes out of the other side. And that's

484
00:24:22.720 --> 00:24:24.759
<v Speaker 3>that's something that we probably and then need to think.

485
00:24:24.880 --> 00:24:29.359
<v Speaker 1>And the nondeterministic nature of these agents means that you know,

486
00:24:29.559 --> 00:24:33.680
<v Speaker 1>you could express your intent once on a Monday and

487
00:24:33.839 --> 00:24:36.559
<v Speaker 1>express that same intent on Tuesday, and you're two completely

488
00:24:36.640 --> 00:24:39.079
<v Speaker 1>different results and one of them could be absolutely wrong.

489
00:24:39.319 --> 00:24:41.039
<v Speaker 3>That's yeah, that's exactly right, all right.

490
00:24:41.279 --> 00:24:45.240
<v Speaker 4>I've run two prompts simultaneously and gotten two different results

491
00:24:45.240 --> 00:24:47.640
<v Speaker 4>back from the same prom Like, you don't have to

492
00:24:47.680 --> 00:24:49.799
<v Speaker 4>wait milk, It'll give you something ever time.

493
00:24:50.319 --> 00:24:52.599
<v Speaker 3>So if you show somebody a programmer a line of

494
00:24:52.640 --> 00:24:54.519
<v Speaker 3>code and say what does this do? They will be

495
00:24:54.559 --> 00:24:56.519
<v Speaker 3>able to tell you if you show them a prompt,

496
00:24:56.599 --> 00:24:58.920
<v Speaker 3>a single line prompt and say what does this do?

497
00:24:59.480 --> 00:25:02.519
<v Speaker 3>There's no to know. You can guess. You know, the

498
00:25:02.920 --> 00:25:07.319
<v Speaker 3>tools are getting better and a little bit more deterministic,

499
00:25:07.359 --> 00:25:09.880
<v Speaker 3>but at some point, you know, especially when you're asking

500
00:25:09.880 --> 00:25:12.319
<v Speaker 3>for large pieces of work, at some point you really

501
00:25:12.359 --> 00:25:13.759
<v Speaker 3>just don't know what's going to come out.

502
00:25:13.920 --> 00:25:16.319
<v Speaker 4>Right, So is this all about testing?

503
00:25:16.359 --> 00:25:16.519
<v Speaker 3>Then?

504
00:25:16.640 --> 00:25:18.200
<v Speaker 4>Like, is that really the thing we've got to get

505
00:25:18.200 --> 00:25:18.599
<v Speaker 4>better at.

506
00:25:19.000 --> 00:25:21.200
<v Speaker 3>I mean, that's that's definitely a large part of it.

507
00:25:21.680 --> 00:25:25.240
<v Speaker 3>But there's only so much you can really do with

508
00:25:25.240 --> 00:25:29.839
<v Speaker 3>with tests, I mean, especially especially asking for large pieces

509
00:25:29.839 --> 00:25:33.039
<v Speaker 3>of code, so that there's kind of a sliding scale

510
00:25:33.240 --> 00:25:37.319
<v Speaker 3>of you know how much you're asking for, asking an

511
00:25:37.400 --> 00:25:41.880
<v Speaker 3>LLM for, or asking a tool for, and the know

512
00:25:41.920 --> 00:25:46.960
<v Speaker 3>how close to your desired outcome it's going to get.

513
00:25:47.160 --> 00:25:49.160
<v Speaker 3>If you ask for a single line of code that

514
00:25:49.200 --> 00:25:52.000
<v Speaker 3>does this, it's very very likely that that's going to

515
00:25:52.039 --> 00:25:55.119
<v Speaker 3>be correct. If you ask for a function, depends on

516
00:25:55.160 --> 00:25:57.680
<v Speaker 3>the function, but pretty likely that you're going to get

517
00:25:57.680 --> 00:26:00.000
<v Speaker 3>a good result as long as you've defined it correctly

518
00:26:00.079 --> 00:26:01.640
<v Speaker 3>and you've given it a good prompt and it's got

519
00:26:01.680 --> 00:26:04.559
<v Speaker 3>some good context. But if you ask for an entire application,

520
00:26:05.240 --> 00:26:07.920
<v Speaker 3>you know, even if it's a relatively small one, you're

521
00:26:07.960 --> 00:26:10.039
<v Speaker 3>probably going to have to iterate on that a handful

522
00:26:10.079 --> 00:26:10.440
<v Speaker 3>of time.

523
00:26:10.839 --> 00:26:14.839
<v Speaker 1>So I'm much more comfortable iterating than I am just

524
00:26:15.000 --> 00:26:17.079
<v Speaker 1>you know, giving. And I didn't used to think that,

525
00:26:17.920 --> 00:26:20.920
<v Speaker 1>especially before I even started with this stuff, sitting down

526
00:26:20.920 --> 00:26:23.440
<v Speaker 1>with Scott got three at a conference somewhere and we

527
00:26:23.440 --> 00:26:26.519
<v Speaker 1>were both in agreement that just you know, use your imagination.

528
00:26:26.640 --> 00:26:29.200
<v Speaker 1>It's so big, just think big and give it this great,

529
00:26:29.279 --> 00:26:32.400
<v Speaker 1>big prompt, and you know, if it doesn't work, it

530
00:26:32.440 --> 00:26:34.640
<v Speaker 1>doesn't work, you just try again. And I don't think

531
00:26:34.680 --> 00:26:38.640
<v Speaker 1>that anymore. I think small iterations is much better, especially

532
00:26:38.680 --> 00:26:42.000
<v Speaker 1>because you can kind of track the progress and test things,

533
00:26:42.519 --> 00:26:44.920
<v Speaker 1>you know, and if something doesn't work, you can say no, no, no, no,

534
00:26:45.000 --> 00:26:48.400
<v Speaker 1>that was wrong. Yeah that's not what I meant. Erase

535
00:26:48.480 --> 00:26:49.599
<v Speaker 1>that and try again.

536
00:26:49.799 --> 00:26:53.279
<v Speaker 3>Yeah. That's how I'm comfortable doing it. And that means

537
00:26:53.279 --> 00:26:56.119
<v Speaker 3>that all of your existing testing strategies, you know, TDD

538
00:26:56.279 --> 00:26:57.880
<v Speaker 3>and stuff like that, you can still kind of do

539
00:26:57.960 --> 00:27:00.559
<v Speaker 3>that if you if you can give at an entry

540
00:27:00.559 --> 00:27:04.519
<v Speaker 3>point and an expected result. So here is a function header,

541
00:27:05.599 --> 00:27:08.200
<v Speaker 3>Go implement that function for me, and I can write

542
00:27:08.240 --> 00:27:10.279
<v Speaker 3>some tests around that to proof that that works. I

543
00:27:10.279 --> 00:27:12.200
<v Speaker 3>can even get, you know, get the tools to help

544
00:27:12.200 --> 00:27:13.920
<v Speaker 3>me write those tests. I can get the tools to

545
00:27:13.960 --> 00:27:16.000
<v Speaker 3>help you look for edge cases I hadn't thought of.

546
00:27:16.559 --> 00:27:19.160
<v Speaker 3>But yeah, if you're asking for a web app to

547
00:27:19.200 --> 00:27:21.559
<v Speaker 3>do it to do X thing, then you don't know

548
00:27:21.599 --> 00:27:23.680
<v Speaker 3>what shape that code is going to take, and so

549
00:27:23.720 --> 00:27:26.839
<v Speaker 3>it's a little hard to write tests around that. At least,

550
00:27:27.440 --> 00:27:30.039
<v Speaker 3>you know, very specific tests. You could probably write some

551
00:27:30.119 --> 00:27:33.920
<v Speaker 3>broad functional tests, I guess, but even then they've got

552
00:27:33.960 --> 00:27:35.759
<v Speaker 3>to match the shape of the code that comes out.

553
00:27:36.119 --> 00:27:39.400
<v Speaker 4>The token economy actually encourages practice. I mean the problem

554
00:27:39.400 --> 00:27:41.319
<v Speaker 4>with ready the mother of all prompts. It thinks the

555
00:27:41.359 --> 00:27:44.640
<v Speaker 4>mother of all tokens, and then it's wrong and you've

556
00:27:44.640 --> 00:27:45.720
<v Speaker 4>got to do it again.

557
00:27:46.039 --> 00:27:49.279
<v Speaker 3>Yeah a little bit. Yeah, I mean behind the scenes,

558
00:27:50.839 --> 00:27:53.480
<v Speaker 3>and this is not how you're charged necessarily, but behind

559
00:27:53.519 --> 00:27:56.200
<v Speaker 3>the scenes there's usually a lot of iteration going on anyway,

560
00:27:56.599 --> 00:27:58.480
<v Speaker 3>because it's very difficult to give it the mother of

561
00:27:58.519 --> 00:28:02.079
<v Speaker 3>all prompts and then say, okay, go implement those thirty

562
00:28:02.079 --> 00:28:05.440
<v Speaker 3>five files in one in one cycle. I mean, the

563
00:28:05.839 --> 00:28:09.279
<v Speaker 3>context window even if it's luge enough, it's you know,

564
00:28:09.519 --> 00:28:11.599
<v Speaker 3>you lose fidelity. I guess once it.

565
00:28:11.559 --> 00:28:13.839
<v Speaker 4>Gets reminds me of the guy who writes a giant

566
00:28:13.880 --> 00:28:16.400
<v Speaker 4>stored procedure that I had to swat with a newspaper. Bad,

567
00:28:16.720 --> 00:28:21.799
<v Speaker 4>don't it's not good? Like I feel like you're taking

568
00:28:21.799 --> 00:28:24.640
<v Speaker 4>the architect's responsibility here to do a decomposition of the

569
00:28:24.640 --> 00:28:27.200
<v Speaker 4>problem spaced, break it down a series of steps, and

570
00:28:27.200 --> 00:28:30.200
<v Speaker 4>then feed it to the machine to execute each piece

571
00:28:30.200 --> 00:28:30.559
<v Speaker 4>in turn.

572
00:28:30.680 --> 00:28:34.880
<v Speaker 1>And there's there's a there's a danger here that you

573
00:28:34.920 --> 00:28:38.720
<v Speaker 1>don't pay. You know, you're so eager to finish the

574
00:28:38.759 --> 00:28:41.319
<v Speaker 1>feature and get it working and check it in that

575
00:28:41.400 --> 00:28:45.200
<v Speaker 1>you don't check it out. You don't understand what it did.

576
00:28:45.720 --> 00:28:49.960
<v Speaker 1>You didn't read the three through the code, and then

577
00:28:50.119 --> 00:28:52.519
<v Speaker 1>so you're you're trying to figure it out because there's

578
00:28:52.519 --> 00:28:54.680
<v Speaker 1>a bug or something like that that you have to fix,

579
00:28:54.680 --> 00:28:56.279
<v Speaker 1>and you think, oh, I'll just look through the code

580
00:28:56.279 --> 00:28:59.039
<v Speaker 1>and see what it is. What's that. Oh I didn't

581
00:28:59.039 --> 00:29:02.880
<v Speaker 1>write that, Well, no, you didn't. Your agent wrote that. Oh,

582
00:29:03.000 --> 00:29:05.400
<v Speaker 1>now I got to figure that out at the wrong time.

583
00:29:05.680 --> 00:29:08.000
<v Speaker 1>You should. You should know what it does when it's.

584
00:29:07.839 --> 00:29:10.440
<v Speaker 3>Written and if it if it appears correct, like it

585
00:29:10.480 --> 00:29:13.759
<v Speaker 3>seems to be doing the right thing, then that's great,

586
00:29:13.799 --> 00:29:19.680
<v Speaker 3>but how how correct is the code underneath? Anyway, you

587
00:29:19.880 --> 00:29:22.119
<v Speaker 3>are probably not looking at all the educases when you're

588
00:29:22.160 --> 00:29:24.559
<v Speaker 3>just clicking through. It's kind of the old school QA

589
00:29:24.640 --> 00:29:27.240
<v Speaker 3>where somebody had a spreadsheet of you know, here are

590
00:29:27.240 --> 00:29:29.680
<v Speaker 3>the things that it should do, and they just click

591
00:29:29.680 --> 00:29:32.519
<v Speaker 3>on the buttons and say, yep, that's great, and then yeah.

592
00:29:32.200 --> 00:29:34.200
<v Speaker 1>And I like to be engaged in the process, Like

593
00:29:34.279 --> 00:29:37.200
<v Speaker 1>I like thinking about the architecture and what I need

594
00:29:37.240 --> 00:29:39.599
<v Speaker 1>to do to implement a feature. Oh, this is going

595
00:29:39.680 --> 00:29:41.240
<v Speaker 1>to have to go there, and then this guy's got

596
00:29:41.279 --> 00:29:43.200
<v Speaker 1>to reference that, and then you're going to throw it

597
00:29:43.240 --> 00:29:45.480
<v Speaker 1>over the wall to that guy and blah blah blah.

598
00:29:45.559 --> 00:29:48.240
<v Speaker 1>You know, I kind of really like that because it

599
00:29:48.319 --> 00:29:51.880
<v Speaker 1>keeps me engaged in the in the software itself. It'd

600
00:29:51.880 --> 00:29:54.319
<v Speaker 1>be boring for me if I just handed all that

601
00:29:54.480 --> 00:29:57.000
<v Speaker 1>over to an agent. So I like, there's a nice

602
00:29:57.039 --> 00:30:00.319
<v Speaker 1>balance there that I've gotten myself into the works.

603
00:30:00.359 --> 00:30:03.519
<v Speaker 3>Well, yeah, I agree. I work very similarly. So I

604
00:30:03.559 --> 00:30:05.880
<v Speaker 3>have a right in front of me on the screen.

605
00:30:05.880 --> 00:30:08.359
<v Speaker 3>Actually I have a little time zone help. I think

606
00:30:08.799 --> 00:30:11.559
<v Speaker 3>I'm in Australia obviously, but a lot of the team,

607
00:30:11.680 --> 00:30:15.079
<v Speaker 3>especially the team now that it's grown a bit scattered

608
00:30:15.400 --> 00:30:18.960
<v Speaker 3>kind of close by time zone wise but not exactly right.

609
00:30:19.279 --> 00:30:21.799
<v Speaker 3>And yes, there are some really good time zone tools

610
00:30:22.000 --> 00:30:23.839
<v Speaker 3>on the internet, but I just wanted one where I

611
00:30:23.839 --> 00:30:26.480
<v Speaker 3>could glance at it and say, for these time zones,

612
00:30:26.880 --> 00:30:30.119
<v Speaker 3>this is what time is right now. That was largely

613
00:30:30.160 --> 00:30:34.440
<v Speaker 3>a one shot using the Copilot CLI, but I still

614
00:30:34.440 --> 00:30:37.119
<v Speaker 3>iterated on it four or five times to say, oh,

615
00:30:37.160 --> 00:30:39.400
<v Speaker 3>this is great, but can you let me color code

616
00:30:39.400 --> 00:30:41.640
<v Speaker 3>these things? And can you change it so these things

617
00:30:41.680 --> 00:30:45.359
<v Speaker 3>line up instead? And so that's a relatively large piece

618
00:30:45.400 --> 00:30:47.039
<v Speaker 3>to start off with. But then once I have that

619
00:30:47.160 --> 00:30:48.880
<v Speaker 3>in front of me, I'm like, all right, here's the

620
00:30:49.240 --> 00:30:50.799
<v Speaker 3>here are the new things that I want, And what

621
00:30:50.880 --> 00:30:54.920
<v Speaker 3>did you actually do to implement that? Yeah, but this

622
00:30:55.119 --> 00:30:57.599
<v Speaker 3>is also this is like a little toy that I

623
00:30:57.640 --> 00:30:59.599
<v Speaker 3>have right in front of me. This is not a

624
00:30:59.680 --> 00:31:02.319
<v Speaker 3>super personal piece of software, is what it is? You

625
00:31:02.400 --> 00:31:04.200
<v Speaker 3>literally built a thing for you. Yeah.

626
00:31:04.279 --> 00:31:06.519
<v Speaker 1>I have so many of those little tools that and

627
00:31:06.599 --> 00:31:08.880
<v Speaker 1>I mentioned them from time to time, and I almost

628
00:31:08.920 --> 00:31:10.599
<v Speaker 1>don't want to mention them because I don't want people

629
00:31:10.640 --> 00:31:12.839
<v Speaker 1>to think I just sit around writing dumb tools all

630
00:31:12.880 --> 00:31:15.640
<v Speaker 1>the time, Like I have a professionalist artware development trives me.

631
00:31:16.559 --> 00:31:19.279
<v Speaker 3>Yeah, I have a friend who I'm not going to

632
00:31:19.319 --> 00:31:22.599
<v Speaker 3>name them, but I have a friend who their daughter

633
00:31:22.920 --> 00:31:26.319
<v Speaker 3>was going to look after their kid for a few days,

634
00:31:26.880 --> 00:31:30.000
<v Speaker 3>and they rade it. They wrote a daughter as an adult.

635
00:31:30.279 --> 00:31:30.720
<v Speaker 1>I got it.

636
00:31:31.880 --> 00:31:34.559
<v Speaker 3>But they wrote a several page document about all the

637
00:31:34.559 --> 00:31:37.119
<v Speaker 3>stuff in the house and what the kid does, and

638
00:31:37.160 --> 00:31:39.039
<v Speaker 3>what the kid needs, and all the things that they

639
00:31:39.119 --> 00:31:41.359
<v Speaker 3>need for school and all that, all that kind of stuff.

640
00:31:41.720 --> 00:31:44.519
<v Speaker 3>But of course, you know this person is not going

641
00:31:44.559 --> 00:31:48.640
<v Speaker 3>to read that document. So they vibe coded up a

642
00:31:48.720 --> 00:31:52.000
<v Speaker 3>little like chat pot, and you can ask anything you

643
00:31:52.039 --> 00:31:54.799
<v Speaker 3>want and it pulls the information just using a pretty

644
00:31:54.799 --> 00:31:58.440
<v Speaker 3>basic rag and then we'll answer that questions. And it

645
00:31:58.480 --> 00:32:02.119
<v Speaker 3>took half an hour. Right. It's a fun, little, very

646
00:32:02.160 --> 00:32:06.960
<v Speaker 3>specific tool for that person to say, hey, here's here's

647
00:32:06.960 --> 00:32:09.920
<v Speaker 3>a solution to the problem I'm inevitably going to have.

648
00:32:10.759 --> 00:32:14.680
<v Speaker 3>That's great. Yeah, those little tools a fantastic to be

649
00:32:14.759 --> 00:32:17.839
<v Speaker 3>able to do them even if you don't code. I

650
00:32:17.839 --> 00:32:20.839
<v Speaker 3>mean that's a you know, if you if you can't

651
00:32:20.880 --> 00:32:23.680
<v Speaker 3>look at that code and see exactly what it's doing.

652
00:32:23.880 --> 00:32:26.559
<v Speaker 1>You know, we used to talk about expert systems back

653
00:32:26.559 --> 00:32:30.680
<v Speaker 1>in the eighties, right, that was you know, a more

654
00:32:30.759 --> 00:32:33.640
<v Speaker 1>linearly coded thing that you could ask questions and it

655
00:32:33.720 --> 00:32:36.880
<v Speaker 1>had the knowledge of the business or the whatever, and

656
00:32:36.920 --> 00:32:39.160
<v Speaker 1>you could ask it questions and would tell you. I

657
00:32:39.200 --> 00:32:41.319
<v Speaker 1>mean that now this has sort of come to reality,

658
00:32:41.599 --> 00:32:45.599
<v Speaker 1>and I like the fact that you could take all

659
00:32:45.640 --> 00:32:48.880
<v Speaker 1>the business knowledge that you have. Or let's say let's

660
00:32:48.880 --> 00:32:51.440
<v Speaker 1>say somebody starts a small business and it grows, right,

661
00:32:51.480 --> 00:32:54.799
<v Speaker 1>and this person has all the knowledge and everybody's always

662
00:32:54.799 --> 00:32:56.839
<v Speaker 1>coming to them for the advice, and then how does

663
00:32:56.880 --> 00:32:59.599
<v Speaker 1>this work? And all that stuff, let's be perfect for

664
00:32:59.640 --> 00:33:00.960
<v Speaker 1>a little RAG application.

665
00:33:01.200 --> 00:33:02.000
<v Speaker 3>Yeah.

666
00:33:02.400 --> 00:33:05.039
<v Speaker 1>Yeah, it's like a brain dump into a chat.

667
00:33:05.079 --> 00:33:08.680
<v Speaker 3>But so the thing is these these little, you know,

668
00:33:09.279 --> 00:33:12.799
<v Speaker 3>super personal little tools that you have. They're one thing

669
00:33:13.039 --> 00:33:16.640
<v Speaker 3>and writing tests and having you know, CI around that

670
00:33:16.880 --> 00:33:19.319
<v Speaker 3>it's not you know, super important. I mean, this is

671
00:33:19.359 --> 00:33:22.279
<v Speaker 3>a little tool that you're running. But I've been around

672
00:33:22.319 --> 00:33:25.880
<v Speaker 3>long enough to know that sometimes those little tools, you know,

673
00:33:25.880 --> 00:33:28.079
<v Speaker 3>if you do them at work, get seen by a

674
00:33:28.160 --> 00:33:32.440
<v Speaker 3>manager and then suddenly your machine is getting shipped to problem.

675
00:33:32.960 --> 00:33:35.240
<v Speaker 3>So then like, if this has been vibe coded, you

676
00:33:35.359 --> 00:33:37.160
<v Speaker 3>haven't seen any of the code. How do you get

677
00:33:37.200 --> 00:33:39.799
<v Speaker 3>from that to something that other people can work on

678
00:33:39.960 --> 00:33:43.279
<v Speaker 3>and that you can trust and that you know, you know,

679
00:33:43.359 --> 00:33:46.119
<v Speaker 3>you've touched the edge cases. You know that you know

680
00:33:46.200 --> 00:33:51.079
<v Speaker 3>it's it's secure, it's reliable, and that is It's not

681
00:33:51.160 --> 00:33:54.440
<v Speaker 3>a new problem, but it is a problem. We can

682
00:33:54.480 --> 00:33:56.200
<v Speaker 3>get to a lot faster than we used.

683
00:33:56.079 --> 00:33:58.200
<v Speaker 4>To a much more of it. This used to be

684
00:33:58.240 --> 00:34:00.559
<v Speaker 4>the access guy who got out of hand, right, and

685
00:34:00.599 --> 00:34:02.920
<v Speaker 4>suddenly they want to deploy it to one thousand users.

686
00:34:03.240 --> 00:34:05.640
<v Speaker 3>I mean one of the first jobs I had there

687
00:34:05.640 --> 00:34:07.599
<v Speaker 3>was a four DL I don't know if you ever

688
00:34:07.720 --> 00:34:11.000
<v Speaker 3>touched that. It was basically yeah, yeah, so a four

689
00:34:11.079 --> 00:34:13.599
<v Speaker 3>DL system that was running in production.

690
00:34:13.400 --> 00:34:14.639
<v Speaker 1>Very high level language.

691
00:34:14.760 --> 00:34:17.400
<v Speaker 3>Yeah. One person knew how to use it to back

692
00:34:17.480 --> 00:34:21.000
<v Speaker 3>them back to your on the legacy software. And when

693
00:34:21.000 --> 00:34:23.639
<v Speaker 3>that person left, it's a black box, like you don't

694
00:34:23.639 --> 00:34:26.719
<v Speaker 3>you don't know what's in this thing. Yeah. So it's

695
00:34:26.760 --> 00:34:28.679
<v Speaker 3>not a new problem, but we can do it so

696
00:34:28.800 --> 00:34:31.760
<v Speaker 3>much faster. Now we can get a running application, you know,

697
00:34:31.960 --> 00:34:33.840
<v Speaker 3>in a minute or two. Yeah, really we can.

698
00:34:34.119 --> 00:34:35.760
<v Speaker 4>And Gami and I we did RUP for one moment

699
00:34:35.800 --> 00:34:42.079
<v Speaker 4>for these very important messages. Eric back, it's done a

700
00:34:42.199 --> 00:34:44.639
<v Speaker 4>Rocks and Richard Campbell. That's Carl Franklin. Hey, Hey, Hey,

701
00:34:44.840 --> 00:34:47.519
<v Speaker 4>hanging with our z buddy. Damn me and Brady talking

702
00:34:47.519 --> 00:34:49.800
<v Speaker 4>a little bit about we'll trying to make good software

703
00:34:49.800 --> 00:34:53.239
<v Speaker 4>out of all this. Like this sounds like the same

704
00:34:53.280 --> 00:34:56.159
<v Speaker 4>thing that I did for access for apps dB STAPs

705
00:34:56.199 --> 00:34:57.639
<v Speaker 4>are four that this sounds like a job for a

706
00:34:57.679 --> 00:34:59.960
<v Speaker 4>consultant Like this is when you call in an expert

707
00:35:00.239 --> 00:35:02.440
<v Speaker 4>to go through what you've got here and kind of

708
00:35:02.840 --> 00:35:05.800
<v Speaker 4>make the assessments around security and reliability, all of those

709
00:35:05.840 --> 00:35:06.480
<v Speaker 4>sorts of things.

710
00:35:06.639 --> 00:35:10.679
<v Speaker 3>Yeah, I think so. I don't think there's a need

711
00:35:10.760 --> 00:35:13.320
<v Speaker 3>to anything necessarily wrong with the code that comes out.

712
00:35:13.360 --> 00:35:16.440
<v Speaker 3>It's just once it gets to a point where people

713
00:35:16.480 --> 00:35:19.400
<v Speaker 3>trust it and need to run it in production and

714
00:35:19.440 --> 00:35:21.880
<v Speaker 3>more people need to add to it, then suddenly you've

715
00:35:21.880 --> 00:35:25.280
<v Speaker 3>got to start putting some rigor around that code again.

716
00:35:25.639 --> 00:35:31.159
<v Speaker 3>So having you know, the pipelines that you used to

717
00:35:31.159 --> 00:35:35.559
<v Speaker 3>have when you hand codeed everything that's super important. And

718
00:35:35.599 --> 00:35:40.199
<v Speaker 3>then yeah, the testing around it, code coverage, things like that.

719
00:35:40.519 --> 00:35:43.800
<v Speaker 3>The good news, I guess is that there's all these

720
00:35:43.840 --> 00:35:47.440
<v Speaker 3>generative AI systems give us opportunities to help with that

721
00:35:47.519 --> 00:35:52.599
<v Speaker 3>process as well. I was probably for a little while

722
00:35:52.599 --> 00:35:54.840
<v Speaker 3>one of the few people who actually didn't mind hand

723
00:35:54.840 --> 00:35:59.159
<v Speaker 3>coding GitHub Actions. You're it. You're the only one. Everybody

724
00:35:59.159 --> 00:36:01.880
<v Speaker 3>else got a piece of Yeah, but I don't do

725
00:36:01.920 --> 00:36:04.400
<v Speaker 3>that anymore. Really, I mean it's very very easy to

726
00:36:04.480 --> 00:36:06.559
<v Speaker 3>ask any of these tools, hey, can you write a

727
00:36:06.559 --> 00:36:09.119
<v Speaker 3>a action to do this and and check it? And

728
00:36:09.559 --> 00:36:11.639
<v Speaker 3>you know, you don't have to write Yamel anymore if

729
00:36:11.639 --> 00:36:13.719
<v Speaker 3>you don't really want to do you.

730
00:36:13.679 --> 00:36:15.880
<v Speaker 1>Have to read it though what he wants to. That's

731
00:36:15.880 --> 00:36:18.199
<v Speaker 1>my problem. I don't want to read it. I don't

732
00:36:18.199 --> 00:36:20.400
<v Speaker 1>want to write it. I don't even want to see it.

733
00:36:20.400 --> 00:36:23.039
<v Speaker 3>It's so readable though, Yeah, of all the of all

734
00:36:23.079 --> 00:36:25.800
<v Speaker 3>the formats, of all the formats, Yeah, we're not reading

735
00:36:26.239 --> 00:36:30.599
<v Speaker 3>at least so, but that means that, you know, if

736
00:36:30.599 --> 00:36:32.559
<v Speaker 3>you do want to create a hey, I want to

737
00:36:32.599 --> 00:36:35.199
<v Speaker 3>make sure I can build this and run the tests,

738
00:36:35.840 --> 00:36:39.320
<v Speaker 3>that's a pretty quick prompt to say, get me a

739
00:36:39.320 --> 00:36:41.280
<v Speaker 3>gi hub action workflow to do this.

740
00:36:42.000 --> 00:36:43.559
<v Speaker 4>But if it's all about the prompt, I mean, don't

741
00:36:43.599 --> 00:36:45.320
<v Speaker 4>you just have to say take this application, make it

742
00:36:45.360 --> 00:36:46.280
<v Speaker 4>secure and maintainable.

743
00:36:46.320 --> 00:36:51.079
<v Speaker 3>Does I mean you'd get something out? I'm sure I

744
00:36:52.480 --> 00:36:56.440
<v Speaker 3>think what happen, what that actually would be is a

745
00:36:56.800 --> 00:36:59.519
<v Speaker 3>bit of an issue. But I mean, even even within GitHub,

746
00:36:59.559 --> 00:37:02.360
<v Speaker 3>if you don't don't actively do that work. We've been

747
00:37:02.519 --> 00:37:05.840
<v Speaker 3>using gen Ai inside get Up to do a bunch

748
00:37:05.880 --> 00:37:10.679
<v Speaker 3>of things like dependent but so that's been around for

749
00:37:10.719 --> 00:37:13.960
<v Speaker 3>a while. It just looks at your dependencies and tells

750
00:37:14.000 --> 00:37:17.960
<v Speaker 3>you whether there's any that have security vulnerabilities and it

751
00:37:17.960 --> 00:37:21.519
<v Speaker 3>will alert you to right. But now we'll also give

752
00:37:21.519 --> 00:37:24.039
<v Speaker 3>you a pr to change that. It's kind of got

753
00:37:24.079 --> 00:37:28.440
<v Speaker 3>a little bit better in that now because because sometimes

754
00:37:28.559 --> 00:37:31.800
<v Speaker 3>upgrading the dependency doesn't isn't just a one for one replacement.

755
00:37:31.840 --> 00:37:34.320
<v Speaker 3>You've got to actually code. Sure, go and find the

756
00:37:34.360 --> 00:37:37.119
<v Speaker 3>code that you need to change and make suggestions to say,

757
00:37:37.320 --> 00:37:41.360
<v Speaker 3>here is your here's a suggested code change that goes

758
00:37:41.440 --> 00:37:43.320
<v Speaker 3>with that, you know, dependency update.

759
00:37:43.960 --> 00:37:49.920
<v Speaker 1>Sometimes those dependencies are interdependent, so changing one requires that

760
00:37:49.960 --> 00:37:50.840
<v Speaker 1>you change others.

761
00:37:51.400 --> 00:37:53.880
<v Speaker 3>And even I mean there's other things in the whole

762
00:37:53.920 --> 00:37:56.480
<v Speaker 3>get Up Advanced Security Suite where it all look for

763
00:37:56.880 --> 00:37:59.679
<v Speaker 3>potential issues in code and give you code suggestions to

764
00:37:59.760 --> 00:38:03.000
<v Speaker 3>update them. And that's using Jennet in the back. So

765
00:38:03.039 --> 00:38:06.280
<v Speaker 3>that's using copilot and that kind of gives you a

766
00:38:06.280 --> 00:38:08.320
<v Speaker 3>little bit more rigor around that code that you're putting

767
00:38:08.360 --> 00:38:13.039
<v Speaker 3>in to product code reviews is another one, so you know,

768
00:38:13.519 --> 00:38:16.079
<v Speaker 3>assign a PR to Copilot and it will do a

769
00:38:16.079 --> 00:38:18.119
<v Speaker 3>code review for you. And there's there's plenty of other

770
00:38:18.159 --> 00:38:22.239
<v Speaker 3>tools that do that as well. We'll look at get

771
00:38:22.320 --> 00:38:25.280
<v Speaker 3>up prs and yeah, and do that work as well,

772
00:38:25.320 --> 00:38:26.679
<v Speaker 3>like third third party tools.

773
00:38:27.000 --> 00:38:29.119
<v Speaker 4>I have to wonder how far away we are from

774
00:38:29.199 --> 00:38:33.159
<v Speaker 4>having a really good code review bot like that is

775
00:38:33.280 --> 00:38:34.920
<v Speaker 4>more thorough than any human.

776
00:38:35.280 --> 00:38:40.880
<v 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
<v Speaker 3>on your company's standards and what you care about with

778
00:38:45.119 --> 00:38:46.760
<v Speaker 3>a code review as well, so it is a little

779
00:38:46.760 --> 00:38:51.159
<v Speaker 3>bit personal. I know with Copilot code review, you can

780
00:38:51.199 --> 00:38:53.679
<v Speaker 3>set you can give it custom instructions to say, hey,

781
00:38:53.679 --> 00:38:56.440
<v Speaker 3>when you're doing a code review, here is some additional

782
00:38:56.480 --> 00:39:00.519
<v Speaker 3>context I want to give you. And pretty recently I

783
00:39:00.519 --> 00:39:03.960
<v Speaker 3>think we change that so you can give custom instructions

784
00:39:04.000 --> 00:39:06.880
<v Speaker 3>that are different for when you're writing code and when

785
00:39:06.920 --> 00:39:09.599
<v Speaker 3>you're reviewing code, and when you're you know, doing the

786
00:39:10.039 --> 00:39:13.239
<v Speaker 3>hands off coding agent. So you can be a little

787
00:39:13.280 --> 00:39:15.559
<v Speaker 3>bit more specific about what stuff you care about. So

788
00:39:15.920 --> 00:39:18.079
<v Speaker 3>you could have some custom instructions in there to say,

789
00:39:18.960 --> 00:39:20.960
<v Speaker 3>every time you do a code review, make sure that

790
00:39:21.000 --> 00:39:24.079
<v Speaker 3>all of the code has testing around it in the

791
00:39:24.159 --> 00:39:25.360
<v Speaker 3>code coveration.

792
00:39:25.320 --> 00:39:28.039
<v Speaker 4>And all criticism wrapped in a compliment sandwich.

793
00:39:30.199 --> 00:39:33.039
<v Speaker 3>I mean you're absolutely good? Yeah, I mean you really?

794
00:39:33.480 --> 00:39:35.960
<v Speaker 4>You talk about the challenge for me is someone who's

795
00:39:35.960 --> 00:39:37.400
<v Speaker 4>done a lot of code review bit around a cloud.

796
00:39:37.400 --> 00:39:41.039
<v Speaker 4>Code reviewers, like the best reviewers, often are kind of

797
00:39:41.079 --> 00:39:45.159
<v Speaker 4>a difficult personality because they're very detail oriented, right, and

798
00:39:45.239 --> 00:39:48.079
<v Speaker 4>so actually having to present the results in a form

799
00:39:48.159 --> 00:39:51.599
<v Speaker 4>that is palatable to the reviewee is important too. Like

800
00:39:52.039 --> 00:39:57.159
<v Speaker 4>somewhere's the LM with its own wavering obsequiousness like this

801
00:39:57.280 --> 00:40:02.880
<v Speaker 4>might be meticulous and report like yeah, like what more

802
00:40:02.920 --> 00:40:04.480
<v Speaker 4>could you ask for a code review?

803
00:40:04.960 --> 00:40:07.400
<v Speaker 1>Yeah, you're talking about like the code review people. I

804
00:40:07.400 --> 00:40:11.599
<v Speaker 1>imagine Olton Brown watching you cook, you know, and giving commentary.

805
00:40:12.239 --> 00:40:13.079
<v Speaker 1>Why didn't you do that?

806
00:40:13.519 --> 00:40:16.320
<v Speaker 4>I would I would wet myself that now was standing

807
00:40:16.360 --> 00:40:16.880
<v Speaker 4>on my shoulder.

808
00:40:16.920 --> 00:40:19.360
<v Speaker 3>I was cooking, like, there's no way, no way.

809
00:40:19.440 --> 00:40:20.920
<v Speaker 1>Why didn't you temper those eggs?

810
00:40:21.719 --> 00:40:23.719
<v Speaker 3>I mean, it's the matter with you, I asked. I

811
00:40:23.719 --> 00:40:27.199
<v Speaker 3>asked GIPT the other day. This was a comedy thing.

812
00:40:27.400 --> 00:40:29.920
<v Speaker 3>I asked PT the other day to abuse me when

813
00:40:29.960 --> 00:40:33.760
<v Speaker 3>I gave it an error or something and it refused.

814
00:40:33.760 --> 00:40:37.360
<v Speaker 3>It wouldn't it wouldn't do it. Yeah, we did a

815
00:40:37.440 --> 00:40:39.159
<v Speaker 3>kind of a middle ground where it told me the

816
00:40:39.199 --> 00:40:42.360
<v Speaker 3>code was terrible, but it wouldn't it wouldn't abuse me.

817
00:40:42.519 --> 00:40:44.599
<v Speaker 3>So I don't know, you might get.

818
00:40:44.440 --> 00:40:47.760
<v Speaker 4>Billy Hollis in there because people abuse the software, all

819
00:40:47.840 --> 00:40:48.079
<v Speaker 4>of them.

820
00:40:48.159 --> 00:40:50.719
<v Speaker 1>Yeah, it's like I have Billy Hollis program that model.

821
00:40:50.800 --> 00:40:55.760
<v Speaker 3>You must suck as a coder. Yeah, I guess he

822
00:40:55.760 --> 00:40:58.800
<v Speaker 3>could do that. You could even like have a look

823
00:40:58.800 --> 00:41:01.840
<v Speaker 3>at who committed that and then look them up in

824
00:41:01.840 --> 00:41:05.079
<v Speaker 3>a database to see how they prefer their feedback.

825
00:41:05.920 --> 00:41:07.119
<v Speaker 4>Yeah, it could be tailored.

826
00:41:07.199 --> 00:41:11.519
<v Speaker 1>I have a tangent here speaking of non secuiturs. Do

827
00:41:11.559 --> 00:41:18.199
<v Speaker 1>you ever see a possible day when GitHub co pilot cli,

828
00:41:18.360 --> 00:41:23.400
<v Speaker 1>for example, could work against a local inference engine like

829
00:41:23.519 --> 00:41:23.960
<v Speaker 1>or Lama.

830
00:41:24.360 --> 00:41:29.960
<v Speaker 3>So I think you can do that with other tools

831
00:41:29.960 --> 00:41:34.920
<v Speaker 3>in VS code at the moment, I don't. I mean, yes,

832
00:41:35.000 --> 00:41:38.239
<v Speaker 3>it's the short answer. I can see that possibility for sure.

833
00:41:39.239 --> 00:41:41.719
<v Speaker 3>One of the things that I know GitHub has been

834
00:41:41.719 --> 00:41:45.039
<v Speaker 3>doing lately is trying to give you a bit more choice,

835
00:41:45.079 --> 00:41:49.039
<v Speaker 3>even if it's not inside the gitub ecosystem. So your

836
00:41:49.079 --> 00:41:56.000
<v Speaker 3>Copilot subscription can now include you know, Claude and Codex,

837
00:41:56.039 --> 00:41:57.719
<v Speaker 3>And I think that's another one.

838
00:41:57.880 --> 00:41:59.920
<v Speaker 1>Great And so if you can reach out to CLAW,

839
00:42:00.159 --> 00:42:02.199
<v Speaker 1>it could reach out to a LAMA just as easily.

840
00:42:02.239 --> 00:42:05.000
<v Speaker 1>I mean, the real secret sauce there is knowing about

841
00:42:05.000 --> 00:42:07.920
<v Speaker 1>your local repo and you know, I can do my

842
00:42:08.000 --> 00:42:09.559
<v Speaker 1>own check ins and all that stuff.

843
00:42:09.559 --> 00:42:13.760
<v Speaker 3>But yeah, I mean you can. You can definitely call

844
00:42:13.840 --> 00:42:17.559
<v Speaker 3>out to your own lms that are hosted in Azure,

845
00:42:17.960 --> 00:42:20.199
<v Speaker 3>so you can say, I am I want to you know,

846
00:42:20.559 --> 00:42:26.760
<v Speaker 3>host a five three you know, language model in foundry

847
00:42:26.920 --> 00:42:29.000
<v Speaker 3>and then use that as my cop.

848
00:42:29.119 --> 00:42:31.840
<v Speaker 1>It's got to be it's got to be a Microsoft URL,

849
00:42:32.000 --> 00:42:35.239
<v Speaker 1>not a local r L. Yeah, because obviously it's a

850
00:42:35.280 --> 00:42:36.320
<v Speaker 1>Microsoft thing.

851
00:42:36.400 --> 00:42:39.159
<v Speaker 3>And yeah, I also I'm not one hundred percent sure

852
00:42:39.159 --> 00:42:41.239
<v Speaker 3>when the show goes out, and I don't know everything

853
00:42:41.239 --> 00:42:43.239
<v Speaker 3>about what's going on in engineering.

854
00:42:42.800 --> 00:42:45.400
<v Speaker 4>So I guess just like moving. So it's coming out

855
00:42:45.440 --> 00:42:48.880
<v Speaker 4>next week, we're pretty close to It's basically, if you're

856
00:42:48.920 --> 00:42:52.519
<v Speaker 4>invoking into a foundry, you have access to everything there,

857
00:42:52.679 --> 00:42:54.880
<v Speaker 4>deep seeks there, like you name it right.

858
00:42:54.960 --> 00:42:56.480
<v Speaker 3>Yeah, absolutely, Well.

859
00:42:56.519 --> 00:43:00.280
<v Speaker 1>The issue I'm getting at is that we see a

860
00:43:00.320 --> 00:43:04.840
<v Speaker 1>future where companies want my customers won't allow me to

861
00:43:04.960 --> 00:43:09.239
<v Speaker 1>use a tool that shares its data across the internet

862
00:43:09.320 --> 00:43:14.800
<v Speaker 1>in any way because they're so concerned about privacy and

863
00:43:14.920 --> 00:43:17.119
<v Speaker 1>digital rights and all that stuff that they don't want

864
00:43:17.159 --> 00:43:21.800
<v Speaker 1>their database schemas and their code, all that stuff going out.

865
00:43:21.880 --> 00:43:24.440
<v Speaker 1>So we're going to have to use I'm going to

866
00:43:24.519 --> 00:43:27.000
<v Speaker 1>have to use In one case, I have a customer

867
00:43:27.000 --> 00:43:29.320
<v Speaker 1>coming up here that's going to demand it. It's already

868
00:43:29.320 --> 00:43:32.920
<v Speaker 1>in the contract. So unless I have access to a

869
00:43:32.960 --> 00:43:37.239
<v Speaker 1>local LLM, I can't use an agent.

870
00:43:37.519 --> 00:43:40.199
<v Speaker 3>I can. Yeah, I can absolutely understand that that as

871
00:43:40.239 --> 00:43:45.480
<v Speaker 3>a requirement for organizations I think, and I'm biased because

872
00:43:45.519 --> 00:43:48.159
<v Speaker 3>I speak to GitHub customers, but I often get the

873
00:43:48.239 --> 00:43:51.280
<v Speaker 3>question about I need to run my LM locally because

874
00:43:51.280 --> 00:43:55.519
<v Speaker 3>I don't want to stand to copilot. And I asked

875
00:43:55.559 --> 00:43:59.159
<v Speaker 3>them where their code is stored. It's on GitHub, Like, well,

876
00:43:59.199 --> 00:44:03.000
<v Speaker 3>then we have your code already, like we're I mean,

877
00:44:03.280 --> 00:44:07.920
<v Speaker 3>if you're worried about that that boundary, it's already there.

878
00:44:07.960 --> 00:44:10.719
<v Speaker 3>But I can understand, Yeah, definitely, if there's some parts

879
00:44:10.760 --> 00:44:12.960
<v Speaker 3>of your code that you you do not want to

880
00:44:13.000 --> 00:44:17.800
<v Speaker 3>expose outside at all, then running local models definitely works.

881
00:44:18.119 --> 00:44:20.079
<v Speaker 3>I think that part of the issue is that the

882
00:44:20.280 --> 00:44:23.719
<v Speaker 3>models that we tend to use by default, so the

883
00:44:23.760 --> 00:44:27.840
<v Speaker 3>claudes and the code exits and the you know, the

884
00:44:27.880 --> 00:44:30.400
<v Speaker 3>rest of those. They are huge things that run on

885
00:44:30.440 --> 00:44:34.559
<v Speaker 3>a ones you know, in the cloud, and you know

886
00:44:35.239 --> 00:44:36.960
<v Speaker 3>this show is very successful, but you don't have the

887
00:44:36.960 --> 00:44:38.480
<v Speaker 3>money to run one of those in your basement.

888
00:44:38.519 --> 00:44:41.800
<v Speaker 1>I don't think, oh yeah, well, you know, the machine

889
00:44:41.800 --> 00:44:45.320
<v Speaker 1>that I have running Olama is very fast and it

890
00:44:45.360 --> 00:44:49.920
<v Speaker 1>produces results instantly, in fact, even quicker than I can

891
00:44:49.960 --> 00:44:52.760
<v Speaker 1>get out of cloud. Yes, because I'm the only one

892
00:44:52.840 --> 00:44:54.360
<v Speaker 1>using it.

893
00:44:54.360 --> 00:44:56.960
<v Speaker 3>It definitely is no longer the case that you have

894
00:44:57.039 --> 00:44:58.880
<v Speaker 3>to use the cloud ones to get a good result.

895
00:44:59.079 --> 00:45:00.960
<v Speaker 3>I mean, for a while, you know, you could run

896
00:45:01.000 --> 00:45:04.440
<v Speaker 3>these medium language models I guess, or small language models

897
00:45:04.440 --> 00:45:06.639
<v Speaker 3>on your machine and get results. But they went very good.

898
00:45:06.960 --> 00:45:09.400
<v Speaker 3>These days, they're pretty good, Like you get to.

899
00:45:09.320 --> 00:45:14.199
<v Speaker 1>Around a thirty billion model and it's fast. Yeah, they

900
00:45:14.239 --> 00:45:15.280
<v Speaker 1>do it because they got.

901
00:45:15.840 --> 00:45:20.639
<v Speaker 3>Nasty, stinky fast the boring part, without a doubt.

902
00:45:21.920 --> 00:45:24.039
<v Speaker 4>But yeah, it does speak to a future of a

903
00:45:24.199 --> 00:45:28.239
<v Speaker 4>programming team, you know, ten fifteen people working together with

904
00:45:28.400 --> 00:45:31.519
<v Speaker 4>a rack of their own compute just from the token

905
00:45:31.639 --> 00:45:34.159
<v Speaker 4>expense perspective, like if you're really going to go grind

906
00:45:34.239 --> 00:45:37.880
<v Speaker 4>it on this stuff. This whole excuse of I didn't

907
00:45:37.920 --> 00:45:40.119
<v Speaker 4>get my future finished because I ran out of tokens.

908
00:45:40.239 --> 00:45:43.000
<v Speaker 3>That's got to end. There's got to be our solution

909
00:45:43.079 --> 00:45:46.480
<v Speaker 3>to that one, right, Yeah, and that that is actually

910
00:45:46.480 --> 00:45:51.400
<v Speaker 3>one of the selling points of of these tools that

911
00:45:52.440 --> 00:45:54.599
<v Speaker 3>GitHub as well as Microsoft as well as a bunch

912
00:45:54.599 --> 00:45:56.400
<v Speaker 3>of other companies have been trying to push. Is this

913
00:45:56.519 --> 00:46:00.000
<v Speaker 3>idea of abundance where you can you can fire off

914
00:46:00.039 --> 00:46:02.840
<v Speaker 3>a problem to ten different agents and then see what

915
00:46:02.880 --> 00:46:06.519
<v Speaker 3>the best result is. But you're right, that does cost tokens. Yeah,

916
00:46:06.960 --> 00:46:10.199
<v Speaker 3>and yeah, I mentioned before that you don't necessarily get

917
00:46:10.199 --> 00:46:13.239
<v Speaker 3>built by the number of you know, cycles that you

918
00:46:13.320 --> 00:46:16.880
<v Speaker 3>go through, and that's true, but you're still using those

919
00:46:16.960 --> 00:46:20.519
<v Speaker 3>those tokens behind the Somebody is still using those those

920
00:46:20.519 --> 00:46:21.719
<v Speaker 3>cycles behind the scenes.

921
00:46:22.320 --> 00:46:24.960
<v Speaker 4>You remind me, and I think I said it's the

922
00:46:25.000 --> 00:46:27.239
<v Speaker 4>last show too. Like I come from the ol app

923
00:46:27.280 --> 00:46:29.840
<v Speaker 4>world where we used to build these huge cubes and

924
00:46:29.840 --> 00:46:32.039
<v Speaker 4>do an ounce on them. And back then there were

925
00:46:32.079 --> 00:46:35.440
<v Speaker 4>several different data mining strategies, but all of them are competationly

926
00:46:35.840 --> 00:46:38.800
<v Speaker 4>bit complex enough that you would literally spend weeks figure

927
00:46:38.840 --> 00:46:41.920
<v Speaker 4>out which one to run, and then at some point

928
00:46:41.920 --> 00:46:43.679
<v Speaker 4>in that when the cloud came along, it's like, you

929
00:46:43.679 --> 00:46:46.440
<v Speaker 4>know what an easy answer is run them all and

930
00:46:46.480 --> 00:46:48.840
<v Speaker 4>then have another another test to figure out which one

931
00:46:48.880 --> 00:46:50.480
<v Speaker 4>was best. Yeah, you know, there was only like I

932
00:46:50.719 --> 00:46:52.360
<v Speaker 4>think at one point we test there was like twenty

933
00:46:52.360 --> 00:46:54.920
<v Speaker 4>two different strategies of data mining on this data sets.

934
00:46:54.920 --> 00:46:57.679
<v Speaker 4>So just and you can get there with the software

935
00:46:57.679 --> 00:46:59.559
<v Speaker 4>developments that I too, where it's like, yeah, there's a

936
00:46:59.559 --> 00:47:01.840
<v Speaker 4>bunch of different ways to try and solve this particular problem.

937
00:47:02.000 --> 00:47:04.559
<v Speaker 1>Just try them all, try them all, especially getting an

938
00:47:04.559 --> 00:47:05.400
<v Speaker 1>agent to help you with that.

939
00:47:05.559 --> 00:47:08.679
<v Speaker 3>Yeah, the fan out model of kind of like get

940
00:47:08.920 --> 00:47:11.320
<v Speaker 3>five agents to try and solve it and then come

941
00:47:11.360 --> 00:47:13.079
<v Speaker 3>back and see which one is the best. Yeah.

942
00:47:13.159 --> 00:47:16.360
<v Speaker 4>Yeah, that's crazy, man, And we're I mean right now

943
00:47:16.440 --> 00:47:19.320
<v Speaker 4>where there's all this conversation about GPU constraints and COVID

944
00:47:19.360 --> 00:47:21.760
<v Speaker 4>clasts and so forth, like that's clearly not what we're

945
00:47:21.800 --> 00:47:23.880
<v Speaker 4>going to do at the moment, but you can see

946
00:47:23.880 --> 00:47:24.639
<v Speaker 4>a world like that.

947
00:47:24.800 --> 00:47:27.880
<v Speaker 3>The irony is though, that to get the best results

948
00:47:27.880 --> 00:47:30.199
<v Speaker 3>sometimes you have to break things down in just the

949
00:47:30.280 --> 00:47:32.440
<v Speaker 3>smaller part. So I think we've mentioned this before, but

950
00:47:32.840 --> 00:47:35.280
<v Speaker 3>breaking it down into the smaller tasks and then firing

951
00:47:35.320 --> 00:47:40.000
<v Speaker 3>those tasks off. So the idea of you know, how

952
00:47:40.039 --> 00:47:44.000
<v Speaker 3>you implement this grand feature that just use one you know,

953
00:47:44.159 --> 00:47:49.000
<v Speaker 3>agent and one like back and forth cycle that's not feasible.

954
00:47:49.039 --> 00:47:50.840
<v Speaker 3>You're not going to get a good result. So there's

955
00:47:50.880 --> 00:47:53.960
<v Speaker 3>probably a happy medium here where you can break it

956
00:47:54.000 --> 00:47:56.079
<v Speaker 3>down at a level that's going to give you a

957
00:47:56.079 --> 00:47:59.119
<v Speaker 3>good result and then fire that work off and maybe

958
00:47:59.199 --> 00:48:02.480
<v Speaker 3>use smaller model to do those initial pieces of work local.

959
00:48:03.159 --> 00:48:07.440
<v Speaker 3>So I know that there's definitely work behind the scenes

960
00:48:07.480 --> 00:48:09.800
<v Speaker 3>to do things that give you a bit more control

961
00:48:09.840 --> 00:48:12.559
<v Speaker 3>over what models are used for different pieces of work.

962
00:48:12.679 --> 00:48:17.639
<v Speaker 3>So you know, if you want to create a specification document,

963
00:48:17.679 --> 00:48:21.519
<v Speaker 3>maybe you don't need the gigantic, huge thinking model. Maybe

964
00:48:21.559 --> 00:48:24.960
<v Speaker 3>you just need a smaller one that you can cost

965
00:48:25.000 --> 00:48:27.760
<v Speaker 3>a lot less money, that's quicker and iterate a bit more.

966
00:48:27.960 --> 00:48:31.000
<v Speaker 1>That seems like something that could be a preprocessor, right

967
00:48:31.039 --> 00:48:34.039
<v Speaker 1>that could look at your prompt and determine which model

968
00:48:34.079 --> 00:48:34.559
<v Speaker 1>to send it to.

969
00:48:34.800 --> 00:48:37.880
<v Speaker 3>Yeah, well, honestly, that's what happens these days. When you

970
00:48:37.960 --> 00:48:42.119
<v Speaker 3>send something to Gemini or Claude or chat GPT. The

971
00:48:42.199 --> 00:48:44.920
<v Speaker 3>first iteration really is what does this person want to

972
00:48:44.960 --> 00:48:47.239
<v Speaker 3>do and where do I send that information? So when

973
00:48:47.280 --> 00:48:51.519
<v Speaker 3>you're like MCP for example, which has become really really popular,

974
00:48:51.559 --> 00:48:55.159
<v Speaker 3>that kind of first initial what does this person asked for?

975
00:48:55.840 --> 00:48:58.320
<v Speaker 3>It's a Hey, here are the tools that you've got

976
00:48:58.719 --> 00:49:00.960
<v Speaker 3>available to you, and here's what they do. And here's

977
00:49:01.000 --> 00:49:03.679
<v Speaker 3>the question that the person asked, what tools do I

978
00:49:03.760 --> 00:49:06.679
<v Speaker 3>need to solve that problem? And the skills Yeah, the

979
00:49:06.719 --> 00:49:09.480
<v Speaker 3>skills or the whatever whatever else you want to call it.

980
00:49:09.519 --> 00:49:13.119
<v Speaker 3>I guess, yeah, winning around. But yeah, that that first

981
00:49:13.199 --> 00:49:15.880
<v Speaker 3>iteration can be done with quite a small model. And

982
00:49:15.920 --> 00:49:20.480
<v Speaker 3>I think there's some of that that happens locally in

983
00:49:20.639 --> 00:49:23.039
<v Speaker 3>VS code. So if you have a look to the

984
00:49:23.360 --> 00:49:25.920
<v Speaker 3>folder structure. I think I did this a little while ago.

985
00:49:26.000 --> 00:49:30.559
<v Speaker 3>There is a like a small model that sits there

986
00:49:30.559 --> 00:49:32.400
<v Speaker 3>that does some of that work up front, so you

987
00:49:32.440 --> 00:49:37.320
<v Speaker 3>don't necessarily have to send send that information and you

988
00:49:37.360 --> 00:49:38.199
<v Speaker 3>can literally.

989
00:49:37.880 --> 00:49:41.079
<v Speaker 4>Do this with confidence. You know expressions too, right, It's

990
00:49:41.119 --> 00:49:43.400
<v Speaker 4>like I run it through a small model, but it's

991
00:49:43.400 --> 00:49:45.280
<v Speaker 4>such a known it may be a complicated request, but

992
00:49:45.360 --> 00:49:47.440
<v Speaker 4>it's such a known function. It's back back a chunk

993
00:49:47.480 --> 00:49:50.079
<v Speaker 4>of code with a ninety something percentile. Confiden, It's like,

994
00:49:50.239 --> 00:49:52.639
<v Speaker 4>do not continue, but if you come back in sixty percent,

995
00:49:53.119 --> 00:49:55.519
<v Speaker 4>all right, kick it up into a higher model and

996
00:49:55.559 --> 00:49:57.280
<v Speaker 4>see if we can get to a higher a percentage.

997
00:49:57.760 --> 00:50:01.559
<v Speaker 4>So you're only confusing as much computis absolutely need recognizing

998
00:50:01.599 --> 00:50:03.519
<v Speaker 4>all those small models are far cheaper than by the

999
00:50:03.519 --> 00:50:04.880
<v Speaker 4>time you get to the big one. And if you

1000
00:50:04.880 --> 00:50:07.280
<v Speaker 4>needed that one time, you know the time is worth it.

1001
00:50:07.840 --> 00:50:10.840
<v Speaker 3>And they don't necessarily need to be language models. They

1002
00:50:10.840 --> 00:50:13.360
<v Speaker 3>can be a bit more specific, you know, the old

1003
00:50:13.400 --> 00:50:16.360
<v Speaker 3>school what we used to do with machine learning before

1004
00:50:16.360 --> 00:50:19.800
<v Speaker 3>we just threw everything at an l M, where you

1005
00:50:19.840 --> 00:50:22.360
<v Speaker 3>know it's a little bit more specific to the task. Yeah,

1006
00:50:22.400 --> 00:50:25.360
<v Speaker 3>this person ask this question, here are the tools? What

1007
00:50:25.880 --> 00:50:27.599
<v Speaker 3>should you know? What do you need to do? You

1008
00:50:27.639 --> 00:50:30.920
<v Speaker 3>don't need to absorb to have absorbed the entire Internet

1009
00:50:31.320 --> 00:50:34.960
<v Speaker 3>text to in that question. Yeah, I keep waiting.

1010
00:50:35.000 --> 00:50:36.559
<v Speaker 1>We were just talking about this last week.

1011
00:50:36.599 --> 00:50:40.239
<v Speaker 4>Yeah, sure, I keep waiting for a completely software development

1012
00:50:40.320 --> 00:50:42.480
<v Speaker 4>centric model to be built. It's it's not good in

1013
00:50:42.559 --> 00:50:45.840
<v Speaker 4>anything else except software, and even then you'd probably want

1014
00:50:45.840 --> 00:50:47.719
<v Speaker 4>to tailor down. Hey, I only need one that's good

1015
00:50:47.719 --> 00:50:49.360
<v Speaker 4>at C share of javascripted SQL.

1016
00:50:49.559 --> 00:50:53.079
<v Speaker 3>Yeah. I think the sticking point at the moment of

1017
00:50:53.119 --> 00:50:56.039
<v Speaker 3>those is that if you're asking for things in natural language,

1018
00:50:56.119 --> 00:50:58.719
<v Speaker 3>you get a huge shortcut just by absorbing the world's

1019
00:50:58.800 --> 00:51:01.519
<v Speaker 3>natural language. And then the pattern matching means that it

1020
00:51:01.599 --> 00:51:04.360
<v Speaker 3>kind of can interpret that really well, and then there's

1021
00:51:04.400 --> 00:51:07.199
<v Speaker 3>the coding pit. But yeah, I mean you could break

1022
00:51:07.199 --> 00:51:09.920
<v Speaker 3>that up into two pieces. One that's really good at

1023
00:51:09.920 --> 00:51:14.000
<v Speaker 3>interpreting what's required, another one that's really good at writing code.

1024
00:51:14.719 --> 00:51:18.039
<v Speaker 3>I'm not deep enough into the engineering side of co

1025
00:51:18.199 --> 00:51:20.840
<v Speaker 3>Pilot to, you know, to know what they're doing along

1026
00:51:20.840 --> 00:51:23.400
<v Speaker 3>those lines, but that sounds total.

1027
00:51:23.679 --> 00:51:25.519
<v Speaker 4>I know from some of the papers that I've read,

1028
00:51:25.519 --> 00:51:29.320
<v Speaker 4>there's lots of conversation about specialist models and an orchestrator

1029
00:51:29.559 --> 00:51:31.440
<v Speaker 4>is in front of it that says that makes that

1030
00:51:31.519 --> 00:51:35.440
<v Speaker 4>assessment and then sends to various orchestrator the specific models

1031
00:51:35.480 --> 00:51:38.440
<v Speaker 4>and in order. It's almost like a map reduced, break

1032
00:51:38.480 --> 00:51:40.960
<v Speaker 4>it up, fire it after multiple enities, roll it back together.

1033
00:51:41.199 --> 00:51:43.480
<v Speaker 3>Yeah. I suspect that's the future for sure. Yeah.

1034
00:51:43.760 --> 00:51:45.599
<v Speaker 4>Yes, it's back to that thing you said we couldn't do,

1035
00:51:45.639 --> 00:51:47.960
<v Speaker 4>which was sending other of all prompts. Like the fact is,

1036
00:51:48.000 --> 00:51:50.360
<v Speaker 4>if this architecture works what it is, you'll send them

1037
00:51:50.360 --> 00:51:52.639
<v Speaker 4>other role prompts out and it'll carve it up for you.

1038
00:51:52.760 --> 00:51:55.760
<v Speaker 3>Yep. So there's some really good projects that kind of

1039
00:51:56.400 --> 00:51:58.199
<v Speaker 3>that help you do that. I mean, the problem with

1040
00:51:58.360 --> 00:52:02.320
<v Speaker 3>sending them other orble prompts is we have never been

1041
00:52:02.440 --> 00:52:07.239
<v Speaker 3>wonderful at defining exactly what we want to people. Even

1042
00:52:07.480 --> 00:52:10.719
<v Speaker 3>so by the time you get the requirements document and

1043
00:52:10.719 --> 00:52:13.679
<v Speaker 3>then the specification document and then the you know, the

1044
00:52:14.719 --> 00:52:19.079
<v Speaker 3>functional spec list. To a programmer, there's something has been lost.

1045
00:52:19.199 --> 00:52:24.320
<v Speaker 4>And the English language especially is you know, almost intentionally vague. Yes,

1046
00:52:24.639 --> 00:52:26.840
<v Speaker 4>so often it's tough to be clear of what you

1047
00:52:26.880 --> 00:52:28.840
<v Speaker 4>intend once you get past the first paragraph.

1048
00:52:29.079 --> 00:52:31.760
<v Speaker 3>Yeah. Like we say, the lms are non deterministic, but

1049
00:52:31.920 --> 00:52:36.840
<v Speaker 3>I mean really human language is nondeterministic. So even if

1050
00:52:36.840 --> 00:52:38.880
<v Speaker 3>you could send that mother of all prompts and get

1051
00:52:39.079 --> 00:52:41.440
<v Speaker 3>you know, exactly what you've asked for back, there's going

1052
00:52:41.480 --> 00:52:44.039
<v Speaker 3>to be some assumptions made along the way, and then

1053
00:52:44.079 --> 00:52:48.079
<v Speaker 3>you've probably got some things wrong. So there's projects like

1054
00:52:48.880 --> 00:52:52.840
<v Speaker 3>spec kit or just that technique I guess which which

1055
00:52:52.960 --> 00:52:55.679
<v Speaker 3>kind of walk you through that process of Okay, so

1056
00:52:55.719 --> 00:52:58.360
<v Speaker 3>what are the requirements that you have. Here's a big

1057
00:52:58.400 --> 00:53:02.519
<v Speaker 3>markdown document, look through that make some changes however you want,

1058
00:53:02.760 --> 00:53:07.000
<v Speaker 3>either directly yourself or just asking the agent to do

1059
00:53:07.079 --> 00:53:10.599
<v Speaker 3>that work for you. That's also in plan mode in

1060
00:53:10.760 --> 00:53:14.280
<v Speaker 3>viscode as well. And the idea is, you know, you

1061
00:53:14.320 --> 00:53:17.599
<v Speaker 3>are defining it as accurately as you can, and you're

1062
00:53:17.599 --> 00:53:20.039
<v Speaker 3>working kind of with the agents to do that, and

1063
00:53:20.079 --> 00:53:22.239
<v Speaker 3>then you move on to the specification of this is

1064
00:53:22.480 --> 00:53:27.519
<v Speaker 3>what technical implementation we need, and it's still using large

1065
00:53:27.559 --> 00:53:31.000
<v Speaker 3>language models and coding tools to do that work or

1066
00:53:31.000 --> 00:53:33.039
<v Speaker 3>to help you do that work. But ultimately what you

1067
00:53:33.159 --> 00:53:37.400
<v Speaker 3>end up with is these quite well defined individual tasks

1068
00:53:37.679 --> 00:53:39.960
<v Speaker 3>that then you can get good results from when you

1069
00:53:40.000 --> 00:53:44.360
<v Speaker 3>send them to a coding agent. They're small pieces of work.

1070
00:53:44.400 --> 00:53:47.679
<v Speaker 3>You can put tests around them, you can examine what

1071
00:53:47.800 --> 00:53:50.840
<v Speaker 3>comes back from each of those pieces, and then you

1072
00:53:50.920 --> 00:53:55.760
<v Speaker 3>know that gives you a little bit more rigor around

1073
00:53:55.840 --> 00:53:58.400
<v Speaker 3>what code ends up coming out. Then even if you

1074
00:53:58.480 --> 00:54:01.800
<v Speaker 3>send a mother of all prompts to something like the

1075
00:54:02.559 --> 00:54:05.000
<v Speaker 3>like the Copilot coding agent, or if you send an

1076
00:54:05.039 --> 00:54:07.440
<v Speaker 3>issue to that agent, that's kind of what it's doing

1077
00:54:07.440 --> 00:54:09.599
<v Speaker 3>in the background as well. It says, right, i've got

1078
00:54:09.639 --> 00:54:12.440
<v Speaker 3>this issue, I've got this description that the person's given me.

1079
00:54:12.760 --> 00:54:15.280
<v Speaker 3>Let's break that down into requirements, let's break it down

1080
00:54:15.320 --> 00:54:18.719
<v Speaker 3>into its specification. Let's define a bunch of tasks to do,

1081
00:54:18.840 --> 00:54:22.159
<v Speaker 3>and then let's do those tasks. And I think we've

1082
00:54:22.280 --> 00:54:25.440
<v Speaker 3>found that you get a much better result doing it

1083
00:54:25.480 --> 00:54:27.679
<v Speaker 3>that way than you would otherwise.

1084
00:54:27.280 --> 00:54:29.199
<v Speaker 4>I certainly seen a lot of folks now starting to

1085
00:54:29.360 --> 00:54:32.480
<v Speaker 4>use the tools to write the prompts before running the prompts,

1086
00:54:32.840 --> 00:54:34.960
<v Speaker 4>and I do you know, I wonder if we shouldn't

1087
00:54:34.960 --> 00:54:38.519
<v Speaker 4>be making more of this confidence equation visible as you

1088
00:54:38.559 --> 00:54:41.800
<v Speaker 4>go along. It's like, Hey, I don't want to actually

1089
00:54:41.800 --> 00:54:44.840
<v Speaker 4>attempt to execute this prompt until it's in the ninetieth

1090
00:54:44.840 --> 00:54:47.960
<v Speaker 4>percent pile of confidence. So let's keep iterating on it

1091
00:54:48.039 --> 00:54:50.599
<v Speaker 4>until we can clear up the vagaries that will probably

1092
00:54:50.800 --> 00:54:53.159
<v Speaker 4>you know, send the tools down the wrong path until

1093
00:54:53.360 --> 00:54:55.519
<v Speaker 4>you're really competent. This is an awesome prompt as a

1094
00:54:55.599 --> 00:54:59.280
<v Speaker 4>very good chance of producing code that's useful. It's interesting, right,

1095
00:54:59.360 --> 00:55:01.800
<v Speaker 4>like it is. That's the whole can of worms. We

1096
00:55:01.920 --> 00:55:03.719
<v Speaker 4>go back and forth. But it's something I think I'd

1097
00:55:03.760 --> 00:55:06.159
<v Speaker 4>done as a PM anyway, where you know, the customer

1098
00:55:06.239 --> 00:55:09.639
<v Speaker 4>gam theset requirements is like, wow, these look like requirements,

1099
00:55:09.639 --> 00:55:12.760
<v Speaker 4>except that you didn't actually clarify anything here. Let's go

1100
00:55:12.840 --> 00:55:15.119
<v Speaker 4>work through the yeah, And.

1101
00:55:14.920 --> 00:55:18.679
<v Speaker 3>That kind of gets to the core of the problem

1102
00:55:18.760 --> 00:55:21.679
<v Speaker 3>is if if the people doing the work don't actually

1103
00:55:22.000 --> 00:55:24.119
<v Speaker 3>care a lot about the quality of what's coming out,

1104
00:55:24.159 --> 00:55:28.400
<v Speaker 3>then you can't make them care. And that's again not

1105
00:55:28.440 --> 00:55:32.079
<v Speaker 3>a new problem. It's just you can get a lot

1106
00:55:32.119 --> 00:55:34.960
<v Speaker 3>further without caring these days, I think a lot faster.

1107
00:55:36.840 --> 00:55:40.519
<v Speaker 3>And so yeah, and again that's kind of why, that's

1108
00:55:40.599 --> 00:55:42.280
<v Speaker 3>kind of where you can put some rigorin. So if

1109
00:55:42.280 --> 00:55:48.280
<v Speaker 3>you have these CI builds and these quality checks and gates,

1110
00:55:48.400 --> 00:55:51.119
<v Speaker 3>you can even do gates like with AI in them

1111
00:55:51.159 --> 00:55:52.880
<v Speaker 3>to say, hey, can you just make sure that this

1112
00:55:52.960 --> 00:55:55.559
<v Speaker 3>has been looked at? And this has been looked at

1113
00:55:56.039 --> 00:55:59.920
<v Speaker 3>and it's vague enough that the large language model will

1114
00:55:59.920 --> 00:56:02.599
<v Speaker 3>be how to interpret you know, yeah, it doesn't look

1115
00:56:02.639 --> 00:56:04.800
<v Speaker 3>like they've looked at accessibility on this page at all.

1116
00:56:06.280 --> 00:56:09.280
<v Speaker 3>Those things can be used as well. So having that

1117
00:56:09.280 --> 00:56:13.079
<v Speaker 3>that pipeline that we've always had, even if it's kind

1118
00:56:13.079 --> 00:56:16.639
<v Speaker 3>of AI enhanced, can can mean that if you do

1119
00:56:16.719 --> 00:56:19.800
<v Speaker 3>have people who don't really care about the quality of

1120
00:56:19.880 --> 00:56:22.920
<v Speaker 3>what comes out, you still have those those checks and

1121
00:56:23.000 --> 00:56:24.039
<v Speaker 3>balances in the way.

1122
00:56:24.199 --> 00:56:27.039
<v Speaker 4>I appreciate that. And you're again leveraging the strength of

1123
00:56:27.119 --> 00:56:30.400
<v Speaker 4>these tools to be meticulous and good at going down

1124
00:56:30.519 --> 00:56:33.480
<v Speaker 4>checklists and catch all those details so that you can

1125
00:56:33.960 --> 00:56:36.559
<v Speaker 4>be sure of things when the tool gets to avolved.

1126
00:56:36.559 --> 00:56:39.400
<v Speaker 4>The checklists and they're all red you know checks or

1127
00:56:39.480 --> 00:56:40.960
<v Speaker 4>green checks you've done something good.

1128
00:56:41.559 --> 00:56:44.639
<v Speaker 3>Yeah, Yeah, that's exactly right. Yeah. I mean they're powerful tools.

1129
00:56:44.880 --> 00:56:46.800
<v Speaker 3>Using them for the right reasons in the right way

1130
00:56:47.320 --> 00:56:49.360
<v Speaker 3>is you know, the way we should be doing it.

1131
00:56:49.440 --> 00:56:53.679
<v Speaker 3>Just like you know, one sentence prompt it looks okay,

1132
00:56:53.880 --> 00:56:56.599
<v Speaker 3>you'll lower it into PROD. That's not really the right

1133
00:56:56.880 --> 00:56:57.679
<v Speaker 3>right way to use them.

1134
00:56:57.840 --> 00:56:59.920
<v Speaker 4>You're going to find out in a hurry you were wrong.

1135
00:57:01.199 --> 00:57:05.159
<v Speaker 1>That's right, damnian. Is there anything we missed that we're

1136
00:57:05.199 --> 00:57:06.920
<v Speaker 1>we should bring up before we sign?

1137
00:57:06.920 --> 00:57:07.000
<v Speaker 4>That?

1138
00:57:07.079 --> 00:57:09.480
<v Speaker 3>Nothing huge? I just I just wanted to jump on

1139
00:57:09.559 --> 00:57:12.000
<v Speaker 3>that that comment about the confidence intervals that Richard had.

1140
00:57:12.079 --> 00:57:14.679
<v Speaker 3>I feel like that's something you could absolutely add into

1141
00:57:14.719 --> 00:57:18.519
<v Speaker 3>your custom instructions or your agent's MD file or whatever

1142
00:57:18.519 --> 00:57:20.679
<v Speaker 3>it is that you use to say, each time I

1143
00:57:20.719 --> 00:57:23.760
<v Speaker 3>ask you to help me define something, can you give

1144
00:57:23.800 --> 00:57:26.639
<v Speaker 3>me a confidence interval at the end to tell me

1145
00:57:26.800 --> 00:57:29.760
<v Speaker 3>how how accurate you think you are? And that being

1146
00:57:29.800 --> 00:57:33.639
<v Speaker 3>a you know, standing order would mean just imprompt Yeah,

1147
00:57:33.760 --> 00:57:34.760
<v Speaker 3>that kind of sits in there.

1148
00:57:35.039 --> 00:57:37.880
<v Speaker 4>It's instead of looking at the developer and seeing if

1149
00:57:37.880 --> 00:57:40.400
<v Speaker 4>they look confused or not as your prompt isn't that good?

1150
00:57:41.000 --> 00:57:41.199
<v Speaker 3>You know?

1151
00:57:41.320 --> 00:57:43.039
<v Speaker 4>Now you have the software giving you a number. Although

1152
00:57:43.039 --> 00:57:44.480
<v Speaker 4>if you're smart, you just make it into a set

1153
00:57:44.480 --> 00:57:46.079
<v Speaker 4>of faces too, right, He goes, oh, well that's the

1154
00:57:46.119 --> 00:57:48.960
<v Speaker 4>sixty percent. Look confused. You could yeah, think about how

1155
00:57:49.000 --> 00:57:51.760
<v Speaker 4>much we already do this when you're trying to pass

1156
00:57:51.800 --> 00:57:54.000
<v Speaker 4>instructions along and just like do you get this? Do

1157
00:57:54.079 --> 00:57:56.519
<v Speaker 4>you are you on board? Like, don't what we need

1158
00:57:56.519 --> 00:57:57.679
<v Speaker 4>to do this to the software too.

1159
00:57:58.039 --> 00:58:01.159
<v Speaker 1>I still wish these things would say I don't know

1160
00:58:01.199 --> 00:58:03.840
<v Speaker 1>the answer when they don't instead of making stuff up.

1161
00:58:03.960 --> 00:58:07.719
<v Speaker 3>Yeah, you can be a little explicit about that. And again,

1162
00:58:07.880 --> 00:58:11.480
<v Speaker 3>custom instructions agents MD that kind of thing to say. Look,

1163
00:58:11.559 --> 00:58:14.880
<v Speaker 3>if if you know you're not absolutely sure about something

1164
00:58:14.920 --> 00:58:17.760
<v Speaker 3>I've asked, then please prompt me to define that a

1165
00:58:17.760 --> 00:58:20.719
<v Speaker 3>bit more clarifying or something to clarify. Yeah. But then

1166
00:58:21.119 --> 00:58:23.199
<v Speaker 3>I mean you sometimes end up in a loop where

1167
00:58:23.199 --> 00:58:25.559
<v Speaker 3>it tries to be far too helpful and you're constantly

1168
00:58:25.639 --> 00:58:30.239
<v Speaker 3>field questions yeah, and you almost have to interrupt and

1169
00:58:30.280 --> 00:58:33.159
<v Speaker 3>say no, I think I think you've got it. Just

1170
00:58:33.159 --> 00:58:33.719
<v Speaker 3>just go.

1171
00:58:33.840 --> 00:58:36.920
<v Speaker 4>You've had enough detail, Now go work. But you know what,

1172
00:58:37.079 --> 00:58:39.840
<v Speaker 4>you've also had that employee that you know, rather do

1173
00:58:39.880 --> 00:58:41.719
<v Speaker 4>the work, would like to just keep asking questions.

1174
00:58:41.760 --> 00:58:44.440
<v Speaker 1>I've had to press control C a couple of times,

1175
00:58:45.199 --> 00:58:48.559
<v Speaker 1>you know, when you know Claude in GitHub co pilots

1176
00:58:48.559 --> 00:58:52.400
<v Speaker 1>Cli says, ah, I know the I see the problem

1177
00:58:52.519 --> 00:58:55.280
<v Speaker 1>and it's completely wrong, you know, and then it goes

1178
00:58:55.320 --> 00:58:58.559
<v Speaker 1>off trying to fix these control see break ye, no

1179
00:58:58.880 --> 00:59:01.800
<v Speaker 1>you're wrong about that. And then it comes back with

1180
00:59:01.960 --> 00:59:08.840
<v Speaker 1>of course you're exactly right. Yeah, yeah, you're right.

1181
00:59:09.119 --> 00:59:10.320
<v Speaker 4>Turn the shining is down.

1182
00:59:10.639 --> 00:59:14.280
<v Speaker 1>It's been great talking to you, Damien, and come back

1183
00:59:14.320 --> 00:59:14.920
<v Speaker 1>again soon.

1184
00:59:15.280 --> 00:59:18.199
<v Speaker 3>Absolutely, I won't wait until the next job this time.

1185
00:59:18.039 --> 00:59:21.639
<v Speaker 1>I think definitely. We have a lot to talk about,

1186
00:59:22.840 --> 00:59:24.400
<v Speaker 1>all right, and we'll talk to you.

1187
00:59:24.360 --> 00:59:45.360
<v Speaker 5>Next time on dot net rocks.

1188
00:59:46.679 --> 00:59:49.360
<v Speaker 1>Dot net Rocks is brought to you by Franklin's Net

1189
00:59:49.480 --> 00:59:53.440
<v Speaker 1>and produced by Pop Studios, a full service audio, video

1190
00:59:53.480 --> 00:59:57.599
<v Speaker 1>and post production facility located physically in New London, Connecticut,

1191
00:59:57.840 --> 01:00:02.639
<v Speaker 1>and of course in the cloud line at pwop dot com.

1192
01:00:02.840 --> 01:00:04.960
<v Speaker 1>Visit our website at d O T N E, t

1193
01:00:05.199 --> 01:00:09.239
<v Speaker 1>R O c k S dot com for RSS feeds, downloads,

1194
01:00:09.360 --> 01:00:13.039
<v Speaker 1>mobile apps, comments, and access to the full archives going

1195
01:00:13.079 --> 01:00:16.480
<v Speaker 1>back to show number one, recorded in September two thousand

1196
01:00:16.519 --> 01:00:19.159
<v Speaker 1>and two. And make sure you check out our sponsors.

1197
01:00:19.320 --> 01:00:22.320
<v Speaker 1>They keep us in business. Now go write some code.

1198
01:00:22.679 --> 01:00:26.159
<v Speaker 1>See you next time you got jam bands

1199
01:00:28.239 --> 01:00:28.280
<v Speaker 4>And
