WEBVTT

1
00:00:01.080 --> 00:00:03.000
<v Speaker 1>How'd you like to listen to dot net rocks with

2
00:00:03.040 --> 00:00:07.879
<v Speaker 1>no ads? Easy? Become a patron for just five dollars

3
00:00:07.919 --> 00:00:10.800
<v Speaker 1>a month. You get access to a private RSS feed

4
00:00:10.839 --> 00:00:14.240
<v Speaker 1>where all the shows have no ads. Twenty dollars a month,

5
00:00:14.279 --> 00:00:16.879
<v Speaker 1>we'll get you that and a special dot net Rocks

6
00:00:16.960 --> 00:00:21.000
<v Speaker 1>patron mug. Sign up now at Patreon dot dot NetRocks

7
00:00:21.120 --> 00:00:37.320
<v Speaker 1>dot com. Hey, welcome to dot net Rocks Live from Build. Well,

8
00:00:37.320 --> 00:00:38.880
<v Speaker 1>it's not live to you, but it's live for us.

9
00:00:39.759 --> 00:00:41.560
<v Speaker 2>It turns out every time we record it's live.

10
00:00:42.119 --> 00:00:44.039
<v Speaker 1>We used to say that at the beginning.

11
00:00:45.359 --> 00:00:49.560
<v Speaker 3>From dot net rocks, what's the what's the alternative dead Dead?

12
00:00:50.119 --> 00:00:57.399
<v Speaker 3>From dot com? It's Do Not Resuscitate otherwise known as DNR. Okay, well,

13
00:00:57.560 --> 00:01:00.200
<v Speaker 3>it's dot ne rocks where build. We just got out

14
00:01:00.200 --> 00:01:04.000
<v Speaker 3>of the keynote and Scott Hunter shows up and we're

15
00:01:04.040 --> 00:01:05.159
<v Speaker 3>going to have a conversation.

16
00:01:05.319 --> 00:01:06.200
<v Speaker 2>Yeah, I bet we will.

17
00:01:06.359 --> 00:01:09.400
<v Speaker 1>And before we talk to Scott, we have to do

18
00:01:09.519 --> 00:01:13.680
<v Speaker 1>a little thing about what happened in nineteen fifty three. Yeah,

19
00:01:13.760 --> 00:01:18.120
<v Speaker 1>because this is show nineteen fifty three. Scott, you're welcome

20
00:01:18.159 --> 00:01:21.200
<v Speaker 1>to join us, dive in on this, Yeah, if you want, sure, So,

21
00:01:21.480 --> 00:01:26.319
<v Speaker 1>Mount Everest Sir Edmund Hillary have Tensing Norgay, who is

22
00:01:26.959 --> 00:01:29.760
<v Speaker 1>his sherpa. Right, Ye became the first people to reach

23
00:01:29.799 --> 00:01:33.319
<v Speaker 1>the summit of Mount Everest on May twenty ninth. You

24
00:01:33.799 --> 00:01:35.040
<v Speaker 1>kind of went up Mount Everest.

25
00:01:35.120 --> 00:01:37.719
<v Speaker 2>I went to base camp, went to the bottom of Everest, Yeah,

26
00:01:37.760 --> 00:01:42.359
<v Speaker 2>which is the same altitude as the top of Kills.

27
00:01:41.439 --> 00:01:47.480
<v Speaker 1>Also and Fuji, I have done Mount Gratton, which is inton.

28
00:01:47.840 --> 00:01:51.680
<v Speaker 1>It's basically a recycling pile that I walked to the

29
00:01:51.680 --> 00:01:53.799
<v Speaker 1>top of and is twenty feet all right.

30
00:01:53.760 --> 00:01:56.920
<v Speaker 2>Okay, but that's the thing that kills you after doing Kelly.

31
00:01:56.920 --> 00:01:58.959
<v Speaker 2>Then you go to beverstpace camps, like I am at

32
00:01:58.959 --> 00:02:01.159
<v Speaker 2>the bottom of this mountain and I feel like I

33
00:02:01.239 --> 00:02:03.400
<v Speaker 2>felt getting to the top of a chilly yeah Fortal.

34
00:02:03.640 --> 00:02:05.640
<v Speaker 4>It's crazy that you, you know, you people go to

35
00:02:05.680 --> 00:02:07.319
<v Speaker 4>a base camp at Everest and stay there for a

36
00:02:07.319 --> 00:02:08.919
<v Speaker 4>couple of weeks to acclimate before they go all the

37
00:02:08.919 --> 00:02:10.439
<v Speaker 4>way up. So it's like, you know, for Killy, we

38
00:02:10.439 --> 00:02:12.960
<v Speaker 4>didn't really do much a lot of acclamation a little bit,

39
00:02:13.000 --> 00:02:14.719
<v Speaker 4>a little bit, yeah, but you told me.

40
00:02:14.759 --> 00:02:18.199
<v Speaker 1>I think that the grade for Fuji and for Killy

41
00:02:18.479 --> 00:02:22.439
<v Speaker 1>is a little more easy to traverse, whereas Everest is

42
00:02:22.520 --> 00:02:23.599
<v Speaker 1>kind of a steeper grade.

43
00:02:23.840 --> 00:02:26.800
<v Speaker 2>Yeah, I don't know. It was very gradual getting to

44
00:02:26.840 --> 00:02:30.479
<v Speaker 2>the base camp. I didn't go past that. But there's

45
00:02:30.479 --> 00:02:32.560
<v Speaker 2>a bunch of different routes on Killimanjero and I think

46
00:02:32.560 --> 00:02:34.520
<v Speaker 2>you did. You did the sixth day route too, didn't you.

47
00:02:34.599 --> 00:02:37.120
<v Speaker 2>I did, and that has more acclamation time, which is

48
00:02:37.159 --> 00:02:39.400
<v Speaker 2>actually important. They say, if you do the sixth day route,

49
00:02:39.439 --> 00:02:41.919
<v Speaker 2>it's like a ninety percent summit, but if you do

50
00:02:42.000 --> 00:02:44.719
<v Speaker 2>the four day route, it's like a fifty percent Summit's

51
00:02:44.759 --> 00:02:45.879
<v Speaker 2>you just pushing your body too hard?

52
00:02:45.960 --> 00:02:49.039
<v Speaker 1>All right? Well? The Korean War officially ended in nineteen

53
00:02:49.080 --> 00:02:51.960
<v Speaker 1>fifty three an Armis disagreement signed on July twenty seventh.

54
00:02:52.639 --> 00:02:56.479
<v Speaker 1>DNA was discovered by James Watson and Francis Crick, building

55
00:02:56.479 --> 00:02:59.599
<v Speaker 1>on Rosalind Franklin's work. I don't think there's a relation.

56
00:03:01.360 --> 00:03:05.960
<v Speaker 1>According to King's College, London, Joseph Stalin died on March fifth.

57
00:03:06.000 --> 00:03:08.159
<v Speaker 1>Dwight D. Eisenhower was sworn in as President of the

58
00:03:08.240 --> 00:03:10.919
<v Speaker 1>United States on January twentyeth Queen Elizabeth iiO Is crowned

59
00:03:10.919 --> 00:03:15.199
<v Speaker 1>on June second. Jesus A good year, yeah, and some

60
00:03:15.280 --> 00:03:17.560
<v Speaker 1>tech advancements, Richard, I'm sure we'll have more. But the

61
00:03:17.639 --> 00:03:21.919
<v Speaker 1>US detonated the first thermo nuclear device code named Mike. Yeah,

62
00:03:22.039 --> 00:03:25.360
<v Speaker 1>in the Central Pacific Ocean. I know Mike, who was

63
00:03:25.479 --> 00:03:26.879
<v Speaker 1>like a thermonuclear device.

64
00:03:27.520 --> 00:03:30.039
<v Speaker 2>Yeah. The big one is IBM's six fifty, which was

65
00:03:30.080 --> 00:03:32.879
<v Speaker 2>the sort of first mass produced computer. So we're finally

66
00:03:33.280 --> 00:03:36.039
<v Speaker 2>you know, up until then, every computer was bespoke. Yeah, right,

67
00:03:36.080 --> 00:03:38.199
<v Speaker 2>they were calm built. You know. I told that story

68
00:03:38.240 --> 00:03:42.280
<v Speaker 2>about when they built that the first that first machine,

69
00:03:42.439 --> 00:03:44.919
<v Speaker 2>and the Census bought it, but then they wouldn't give

70
00:03:44.919 --> 00:03:46.479
<v Speaker 2>it to them because they didn't were afraid to take

71
00:03:46.479 --> 00:03:50.400
<v Speaker 2>it apart. Right, So yeah, the six fifty was the

72
00:03:50.400 --> 00:03:53.319
<v Speaker 2>first sort of reliable, rebuildable computer that they've asked.

73
00:03:53.439 --> 00:03:55.439
<v Speaker 1>All right, well that's just a few things that happened.

74
00:03:55.639 --> 00:03:57.000
<v Speaker 1>But geez, what a year.

75
00:03:57.120 --> 00:03:59.599
<v Speaker 2>Yeah, ninety fifty three important year knowing about.

76
00:03:59.360 --> 00:04:01.479
<v Speaker 1>It all right? Well, as I said, Scott Hunter is

77
00:04:01.520 --> 00:04:04.039
<v Speaker 1>here and we have to do a thing first called

78
00:04:04.159 --> 00:04:14.800
<v Speaker 1>better no Framework roll the crazy music. Awesome what he

79
00:04:14.840 --> 00:04:17.879
<v Speaker 1>got Our friend Simon Krawn, of course, he is a

80
00:04:18.000 --> 00:04:22.560
<v Speaker 1>font of good stuff. He finds things. He's part of

81
00:04:22.600 --> 00:04:24.879
<v Speaker 1>the app and X team. Also he's helped me out

82
00:04:24.879 --> 00:04:28.879
<v Speaker 1>with some of my GitHub projects and just a great guy.

83
00:04:29.439 --> 00:04:34.079
<v Speaker 1>So he's created z link z l huge his project.

84
00:04:34.160 --> 00:04:37.920
<v Speaker 1>Oh no, it's not his project. He found it and yeah,

85
00:04:37.959 --> 00:04:40.720
<v Speaker 1>so he found it and shared it with me. It's

86
00:04:40.720 --> 00:04:44.560
<v Speaker 1>a zero allocation link library for dot net. What does

87
00:04:44.600 --> 00:04:48.839
<v Speaker 1>that mean, Well, allocation, zero allocations means you don't create

88
00:04:48.879 --> 00:04:52.319
<v Speaker 1>anything on the heap, right, you don't create anything that

89
00:04:52.360 --> 00:04:54.839
<v Speaker 1>needs to be garbage collected. So that's a good thing.

90
00:04:55.480 --> 00:04:58.079
<v Speaker 1>And I was talking to my buddy Scott before you

91
00:04:58.079 --> 00:05:01.839
<v Speaker 1>got here, Richard, about zero allocation. And it turns out

92
00:05:02.120 --> 00:05:05.000
<v Speaker 1>a lot of the optimizations in dot net have been

93
00:05:05.120 --> 00:05:06.920
<v Speaker 1>because of zero allocation.

94
00:05:07.120 --> 00:05:09.560
<v Speaker 2>That's been very much a move, right. I mentioned a

95
00:05:09.600 --> 00:05:12.319
<v Speaker 2>lot of the work they did in that exotic version

96
00:05:12.639 --> 00:05:16.240
<v Speaker 2>of Polly, which about minimizing allocation.

97
00:05:15.959 --> 00:05:18.519
<v Speaker 1>Right, and so then we got talking about ring buffers,

98
00:05:18.519 --> 00:05:18.959
<v Speaker 1>which is.

99
00:05:19.079 --> 00:05:21.199
<v Speaker 4>I was going to say, yeah, Kestrel and dot Net.

100
00:05:22.000 --> 00:05:24.079
<v Speaker 4>We were actually sitting in a room and building forty

101
00:05:24.079 --> 00:05:25.959
<v Speaker 4>four one day and we're trying to figure out, obviously,

102
00:05:26.000 --> 00:05:29.120
<v Speaker 4>how do we make the web server, you know, allocate less, Yeah,

103
00:05:29.160 --> 00:05:32.199
<v Speaker 4>because that's the you know, the negative of garbage collection

104
00:05:32.279 --> 00:05:33.639
<v Speaker 4>is if you allocate a lot of memory, well, the

105
00:05:33.680 --> 00:05:35.279
<v Speaker 4>garbage collector has to go work in the background to

106
00:05:35.319 --> 00:05:37.000
<v Speaker 4>go get rid of that memory, and that's going to

107
00:05:37.040 --> 00:05:38.959
<v Speaker 4>burn CPU and that's going to slow things down. And

108
00:05:39.000 --> 00:05:41.480
<v Speaker 4>so we were trying to find you know, a lot

109
00:05:41.480 --> 00:05:44.160
<v Speaker 4>of the early optimizations in dot net the dotin corbets

110
00:05:44.160 --> 00:05:46.959
<v Speaker 4>were how do we reduce the allocations that we're making

111
00:05:47.000 --> 00:05:49.600
<v Speaker 4>in the first place. And so one idea was, hey,

112
00:05:49.800 --> 00:05:53.199
<v Speaker 4>the webserver is always turning through requests. Let's just put

113
00:05:53.199 --> 00:05:55.680
<v Speaker 4>a ring buffer inside of there, and then we're not

114
00:05:55.720 --> 00:05:57.240
<v Speaker 4>allocating at all, we're just reusing memory.

115
00:05:57.720 --> 00:05:58.680
<v Speaker 1>What's a ring buffer?

116
00:05:58.680 --> 00:06:01.480
<v Speaker 4>Actually, I just think it's think think of it like this,

117
00:06:01.600 --> 00:06:04.800
<v Speaker 4>a big circle of memory. And what you do is

118
00:06:04.839 --> 00:06:07.160
<v Speaker 4>instead of allocating memory, you just keep reusing some part

119
00:06:07.160 --> 00:06:10.160
<v Speaker 4>of that that buffer again and again and again, going around.

120
00:06:10.199 --> 00:06:11.920
<v Speaker 4>You know, as as things are done, they fall off

121
00:06:11.920 --> 00:06:15.879
<v Speaker 4>the end. And but a big chunk of kestrel is

122
00:06:15.920 --> 00:06:19.759
<v Speaker 4>basically first buffering a big ring q if you think

123
00:06:19.800 --> 00:06:22.879
<v Speaker 4>about it like that way. And when we first did it,

124
00:06:22.879 --> 00:06:25.959
<v Speaker 4>we were using you know, uh unsafe sea sharp to

125
00:06:26.000 --> 00:06:28.240
<v Speaker 4>do that because it's just memory and pointers and stuff

126
00:06:28.279 --> 00:06:30.199
<v Speaker 4>like that. And we actually added features to c sharp

127
00:06:30.279 --> 00:06:31.680
<v Speaker 4>later they got.

128
00:06:31.560 --> 00:06:34.560
<v Speaker 2>Remember remember memory created a whole framework to make it

129
00:06:34.600 --> 00:06:36.439
<v Speaker 2>safe so we didn't have to do that sort of thing. Yes,

130
00:06:36.480 --> 00:06:38.279
<v Speaker 2>and then he did it inside of it anyway. Anyways,

131
00:06:38.360 --> 00:06:38.879
<v Speaker 2>that's clever.

132
00:06:39.279 --> 00:06:40.959
<v Speaker 4>But but then we put the sea sharp features in

133
00:06:41.040 --> 00:06:42.480
<v Speaker 4>so we could go get rid of all that stupid

134
00:06:42.519 --> 00:06:45.079
<v Speaker 4>stuff that we were doing. Anyways, So as.

135
00:06:44.959 --> 00:06:47.439
<v Speaker 1>It turns out, you know, uh remember I don't know

136
00:06:47.439 --> 00:06:49.040
<v Speaker 1>if you remember this or if you were with dot

137
00:06:49.120 --> 00:06:52.879
<v Speaker 1>net Rocks back then, but Chris Sells Richard uh talked

138
00:06:52.920 --> 00:06:55.439
<v Speaker 1>about how he wanted to bring reference counting back into

139
00:06:55.600 --> 00:07:00.720
<v Speaker 1>dot net. It was the early days, and uh, you know, yeah,

140
00:07:00.839 --> 00:07:03.920
<v Speaker 1>he was used to reference counting in Calm, and you know,

141
00:07:03.959 --> 00:07:07.240
<v Speaker 1>he had control over what happened and what got deallocated

142
00:07:07.319 --> 00:07:09.240
<v Speaker 1>and when I think it was when he did that

143
00:07:09.319 --> 00:07:13.079
<v Speaker 1>whole thing gets ten Yeah, disposed and I disposable and

144
00:07:13.120 --> 00:07:17.360
<v Speaker 1>all that. Yeah, but his sense man in that crusade,

145
00:07:17.439 --> 00:07:19.040
<v Speaker 1>of course, we went into lake.

146
00:07:19.120 --> 00:07:20.959
<v Speaker 4>I was say, reference counting. Oh my gosh, I mean

147
00:07:21.079 --> 00:07:23.240
<v Speaker 4>technically the garbage collector is doing that. You just don't

148
00:07:23.279 --> 00:07:24.879
<v Speaker 4>have to see it. So it's like it is reference

149
00:07:24.879 --> 00:07:27.360
<v Speaker 4>counting behind the scenes. You just don't else how would

150
00:07:27.360 --> 00:07:29.079
<v Speaker 4>it work. Yeah, some are it has to go. Nobody's

151
00:07:29.120 --> 00:07:30.920
<v Speaker 4>using this anymore. Yeah, I can now get rid of it.

152
00:07:30.959 --> 00:07:32.639
<v Speaker 2>And there was a there was a bake off in

153
00:07:32.639 --> 00:07:35.199
<v Speaker 2>the early version of dot net between a reference counted

154
00:07:35.199 --> 00:07:41.360
<v Speaker 2>implementation and the garbage collecting implementation. Patrick Dessaud did the

155
00:07:39.360 --> 00:07:46.240
<v Speaker 2>the the garbage collected version and kicked But yeah, it

156
00:07:46.279 --> 00:07:49.399
<v Speaker 2>was Admittedly the guy had an advantage because he'd done

157
00:07:49.439 --> 00:07:52.199
<v Speaker 2>the Microsoft imilmentation of the JAVM, like he knew that

158
00:07:52.519 --> 00:07:54.920
<v Speaker 2>cold and got to do it all from scratch. Like,

159
00:07:55.279 --> 00:07:58.160
<v Speaker 2>I don't think we can underestimate the number of benefits

160
00:07:58.160 --> 00:08:01.879
<v Speaker 2>that dot net had from having folks from deeply familiar

161
00:08:01.920 --> 00:08:04.959
<v Speaker 2>with JABA to say, hey, we're going to do generics right,

162
00:08:05.000 --> 00:08:07.120
<v Speaker 2>we're going to do the type system right, and we're

163
00:08:07.120 --> 00:08:08.240
<v Speaker 2>going to do garbage collection right.

164
00:08:08.319 --> 00:08:10.199
<v Speaker 4>Yeah, people forget that. You know, visual j plus plus

165
00:08:10.279 --> 00:08:12.439
<v Speaker 4>was a thing, was it that Patrick worked on, Andrews

166
00:08:12.480 --> 00:08:16.759
<v Speaker 4>Halsberg worked on, and so literally, you know what we

167
00:08:16.800 --> 00:08:19.160
<v Speaker 4>call net today is kind of a fork of that

168
00:08:19.240 --> 00:08:22.000
<v Speaker 4>thing with the different language, but it's got the same

169
00:08:22.040 --> 00:08:23.920
<v Speaker 4>garbage collector and all that stuff. And that's where that

170
00:08:24.120 --> 00:08:26.199
<v Speaker 4>I'm sure that's where Patrick brought the garbage collector from.

171
00:08:26.040 --> 00:08:28.000
<v Speaker 2>It, even if he started from scratch it. You know,

172
00:08:28.000 --> 00:08:30.040
<v Speaker 2>it doesn't matter. He had it in his head, he

173
00:08:30.240 --> 00:08:33.159
<v Speaker 2>thought about it, and implemented more than arguably anybody else

174
00:08:33.159 --> 00:08:34.720
<v Speaker 2>in the world at that time.

175
00:08:34.840 --> 00:08:37.440
<v Speaker 1>I remember when Microsoft killed Visual j plus plus, and

176
00:08:37.480 --> 00:08:39.600
<v Speaker 1>I can't remember who it was, and I probably wouldn't

177
00:08:39.600 --> 00:08:42.000
<v Speaker 1>want to say their name anyway, but I said, hey,

178
00:08:42.039 --> 00:08:43.960
<v Speaker 1>why don't you guys killed j plus plus? He said,

179
00:08:44.159 --> 00:08:45.240
<v Speaker 1>we kept getting sued.

180
00:08:47.360 --> 00:08:50.200
<v Speaker 4>We sort of deserve to get sued in this particular case.

181
00:08:50.360 --> 00:08:53.720
<v Speaker 4>So you know, we we The reason we got sued

182
00:08:53.840 --> 00:08:57.399
<v Speaker 4>was because we had built a JVM, and we added

183
00:08:57.440 --> 00:09:00.840
<v Speaker 4>features to our JVM that were not standard Java features.

184
00:09:01.320 --> 00:09:03.759
<v Speaker 4>The problem is because because we have an operating system

185
00:09:03.799 --> 00:09:08.360
<v Speaker 4>that's installed on a billion machines, our JVM with its

186
00:09:09.080 --> 00:09:12.399
<v Speaker 4>non compliant features, is suddenly on everybody's Every Windows device

187
00:09:12.480 --> 00:09:17.720
<v Speaker 4>in fact, is there. And so in those features, those features,

188
00:09:17.759 --> 00:09:20.000
<v Speaker 4>commonly enough are are super important.

189
00:09:19.679 --> 00:09:20.360
<v Speaker 2>C sharp features.

190
00:09:20.399 --> 00:09:24.399
<v Speaker 4>There's delegates were one of those features. And UH the

191
00:09:25.000 --> 00:09:28.120
<v Speaker 4>father of of p and voke which probably I think

192
00:09:28.120 --> 00:09:30.480
<v Speaker 4>it was called jada rec back then. UH, And and

193
00:09:30.559 --> 00:09:33.039
<v Speaker 4>so those features. Anders put those features in as he

194
00:09:33.120 --> 00:09:39.799
<v Speaker 4>was building. UH, basically the father of of UH wind forms.

195
00:09:40.080 --> 00:09:42.519
<v Speaker 2>The way I've heard it described is with it. So

196
00:09:42.679 --> 00:09:44.879
<v Speaker 2>I think Silverburg is quoted as saying this, it's like

197
00:09:45.279 --> 00:09:49.679
<v Speaker 2>the day that Sun and Microsoft signed that agreement, both

198
00:09:49.679 --> 00:09:52.639
<v Speaker 2>companies were in violation of it, and it just continued

199
00:09:52.639 --> 00:09:56.120
<v Speaker 2>from there. He that he, you know, through pure force

200
00:09:56.159 --> 00:10:00.399
<v Speaker 2>of will, and whatever I've seen of Silverberg lots force

201
00:10:00.399 --> 00:10:02.960
<v Speaker 2>of will. He got both parties to the table to

202
00:10:03.000 --> 00:10:05.000
<v Speaker 2>sign that thing. But he doesn't mean he was going

203
00:10:05.080 --> 00:10:08.159
<v Speaker 2>to change their personalities. There's only so much you could do,

204
00:10:08.759 --> 00:10:10.360
<v Speaker 2>and so at some point they just had to call

205
00:10:10.399 --> 00:10:12.080
<v Speaker 2>the ball on this. It's like, look, this is not

206
00:10:12.480 --> 00:10:14.759
<v Speaker 2>what the intent was. You got to stop.

207
00:10:14.840 --> 00:10:16.799
<v Speaker 1>Well, it sounds like we're starting the show, but we're

208
00:10:16.799 --> 00:10:20.519
<v Speaker 1>really still in the preheader, so I think it's your turn.

209
00:10:20.600 --> 00:10:21.679
<v Speaker 1>You need to tell us.

210
00:10:21.960 --> 00:10:23.759
<v Speaker 2>Read a comment. Yeah, I got to comment off the

211
00:10:23.759 --> 00:10:27.360
<v Speaker 2>show nineteen thirty eight when we did with Frank Suadengue

212
00:10:27.679 --> 00:10:31.639
<v Speaker 2>and Sasha talking about the new version of Uno. Yeah,

213
00:10:31.720 --> 00:10:34.320
<v Speaker 2>because it's a great comment, which which is from Fabian

214
00:10:34.360 --> 00:10:38.159
<v Speaker 2>Hugil who said, I really liked that Carl relativized good word.

215
00:10:38.320 --> 00:10:40.919
<v Speaker 2>I like that hot design and hot reload at some

216
00:10:41.080 --> 00:10:44.000
<v Speaker 2>point I have had that. I have had very similar

217
00:10:44.039 --> 00:10:48.200
<v Speaker 2>experiences a visual designer just cannot match what a scene

218
00:10:48.279 --> 00:10:51.600
<v Speaker 2>graph based UI can do, you know, like HTML, like

219
00:10:51.879 --> 00:10:54.279
<v Speaker 2>you know said it. So for every non trivial UI

220
00:10:54.360 --> 00:10:57.080
<v Speaker 2>you will eventually write some zammal code and as to

221
00:10:57.159 --> 00:11:00.240
<v Speaker 2>hot reload, yeah, it's fancy, but even for non UI

222
00:11:00.320 --> 00:11:03.440
<v Speaker 2>dot net assemblies, it often fails for even not too

223
00:11:03.559 --> 00:11:05.399
<v Speaker 2>large changes. I mean this is a challenge long reload.

224
00:11:05.440 --> 00:11:07.399
<v Speaker 2>You can only do a little fudge before it's like, dude,

225
00:11:07.399 --> 00:11:09.159
<v Speaker 2>you need to compile, Like sorry.

226
00:11:08.879 --> 00:11:12.120
<v Speaker 1>Yeah, you need to stop and run again. But fabe

227
00:11:12.440 --> 00:11:13.840
<v Speaker 1>my experience. Yeah sure, yeah.

228
00:11:13.879 --> 00:11:15.919
<v Speaker 2>Fabian goes to say, you know, I never really use

229
00:11:15.960 --> 00:11:18.679
<v Speaker 2>it and I don't miss it, which is interesting. I mean,

230
00:11:18.720 --> 00:11:20.639
<v Speaker 2>we put a lot of hype around hot reload, but

231
00:11:20.720 --> 00:11:23.240
<v Speaker 2>it's like, if you've got a workflow that works for you,

232
00:11:23.240 --> 00:11:24.879
<v Speaker 2>you don't have to go further than you know where hot.

233
00:11:24.679 --> 00:11:27.960
<v Speaker 1>Reload works best if you're changing CSS.

234
00:11:27.600 --> 00:11:30.679
<v Speaker 2>Yeah, tweaking, tweaking all that little fence posty stuff.

235
00:11:30.799 --> 00:11:31.840
<v Speaker 1>Change one line of code.

236
00:11:31.879 --> 00:11:34.600
<v Speaker 2>Oh no, it's time to read about yeah.

237
00:11:35.080 --> 00:11:37.519
<v Speaker 4>Usually, Yeah, we just haven't done enough work to make

238
00:11:37.639 --> 00:11:39.360
<v Speaker 4>we can make hot reload better. It's just not good

239
00:11:39.480 --> 00:11:42.159
<v Speaker 4>enough yet. So it's we had a huge effort, uh

240
00:11:42.399 --> 00:11:43.759
<v Speaker 4>that we went. We first put it in the in

241
00:11:43.799 --> 00:11:46.480
<v Speaker 4>the product, and then we kind of got busy with

242
00:11:46.519 --> 00:11:48.960
<v Speaker 4>other stuff and it hasn't had enough love recently.

243
00:11:48.960 --> 00:11:50.480
<v Speaker 2>It's got to go back into the looping. It needs

244
00:11:50.480 --> 00:11:53.080
<v Speaker 2>to go back in the loop. Bitt ten maybe so Fabian,

245
00:11:53.080 --> 00:11:54.759
<v Speaker 2>thank you so much. You're commented. A copy of music

246
00:11:54.759 --> 00:11:55.879
<v Speaker 2>co By is on its way to you. And if

247
00:11:55.879 --> 00:11:57.360
<v Speaker 2>you'd like a copy of music, go buy. I write

248
00:11:57.360 --> 00:11:59.159
<v Speaker 2>a comment on the website at dot net rocks dot

249
00:11:59.200 --> 00:12:01.240
<v Speaker 2>com or on the books. We publish every show there

250
00:12:01.240 --> 00:12:02.759
<v Speaker 2>and if you comment there and I read all the show,

251
00:12:02.879 --> 00:12:04.200
<v Speaker 2>we'll sign your copy of Music to Koba.

252
00:12:04.360 --> 00:12:07.279
<v Speaker 1>And as Richard mentioned, music to Koba is still going strong.

253
00:12:07.879 --> 00:12:09.799
<v Speaker 1>Music to code by dot Net We're up to twenty

254
00:12:09.879 --> 00:12:12.279
<v Speaker 1>two tracks and you can get the entire collection in

255
00:12:12.480 --> 00:12:16.440
<v Speaker 1>MP three, flak or wave format. And oh my god,

256
00:12:16.480 --> 00:12:17.200
<v Speaker 1>it's Scott Hunter.

257
00:12:17.799 --> 00:12:18.240
<v Speaker 2>Surely me.

258
00:12:18.440 --> 00:12:21.080
<v Speaker 1>I'm going to introduce him for real. He is still

259
00:12:21.120 --> 00:12:23.759
<v Speaker 1>the vice president of product for Azure Development Experience and

260
00:12:23.799 --> 00:12:28.240
<v Speaker 1>builds all the tools dot net tools for Azure. Yeah,

261
00:12:28.480 --> 00:12:31.080
<v Speaker 1>that's absolutely I love that. I would love to be

262
00:12:31.159 --> 00:12:34.559
<v Speaker 1>able to get to that kind of bio someday, you know.

263
00:12:34.919 --> 00:12:36.720
<v Speaker 2>Just does all the things I do the things with

264
00:12:36.759 --> 00:12:37.519
<v Speaker 2>the stuff, all the.

265
00:12:37.480 --> 00:12:38.200
<v Speaker 1>Things with the stuff.

266
00:12:38.240 --> 00:12:39.720
<v Speaker 4>You just if you work at the same company for

267
00:12:39.759 --> 00:12:41.159
<v Speaker 4>like eighteen years, this is what happens.

268
00:12:41.200 --> 00:12:44.080
<v Speaker 2>Yeah, the the title gets shorter.

269
00:12:44.399 --> 00:12:48.240
<v Speaker 4>Yeah, and you touch all the different parts of you know,

270
00:12:48.360 --> 00:12:50.159
<v Speaker 4>the Microsoft ecosystem over that time.

271
00:12:50.200 --> 00:12:52.440
<v Speaker 1>But getting back to what we were talking about zero allocations,

272
00:12:52.480 --> 00:12:56.919
<v Speaker 1>it's not just Kestrel, but every genera, every version of

273
00:12:57.000 --> 00:13:01.120
<v Speaker 1>dot necor dot nine and now ten before that seems

274
00:13:01.200 --> 00:13:06.440
<v Speaker 1>just to be getting faster, less memory consumption and more scalable.

275
00:13:06.720 --> 00:13:06.879
<v Speaker 2>Yeah.

276
00:13:06.919 --> 00:13:09.919
<v Speaker 4>I was one of the cool features that you know,

277
00:13:10.519 --> 00:13:13.399
<v Speaker 4>we talked about the garbage collector Collector earlier and uh,

278
00:13:13.799 --> 00:13:16.200
<v Speaker 4>one of the coolest garbage culcture features that we've done recently,

279
00:13:16.240 --> 00:13:17.720
<v Speaker 4>and I think it just went under the radar. Nobody

280
00:13:17.720 --> 00:13:21.200
<v Speaker 4>even thinks about this is we had some I remember

281
00:13:21.240 --> 00:13:23.120
<v Speaker 4>we had a couple of customers and they were comparing

282
00:13:23.200 --> 00:13:27.240
<v Speaker 4>dot net to go and Rust and I think we

283
00:13:27.240 --> 00:13:29.399
<v Speaker 4>were winning on the performance side of it. We were

284
00:13:29.519 --> 00:13:31.480
<v Speaker 4>you know, uh and those things, but they were complaining

285
00:13:31.480 --> 00:13:35.639
<v Speaker 4>about the memory we used, right, and uh, we if

286
00:13:35.679 --> 00:13:37.279
<v Speaker 4>one of these benchmarks we had and we looked and

287
00:13:37.320 --> 00:13:40.360
<v Speaker 4>we saw that we were using roughly twice the memory

288
00:13:40.600 --> 00:13:42.480
<v Speaker 4>that Go and Rust were using, and at the time

289
00:13:42.480 --> 00:13:44.840
<v Speaker 4>we we didn't have We didn't really go think a

290
00:13:44.879 --> 00:13:47.600
<v Speaker 4>lot about it. We were busy with other stuff. But uh, it.

291
00:13:47.480 --> 00:13:49.759
<v Speaker 1>Was was that a real test? I mean, was it

292
00:13:49.799 --> 00:13:51.639
<v Speaker 1>a test of just loading it up and seeing what

293
00:13:51.679 --> 00:13:55.759
<v Speaker 1>the memory usage is or over time after after three

294
00:13:55.799 --> 00:13:57.480
<v Speaker 1>hours of use? You know?

295
00:13:57.639 --> 00:13:59.440
<v Speaker 4>So I don't remember the exact details.

296
00:13:59.440 --> 00:13:59.639
<v Speaker 2>It was.

297
00:13:59.759 --> 00:14:01.519
<v Speaker 4>It was the customer that brought their own benchmarks in

298
00:14:01.559 --> 00:14:04.039
<v Speaker 4>and they'd run their own benchmarks, and then we said, hey,

299
00:14:04.039 --> 00:14:05.200
<v Speaker 4>can we see your benchmarks?

300
00:14:05.200 --> 00:14:07.799
<v Speaker 2>And you bring up a great point though, carcas One

301
00:14:07.799 --> 00:14:09.080
<v Speaker 2>of the things when I did a lot of load

302
00:14:09.080 --> 00:14:12.080
<v Speaker 2>testing back in the day with dot net websites especially,

303
00:14:12.519 --> 00:14:16.799
<v Speaker 2>you needed several hours for the garbage collector to mature, right,

304
00:14:16.879 --> 00:14:19.039
<v Speaker 2>You have to have pushed enough pages through and so forth,

305
00:14:19.080 --> 00:14:21.519
<v Speaker 2>and filled memory up and had done a couple of

306
00:14:21.919 --> 00:14:26.240
<v Speaker 2>second gen garbage collects before you even really knew what

307
00:14:26.279 --> 00:14:28.960
<v Speaker 2>a site's going to look like. You could fool yourself

308
00:14:29.000 --> 00:14:31.679
<v Speaker 2>on a fresh start with empty memory and run a

309
00:14:31.720 --> 00:14:33.759
<v Speaker 2>quick benchmark and go, all this stuff looks great.

310
00:14:33.919 --> 00:14:36.679
<v Speaker 1>Yeah, like dot Net could have been pre allocating memory

311
00:14:36.679 --> 00:14:39.399
<v Speaker 1>that it might have needed later and Go or Rust

312
00:14:39.519 --> 00:14:41.399
<v Speaker 1>might have not and so you have to look at

313
00:14:41.399 --> 00:14:41.879
<v Speaker 1>it after you.

314
00:14:42.159 --> 00:14:44.080
<v Speaker 4>That's that's that's actual we found was we have a

315
00:14:44.120 --> 00:14:48.360
<v Speaker 4>week what I you know, Mami might kill me. Whatever

316
00:14:48.480 --> 00:14:50.559
<v Speaker 4>termatics made up, but it's I call it a greedy,

317
00:14:50.600 --> 00:14:51.519
<v Speaker 4>greedy garbage collector.

318
00:14:51.600 --> 00:14:51.759
<v Speaker 2>Right.

319
00:14:51.919 --> 00:14:53.399
<v Speaker 4>Hey, you know when when you when you boot the

320
00:14:53.399 --> 00:14:55.200
<v Speaker 4>app up, the garbage colector goes how much memory does

321
00:14:55.200 --> 00:14:56.519
<v Speaker 4>the machine have? I'm gonna go grab.

322
00:14:56.279 --> 00:14:56.720
<v Speaker 2>All that stuff?

323
00:14:56.759 --> 00:15:00.519
<v Speaker 4>Yeah, yeah, And that was the exact thing that the

324
00:15:00.519 --> 00:15:03.639
<v Speaker 4>benchmarks these companies brought to us were showing was basically,

325
00:15:04.240 --> 00:15:05.440
<v Speaker 4>we weren't using all that memory.

326
00:15:05.519 --> 00:15:06.919
<v Speaker 2>No, we were just getting ready just in case you

327
00:15:06.960 --> 00:15:07.440
<v Speaker 2>needed We were.

328
00:15:07.360 --> 00:15:09.200
<v Speaker 4>Getting ready in case you needed it. And then in

329
00:15:09.240 --> 00:15:12.279
<v Speaker 4>dotten at eight, that's where we put this behind the

330
00:15:12.320 --> 00:15:14.799
<v Speaker 4>feature flag, a new mode where the garbage clutter is

331
00:15:14.799 --> 00:15:16.960
<v Speaker 4>not greedy, right, And so basically we're going to start

332
00:15:17.000 --> 00:15:19.559
<v Speaker 4>with a little bit of memory and we'll allocate more

333
00:15:19.600 --> 00:15:21.360
<v Speaker 4>memory as as necessary.

334
00:15:22.120 --> 00:15:25.320
<v Speaker 2>And and you're referring to Maoni Stevens, I think the

335
00:15:25.360 --> 00:15:27.480
<v Speaker 2>new Patrick, who was the new Patrick decide I've had

336
00:15:27.480 --> 00:15:30.519
<v Speaker 2>conversations with that woman. That's one of the most remarkable

337
00:15:30.559 --> 00:15:34.480
<v Speaker 2>minds I've and a company full of remarkable minds. Holy

338
00:15:34.600 --> 00:15:36.919
<v Speaker 2>man just thinks on a different level.

339
00:15:37.519 --> 00:15:39.399
<v Speaker 4>She knows more about garbage collectors than you and I

340
00:15:39.440 --> 00:15:40.720
<v Speaker 4>would ever know in our entire life.

341
00:15:41.360 --> 00:15:45.240
<v Speaker 2>Richards and prest I am staggered.

342
00:15:45.799 --> 00:15:48.440
<v Speaker 1>Staggered, that's so much to be scared.

343
00:15:48.720 --> 00:15:51.600
<v Speaker 2>It's just ex shredded. But again, what a specialist.

344
00:15:52.320 --> 00:15:54.399
<v Speaker 4>And you know Patrick still came in after he retired

345
00:15:54.639 --> 00:15:56.759
<v Speaker 4>and still still comes in and talks to Myoni and

346
00:15:56.799 --> 00:15:58.799
<v Speaker 4>stuff like that. And and uh, because I'm sure he

347
00:15:58.840 --> 00:16:00.919
<v Speaker 4>still has ideas too, and I'm sure they bouncedid these.

348
00:16:01.679 --> 00:16:03.720
<v Speaker 4>I would love to see one of those conversations because

349
00:16:03.720 --> 00:16:05.120
<v Speaker 4>I wouldn't understand.

350
00:16:04.799 --> 00:16:07.120
<v Speaker 2>Any of it. You just sort of stare in awe, but.

351
00:16:07.279 --> 00:16:11.480
<v Speaker 4>Uh, you know, it's amazing. But she she built a

352
00:16:11.519 --> 00:16:13.000
<v Speaker 4>new feature which is the one where we don't have

353
00:16:13.000 --> 00:16:15.840
<v Speaker 4>the greedy allocation, and we put it in eight, but

354
00:16:15.879 --> 00:16:18.480
<v Speaker 4>it was off behind a feature flag because before we

355
00:16:18.480 --> 00:16:20.639
<v Speaker 4>actually put it put it on on for default, we

356
00:16:20.679 --> 00:16:23.519
<v Speaker 4>wanted to actually run a bunch of the services we

357
00:16:23.639 --> 00:16:26.679
<v Speaker 4>run inside of Microsoft a while. So let's let's go

358
00:16:26.799 --> 00:16:29.360
<v Speaker 4>run a whole bunch of the M three sixty five

359
00:16:29.399 --> 00:16:32.759
<v Speaker 4>back end on this on this technology, uh, in this

360
00:16:32.840 --> 00:16:35.279
<v Speaker 4>new mode and we'll get all the bugs figured out

361
00:16:35.279 --> 00:16:35.960
<v Speaker 4>inside of Microsoft.

362
00:16:35.960 --> 00:16:38.720
<v Speaker 2>I wouldn't have messed with metrics just because it's calucating

363
00:16:38.759 --> 00:16:41.200
<v Speaker 2>memory different and then showing how it's memory with nine

364
00:16:41.320 --> 00:16:43.279
<v Speaker 2>it's on by default. Okay, so turned out to be

365
00:16:43.360 --> 00:16:44.120
<v Speaker 2>non event.

366
00:16:44.279 --> 00:16:46.200
<v Speaker 4>I'm sure we fix bugs. Yeah.

367
00:16:46.279 --> 00:16:49.799
<v Speaker 1>But you know what, though, I would almost want the

368
00:16:49.879 --> 00:16:52.759
<v Speaker 1>pre allocation because it's going to be faster to allocate

369
00:16:52.799 --> 00:16:55.039
<v Speaker 1>memory when it needs it to just use it.

370
00:16:55.120 --> 00:16:58.399
<v Speaker 4>The uh I think the scenario that you want the

371
00:16:58.559 --> 00:17:02.360
<v Speaker 4>non greedy ones. Are you running on like an IoT device? Yeah, okay,

372
00:17:02.399 --> 00:17:04.720
<v Speaker 4>if you're running on something constrained. So in this case,

373
00:17:04.799 --> 00:17:07.000
<v Speaker 4>the customers was running vms. It makes no sense to

374
00:17:07.039 --> 00:17:09.079
<v Speaker 4>me anyways. So I think the vms are like sixty

375
00:17:09.119 --> 00:17:12.279
<v Speaker 4>four megah this day and age sixty four megs snooze.

376
00:17:12.319 --> 00:17:13.799
<v Speaker 4>My kids don't even know what megs are. They start

377
00:17:13.799 --> 00:17:14.559
<v Speaker 4>with gigs yeaheah.

378
00:17:14.960 --> 00:17:18.160
<v Speaker 1>So it's like, uh, well, and that brings up another thing.

379
00:17:18.200 --> 00:17:20.559
<v Speaker 1>Could there be a configuration that says, you know, what

380
00:17:20.640 --> 00:17:23.240
<v Speaker 1>percent of available memory should the garbage collector start with?

381
00:17:23.359 --> 00:17:26.000
<v Speaker 4>There might be a setting for that somewhere in the system.

382
00:17:26.000 --> 00:17:28.759
<v Speaker 4>I have no idea. There's there's probably a whole bunch

383
00:17:28.799 --> 00:17:30.720
<v Speaker 4>of feature flags on the on the on the GC

384
00:17:30.880 --> 00:17:32.200
<v Speaker 4>that are way beyond as.

385
00:17:32.160 --> 00:17:34.240
<v Speaker 1>Long as this sign the registry, and we should.

386
00:17:34.599 --> 00:17:37.079
<v Speaker 4>Well, nipcore can't use the registry because it runs on

387
00:17:37.119 --> 00:17:41.279
<v Speaker 4>non Windows offerating system. So we, uh, we left that

388
00:17:41.319 --> 00:17:46.119
<v Speaker 4>building behind, thank you. We should talk about coding agents, Carl, I.

389
00:17:46.039 --> 00:17:48.880
<v Speaker 2>Know we should, totally should, but we just streshed out

390
00:17:48.880 --> 00:17:50.960
<v Speaker 2>of the keynote. Yeah, and I gotta say, you know,

391
00:17:51.160 --> 00:17:52.519
<v Speaker 2>somebody's asked you, so what do you think it is?

392
00:17:52.519 --> 00:17:55.079
<v Speaker 2>I think Microsoft's doing what Microsoft's best, which is building

393
00:17:55.240 --> 00:17:58.240
<v Speaker 2>tools so the rest of us can take advantage of

394
00:17:58.279 --> 00:18:02.400
<v Speaker 2>the new capabilities. And what was this hour and a half,

395
00:18:02.680 --> 00:18:04.519
<v Speaker 2>but check out the new tools.

396
00:18:04.599 --> 00:18:06.759
<v Speaker 1>And one thing that we were talking about before we

397
00:18:06.799 --> 00:18:11.200
<v Speaker 1>started recording was it was almost a little what was

398
00:18:11.240 --> 00:18:14.680
<v Speaker 1>the word that I used, like it was not confusing,

399
00:18:14.720 --> 00:18:17.680
<v Speaker 1>but it made it look simpler than it was because

400
00:18:17.720 --> 00:18:21.079
<v Speaker 1>basically it just looked like the demos where people clicking

401
00:18:21.119 --> 00:18:23.960
<v Speaker 1>things and typing a sentence and pressing buttons and boom,

402
00:18:24.000 --> 00:18:27.440
<v Speaker 1>everything's there. But you know, at least I know that

403
00:18:27.920 --> 00:18:31.640
<v Speaker 1>it can be that simple if I know what I'm doing, right,

404
00:18:32.599 --> 00:18:35.319
<v Speaker 1>So I didn't understand it misleading, I think was the word.

405
00:18:35.359 --> 00:18:37.319
<v Speaker 1>I didn't understand it. I couldn't if you asked me

406
00:18:37.359 --> 00:18:39.319
<v Speaker 1>to reproduce any of those demos right now, there's no

407
00:18:39.359 --> 00:18:41.960
<v Speaker 1>I wouldn't even know where to start. I don't even

408
00:18:42.039 --> 00:18:47.000
<v Speaker 1>know what in my company, which copilot tool I should

409
00:18:47.119 --> 00:18:49.920
<v Speaker 1>use to start. So I'm a little confused.

410
00:18:50.240 --> 00:18:52.160
<v Speaker 4>I can try to help, but I will tell you.

411
00:18:52.200 --> 00:18:55.200
<v Speaker 4>Even you know, Sam Altman, who saw you brought in

412
00:18:55.240 --> 00:18:56.799
<v Speaker 4>for a little bit, yeah, kind of was kind of

413
00:18:56.799 --> 00:18:59.240
<v Speaker 4>talking about you know, the problem with AI to day

414
00:18:59.279 --> 00:19:02.640
<v Speaker 4>is if you're using chat GPT, Oh, there's a screen

415
00:19:02.640 --> 00:19:05.759
<v Speaker 4>full of models, and then there's there's an even an

416
00:19:05.799 --> 00:19:08.279
<v Speaker 4>item called more models, and you click that and you

417
00:19:08.359 --> 00:19:09.119
<v Speaker 4>see even more.

418
00:19:09.000 --> 00:19:12.200
<v Speaker 1>Models nineteen and how is Joe user?

419
00:19:12.960 --> 00:19:13.079
<v Speaker 2>You know?

420
00:19:13.559 --> 00:19:15.839
<v Speaker 4>No, you know as somebody that's been using agent mode

421
00:19:15.880 --> 00:19:17.680
<v Speaker 4>in VS code for a while. By the way, agent

422
00:19:17.720 --> 00:19:20.559
<v Speaker 4>modes is now in Visual Studio too, so you so

423
00:19:20.599 --> 00:19:21.240
<v Speaker 4>you get both of.

424
00:19:21.440 --> 00:19:24.599
<v Speaker 1>A pin in that and come back to that.

425
00:19:24.599 --> 00:19:28.759
<v Speaker 4>That's where this before you see the coding agent, you

426
00:19:28.799 --> 00:19:31.559
<v Speaker 4>have to think about agent mode. And once again I

427
00:19:32.119 --> 00:19:34.640
<v Speaker 4>laugh because it brings us back full circle. It's like

428
00:19:35.279 --> 00:19:37.799
<v Speaker 4>agent mode is something that I think we shipped it

429
00:19:38.160 --> 00:19:40.680
<v Speaker 4>maybe a month ago in the public builds of VS Code,

430
00:19:40.759 --> 00:19:42.960
<v Speaker 4>and now it's in the builds of VS that were

431
00:19:43.039 --> 00:19:45.839
<v Speaker 4>Visual Studio that were released this week. It's the forefront

432
00:19:46.039 --> 00:19:49.079
<v Speaker 4>of what the coding agent is and so agent mode.

433
00:19:49.079 --> 00:19:51.079
<v Speaker 4>And by the way, I laugh because it's got a

434
00:19:51.079 --> 00:19:53.440
<v Speaker 4>whole bunch of model selectors as well. It starts with

435
00:19:53.480 --> 00:19:54.160
<v Speaker 4>GPT four.

436
00:19:54.279 --> 00:19:56.200
<v Speaker 1>But I think your point was, now you don't have

437
00:19:56.240 --> 00:19:57.799
<v Speaker 1>to know where all these models are. It's going to

438
00:19:57.839 --> 00:19:59.400
<v Speaker 1>select you'll.

439
00:19:59.039 --> 00:19:59.759
<v Speaker 2>Do sort of.

440
00:20:00.160 --> 00:20:02.599
<v Speaker 4>What we've seen is the coding models have gotten better

441
00:20:02.680 --> 00:20:06.000
<v Speaker 4>at a tremendous rate. I tell my team the stuff

442
00:20:06.000 --> 00:20:08.839
<v Speaker 4>we showed at build this morning. If you told me

443
00:20:08.880 --> 00:20:11.119
<v Speaker 4>it would that even be possible a year ago, I

444
00:20:11.119 --> 00:20:11.720
<v Speaker 4>would have said no.

445
00:20:12.200 --> 00:20:12.599
<v Speaker 2>Interesting.

446
00:20:13.039 --> 00:20:16.559
<v Speaker 4>And so the basically the the coding models got so

447
00:20:16.680 --> 00:20:21.680
<v Speaker 4>much better, super fast, and it really anthropics Claude three

448
00:20:21.759 --> 00:20:22.400
<v Speaker 4>sevens on it.

449
00:20:22.400 --> 00:20:23.480
<v Speaker 2>That seems to be the hot one, right.

450
00:20:23.519 --> 00:20:25.279
<v Speaker 4>That was the one a couple of months ago that

451
00:20:25.440 --> 00:20:28.079
<v Speaker 4>really kind of tipped us over the edge. And it

452
00:20:28.480 --> 00:20:31.200
<v Speaker 4>was the first time this stuff got good. I'll get there, Carl,

453
00:20:31.599 --> 00:20:34.720
<v Speaker 4>it got good. But then then we hear, like you know,

454
00:20:35.200 --> 00:20:37.599
<v Speaker 4>a few weeks after that, then Jim and I two

455
00:20:37.680 --> 00:20:39.720
<v Speaker 4>five is supposed to be the best coding coding mode.

456
00:20:39.759 --> 00:20:42.200
<v Speaker 2>How do you measure that? Like? What makes it better?

457
00:20:42.279 --> 00:20:44.119
<v Speaker 4>I think you have to just triumph Richard and see

458
00:20:44.160 --> 00:20:45.279
<v Speaker 4>what what what your result is.

459
00:20:45.319 --> 00:20:47.519
<v Speaker 1>And then but the idea is that these are tuned

460
00:20:47.599 --> 00:20:48.279
<v Speaker 1>for coders.

461
00:20:48.319 --> 00:20:50.480
<v Speaker 4>They're tuned for coding. They're not you know, you don't

462
00:20:50.519 --> 00:20:53.200
<v Speaker 4>ask them, you know how high is Mount kil manangero?

463
00:20:53.440 --> 00:20:55.880
<v Speaker 4>You actually ask them the right code. But agent mode

464
00:20:55.920 --> 00:20:58.400
<v Speaker 4>is where and this is the demo I do and

465
00:20:58.440 --> 00:21:00.799
<v Speaker 4>I love doing this demo is I'll bring up vs

466
00:21:00.799 --> 00:21:03.960
<v Speaker 4>code with a Blazer application and I'll just go into

467
00:21:04.000 --> 00:21:06.440
<v Speaker 4>agent mode and say change the buttons in the web

468
00:21:06.480 --> 00:21:10.519
<v Speaker 4>application to be around in orange. And then what happens

469
00:21:10.599 --> 00:21:13.480
<v Speaker 4>is the ll M behind the scenes will go look

470
00:21:13.480 --> 00:21:16.200
<v Speaker 4>at the at my projects. So remember when we first

471
00:21:16.240 --> 00:21:18.839
<v Speaker 4>started down this whole cold pilot journey, what did it do?

472
00:21:18.920 --> 00:21:21.400
<v Speaker 4>It did code completions so you could press tab and

473
00:21:21.440 --> 00:21:24.720
<v Speaker 4>it would fill in still in more stuff, or you

474
00:21:24.720 --> 00:21:26.440
<v Speaker 4>could in the chat window you could say how does

475
00:21:26.440 --> 00:21:28.960
<v Speaker 4>the link list work? Or show me how to write

476
00:21:28.960 --> 00:21:32.319
<v Speaker 4>a bubbleshort in dot net, those types of things. But

477
00:21:32.680 --> 00:21:35.000
<v Speaker 4>with these new models, now you can actually ask the

478
00:21:35.039 --> 00:21:37.799
<v Speaker 4>thing to go change your app. And so when I went,

479
00:21:39.599 --> 00:21:44.319
<v Speaker 4>we just had thunderstorms. When when you go and ask,

480
00:21:44.960 --> 00:21:46.599
<v Speaker 4>you know, I'll tell you this, Carl, when we're when

481
00:21:46.599 --> 00:21:49.319
<v Speaker 4>we're done, you should go, you know, boot up VS

482
00:21:49.400 --> 00:21:51.480
<v Speaker 4>or VS code and go and do this and say,

483
00:21:51.559 --> 00:21:54.160
<v Speaker 4>go change my Blazer app. And you'll it's funny you

484
00:21:54.160 --> 00:21:55.839
<v Speaker 4>watch it. It's like, hey, I found the web app.

485
00:21:56.759 --> 00:21:58.559
<v Speaker 4>I noticed that your web app is a Blazer app,

486
00:21:58.960 --> 00:22:02.200
<v Speaker 4>and I noticed it using boot Strap. Yeah, I'm going

487
00:22:02.279 --> 00:22:06.279
<v Speaker 4>to go and add this style into the Bootstrap CSS file. Yeah,

488
00:22:06.319 --> 00:22:07.920
<v Speaker 4>and then I'm going to go add this new element

489
00:22:08.079 --> 00:22:12.440
<v Speaker 4>to your items in your app. And so yes, and that's.

490
00:22:12.279 --> 00:22:15.440
<v Speaker 1>The best example I've heard for me the coder of

491
00:22:15.519 --> 00:22:16.720
<v Speaker 1>what this new stuff can do.

492
00:22:17.400 --> 00:22:20.279
<v Speaker 4>So what I hate is when you see some of

493
00:22:20.319 --> 00:22:23.200
<v Speaker 4>the demos where it feels like it you know, you

494
00:22:23.200 --> 00:22:26.000
<v Speaker 4>don't have to write code anymore. Right, No, that's you know, Yeah,

495
00:22:26.039 --> 00:22:27.720
<v Speaker 4>we'll get back to that. But that's what agent mode was.

496
00:22:27.759 --> 00:22:30.559
<v Speaker 4>So agent mode does this. It's now not just the

497
00:22:30.559 --> 00:22:32.920
<v Speaker 4>file you're in, it's all the files in your project.

498
00:22:33.079 --> 00:22:33.400
<v Speaker 1>Yeah.

499
00:22:33.480 --> 00:22:36.119
<v Speaker 4>And it's smart enough to go identify things like Bootstrap

500
00:22:36.200 --> 00:22:37.599
<v Speaker 4>and so on that many of us using our web

501
00:22:37.640 --> 00:22:38.480
<v Speaker 4>applications today.

502
00:22:38.559 --> 00:22:40.640
<v Speaker 1>So, like they said, it's it's sort of like having

503
00:22:40.640 --> 00:22:45.079
<v Speaker 1>a partner that or a sous chef that's a coding partner,

504
00:22:45.160 --> 00:22:49.119
<v Speaker 1>a coding chefs, a soup coder that you could just say, hey,

505
00:22:49.119 --> 00:22:50.559
<v Speaker 1>go take care of this little detail.

506
00:22:50.640 --> 00:22:53.640
<v Speaker 2>But it's that look across the solution rather than to

507
00:22:53.759 --> 00:22:55.200
<v Speaker 2>look at my file exactly.

508
00:22:55.319 --> 00:22:57.240
<v Speaker 4>It's it's not you know, the first co pilot we

509
00:22:57.279 --> 00:22:58.799
<v Speaker 4>didn't even look at the whole file. We looked at this,

510
00:22:59.319 --> 00:23:02.240
<v Speaker 4>you know, X number of lines because the context windows

511
00:23:02.559 --> 00:23:05.920
<v Speaker 4>were not big enough to do more than that. But

512
00:23:06.000 --> 00:23:09.000
<v Speaker 4>I always want to start there when I describe this.

513
00:23:09.319 --> 00:23:12.680
<v Speaker 4>So the negative of what I just said is and

514
00:23:12.720 --> 00:23:16.519
<v Speaker 4>this is where if I go talk to my enterprise customers, well,

515
00:23:16.559 --> 00:23:19.359
<v Speaker 4>I don't know the did you write the code, Richard

516
00:23:19.720 --> 00:23:21.759
<v Speaker 4>Carl write the code, or did the cloud write the code?

517
00:23:21.799 --> 00:23:24.240
<v Speaker 4>Who wrote the code? And so if you're in an

518
00:23:24.279 --> 00:23:27.960
<v Speaker 4>industry where financial or whatever they want to have more

519
00:23:27.960 --> 00:23:29.599
<v Speaker 4>controls over that, that's where the I think the coding

520
00:23:29.599 --> 00:23:31.559
<v Speaker 4>agent takes us to the next level. So what the

521
00:23:31.599 --> 00:23:34.279
<v Speaker 4>coding agent is is agent mode in the cloud.

522
00:23:35.079 --> 00:23:38.599
<v Speaker 1>And so okay, so we're out of visual studio.

523
00:23:38.680 --> 00:23:40.480
<v Speaker 4>Now let's let's talk about this so what I what

524
00:23:40.480 --> 00:23:42.000
<v Speaker 4>I would do and if I want to use the

525
00:23:42.039 --> 00:23:45.000
<v Speaker 4>coding agent, I would file an issue in my repo,

526
00:23:45.599 --> 00:23:48.839
<v Speaker 4>and the issue would say we're going to change the

527
00:23:48.839 --> 00:23:50.680
<v Speaker 4>look and field the website. We want to change all

528
00:23:50.680 --> 00:23:53.720
<v Speaker 4>the buttons to be round and orange. So now I've

529
00:23:53.759 --> 00:23:56.480
<v Speaker 4>created the issue, and what I can do then is

530
00:23:56.519 --> 00:23:59.200
<v Speaker 4>I assigned the issue to copilot, to your agent, and

531
00:23:59.240 --> 00:24:03.000
<v Speaker 4>then in the cloudloud, in the get hub cloud, the

532
00:24:04.599 --> 00:24:07.920
<v Speaker 4>engines that that same agent that we were using in chat,

533
00:24:08.079 --> 00:24:11.119
<v Speaker 4>in VS code or VS is now running in the cloud.

534
00:24:11.559 --> 00:24:13.119
<v Speaker 4>What's cool about that, though, is it's going to go

535
00:24:13.240 --> 00:24:15.400
<v Speaker 4>create a PR. It's going to go put a plan

536
00:24:15.440 --> 00:24:17.880
<v Speaker 4>in the PR. I can live watch the PR as

537
00:24:17.920 --> 00:24:19.599
<v Speaker 4>it's going. If I want to sit there and watch it,

538
00:24:19.680 --> 00:24:22.599
<v Speaker 4>I can. I can watch all the actions. But the

539
00:24:22.640 --> 00:24:24.839
<v Speaker 4>cool thing here is now, because I've made a PR,

540
00:24:25.480 --> 00:24:29.359
<v Speaker 4>well there's a history of yes, it was done, something

541
00:24:29.440 --> 00:24:32.119
<v Speaker 4>was done, and then I have to approve that PR.

542
00:24:32.279 --> 00:24:34.839
<v Speaker 4>So the chat's not going to go by the agent's

543
00:24:34.839 --> 00:24:36.640
<v Speaker 4>not going to go by itself and just go oh,

544
00:24:36.680 --> 00:24:38.480
<v Speaker 4>you're done. No, at the end of the day, I

545
00:24:38.519 --> 00:24:41.480
<v Speaker 4>have to go back and Scott Hunter approved that.

546
00:24:41.359 --> 00:24:43.359
<v Speaker 2>PR, which you can also pushed back, like you say,

547
00:24:43.400 --> 00:24:45.240
<v Speaker 2>I don't like how this is done, or I would change.

548
00:24:45.240 --> 00:24:49.519
<v Speaker 1>It's just like you do with the developer, right, exactly. Yeah,

549
00:24:49.559 --> 00:24:51.599
<v Speaker 1>and that's what I loved about that part of Sacha's

550
00:24:51.640 --> 00:24:54.160
<v Speaker 1>demo that he said he wanted to add a feature.

551
00:24:54.200 --> 00:24:56.160
<v Speaker 1>He had a picture of it and he said he

552
00:24:56.200 --> 00:24:58.359
<v Speaker 1>wanted to drop down that has some blah blah blah

553
00:24:58.359 --> 00:25:01.440
<v Speaker 1>and just with one or two cent. Then you got

554
00:25:01.440 --> 00:25:04.160
<v Speaker 1>the googly eyes looking at it because he assigned it

555
00:25:04.200 --> 00:25:06.400
<v Speaker 1>to the to the agent, and the agent's like looking

556
00:25:06.440 --> 00:25:08.640
<v Speaker 1>at it. And then he came back and the polar

557
00:25:08.720 --> 00:25:11.559
<v Speaker 1>Quest was done, and like you said, documented this is

558
00:25:11.599 --> 00:25:14.240
<v Speaker 1>what I did. Yes, I did this and that and

559
00:25:14.279 --> 00:25:16.599
<v Speaker 1>this just the way real developers don't.

560
00:25:16.720 --> 00:25:20.519
<v Speaker 4>And then exactly, rich and then Carl approved that pr

561
00:25:20.680 --> 00:25:21.799
<v Speaker 4>and so now it's.

562
00:25:21.680 --> 00:25:27.720
<v Speaker 1>Your fault and it's now thing and trains Richard's bank account.

563
00:25:29.160 --> 00:25:31.480
<v Speaker 4>But to Richard's point, you can actually go highlight parts

564
00:25:31.480 --> 00:25:32.960
<v Speaker 4>of the code it wrote and say I don't like this,

565
00:25:33.440 --> 00:25:36.240
<v Speaker 4>or put more diagnostics in here or whatever, and so

566
00:25:36.319 --> 00:25:38.599
<v Speaker 4>you can have a back and forth. You know, I

567
00:25:38.599 --> 00:25:41.359
<v Speaker 4>think when when people see this, and I'll be curious.

568
00:25:41.440 --> 00:25:43.319
<v Speaker 4>You know, it just was shown on stage. We've been

569
00:25:43.400 --> 00:25:45.400
<v Speaker 4>using this stuff inside of Microsoft for months.

570
00:25:45.519 --> 00:25:45.720
<v Speaker 1>Yeah.

571
00:25:45.799 --> 00:25:47.759
<v Speaker 4>I just saw it a half hour and you just

572
00:25:47.759 --> 00:25:51.160
<v Speaker 4>saw it a second ago. I think people's first reaction is,

573
00:25:51.200 --> 00:25:53.359
<v Speaker 4>you know, when I go talk to real customers, they'll

574
00:25:53.400 --> 00:25:55.079
<v Speaker 4>be like, oh, this is going to replace my coders.

575
00:25:55.119 --> 00:25:57.279
<v Speaker 4>I'm like, no, if you somebody has to be able

576
00:25:57.319 --> 00:25:59.759
<v Speaker 4>to read what this thing did. They had to approve

577
00:25:59.799 --> 00:26:03.119
<v Speaker 4>it and say it's right and so but what.

578
00:26:03.039 --> 00:26:05.640
<v Speaker 1>I would run it and to run it and it

579
00:26:05.680 --> 00:26:06.480
<v Speaker 1>works well.

580
00:26:06.480 --> 00:26:08.119
<v Speaker 4>The agent can actually do the stuff like that too,

581
00:26:08.119 --> 00:26:12.480
<v Speaker 4>by the way, So, but but so what I think

582
00:26:12.519 --> 00:26:14.839
<v Speaker 4>where it changes things. When I was talking to David Fowler,

583
00:26:14.920 --> 00:26:18.319
<v Speaker 4>like architect of dot net, yeah, you know, He's like, Scott,

584
00:26:18.319 --> 00:26:21.160
<v Speaker 4>I have to now have to think, should I be

585
00:26:21.160 --> 00:26:21.960
<v Speaker 4>writing this code?

586
00:26:22.359 --> 00:26:22.599
<v Speaker 2>Yeah?

587
00:26:22.680 --> 00:26:24.279
<v Speaker 4>Is this the stuff I should assign to the agent

588
00:26:24.279 --> 00:26:27.880
<v Speaker 4>because it's just it's right, you know, small refactoring stuff.

589
00:26:27.920 --> 00:26:29.799
<v Speaker 4>I shouldn't be doing that. I should be writing the

590
00:26:30.000 --> 00:26:32.640
<v Speaker 4>architecting the core of dot net and figuring out how

591
00:26:32.640 --> 00:26:35.160
<v Speaker 4>to make Aspire work and have a great published experience.

592
00:26:35.519 --> 00:26:38.240
<v Speaker 4>You can't tell the you imagine writing an issue, Hey,

593
00:26:38.279 --> 00:26:41.039
<v Speaker 4>make a great publishing experience for Aspire. That's that's not

594
00:26:41.079 --> 00:26:43.799
<v Speaker 4>going to work. That's where you need developers to go

595
00:26:43.839 --> 00:26:44.079
<v Speaker 4>do this.

596
00:26:44.200 --> 00:26:46.200
<v Speaker 2>But an awful but a lot of an awful lot

597
00:26:46.200 --> 00:26:49.960
<v Speaker 2>of code is uh, stuff has been done before. Stuff

598
00:26:50.000 --> 00:26:51.920
<v Speaker 2>that that a model is going to have a copy

599
00:26:51.960 --> 00:26:54.160
<v Speaker 2>of that it's you know, drawn from gethub and other

600
00:26:54.279 --> 00:26:56.359
<v Speaker 2>and other sources. So why would you write that code

601
00:26:56.400 --> 00:26:57.480
<v Speaker 2>when it's already be written.

602
00:26:57.519 --> 00:26:59.359
<v Speaker 1>I give you a real world scenario that I hope

603
00:26:59.359 --> 00:27:02.640
<v Speaker 1>the answer is he yes. So I'm working on a

604
00:27:02.680 --> 00:27:08.039
<v Speaker 1>customer's project. This particular project has like fifty screens. Now

605
00:27:08.079 --> 00:27:10.440
<v Speaker 1>they all do different things, but they all have the

606
00:27:10.440 --> 00:27:13.720
<v Speaker 1>same look and feel. They all use a bootstrap grid, right,

607
00:27:14.319 --> 00:27:17.920
<v Speaker 1>And can I give that page or whatever that I

608
00:27:17.960 --> 00:27:21.079
<v Speaker 1>want to use as a template to the agent and say,

609
00:27:21.119 --> 00:27:23.799
<v Speaker 1>all right, I need a new page that has this

610
00:27:23.880 --> 00:27:25.759
<v Speaker 1>field in that field, in this field in that field,

611
00:27:25.799 --> 00:27:28.200
<v Speaker 1>and a calendar, and I'm putting another thing over here

612
00:27:28.240 --> 00:27:29.799
<v Speaker 1>with you know, a table.

613
00:27:29.960 --> 00:27:31.839
<v Speaker 4>And I would tell you to try it. Your answer

614
00:27:31.880 --> 00:27:34.400
<v Speaker 4>is yeah, probably probably would work. Especially you know, you

615
00:27:34.400 --> 00:27:36.440
<v Speaker 4>can write a file inside of your project. It's kind

616
00:27:36.440 --> 00:27:38.440
<v Speaker 4>of like an instruction files. We call this yeah, and

617
00:27:38.440 --> 00:27:41.920
<v Speaker 4>that instruction file is where you can say these files

618
00:27:42.279 --> 00:27:45.319
<v Speaker 4>are examples of how we build UI right, all screens

619
00:27:45.359 --> 00:27:48.240
<v Speaker 4>will look just like these, except they'll have different fields. Yeah,

620
00:27:48.960 --> 00:27:50.759
<v Speaker 4>make my screen look like these screens.

621
00:27:50.960 --> 00:27:53.400
<v Speaker 1>Can you go a step further and say, here's my

622
00:27:53.519 --> 00:27:57.119
<v Speaker 1>data structure from my database, here's my data manager that

623
00:27:57.240 --> 00:27:59.920
<v Speaker 1>has my you know, ado dot net code in it,

624
00:28:00.119 --> 00:28:04.160
<v Speaker 1>or like whatever, you know. Make my thing work with

625
00:28:04.599 --> 00:28:05.640
<v Speaker 1>the data manager.

626
00:28:05.920 --> 00:28:10.160
<v Speaker 4>The more context you give it, the closer it's going

627
00:28:10.200 --> 00:28:11.839
<v Speaker 4>to be what you what you expect in any cases,

628
00:28:12.400 --> 00:28:16.680
<v Speaker 4>but you can also iterate well exactly. We've done a

629
00:28:16.720 --> 00:28:18.240
<v Speaker 4>lot of work. So one of the other things that

630
00:28:18.240 --> 00:28:20.319
<v Speaker 4>we're showing I don't think it was shown in the keynote,

631
00:28:20.359 --> 00:28:21.960
<v Speaker 4>but it'll be shown in Amanda's talk. It was after

632
00:28:21.960 --> 00:28:25.680
<v Speaker 4>the keynote is migration tools for moving from one version

633
00:28:25.680 --> 00:28:27.119
<v Speaker 4>of dot net to the next version of dot net,

634
00:28:27.279 --> 00:28:29.720
<v Speaker 4>moving from a version of Java the next version of Java.

635
00:28:30.960 --> 00:28:32.440
<v Speaker 4>Once again, we learned a lot of these things are

636
00:28:32.440 --> 00:28:35.519
<v Speaker 4>written with crazy AI prompts, and we just keep writing

637
00:28:35.519 --> 00:28:37.240
<v Speaker 4>the prompts and making you know, you try it didn't work,

638
00:28:37.240 --> 00:28:39.759
<v Speaker 4>make a better prompt to me. My analogy of this

639
00:28:39.839 --> 00:28:43.680
<v Speaker 4>is Google Google Search. I didn't find what I like,

640
00:28:43.759 --> 00:28:45.839
<v Speaker 4>so I write it a different way. I keep writing

641
00:28:45.880 --> 00:28:47.559
<v Speaker 4>it a different way until I get the answer I want.

642
00:28:47.759 --> 00:28:49.480
<v Speaker 4>And in many cases I think the AI is going

643
00:28:49.519 --> 00:28:50.559
<v Speaker 4>to let you do the same kind of thing.

644
00:28:50.599 --> 00:28:53.119
<v Speaker 2>We think about the years we spent learning to write

645
00:28:53.160 --> 00:28:56.240
<v Speaker 2>good search strings. It's going to take us time to

646
00:28:56.319 --> 00:28:57.799
<v Speaker 2>learn to write great prompts. It will.

647
00:28:58.640 --> 00:29:02.039
<v Speaker 4>And so we've got some really cool tools that we're

648
00:29:02.720 --> 00:29:06.200
<v Speaker 4>we're shipping in public preview today at build and one

649
00:29:06.240 --> 00:29:10.599
<v Speaker 4>of them is, let's say, here's how this works. I

650
00:29:10.720 --> 00:29:12.680
<v Speaker 4>got to I got to convert this project today. It

651
00:29:12.799 --> 00:29:15.359
<v Speaker 4>uses rapid MQ locally, but I want to move it

652
00:29:15.359 --> 00:29:16.839
<v Speaker 4>to use service bus because I go to put it

653
00:29:16.839 --> 00:29:17.359
<v Speaker 4>into Azure.

654
00:29:17.480 --> 00:29:17.720
<v Speaker 2>Sure.

655
00:29:18.160 --> 00:29:21.079
<v Speaker 4>So today, what you would do is I would say, Carl,

656
00:29:21.200 --> 00:29:24.440
<v Speaker 4>go change the whole app to move from Rabbit MQ

657
00:29:24.640 --> 00:29:28.119
<v Speaker 4>to service bus. And it probably a lot of work

658
00:29:28.119 --> 00:29:29.880
<v Speaker 4>for you, you know you you would do the first

659
00:29:29.880 --> 00:29:31.920
<v Speaker 4>file and you're like, I got to figure it out now,

660
00:29:32.240 --> 00:29:35.079
<v Speaker 4>and you would replicate that a lot of times. Well,

661
00:29:35.119 --> 00:29:36.599
<v Speaker 4>one of the tools we released today is what you

662
00:29:36.640 --> 00:29:38.039
<v Speaker 4>would do is I would say, Carl, I'll go fix

663
00:29:38.160 --> 00:29:41.799
<v Speaker 4>two files and then from that commit that you're going

664
00:29:41.880 --> 00:29:44.079
<v Speaker 4>to have, we have a thing that will convert that

665
00:29:44.119 --> 00:29:47.160
<v Speaker 4>to a prompt. Interesting and we call these formulas, and

666
00:29:47.200 --> 00:29:50.000
<v Speaker 4>so so you go and make that change in a

667
00:29:50.000 --> 00:29:53.279
<v Speaker 4>couple of files. We make the prompt and you can

668
00:29:53.279 --> 00:29:56.240
<v Speaker 4>then run the prompt against the entire project and move.

669
00:29:56.079 --> 00:29:58.680
<v Speaker 2>The rest of the project. Rather try to write the

670
00:29:58.680 --> 00:30:00.799
<v Speaker 2>prompt from scratch to do it right now. The first time,

671
00:30:01.240 --> 00:30:03.839
<v Speaker 2>you provide an example of doing it right the code,

672
00:30:03.960 --> 00:30:06.799
<v Speaker 2>and then it reverses that into a prompt. Yes, that

673
00:30:06.839 --> 00:30:08.759
<v Speaker 2>allows the other examples to happen. And so one of

674
00:30:08.799 --> 00:30:11.160
<v Speaker 2>our one of our teaching a novice developer to do

675
00:30:11.200 --> 00:30:12.920
<v Speaker 2>something you just did yep, right.

676
00:30:12.880 --> 00:30:15.559
<v Speaker 4>Yep, that's all you're doing. And uh, and.

677
00:30:15.359 --> 00:30:17.720
<v Speaker 2>This this, this is a very fancy copy paste.

678
00:30:17.839 --> 00:30:21.440
<v Speaker 4>Yes, super fancy. This is like the ultimate copy paste.

679
00:30:22.680 --> 00:30:24.440
<v Speaker 4>It won't it won't be one hundred percent perfect, but

680
00:30:24.519 --> 00:30:26.480
<v Speaker 4>I still think it'll take You know, it would have

681
00:30:26.480 --> 00:30:28.799
<v Speaker 4>taken it would It would have taken Carl a couple

682
00:30:28.799 --> 00:30:30.720
<v Speaker 4>of days. And now it might take Carl a couple

683
00:30:30.759 --> 00:30:32.680
<v Speaker 4>of hours to get to the same place.

684
00:30:32.720 --> 00:30:35.599
<v Speaker 2>And after the third time, it's scott work right except

685
00:30:35.599 --> 00:30:38.039
<v Speaker 2>for a couple of fixes. So you now getting rid

686
00:30:38.079 --> 00:30:39.920
<v Speaker 2>of all the scott work and just doing the fixes.

687
00:30:40.279 --> 00:30:41.960
<v Speaker 4>So we have a tool that we shipped a couple

688
00:30:41.960 --> 00:30:45.119
<v Speaker 4>of years ago called appcat. And what appcat is. It's

689
00:30:45.160 --> 00:30:46.960
<v Speaker 4>an app, it's a it's a it's a tool you

690
00:30:47.039 --> 00:30:50.200
<v Speaker 4>run on your A s P, dot Net or Java

691
00:30:50.200 --> 00:30:52.440
<v Speaker 4>app to move to the cloud. And what it does

692
00:30:52.599 --> 00:30:55.240
<v Speaker 4>it just goes and identifies. It's got a library of

693
00:30:55.279 --> 00:30:57.480
<v Speaker 4>like twenty things that we think you shouldn't be doing. Like, right,

694
00:30:57.640 --> 00:30:59.480
<v Speaker 4>you're gonna have to change your connection strings for example.

695
00:30:59.599 --> 00:31:02.920
<v Speaker 4>You know you probably shouldn't have connection screens using something

696
00:31:02.920 --> 00:31:05.880
<v Speaker 4>better than that. But this tool identifies a whole bunch

697
00:31:05.880 --> 00:31:07.640
<v Speaker 4>of things that you need to do before you move

698
00:31:07.640 --> 00:31:09.240
<v Speaker 4>your app to cloud. That the problem with that tool

699
00:31:09.359 --> 00:31:11.319
<v Speaker 4>was in the past. It just gave you a list

700
00:31:11.359 --> 00:31:13.079
<v Speaker 4>of Hey, Carl, here's all the work to go do.

701
00:31:13.359 --> 00:31:13.480
<v Speaker 1>Right.

702
00:31:13.839 --> 00:31:15.599
<v Speaker 4>Well, what we've done is we also took the top

703
00:31:15.880 --> 00:31:18.599
<v Speaker 4>ten of these things and we built these formulas with

704
00:31:18.680 --> 00:31:21.039
<v Speaker 4>this other tool. And so now you can go take

705
00:31:21.039 --> 00:31:23.359
<v Speaker 4>the top ten things that appcats can to find and

706
00:31:23.400 --> 00:31:25.279
<v Speaker 4>then go use these formulas to go have it go

707
00:31:25.319 --> 00:31:26.079
<v Speaker 4>fix the app for you.

708
00:31:26.240 --> 00:31:26.559
<v Speaker 2>Sure.

709
00:31:26.599 --> 00:31:29.680
<v Speaker 4>And so our goal is, you know, we have customers

710
00:31:29.720 --> 00:31:31.920
<v Speaker 4>tell us moving an app, an older on prem app

711
00:31:31.960 --> 00:31:34.160
<v Speaker 4>to the cloud, can take eight months, right, I want

712
00:31:34.160 --> 00:31:36.480
<v Speaker 4>to get that down to four months or two months,

713
00:31:36.759 --> 00:31:38.759
<v Speaker 4>you know anything that's you know, when I was talking

714
00:31:38.799 --> 00:31:41.440
<v Speaker 4>to some customers, they said, even thirty percent faster.

715
00:31:41.279 --> 00:31:44.000
<v Speaker 2>Sure is a huge Well I know pretty well, having

716
00:31:44.079 --> 00:31:46.200
<v Speaker 2>you know, spent my time in the architect shovel. It's

717
00:31:46.240 --> 00:31:49.839
<v Speaker 2>like there's a thousand apps. Yes, like there's a thousand

718
00:31:49.880 --> 00:31:53.240
<v Speaker 2>apps times eight months. Yeah, So I'm sorry, we're not

719
00:31:53.279 --> 00:31:53.920
<v Speaker 2>going to get it done.

720
00:31:54.640 --> 00:31:57.200
<v Speaker 4>And in most cases, I hate to say this, the

721
00:31:57.240 --> 00:32:00.160
<v Speaker 4>developer who wrote those apps is not there anymore. So

722
00:32:00.279 --> 00:32:02.599
<v Speaker 4>some new developers, like I have never seen this code

723
00:32:02.599 --> 00:32:05.720
<v Speaker 4>in my entire life. You know, how do we help

724
00:32:05.799 --> 00:32:09.359
<v Speaker 4>that developer move faster? And so I'm ex I think

725
00:32:09.359 --> 00:32:11.440
<v Speaker 4>people will be afraid of some of this AI stuff,

726
00:32:12.000 --> 00:32:13.000
<v Speaker 4>but it's just a tool.

727
00:32:13.160 --> 00:32:15.240
<v Speaker 1>And we'll talk about fear when we come back from

728
00:32:15.279 --> 00:32:17.960
<v Speaker 1>a break, because I have a couple of questions about that,

729
00:32:18.440 --> 00:32:20.920
<v Speaker 1>and we'll be right back. These very important messages don't

730
00:32:20.960 --> 00:32:25.319
<v Speaker 1>go away. Did you know you can lift and shift

731
00:32:25.400 --> 00:32:29.039
<v Speaker 1>your dot Net framework apps to virtual machines in the cloud.

732
00:32:29.799 --> 00:32:34.039
<v Speaker 1>Use the Elastic beanstalk service to easily migrate to Amazon

733
00:32:34.119 --> 00:32:38.240
<v Speaker 1>EC two with little or no changes. Find out more

734
00:32:38.240 --> 00:32:45.319
<v Speaker 1>at aws dot Amazon dot com, slash, Elastic beanstalk and

735
00:32:45.359 --> 00:32:47.880
<v Speaker 1>we're back. It's dot net Rocks. I'm Carl Franklin, I'm

736
00:32:47.920 --> 00:32:51.039
<v Speaker 1>Richard Campbell. That's my buddy Richard and everybody. Scott Hunter

737
00:32:51.240 --> 00:32:53.440
<v Speaker 1>is here. And if, by the way, if you don't

738
00:32:53.440 --> 00:32:56.359
<v Speaker 1>want to hear these ads, you can become a patron

739
00:32:56.400 --> 00:32:58.559
<v Speaker 1>for five bucks a month get a feed that has

740
00:32:58.599 --> 00:33:02.000
<v Speaker 1>no ads in it. Wouldn't that be awesome Patreon dot

741
00:33:02.039 --> 00:33:04.079
<v Speaker 1>dot NetRocks dot com. All right, so I wanted to

742
00:33:04.079 --> 00:33:06.920
<v Speaker 1>talk to me. You said the S word and it

743
00:33:06.960 --> 00:33:11.480
<v Speaker 1>wasn't Scott, it was security. Secure. I hear this all

744
00:33:11.519 --> 00:33:15.079
<v Speaker 1>the time. Secure secure. One of the main features of

745
00:33:15.200 --> 00:33:17.440
<v Speaker 1>agents and the things that makes them work is you

746
00:33:17.480 --> 00:33:21.839
<v Speaker 1>give them permissions to your resources, whether it's you know, Azure,

747
00:33:21.839 --> 00:33:27.039
<v Speaker 1>a d a database, you know, cloud services, all of

748
00:33:27.079 --> 00:33:30.200
<v Speaker 1>the things that you need to go do or access.

749
00:33:30.920 --> 00:33:33.160
<v Speaker 1>Maybe it's not just an Azure, you might have other

750
00:33:33.200 --> 00:33:36.079
<v Speaker 1>stuff in other clouds, right, but you've got to give

751
00:33:36.119 --> 00:33:40.400
<v Speaker 1>these agents permission to do thy bidding. And so for me,

752
00:33:41.559 --> 00:33:43.799
<v Speaker 1>as you know, put on my security hat because now

753
00:33:43.880 --> 00:33:45.319
<v Speaker 1>I don't know if you know this, but I do

754
00:33:45.400 --> 00:33:47.559
<v Speaker 1>a security podcast. Weird, it's weird.

755
00:33:47.759 --> 00:33:50.799
<v Speaker 2>All I do is tell jokes and ask questions, but

756
00:33:51.319 --> 00:33:56.279
<v Speaker 2>think security people. God, yes, but you know that I

757
00:33:56.400 --> 00:33:57.119
<v Speaker 2>know enough.

758
00:33:56.880 --> 00:34:02.519
<v Speaker 1>To know that that increases the attack vector serves for you,

759
00:34:03.680 --> 00:34:08.719
<v Speaker 1>and probably your software bill of materials probably goes up

760
00:34:08.800 --> 00:34:13.159
<v Speaker 1>exponentially without you knowing it necessarily. So I just want

761
00:34:13.239 --> 00:34:15.519
<v Speaker 1>to have you talk a little bit about the security

762
00:34:15.519 --> 00:34:16.239
<v Speaker 1>of all those first.

763
00:34:16.280 --> 00:34:18.639
<v Speaker 4>So that's why I think our earlier conversation about prs

764
00:34:18.760 --> 00:34:21.159
<v Speaker 4>was important. Yes, that means a developer gets to see

765
00:34:21.159 --> 00:34:23.239
<v Speaker 4>the PR and approve the PR and so there's nothing

766
00:34:23.280 --> 00:34:27.280
<v Speaker 4>being done automatically, but there's no magic, so at least

767
00:34:27.280 --> 00:34:31.599
<v Speaker 4>there's a human that approved whatever happened. The area that

768
00:34:31.920 --> 00:34:34.840
<v Speaker 4>I think about the most of what you just described, Carl,

769
00:34:34.920 --> 00:34:35.760
<v Speaker 4>is probably MCP.

770
00:34:36.119 --> 00:34:40.719
<v Speaker 1>Yes, an acronym I just learned this morning. Well, I

771
00:34:40.760 --> 00:34:43.320
<v Speaker 1>didn't know anything about it. So protocol that lets agents

772
00:34:43.320 --> 00:34:44.840
<v Speaker 1>talk to each other's.

773
00:34:44.840 --> 00:34:50.039
<v Speaker 4>Let's LM talk to stuff. And there's not currently a

774
00:34:50.119 --> 00:34:52.280
<v Speaker 4>bunch of security around this thing, and so today it

775
00:34:52.320 --> 00:34:54.920
<v Speaker 4>has to be In most cases you run it locally

776
00:34:54.920 --> 00:34:56.760
<v Speaker 4>on your own machine. But I'll give you I'll explain

777
00:34:56.760 --> 00:35:00.199
<v Speaker 4>the MCP scenario. You install a GIT of him CP

778
00:35:01.039 --> 00:35:04.760
<v Speaker 4>on your machine and that means that that will let

779
00:35:04.760 --> 00:35:06.800
<v Speaker 4>the l M be able to you can give that

780
00:35:06.840 --> 00:35:08.800
<v Speaker 4>whatever access to your GitHub repo you want to give

781
00:35:08.800 --> 00:35:11.719
<v Speaker 4>it to. Yes, you know you might want to you know,

782
00:35:12.039 --> 00:35:14.280
<v Speaker 4>for databases, you might want to put a postcress MCPN

783
00:35:15.159 --> 00:35:20.320
<v Speaker 4>and I'll explain why that's interesting these things. Let let

784
00:35:20.559 --> 00:35:23.159
<v Speaker 4>let you share knowledge with the l l.

785
00:35:23.239 --> 00:35:25.480
<v Speaker 1>M and it's a model context protocol.

786
00:35:25.599 --> 00:35:29.079
<v Speaker 4>That's that's the that's the protocol. And by the way,

787
00:35:29.079 --> 00:35:30.880
<v Speaker 4>it's it's a very basic protocol at this point in time.

788
00:35:30.920 --> 00:35:34.719
<v Speaker 4>There's anthropic. Yeah, it's it's anthropic, but we all jumped

789
00:35:34.719 --> 00:35:38.440
<v Speaker 4>on it. Like the dot net team. They there was

790
00:35:38.519 --> 00:35:42.159
<v Speaker 4>an open source m c p uh dot net implementation.

791
00:35:42.719 --> 00:35:45.800
<v Speaker 4>They took that over. They worked with that developer and

792
00:35:45.840 --> 00:35:47.719
<v Speaker 4>took it over and that's now the official because when

793
00:35:47.760 --> 00:35:49.880
<v Speaker 4>when MCP first came out, I think there was only

794
00:35:50.440 --> 00:35:52.960
<v Speaker 4>Python JavaScript and there might have been a Java one

795
00:35:53.000 --> 00:35:55.519
<v Speaker 4>there too, but we made sure there's a there's a

796
00:35:55.559 --> 00:35:59.159
<v Speaker 4>great dot Net one VS and VS code will support

797
00:35:59.239 --> 00:36:01.639
<v Speaker 4>m c P as well, which is very important. This

798
00:36:01.719 --> 00:36:05.760
<v Speaker 4>agent back to this agent mode stuff again. Yeah, I

799
00:36:05.840 --> 00:36:07.559
<v Speaker 4>can do cool things like that. In the chat. I

800
00:36:07.599 --> 00:36:11.239
<v Speaker 4>could say file an issue one Carl about changing the

801
00:36:11.280 --> 00:36:13.639
<v Speaker 4>buttons in my blazer. Application to be orange and round.

802
00:36:13.960 --> 00:36:16.840
<v Speaker 4>And if I've given that the GitHub MCP the write

803
00:36:17.280 --> 00:36:20.719
<v Speaker 4>to create an issue, then from that chat interaction, it

804
00:36:20.760 --> 00:36:22.639
<v Speaker 4>would go create that issue issue from I didn't have

805
00:36:22.639 --> 00:36:23.679
<v Speaker 4>to go to the web page. I didn't to go

806
00:36:23.920 --> 00:36:25.360
<v Speaker 4>use some other tool. I didn't have to go pull

807
00:36:25.400 --> 00:36:27.960
<v Speaker 4>a thing up. But once again, as I said, you

808
00:36:28.119 --> 00:36:31.119
<v Speaker 4>have to decide. You know, once again you're running the agent,

809
00:36:31.320 --> 00:36:32.599
<v Speaker 4>so you're running the chat.

810
00:36:32.679 --> 00:36:35.199
<v Speaker 1>So you also said it's not very secure right now.

811
00:36:35.440 --> 00:36:38.320
<v Speaker 4>What I mean by that is you're going to have

812
00:36:38.320 --> 00:36:40.960
<v Speaker 4>to go put your access token and in some form

813
00:36:41.039 --> 00:36:43.599
<v Speaker 4>or fashion on your machine because the ll M is

814
00:36:43.639 --> 00:36:46.280
<v Speaker 4>going to call into this protocol. It's going to run

815
00:36:46.320 --> 00:36:49.000
<v Speaker 4>that code. That code needs access, It needs your security

816
00:36:49.039 --> 00:36:50.960
<v Speaker 4>token to be able to actually talk to GitHub. If

817
00:36:51.000 --> 00:36:53.039
<v Speaker 4>you want to talk to a Postcrest database, for example,

818
00:36:53.360 --> 00:36:54.920
<v Speaker 4>well it's going to have to have a connection string

819
00:36:54.960 --> 00:36:57.239
<v Speaker 4>and the credentials to talk to that Postcrest database. Once again,

820
00:36:57.239 --> 00:36:59.599
<v Speaker 4>you could give it a restricted one. And why that's

821
00:36:59.639 --> 00:37:03.159
<v Speaker 4>interesting is if the LLM can see the database, you

822
00:37:03.199 --> 00:37:06.480
<v Speaker 4>could then almost say you went and created a table,

823
00:37:06.880 --> 00:37:10.360
<v Speaker 4>go building a business logic object for this new table,

824
00:37:10.960 --> 00:37:13.920
<v Speaker 4>and then it would use MCP to go look at

825
00:37:13.920 --> 00:37:17.440
<v Speaker 4>the postgrass database, find the columns and their types, and

826
00:37:17.519 --> 00:37:20.440
<v Speaker 4>then build you the relevant c Sharp implementation and.

827
00:37:20.519 --> 00:37:22.440
<v Speaker 1>Do that stuff with prompts. Now, of course you do,

828
00:37:23.400 --> 00:37:23.960
<v Speaker 1>but this would just.

829
00:37:24.000 --> 00:37:26.360
<v Speaker 4>Mean instead of having to go paste the table in somewhere,

830
00:37:26.800 --> 00:37:29.960
<v Speaker 4>you could actually give it access to that. We also shipped,

831
00:37:30.400 --> 00:37:33.199
<v Speaker 4>like my team built Azure function support for MCP, which

832
00:37:33.280 --> 00:37:35.840
<v Speaker 4>means you can have a remote MCP. In my case,

833
00:37:35.920 --> 00:37:38.079
<v Speaker 4>that means that MCP is protected by all the Azure

834
00:37:38.119 --> 00:37:38.800
<v Speaker 4>security features.

835
00:37:38.840 --> 00:37:40.719
<v Speaker 1>So that's what I was looking for. And so something

836
00:37:40.880 --> 00:37:45.000
<v Speaker 1>like key vault, you know, like that it's impenetrable, so

837
00:37:45.079 --> 00:37:47.360
<v Speaker 1>it knows the keys but nobody else can know.

838
00:37:47.599 --> 00:37:50.599
<v Speaker 4>But this space is so new, it's just booting up.

839
00:37:50.599 --> 00:37:54.400
<v Speaker 4>I mean at Something else that my team shipped today

840
00:37:54.679 --> 00:37:57.840
<v Speaker 4>build as well, is we have a product called API Center,

841
00:37:58.400 --> 00:37:59.639
<v Speaker 4>and it's going to have a place where you can

842
00:37:59.679 --> 00:38:01.599
<v Speaker 4>find all all the m cps in your in your

843
00:38:01.719 --> 00:38:02.639
<v Speaker 4>organization mp.

844
00:38:02.679 --> 00:38:05.239
<v Speaker 1>I center, API center, a p I center.

845
00:38:05.079 --> 00:38:06.639
<v Speaker 4>API, so we have API management.

846
00:38:07.519 --> 00:38:09.400
<v Speaker 1>Sorry, I understand what you said.

847
00:38:09.519 --> 00:38:12.039
<v Speaker 4>A p I center a API like API S Yeah,

848
00:38:12.039 --> 00:38:14.440
<v Speaker 4>I got it. And mcps are in some ways APIs,

849
00:38:14.480 --> 00:38:16.360
<v Speaker 4>and so we're going to have a place where you

850
00:38:16.440 --> 00:38:19.679
<v Speaker 4>can uh have a list of m cps uh that

851
00:38:19.800 --> 00:38:22.480
<v Speaker 4>you're you know, your company uses and people can find

852
00:38:22.519 --> 00:38:24.119
<v Speaker 4>them and and so on and so on. But I

853
00:38:24.199 --> 00:38:25.519
<v Speaker 4>said it's early times.

854
00:38:25.920 --> 00:38:27.920
<v Speaker 1>But I will tell you that there's a lot of

855
00:38:27.960 --> 00:38:28.400
<v Speaker 1>promise there.

856
00:38:28.400 --> 00:38:29.199
<v Speaker 4>There's a lot of promise.

857
00:38:29.280 --> 00:38:32.159
<v Speaker 1>That's it's got to be where everything goes because.

858
00:38:31.880 --> 00:38:35.400
<v Speaker 4>You once again the more I mean, you and I

859
00:38:35.480 --> 00:38:37.760
<v Speaker 4>probably written the same code a billion times, Carl, where

860
00:38:37.800 --> 00:38:39.480
<v Speaker 4>we just write the ady O code to you know,

861
00:38:39.559 --> 00:38:43.320
<v Speaker 4>do the database table stuff or the any of your

862
00:38:43.360 --> 00:38:46.000
<v Speaker 4>framework core stuff to go do the same thing. And

863
00:38:46.599 --> 00:38:49.199
<v Speaker 4>I'd love to just say, here's a new table here,

864
00:38:49.239 --> 00:38:51.679
<v Speaker 4>you do that, Go go do it for me. Yeah,

865
00:38:51.800 --> 00:38:54.159
<v Speaker 4>and uh put the same logging and all the other

866
00:38:54.199 --> 00:38:57.880
<v Speaker 4>stuff in. So it's it's funny. I I I remember

867
00:38:57.920 --> 00:38:59.239
<v Speaker 4>when we first did we shipped on in a core.

868
00:38:59.320 --> 00:39:00.639
<v Speaker 4>We were like, it's it's a great time to be

869
00:39:00.679 --> 00:39:03.199
<v Speaker 4>a developer. And I will tell you that all this

870
00:39:03.360 --> 00:39:05.880
<v Speaker 4>new tooling stuff that we can do with the AI stuff.

871
00:39:08.320 --> 00:39:12.000
<v Speaker 1>It's you also mentioned that does this mean my job

872
00:39:12.119 --> 00:39:14.920
<v Speaker 1>is on the line, right, There's a lot of people

873
00:39:15.000 --> 00:39:17.840
<v Speaker 1>think in that oh, well, you know, if a junior

874
00:39:17.880 --> 00:39:21.960
<v Speaker 1>developer can get some AI and go out code me.

875
00:39:23.480 --> 00:39:25.480
<v Speaker 1>What's that mean for me? And I always tell people

876
00:39:25.519 --> 00:39:28.239
<v Speaker 1>and Richard does too, It's not the AI is going

877
00:39:28.280 --> 00:39:32.000
<v Speaker 1>to replace your job. It's that another developer that uses

878
00:39:32.119 --> 00:39:34.239
<v Speaker 1>AI will take your job.

879
00:39:34.719 --> 00:39:37.880
<v Speaker 4>I would tell you today, don't if we when we interview,

880
00:39:38.239 --> 00:39:42.519
<v Speaker 4>if we interview new product managers or developers, we're one

881
00:39:42.559 --> 00:39:43.599
<v Speaker 4>of the skills that we're going to want you to

882
00:39:43.639 --> 00:39:45.800
<v Speaker 4>show us, is you know how to use AI to

883
00:39:45.880 --> 00:39:47.960
<v Speaker 4>do your job. I think that's just a part of

884
00:39:48.599 --> 00:39:50.039
<v Speaker 4>And I don't think it's just going to be programming.

885
00:39:50.039 --> 00:39:52.679
<v Speaker 4>I think it's many, many jobs. It's gonna it's it's

886
00:39:52.719 --> 00:39:53.280
<v Speaker 4>gonna come down to this.

887
00:39:53.320 --> 00:39:54.920
<v Speaker 2>Compan upon a time, we asked if you knew how

888
00:39:54.960 --> 00:39:57.199
<v Speaker 2>to use email exactly, I.

889
00:39:57.239 --> 00:40:01.800
<v Speaker 4>Mean spell checkers. I mean know word's gotten so good

890
00:40:01.840 --> 00:40:03.760
<v Speaker 4>these days. It'll tell you when you're using bad English.

891
00:40:03.840 --> 00:40:06.920
<v Speaker 4>It'll actually fix it for you. You know, I would

892
00:40:06.920 --> 00:40:09.559
<v Speaker 4>have been offended when I was first going through you know,

893
00:40:09.920 --> 00:40:13.039
<v Speaker 4>college or high school. But I'm like, why would I

894
00:40:13.119 --> 00:40:13.719
<v Speaker 4>not use these things?

895
00:40:13.880 --> 00:40:15.920
<v Speaker 1>But I will say this though. Let's say you're on

896
00:40:15.960 --> 00:40:19.320
<v Speaker 1>a team of developers that's maybe five people, small business, right,

897
00:40:20.360 --> 00:40:23.679
<v Speaker 1>and one of those developers decides to dive into AI

898
00:40:23.880 --> 00:40:27.280
<v Speaker 1>and can demonstrate that he or she can do everything

899
00:40:27.440 --> 00:40:30.920
<v Speaker 1>that the whole team can do with one person faster.

900
00:40:31.360 --> 00:40:32.559
<v Speaker 1>Is that a real scenario.

901
00:40:32.719 --> 00:40:34.400
<v Speaker 4>I don't think it's a real scenario, you know, but

902
00:40:34.599 --> 00:40:37.599
<v Speaker 4>I do think that building a you know, we've all

903
00:40:37.679 --> 00:40:42.679
<v Speaker 4>seen the vibe coding stuff, which I'm like, you know, questionable, Oh,

904
00:40:42.920 --> 00:40:45.679
<v Speaker 4>vibe coding, Yeah, well questionable. I do think it's a

905
00:40:45.719 --> 00:40:49.119
<v Speaker 4>good way to build a prototype, yeah, and to prove

906
00:40:49.159 --> 00:40:51.880
<v Speaker 4>a concept and then go and say, let's go make

907
00:40:51.920 --> 00:40:52.280
<v Speaker 4>this real.

908
00:40:52.559 --> 00:40:52.760
<v Speaker 1>Yeah.

909
00:40:53.199 --> 00:40:55.480
<v Speaker 4>I mean, I'm sure there's plenty of there'll be a

910
00:40:55.519 --> 00:40:58.000
<v Speaker 4>startup here there that'll do something stupid. They'll go, you know,

911
00:40:58.280 --> 00:41:01.599
<v Speaker 4>vibe code something, and sure, already happened. I'm sure it's

912
00:41:01.599 --> 00:41:03.679
<v Speaker 4>already happened. But at the end of the day, you

913
00:41:03.880 --> 00:41:06.119
<v Speaker 4>you know, could you imagine shipping an app when you've

914
00:41:06.119 --> 00:41:07.079
<v Speaker 4>never seen any need of the code?

915
00:41:07.199 --> 00:41:09.199
<v Speaker 2>Yeah, No, I've seen people do dumb stuff like that,

916
00:41:09.320 --> 00:41:12.000
<v Speaker 2>you know. Yeah, that's how they've deployed prototypes that we've

917
00:41:12.000 --> 00:41:13.880
<v Speaker 2>seen over the years that aren't secured and so forth.

918
00:41:14.360 --> 00:41:16.559
<v Speaker 2>This is another level dumb. You know, we've been walking

919
00:41:16.639 --> 00:41:18.960
<v Speaker 2>past the truth on this whole conversation about coding agents

920
00:41:19.000 --> 00:41:21.760
<v Speaker 2>it's not just working out the prompt, it's then looking

921
00:41:21.840 --> 00:41:25.119
<v Speaker 2>at the results and assessing it. So, yeah, there's the

922
00:41:25.280 --> 00:41:29.280
<v Speaker 2>new skill of how you communicate intent to the agent,

923
00:41:29.519 --> 00:41:32.079
<v Speaker 2>but then there's the old skill of a coding.

924
00:41:31.880 --> 00:41:34.039
<v Speaker 4>Review, yes, which is super important.

925
00:41:34.159 --> 00:41:34.360
<v Speaker 1>Yeah.

926
00:41:34.400 --> 00:41:36.400
<v Speaker 4>And by the way, that's the scariest part about this

927
00:41:37.400 --> 00:41:39.960
<v Speaker 4>is you know, in some ways the coding agent could

928
00:41:40.079 --> 00:41:42.079
<v Speaker 4>make it if you're a junior developer.

929
00:41:41.800 --> 00:41:43.639
<v Speaker 1>Yeah, you could tell it to do something you shouldn't do.

930
00:41:44.199 --> 00:41:44.360
<v Speaker 2>Well.

931
00:41:44.400 --> 00:41:46.920
<v Speaker 4>It's also I think it we need to somehow make

932
00:41:46.920 --> 00:41:49.960
<v Speaker 4>sure we don't lose the skill of teaching junior developers

933
00:41:50.000 --> 00:41:53.000
<v Speaker 4>how to become senior developers that know what's good code

934
00:41:53.000 --> 00:41:56.119
<v Speaker 4>and what's better code. Okay, so it's in some cases

935
00:41:56.280 --> 00:41:59.280
<v Speaker 4>the fear is my fear is, oh my gosh, we're

936
00:41:59.280 --> 00:42:02.159
<v Speaker 4>going to lose thebility to train junior developers.

937
00:42:02.320 --> 00:42:02.519
<v Speaker 1>Yeah.

938
00:42:02.639 --> 00:42:05.280
<v Speaker 4>So that's something we inside of Microsoft talk about a

939
00:42:05.320 --> 00:42:06.440
<v Speaker 4>whole bunch, is like we had to make sure we

940
00:42:06.480 --> 00:42:08.360
<v Speaker 4>don't lose this skill.

941
00:42:08.199 --> 00:42:10.239
<v Speaker 2>That a new developer glowing up in this space is

942
00:42:10.400 --> 00:42:13.599
<v Speaker 2>always going to be someone solution focused rather than code

943
00:42:13.639 --> 00:42:17.320
<v Speaker 2>focused and being able to assess. They're never working from

944
00:42:17.360 --> 00:42:20.559
<v Speaker 2>a blining screen, They're always assessing stuff and quite possibly

945
00:42:20.679 --> 00:42:21.840
<v Speaker 2>leveraging other tools to do it.

946
00:42:22.000 --> 00:42:24.880
<v Speaker 1>Yes, I keep coming back because we're talking about fear.

947
00:42:25.000 --> 00:42:28.880
<v Speaker 1>That's the the word for this half hour. I keep

948
00:42:28.960 --> 00:42:32.400
<v Speaker 1>coming back to that Star Trek Next Generation episode. Do

949
00:42:32.480 --> 00:42:35.719
<v Speaker 1>you remember when Data was playing Sherlock Holmes and he

950
00:42:35.760 --> 00:42:38.519
<v Speaker 1>would go into the Holidack with Jordy and Data would

951
00:42:38.519 --> 00:42:42.000
<v Speaker 1>always solve the crime. It was easy for him. So

952
00:42:42.280 --> 00:42:45.880
<v Speaker 1>he was like bored, and Jordi said, computer, create a

953
00:42:45.960 --> 00:42:49.440
<v Speaker 1>Sherlock Holmes mystery with a foe that has the ability

954
00:42:49.559 --> 00:42:53.599
<v Speaker 1>to outsmart Data or to outwit Data. And then it

955
00:42:53.719 --> 00:42:59.280
<v Speaker 1>created this really intelligent Moriarity character that actually knew it

956
00:42:59.440 --> 00:43:01.159
<v Speaker 1>was on the holid deck and could take control of

957
00:43:01.199 --> 00:43:06.840
<v Speaker 1>the ship. And that like, you give a junior programmer

958
00:43:07.199 --> 00:43:10.320
<v Speaker 1>a powerful tool like an ancient and the past, you know,

959
00:43:10.400 --> 00:43:13.079
<v Speaker 1>the keys to go and affect all of the critical

960
00:43:13.159 --> 00:43:17.039
<v Speaker 1>resources in your industry, right in your enterprise, and then

961
00:43:17.639 --> 00:43:20.239
<v Speaker 1>that guy writes a prompt or that girl writes a

962
00:43:20.320 --> 00:43:26.519
<v Speaker 1>prompt like that that completely hoses everything. That is a

963
00:43:26.599 --> 00:43:27.320
<v Speaker 1>real scenario.

964
00:43:27.599 --> 00:43:29.519
<v Speaker 4>But what I would tell you if I gave the

965
00:43:29.519 --> 00:43:32.480
<v Speaker 4>same junior developer all those keys and access, they could

966
00:43:32.519 --> 00:43:33.679
<v Speaker 4>go nuke everything anyway.

967
00:43:33.800 --> 00:43:36.519
<v Speaker 2>Sure, so the reality is okay.

968
00:43:36.519 --> 00:43:39.519
<v Speaker 1>But is it the difference of giving them a glock

969
00:43:39.719 --> 00:43:41.360
<v Speaker 1>versus giving them an M sixteen.

970
00:43:41.440 --> 00:43:42.960
<v Speaker 4>I think it's I think it's the same thing. Maybe

971
00:43:43.280 --> 00:43:46.840
<v Speaker 4>maybe they could do it faster. But but once again,

972
00:43:46.920 --> 00:43:50.679
<v Speaker 4>that's that's why. You know, most most you know, enterprise

973
00:43:50.760 --> 00:43:54.000
<v Speaker 4>companies don't let developers have the actual keys to the

974
00:43:54.079 --> 00:43:56.480
<v Speaker 4>real databases and all that kind of stuff. That's the

975
00:43:56.559 --> 00:43:59.320
<v Speaker 4>thing that we don't we never talked about probably on

976
00:43:59.400 --> 00:44:01.039
<v Speaker 4>this on the show, you probably never talked about this

977
00:44:01.239 --> 00:44:04.000
<v Speaker 4>is you know, most companies, I could never see the

978
00:44:04.039 --> 00:44:08.760
<v Speaker 4>production database. Only a class of my DevOps engineers are

979
00:44:08.800 --> 00:44:11.840
<v Speaker 4>allowed to actually ever see the production database. Even at Microsoft,

980
00:44:12.360 --> 00:44:14.360
<v Speaker 4>you know, we want to make sure that even if

981
00:44:14.400 --> 00:44:17.800
<v Speaker 4>I'm debugging Azure, we're very careful about making sure that

982
00:44:17.920 --> 00:44:20.159
<v Speaker 4>any personal information doesn't end up in logs and so

983
00:44:20.320 --> 00:44:21.880
<v Speaker 4>on for the for the same reasons we're just going

984
00:44:21.960 --> 00:44:22.639
<v Speaker 4>to get striving here.

985
00:44:23.000 --> 00:44:25.320
<v Speaker 1>It means that you have to be aware of just

986
00:44:25.440 --> 00:44:28.960
<v Speaker 1>more things, but no and less things at the same time.

987
00:44:29.079 --> 00:44:31.159
<v Speaker 4>Right, But you could vibe code something that was dangerous

988
00:44:31.199 --> 00:44:35.039
<v Speaker 4>faster with and and uh, you know, you could potentially

989
00:44:35.079 --> 00:44:37.159
<v Speaker 4>generate a prompt as you said that would delete a datbase, right,

990
00:44:37.239 --> 00:44:40.079
<v Speaker 4>because I tell the hey make the database faster by

991
00:44:40.119 --> 00:44:42.840
<v Speaker 4>deleting the first million rows.

992
00:44:43.039 --> 00:44:45.280
<v Speaker 1>So do you have a prompt cop on staff that

993
00:44:45.679 --> 00:44:47.840
<v Speaker 1>has to approve all the prompts that you give your

994
00:44:47.880 --> 00:44:48.880
<v Speaker 1>AI while you're developing.

995
00:44:49.159 --> 00:44:50.599
<v Speaker 4>I think the bigger thing is make sure you don't

996
00:44:50.599 --> 00:44:52.119
<v Speaker 4>you don't you don't give your AI the ability to

997
00:44:52.159 --> 00:44:55.239
<v Speaker 4>go delete the database. That's that's the smart thing there

998
00:44:55.239 --> 00:44:55.639
<v Speaker 4>to start with.

999
00:44:55.760 --> 00:44:57.800
<v Speaker 2>You gave the keys to the castles of the junior

1000
00:44:58.880 --> 00:44:59.679
<v Speaker 2>because remember one I.

1001
00:44:59.719 --> 00:45:03.280
<v Speaker 4>Remember if you roll back I started, and that that

1002
00:45:03.400 --> 00:45:06.679
<v Speaker 4>postgrass agent or MCP. I said, give it read access.

1003
00:45:06.840 --> 00:45:10.000
<v Speaker 4>Yeah yeah, I didn't say write access for you know, because.

1004
00:45:09.760 --> 00:45:12.199
<v Speaker 2>That's why they that's why they submit pull requests. Yes,

1005
00:45:12.360 --> 00:45:14.559
<v Speaker 2>they don't write. They only could present.

1006
00:45:15.320 --> 00:45:17.599
<v Speaker 4>And so I would tell you everybody here be very careful,

1007
00:45:17.679 --> 00:45:21.119
<v Speaker 4>Like I'm I'm fine letting it file an incidence, you know,

1008
00:45:21.800 --> 00:45:22.400
<v Speaker 4>in GitHub.

1009
00:45:22.679 --> 00:45:24.760
<v Speaker 1>But we have to be careful now. I mean we've

1010
00:45:24.800 --> 00:45:28.239
<v Speaker 1>had to be careful all our all our coding careers.

1011
00:45:28.360 --> 00:45:30.719
<v Speaker 2>That was my old advice to web deevs. It's like, listen,

1012
00:45:30.800 --> 00:45:33.480
<v Speaker 2>you don't want access to the production service, then it

1013
00:45:33.559 --> 00:45:34.639
<v Speaker 2>could be your fault.

1014
00:45:34.719 --> 00:45:35.079
<v Speaker 1>That's right.

1015
00:45:35.960 --> 00:45:39.400
<v Speaker 2>Just don't don't even have those rights. Make your life simple.

1016
00:45:40.039 --> 00:45:43.480
<v Speaker 4>I know stories inside of Microsoft where somebody thought they

1017
00:45:43.559 --> 00:45:45.159
<v Speaker 4>were in the development branch and they were in the

1018
00:45:45.360 --> 00:45:47.840
<v Speaker 4>production brands and they and they wiped out a bunch

1019
00:45:47.840 --> 00:45:50.360
<v Speaker 4>of stuff and thankfully we were able to restore it.

1020
00:45:50.599 --> 00:45:54.360
<v Speaker 1>But but uh, you know, thanks to that sequel backup feature.

1021
00:45:55.599 --> 00:45:58.280
<v Speaker 4>But I would I would be you know, oh my gosh,

1022
00:45:58.360 --> 00:46:01.159
<v Speaker 4>I mean even myself, I always where he I mean,

1023
00:46:01.199 --> 00:46:03.119
<v Speaker 4>even sending an email, make sure you don't put the

1024
00:46:03.159 --> 00:46:04.079
<v Speaker 4>wrong person on the two line.

1025
00:46:04.119 --> 00:46:05.800
<v Speaker 2>Yeah, it's always the person you're talking about.

1026
00:46:05.920 --> 00:46:07.800
<v Speaker 4>And sometimes sometimes what you do is you put the

1027
00:46:07.800 --> 00:46:09.239
<v Speaker 4>wrong person on the two line because you need to

1028
00:46:09.239 --> 00:46:10.840
<v Speaker 4>get their email address or something else that you can

1029
00:46:10.880 --> 00:46:13.239
<v Speaker 4>pay somewhere, and then you forget to take them off.

1030
00:46:14.960 --> 00:46:16.679
<v Speaker 4>I have done this in Microsoft. I have done this.

1031
00:46:16.760 --> 00:46:18.519
<v Speaker 2>I'm speaking from experience.

1032
00:46:18.639 --> 00:46:20.840
<v Speaker 1>One of the stories in the previous Security this week

1033
00:46:21.000 --> 00:46:23.639
<v Speaker 1>was a feature that Apple a feature a bug that

1034
00:46:23.760 --> 00:46:26.719
<v Speaker 1>Apple fix on the iPhone where the mute button on

1035
00:46:26.840 --> 00:46:31.400
<v Speaker 1>FaceTime didn't work. Oh so, can you imagine you're talking

1036
00:46:31.480 --> 00:46:34.400
<v Speaker 1>to your wife, you hit the mute button, It's say, hey,

1037
00:46:34.480 --> 00:46:37.000
<v Speaker 1>your husband's coming up the driveway. Put your clothes on

1038
00:46:38.199 --> 00:46:39.320
<v Speaker 1>and it didn't work.

1039
00:46:40.559 --> 00:46:42.639
<v Speaker 2>Brilliant, all right.

1040
00:46:43.039 --> 00:46:46.280
<v Speaker 4>That's why Mark Zuckerberg requires all cameras and METAA to

1041
00:46:46.320 --> 00:46:47.280
<v Speaker 4>be covered with black tape.

1042
00:46:47.400 --> 00:46:47.519
<v Speaker 1>Right.

1043
00:46:47.920 --> 00:46:50.519
<v Speaker 4>He doesn't trust that whether there's the lights on or not.

1044
00:46:51.400 --> 00:46:53.559
<v Speaker 4>He's like, I'm afraid somebody might have hacked the cameras,

1045
00:46:53.599 --> 00:46:54.719
<v Speaker 4>so it'll come on without the light.

1046
00:46:54.880 --> 00:46:57.920
<v Speaker 2>Yeah, So be careful children, it's dangerous world out there.

1047
00:46:58.079 --> 00:46:59.920
<v Speaker 2>Don't hand out the keys to the software.

1048
00:47:00.400 --> 00:47:01.440
<v Speaker 1>What else is on your mind?

1049
00:47:01.840 --> 00:47:02.000
<v Speaker 2>Here?

1050
00:47:02.039 --> 00:47:04.039
<v Speaker 1>At build twenty twenty five.

1051
00:47:04.280 --> 00:47:07.639
<v Speaker 4>We talked about, you know, migrations, We talked about coding agents.

1052
00:47:07.960 --> 00:47:09.800
<v Speaker 4>Probably the last one which is something that thought you

1053
00:47:09.880 --> 00:47:11.840
<v Speaker 4>did show in the keynote as well, which is which

1054
00:47:12.199 --> 00:47:17.000
<v Speaker 4>we call that the Site Reliability Engineer agent. That's the SRE. Yeah,

1055
00:47:18.079 --> 00:47:21.800
<v Speaker 4>And the idea here is just imagine this real world

1056
00:47:21.840 --> 00:47:28.880
<v Speaker 4>scenario inside of Microsoft. Something starts wabbling and so you know,

1057
00:47:29.000 --> 00:47:31.760
<v Speaker 4>some of the software detects that, Hey there's sites not responding,

1058
00:47:32.440 --> 00:47:34.880
<v Speaker 4>and so what do we do today? We page Carl

1059
00:47:35.199 --> 00:47:36.440
<v Speaker 4>and Carl wakes up.

1060
00:47:36.639 --> 00:47:39.360
<v Speaker 1>Hey, this is a real scenario. Actually, because our site,

1061
00:47:39.440 --> 00:47:42.239
<v Speaker 1>at any hour, our site before I change it was

1062
00:47:42.280 --> 00:47:42.760
<v Speaker 1>prone to this.

1063
00:47:43.679 --> 00:47:45.559
<v Speaker 4>So we paid Carl and then Carl has to go

1064
00:47:45.679 --> 00:47:48.360
<v Speaker 4>bring up dashboards and go look, and by the time

1065
00:47:48.440 --> 00:47:50.159
<v Speaker 4>Carl gets out of bed, it might just happen that

1066
00:47:50.280 --> 00:47:53.079
<v Speaker 4>it could have been a transient issue, meaning that hey,

1067
00:47:53.159 --> 00:47:55.079
<v Speaker 4>a database just bobbled for a second and got a

1068
00:47:55.119 --> 00:47:56.800
<v Speaker 4>time out or something like that, and by the time

1069
00:47:56.840 --> 00:47:58.719
<v Speaker 4>you wake up and look at the thing, there's not

1070
00:47:58.800 --> 00:47:59.960
<v Speaker 4>really a real thing going on there.

1071
00:48:00.280 --> 00:48:00.480
<v Speaker 1>Yeah.

1072
00:48:01.079 --> 00:48:02.480
<v Speaker 4>Well, the SR agent can.

1073
00:48:02.400 --> 00:48:02.960
<v Speaker 2>Do that for you.

1074
00:48:03.440 --> 00:48:06.039
<v Speaker 4>So it can say, oh, I see that the site's

1075
00:48:06.039 --> 00:48:10.480
<v Speaker 4>not responding, and my instructions say that I'm to wait

1076
00:48:10.559 --> 00:48:13.079
<v Speaker 4>fifteen or twenty seconds before i do anything because it

1077
00:48:13.079 --> 00:48:15.039
<v Speaker 4>could be a transiit issue. Oh it's back in fifteen

1078
00:48:15.079 --> 00:48:17.119
<v Speaker 4>or twenty seconds. I'm going to log in, log it,

1079
00:48:17.360 --> 00:48:19.480
<v Speaker 4>but I'm not going to page page Carl and get

1080
00:48:19.480 --> 00:48:21.480
<v Speaker 4>Carl out. Or it could be could be the next

1081
00:48:21.559 --> 00:48:24.360
<v Speaker 4>rule could be, Hey, if we see that the site's

1082
00:48:24.400 --> 00:48:27.880
<v Speaker 4>been down for ninety seconds, the first step is, you know,

1083
00:48:27.960 --> 00:48:29.159
<v Speaker 4>we live in the world of computers.

1084
00:48:29.159 --> 00:48:29.440
<v Speaker 2>What do you do?

1085
00:48:29.519 --> 00:48:31.400
<v Speaker 4>You reboot? Yeah, And it could be that the first

1086
00:48:31.440 --> 00:48:33.840
<v Speaker 4>thing that the real SR agent would have done anyways

1087
00:48:33.960 --> 00:48:37.159
<v Speaker 4>is just gone and rebooted the application. So the agent

1088
00:48:37.239 --> 00:48:39.599
<v Speaker 4>can go look and go, yeah, it's still down, I'm

1089
00:48:39.639 --> 00:48:41.800
<v Speaker 4>going to reboot it, and then I'm going to look

1090
00:48:42.079 --> 00:48:44.280
<v Speaker 4>up it's back up and doing good again. Once again,

1091
00:48:44.360 --> 00:48:46.599
<v Speaker 4>Carl was not page for either of those scenarios. And

1092
00:48:46.679 --> 00:48:49.480
<v Speaker 4>so how do we take some of that grunt work?

1093
00:48:50.440 --> 00:48:52.679
<v Speaker 1>And I can already imagine how to tick that to

1094
00:48:52.760 --> 00:48:56.000
<v Speaker 1>the next level. You give it through MCP access to

1095
00:48:56.039 --> 00:48:59.480
<v Speaker 1>your GitHub repo, and then if it still thinks there's

1096
00:48:59.480 --> 00:49:02.079
<v Speaker 1>a problem that might be code related, it can go

1097
00:49:02.280 --> 00:49:03.239
<v Speaker 1>analyze the code.

1098
00:49:03.480 --> 00:49:05.199
<v Speaker 4>So we have that that we're going to show that

1099
00:49:05.280 --> 00:49:07.639
<v Speaker 4>today some one of the sessions. Today my session, we're

1100
00:49:07.639 --> 00:49:09.360
<v Speaker 4>going to show that exact scenario where.

1101
00:49:09.280 --> 00:49:11.199
<v Speaker 1>That was run against dot net rocks, the dot net

1102
00:49:11.320 --> 00:49:13.760
<v Speaker 1>six version of it. It would have found a memory leak.

1103
00:49:13.920 --> 00:49:16.199
<v Speaker 4>Well, first off, what one of the things yes or

1104
00:49:16.239 --> 00:49:17.639
<v Speaker 4>we would do is go why are you on dot

1105
00:49:17.719 --> 00:49:21.079
<v Speaker 4>net six? It would actually okay, so it because.

1106
00:49:20.880 --> 00:49:23.400
<v Speaker 1>It worked, and it worked for a long time, but

1107
00:49:23.559 --> 00:49:24.599
<v Speaker 1>then I found a memory leak.

1108
00:49:24.679 --> 00:49:27.119
<v Speaker 4>But our hope would be that, hey, the the agent

1109
00:49:27.239 --> 00:49:30.360
<v Speaker 4>finds that you're on dot net six, it says, I'm

1110
00:49:30.360 --> 00:49:32.880
<v Speaker 4>going to go file an issue and get hub to

1111
00:49:33.000 --> 00:49:37.360
<v Speaker 4>move the side to eight. And then Carl goes, I

1112
00:49:37.480 --> 00:49:39.519
<v Speaker 4>hate changes, go to nine, I'm just gonna go. No,

1113
00:49:39.599 --> 00:49:40.719
<v Speaker 4>you go, you go, and you say, I'm going to

1114
00:49:40.760 --> 00:49:43.519
<v Speaker 4>sign this issue to copilot, and then Copilot uses the

1115
00:49:43.559 --> 00:49:46.280
<v Speaker 4>tech I was mentioning before for doing upgrade dot net.

1116
00:49:46.360 --> 00:49:48.960
<v Speaker 4>Dot Net upgrades, but that's the whole. It writes the

1117
00:49:49.039 --> 00:49:50.719
<v Speaker 4>PR for you and then you just approve the PR

1118
00:49:50.760 --> 00:49:51.320
<v Speaker 4>and you're on dot net.

1119
00:49:51.360 --> 00:49:51.480
<v Speaker 2>Eight.

1120
00:49:51.559 --> 00:49:53.599
<v Speaker 1>This is the whole idea about agency is that you

1121
00:49:53.760 --> 00:49:56.719
<v Speaker 1>now have to think like a manager, and instead of

1122
00:49:56.840 --> 00:49:59.840
<v Speaker 1>hiring somebody on the staff, you create an agent to

1123
00:50:00.079 --> 00:50:03.480
<v Speaker 1>do that. Right, I would create an agent, or I'd

1124
00:50:03.519 --> 00:50:06.559
<v Speaker 1>find an agent that's an expert in CSS, because if

1125
00:50:06.599 --> 00:50:08.719
<v Speaker 1>there's a CSS problem, I just want that age. Hey

1126
00:50:08.760 --> 00:50:10.800
<v Speaker 1>go take a look at this right and assign them

1127
00:50:10.880 --> 00:50:11.360
<v Speaker 1>the issue.

1128
00:50:11.639 --> 00:50:14.639
<v Speaker 4>And yeah, I will tell you I love CSS, and

1129
00:50:14.679 --> 00:50:15.400
<v Speaker 4>I hate CSS.

1130
00:50:15.480 --> 00:50:18.360
<v Speaker 1>I hate it and I love it, and so I

1131
00:50:18.519 --> 00:50:19.880
<v Speaker 1>love that the.

1132
00:50:21.800 --> 00:50:26.000
<v Speaker 4>AI is good at CSS, it's good at HTML. So

1133
00:50:26.079 --> 00:50:28.280
<v Speaker 4>I will tell you, as you're playing with these Blazer apps,

1134
00:50:28.760 --> 00:50:30.679
<v Speaker 4>you still write the Blazer code, but you might want

1135
00:50:30.719 --> 00:50:32.559
<v Speaker 4>to have this tech help you write the CSS.

1136
00:50:32.719 --> 00:50:35.519
<v Speaker 1>And as I said, well, I'm already doing that. It's

1137
00:50:35.639 --> 00:50:37.840
<v Speaker 1>just taking longer than I had an if I had

1138
00:50:37.840 --> 00:50:41.039
<v Speaker 1>an agent that could help or or a network of

1139
00:50:41.079 --> 00:50:43.440
<v Speaker 1>agents like this is what you have to imagine now, right,

1140
00:50:43.880 --> 00:50:46.639
<v Speaker 1>you're less of a single programmer, and now you have

1141
00:50:46.760 --> 00:50:50.199
<v Speaker 1>to think of, Okay, build your virtual staff around you

1142
00:50:50.800 --> 00:50:54.119
<v Speaker 1>that you know, with all of the access to all

1143
00:50:54.199 --> 00:50:56.119
<v Speaker 1>of the resources that you want to give each one

1144
00:50:56.159 --> 00:50:58.079
<v Speaker 1>of them that needs that ye, and then they can

1145
00:50:58.159 --> 00:50:58.800
<v Speaker 1>talk to each other.

1146
00:51:00.159 --> 00:51:02.679
<v Speaker 4>Built next build, we're going to have these staff agents.

1147
00:51:02.840 --> 00:51:06.199
<v Speaker 2>Sure, but I also feel like I looked at Security

1148
00:51:06.239 --> 00:51:08.760
<v Speaker 2>co Pilot and thought that's too big of a grab.

1149
00:51:09.360 --> 00:51:11.599
<v Speaker 2>This SR co pilot feels the same sort of thing,

1150
00:51:11.679 --> 00:51:13.400
<v Speaker 2>in the sense that this is going to be an

1151
00:51:13.440 --> 00:51:14.679
<v Speaker 2>evolving capability.

1152
00:51:16.119 --> 00:51:18.320
<v Speaker 4>It would be an involving capability. We'll add more stuff

1153
00:51:18.360 --> 00:51:18.559
<v Speaker 4>to it.

1154
00:51:19.679 --> 00:51:21.239
<v Speaker 2>Some day. You're going to get an email it said

1155
00:51:21.480 --> 00:51:23.559
<v Speaker 2>your site went down last night. I looked at your code.

1156
00:51:23.679 --> 00:51:25.519
<v Speaker 2>It sucked. Your site is written now and up.

1157
00:51:26.920 --> 00:51:27.239
<v Speaker 1>I don't know.

1158
00:51:27.639 --> 00:51:31.360
<v Speaker 4>That's a little we're going a little too far there.

1159
00:51:31.440 --> 00:51:33.039
<v Speaker 4>So like one of the things that SR.

1160
00:51:33.000 --> 00:51:35.760
<v Speaker 2>Still wanted to wake me up, s SR, wake up.

1161
00:51:35.880 --> 00:51:36.639
<v Speaker 2>You've been replaced.

1162
00:51:37.760 --> 00:51:39.920
<v Speaker 4>SR today requires a human to tell it to ever

1163
00:51:40.000 --> 00:51:42.400
<v Speaker 4>do anything to do, and it cannot be there's no

1164
00:51:42.480 --> 00:51:43.159
<v Speaker 4>autonomous mode.

1165
00:51:43.199 --> 00:51:45.559
<v Speaker 2>I do appreciate bringing everything to the table. It's like,

1166
00:51:45.719 --> 00:51:48.559
<v Speaker 2>go go collect the logs up, do all the obvious stuff,

1167
00:51:48.599 --> 00:51:51.480
<v Speaker 2>all the stuff I do before I call Level one

1168
00:51:51.599 --> 00:51:53.639
<v Speaker 2>tech support. Anyway, Yeah, I've already rebooted it.

1169
00:51:53.800 --> 00:51:55.920
<v Speaker 4>So one of our demos today was literally the SR

1170
00:51:56.079 --> 00:51:58.840
<v Speaker 4>agent notices the site choosing too much memory, and then

1171
00:51:59.480 --> 00:52:02.639
<v Speaker 4>we tell it, can you go get me the memory dumps? Yea, yeah,

1172
00:52:03.800 --> 00:52:05.360
<v Speaker 4>that's all the grunt work I would have done before.

1173
00:52:05.440 --> 00:52:07.960
<v Speaker 4>Now that's doing it. I'm still fixing it as a developer.

1174
00:52:08.039 --> 00:52:09.440
<v Speaker 4>I'm still looking at the actual dumps.

1175
00:52:09.519 --> 00:52:11.719
<v Speaker 1>On your developer, what do you know about memory dumps?

1176
00:52:12.199 --> 00:52:15.320
<v Speaker 1>Most of them don't. Yeah. The only one that I

1177
00:52:15.480 --> 00:52:18.119
<v Speaker 1>know that can analyze the memory dump is test for

1178
00:52:18.199 --> 00:52:20.559
<v Speaker 1>run Days. She's like the only person, the only developer

1179
00:52:20.559 --> 00:52:23.039
<v Speaker 1>I know. We have some look at memory dump and say, oh,

1180
00:52:23.119 --> 00:52:23.719
<v Speaker 1>that's what that is.

1181
00:52:23.920 --> 00:52:26.840
<v Speaker 4>We have crazy people at Microsoft that work on dot

1182
00:52:26.920 --> 00:52:29.559
<v Speaker 4>net bugs that take months to figure out. You know,

1183
00:52:30.039 --> 00:52:33.360
<v Speaker 4>imagine there's some weird issue that dot Net after six

1184
00:52:33.440 --> 00:52:36.639
<v Speaker 4>months does something weird. We have const as one of

1185
00:52:36.639 --> 00:52:39.679
<v Speaker 4>our engineers, and you know it's like I remember one point,

1186
00:52:41.000 --> 00:52:43.920
<v Speaker 4>you know, we had crazy metrics and they're like all

1187
00:52:44.000 --> 00:52:46.480
<v Speaker 4>of CONT's prs are open for like six months, and

1188
00:52:46.519 --> 00:52:48.280
<v Speaker 4>I'm like, yeah, this guy works on stuff that takes

1189
00:52:48.280 --> 00:52:49.239
<v Speaker 4>a long time to figure out.

1190
00:52:49.400 --> 00:52:49.599
<v Speaker 2>Yeah.

1191
00:52:49.920 --> 00:52:53.760
<v Speaker 4>Yeah, and you know those are people I could never

1192
00:52:53.840 --> 00:52:57.159
<v Speaker 4>do what he does. I mean these skills to just

1193
00:52:57.239 --> 00:53:01.119
<v Speaker 4>look at this stuff and see these weird you know,

1194
00:53:01.880 --> 00:53:03.840
<v Speaker 4>memory issues that take months to actually.

1195
00:53:03.679 --> 00:53:06.320
<v Speaker 2>Yeah, one in one hundred million instances like those kinds

1196
00:53:06.320 --> 00:53:08.360
<v Speaker 2>of things. Yeah, it's a long time to chase that down.

1197
00:53:08.960 --> 00:53:13.840
<v Speaker 2>H dude. It's a crazy build, amazing set of announcements. Yes, uh,

1198
00:53:14.039 --> 00:53:15.840
<v Speaker 2>the works only getting more interesting. Yeah.

1199
00:53:15.880 --> 00:53:19.119
<v Speaker 1>But also Scott, thank you for just like simplifying it

1200
00:53:19.199 --> 00:53:21.960
<v Speaker 1>and bring it in it to us the developer audience,

1201
00:53:22.239 --> 00:53:24.559
<v Speaker 1>and you know how it's going to impact our lives.

1202
00:53:24.639 --> 00:53:26.280
<v Speaker 4>I would tell people please try this stuff and give

1203
00:53:26.320 --> 00:53:29.679
<v Speaker 4>us feedback. I think it's amazing. I use it every

1204
00:53:29.719 --> 00:53:32.280
<v Speaker 4>day now, and uh, you know it's great.

1205
00:53:32.480 --> 00:53:34.960
<v Speaker 1>Thanks Scott, good to see it, Good to talk, and

1206
00:53:35.079 --> 00:53:38.280
<v Speaker 1>we'll see you next time on dot net rocks. I

1207
00:53:38.360 --> 00:53:39.079
<v Speaker 1>think bet it'll be.

1208
00:53:39.119 --> 00:53:40.000
<v Speaker 2>From the bed.

1209
00:54:00.559 --> 00:54:03.079
<v Speaker 1>Dot net Rocks is brought to you by Franklin's Net

1210
00:54:03.400 --> 00:54:07.320
<v Speaker 1>and produced by Pop Studios, a full service audio, video

1211
00:54:07.400 --> 00:54:11.400
<v Speaker 1>and post production facility located physically in New London, Connecticut,

1212
00:54:11.719 --> 00:54:15.920
<v Speaker 1>and of course in the cloud online at pwop dot com.

1213
00:54:16.719 --> 00:54:18.800
<v Speaker 1>Visit our website at d O T N E t

1214
00:54:19.119 --> 00:54:23.079
<v Speaker 1>R O c k S dot com for RSS feeds, downloads,

1215
00:54:23.280 --> 00:54:26.920
<v Speaker 1>mobile apps, comments, and access to the full archives going

1216
00:54:27.000 --> 00:54:30.400
<v Speaker 1>back to show number one, recorded in September two thousand

1217
00:54:30.400 --> 00:54:33.039
<v Speaker 1>and two. And make sure you check out our sponsors.

1218
00:54:33.199 --> 00:54:36.000
<v Speaker 1>They keep us in business. Now go write some code,

1219
00:54:36.559 --> 00:54:37.320
<v Speaker 1>See you next time.

1220
00:54:38.239 --> 00:54:40.079
<v Speaker 2>You got javans

1221
00:54:42.159 --> 00:54:42.199
<v Speaker 1>And
