WEBVTT
1
00:00:00.960 --> 00:00:02.879
Hey Richard, Hey Carl, what do you know?
2
00:00:03.120 --> 00:00:06.679
Well, I know that our friend Michelle Rubusta Monte is
3
00:00:06.719 --> 00:00:08.880
with us to tell us about something that's going on
4
00:00:09.519 --> 00:00:11.199
adjacent to DEV Intersection.
5
00:00:11.240 --> 00:00:15.560
What is it? It's cybersecurity Intersection. Let's let Michelle tell
6
00:00:15.599 --> 00:00:16.199
that story.
7
00:00:16.679 --> 00:00:21.320
Hey Michelle, Hey Carl, Hey Richard, how are you.
8
00:00:21.000 --> 00:00:22.839
Tell us about cybersecurity Intersection?
9
00:00:23.480 --> 00:00:26.920
Well, so, Richard and I are partnering with the group
10
00:00:27.000 --> 00:00:30.359
that does DEV Intersection and next Gen AI, and we
11
00:00:30.600 --> 00:00:34.200
are putting on a new conference dedicated to one hundred
12
00:00:34.240 --> 00:00:40.000
percent security focused topics. And I mean, honestly, the lineup
13
00:00:40.039 --> 00:00:43.679
of speakers is incredible. We have Paula A. Jenis, who's
14
00:00:43.719 --> 00:00:47.600
here from Poland and does keynotes all over the world
15
00:00:47.719 --> 00:00:50.600
and is one of the top rated RSA speakers and
16
00:00:50.640 --> 00:00:53.159
black hat speaker. We're so lucky to have her. But
17
00:00:53.240 --> 00:00:56.000
she's not only keynoting, she's got a workshop teaches you
18
00:00:56.039 --> 00:01:01.039
about protecting your environments against hackers and shows you about
19
00:01:01.280 --> 00:01:03.719
how to you know, do attacks so that you can
20
00:01:03.759 --> 00:01:07.840
prevent them. It's pretty cool and sessions like that as well.
21
00:01:07.840 --> 00:01:10.799
But we also have speakers from Microsoft. We have we
22
00:01:10.840 --> 00:01:15.120
have speakers that specialize in you know secure coding practices,
23
00:01:15.640 --> 00:01:20.439
Azure security, Zuero, trust architectures on Azure UH and people
24
00:01:20.439 --> 00:01:23.519
who do decision maker tracks, so things around governance policy
25
00:01:23.560 --> 00:01:26.200
and you know how to how to manage and your
26
00:01:26.200 --> 00:01:29.480
production operations keep them secure. So it's an amazing group
27
00:01:29.519 --> 00:01:31.040
of speakers, really excited about it.
28
00:01:31.120 --> 00:01:33.560
And I think I can count myself among the group
29
00:01:33.599 --> 00:01:34.599
of speakers there.
30
00:01:35.040 --> 00:01:37.079
Well, yes you can, that is right.
31
00:01:37.480 --> 00:01:42.159
Yeah, I'm doing a securing Blazer Server applications talk and
32
00:01:42.239 --> 00:01:45.959
also I think we're doing a Security this Week live
33
00:01:46.040 --> 00:01:48.480
show there somewhere that is correct.
34
00:01:48.719 --> 00:01:51.200
Yeah, we'll be recording Security this Week live. We're going
35
00:01:51.239 --> 00:01:54.719
to have a great panel with some folks. The interesting
36
00:01:54.719 --> 00:01:57.920
thing here is we don't really have a Microsoft and
37
00:01:58.000 --> 00:02:02.120
dot net and Azure focused toecurity conference yet, so that's
38
00:02:02.159 --> 00:02:05.159
the reason we're putting this on as well. You know
39
00:02:05.200 --> 00:02:08.280
there are other security conferences, but they have a spread
40
00:02:08.280 --> 00:02:10.439
of topics that maybe don't focus on the things you
41
00:02:10.520 --> 00:02:13.080
do day to day. And you know this overlaps with
42
00:02:13.199 --> 00:02:17.560
again our community of folks that specialize in again dot net,
43
00:02:17.680 --> 00:02:21.039
Azure and yeah, they need to keep it secure too,
44
00:02:21.280 --> 00:02:22.840
So with tons of talks.
45
00:02:23.719 --> 00:02:27.240
Cyber Intersection is part of a trio of conferences we're doing.
46
00:02:27.280 --> 00:02:30.360
They have Intersection alongside the next Gen AI Conference all
47
00:02:30.439 --> 00:02:34.680
in Orlando the week of October fifth through tenth. That's
48
00:02:34.759 --> 00:02:38.080
workshops and the main conference. And you can get a
49
00:02:38.120 --> 00:02:41.400
special registration code if you sign up through Cybersecurity Intersection
50
00:02:41.639 --> 00:02:42.360
dot com.
51
00:02:42.680 --> 00:02:47.400
Yeah, so if you sign up at Cybersecurity Intersection dot com,
52
00:02:47.599 --> 00:02:52.520
then you put in this code, so Alliance cyber three
53
00:02:52.599 --> 00:02:56.319
hundred and you'll get three hundred off the entry price.
54
00:02:56.560 --> 00:02:59.680
So that's a special code that only works at cybersecurity
55
00:03:00.599 --> 00:03:04.439
dot com. And then you have access to all the conferences.
56
00:03:04.479 --> 00:03:09.400
Like Richard said, Wow, that's cool. Thanks Michelle. I'm looking
57
00:03:09.439 --> 00:03:24.199
forward to it and I'll see you there. Hey, watch
58
00:03:24.199 --> 00:03:27.479
out for falling rocks. Nice, it's dot NetRocks. Watch out
59
00:03:27.520 --> 00:03:31.960
for falling dot NetRocks. I'm Carl Franklin.
60
00:03:31.520 --> 00:03:32.520
And I'm Richard Campbell.
61
00:03:32.639 --> 00:03:36.240
We're here for your listening pleasure again. On episode nineteen
62
00:03:36.479 --> 00:03:41.280
sixty seven, this is the year we were born. Yeah,
63
00:03:41.520 --> 00:03:47.080
and my wife then ye yeah, and a lot of
64
00:03:47.240 --> 00:03:49.479
cool things happen. Should we do better know framework first
65
00:03:49.479 --> 00:03:52.159
and then do what happened in nineteen sixty seven? Or
66
00:03:52.319 --> 00:03:55.400
should we Yeah, let's do that all right, don't mess
67
00:03:55.439 --> 00:03:56.879
with the pattern, roll the music.
68
00:04:05.080 --> 00:04:05.560
What do you got?
69
00:04:05.599 --> 00:04:08.439
I have something intriguing that I have not used, but
70
00:04:08.719 --> 00:04:10.479
you know, I like to look and see what's trending
71
00:04:10.479 --> 00:04:14.280
on GitHub and this one is a tool that lets
72
00:04:14.280 --> 00:04:17.279
you run Windows in a Docker container.
73
00:04:17.480 --> 00:04:18.879
Oh far Oh.
74
00:04:18.480 --> 00:04:23.800
It's docer doc k u r slash Windows on GitHub.
75
00:04:24.000 --> 00:04:26.199
And let me pull the classic And why would you
76
00:04:26.279 --> 00:04:26.560
do that?
77
00:04:26.639 --> 00:04:28.759
Why would you ever want to do that? Yeah? Why
78
00:04:28.759 --> 00:04:30.199
would you want to do that? I'll tell you what.
79
00:04:30.279 --> 00:04:32.240
The only reason I could see doing that is the
80
00:04:32.240 --> 00:04:36.839
same reason i'd want to VM, which is complete and encapsulation.
81
00:04:36.920 --> 00:04:40.120
But I would probably want to do it for security reasons,
82
00:04:40.680 --> 00:04:44.079
you know, like I want to move all my email
83
00:04:44.160 --> 00:04:47.240
reading stuff over there. But in order to do that,
84
00:04:47.319 --> 00:04:51.079
you really have to turn off network access, well local
85
00:04:51.240 --> 00:04:53.160
network access, you have to limit it.
86
00:04:53.399 --> 00:04:55.399
You can do that sort of stuff with virtual desktop too,
87
00:04:55.399 --> 00:04:57.439
if you would, if it's just for that interaction. Yeah,
88
00:04:57.560 --> 00:05:00.360
you know. I funny do you bring this up. Timing's
89
00:05:00.360 --> 00:05:02.720
impeccable as usual, mister Franklin, because I was just having
90
00:05:02.720 --> 00:05:06.120
to chat about the origins of virtualization, realizing you know,
91
00:05:06.160 --> 00:05:11.800
back in the day I was using virtualization for testing installs. Right,
92
00:05:11.879 --> 00:05:14.920
we'd have a baseline. This is the current configuration of
93
00:05:14.920 --> 00:05:16.879
the machine at the company. We're gonna put the new
94
00:05:16.920 --> 00:05:19.279
version on. Let's install it. Make sure it doesn't break anything.
95
00:05:19.319 --> 00:05:21.920
This is back in DLL hell days, right, And when
96
00:05:21.920 --> 00:05:24.800
it did you could use because you were in virtual machine.
97
00:05:24.800 --> 00:05:28.079
You just rolled back to the state before tweaked the install,
98
00:05:28.160 --> 00:05:30.079
figure out what you did, made mistake you and try
99
00:05:30.120 --> 00:05:32.480
it again. Like it was a great testing platform. And
100
00:05:32.519 --> 00:05:35.000
this is like a cool way to approach that problem.
101
00:05:35.040 --> 00:05:37.319
Not that we have those kinds of DLL hells anymore.
102
00:05:37.360 --> 00:05:40.199
Now we have new and extra special DLL health. Is
103
00:05:40.240 --> 00:05:42.040
there such a thing as doctor Hell. I don't know,
104
00:05:43.000 --> 00:05:44.639
Maybe it's I don't know there was doctor help, but
105
00:05:44.639 --> 00:05:47.240
it's definitely new get help and yamel hell. I think
106
00:05:47.399 --> 00:05:49.839
everybody on those of this show knows about new get hell. Yeah.
107
00:05:49.920 --> 00:05:54.319
Yeah, yeah, so it's interesting. I would want to, like,
108
00:05:54.360 --> 00:05:57.040
I say, use it for security reasons. Vms are great,
109
00:05:57.079 --> 00:05:58.879
but you know they can be slow, and if they're
110
00:05:58.920 --> 00:06:00.360
not slow, they're expensive and.
111
00:06:00.800 --> 00:06:03.519
They're big, big, big bulky, Like this is just a
112
00:06:03.839 --> 00:06:04.759
lean way to do this.
113
00:06:05.360 --> 00:06:07.879
Yeah, And you use RDP to connect to it, and
114
00:06:07.959 --> 00:06:10.240
so it's pretty cool. But I'd just like to see
115
00:06:10.240 --> 00:06:12.879
if I could lock it down and you know, use
116
00:06:12.920 --> 00:06:15.839
it for Internet browsing and email and all those things.
117
00:06:15.879 --> 00:06:16.759
So interesting.
118
00:06:16.879 --> 00:06:20.399
If I do get phished, you know, I'm not going
119
00:06:20.439 --> 00:06:23.399
to get ransomwared. That's that's why I would want to use.
120
00:06:23.360 --> 00:06:24.839
It, right, or you are, but it's just going to
121
00:06:24.879 --> 00:06:26.360
be on a machine that you don't have anything important on,
122
00:06:26.480 --> 00:06:28.279
so you don't care. Just pave it and go again.
123
00:06:28.759 --> 00:06:29.720
Yeah yeah, or you.
124
00:06:29.720 --> 00:06:32.000
Don't even have to pave it. You just rebuild the
125
00:06:32.000 --> 00:06:34.199
container and to help you go.
126
00:06:34.439 --> 00:06:38.480
Right, yeah, yeah, so long as it doesn't touch your
127
00:06:38.839 --> 00:06:40.639
discs and your you know, well.
128
00:06:40.439 --> 00:06:41.959
You give it a yeah, he got no rights to
129
00:06:42.000 --> 00:06:42.439
anything else.
130
00:06:42.480 --> 00:06:45.240
Give it an area of the disk, and give it
131
00:06:45.560 --> 00:06:46.399
limited network.
132
00:06:46.439 --> 00:06:48.439
No, it's living in that little space. You put it
133
00:06:48.480 --> 00:06:50.879
on its own virtual network, so it only can communicate
134
00:06:50.920 --> 00:06:53.199
the Internet, nothing else in your network. Like, yeah, we've
135
00:06:53.199 --> 00:06:56.120
done all this. This is good honeypot testing and black
136
00:06:56.160 --> 00:06:58.000
app testing, like this is where you do this stuff.
137
00:06:58.040 --> 00:06:58.639
It's cool idea.
138
00:06:58.680 --> 00:07:00.240
So it's cool. I'm going to talk to Doane and
139
00:07:00.279 --> 00:07:02.959
Patrick about that on the next security this week. But yeah,
140
00:07:03.040 --> 00:07:05.480
that's what I got. So who's talking to us.
141
00:07:05.560 --> 00:07:08.360
Richard grabbed a comment off a show from fifteen sixty
142
00:07:08.480 --> 00:07:10.480
going back a few years. It's from July of twenty
143
00:07:10.519 --> 00:07:12.720
eighteen with one Mads Christensen. Maybe you've heard him and
144
00:07:12.720 --> 00:07:15.839
can't wear his glasses very well when we're talking about
145
00:07:15.839 --> 00:07:19.199
writing visual studio extensions, I'm talking about his headshot because
146
00:07:19.199 --> 00:07:21.399
he's got this headshot with his glasses all askew, which
147
00:07:21.439 --> 00:07:24.600
is hilarious inside joke. And admittedly this is a few
148
00:07:24.639 --> 00:07:26.879
years ago, so this is a comment from Scott Hirstell
149
00:07:27.480 --> 00:07:29.920
who said, holy smokes. After listening to this episode, I
150
00:07:30.000 --> 00:07:32.879
took a dive into the visual studio marketplace to see
151
00:07:32.920 --> 00:07:35.480
what kinds of extensions were available, and after hearing about
152
00:07:35.480 --> 00:07:38.680
the image optimizer on the show, Thank you Mads, I
153
00:07:38.680 --> 00:07:40.439
figured i'd give web Essentials a shot. One of the
154
00:07:40.439 --> 00:07:42.399
most satisfying things about this tool was the ability to
155
00:07:42.399 --> 00:07:45.279
save my files and have the browser automatically reload so
156
00:07:45.319 --> 00:07:47.720
I can check out my changes. There are so many
157
00:07:47.720 --> 00:07:50.920
goodies and web Essentials, thank you for your excellent work.
158
00:07:51.279 --> 00:07:54.000
Oh and Fartacus is pretty good too. Everybody at the
159
00:07:54.000 --> 00:07:55.920
officer you get a kick out of that one was
160
00:07:55.959 --> 00:07:58.399
this from the era of the fart app was that
161
00:07:58.439 --> 00:07:59.480
what Fardacus was.
162
00:07:59.720 --> 00:08:04.199
Yeah, the part is the original fart app for visual studio.
163
00:08:04.920 --> 00:08:06.920
So like you press a control key and it goes
164
00:08:07.480 --> 00:08:08.319
or something or.
165
00:08:08.360 --> 00:08:10.240
Well, of course there's a hot key, but you can
166
00:08:10.279 --> 00:08:13.319
also you set it up so that when the build fails.
167
00:08:13.319 --> 00:08:16.480
Ah, it's that or sad trombone, right.
168
00:08:18.480 --> 00:08:20.519
There are some forks of it that does like you know,
169
00:08:20.959 --> 00:08:22.360
Homer Simpson kind of.
170
00:08:22.319 --> 00:08:26.279
Oh yeah and stuff. I remember setting up a rig
171
00:08:26.759 --> 00:08:29.360
where when the build failed, it turned on a red
172
00:08:29.399 --> 00:08:33.000
flashing light and everybody on the team had nerf guns
173
00:08:33.039 --> 00:08:34.480
and you all shot the guy who wrote the bell.
174
00:08:35.759 --> 00:08:38.840
It's nice, yeah, Scott, thank you so much. Here comment
175
00:08:38.879 --> 00:08:40.399
and a copy of music Goby is on its way
176
00:08:40.440 --> 00:08:41.879
to you. And if you'd like a copy of music Cobe,
177
00:08:41.919 --> 00:08:43.799
I write a comment on the website at dot NetRocks
178
00:08:43.799 --> 00:08:45.639
dot com or on Facebook, so you publish every show
179
00:08:45.679 --> 00:08:47.200
there and if you comment there and I read it
180
00:08:47.200 --> 00:08:48.200
on the show, we'll send you a copy.
181
00:08:48.279 --> 00:08:50.519
Music go by and we're talking about music to Code by,
182
00:08:50.559 --> 00:08:52.559
which you can get at music to Code by dot net.
183
00:08:52.600 --> 00:08:57.200
We have twenty two tracks all in MP three flack
184
00:08:57.480 --> 00:09:04.039
or wave format, helping people write code since twenty sixteen.
185
00:09:04.120 --> 00:09:07.399
I can't remember when I started it, but anyway, that's it.
186
00:09:08.360 --> 00:09:10.360
So let's talk about nineteen sixty seven. Brother.
187
00:09:10.440 --> 00:09:11.600
All right, dude, where do you want to go?
188
00:09:11.679 --> 00:09:13.279
Well, first of all, we were born that year.
189
00:09:13.360 --> 00:09:16.399
My wife is born that year. That's ye happened.
190
00:09:16.440 --> 00:09:20.120
But one thing that's really important to me is this
191
00:09:20.200 --> 00:09:22.720
is when Sergeant Peppers was released.
192
00:09:22.960 --> 00:09:24.480
Yeah, right, that's true.
193
00:09:24.639 --> 00:09:28.120
One of the most iconic rock albums of all time.
194
00:09:28.279 --> 00:09:30.759
It was also a transformative album for the Beatles too,
195
00:09:30.919 --> 00:09:32.559
like it was a very different style.
196
00:09:32.720 --> 00:09:34.440
Well, they were sort of in a rut. I remember
197
00:09:34.480 --> 00:09:36.840
Paul McCartney talking about this. They were in a rut
198
00:09:37.399 --> 00:09:40.480
in Beatlemania, you know, and they wanted to break out
199
00:09:40.519 --> 00:09:44.200
of the mop top kind of image and they were
200
00:09:44.240 --> 00:09:46.799
just beside themselves. They're like, well, this is who we are.
201
00:09:47.360 --> 00:09:49.960
And Paul came up with the idea and he said,
202
00:09:50.519 --> 00:09:53.759
what if we just put on these personas and we
203
00:09:53.879 --> 00:09:57.960
wrote music from the perspective of these guys rather than
204
00:09:58.000 --> 00:10:02.240
the Beatles, Right, So looks end and it was really
205
00:10:02.320 --> 00:10:05.440
good and it broke them through. That broke them through
206
00:10:05.480 --> 00:10:09.440
their issues. So other things that happen. Of course, it
207
00:10:09.519 --> 00:10:12.720
was the summer of Love Right the Human Being in
208
00:10:12.759 --> 00:10:16.360
San Francisco on January fourteenth marked the beginning of the
209
00:10:16.399 --> 00:10:20.000
Summer of Love, attracting over two twenty thousand people celebrating
210
00:10:20.000 --> 00:10:24.879
piece of music. Vietnam War, Lynn and Johnson requested more
211
00:10:24.879 --> 00:10:26.960
funding for the Vietnam War during his State of the
212
00:10:27.039 --> 00:10:31.279
Union of Dress on January tenth. Civil Rights Thirdgod Marshall
213
00:10:31.399 --> 00:10:33.799
was confirmed as the first Black Supreme Court justice on
214
00:10:33.799 --> 00:10:38.559
August thirty, big significant milestone. I'll let you talk about
215
00:10:38.559 --> 00:10:42.279
science and space, but sure, yeah. I think Jack Ruby
216
00:10:42.360 --> 00:10:46.519
was shot on January third. I think you're a year
217
00:10:46.600 --> 00:10:50.039
too far ahead. Oh really yeah, Oh Jack Ruby's death.
218
00:10:51.240 --> 00:10:55.240
Jack Ruby, who killed Lee Harvey Oswald, died on January third. Yeah,
219
00:10:55.279 --> 00:10:57.759
so he died that year. It wasn't he didn't get shot.
220
00:10:58.600 --> 00:11:01.399
I had that backwards. What happened in space and tech?
221
00:11:01.759 --> 00:11:03.840
There's all the time. There's a lot of stuff coming
222
00:11:03.879 --> 00:11:06.879
in tech at this point, like the you know, we're
223
00:11:06.919 --> 00:11:09.240
only a year or two away from arpinnet becoming real,
224
00:11:09.399 --> 00:11:12.320
so we're just we're just getting going there. But the
225
00:11:12.440 --> 00:11:17.360
language logo is first published in nineteen sixty seven. While
226
00:11:17.360 --> 00:11:20.399
if You're say gets say more, Pact and Cynthia Solomon.
227
00:11:20.440 --> 00:11:22.360
They were working for a company called BBN, who was
228
00:11:22.440 --> 00:11:26.279
also a central part of Arpanet. Sorry, the dog, after
229
00:11:26.559 --> 00:11:28.559
being silent for hours, has decided to bark.
230
00:11:28.600 --> 00:11:30.720
Now, Oh that's all right. We have to be real
231
00:11:30.759 --> 00:11:33.240
once in a while, don't we. Yeah, little dog bark
232
00:11:33.320 --> 00:11:37.120
never heard anybody. It was logo and a particular type
233
00:11:37.120 --> 00:11:40.720
of language like function, functional or procedural or.
234
00:11:40.720 --> 00:11:45.840
It was a it was a It was an interpreted language.
235
00:11:45.879 --> 00:11:48.879
And this is where turtle graphics came from, like sort
236
00:11:48.919 --> 00:11:53.759
of vector draw on the screen. Right, Yeah, it's turtle basic. Yeah, well,
237
00:11:53.799 --> 00:11:56.879
turtle basics another thing. But this was a turtle logo.
238
00:11:56.960 --> 00:12:00.200
You used turtle graphics as much graphics. We suppose to
239
00:12:00.240 --> 00:12:02.759
be the term they called it logo from the Greek
240
00:12:02.919 --> 00:12:06.039
logos for word or thought.
241
00:12:06.799 --> 00:12:10.320
Interesting. So anything in space yeah.
242
00:12:09.960 --> 00:12:13.840
Well yeah. This is the year of the most launches
243
00:12:14.000 --> 00:12:18.799
in history until twenty twenty one until SpaceX blows the
244
00:12:18.840 --> 00:12:21.440
record out one hundred and seventy two launches during the
245
00:12:21.519 --> 00:12:23.759
Soviet Union and the United States.
246
00:12:24.000 --> 00:12:24.279
Wow.
247
00:12:24.799 --> 00:12:28.279
It's also the year of the Apollo one fire. In January,
248
00:12:28.519 --> 00:12:32.240
chrisdom and White and Chaffee lose their lives in a
249
00:12:32.279 --> 00:12:36.080
plugs out test on the stand and stops the Apollo program.
250
00:12:36.200 --> 00:12:36.399
Wow.
251
00:12:36.519 --> 00:12:38.720
For some time as they figure out the mistakes that
252
00:12:38.759 --> 00:12:40.960
they were making. There was wiring problems. They were using
253
00:12:40.960 --> 00:12:44.559
a pure auction environment, which created more risk. But it's
254
00:12:44.600 --> 00:12:47.519
also the year that they fly for surveyors, which were
255
00:12:47.600 --> 00:12:50.840
the robotic landers for the Moon, three of which will
256
00:12:50.879 --> 00:12:53.000
landsafe on the Moon. The fourth will make a what
257
00:12:53.039 --> 00:13:00.120
they call vigorous land. Also, so use one flies if
258
00:13:00.360 --> 00:13:05.120
the first Soyuz flies with a single cosmonaut, Vladimir Komarov,
259
00:13:05.120 --> 00:13:07.559
who will also lose his life after a day in
260
00:13:07.639 --> 00:13:09.960
space on the way down, the parachute on his re
261
00:13:10.080 --> 00:13:14.879
entry module failed. Any bomb did not survive, and the
262
00:13:14.960 --> 00:13:18.919
Soviets successfully get the Venera four mission after several tries
263
00:13:18.960 --> 00:13:22.799
to Venus and it lasts about ninety minutes before it melts.
264
00:13:22.879 --> 00:13:25.720
Yeah, what were they thinking, Hey, let's go to Venus.
265
00:13:26.159 --> 00:13:28.519
Well, now they were trying to You know, they taught
266
00:13:28.600 --> 00:13:32.200
us a lot. The Soviets are the only nation to
267
00:13:32.200 --> 00:13:34.879
ever land anything successfully on Venus. Oh, they did land,
268
00:13:35.159 --> 00:13:37.519
but you know, it lasted a while. It's very tough.
269
00:13:37.519 --> 00:13:39.679
Conditions are very very hot, high pressure there.
270
00:13:39.799 --> 00:13:40.000
Wow.
271
00:13:40.440 --> 00:13:42.960
And finally by the end of the year they ratify
272
00:13:43.120 --> 00:13:47.159
the Outer Space Treaty, which is especially contrapuntal today now
273
00:13:47.240 --> 00:13:49.720
because this is the treaty that says you can't own
274
00:13:49.799 --> 00:13:53.759
the Moon and no weapons in space and don't go
275
00:13:54.000 --> 00:13:56.639
setting off nukes on the moon, which is one of
276
00:13:56.639 --> 00:14:00.519
the American things. Americans considered doing was to test a
277
00:14:00.559 --> 00:14:03.320
nuclear upon on the Moon. So that doesn't happen, and
278
00:14:03.360 --> 00:14:04.879
the out of space were you're supposed to stop all that.
279
00:14:04.960 --> 00:14:06.960
Now there's a conversation about does this treaty still make
280
00:14:07.000 --> 00:14:08.960
sense because it's from nineteen sixty seven. It's a long
281
00:14:09.000 --> 00:14:11.679
time ago, and now that we're actually talking about utilizing
282
00:14:11.720 --> 00:14:14.120
resources on the moon, how do we make this work?
283
00:14:14.639 --> 00:14:17.919
Very cool? Yeah, good stuff. I think this year's geekout
284
00:14:17.960 --> 00:14:20.039
is going to be really good. Are the geek outs?
285
00:14:21.120 --> 00:14:23.639
Yeah, there's going to be a few geekouts, including when
286
00:14:23.799 --> 00:14:26.440
after this, when this show is published, I'll have already
287
00:14:26.440 --> 00:14:30.320
taken a tour of Copenhagen Atomics thorium reactors, so oh wow,
288
00:14:30.399 --> 00:14:33.200
Either I'll be dead or I'll have a phenomenal interview
289
00:14:33.200 --> 00:14:35.919
with their team talking about building thorium right, or both.
290
00:14:36.559 --> 00:14:42.200
As it turns out, you'll publish it posthumously, right, I'll
291
00:14:42.679 --> 00:14:45.679
actually there's no They're in Denmark and Denmark does not
292
00:14:45.759 --> 00:14:49.039
allow nuclear reactors, so what a great place to build one. Yeah,
293
00:14:49.360 --> 00:14:51.000
and so what I don't have a whole lot of
294
00:14:51.080 --> 00:14:53.639
risk there. They're actually making it portable enough that they're
295
00:14:53.639 --> 00:14:57.279
going to take it to Switzerland to operate it as
296
00:14:57.279 --> 00:14:59.240
a test run. Then they're allowed to bring it back
297
00:14:59.279 --> 00:15:02.279
as long as it's not operating and do some tests
298
00:15:02.720 --> 00:15:05.320
evaluations of it. So that's what's going to be good
299
00:15:05.519 --> 00:15:07.960
with that. But yeah, no exciting times. Don't worry the fall.
300
00:15:08.240 --> 00:15:10.159
This winter's geek outs will be big, yeah, and there
301
00:15:10.159 --> 00:15:11.120
may be a few extra ones.
302
00:15:11.200 --> 00:15:13.279
Yeah, all right, and with that, let's bring on Mads.
303
00:15:13.480 --> 00:15:16.279
Mads Christiansen is a program manager on the Visual Studio
304
00:15:16.320 --> 00:15:19.399
team at Microsoft, with the privilege to work with the
305
00:15:19.559 --> 00:15:24.320
extension community and ecosystem. He's an avid extension writer himself,
306
00:15:24.360 --> 00:15:27.919
with over one hundred published extensions to Visual Studio Marketplace.
307
00:15:28.279 --> 00:15:31.440
Before joining Microsoft, he spent a decade as a web developer,
308
00:15:31.519 --> 00:15:35.039
working at both startups and enterprise companies. His wife and
309
00:15:35.120 --> 00:15:38.200
two young sons all enjoy and support his adventures in
310
00:15:38.279 --> 00:15:40.879
the world of home automation. Welcome back mads.
311
00:15:41.039 --> 00:15:42.799
Hey, guys, glad to be here.
312
00:15:42.879 --> 00:15:44.679
You mad extension writer. You.
313
00:15:45.200 --> 00:15:48.000
I think we're over two hundred now, wow, crazy, got
314
00:15:48.000 --> 00:15:50.360
to update your bios. You are the marketplace, sir.
315
00:15:51.960 --> 00:15:52.480
That's right.
316
00:15:53.480 --> 00:15:56.519
Yeah, I don't know. There's a lot of extensions out there.
317
00:15:56.480 --> 00:15:58.879
So far be it from me to use dot net
318
00:15:59.000 --> 00:16:01.360
rocks as a place where I can get a personal
319
00:16:01.399 --> 00:16:04.240
answer about some feature that I want in visual studio.
320
00:16:04.480 --> 00:16:05.639
But I'm going to do it anyway.
321
00:16:05.720 --> 00:16:06.399
Yeah, go ahead.
322
00:16:06.639 --> 00:16:09.879
So I've noticed, you know, I'm a Blazer developer mostly,
323
00:16:10.559 --> 00:16:13.879
and when I'm building a web application, I noticed that
324
00:16:14.399 --> 00:16:19.120
every time I hit play, the position and size of
325
00:16:19.200 --> 00:16:24.039
the browser that comes up is automatically set something to
326
00:16:24.120 --> 00:16:28.200
where the last browser window that had focus is. And
327
00:16:28.240 --> 00:16:31.360
it drives me absolutely nuts. And because you know, I've
328
00:16:31.399 --> 00:16:33.919
got windows all over the place, and if I click
329
00:16:33.960 --> 00:16:36.519
on the one to mute the TV that I'm watching,
330
00:16:36.919 --> 00:16:39.039
and then I go back and press play, now it's
331
00:16:39.159 --> 00:16:42.879
over the TV window, right. So I wanted to know
332
00:16:42.919 --> 00:16:46.879
if there's an extension that you've created to automatically set
333
00:16:46.879 --> 00:16:49.039
the position and location of a browser every time you
334
00:16:49.120 --> 00:16:49.440
run it.
335
00:16:49.679 --> 00:16:53.320
Well, no, I have not written anything for it, but
336
00:16:53.759 --> 00:16:56.919
this is I don't know how this is, like it
337
00:16:56.960 --> 00:16:58.600
happens to me too when it has nothing to do
338
00:16:58.600 --> 00:17:01.879
with Mitchell Studio. Right, but if you have multiple you know,
339
00:17:02.000 --> 00:17:04.200
edge browsers open, you have one for your work account
340
00:17:04.240 --> 00:17:06.200
and one for your private or whatever, right, and you
341
00:17:06.279 --> 00:17:08.480
then click a link and outlook, Yeah, it will open
342
00:17:08.559 --> 00:17:10.279
it in the last browser you had active.
343
00:17:10.440 --> 00:17:13.359
Yeah, so it's a browser thing. But surely there must
344
00:17:13.400 --> 00:17:16.039
be a way to tell the browser. Yeah, open it here,
345
00:17:16.240 --> 00:17:17.559
like in JavaScript or something.
346
00:17:17.680 --> 00:17:19.599
Yeah, and really you don't want to even doc that,
347
00:17:20.000 --> 00:17:23.200
you know, the tap It should just be its own thing, right, Yeah? Yeah,
348
00:17:23.920 --> 00:17:25.640
did you? I don't. I don't know if we I've
349
00:17:25.680 --> 00:17:28.319
never seen this request before, but that doesn't mean it
350
00:17:28.319 --> 00:17:30.960
doesn't exist. If it does exist, you should vote for
351
00:17:31.000 --> 00:17:31.759
it or create it.
352
00:17:31.799 --> 00:17:34.160
I entered it as a suggestion in the Visual Studio.
353
00:17:34.319 --> 00:17:37.000
There's a link too. Yeah I did that. I haven't
354
00:17:37.000 --> 00:17:39.200
heard back yet. I just didn't know. I went looking
355
00:17:39.279 --> 00:17:41.039
and I didn't see anything. But I figured, you know,
356
00:17:41.079 --> 00:17:43.519
if anybody knows Mad's nos, Yeah, so.
357
00:17:43.599 --> 00:17:45.400
Make sure you put a link in so that everyone,
358
00:17:45.440 --> 00:17:46.799
any listener can go and vote.
359
00:17:46.599 --> 00:17:50.240
For There you go, Yeah, leverage leverage the podcast friend
360
00:17:50.759 --> 00:17:52.519
if you get it voted up to the top, you know,
361
00:17:52.559 --> 00:17:54.480
then they're they're going to talk about it. Oh yeah,
362
00:17:54.519 --> 00:17:56.599
that's cool, that is their priority list.
363
00:17:56.680 --> 00:17:59.759
Yeah, well, we don't know. Sometimes you see something like
364
00:17:59.799 --> 00:18:02.119
this and you think, oh, yeah, this is not going
365
00:18:02.200 --> 00:18:03.880
to be that hard to do, right, Yeah, and then
366
00:18:03.920 --> 00:18:06.400
it turns out it's really really hard to do. Right.
367
00:18:06.400 --> 00:18:08.519
So even though you are able to vote something up
368
00:18:08.519 --> 00:18:11.119
to the top, that doesn't guarantee that we can do
369
00:18:11.160 --> 00:18:13.079
it if it's like really expensive.
370
00:18:13.000 --> 00:18:15.559
Right, or or we don't know how well, and you
371
00:18:15.599 --> 00:18:18.240
always have the niche problem, right, like a certain group
372
00:18:18.279 --> 00:18:20.599
of people really want this, but it represents a tiny
373
00:18:20.640 --> 00:18:23.720
amount of the customer base, Like there's always got to
374
00:18:23.759 --> 00:18:26.000
be a waiting on those kinds of Well, it depends.
375
00:18:26.000 --> 00:18:27.880
I think it's one of those features that people don't
376
00:18:27.920 --> 00:18:30.880
know they need it until they get frustrated enough and
377
00:18:30.920 --> 00:18:32.880
say what the heck right exactly?
378
00:18:33.400 --> 00:18:35.440
And we usually say that, you know, one vote or
379
00:18:35.480 --> 00:18:38.599
one bug represent a thousand people.
380
00:18:39.119 --> 00:18:40.680
Yeah, so yeah, it won't.
381
00:18:40.720 --> 00:18:43.039
It doesn't have that many people like or it's a
382
00:18:43.039 --> 00:18:46.000
small niche. Let's say it's only five percent of you know,
383
00:18:46.079 --> 00:18:48.519
Visual Studios user base or whatever, but that's still like
384
00:18:48.640 --> 00:18:53.359
hundreds of thousands of people, right right, So it's important
385
00:18:53.359 --> 00:18:55.359
that you know even the small things are big just
386
00:18:55.359 --> 00:18:58.599
because we're dealing with like millions of monthly active users,
387
00:18:58.680 --> 00:18:59.480
right right right.
388
00:18:59.880 --> 00:19:02.440
I heard that you guys are I don't know who
389
00:19:02.480 --> 00:19:06.160
you guys is, but Microsoft engineers are required to look
390
00:19:06.160 --> 00:19:09.240
at that list twice a week and actually look at
391
00:19:09.240 --> 00:19:11.119
all the new suggestions.
392
00:19:11.640 --> 00:19:14.680
Yeah we so we don't really have a requirement for that,
393
00:19:15.000 --> 00:19:19.759
but we are required to fix any high important bugs
394
00:19:19.799 --> 00:19:22.279
like P one' or P two priority one or zero
395
00:19:22.400 --> 00:19:25.559
bugs okay, and they have we have an whole SLA,
396
00:19:26.599 --> 00:19:29.200
like a service license agreement there with like that we
397
00:19:29.319 --> 00:19:32.039
have to fix them for the next service release that
398
00:19:32.079 --> 00:19:36.839
we that we publish like on a weekly basis. So yeah,
399
00:19:36.839 --> 00:19:40.400
we take that stuff really seriously. So you probably can't
400
00:19:40.400 --> 00:19:42.759
do that without looking at your list of bugs twice
401
00:19:42.759 --> 00:19:46.359
a week. But there's no requirement for looking at the list.
402
00:19:46.480 --> 00:19:51.680
The requirement is to fix them. Yeah, but that's for bugs,
403
00:19:51.720 --> 00:19:52.920
that's not for feature requests.
404
00:19:53.079 --> 00:19:55.720
Oh right, yeah, yeah, this is this is just the
405
00:19:55.759 --> 00:19:58.519
suggestion list, I guess future requests list.
406
00:19:58.640 --> 00:20:04.240
Yeah, yeah, well we have actually do we do implement
407
00:20:04.480 --> 00:20:07.079
one point two feature requests per workday.
408
00:20:07.480 --> 00:20:07.759
Wow.
409
00:20:07.799 --> 00:20:10.000
If you look at the average of the last twelve months, wow,
410
00:20:10.039 --> 00:20:11.480
and that that trend is going up.
411
00:20:11.920 --> 00:20:14.680
Wow. Are you guys going faster or are they get
412
00:20:14.720 --> 00:20:17.759
requests getting easier? Like, how do you get that quest? No?
413
00:20:18.319 --> 00:20:19.680
I think it's a little bit of a mind shift.
414
00:20:19.680 --> 00:20:21.160
I don't know if you've noticed it over the last
415
00:20:21.200 --> 00:20:25.680
two or three years. But things that before wasn't prioritized
416
00:20:25.720 --> 00:20:29.039
because it was maybe had low impact, Like some bugs
417
00:20:29.039 --> 00:20:30.720
come in or some feature requests come in and they
418
00:20:30.799 --> 00:20:34.519
kind of have low impact. They don't you know, some
419
00:20:34.599 --> 00:20:37.079
of these suggestions were not like something that would open
420
00:20:37.119 --> 00:20:41.000
new scenarios. They might just be like little delighters or hey,
421
00:20:41.000 --> 00:20:43.200
it would be nice if but they weren't like blocking
422
00:20:43.279 --> 00:20:45.000
you for doing what you needed to do. And we
423
00:20:45.400 --> 00:20:48.920
had a hard time prioritizing that type of feature request
424
00:20:48.960 --> 00:20:51.440
in the past, whereas now it's a little different because
425
00:20:51.759 --> 00:20:54.160
you know, when you're using visual studio eight ten hours
426
00:20:54.200 --> 00:20:57.319
a day, you're using half your waken live in visual studio, right,
427
00:20:57.359 --> 00:21:02.799
it's kind of crazy. So all these little things, because
428
00:21:02.799 --> 00:21:05.279
you're using it so much, they become big and they're
429
00:21:05.279 --> 00:21:09.839
big things. And so by kind of making that change,
430
00:21:10.079 --> 00:21:13.039
of mindset a little bit to look at things differently.
431
00:21:14.519 --> 00:21:17.279
We've been able to double down on a bunch of
432
00:21:17.279 --> 00:21:20.640
the small issues and a bunch of the small like
433
00:21:20.680 --> 00:21:25.519
paper cuts, industry standard things, muscle memory issues that didn't
434
00:21:25.559 --> 00:21:29.240
before carry over from other apps into Visual Studio for shortcuts,
435
00:21:29.240 --> 00:21:32.359
for instance, like just taking them one out of time,
436
00:21:32.480 --> 00:21:34.759
Like let's just double down on that type of stuff,
437
00:21:34.799 --> 00:21:39.480
and you know it. I think the shift is if
438
00:21:39.599 --> 00:21:42.359
you know, this sounds super cliche, but the shift I
439
00:21:42.359 --> 00:21:45.519
think has gone a little bit from focusing, you know,
440
00:21:45.640 --> 00:21:50.599
primarily on productivity and instead of focusing more on happiness,
441
00:21:50.759 --> 00:21:54.079
like developer happiness. You can't be happy developer if you're
442
00:21:54.079 --> 00:21:56.960
not productive. So it includes the productivity thing, but it's more.
443
00:21:57.079 --> 00:22:00.000
It's also about like are you looking forward to working
444
00:22:00.000 --> 00:22:01.000
studio every morning?
445
00:22:01.079 --> 00:22:01.240
Right?
446
00:22:01.559 --> 00:22:05.559
Is there a smile on your face? Do you feel empowered? Inspired, creative?
447
00:22:06.759 --> 00:22:08.680
This vis studio kind of get out of the way
448
00:22:09.359 --> 00:22:12.200
when it needs to and help you when that's a requirement,
449
00:22:12.640 --> 00:22:14.200
like all that type of stuff.
450
00:22:14.400 --> 00:22:15.279
I've got issues.
451
00:22:16.720 --> 00:22:18.319
We all have issues, probably.
452
00:22:18.559 --> 00:22:21.519
Probably nothing to do with what you work on, but
453
00:22:21.799 --> 00:22:24.960
isn't me or has GitHub co pilot just completely taken
454
00:22:25.000 --> 00:22:29.319
over like now I start typing a variable and it
455
00:22:29.319 --> 00:22:34.079
gives me this long thing and there are gray letters
456
00:22:34.119 --> 00:22:37.000
in there that are like and as I'm typing, like,
457
00:22:37.079 --> 00:22:39.440
it's I don't even know when I'm typed, I have
458
00:22:39.519 --> 00:22:43.079
no idea what's going on. It's gotten so crazy. Yeah,
459
00:22:43.240 --> 00:22:45.400
and I know you can control that, but.
460
00:22:45.720 --> 00:22:48.079
So you can control it now. So what we're adding
461
00:22:48.960 --> 00:22:52.640
is a way for that not to happen automatically, but
462
00:22:52.759 --> 00:22:54.799
only at a keyboard short cut. So instead of having
463
00:22:54.880 --> 00:22:57.920
it automatically show up, it can be only when you
464
00:22:58.000 --> 00:22:59.279
request ith.
465
00:22:59.319 --> 00:23:00.640
Okay, I like, so.
466
00:23:00.640 --> 00:23:02.880
You you you can control more of that because some
467
00:23:02.880 --> 00:23:06.319
people they really like kind of that feeling of just
468
00:23:06.400 --> 00:23:09.240
tapping their way through and and other people they really
469
00:23:09.319 --> 00:23:11.880
want not to have that. And so now you can
470
00:23:11.920 --> 00:23:14.160
figure it. You can. You can now customize it.
471
00:23:14.160 --> 00:23:15.079
How about a foot switch?
472
00:23:16.319 --> 00:23:17.920
Yeah you can do on off. Yeah you can do that.
473
00:23:18.000 --> 00:23:20.559
I love I love foot switches. I'm a musician, right,
474
00:23:20.599 --> 00:23:23.240
so I have guitar pedals and stuff, but you know,
475
00:23:23.440 --> 00:23:26.440
if I had a little pedal board under my you know,
476
00:23:27.000 --> 00:23:30.319
to to Oh, I want that feature. I want that feature,
477
00:23:30.400 --> 00:23:35.960
these momentary on off toggles, that'd be so cool. Somebody
478
00:23:36.000 --> 00:23:36.359
should do.
479
00:23:36.359 --> 00:23:39.079
That, that'd be the equivalent of a distortion distortion pedal.
480
00:23:39.119 --> 00:23:41.160
There you go, yeah, exactly. You know I'd add some
481
00:23:41.240 --> 00:23:44.759
distortion to my to my API controllers.
482
00:23:44.960 --> 00:23:48.599
Yes, yeah, you know a lot of a lot of
483
00:23:48.680 --> 00:23:50.559
effort goes into it. And the new version of visual
484
00:23:50.599 --> 00:23:53.400
Studio here is like it's a big foundational upgrade when
485
00:23:53.440 --> 00:23:57.119
it comes to to AI. So with with visual Studio,
486
00:23:57.160 --> 00:23:59.839
we are in a unique position where we know a
487
00:23:59.839 --> 00:24:04.079
lot about all the different aspects off your workflow. We
488
00:24:04.160 --> 00:24:06.759
know about your GET issues, it's your tracker. We know
489
00:24:06.839 --> 00:24:10.839
about profiling and debugging and unit testing, and maybe we
490
00:24:10.880 --> 00:24:13.519
know about your CICD, and we know about your let's say,
491
00:24:13.559 --> 00:24:18.079
ASTRA deployment environments and whatnot. And so the more we
492
00:24:18.119 --> 00:24:21.720
know and the more Copiled is able to understand, the
493
00:24:21.759 --> 00:24:25.599
more useful it can become. And so this is really
494
00:24:25.680 --> 00:24:28.359
kind of one of those foundational updates that kind of
495
00:24:28.960 --> 00:24:32.279
infrastructure wise sets us up for the future and for
496
00:24:32.359 --> 00:24:36.559
adding features on top that's like way more that goes
497
00:24:36.599 --> 00:24:39.160
way deeper and just more helpful.
498
00:24:39.240 --> 00:24:43.599
And are you guys, guidance seems to be like an issue,
499
00:24:43.599 --> 00:24:46.160
But then again, I don't go looking for it. I'm
500
00:24:46.200 --> 00:24:49.079
so spoiled by chatch ept searching the web for me
501
00:24:49.160 --> 00:24:51.880
that I'm really disappointed when I go to Google and
502
00:24:51.920 --> 00:24:55.680
I type something and I don't get like good results,
503
00:24:55.880 --> 00:24:59.119
you know. So like a video that explains how to
504
00:24:59.240 --> 00:25:04.039
control co pilot, I'm sure is out there. I'm just
505
00:25:04.359 --> 00:25:06.640
conditioned to not go look for it.
506
00:25:06.759 --> 00:25:09.480
Yeah, it's out there, and a lot more will come.
507
00:25:10.519 --> 00:25:12.359
But yeah, there's a bunch of great videos out there
508
00:25:12.400 --> 00:25:15.240
already and articles and tutorials and whatnot.
509
00:25:15.279 --> 00:25:16.960
Oh I know, yeah that's good stuff.
510
00:25:17.000 --> 00:25:19.200
But I think but it's an interesting thing, right because
511
00:25:19.279 --> 00:25:23.599
the question is always like why do you need why
512
00:25:23.640 --> 00:25:26.640
do you need a description of how to do something right?
513
00:25:26.680 --> 00:25:29.680
It should be autodiscoverable just by the way you design
514
00:25:29.720 --> 00:25:30.200
the software.
515
00:25:30.240 --> 00:25:32.400
Well yeah, more importantly, if you know how to do it,
516
00:25:32.599 --> 00:25:33.480
just do it right.
517
00:25:34.279 --> 00:25:35.519
Yeah that's another thing.
518
00:25:36.000 --> 00:25:37.799
Can we skip over? They don't explain this to me,
519
00:25:37.920 --> 00:25:40.400
just do it? Phase Like, yeah, I'm tired, I got
520
00:25:40.400 --> 00:25:42.039
stuff to do, Like, let's move on. Yeah.
521
00:25:42.079 --> 00:25:45.119
I mean I suppose you could use the copilot agent,
522
00:25:45.960 --> 00:25:48.680
you know, or chat in visual studio to help you
523
00:25:49.039 --> 00:25:51.519
figure those things out. I find that to be a
524
00:25:51.680 --> 00:25:52.680
very valuable tool.
525
00:25:52.960 --> 00:25:55.960
Yeah, And you know, but sometimes the best prompt is
526
00:25:56.039 --> 00:25:59.119
no prompt. So that's that's when you have a let's
527
00:25:59.119 --> 00:26:00.720
say you have a button that us or it comes
528
00:26:00.799 --> 00:26:02.839
up automatically, and so we have we have that in
529
00:26:02.960 --> 00:26:05.200
Ryan Vischoustudo. You're going to see more of that, whereas
530
00:26:05.240 --> 00:26:08.440
not the burden on prompting and knowing how to use
531
00:26:08.480 --> 00:26:11.839
it is no no longer on you. Yeah, it's like
532
00:26:12.039 --> 00:26:13.839
if you if you want to write a commit message,
533
00:26:13.839 --> 00:26:16.359
there's a button there. There's a generate commit message, right,
534
00:26:16.440 --> 00:26:18.480
and so you don't have to prompt, you just click
535
00:26:18.519 --> 00:26:20.880
a button. That makes it easy, right. Or we just
536
00:26:20.920 --> 00:26:23.599
released a new way of optimizing your code, so you
537
00:26:23.640 --> 00:26:25.720
can you can just make a selection of your c
538
00:26:25.839 --> 00:26:28.599
sharp or whatever or VB and then you can say, hey,
539
00:26:28.680 --> 00:26:31.559
rite click and say optimize this code, and you don't
540
00:26:31.599 --> 00:26:33.720
have to prompt because what are you optimizing for? Like
541
00:26:34.240 --> 00:26:37.000
is it PERF? Is it readability? Is it quality? What
542
00:26:37.119 --> 00:26:39.720
is it? You know, exception handling like or something like
543
00:26:39.759 --> 00:26:43.039
what is it? And so that burden of prompting and
544
00:26:44.039 --> 00:26:45.720
kind of if we can take that away and make
545
00:26:45.759 --> 00:26:48.839
it so that there's no prompt at all, then you're
546
00:26:48.839 --> 00:26:51.359
probably in many in many cases, you're going to be faster,
547
00:26:51.440 --> 00:26:53.759
and you're going to but faster and more accurate, but
548
00:26:53.799 --> 00:26:56.799
you're also going to be it's also going to be
549
00:26:56.799 --> 00:26:58.039
discoverable that you can do this.
550
00:26:58.720 --> 00:27:01.160
Yeah, that's the challenge is how do you tell me
551
00:27:01.240 --> 00:27:03.920
you could optimize that code within it out interrupting me
552
00:27:04.039 --> 00:27:05.440
or annoying me in the process.
553
00:27:06.160 --> 00:27:09.480
That is the challenge. Yeah, exactly, and it becomes clippy
554
00:27:09.599 --> 00:27:10.720
right otherwise.
555
00:27:11.799 --> 00:27:14.480
Yeah, that's right, that's always the dance for us. Right,
556
00:27:14.519 --> 00:27:19.440
It's like I all the studio does is better than anybody.
557
00:27:19.480 --> 00:27:22.400
But all those little icons and floaties and squiggles, but
558
00:27:22.480 --> 00:27:27.160
all these little clues that hey I know something about
559
00:27:27.200 --> 00:27:28.920
your code you may not know.
560
00:27:29.519 --> 00:27:33.039
And if you install code Rush, now you're at another
561
00:27:33.160 --> 00:27:36.839
level of icon crazy, right, Yeah, talking about.
562
00:27:36.960 --> 00:27:39.160
Well, you know what they say, clippy walk so Copela
563
00:27:39.160 --> 00:27:39.559
can run.
564
00:27:39.720 --> 00:27:44.960
There you go, and took a lot of flak in
565
00:27:45.000 --> 00:27:45.680
the process.
566
00:27:46.440 --> 00:27:51.400
I still remember this on this quiz show wait wait,
567
00:27:51.440 --> 00:27:54.440
don't tell me on NPR. You know, Adam Felber is
568
00:27:54.480 --> 00:27:58.960
a comedian and he's on there, and when Microsoft announced
569
00:27:58.960 --> 00:28:02.480
that they were getting rid of Clippy, right, that Clippy
570
00:28:02.640 --> 00:28:07.640
was was dead Adam Felbery because hey, I see you're
571
00:28:07.680 --> 00:28:09.880
digging a grave? Is that a business grave or a
572
00:28:09.880 --> 00:28:11.839
personal grave? Can I help you dig that?
573
00:28:15.440 --> 00:28:16.079
Can I help you?
574
00:28:16.960 --> 00:28:20.680
It's funny, Richard. Maybe you remember there was a conference
575
00:28:20.680 --> 00:28:23.000
where there was we had someone in the Clippy costume
576
00:28:23.039 --> 00:28:23.599
walk around.
577
00:28:23.680 --> 00:28:26.359
Oh yeah, I remember that, and it was immensely popular.
578
00:28:26.400 --> 00:28:28.000
Everybody walked up in high five.
579
00:28:27.880 --> 00:28:30.680
Hugely powered. Everybody loves Clippy. But it's like, yeah, because
580
00:28:30.680 --> 00:28:31.279
it's a meme.
581
00:28:31.480 --> 00:28:33.680
Yeah totally. It's like comic sense.
582
00:28:33.799 --> 00:28:36.559
Yeah, yes, except that it feels good when you punch.
583
00:28:36.599 --> 00:28:38.400
It wasn't meant to be serious. I don't know why
584
00:28:38.400 --> 00:28:39.880
you're using it, Like, what are you thinking?
585
00:28:40.640 --> 00:28:43.000
I use it in a PowerPoint presentation sometimes and it
586
00:28:43.079 --> 00:28:43.759
throws people off.
587
00:28:43.799 --> 00:28:45.640
Well, and if we wanted to do even more O
588
00:28:45.799 --> 00:28:49.480
pick Rob references. We talk about Windows Bob because at
589
00:28:49.599 --> 00:28:52.880
least one of the Clippy characters was that dog from Bob,
590
00:28:53.200 --> 00:28:56.359
designed by the same person, Glenda Gates. I think you
591
00:28:56.400 --> 00:28:59.680
know when you can use those characters, Yeah it was yeah, Melinda, Yeah,
592
00:28:59.720 --> 00:29:01.359
I don't know that she did clipp.
593
00:29:01.079 --> 00:29:03.640
You it was a wizard as well. It was one
594
00:29:03.640 --> 00:29:06.359
of the characters that you could use those characters from
595
00:29:06.400 --> 00:29:09.240
from back then, there was a remember for Internet Explore.
596
00:29:09.240 --> 00:29:14.319
That was the Yeah, there was a called the Microsoft Agent.
597
00:29:14.440 --> 00:29:17.160
Yeah, the Agent, Yes, and you could with JavaScript or
598
00:29:17.200 --> 00:29:19.400
VBScript probably be you could, like.
599
00:29:20.559 --> 00:29:24.240
I actually used that in an early online training tool
600
00:29:24.279 --> 00:29:26.839
that I wrote, which characters the Wizard. But you could
601
00:29:27.039 --> 00:29:29.680
use whatever you wanted to. But the idea is you
602
00:29:29.720 --> 00:29:31.839
could program him to fly around on the screen and
603
00:29:31.880 --> 00:29:36.039
point to things and explain stuff. So yeah, that didn't
604
00:29:36.119 --> 00:29:38.519
last time. It was fun while it lasted, but it
605
00:29:38.559 --> 00:29:39.279
didn't last.
606
00:29:39.440 --> 00:29:42.039
Yeah, but you know, these all feel like attempts now
607
00:29:42.079 --> 00:29:46.039
to what these ll ms can do for us.
608
00:29:46.319 --> 00:29:49.519
Yeah, it's really impressive. So we have I think there's
609
00:29:49.559 --> 00:29:53.079
like a couple of categories of where this is, where
610
00:29:53.119 --> 00:29:57.079
this is useful. So one is where we can learn
611
00:29:57.119 --> 00:29:59.720
and we become better developers. So let me take you
612
00:29:59.799 --> 00:30:02.440
a example. Is the new Profiler Agent, which is the
613
00:30:02.440 --> 00:30:06.200
one feature we're building on top of this foundational infrastructure
614
00:30:06.279 --> 00:30:10.160
change in Visual Studio twenty twenty six, and it's the
615
00:30:10.200 --> 00:30:13.839
Profiler Agent is able to run the profiler in Visual Studio,
616
00:30:13.880 --> 00:30:15.720
which we've had for a long time, but very few
617
00:30:15.720 --> 00:30:18.799
people use it. It's kind of hard to it's an
618
00:30:18.839 --> 00:30:21.599
advanced concept. It's not easy to kind of understand. But
619
00:30:21.720 --> 00:30:23.960
this new agent can do it for you. And it
620
00:30:24.039 --> 00:30:27.160
can write benchmarks like using benchmark dot net. Wow, it
621
00:30:27.200 --> 00:30:30.319
will add benchmark or run if there's existing ones, and
622
00:30:30.359 --> 00:30:32.880
it can then find the hot paths. Then it can
623
00:30:32.920 --> 00:30:34.559
give you a laundrylease stuff. Here's what I want to
624
00:30:34.599 --> 00:30:38.000
do to optimize performance. It can then simulate that with
625
00:30:38.079 --> 00:30:40.880
the and then run the new and run the benchmarks
626
00:30:40.880 --> 00:30:43.759
again to see what the performance benefit will be. And
627
00:30:43.799 --> 00:30:47.119
then you can just tell okay, go ahead, or if
628
00:30:47.119 --> 00:30:49.559
there's something that you don't understand because that's the problem.
629
00:30:49.599 --> 00:30:52.279
Even if you run the profiler and it says, hey,
630
00:30:52.480 --> 00:30:54.880
this line is very expensive or this method call is
631
00:30:54.960 --> 00:30:58.839
very expensive, how do you know how to optimize it? Right?
632
00:30:58.880 --> 00:31:01.440
All right? Yeah, it's like okay, the software has criticized me.
633
00:31:02.000 --> 00:31:06.200
Now what yeah, now what yeah, exactly, it found my problems.
634
00:31:06.279 --> 00:31:08.359
Now what are the solutions? Right? It didn't help me there,
635
00:31:09.000 --> 00:31:11.240
but now you get that help and so you know,
636
00:31:11.240 --> 00:31:13.440
it could be you know, maybe I have a dictionary
637
00:31:13.480 --> 00:31:15.319
that I use a linquery on and it says, hey,
638
00:31:15.400 --> 00:31:17.160
if you use a hasset, we're going to be eighty
639
00:31:17.200 --> 00:31:22.640
percent faster in this particular case, and you'll be like, oh,
640
00:31:23.200 --> 00:31:26.039
that's neat next time I run into a similar scenario,
641
00:31:26.119 --> 00:31:28.839
I'm going to remember this hasset thing. And so you
642
00:31:28.960 --> 00:31:31.519
learn along the way. And so I really like that
643
00:31:31.680 --> 00:31:35.160
idea where the copole comes in sits beside you kind
644
00:31:35.160 --> 00:31:39.079
of and and you kind of get to that destination.
645
00:31:38.640 --> 00:31:40.720
Together makes you a better developer, You become better.
646
00:31:40.839 --> 00:31:43.240
Yeah, you know this reminds me of the old optimizing
647
00:31:43.279 --> 00:31:46.000
website stags. We're using the profiling tools to see that
648
00:31:46.079 --> 00:31:51.400
locus of concentration, Like, hey, this is a big expensive process,
649
00:31:51.440 --> 00:31:53.200
but it only gets run once an hour, so we're
650
00:31:53.200 --> 00:31:55.599
not going to optimize that. But this little thing, this
651
00:31:55.640 --> 00:31:58.759
settle thing, is being running four hundred times a second,
652
00:31:58.880 --> 00:32:01.720
and if we can shave one hundred milliseconds out of it,
653
00:32:01.720 --> 00:32:02.599
it's worth it.
654
00:32:02.359 --> 00:32:02.480
Now.
655
00:32:02.640 --> 00:32:05.759
Is there such a thing as an agent that understands
656
00:32:06.920 --> 00:32:09.799
SEQL and SQL profiling, because I would love to turn
657
00:32:09.839 --> 00:32:12.279
that loose on you know, hey, why is this query
658
00:32:12.359 --> 00:32:13.799
taking so long? And what?
659
00:32:14.079 --> 00:32:14.279
Yeah?
660
00:32:14.279 --> 00:32:15.680
I think you know what index do?
661
00:32:15.839 --> 00:32:17.920
Is? What indexes do I need to add to make
662
00:32:17.960 --> 00:32:18.559
it work better?
663
00:32:18.880 --> 00:32:20.839
That kind of thing that might be in for as
664
00:32:20.880 --> 00:32:22.920
as a mess. Yeah, if you looked at the Latest
665
00:32:22.960 --> 00:32:24.720
Days is a mess I have.
666
00:32:24.759 --> 00:32:27.599
Yeah, and I know it's based on the whole visual studio,
667
00:32:28.200 --> 00:32:33.119
you know, fundamental environment, So did also have those.
668
00:32:33.240 --> 00:32:35.680
I haven't played with it for a mess twenty one
669
00:32:36.319 --> 00:32:41.000
twenty two preview. You might see something more updated there
670
00:32:41.000 --> 00:32:43.079
in that regard. I'm not sure. I haven't followed along
671
00:32:43.079 --> 00:32:43.359
that course.
672
00:32:43.480 --> 00:32:46.960
Yeah, there's a twenty five coming that's likely out in November,
673
00:32:47.119 --> 00:32:50.319
not that I know anything, but I'm speculating because that's
674
00:32:50.359 --> 00:32:51.920
when they would normally ship it.
675
00:32:51.920 --> 00:32:54.440
It should be in preview by the time the airs.
676
00:32:54.279 --> 00:32:57.480
Somewhere in the quote unquote ignite time frame. And I
677
00:32:57.480 --> 00:32:58.839
imagine there's going to be all kinds of.
678
00:32:58.799 --> 00:33:01.799
Imagine there's going to be more a tooling seems like,
679
00:33:01.920 --> 00:33:04.839
you know that's where development is heading is in you know,
680
00:33:04.920 --> 00:33:06.599
the innovation is happening in AI.
681
00:33:06.759 --> 00:33:09.440
Well, there's all the new helpers, right like we saw
682
00:33:09.480 --> 00:33:11.920
this extensively with Microsoft Fabric. Not to go too far
683
00:33:12.000 --> 00:33:16.000
off track here, but because Fabric touches so many different tools.
684
00:33:16.039 --> 00:33:19.440
When you're doing data analytics and you've got POWERBI and
685
00:33:19.480 --> 00:33:22.799
the data warehousing clients and these different storage mechanisms in
686
00:33:22.839 --> 00:33:25.240
the lake and so forth, each one you don't use
687
00:33:25.319 --> 00:33:27.000
enough to be really proficient with so the fact that
688
00:33:27.079 --> 00:33:28.960
it was a copilot at each layer, it's like, what'd
689
00:33:29.000 --> 00:33:31.039
you want to do? Let me help you there, Like
690
00:33:31.480 --> 00:33:32.400
it's really powerful.
691
00:33:32.440 --> 00:33:34.559
It seems like a good time to take a break. Yeah,
692
00:33:34.640 --> 00:33:37.400
So we'll be right back after these very important messages.
693
00:33:37.559 --> 00:33:42.480
Stay tuned. Did you know you can easily migrate asp
694
00:33:42.640 --> 00:33:46.799
net web apps to Windows containers on AWS? Use the
695
00:33:46.920 --> 00:33:51.319
app to Container tool to containerize your iis websites and
696
00:33:51.359 --> 00:33:56.759
deploy to AWS managed container services with or without Kubernetes.
697
00:33:57.119 --> 00:34:01.039
Find out more about app to Container and aw dot Amazon,
698
00:34:01.119 --> 00:34:08.760
dot Com, Slash, dot Net, slash Modernize, and we're back.
699
00:34:08.800 --> 00:34:12.360
It's dot net Rocks. I'm Carl Franklin's my friend Richard Campbell. Hey,
700
00:34:12.400 --> 00:34:16.960
and that's our friend Mads Christensen, the Mad indentist of
701
00:34:18.480 --> 00:34:19.960
Visual Studio Extensions.
702
00:34:20.480 --> 00:34:23.280
And Mad's you said, Studio twenty twenty six. So is
703
00:34:23.320 --> 00:34:25.880
this official? What are we expecting in the version of
704
00:34:25.920 --> 00:34:26.840
Studio next year?
705
00:34:27.039 --> 00:34:28.079
No, it's out in preview.
706
00:34:28.440 --> 00:34:30.239
It is okay, so it's not next year, it's like
707
00:34:30.440 --> 00:34:34.280
imminently right now. One would speculate because there's certain events
708
00:34:34.280 --> 00:34:35.639
coming up towards the end of the year.
709
00:34:35.880 --> 00:34:39.440
Hey, but you know, I'm not in the business of speculation, no, so,
710
00:34:40.159 --> 00:34:42.400
but you know we when did we ship visuals do
711
00:34:42.519 --> 00:34:43.360
to twenty twenty.
712
00:34:43.119 --> 00:34:46.719
Two in fall of twenty one? As I recall, maybe, yeah,
713
00:34:46.760 --> 00:34:49.320
so I'm just doing math. How much did the whole
714
00:34:49.360 --> 00:34:51.760
AI wave derail? You guys, Like, I don't envy your
715
00:34:51.800 --> 00:34:54.519
situation because you push that out in the fall of
716
00:34:54.599 --> 00:35:00.079
twenty twenty one. Chat GBT is the next year, and
717
00:35:00.480 --> 00:35:02.920
you know, get Hub Copilot's already out, So that's a
718
00:35:02.960 --> 00:35:06.360
thing like this, It's been a it's been a while,
719
00:35:06.440 --> 00:35:09.880
Like you're not talking four years between versions of the studio,
720
00:35:10.280 --> 00:35:13.679
but they've been some nutty years, a little pandemic, a
721
00:35:13.719 --> 00:35:16.800
little revolutionary computing, like wooh.
722
00:35:17.519 --> 00:35:20.480
It's been it's like a train that hits you, right,
723
00:35:20.719 --> 00:35:23.519
It's yeah, it was it was like that. Yeah. We
724
00:35:23.519 --> 00:35:26.679
we changed the whole ORC structure, change, all of that
725
00:35:26.760 --> 00:35:28.960
changed in the past couple of years to accommodate this.
726
00:35:29.280 --> 00:35:35.000
So there's no question where that this is like such
727
00:35:35.119 --> 00:35:40.920
a groundbreaking change for everybody, and I think we're probably
728
00:35:40.920 --> 00:35:43.199
on the forefront of it because we are we are
729
00:35:43.320 --> 00:35:45.760
kind of the lower layers of that that enables others
730
00:35:45.800 --> 00:35:46.480
to kind of use.
731
00:35:46.599 --> 00:35:49.440
A name, and you're expected to dog food the new
732
00:35:49.480 --> 00:35:52.000
bits so you're seeing it before we see it.
733
00:35:52.079 --> 00:35:54.519
So all that was like really heavy. But I think
734
00:35:54.559 --> 00:35:56.599
like this year when we look at like get ub
735
00:35:56.639 --> 00:36:00.159
copilot adoption, like this year is where it's really exploded. Yeah,
736
00:36:00.199 --> 00:36:02.119
so I think the l ms now are so good
737
00:36:02.199 --> 00:36:04.360
with the you know, clots on at for another like
738
00:36:04.480 --> 00:36:07.679
they're just GPT five, like they're finally at a place
739
00:36:08.400 --> 00:36:10.000
Jim and I are two point five is you know?
740
00:36:10.119 --> 00:36:12.199
Was also another one that was like, Okay, this is.
741
00:36:12.159 --> 00:36:13.760
Good, real good.
742
00:36:13.760 --> 00:36:16.159
So I got a story for you. I was trying
743
00:36:16.159 --> 00:36:18.320
to solve a CSS problem and I knew it was
744
00:36:18.320 --> 00:36:20.320
a CSS problem, but I wasn't quite sure how to
745
00:36:20.320 --> 00:36:22.639
solve it because you know, I'm a C sharp programmer,
746
00:36:22.719 --> 00:36:27.280
not a CSS guy. And I asked Chatchept. I spent
747
00:36:27.360 --> 00:36:29.840
an hour with chatchyp Yeah, I like that he's holding
748
00:36:29.920 --> 00:36:35.119
up the mugs. CSS is awesome outside of the box.
749
00:36:36.920 --> 00:36:40.880
I set the challenge to chat Ept. I spent an
750
00:36:40.960 --> 00:36:44.719
hour with chatchept, and it could not figure out, for
751
00:36:44.800 --> 00:36:47.559
the life of itself, how to fix this problem. So
752
00:36:47.639 --> 00:36:52.519
then I went to get hub Copilot. I just created
753
00:36:52.559 --> 00:36:56.960
a new private repo in gethub with a scaled down example.
754
00:36:57.559 --> 00:37:00.679
Get ub co Pilot scratched its head for like forty
755
00:37:00.760 --> 00:37:03.719
minutes and then came back with the wrong answer. Then
756
00:37:03.760 --> 00:37:06.639
I went to Gemini and I, because Gemini is like
757
00:37:06.679 --> 00:37:10.079
built into Chrome, right, you can ask Gemini how do
758
00:37:10.119 --> 00:37:15.599
I fix this? And it completely baffled itself. It did
759
00:37:15.599 --> 00:37:17.320
not have the answer. Then I went back in the
760
00:37:17.400 --> 00:37:20.239
visual studio and I went to agent mode and I
761
00:37:20.320 --> 00:37:23.760
picked Claude Son at three point five and I said
762
00:37:23.880 --> 00:37:27.480
do this, And it was literally less than three minutes
763
00:37:27.679 --> 00:37:30.360
and it had figured it out. Claude's Son. It is
764
00:37:30.400 --> 00:37:32.400
the bomb for CSS anyway.
765
00:37:32.639 --> 00:37:33.360
It's really good.
766
00:37:33.760 --> 00:37:35.960
Yeah, and you're sort of speaking to that sort of
767
00:37:36.119 --> 00:37:39.519
new reality that just harnished the agents you got. You
768
00:37:39.559 --> 00:37:41.719
want a client that has access to all of them,
769
00:37:41.719 --> 00:37:43.719
and you can try your different problems on different right
770
00:37:43.920 --> 00:37:45.440
on different models.
771
00:37:46.079 --> 00:37:47.719
So that's that's really nice. You can now you can
772
00:37:47.719 --> 00:37:49.599
bring your own keys what we call it, right, You
773
00:37:49.599 --> 00:37:52.119
can bring your own API key and plug in you know,
774
00:37:52.159 --> 00:37:57.639
any other clod model or whatever. So but it's it,
775
00:37:58.039 --> 00:38:00.360
you know, it really depends a lot of a things.
776
00:38:00.400 --> 00:38:02.199
One is the context you give it like what does
777
00:38:02.239 --> 00:38:05.719
it understand about your project? And the other thing is
778
00:38:05.760 --> 00:38:08.800
the prompt, like how are you prompting it? And so
779
00:38:08.920 --> 00:38:11.280
that's the challenge because you know at what point I'll
780
00:38:11.320 --> 00:38:13.880
be becoming prompting engineers. I always think that sounds a
781
00:38:13.880 --> 00:38:16.880
little bit too big for what it is, Like it's
782
00:38:16.920 --> 00:38:18.920
a different way of asking a question. You know, does
783
00:38:18.960 --> 00:38:22.119
that make you a prompt engineer? But but you know
784
00:38:22.159 --> 00:38:23.119
there's some truth to that.
785
00:38:23.159 --> 00:38:25.000
I guess, you know, yeah, because I'm all, you know,
786
00:38:25.039 --> 00:38:26.480
I do a favorite of writing, so it must be
787
00:38:26.519 --> 00:38:27.480
a sentence engineer.
788
00:38:27.639 --> 00:38:31.280
Also, yeah, exactly paragraph engineer.
789
00:38:32.599 --> 00:38:34.760
Don't get crazy now trying to get there.
790
00:38:34.920 --> 00:38:37.280
So but what I what I do like is you know,
791
00:38:37.360 --> 00:38:39.199
I mentioned the thing where it kind of makes you better,
792
00:38:39.480 --> 00:38:42.519
you become a better developer. But the other aspect is
793
00:38:42.559 --> 00:38:44.800
that it will it will allow you to do things
794
00:38:44.840 --> 00:38:48.239
that you couldn't do before. So when I mentioned this
795
00:38:48.239 --> 00:38:52.159
stuff about the profiler right before, like I'm not a
796
00:38:52.239 --> 00:38:55.280
very low level developer, like I don't I don't go
797
00:38:55.320 --> 00:38:57.920
into unsafety sharp for instance, right, Like I've never used
798
00:38:57.920 --> 00:39:00.119
a volatile keyword. I don't know what it does, and
799
00:39:00.159 --> 00:39:01.159
I'm kind of afraid to know.
800
00:39:01.880 --> 00:39:03.840
But the name tells you everything you want to know.
801
00:39:03.960 --> 00:39:09.920
That's right, stay away, Yeah, danger here across.
802
00:39:11.519 --> 00:39:14.960
So that door was closed to me, right, And but
803
00:39:15.079 --> 00:39:17.679
with this this new profile agent, for instance, it can
804
00:39:17.719 --> 00:39:19.440
come in and it can teach me stuff. I can
805
00:39:19.480 --> 00:39:21.280
see how to do this, it can it can kick
806
00:39:21.320 --> 00:39:23.760
in the door that was otherwise closed to Yeah, and
807
00:39:24.199 --> 00:39:28.079
so it makes the impossible possible. And I really like
808
00:39:28.199 --> 00:39:31.119
that because it's like that. And then it doesn't go there,
809
00:39:31.159 --> 00:39:32.840
It doesn't open the door and walk in on its own.
810
00:39:33.559 --> 00:39:35.559
It takes me with it, right, we walk in together,
811
00:39:36.719 --> 00:39:38.920
and that I think that's the magic part. I think
812
00:39:38.960 --> 00:39:41.280
a lot of people miss that. They think, oh, you know, Copila,
813
00:39:41.320 --> 00:39:43.039
that's going to take over my job or whatever, but
814
00:39:43.119 --> 00:39:46.039
it is. It is really a cold pilot. I think
815
00:39:46.039 --> 00:39:46.639
that's important.
816
00:39:46.760 --> 00:39:48.519
Yeah, I'm looking forward to the day and I don't
817
00:39:48.519 --> 00:39:51.159
think it we're here yet. But it doesn't do really
818
00:39:51.320 --> 00:39:55.239
well with graphics and you know, animation and all that
819
00:39:55.239 --> 00:39:58.360
stuff yet that's not really in the in the models
820
00:39:58.800 --> 00:40:01.199
that I know anyway. But I'm looking forward to the
821
00:40:01.280 --> 00:40:04.920
day where I can think about something that I never
822
00:40:05.360 --> 00:40:09.000
thought of before doing because I know it's completely outside
823
00:40:09.039 --> 00:40:13.480
my wheelhouse. And then and then engaging some AI to
824
00:40:13.519 --> 00:40:17.119
help me figure that stuff out. But otherwise I would
825
00:40:17.199 --> 00:40:19.360
I would never have attempted it. But and I'm not
826
00:40:19.440 --> 00:40:22.360
talking about for professional reasons, like I would never say
827
00:40:22.920 --> 00:40:25.400
yes if a customer asked me to do something like that,
828
00:40:25.559 --> 00:40:28.360
but you know, for for messing around and you know,
829
00:40:28.480 --> 00:40:30.960
writing some fun games or something, I would totally be
830
00:40:31.000 --> 00:40:31.360
into it.
831
00:40:31.400 --> 00:40:34.599
Did you see the Scott Hanselman and Mark Prosenovitch they
832
00:40:34.599 --> 00:40:37.199
did this shader using copony. They had no idea how
833
00:40:37.199 --> 00:40:40.119
to write a shrader, and they did it. And they
834
00:40:40.119 --> 00:40:42.480
could use it as a background kind of animation movie
835
00:40:42.480 --> 00:40:45.440
thing that just ran in the background up the windows terminal. Yeah,
836
00:40:45.480 --> 00:40:48.360
and they've never written the shad before. And so again
837
00:40:48.400 --> 00:40:50.400
that was a door that was to go. They could
838
00:40:50.400 --> 00:40:52.519
have learned they had spent their time doing that.
839
00:40:52.639 --> 00:40:53.400
But good stuff.
840
00:40:53.679 --> 00:40:54.599
Here we are well.
841
00:40:54.639 --> 00:40:56.960
And that's always the thing, Like you have skills, you
842
00:40:57.039 --> 00:41:00.480
know you could do this, but your list of needs,
843
00:41:00.519 --> 00:41:02.679
the things, you know, priority list is so long.
844
00:41:03.039 --> 00:41:06.280
That's exactly it. You know, I got kids and family
845
00:41:06.320 --> 00:41:08.280
and stuff. I gotta leave work, and then I gotta
846
00:41:08.320 --> 00:41:10.559
leave work. I can't just you know, keep going. And
847
00:41:11.400 --> 00:41:13.519
that's the most most people are in a situation like that,
848
00:41:13.599 --> 00:41:15.880
your time is limited, and so having that kind of
849
00:41:16.159 --> 00:41:18.679
AI sitting there and being helpful to I think it's
850
00:41:18.760 --> 00:41:22.079
really good. Another one that's really helpful is it can
851
00:41:22.079 --> 00:41:25.599
increase your velocity. So I have a three hundred and
852
00:41:25.599 --> 00:41:28.079
something repos on GIDDA right, a lot of extensions and
853
00:41:28.440 --> 00:41:31.280
NU could package libraries and whatnot, and I get a
854
00:41:31.280 --> 00:41:34.159
bunch of feature requests and bug reporting, and I can't
855
00:41:34.199 --> 00:41:36.239
really as a single person, I can't do all of
856
00:41:36.239 --> 00:41:38.719
these things. But I can have the coding D and
857
00:41:38.760 --> 00:41:41.000
I can assign a task, say hey, can you take
858
00:41:41.000 --> 00:41:42.719
a look at this bug? Can you fix that? Or
859
00:41:42.800 --> 00:41:45.000
take a look at this feature request? And the more
860
00:41:45.039 --> 00:41:46.840
you use it, the more you kind of understand what
861
00:41:46.960 --> 00:41:49.159
it can do. And then you know, oh, this is
862
00:41:49.199 --> 00:41:51.760
a great candidate for the copilot.
863
00:41:51.920 --> 00:41:54.360
Sure to do for me. If you want one hundred
864
00:41:54.360 --> 00:41:57.159
percent unit test coverage, you know, you could beat your
865
00:41:57.159 --> 00:41:59.000
interns as much as you want to try and get there,
866
00:41:59.000 --> 00:42:01.039
but boy, the soft or knocks it out.
867
00:42:01.199 --> 00:42:02.199
Yeah that's right.
868
00:42:02.679 --> 00:42:04.960
Yeah, yeah, So I feel like you can your A.
869
00:42:05.000 --> 00:42:07.159
Your velocity can go up if you if you know
870
00:42:07.199 --> 00:42:09.559
how to use it in the right way. But that
871
00:42:09.800 --> 00:42:12.119
now you have, but then you learn that too write.
872
00:42:12.239 --> 00:42:15.280
So there's some new stuff to learn. And I think
873
00:42:15.280 --> 00:42:18.320
that's important that we do it and whatever time we've got,
874
00:42:18.679 --> 00:42:20.559
but don't dismiss it up front.
875
00:42:20.599 --> 00:42:23.159
One hundred percent coverage. I would set that on to
876
00:42:23.239 --> 00:42:25.480
go on a Friday night and then go away for
877
00:42:25.519 --> 00:42:28.559
the weekend. For some of these projects that I have,
878
00:42:28.679 --> 00:42:30.159
there's so big. Well.
879
00:42:30.960 --> 00:42:33.559
One of the patterns I've gotten into now when I'm
880
00:42:33.639 --> 00:42:35.800
asking the tools to write code is that they sort
881
00:42:35.800 --> 00:42:37.400
of do a tdd thing. I want you to write
882
00:42:37.440 --> 00:42:39.960
the test as well. And one of the effects I
883
00:42:40.039 --> 00:42:44.159
found with that was that often if you made too
884
00:42:44.159 --> 00:42:47.079
big of a request, it wouldn't finish it. Yes, and
885
00:42:47.159 --> 00:42:50.559
so including the tests and keep iterating this until all
886
00:42:50.599 --> 00:42:55.039
the tests passed. Actually create a pattern to finish the
887
00:42:55.119 --> 00:42:56.199
code request. Right.
888
00:42:56.400 --> 00:42:59.719
I don't like, you know, dot dot dot, you know,
889
00:43:00.000 --> 00:43:03.280
finish the implementation here. No, you finish it. That's what
890
00:43:03.440 --> 00:43:04.679
I'm asking you.
891
00:43:06.440 --> 00:43:08.679
That's what you do, you piece of software.
892
00:43:08.719 --> 00:43:10.239
You what I do?
893
00:43:10.480 --> 00:43:11.880
Is that what you do?
894
00:43:12.639 --> 00:43:12.960
Yeah?
895
00:43:13.079 --> 00:43:16.119
Nice? But I feel like more and more we're the
896
00:43:16.639 --> 00:43:20.760
project managers, right Like you're managing you only write certain
897
00:43:20.800 --> 00:43:22.559
bits of code that you're like, well, the tool's going
898
00:43:22.599 --> 00:43:25.679
to have at the time with this, but most of
899
00:43:25.719 --> 00:43:27.639
the other code you're you're just doling it out and
900
00:43:27.760 --> 00:43:30.320
checking it in. I feel like software developers are uniquely
901
00:43:30.360 --> 00:43:33.079
qualified in the scenario because the tools like GitHub and
902
00:43:33.119 --> 00:43:37.159
things like, we're used to taking contributions from unknown sources
903
00:43:37.159 --> 00:43:40.880
in some respects, and what's more unknown than an LLM, right, Like,
904
00:43:41.039 --> 00:43:44.880
just makes sense that okay, and it comes evaluated, you know,
905
00:43:44.960 --> 00:43:47.159
run it through the process integrated.
906
00:43:46.719 --> 00:43:50.000
And let's get meta here, Like you ask the copilot
907
00:43:50.079 --> 00:43:52.679
to write you something and it does a pull request
908
00:43:52.800 --> 00:43:55.440
and you check out that pull request. Now you should
909
00:43:55.519 --> 00:43:58.360
have an agent test that pull request. Sure, why not
910
00:43:58.599 --> 00:44:02.760
have another third part? Right? And so thinking about this
911
00:44:02.920 --> 00:44:05.360
in terms of, oh, it's not just this one agent
912
00:44:05.440 --> 00:44:08.679
that I'm interacting with, but multiple agents that do different
913
00:44:08.719 --> 00:44:12.159
things better than the other kind. That's this is the future,
914
00:44:12.199 --> 00:44:12.440
I think.
915
00:44:12.559 --> 00:44:15.800
Yeah, we're already seeing with the mcps, for instance, where
916
00:44:15.800 --> 00:44:19.360
they know now you have the playwright and it can
917
00:44:19.400 --> 00:44:23.079
go ahead and unbelievable too, launch your new pro request
918
00:44:23.159 --> 00:44:25.679
and the browser and test that it works. And I
919
00:44:25.679 --> 00:44:26.920
mean it's pretty phenomenal.
920
00:44:27.039 --> 00:44:29.719
The thing that got me with the playwright MCP was
921
00:44:30.760 --> 00:44:33.039
the ownership of the test problem on my part. Now
922
00:44:33.119 --> 00:44:35.039
is a set of prompts about what I need to
923
00:44:35.119 --> 00:44:38.679
valuate it on this website, And so as playwright changes
924
00:44:38.719 --> 00:44:40.719
on you and the site changes on you, you don't
925
00:44:40.719 --> 00:44:44.360
have to rewrite the test. They're regenerated by the prompt. Yeah.
926
00:44:44.440 --> 00:44:45.599
Yeah, yeah, that's nice.
927
00:44:45.679 --> 00:44:48.480
Yeah yeah, it's powerful, and it's just a funny way
928
00:44:49.079 --> 00:44:53.440
to think about software. And I don't know if necessarily
929
00:44:53.519 --> 00:44:55.000
like it's fun in the sense that I'm getting a
930
00:44:55.000 --> 00:44:57.320
lot done, but it's not fun in the sense of
931
00:44:57.400 --> 00:45:01.079
like that old school flowing with code thing that I
932
00:45:01.159 --> 00:45:03.239
used to do once in a while. It's not the
933
00:45:03.280 --> 00:45:06.320
same when you're shepherding all these tools, like you're you're
934
00:45:06.360 --> 00:45:10.400
kind of running an interrupt driven method of coding where
935
00:45:10.800 --> 00:45:13.360
various bits are coming back from different agents and you're
936
00:45:13.360 --> 00:45:15.239
trying to pull them together. It's like, where are we
937
00:45:15.320 --> 00:45:17.039
in the overall problem space here?
938
00:45:17.400 --> 00:45:21.199
You're definitely more of a conductor of an orchestra now
939
00:45:21.440 --> 00:45:23.920
when you take really take full advantage of all this stuff.
940
00:45:24.400 --> 00:45:26.480
But I don't I don't see that as Hey, the
941
00:45:26.880 --> 00:45:29.960
role of the software engineer is changing. It's just that
942
00:45:30.039 --> 00:45:32.599
we do we work in a slightly different way. And
943
00:45:32.639 --> 00:45:36.880
so we also now orchestrate stuff, but hopefully we orchestrate
944
00:45:36.880 --> 00:45:40.079
the stuff that's kind of boring or the stuff that tedious,
945
00:45:40.199 --> 00:45:43.159
or stuff that doesn't add unique where we you know
946
00:45:43.199 --> 00:45:47.079
that that we want to add unique value that only
947
00:45:47.119 --> 00:45:50.000
we can do, right, stuff that's like you know, makes
948
00:45:50.079 --> 00:45:52.119
us feel great and love our work, and where we
949
00:45:52.159 --> 00:45:55.320
have unique insights and we can be creative and come
950
00:45:55.400 --> 00:45:57.880
up with these fantastic things and then have kind of
951
00:45:58.119 --> 00:46:00.800
maybe the boring parts and stuff that would be great
952
00:46:00.800 --> 00:46:02.920
if someone else would take care of that, but we
953
00:46:03.000 --> 00:46:04.800
do the conducting of that.
954
00:46:04.800 --> 00:46:06.880
That was back to the old adage, right, Like your
955
00:46:07.079 --> 00:46:10.840
job as the software engineer wasn't to write code, it
956
00:46:10.880 --> 00:46:14.039
was to produce solutions. Yep, right, I remember. I mean
957
00:46:14.039 --> 00:46:16.239
I'm old enough down to remember switching to Visual Basic.
958
00:46:16.360 --> 00:46:19.960
His guy brought real tired of battling MFC, like you
959
00:46:20.039 --> 00:46:24.159
were mostly fighting with Windows, not providing solutions, and VB
960
00:46:24.320 --> 00:46:26.519
took that off the shelf, and people like we're not
961
00:46:26.519 --> 00:46:29.639
really programming anymore. It's like pretty sure, I am pretty sure.
962
00:46:29.679 --> 00:46:31.079
I'm going to be crying all the way to the
963
00:46:31.119 --> 00:46:31.719
bank here.
964
00:46:32.159 --> 00:46:34.199
Yeah, I forget who said it? But it was was
965
00:46:34.239 --> 00:46:37.800
it Repert Scoble or like Joe's bowlski or something that. Hey,
966
00:46:37.880 --> 00:46:40.920
you know, as a software engineer, your goal is to
967
00:46:41.000 --> 00:46:43.960
solve problems. Yeah, the side effect is that you write
968
00:46:44.000 --> 00:46:46.920
code or something like that. The by product is code.
969
00:46:47.559 --> 00:46:49.480
But we're here to solve problems. And so I think
970
00:46:49.519 --> 00:46:51.199
that's true in this new world as well. And I
971
00:46:51.239 --> 00:46:53.159
think we're still going to write as much code. We
972
00:46:53.239 --> 00:46:55.519
might even write more because some of this other stuff
973
00:46:55.559 --> 00:46:58.960
can be sort of automated away a little bit. And
974
00:46:59.039 --> 00:47:01.960
so I think we're looking at a very very bright
975
00:47:02.000 --> 00:47:04.480
future for software engineering. I think it's going to be
976
00:47:04.480 --> 00:47:06.559
more fun now than they has been in the past.
977
00:47:06.559 --> 00:47:09.679
The productivity explosion is astonishing. Folks have seen who figure
978
00:47:09.679 --> 00:47:12.679
this stuff out. I mean, I for a while there,
979
00:47:12.800 --> 00:47:15.519
the good Hub Copilot days, I was seeing folks saying, hey,
980
00:47:15.880 --> 00:47:19.119
my coders are pushing in more code. It's twenty thirty
981
00:47:19.199 --> 00:47:23.400
forty percent more productive. There's more reworks, like they're backing
982
00:47:23.440 --> 00:47:26.519
out stuff more often. But generally if it gets pushed
983
00:47:26.519 --> 00:47:28.760
and it sticks, it's pretty good in its days, Like
984
00:47:28.840 --> 00:47:31.960
code quality up overall. Yeah, Yeah, Now I watch guys
985
00:47:32.039 --> 00:47:34.519
that are knocking out two three weeks worth of work
986
00:47:34.960 --> 00:47:37.480
in a typical pattern in a day. Sure, Like it's
987
00:47:37.519 --> 00:47:39.119
just astonishing when they get it right.
988
00:47:39.199 --> 00:47:42.320
Yeah, yeah, right, And so I think like, as, but
989
00:47:42.519 --> 00:47:45.760
that's a craft too. How do you work with the
990
00:47:45.800 --> 00:47:47.239
prompting and with the yelms.
991
00:47:47.360 --> 00:47:50.880
Yeah, So also staying current on what the different lllms
992
00:47:50.880 --> 00:47:53.159
are and what their strengths and weaknesses are. I think
993
00:47:53.199 --> 00:47:56.800
that's a big challenge too, because you know that experiment
994
00:47:56.840 --> 00:47:59.360
that I did with the first chatchpt for an hour,
995
00:47:59.440 --> 00:48:02.320
and then you know that the GitHub copilot and all
996
00:48:02.360 --> 00:48:04.800
that stuff that took like a whole day just to
997
00:48:04.840 --> 00:48:07.559
figure out that claudees on at three point five was
998
00:48:07.559 --> 00:48:10.559
was the was the model that I wanted. And now
999
00:48:10.599 --> 00:48:13.039
when I go back that, I'm going to try to
1000
00:48:13.159 --> 00:48:16.079
use that for a similar problem. But something else might
1001
00:48:16.119 --> 00:48:18.800
have come around that makes it even easier. Right, So
1002
00:48:19.840 --> 00:48:22.440
keeping up with these things is going to be a
1003
00:48:22.440 --> 00:48:24.000
full time endeavor.
1004
00:48:24.159 --> 00:48:26.880
I remember the arguments over is garbage collecting actually a
1005
00:48:26.880 --> 00:48:30.119
good idea? We've been to these sort of changes in
1006
00:48:30.159 --> 00:48:32.719
the way we think about code things before. Yeah, and
1007
00:48:33.440 --> 00:48:35.119
it's just this is an issue one.
1008
00:48:35.199 --> 00:48:36.760
And I also feel like, yeah, you have to keep
1009
00:48:36.840 --> 00:48:39.599
up today with like which models are great for your scenario.
1010
00:48:39.719 --> 00:48:42.840
Let's say, I don't think that's different than keeping up
1011
00:48:42.840 --> 00:48:44.400
with other industry kind of.
1012
00:48:44.480 --> 00:48:48.599
Yeah, it just most faster, most faster than language evolution
1013
00:48:48.960 --> 00:48:50.239
or tool evolution.
1014
00:48:51.400 --> 00:48:52.880
That may only be true right now.
1015
00:48:53.119 --> 00:48:55.119
Yeah, it's a moment in time. I think it feels
1016
00:48:55.159 --> 00:48:58.719
like we're on our way somewhere. Yeah, and we're trying
1017
00:48:58.719 --> 00:49:00.760
to figure out where where does this go? Is this
1018
00:49:00.960 --> 00:49:03.320
is the chat the right interface going forward? Is it
1019
00:49:03.360 --> 00:49:06.320
a what is it? It might be, but it might
1020
00:49:06.360 --> 00:49:09.039
not be. And so we're on our way there wherever
1021
00:49:09.079 --> 00:49:09.440
there is.
1022
00:49:09.599 --> 00:49:12.199
I have a suggestion to people who are hearing this podcast,
1023
00:49:12.239 --> 00:49:14.880
and that is listen to more dot ne Rocks episodes
1024
00:49:14.920 --> 00:49:16.800
because we'll keep you up to date on these things.
1025
00:49:16.840 --> 00:49:18.679
Because we're doing the hard work out here.
1026
00:49:22.360 --> 00:49:25.480
We're definitely asking some questions anyway and trying to get
1027
00:49:25.480 --> 00:49:28.199
an overview. Yeah, that's true of you know, who's succeeding,
1028
00:49:28.239 --> 00:49:31.239
who's struggling? Where are these things helping? Word? Don't they help?
1029
00:49:31.400 --> 00:49:33.800
But we're thinking about this. You know, you might have
1030
00:49:33.880 --> 00:49:37.519
heard this concept of ambient AI. Yeah, so the concept
1031
00:49:37.519 --> 00:49:40.519
real briefly is that it's kind of sitting there in
1032
00:49:40.519 --> 00:49:44.280
the background only showing its phase when it's needed, and
1033
00:49:44.360 --> 00:49:49.079
it seamlessly offer you, you know, the help contextually where
1034
00:49:49.119 --> 00:49:51.199
you want it. And so it's so think of it
1035
00:49:51.239 --> 00:49:54.280
as something that's always there, but it's not in your way,
1036
00:49:54.320 --> 00:49:56.760
and it's not something that you need to learn. And
1037
00:49:56.800 --> 00:50:00.000
so we like that idea because it kind of fits
1038
00:50:00.159 --> 00:50:03.039
naturally into things that already exist. So if we were
1039
00:50:03.079 --> 00:50:05.239
to put it into Visual Studio, for instance, you know
1040
00:50:05.320 --> 00:50:08.320
I mentioned the you know, the generated commit message, Well,
1041
00:50:08.320 --> 00:50:10.840
we already have a commit message box. So adding a
1042
00:50:10.880 --> 00:50:14.320
button that automatically does that would be it's a place
1043
00:50:14.360 --> 00:50:16.800
where you expected, it's not in your way, you don't
1044
00:50:16.840 --> 00:50:19.559
have to prompt anything, right. That's a that's kind of
1045
00:50:19.599 --> 00:50:23.119
ambient AI thinking. Another one is renamed variable. We made
1046
00:50:23.119 --> 00:50:24.880
a big splash about this because you know it's the
1047
00:50:25.280 --> 00:50:28.119
one of the hardest problems in computer science is naming things.
1048
00:50:29.079 --> 00:50:31.119
And so if you want to rename a variable, there's
1049
00:50:31.159 --> 00:50:32.880
like a little UI and Visual studio for that. If
1050
00:50:32.920 --> 00:50:36.599
you could click control r R on an identifier, the
1051
00:50:36.760 --> 00:50:39.280
rename thing come up. We show you automatically the top
1052
00:50:39.320 --> 00:50:41.880
three things that we think based on how that variable
1053
00:50:41.920 --> 00:50:44.320
is being used in your code. What will be good
1054
00:50:44.440 --> 00:50:47.679
names for that based on cipical naming strategies, and so
1055
00:50:47.760 --> 00:50:48.639
that's ambient AI.
1056
00:50:48.920 --> 00:50:51.559
Although we are talking about Microsoft here and you guys
1057
00:50:51.599 --> 00:50:56.960
have a record about names.
1058
00:50:57.360 --> 00:50:58.880
All right, well let's just put.
1059
00:50:58.679 --> 00:51:00.239
That right out there.
1060
00:50:59.599 --> 00:51:02.880
No size, that's the perfect name for what it does.
1061
00:51:03.079 --> 00:51:04.440
You know exactly what it does.
1062
00:51:04.639 --> 00:51:07.639
I'm the worst of naming things. They just the name
1063
00:51:07.719 --> 00:51:08.320
is what they do.
1064
00:51:08.519 --> 00:51:11.480
Yeah, yeah, which is actually the perfect name. Like, because
1065
00:51:11.599 --> 00:51:12.840
nobody's confused in.
1066
00:51:12.880 --> 00:51:15.960
The in the UK, they say, it's what's on the tin, right,
1067
00:51:16.440 --> 00:51:19.079
what's printed on the can is what you get. Yeah,
1068
00:51:19.199 --> 00:51:20.000
what's on the tin.
1069
00:51:20.000 --> 00:51:21.800
It's what is in the can. Like, that's as much
1070
00:51:21.840 --> 00:51:25.400
as we could hope for. I appreciate that.
1071
00:51:26.079 --> 00:51:27.079
Uh.
1072
00:51:27.480 --> 00:51:28.840
Can we talk a little bit about the sort of
1073
00:51:28.920 --> 00:51:32.239
project side that is also visual studio because I think,
1074
00:51:32.599 --> 00:51:33.960
you know, people will tell me, you, well, why would
1075
00:51:33.960 --> 00:51:36.239
I use visual studio code of visual studio? And it's like,
1076
00:51:36.920 --> 00:51:39.760
to me, studio is as much a project management tool
1077
00:51:40.119 --> 00:51:41.800
as it is a development environment.
1078
00:51:42.000 --> 00:51:46.000
It is. Now, that's funny, that's exactly how I look
1079
00:51:46.000 --> 00:51:48.320
at it too, and that relationship you have between projects
1080
00:51:48.360 --> 00:51:52.519
and solutions. But if you're new to visual studio, you know,
1081
00:51:52.800 --> 00:51:56.199
a lot of people don't understand that concept, yeah, because
1082
00:51:56.239 --> 00:51:58.960
it's just new to them, foreign to them, and it
1083
00:51:59.000 --> 00:52:02.119
really allows us to do some interesting things when it
1084
00:52:02.159 --> 00:52:05.519
comes to building and to building context, I mean compiling
1085
00:52:05.840 --> 00:52:08.960
and building context for intellisents and so on when it's
1086
00:52:08.960 --> 00:52:10.920
not based on a file system, but it's based on
1087
00:52:11.239 --> 00:52:15.039
an intentional project structure. So I guess you could replicate
1088
00:52:15.039 --> 00:52:16.920
that in the filesystem too, but that's typically not what
1089
00:52:17.039 --> 00:52:21.880
you see, and so that's you know, we've it's always
1090
00:52:21.920 --> 00:52:24.920
been a little bit problematic too, because loading from a
1091
00:52:24.960 --> 00:52:28.800
file system is fast, but loading from a project hierarchy
1092
00:52:28.880 --> 00:52:31.679
that you have to read the entire hierarchy first before
1093
00:52:31.719 --> 00:52:34.480
you can figure out the dependencies between them and how
1094
00:52:34.519 --> 00:52:37.079
to then render them in the solution explore right in
1095
00:52:37.119 --> 00:52:39.519
the tree view. And so there's always it's always been
1096
00:52:39.519 --> 00:52:43.239
more expensive from that perspective working with the projects and solutions.
1097
00:52:43.800 --> 00:52:47.400
So this time around we've we've finally i'd say, been
1098
00:52:47.440 --> 00:52:50.840
able to go really really deep on some performance stuff
1099
00:52:51.679 --> 00:52:54.280
to make that, you know, faster than ever. So you'll
1100
00:52:54.280 --> 00:52:56.480
notice the first thing you'll notice in the new version
1101
00:52:56.599 --> 00:53:01.599
is how fast things show up, how fast project solutions
1102
00:53:01.639 --> 00:53:03.480
load all that, it's just it's visible immediately.
1103
00:53:03.599 --> 00:53:07.960
I was under the impression that the reason why visual
1104
00:53:08.000 --> 00:53:13.199
studio proper is slower than say visual studio code is
1105
00:53:13.239 --> 00:53:18.000
because there's a lot of calm involved in stuff, and
1106
00:53:18.079 --> 00:53:21.360
so that naturally kind of slows down the whole process
1107
00:53:21.400 --> 00:53:23.960
and kind of bloats the memory. But I don't know
1108
00:53:24.039 --> 00:53:25.760
if that's really true. What do you think about that?
1109
00:53:26.960 --> 00:53:28.840
No, that that had that has some truth to it,
1110
00:53:28.880 --> 00:53:32.800
for sure. And but also like visual studios over twenty
1111
00:53:32.840 --> 00:53:35.119
eight years old, and so there's there's some things that
1112
00:53:35.119 --> 00:53:38.239
have just evolved over time, like some debt that has
1113
00:53:38.280 --> 00:53:40.679
been building up, right, and we've finally been able to
1114
00:53:40.719 --> 00:53:43.920
look at that, but some very key aspects of it.
1115
00:53:43.960 --> 00:53:47.000
But one thing that was was a thing was blocking
1116
00:53:47.000 --> 00:53:49.599
the UI threat. So when you would click a button
1117
00:53:49.920 --> 00:53:53.639
to do it something, sometimes whatever would happen when you
1118
00:53:53.639 --> 00:53:55.800
click that button would do that on the UI threat.
1119
00:53:55.880 --> 00:53:59.159
And what that means is that visual studio freezese. Nothing
1120
00:53:59.199 --> 00:54:01.920
could update on the score, right, and so we would
1121
00:54:02.280 --> 00:54:03.920
and so we get what we call it's called a hang,
1122
00:54:04.320 --> 00:54:07.440
but you might call it a freeze, and Zoo would
1123
00:54:07.440 --> 00:54:09.440
be unresponsive for like a half a second.
1124
00:54:09.519 --> 00:54:12.159
Once the programmers know all about that though. I mean,
1125
00:54:12.199 --> 00:54:14.679
if you've done any kind of multi threaded or a programming,
1126
00:54:14.719 --> 00:54:15.440
you know what that is.
1127
00:54:16.239 --> 00:54:17.280
That's top programmers.
1128
00:54:17.800 --> 00:54:22.199
Richard had this comment about outlook sixty five threads and
1129
00:54:22.320 --> 00:54:28.719
not one of them for me, that's my thread.
1130
00:54:29.119 --> 00:54:31.239
But when you start but when you start doing that,
1131
00:54:31.320 --> 00:54:33.159
and that's part of that profile the thing too, right
1132
00:54:33.320 --> 00:54:35.679
or or debugger where like something like an AI can
1133
00:54:35.719 --> 00:54:38.880
help you. Is it's really hard to d book like
1134
00:54:39.239 --> 00:54:44.119
acinc call stacks and you know, multi threaded applications or whatnot.
1135
00:54:44.639 --> 00:54:48.960
But this time around, we've really really done more than
1136
00:54:49.000 --> 00:54:51.519
ever in terms of moving things out of the UI
1137
00:54:51.519 --> 00:54:55.679
threat and that we run dot net you know core
1138
00:54:56.559 --> 00:54:59.960
processes under visual Studio that you know runs very qui
1139
00:55:00.199 --> 00:55:02.159
and very fast, and it does a lot of that
1140
00:55:02.239 --> 00:55:04.559
work in the background now. So you'll see visual Studio
1141
00:55:04.639 --> 00:55:09.679
becoming a lot snappier. So opening startup, opening a solution,
1142
00:55:10.159 --> 00:55:13.480
time you hit five, like compilation and time for you
1143
00:55:13.559 --> 00:55:14.800
to hit When you hit a five too, you hit
1144
00:55:14.840 --> 00:55:16.800
your break point. Is that was so much faster than
1145
00:55:16.880 --> 00:55:19.360
ever was and it does all that while the UI
1146
00:55:19.400 --> 00:55:20.320
is still respond here.
1147
00:55:20.480 --> 00:55:23.280
If you guys at Microsoft, the people that are working
1148
00:55:23.280 --> 00:55:27.320
on Visual Studio in general are using AI to help
1149
00:55:27.440 --> 00:55:32.159
them find bottlenecks and find places that need to be
1150
00:55:32.719 --> 00:55:33.559
fixed or updated.
1151
00:55:33.920 --> 00:55:36.119
Yeah, we're using it internally. You have to you have
1152
00:55:36.159 --> 00:55:39.119
to think about the So the Profiler Agent is really new,
1153
00:55:39.440 --> 00:55:41.800
So we haven't used it like extensively, like for a
1154
00:55:41.840 --> 00:55:46.000
long period of time. It's very new, and I tell
1155
00:55:46.000 --> 00:55:47.159
you it was. Some of the first things we did
1156
00:55:47.320 --> 00:55:49.400
was we told all the teams, hey use it on
1157
00:55:49.440 --> 00:55:52.840
your own code base inside Visual Studio, and so we
1158
00:55:52.880 --> 00:55:56.239
see optimizations come in all the time. But what Nick did,
1159
00:55:56.440 --> 00:55:58.760
he's on the profiler team, he did something really interesting.
1160
00:55:58.840 --> 00:56:01.639
He started with the top hundred Nugat packages and he
1161
00:56:01.679 --> 00:56:04.880
would profile them to figure out where are the hotspots
1162
00:56:04.920 --> 00:56:06.480
or whatever and can he fixed them? So he sent
1163
00:56:06.599 --> 00:56:09.760
starts sending pull requests to the top Nugat packages because
1164
00:56:09.760 --> 00:56:12.880
they're used in thousands and if not millions of apps, right,
1165
00:56:13.719 --> 00:56:16.280
and that means if he can like do seventeen percent
1166
00:56:16.360 --> 00:56:19.360
better performance for some of these packages, like that's a
1167
00:56:19.519 --> 00:56:21.280
huge win for everybody.
1168
00:56:21.800 --> 00:56:22.400
Yeah wow.
1169
00:56:22.719 --> 00:56:25.960
So he's been very busy doing that and that's really
1170
00:56:25.960 --> 00:56:28.599
great because that trains him in using the product and
1171
00:56:28.679 --> 00:56:31.199
figuring out where there could be further improvements and so on.
1172
00:56:31.960 --> 00:56:35.559
Plus all the internal dog footing stuff off that profiler
1173
00:56:36.719 --> 00:56:39.639
ends up making everything better and we can fine tune
1174
00:56:39.679 --> 00:56:41.920
all these things and it's it's really impressive.
1175
00:56:41.920 --> 00:56:45.079
Well, I guarantee Polly isn't one of those newcat packages
1176
00:56:45.119 --> 00:56:46.800
that needed improvement.
1177
00:56:47.440 --> 00:56:49.719
It's really should I tell nick to go look at that.
1178
00:56:50.280 --> 00:56:52.719
No, it's really fast, it's really good.
1179
00:56:53.039 --> 00:56:55.239
Oh, it's fast enough, it doesn't need Yeah, it's.
1180
00:56:55.119 --> 00:56:58.639
Like all native the as your team got involved because
1181
00:56:58.679 --> 00:57:00.800
they were leaning on it. Pretty Yeah.
1182
00:57:00.920 --> 00:57:04.559
I think actually Nicky found that when he ran some profiling,
1183
00:57:04.599 --> 00:57:07.400
he figured out all the way down in dot Net
1184
00:57:07.440 --> 00:57:10.800
framework itself that there was something that could be optimize.
1185
00:57:11.039 --> 00:57:13.679
So I think he's gonna send up a code update.
1186
00:57:13.920 --> 00:57:16.360
I'm not sure they take pull requests in the traditional sense,
1187
00:57:16.920 --> 00:57:19.079
but like he's gonna see if we can get some.
1188
00:57:19.400 --> 00:57:20.039
That's so cool.
1189
00:57:20.199 --> 00:57:22.639
That framework, because that has to do with visual studio startup.
1190
00:57:22.920 --> 00:57:26.000
Visual Studio actually is a native process that boots up
1191
00:57:26.119 --> 00:57:29.599
the dot Net framework in its own. It's like it's
1192
00:57:29.639 --> 00:57:30.280
really kind of.
1193
00:57:30.719 --> 00:57:33.559
And you're talking about you're talking about the Donet framework,
1194
00:57:33.599 --> 00:57:35.360
the Windows version of dot Net framework.
1195
00:57:35.719 --> 00:57:37.559
Yeah, framework for it Yep.
1196
00:57:37.480 --> 00:57:39.639
That's so cool that you guys are doing that, and
1197
00:57:40.360 --> 00:57:42.199
it's it's inspirational.
1198
00:57:42.360 --> 00:57:45.280
Really well, it's just a reminder that Microsoft employees use
1199
00:57:45.360 --> 00:57:48.840
Visual Studio like the products you build the products with
1200
00:57:48.880 --> 00:57:50.239
the products Uber Dog Souper.
1201
00:57:51.199 --> 00:57:53.000
That's my joke always like, hey, did you know that
1202
00:57:53.079 --> 00:57:56.719
Visual Studio twenty twenty six was build using Visual Studio six.
1203
00:57:57.360 --> 00:57:59.960
That's great, it's true. So where can folks take out
1204
00:58:00.159 --> 00:58:01.079
preview out firs spin.
1205
00:58:01.440 --> 00:58:03.599
Yeah, go to visual studio dot com, click the download
1206
00:58:03.639 --> 00:58:07.280
button and select the preview of twenty twenty six. That's
1207
00:58:07.280 --> 00:58:07.679
how you do it.
1208
00:58:07.679 --> 00:58:10.000
But if you already have the Visual Studio installer, you
1209
00:58:10.000 --> 00:58:13.519
can just load run that and it'll tell you if
1210
00:58:13.519 --> 00:58:15.000
there are preview versions, right.
1211
00:58:15.440 --> 00:58:18.480
You need to maybe if you have the preview already,
1212
00:58:18.519 --> 00:58:22.199
you've got the latest on the preview that includes the installer. Otherwise,
1213
00:58:22.239 --> 00:58:24.119
just go to visual studiot com click it there. If
1214
00:58:24.119 --> 00:58:26.760
it doesn't show up for you, and you can install
1215
00:58:26.760 --> 00:58:29.559
a side by side. It won't interfere with any other installs.
1216
00:58:29.599 --> 00:58:32.039
You got a Visual Studio twenty twenty two or whatever,
1217
00:58:32.679 --> 00:58:34.840
and it will it will look at twenty twenty two
1218
00:58:34.920 --> 00:58:36.840
if you have that installed. So when you're installed twenty
1219
00:58:36.840 --> 00:58:38.840
twenty six, it looks at twenty twenty two, and it
1220
00:58:38.880 --> 00:58:44.000
looks at your settings, your extensions, and the components the
1221
00:58:44.039 --> 00:58:47.000
workloads like if you're if you've taken like let's say
1222
00:58:47.159 --> 00:58:50.840
dot net, ASP, dot net and desktop, those are your
1223
00:58:50.880 --> 00:58:54.800
two workloads. It will copy that information. It will take
1224
00:58:54.800 --> 00:58:57.880
that information from twenty twenty two and pre select all that.
1225
00:58:57.920 --> 00:59:00.239
So your installation is super smooth. You get all the
1226
00:59:00.239 --> 00:59:03.920
components you need, settings and extensions because the extensions are
1227
00:59:04.840 --> 00:59:07.199
you're twenty twenty two. Extensions work in twenty twenty three.
1228
00:59:07.239 --> 00:59:14.639
You go, let's hear for extensions. Yeah, going into the future.
1229
00:59:14.960 --> 00:59:17.400
Very exciting stuff and that. Yeah, so it's super fast
1230
00:59:17.440 --> 00:59:19.800
to get from you click the install butt until you're
1231
00:59:19.800 --> 00:59:22.679
able to open till you're able to open your solution
1232
00:59:22.760 --> 00:59:25.440
and start writing code. Is probably the fastest ever.
1233
00:59:25.559 --> 00:59:29.079
Fantastic nice All right, Well, geez, I think I ran
1234
00:59:29.119 --> 00:59:31.559
out of questions. You got any more, Richard.
1235
00:59:31.360 --> 00:59:33.920
No good. I think it looks like it's gonna be
1236
00:59:33.960 --> 00:59:35.599
an awesome version of the studio, and it's been a
1237
00:59:35.599 --> 00:59:37.239
while coming, but I understand why.
1238
00:59:37.480 --> 00:59:40.599
Matt, thank you so much. It's been awesome as always.
1239
00:59:40.639 --> 00:59:43.559
Thanks for having me. It's my pleasure as always.
1240
00:59:43.159 --> 00:59:45.400
All right, and we'll talk to you next time on
1241
00:59:45.519 --> 01:00:02.960
dot net brocks.
1242
01:00:07.199 --> 01:00:09.880
Dot net Rocks is brought to you by Franklin's Net
1243
01:00:10.000 --> 01:00:13.960
and produced by Pop Studios, a full service audio, video
1244
01:00:14.039 --> 01:00:18.119
and post production facility located physically in New London, Connecticut,
1245
01:00:18.360 --> 01:00:23.159
and of course in the cloud online at pwop dot com.
1246
01:00:23.360 --> 01:00:25.480
Visit our website at d O T N E t
1247
01:00:25.719 --> 01:00:29.760
R O c k S dot com for RSS feeds, downloads,
1248
01:00:29.880 --> 01:00:33.559
mobile apps, comments, and access to the full archives going
1249
01:00:33.599 --> 01:00:37.000
back to show number one, recorded in September.
1250
01:00:36.440 --> 01:00:37.239
Two thousand and two.
1251
01:00:37.920 --> 01:00:40.239
And make sure you check out our sponsors. They keep
1252
01:00:40.320 --> 01:00:43.480
us in business. Now go write some code, See you
1253
01:00:43.519 --> 01:00:43.960
next time.
1254
01:00:44.880 --> 01:00:46.679
You got Javans
1255
01:00:48.760 --> 01:01:00.559
And s
1
00:00:00.960 --> 00:00:02.879
Hey Richard, Hey Carl, what do you know?
2
00:00:03.120 --> 00:00:06.679
Well, I know that our friend Michelle Rubusta Monte is
3
00:00:06.719 --> 00:00:08.880
with us to tell us about something that's going on
4
00:00:09.519 --> 00:00:11.199
adjacent to DEV Intersection.
5
00:00:11.240 --> 00:00:15.560
What is it? It's cybersecurity Intersection. Let's let Michelle tell
6
00:00:15.599 --> 00:00:16.199
that story.
7
00:00:16.679 --> 00:00:21.320
Hey Michelle, Hey Carl, Hey Richard, how are you.
8
00:00:21.000 --> 00:00:22.839
Tell us about cybersecurity Intersection?
9
00:00:23.480 --> 00:00:26.920
Well, so, Richard and I are partnering with the group
10
00:00:27.000 --> 00:00:30.359
that does DEV Intersection and next Gen AI, and we
11
00:00:30.600 --> 00:00:34.200
are putting on a new conference dedicated to one hundred
12
00:00:34.240 --> 00:00:40.000
percent security focused topics. And I mean, honestly, the lineup
13
00:00:40.039 --> 00:00:43.679
of speakers is incredible. We have Paula A. Jenis, who's
14
00:00:43.719 --> 00:00:47.600
here from Poland and does keynotes all over the world
15
00:00:47.719 --> 00:00:50.600
and is one of the top rated RSA speakers and
16
00:00:50.640 --> 00:00:53.159
black hat speaker. We're so lucky to have her. But
17
00:00:53.240 --> 00:00:56.000
she's not only keynoting, she's got a workshop teaches you
18
00:00:56.039 --> 00:01:01.039
about protecting your environments against hackers and shows you about
19
00:01:01.280 --> 00:01:03.719
how to you know, do attacks so that you can
20
00:01:03.759 --> 00:01:07.840
prevent them. It's pretty cool and sessions like that as well.
21
00:01:07.840 --> 00:01:10.799
But we also have speakers from Microsoft. We have we
22
00:01:10.840 --> 00:01:15.120
have speakers that specialize in you know secure coding practices,
23
00:01:15.640 --> 00:01:20.439
Azure security, Zuero, trust architectures on Azure UH and people
24
00:01:20.439 --> 00:01:23.519
who do decision maker tracks, so things around governance policy
25
00:01:23.560 --> 00:01:26.200
and you know how to how to manage and your
26
00:01:26.200 --> 00:01:29.480
production operations keep them secure. So it's an amazing group
27
00:01:29.519 --> 00:01:31.040
of speakers, really excited about it.
28
00:01:31.120 --> 00:01:33.560
And I think I can count myself among the group
29
00:01:33.599 --> 00:01:34.599
of speakers there.
30
00:01:35.040 --> 00:01:37.079
Well, yes you can, that is right.
31
00:01:37.480 --> 00:01:42.159
Yeah, I'm doing a securing Blazer Server applications talk and
32
00:01:42.239 --> 00:01:45.959
also I think we're doing a Security this Week live
33
00:01:46.040 --> 00:01:48.480
show there somewhere that is correct.
34
00:01:48.719 --> 00:01:51.200
Yeah, we'll be recording Security this Week live. We're going
35
00:01:51.239 --> 00:01:54.719
to have a great panel with some folks. The interesting
36
00:01:54.719 --> 00:01:57.920
thing here is we don't really have a Microsoft and
37
00:01:58.000 --> 00:02:02.120
dot net and Azure focused toecurity conference yet, so that's
38
00:02:02.159 --> 00:02:05.159
the reason we're putting this on as well. You know
39
00:02:05.200 --> 00:02:08.280
there are other security conferences, but they have a spread
40
00:02:08.280 --> 00:02:10.439
of topics that maybe don't focus on the things you
41
00:02:10.520 --> 00:02:13.080
do day to day. And you know this overlaps with
42
00:02:13.199 --> 00:02:17.560
again our community of folks that specialize in again dot net,
43
00:02:17.680 --> 00:02:21.039
Azure and yeah, they need to keep it secure too,
44
00:02:21.280 --> 00:02:22.840
So with tons of talks.
45
00:02:23.719 --> 00:02:27.240
Cyber Intersection is part of a trio of conferences we're doing.
46
00:02:27.280 --> 00:02:30.360
They have Intersection alongside the next Gen AI Conference all
47
00:02:30.439 --> 00:02:34.680
in Orlando the week of October fifth through tenth. That's
48
00:02:34.759 --> 00:02:38.080
workshops and the main conference. And you can get a
49
00:02:38.120 --> 00:02:41.400
special registration code if you sign up through Cybersecurity Intersection
50
00:02:41.639 --> 00:02:42.360
dot com.
51
00:02:42.680 --> 00:02:47.400
Yeah, so if you sign up at Cybersecurity Intersection dot com,
52
00:02:47.599 --> 00:02:52.520
then you put in this code, so Alliance cyber three
53
00:02:52.599 --> 00:02:56.319
hundred and you'll get three hundred off the entry price.
54
00:02:56.560 --> 00:02:59.680
So that's a special code that only works at cybersecurity
55
00:03:00.599 --> 00:03:04.439
dot com. And then you have access to all the conferences.
56
00:03:04.479 --> 00:03:09.400
Like Richard said, Wow, that's cool. Thanks Michelle. I'm looking
57
00:03:09.439 --> 00:03:24.199
forward to it and I'll see you there. Hey, watch
58
00:03:24.199 --> 00:03:27.479
out for falling rocks. Nice, it's dot NetRocks. Watch out
59
00:03:27.520 --> 00:03:31.960
for falling dot NetRocks. I'm Carl Franklin.
60
00:03:31.520 --> 00:03:32.520
And I'm Richard Campbell.
61
00:03:32.639 --> 00:03:36.240
We're here for your listening pleasure again. On episode nineteen
62
00:03:36.479 --> 00:03:41.280
sixty seven, this is the year we were born. Yeah,
63
00:03:41.520 --> 00:03:47.080
and my wife then ye yeah, and a lot of
64
00:03:47.240 --> 00:03:49.479
cool things happen. Should we do better know framework first
65
00:03:49.479 --> 00:03:52.159
and then do what happened in nineteen sixty seven? Or
66
00:03:52.319 --> 00:03:55.400
should we Yeah, let's do that all right, don't mess
67
00:03:55.439 --> 00:03:56.879
with the pattern, roll the music.
68
00:04:05.080 --> 00:04:05.560
What do you got?
69
00:04:05.599 --> 00:04:08.439
I have something intriguing that I have not used, but
70
00:04:08.719 --> 00:04:10.479
you know, I like to look and see what's trending
71
00:04:10.479 --> 00:04:14.280
on GitHub and this one is a tool that lets
72
00:04:14.280 --> 00:04:17.279
you run Windows in a Docker container.
73
00:04:17.480 --> 00:04:18.879
Oh far Oh.
74
00:04:18.480 --> 00:04:23.800
It's docer doc k u r slash Windows on GitHub.
75
00:04:24.000 --> 00:04:26.199
And let me pull the classic And why would you
76
00:04:26.279 --> 00:04:26.560
do that?
77
00:04:26.639 --> 00:04:28.759
Why would you ever want to do that? Yeah? Why
78
00:04:28.759 --> 00:04:30.199
would you want to do that? I'll tell you what.
79
00:04:30.279 --> 00:04:32.240
The only reason I could see doing that is the
80
00:04:32.240 --> 00:04:36.839
same reason i'd want to VM, which is complete and encapsulation.
81
00:04:36.920 --> 00:04:40.120
But I would probably want to do it for security reasons,
82
00:04:40.680 --> 00:04:44.079
you know, like I want to move all my email
83
00:04:44.160 --> 00:04:47.240
reading stuff over there. But in order to do that,
84
00:04:47.319 --> 00:04:51.079
you really have to turn off network access, well local
85
00:04:51.240 --> 00:04:53.160
network access, you have to limit it.
86
00:04:53.399 --> 00:04:55.399
You can do that sort of stuff with virtual desktop too,
87
00:04:55.399 --> 00:04:57.439
if you would, if it's just for that interaction. Yeah,
88
00:04:57.560 --> 00:05:00.360
you know. I funny do you bring this up. Timing's
89
00:05:00.360 --> 00:05:02.720
impeccable as usual, mister Franklin, because I was just having
90
00:05:02.720 --> 00:05:06.120
to chat about the origins of virtualization, realizing you know,
91
00:05:06.160 --> 00:05:11.800
back in the day I was using virtualization for testing installs. Right,
92
00:05:11.879 --> 00:05:14.920
we'd have a baseline. This is the current configuration of
93
00:05:14.920 --> 00:05:16.879
the machine at the company. We're gonna put the new
94
00:05:16.920 --> 00:05:19.279
version on. Let's install it. Make sure it doesn't break anything.
95
00:05:19.319 --> 00:05:21.920
This is back in DLL hell days, right, And when
96
00:05:21.920 --> 00:05:24.800
it did you could use because you were in virtual machine.
97
00:05:24.800 --> 00:05:28.079
You just rolled back to the state before tweaked the install,
98
00:05:28.160 --> 00:05:30.079
figure out what you did, made mistake you and try
99
00:05:30.120 --> 00:05:32.480
it again. Like it was a great testing platform. And
100
00:05:32.519 --> 00:05:35.000
this is like a cool way to approach that problem.
101
00:05:35.040 --> 00:05:37.319
Not that we have those kinds of DLL hells anymore.
102
00:05:37.360 --> 00:05:40.199
Now we have new and extra special DLL health. Is
103
00:05:40.240 --> 00:05:42.040
there such a thing as doctor Hell. I don't know,
104
00:05:43.000 --> 00:05:44.639
Maybe it's I don't know there was doctor help, but
105
00:05:44.639 --> 00:05:47.240
it's definitely new get help and yamel hell. I think
106
00:05:47.399 --> 00:05:49.839
everybody on those of this show knows about new get hell. Yeah.
107
00:05:49.920 --> 00:05:54.319
Yeah, yeah, so it's interesting. I would want to, like,
108
00:05:54.360 --> 00:05:57.040
I say, use it for security reasons. Vms are great,
109
00:05:57.079 --> 00:05:58.879
but you know they can be slow, and if they're
110
00:05:58.920 --> 00:06:00.360
not slow, they're expensive and.
111
00:06:00.800 --> 00:06:03.519
They're big, big, big bulky, Like this is just a
112
00:06:03.839 --> 00:06:04.759
lean way to do this.
113
00:06:05.360 --> 00:06:07.879
Yeah, And you use RDP to connect to it, and
114
00:06:07.959 --> 00:06:10.240
so it's pretty cool. But I'd just like to see
115
00:06:10.240 --> 00:06:12.879
if I could lock it down and you know, use
116
00:06:12.920 --> 00:06:15.839
it for Internet browsing and email and all those things.
117
00:06:15.879 --> 00:06:16.759
So interesting.
118
00:06:16.879 --> 00:06:20.399
If I do get phished, you know, I'm not going
119
00:06:20.439 --> 00:06:23.399
to get ransomwared. That's that's why I would want to use.
120
00:06:23.360 --> 00:06:24.839
It, right, or you are, but it's just going to
121
00:06:24.879 --> 00:06:26.360
be on a machine that you don't have anything important on,
122
00:06:26.480 --> 00:06:28.279
so you don't care. Just pave it and go again.
123
00:06:28.759 --> 00:06:29.720
Yeah yeah, or you.
124
00:06:29.720 --> 00:06:32.000
Don't even have to pave it. You just rebuild the
125
00:06:32.000 --> 00:06:34.199
container and to help you go.
126
00:06:34.439 --> 00:06:38.480
Right, yeah, yeah, so long as it doesn't touch your
127
00:06:38.839 --> 00:06:40.639
discs and your you know, well.
128
00:06:40.439 --> 00:06:41.959
You give it a yeah, he got no rights to
129
00:06:42.000 --> 00:06:42.439
anything else.
130
00:06:42.480 --> 00:06:45.240
Give it an area of the disk, and give it
131
00:06:45.560 --> 00:06:46.399
limited network.
132
00:06:46.439 --> 00:06:48.439
No, it's living in that little space. You put it
133
00:06:48.480 --> 00:06:50.879
on its own virtual network, so it only can communicate
134
00:06:50.920 --> 00:06:53.199
the Internet, nothing else in your network. Like, yeah, we've
135
00:06:53.199 --> 00:06:56.120
done all this. This is good honeypot testing and black
136
00:06:56.160 --> 00:06:58.000
app testing, like this is where you do this stuff.
137
00:06:58.040 --> 00:06:58.639
It's cool idea.
138
00:06:58.680 --> 00:07:00.240
So it's cool. I'm going to talk to Doane and
139
00:07:00.279 --> 00:07:02.959
Patrick about that on the next security this week. But yeah,
140
00:07:03.040 --> 00:07:05.480
that's what I got. So who's talking to us.
141
00:07:05.560 --> 00:07:08.360
Richard grabbed a comment off a show from fifteen sixty
142
00:07:08.480 --> 00:07:10.480
going back a few years. It's from July of twenty
143
00:07:10.519 --> 00:07:12.720
eighteen with one Mads Christensen. Maybe you've heard him and
144
00:07:12.720 --> 00:07:15.839
can't wear his glasses very well when we're talking about
145
00:07:15.839 --> 00:07:19.199
writing visual studio extensions, I'm talking about his headshot because
146
00:07:19.199 --> 00:07:21.399
he's got this headshot with his glasses all askew, which
147
00:07:21.439 --> 00:07:24.600
is hilarious inside joke. And admittedly this is a few
148
00:07:24.639 --> 00:07:26.879
years ago, so this is a comment from Scott Hirstell
149
00:07:27.480 --> 00:07:29.920
who said, holy smokes. After listening to this episode, I
150
00:07:30.000 --> 00:07:32.879
took a dive into the visual studio marketplace to see
151
00:07:32.920 --> 00:07:35.480
what kinds of extensions were available, and after hearing about
152
00:07:35.480 --> 00:07:38.680
the image optimizer on the show, Thank you Mads, I
153
00:07:38.680 --> 00:07:40.439
figured i'd give web Essentials a shot. One of the
154
00:07:40.439 --> 00:07:42.399
most satisfying things about this tool was the ability to
155
00:07:42.399 --> 00:07:45.279
save my files and have the browser automatically reload so
156
00:07:45.319 --> 00:07:47.720
I can check out my changes. There are so many
157
00:07:47.720 --> 00:07:50.920
goodies and web Essentials, thank you for your excellent work.
158
00:07:51.279 --> 00:07:54.000
Oh and Fartacus is pretty good too. Everybody at the
159
00:07:54.000 --> 00:07:55.920
officer you get a kick out of that one was
160
00:07:55.959 --> 00:07:58.399
this from the era of the fart app was that
161
00:07:58.439 --> 00:07:59.480
what Fardacus was.
162
00:07:59.720 --> 00:08:04.199
Yeah, the part is the original fart app for visual studio.
163
00:08:04.920 --> 00:08:06.920
So like you press a control key and it goes
164
00:08:07.480 --> 00:08:08.319
or something or.
165
00:08:08.360 --> 00:08:10.240
Well, of course there's a hot key, but you can
166
00:08:10.279 --> 00:08:13.319
also you set it up so that when the build fails.
167
00:08:13.319 --> 00:08:16.480
Ah, it's that or sad trombone, right.
168
00:08:18.480 --> 00:08:20.519
There are some forks of it that does like you know,
169
00:08:20.959 --> 00:08:22.360
Homer Simpson kind of.
170
00:08:22.319 --> 00:08:26.279
Oh yeah and stuff. I remember setting up a rig
171
00:08:26.759 --> 00:08:29.360
where when the build failed, it turned on a red
172
00:08:29.399 --> 00:08:33.000
flashing light and everybody on the team had nerf guns
173
00:08:33.039 --> 00:08:34.480
and you all shot the guy who wrote the bell.
174
00:08:35.759 --> 00:08:38.840
It's nice, yeah, Scott, thank you so much. Here comment
175
00:08:38.879 --> 00:08:40.399
and a copy of music Goby is on its way
176
00:08:40.440 --> 00:08:41.879
to you. And if you'd like a copy of music Cobe,
177
00:08:41.919 --> 00:08:43.799
I write a comment on the website at dot NetRocks
178
00:08:43.799 --> 00:08:45.639
dot com or on Facebook, so you publish every show
179
00:08:45.679 --> 00:08:47.200
there and if you comment there and I read it
180
00:08:47.200 --> 00:08:48.200
on the show, we'll send you a copy.
181
00:08:48.279 --> 00:08:50.519
Music go by and we're talking about music to Code by,
182
00:08:50.559 --> 00:08:52.559
which you can get at music to Code by dot net.
183
00:08:52.600 --> 00:08:57.200
We have twenty two tracks all in MP three flack
184
00:08:57.480 --> 00:09:04.039
or wave format, helping people write code since twenty sixteen.
185
00:09:04.120 --> 00:09:07.399
I can't remember when I started it, but anyway, that's it.
186
00:09:08.360 --> 00:09:10.360
So let's talk about nineteen sixty seven. Brother.
187
00:09:10.440 --> 00:09:11.600
All right, dude, where do you want to go?
188
00:09:11.679 --> 00:09:13.279
Well, first of all, we were born that year.
189
00:09:13.360 --> 00:09:16.399
My wife is born that year. That's ye happened.
190
00:09:16.440 --> 00:09:20.120
But one thing that's really important to me is this
191
00:09:20.200 --> 00:09:22.720
is when Sergeant Peppers was released.
192
00:09:22.960 --> 00:09:24.480
Yeah, right, that's true.
193
00:09:24.639 --> 00:09:28.120
One of the most iconic rock albums of all time.
194
00:09:28.279 --> 00:09:30.759
It was also a transformative album for the Beatles too,
195
00:09:30.919 --> 00:09:32.559
like it was a very different style.
196
00:09:32.720 --> 00:09:34.440
Well, they were sort of in a rut. I remember
197
00:09:34.480 --> 00:09:36.840
Paul McCartney talking about this. They were in a rut
198
00:09:37.399 --> 00:09:40.480
in Beatlemania, you know, and they wanted to break out
199
00:09:40.519 --> 00:09:44.200
of the mop top kind of image and they were
200
00:09:44.240 --> 00:09:46.799
just beside themselves. They're like, well, this is who we are.
201
00:09:47.360 --> 00:09:49.960
And Paul came up with the idea and he said,
202
00:09:50.519 --> 00:09:53.759
what if we just put on these personas and we
203
00:09:53.879 --> 00:09:57.960
wrote music from the perspective of these guys rather than
204
00:09:58.000 --> 00:10:02.240
the Beatles, Right, So looks end and it was really
205
00:10:02.320 --> 00:10:05.440
good and it broke them through. That broke them through
206
00:10:05.480 --> 00:10:09.440
their issues. So other things that happen. Of course, it
207
00:10:09.519 --> 00:10:12.720
was the summer of Love Right the Human Being in
208
00:10:12.759 --> 00:10:16.360
San Francisco on January fourteenth marked the beginning of the
209
00:10:16.399 --> 00:10:20.000
Summer of Love, attracting over two twenty thousand people celebrating
210
00:10:20.000 --> 00:10:24.879
piece of music. Vietnam War, Lynn and Johnson requested more
211
00:10:24.879 --> 00:10:26.960
funding for the Vietnam War during his State of the
212
00:10:27.039 --> 00:10:31.279
Union of Dress on January tenth. Civil Rights Thirdgod Marshall
213
00:10:31.399 --> 00:10:33.799
was confirmed as the first Black Supreme Court justice on
214
00:10:33.799 --> 00:10:38.559
August thirty, big significant milestone. I'll let you talk about
215
00:10:38.559 --> 00:10:42.279
science and space, but sure, yeah. I think Jack Ruby
216
00:10:42.360 --> 00:10:46.519
was shot on January third. I think you're a year
217
00:10:46.600 --> 00:10:50.039
too far ahead. Oh really yeah, Oh Jack Ruby's death.
218
00:10:51.240 --> 00:10:55.240
Jack Ruby, who killed Lee Harvey Oswald, died on January third. Yeah,
219
00:10:55.279 --> 00:10:57.759
so he died that year. It wasn't he didn't get shot.
220
00:10:58.600 --> 00:11:01.399
I had that backwards. What happened in space and tech?
221
00:11:01.759 --> 00:11:03.840
There's all the time. There's a lot of stuff coming
222
00:11:03.879 --> 00:11:06.879
in tech at this point, like the you know, we're
223
00:11:06.919 --> 00:11:09.240
only a year or two away from arpinnet becoming real,
224
00:11:09.399 --> 00:11:12.320
so we're just we're just getting going there. But the
225
00:11:12.440 --> 00:11:17.360
language logo is first published in nineteen sixty seven. While
226
00:11:17.360 --> 00:11:20.399
if You're say gets say more, Pact and Cynthia Solomon.
227
00:11:20.440 --> 00:11:22.360
They were working for a company called BBN, who was
228
00:11:22.440 --> 00:11:26.279
also a central part of Arpanet. Sorry, the dog, after
229
00:11:26.559 --> 00:11:28.559
being silent for hours, has decided to bark.
230
00:11:28.600 --> 00:11:30.720
Now, Oh that's all right. We have to be real
231
00:11:30.759 --> 00:11:33.240
once in a while, don't we. Yeah, little dog bark
232
00:11:33.320 --> 00:11:37.120
never heard anybody. It was logo and a particular type
233
00:11:37.120 --> 00:11:40.720
of language like function, functional or procedural or.
234
00:11:40.720 --> 00:11:45.840
It was a it was a It was an interpreted language.
235
00:11:45.879 --> 00:11:48.879
And this is where turtle graphics came from, like sort
236
00:11:48.919 --> 00:11:53.759
of vector draw on the screen. Right, Yeah, it's turtle basic. Yeah, well,
237
00:11:53.799 --> 00:11:56.879
turtle basics another thing. But this was a turtle logo.
238
00:11:56.960 --> 00:12:00.200
You used turtle graphics as much graphics. We suppose to
239
00:12:00.240 --> 00:12:02.759
be the term they called it logo from the Greek
240
00:12:02.919 --> 00:12:06.039
logos for word or thought.
241
00:12:06.799 --> 00:12:10.320
Interesting. So anything in space yeah.
242
00:12:09.960 --> 00:12:13.840
Well yeah. This is the year of the most launches
243
00:12:14.000 --> 00:12:18.799
in history until twenty twenty one until SpaceX blows the
244
00:12:18.840 --> 00:12:21.440
record out one hundred and seventy two launches during the
245
00:12:21.519 --> 00:12:23.759
Soviet Union and the United States.
246
00:12:24.000 --> 00:12:24.279
Wow.
247
00:12:24.799 --> 00:12:28.279
It's also the year of the Apollo one fire. In January,
248
00:12:28.519 --> 00:12:32.240
chrisdom and White and Chaffee lose their lives in a
249
00:12:32.279 --> 00:12:36.080
plugs out test on the stand and stops the Apollo program.
250
00:12:36.200 --> 00:12:36.399
Wow.
251
00:12:36.519 --> 00:12:38.720
For some time as they figure out the mistakes that
252
00:12:38.759 --> 00:12:40.960
they were making. There was wiring problems. They were using
253
00:12:40.960 --> 00:12:44.559
a pure auction environment, which created more risk. But it's
254
00:12:44.600 --> 00:12:47.519
also the year that they fly for surveyors, which were
255
00:12:47.600 --> 00:12:50.840
the robotic landers for the Moon, three of which will
256
00:12:50.879 --> 00:12:53.000
landsafe on the Moon. The fourth will make a what
257
00:12:53.039 --> 00:13:00.120
they call vigorous land. Also, so use one flies if
258
00:13:00.360 --> 00:13:05.120
the first Soyuz flies with a single cosmonaut, Vladimir Komarov,
259
00:13:05.120 --> 00:13:07.559
who will also lose his life after a day in
260
00:13:07.639 --> 00:13:09.960
space on the way down, the parachute on his re
261
00:13:10.080 --> 00:13:14.879
entry module failed. Any bomb did not survive, and the
262
00:13:14.960 --> 00:13:18.919
Soviets successfully get the Venera four mission after several tries
263
00:13:18.960 --> 00:13:22.799
to Venus and it lasts about ninety minutes before it melts.
264
00:13:22.879 --> 00:13:25.720
Yeah, what were they thinking, Hey, let's go to Venus.
265
00:13:26.159 --> 00:13:28.519
Well, now they were trying to You know, they taught
266
00:13:28.600 --> 00:13:32.200
us a lot. The Soviets are the only nation to
267
00:13:32.200 --> 00:13:34.879
ever land anything successfully on Venus. Oh, they did land,
268
00:13:35.159 --> 00:13:37.519
but you know, it lasted a while. It's very tough.
269
00:13:37.519 --> 00:13:39.679
Conditions are very very hot, high pressure there.
270
00:13:39.799 --> 00:13:40.000
Wow.
271
00:13:40.440 --> 00:13:42.960
And finally by the end of the year they ratify
272
00:13:43.120 --> 00:13:47.159
the Outer Space Treaty, which is especially contrapuntal today now
273
00:13:47.240 --> 00:13:49.720
because this is the treaty that says you can't own
274
00:13:49.799 --> 00:13:53.759
the Moon and no weapons in space and don't go
275
00:13:54.000 --> 00:13:56.639
setting off nukes on the moon, which is one of
276
00:13:56.639 --> 00:14:00.519
the American things. Americans considered doing was to test a
277
00:14:00.559 --> 00:14:03.320
nuclear upon on the Moon. So that doesn't happen, and
278
00:14:03.360 --> 00:14:04.879
the out of space were you're supposed to stop all that.
279
00:14:04.960 --> 00:14:06.960
Now there's a conversation about does this treaty still make
280
00:14:07.000 --> 00:14:08.960
sense because it's from nineteen sixty seven. It's a long
281
00:14:09.000 --> 00:14:11.679
time ago, and now that we're actually talking about utilizing
282
00:14:11.720 --> 00:14:14.120
resources on the moon, how do we make this work?
283
00:14:14.639 --> 00:14:17.919
Very cool? Yeah, good stuff. I think this year's geekout
284
00:14:17.960 --> 00:14:20.039
is going to be really good. Are the geek outs?
285
00:14:21.120 --> 00:14:23.639
Yeah, there's going to be a few geekouts, including when
286
00:14:23.799 --> 00:14:26.440
after this, when this show is published, I'll have already
287
00:14:26.440 --> 00:14:30.320
taken a tour of Copenhagen Atomics thorium reactors, so oh wow,
288
00:14:30.399 --> 00:14:33.200
Either I'll be dead or I'll have a phenomenal interview
289
00:14:33.200 --> 00:14:35.919
with their team talking about building thorium right, or both.
290
00:14:36.559 --> 00:14:42.200
As it turns out, you'll publish it posthumously, right, I'll
291
00:14:42.679 --> 00:14:45.679
actually there's no They're in Denmark and Denmark does not
292
00:14:45.759 --> 00:14:49.039
allow nuclear reactors, so what a great place to build one. Yeah,
293
00:14:49.360 --> 00:14:51.000
and so what I don't have a whole lot of
294
00:14:51.080 --> 00:14:53.639
risk there. They're actually making it portable enough that they're
295
00:14:53.639 --> 00:14:57.279
going to take it to Switzerland to operate it as
296
00:14:57.279 --> 00:14:59.240
a test run. Then they're allowed to bring it back
297
00:14:59.279 --> 00:15:02.279
as long as it's not operating and do some tests
298
00:15:02.720 --> 00:15:05.320
evaluations of it. So that's what's going to be good
299
00:15:05.519 --> 00:15:07.960
with that. But yeah, no exciting times. Don't worry the fall.
300
00:15:08.240 --> 00:15:10.159
This winter's geek outs will be big, yeah, and there
301
00:15:10.159 --> 00:15:11.120
may be a few extra ones.
302
00:15:11.200 --> 00:15:13.279
Yeah, all right, and with that, let's bring on Mads.
303
00:15:13.480 --> 00:15:16.279
Mads Christiansen is a program manager on the Visual Studio
304
00:15:16.320 --> 00:15:19.399
team at Microsoft, with the privilege to work with the
305
00:15:19.559 --> 00:15:24.320
extension community and ecosystem. He's an avid extension writer himself,
306
00:15:24.360 --> 00:15:27.919
with over one hundred published extensions to Visual Studio Marketplace.
307
00:15:28.279 --> 00:15:31.440
Before joining Microsoft, he spent a decade as a web developer,
308
00:15:31.519 --> 00:15:35.039
working at both startups and enterprise companies. His wife and
309
00:15:35.120 --> 00:15:38.200
two young sons all enjoy and support his adventures in
310
00:15:38.279 --> 00:15:40.879
the world of home automation. Welcome back mads.
311
00:15:41.039 --> 00:15:42.799
Hey, guys, glad to be here.
312
00:15:42.879 --> 00:15:44.679
You mad extension writer. You.
313
00:15:45.200 --> 00:15:48.000
I think we're over two hundred now, wow, crazy, got
314
00:15:48.000 --> 00:15:50.360
to update your bios. You are the marketplace, sir.
315
00:15:51.960 --> 00:15:52.480
That's right.
316
00:15:53.480 --> 00:15:56.519
Yeah, I don't know. There's a lot of extensions out there.
317
00:15:56.480 --> 00:15:58.879
So far be it from me to use dot net
318
00:15:59.000 --> 00:16:01.360
rocks as a place where I can get a personal
319
00:16:01.399 --> 00:16:04.240
answer about some feature that I want in visual studio.
320
00:16:04.480 --> 00:16:05.639
But I'm going to do it anyway.
321
00:16:05.720 --> 00:16:06.399
Yeah, go ahead.
322
00:16:06.639 --> 00:16:09.879
So I've noticed, you know, I'm a Blazer developer mostly,
323
00:16:10.559 --> 00:16:13.879
and when I'm building a web application, I noticed that
324
00:16:14.399 --> 00:16:19.120
every time I hit play, the position and size of
325
00:16:19.200 --> 00:16:24.039
the browser that comes up is automatically set something to
326
00:16:24.120 --> 00:16:28.200
where the last browser window that had focus is. And
327
00:16:28.240 --> 00:16:31.360
it drives me absolutely nuts. And because you know, I've
328
00:16:31.399 --> 00:16:33.919
got windows all over the place, and if I click
329
00:16:33.960 --> 00:16:36.519
on the one to mute the TV that I'm watching,
330
00:16:36.919 --> 00:16:39.039
and then I go back and press play, now it's
331
00:16:39.159 --> 00:16:42.879
over the TV window, right. So I wanted to know
332
00:16:42.919 --> 00:16:46.879
if there's an extension that you've created to automatically set
333
00:16:46.879 --> 00:16:49.039
the position and location of a browser every time you
334
00:16:49.120 --> 00:16:49.440
run it.
335
00:16:49.679 --> 00:16:53.320
Well, no, I have not written anything for it, but
336
00:16:53.759 --> 00:16:56.919
this is I don't know how this is, like it
337
00:16:56.960 --> 00:16:58.600
happens to me too when it has nothing to do
338
00:16:58.600 --> 00:17:01.879
with Mitchell Studio. Right, but if you have multiple you know,
339
00:17:02.000 --> 00:17:04.200
edge browsers open, you have one for your work account
340
00:17:04.240 --> 00:17:06.200
and one for your private or whatever, right, and you
341
00:17:06.279 --> 00:17:08.480
then click a link and outlook, Yeah, it will open
342
00:17:08.559 --> 00:17:10.279
it in the last browser you had active.
343
00:17:10.440 --> 00:17:13.359
Yeah, so it's a browser thing. But surely there must
344
00:17:13.400 --> 00:17:16.039
be a way to tell the browser. Yeah, open it here,
345
00:17:16.240 --> 00:17:17.559
like in JavaScript or something.
346
00:17:17.680 --> 00:17:19.599
Yeah, and really you don't want to even doc that,
347
00:17:20.000 --> 00:17:23.200
you know, the tap It should just be its own thing, right, Yeah? Yeah,
348
00:17:23.920 --> 00:17:25.640
did you? I don't. I don't know if we I've
349
00:17:25.680 --> 00:17:28.319
never seen this request before, but that doesn't mean it
350
00:17:28.319 --> 00:17:30.960
doesn't exist. If it does exist, you should vote for
351
00:17:31.000 --> 00:17:31.759
it or create it.
352
00:17:31.799 --> 00:17:34.160
I entered it as a suggestion in the Visual Studio.
353
00:17:34.319 --> 00:17:37.000
There's a link too. Yeah I did that. I haven't
354
00:17:37.000 --> 00:17:39.200
heard back yet. I just didn't know. I went looking
355
00:17:39.279 --> 00:17:41.039
and I didn't see anything. But I figured, you know,
356
00:17:41.079 --> 00:17:43.519
if anybody knows Mad's nos, Yeah, so.
357
00:17:43.599 --> 00:17:45.400
Make sure you put a link in so that everyone,
358
00:17:45.440 --> 00:17:46.799
any listener can go and vote.
359
00:17:46.599 --> 00:17:50.240
For There you go, Yeah, leverage leverage the podcast friend
360
00:17:50.759 --> 00:17:52.519
if you get it voted up to the top, you know,
361
00:17:52.559 --> 00:17:54.480
then they're they're going to talk about it. Oh yeah,
362
00:17:54.519 --> 00:17:56.599
that's cool, that is their priority list.
363
00:17:56.680 --> 00:17:59.759
Yeah, well, we don't know. Sometimes you see something like
364
00:17:59.799 --> 00:18:02.119
this and you think, oh, yeah, this is not going
365
00:18:02.200 --> 00:18:03.880
to be that hard to do, right, Yeah, and then
366
00:18:03.920 --> 00:18:06.400
it turns out it's really really hard to do. Right.
367
00:18:06.400 --> 00:18:08.519
So even though you are able to vote something up
368
00:18:08.519 --> 00:18:11.119
to the top, that doesn't guarantee that we can do
369
00:18:11.160 --> 00:18:13.079
it if it's like really expensive.
370
00:18:13.000 --> 00:18:15.559
Right, or or we don't know how well, and you
371
00:18:15.599 --> 00:18:18.240
always have the niche problem, right, like a certain group
372
00:18:18.279 --> 00:18:20.599
of people really want this, but it represents a tiny
373
00:18:20.640 --> 00:18:23.720
amount of the customer base, Like there's always got to
374
00:18:23.759 --> 00:18:26.000
be a waiting on those kinds of Well, it depends.
375
00:18:26.000 --> 00:18:27.880
I think it's one of those features that people don't
376
00:18:27.920 --> 00:18:30.880
know they need it until they get frustrated enough and
377
00:18:30.920 --> 00:18:32.880
say what the heck right exactly?
378
00:18:33.400 --> 00:18:35.440
And we usually say that, you know, one vote or
379
00:18:35.480 --> 00:18:38.599
one bug represent a thousand people.
380
00:18:39.119 --> 00:18:40.680
Yeah, so yeah, it won't.
381
00:18:40.720 --> 00:18:43.039
It doesn't have that many people like or it's a
382
00:18:43.039 --> 00:18:46.000
small niche. Let's say it's only five percent of you know,
383
00:18:46.079 --> 00:18:48.519
Visual Studios user base or whatever, but that's still like
384
00:18:48.640 --> 00:18:53.359
hundreds of thousands of people, right right, So it's important
385
00:18:53.359 --> 00:18:55.359
that you know even the small things are big just
386
00:18:55.359 --> 00:18:58.599
because we're dealing with like millions of monthly active users,
387
00:18:58.680 --> 00:18:59.480
right right right.
388
00:18:59.880 --> 00:19:02.440
I heard that you guys are I don't know who
389
00:19:02.480 --> 00:19:06.160
you guys is, but Microsoft engineers are required to look
390
00:19:06.160 --> 00:19:09.240
at that list twice a week and actually look at
391
00:19:09.240 --> 00:19:11.119
all the new suggestions.
392
00:19:11.640 --> 00:19:14.680
Yeah we so we don't really have a requirement for that,
393
00:19:15.000 --> 00:19:19.759
but we are required to fix any high important bugs
394
00:19:19.799 --> 00:19:22.279
like P one' or P two priority one or zero
395
00:19:22.400 --> 00:19:25.559
bugs okay, and they have we have an whole SLA,
396
00:19:26.599 --> 00:19:29.200
like a service license agreement there with like that we
397
00:19:29.319 --> 00:19:32.039
have to fix them for the next service release that
398
00:19:32.079 --> 00:19:36.839
we that we publish like on a weekly basis. So yeah,
399
00:19:36.839 --> 00:19:40.400
we take that stuff really seriously. So you probably can't
400
00:19:40.400 --> 00:19:42.759
do that without looking at your list of bugs twice
401
00:19:42.759 --> 00:19:46.359
a week. But there's no requirement for looking at the list.
402
00:19:46.480 --> 00:19:51.680
The requirement is to fix them. Yeah, but that's for bugs,
403
00:19:51.720 --> 00:19:52.920
that's not for feature requests.
404
00:19:53.079 --> 00:19:55.720
Oh right, yeah, yeah, this is this is just the
405
00:19:55.759 --> 00:19:58.519
suggestion list, I guess future requests list.
406
00:19:58.640 --> 00:20:04.240
Yeah, yeah, well we have actually do we do implement
407
00:20:04.480 --> 00:20:07.079
one point two feature requests per workday.
408
00:20:07.480 --> 00:20:07.759
Wow.
409
00:20:07.799 --> 00:20:10.000
If you look at the average of the last twelve months, wow,
410
00:20:10.039 --> 00:20:11.480
and that that trend is going up.
411
00:20:11.920 --> 00:20:14.680
Wow. Are you guys going faster or are they get
412
00:20:14.720 --> 00:20:17.759
requests getting easier? Like, how do you get that quest? No?
413
00:20:18.319 --> 00:20:19.680
I think it's a little bit of a mind shift.
414
00:20:19.680 --> 00:20:21.160
I don't know if you've noticed it over the last
415
00:20:21.200 --> 00:20:25.680
two or three years. But things that before wasn't prioritized
416
00:20:25.720 --> 00:20:29.039
because it was maybe had low impact, Like some bugs
417
00:20:29.039 --> 00:20:30.720
come in or some feature requests come in and they
418
00:20:30.799 --> 00:20:34.519
kind of have low impact. They don't you know, some
419
00:20:34.599 --> 00:20:37.079
of these suggestions were not like something that would open
420
00:20:37.119 --> 00:20:41.000
new scenarios. They might just be like little delighters or hey,
421
00:20:41.000 --> 00:20:43.200
it would be nice if but they weren't like blocking
422
00:20:43.279 --> 00:20:45.000
you for doing what you needed to do. And we
423
00:20:45.400 --> 00:20:48.920
had a hard time prioritizing that type of feature request
424
00:20:48.960 --> 00:20:51.440
in the past, whereas now it's a little different because
425
00:20:51.759 --> 00:20:54.160
you know, when you're using visual studio eight ten hours
426
00:20:54.200 --> 00:20:57.319
a day, you're using half your waken live in visual studio, right,
427
00:20:57.359 --> 00:21:02.799
it's kind of crazy. So all these little things, because
428
00:21:02.799 --> 00:21:05.279
you're using it so much, they become big and they're
429
00:21:05.279 --> 00:21:09.839
big things. And so by kind of making that change,
430
00:21:10.079 --> 00:21:13.039
of mindset a little bit to look at things differently.
431
00:21:14.519 --> 00:21:17.279
We've been able to double down on a bunch of
432
00:21:17.279 --> 00:21:20.640
the small issues and a bunch of the small like
433
00:21:20.680 --> 00:21:25.519
paper cuts, industry standard things, muscle memory issues that didn't
434
00:21:25.559 --> 00:21:29.240
before carry over from other apps into Visual Studio for shortcuts,
435
00:21:29.240 --> 00:21:32.359
for instance, like just taking them one out of time,
436
00:21:32.480 --> 00:21:34.759
Like let's just double down on that type of stuff,
437
00:21:34.799 --> 00:21:39.480
and you know it. I think the shift is if
438
00:21:39.599 --> 00:21:42.359
you know, this sounds super cliche, but the shift I
439
00:21:42.359 --> 00:21:45.519
think has gone a little bit from focusing, you know,
440
00:21:45.640 --> 00:21:50.599
primarily on productivity and instead of focusing more on happiness,
441
00:21:50.759 --> 00:21:54.079
like developer happiness. You can't be happy developer if you're
442
00:21:54.079 --> 00:21:56.960
not productive. So it includes the productivity thing, but it's more.
443
00:21:57.079 --> 00:22:00.000
It's also about like are you looking forward to working
444
00:22:00.000 --> 00:22:01.000
studio every morning?
445
00:22:01.079 --> 00:22:01.240
Right?
446
00:22:01.559 --> 00:22:05.559
Is there a smile on your face? Do you feel empowered? Inspired, creative?
447
00:22:06.759 --> 00:22:08.680
This vis studio kind of get out of the way
448
00:22:09.359 --> 00:22:12.200
when it needs to and help you when that's a requirement,
449
00:22:12.640 --> 00:22:14.200
like all that type of stuff.
450
00:22:14.400 --> 00:22:15.279
I've got issues.
451
00:22:16.720 --> 00:22:18.319
We all have issues, probably.
452
00:22:18.559 --> 00:22:21.519
Probably nothing to do with what you work on, but
453
00:22:21.799 --> 00:22:24.960
isn't me or has GitHub co pilot just completely taken
454
00:22:25.000 --> 00:22:29.319
over like now I start typing a variable and it
455
00:22:29.319 --> 00:22:34.079
gives me this long thing and there are gray letters
456
00:22:34.119 --> 00:22:37.000
in there that are like and as I'm typing, like,
457
00:22:37.079 --> 00:22:39.440
it's I don't even know when I'm typed, I have
458
00:22:39.519 --> 00:22:43.079
no idea what's going on. It's gotten so crazy. Yeah,
459
00:22:43.240 --> 00:22:45.400
and I know you can control that, but.
460
00:22:45.720 --> 00:22:48.079
So you can control it now. So what we're adding
461
00:22:48.960 --> 00:22:52.640
is a way for that not to happen automatically, but
462
00:22:52.759 --> 00:22:54.799
only at a keyboard short cut. So instead of having
463
00:22:54.880 --> 00:22:57.920
it automatically show up, it can be only when you
464
00:22:58.000 --> 00:22:59.279
request ith.
465
00:22:59.319 --> 00:23:00.640
Okay, I like, so.
466
00:23:00.640 --> 00:23:02.880
You you you can control more of that because some
467
00:23:02.880 --> 00:23:06.319
people they really like kind of that feeling of just
468
00:23:06.400 --> 00:23:09.240
tapping their way through and and other people they really
469
00:23:09.319 --> 00:23:11.880
want not to have that. And so now you can
470
00:23:11.920 --> 00:23:14.160
figure it. You can. You can now customize it.
471
00:23:14.160 --> 00:23:15.079
How about a foot switch?
472
00:23:16.319 --> 00:23:17.920
Yeah you can do on off. Yeah you can do that.
473
00:23:18.000 --> 00:23:20.559
I love I love foot switches. I'm a musician, right,
474
00:23:20.599 --> 00:23:23.240
so I have guitar pedals and stuff, but you know,
475
00:23:23.440 --> 00:23:26.440
if I had a little pedal board under my you know,
476
00:23:27.000 --> 00:23:30.319
to to Oh, I want that feature. I want that feature,
477
00:23:30.400 --> 00:23:35.960
these momentary on off toggles, that'd be so cool. Somebody
478
00:23:36.000 --> 00:23:36.359
should do.
479
00:23:36.359 --> 00:23:39.079
That, that'd be the equivalent of a distortion distortion pedal.
480
00:23:39.119 --> 00:23:41.160
There you go, yeah, exactly. You know I'd add some
481
00:23:41.240 --> 00:23:44.759
distortion to my to my API controllers.
482
00:23:44.960 --> 00:23:48.599
Yes, yeah, you know a lot of a lot of
483
00:23:48.680 --> 00:23:50.559
effort goes into it. And the new version of visual
484
00:23:50.599 --> 00:23:53.400
Studio here is like it's a big foundational upgrade when
485
00:23:53.440 --> 00:23:57.119
it comes to to AI. So with with visual Studio,
486
00:23:57.160 --> 00:23:59.839
we are in a unique position where we know a
487
00:23:59.839 --> 00:24:04.079
lot about all the different aspects off your workflow. We
488
00:24:04.160 --> 00:24:06.759
know about your GET issues, it's your tracker. We know
489
00:24:06.839 --> 00:24:10.839
about profiling and debugging and unit testing, and maybe we
490
00:24:10.880 --> 00:24:13.519
know about your CICD, and we know about your let's say,
491
00:24:13.559 --> 00:24:18.079
ASTRA deployment environments and whatnot. And so the more we
492
00:24:18.119 --> 00:24:21.720
know and the more Copiled is able to understand, the
493
00:24:21.759 --> 00:24:25.599
more useful it can become. And so this is really
494
00:24:25.680 --> 00:24:28.359
kind of one of those foundational updates that kind of
495
00:24:28.960 --> 00:24:32.279
infrastructure wise sets us up for the future and for
496
00:24:32.359 --> 00:24:36.559
adding features on top that's like way more that goes
497
00:24:36.599 --> 00:24:39.160
way deeper and just more helpful.
498
00:24:39.240 --> 00:24:43.599
And are you guys, guidance seems to be like an issue,
499
00:24:43.599 --> 00:24:46.160
But then again, I don't go looking for it. I'm
500
00:24:46.200 --> 00:24:49.079
so spoiled by chatch ept searching the web for me
501
00:24:49.160 --> 00:24:51.880
that I'm really disappointed when I go to Google and
502
00:24:51.920 --> 00:24:55.680
I type something and I don't get like good results,
503
00:24:55.880 --> 00:24:59.119
you know. So like a video that explains how to
504
00:24:59.240 --> 00:25:04.039
control co pilot, I'm sure is out there. I'm just
505
00:25:04.359 --> 00:25:06.640
conditioned to not go look for it.
506
00:25:06.759 --> 00:25:09.480
Yeah, it's out there, and a lot more will come.
507
00:25:10.519 --> 00:25:12.359
But yeah, there's a bunch of great videos out there
508
00:25:12.400 --> 00:25:15.240
already and articles and tutorials and whatnot.
509
00:25:15.279 --> 00:25:16.960
Oh I know, yeah that's good stuff.
510
00:25:17.000 --> 00:25:19.200
But I think but it's an interesting thing, right because
511
00:25:19.279 --> 00:25:23.599
the question is always like why do you need why
512
00:25:23.640 --> 00:25:26.640
do you need a description of how to do something right?
513
00:25:26.680 --> 00:25:29.680
It should be autodiscoverable just by the way you design
514
00:25:29.720 --> 00:25:30.200
the software.
515
00:25:30.240 --> 00:25:32.400
Well yeah, more importantly, if you know how to do it,
516
00:25:32.599 --> 00:25:33.480
just do it right.
517
00:25:34.279 --> 00:25:35.519
Yeah that's another thing.
518
00:25:36.000 --> 00:25:37.799
Can we skip over? They don't explain this to me,
519
00:25:37.920 --> 00:25:40.400
just do it? Phase Like, yeah, I'm tired, I got
520
00:25:40.400 --> 00:25:42.039
stuff to do, Like, let's move on. Yeah.
521
00:25:42.079 --> 00:25:45.119
I mean I suppose you could use the copilot agent,
522
00:25:45.960 --> 00:25:48.680
you know, or chat in visual studio to help you
523
00:25:49.039 --> 00:25:51.519
figure those things out. I find that to be a
524
00:25:51.680 --> 00:25:52.680
very valuable tool.
525
00:25:52.960 --> 00:25:55.960
Yeah, And you know, but sometimes the best prompt is
526
00:25:56.039 --> 00:25:59.119
no prompt. So that's that's when you have a let's
527
00:25:59.119 --> 00:26:00.720
say you have a button that us or it comes
528
00:26:00.799 --> 00:26:02.839
up automatically, and so we have we have that in
529
00:26:02.960 --> 00:26:05.200
Ryan Vischoustudo. You're going to see more of that, whereas
530
00:26:05.240 --> 00:26:08.440
not the burden on prompting and knowing how to use
531
00:26:08.480 --> 00:26:11.839
it is no no longer on you. Yeah, it's like
532
00:26:12.039 --> 00:26:13.839
if you if you want to write a commit message,
533
00:26:13.839 --> 00:26:16.359
there's a button there. There's a generate commit message, right,
534
00:26:16.440 --> 00:26:18.480
and so you don't have to prompt, you just click
535
00:26:18.519 --> 00:26:20.880
a button. That makes it easy, right. Or we just
536
00:26:20.920 --> 00:26:23.599
released a new way of optimizing your code, so you
537
00:26:23.640 --> 00:26:25.720
can you can just make a selection of your c
538
00:26:25.839 --> 00:26:28.599
sharp or whatever or VB and then you can say, hey,
539
00:26:28.680 --> 00:26:31.559
rite click and say optimize this code, and you don't
540
00:26:31.599 --> 00:26:33.720
have to prompt because what are you optimizing for? Like
541
00:26:34.240 --> 00:26:37.000
is it PERF? Is it readability? Is it quality? What
542
00:26:37.119 --> 00:26:39.720
is it? You know, exception handling like or something like
543
00:26:39.759 --> 00:26:43.039
what is it? And so that burden of prompting and
544
00:26:44.039 --> 00:26:45.720
kind of if we can take that away and make
545
00:26:45.759 --> 00:26:48.839
it so that there's no prompt at all, then you're
546
00:26:48.839 --> 00:26:51.359
probably in many in many cases, you're going to be faster,
547
00:26:51.440 --> 00:26:53.759
and you're going to but faster and more accurate, but
548
00:26:53.799 --> 00:26:56.799
you're also going to be it's also going to be
549
00:26:56.799 --> 00:26:58.039
discoverable that you can do this.
550
00:26:58.720 --> 00:27:01.160
Yeah, that's the challenge is how do you tell me
551
00:27:01.240 --> 00:27:03.920
you could optimize that code within it out interrupting me
552
00:27:04.039 --> 00:27:05.440
or annoying me in the process.
553
00:27:06.160 --> 00:27:09.480
That is the challenge. Yeah, exactly, and it becomes clippy
554
00:27:09.599 --> 00:27:10.720
right otherwise.
555
00:27:11.799 --> 00:27:14.480
Yeah, that's right, that's always the dance for us. Right,
556
00:27:14.519 --> 00:27:19.440
It's like I all the studio does is better than anybody.
557
00:27:19.480 --> 00:27:22.400
But all those little icons and floaties and squiggles, but
558
00:27:22.480 --> 00:27:27.160
all these little clues that hey I know something about
559
00:27:27.200 --> 00:27:28.920
your code you may not know.
560
00:27:29.519 --> 00:27:33.039
And if you install code Rush, now you're at another
561
00:27:33.160 --> 00:27:36.839
level of icon crazy, right, Yeah, talking about.
562
00:27:36.960 --> 00:27:39.160
Well, you know what they say, clippy walk so Copela
563
00:27:39.160 --> 00:27:39.559
can run.
564
00:27:39.720 --> 00:27:44.960
There you go, and took a lot of flak in
565
00:27:45.000 --> 00:27:45.680
the process.
566
00:27:46.440 --> 00:27:51.400
I still remember this on this quiz show wait wait,
567
00:27:51.440 --> 00:27:54.440
don't tell me on NPR. You know, Adam Felber is
568
00:27:54.480 --> 00:27:58.960
a comedian and he's on there, and when Microsoft announced
569
00:27:58.960 --> 00:28:02.480
that they were getting rid of Clippy, right, that Clippy
570
00:28:02.640 --> 00:28:07.640
was was dead Adam Felbery because hey, I see you're
571
00:28:07.680 --> 00:28:09.880
digging a grave? Is that a business grave or a
572
00:28:09.880 --> 00:28:11.839
personal grave? Can I help you dig that?
573
00:28:15.440 --> 00:28:16.079
Can I help you?
574
00:28:16.960 --> 00:28:20.680
It's funny, Richard. Maybe you remember there was a conference
575
00:28:20.680 --> 00:28:23.000
where there was we had someone in the Clippy costume
576
00:28:23.039 --> 00:28:23.599
walk around.
577
00:28:23.680 --> 00:28:26.359
Oh yeah, I remember that, and it was immensely popular.
578
00:28:26.400 --> 00:28:28.000
Everybody walked up in high five.
579
00:28:27.880 --> 00:28:30.680
Hugely powered. Everybody loves Clippy. But it's like, yeah, because
580
00:28:30.680 --> 00:28:31.279
it's a meme.
581
00:28:31.480 --> 00:28:33.680
Yeah totally. It's like comic sense.
582
00:28:33.799 --> 00:28:36.559
Yeah, yes, except that it feels good when you punch.
583
00:28:36.599 --> 00:28:38.400
It wasn't meant to be serious. I don't know why
584
00:28:38.400 --> 00:28:39.880
you're using it, Like, what are you thinking?
585
00:28:40.640 --> 00:28:43.000
I use it in a PowerPoint presentation sometimes and it
586
00:28:43.079 --> 00:28:43.759
throws people off.
587
00:28:43.799 --> 00:28:45.640
Well, and if we wanted to do even more O
588
00:28:45.799 --> 00:28:49.480
pick Rob references. We talk about Windows Bob because at
589
00:28:49.599 --> 00:28:52.880
least one of the Clippy characters was that dog from Bob,
590
00:28:53.200 --> 00:28:56.359
designed by the same person, Glenda Gates. I think you
591
00:28:56.400 --> 00:28:59.680
know when you can use those characters, Yeah it was yeah, Melinda, Yeah,
592
00:28:59.720 --> 00:29:01.359
I don't know that she did clipp.
593
00:29:01.079 --> 00:29:03.640
You it was a wizard as well. It was one
594
00:29:03.640 --> 00:29:06.359
of the characters that you could use those characters from
595
00:29:06.400 --> 00:29:09.240
from back then, there was a remember for Internet Explore.
596
00:29:09.240 --> 00:29:14.319
That was the Yeah, there was a called the Microsoft Agent.
597
00:29:14.440 --> 00:29:17.160
Yeah, the Agent, Yes, and you could with JavaScript or
598
00:29:17.200 --> 00:29:19.400
VBScript probably be you could, like.
599
00:29:20.559 --> 00:29:24.240
I actually used that in an early online training tool
600
00:29:24.279 --> 00:29:26.839
that I wrote, which characters the Wizard. But you could
601
00:29:27.039 --> 00:29:29.680
use whatever you wanted to. But the idea is you
602
00:29:29.720 --> 00:29:31.839
could program him to fly around on the screen and
603
00:29:31.880 --> 00:29:36.039
point to things and explain stuff. So yeah, that didn't
604
00:29:36.119 --> 00:29:38.519
last time. It was fun while it lasted, but it
605
00:29:38.559 --> 00:29:39.279
didn't last.
606
00:29:39.440 --> 00:29:42.039
Yeah, but you know, these all feel like attempts now
607
00:29:42.079 --> 00:29:46.039
to what these ll ms can do for us.
608
00:29:46.319 --> 00:29:49.519
Yeah, it's really impressive. So we have I think there's
609
00:29:49.559 --> 00:29:53.079
like a couple of categories of where this is, where
610
00:29:53.119 --> 00:29:57.079
this is useful. So one is where we can learn
611
00:29:57.119 --> 00:29:59.720
and we become better developers. So let me take you
612
00:29:59.799 --> 00:30:02.440
a example. Is the new Profiler Agent, which is the
613
00:30:02.440 --> 00:30:06.200
one feature we're building on top of this foundational infrastructure
614
00:30:06.279 --> 00:30:10.160
change in Visual Studio twenty twenty six, and it's the
615
00:30:10.200 --> 00:30:13.839
Profiler Agent is able to run the profiler in Visual Studio,
616
00:30:13.880 --> 00:30:15.720
which we've had for a long time, but very few
617
00:30:15.720 --> 00:30:18.799
people use it. It's kind of hard to it's an
618
00:30:18.839 --> 00:30:21.599
advanced concept. It's not easy to kind of understand. But
619
00:30:21.720 --> 00:30:23.960
this new agent can do it for you. And it
620
00:30:24.039 --> 00:30:27.160
can write benchmarks like using benchmark dot net. Wow, it
621
00:30:27.200 --> 00:30:30.319
will add benchmark or run if there's existing ones, and
622
00:30:30.359 --> 00:30:32.880
it can then find the hot paths. Then it can
623
00:30:32.920 --> 00:30:34.559
give you a laundrylease stuff. Here's what I want to
624
00:30:34.599 --> 00:30:38.000
do to optimize performance. It can then simulate that with
625
00:30:38.079 --> 00:30:40.880
the and then run the new and run the benchmarks
626
00:30:40.880 --> 00:30:43.759
again to see what the performance benefit will be. And
627
00:30:43.799 --> 00:30:47.119
then you can just tell okay, go ahead, or if
628
00:30:47.119 --> 00:30:49.559
there's something that you don't understand because that's the problem.
629
00:30:49.599 --> 00:30:52.279
Even if you run the profiler and it says, hey,
630
00:30:52.480 --> 00:30:54.880
this line is very expensive or this method call is
631
00:30:54.960 --> 00:30:58.839
very expensive, how do you know how to optimize it? Right?
632
00:30:58.880 --> 00:31:01.440
All right? Yeah, it's like okay, the software has criticized me.
633
00:31:02.000 --> 00:31:06.200
Now what yeah, now what yeah, exactly, it found my problems.
634
00:31:06.279 --> 00:31:08.359
Now what are the solutions? Right? It didn't help me there,
635
00:31:09.000 --> 00:31:11.240
but now you get that help and so you know,
636
00:31:11.240 --> 00:31:13.440
it could be you know, maybe I have a dictionary
637
00:31:13.480 --> 00:31:15.319
that I use a linquery on and it says, hey,
638
00:31:15.400 --> 00:31:17.160
if you use a hasset, we're going to be eighty
639
00:31:17.200 --> 00:31:22.640
percent faster in this particular case, and you'll be like, oh,
640
00:31:23.200 --> 00:31:26.039
that's neat next time I run into a similar scenario,
641
00:31:26.119 --> 00:31:28.839
I'm going to remember this hasset thing. And so you
642
00:31:28.960 --> 00:31:31.519
learn along the way. And so I really like that
643
00:31:31.680 --> 00:31:35.160
idea where the copole comes in sits beside you kind
644
00:31:35.160 --> 00:31:39.079
of and and you kind of get to that destination.
645
00:31:38.640 --> 00:31:40.720
Together makes you a better developer, You become better.
646
00:31:40.839 --> 00:31:43.240
Yeah, you know this reminds me of the old optimizing
647
00:31:43.279 --> 00:31:46.000
website stags. We're using the profiling tools to see that
648
00:31:46.079 --> 00:31:51.400
locus of concentration, Like, hey, this is a big expensive process,
649
00:31:51.440 --> 00:31:53.200
but it only gets run once an hour, so we're
650
00:31:53.200 --> 00:31:55.599
not going to optimize that. But this little thing, this
651
00:31:55.640 --> 00:31:58.759
settle thing, is being running four hundred times a second,
652
00:31:58.880 --> 00:32:01.720
and if we can shave one hundred milliseconds out of it,
653
00:32:01.720 --> 00:32:02.599
it's worth it.
654
00:32:02.359 --> 00:32:02.480
Now.
655
00:32:02.640 --> 00:32:05.759
Is there such a thing as an agent that understands
656
00:32:06.920 --> 00:32:09.799
SEQL and SQL profiling, because I would love to turn
657
00:32:09.839 --> 00:32:12.279
that loose on you know, hey, why is this query
658
00:32:12.359 --> 00:32:13.799
taking so long? And what?
659
00:32:14.079 --> 00:32:14.279
Yeah?
660
00:32:14.279 --> 00:32:15.680
I think you know what index do?
661
00:32:15.839 --> 00:32:17.920
Is? What indexes do I need to add to make
662
00:32:17.960 --> 00:32:18.559
it work better?
663
00:32:18.880 --> 00:32:20.839
That kind of thing that might be in for as
664
00:32:20.880 --> 00:32:22.920
as a mess. Yeah, if you looked at the Latest
665
00:32:22.960 --> 00:32:24.720
Days is a mess I have.
666
00:32:24.759 --> 00:32:27.599
Yeah, and I know it's based on the whole visual studio,
667
00:32:28.200 --> 00:32:33.119
you know, fundamental environment, So did also have those.
668
00:32:33.240 --> 00:32:35.680
I haven't played with it for a mess twenty one
669
00:32:36.319 --> 00:32:41.000
twenty two preview. You might see something more updated there
670
00:32:41.000 --> 00:32:43.079
in that regard. I'm not sure. I haven't followed along
671
00:32:43.079 --> 00:32:43.359
that course.
672
00:32:43.480 --> 00:32:46.960
Yeah, there's a twenty five coming that's likely out in November,
673
00:32:47.119 --> 00:32:50.319
not that I know anything, but I'm speculating because that's
674
00:32:50.359 --> 00:32:51.920
when they would normally ship it.
675
00:32:51.920 --> 00:32:54.440
It should be in preview by the time the airs.
676
00:32:54.279 --> 00:32:57.480
Somewhere in the quote unquote ignite time frame. And I
677
00:32:57.480 --> 00:32:58.839
imagine there's going to be all kinds of.
678
00:32:58.799 --> 00:33:01.799
Imagine there's going to be more a tooling seems like,
679
00:33:01.920 --> 00:33:04.839
you know that's where development is heading is in you know,
680
00:33:04.920 --> 00:33:06.599
the innovation is happening in AI.
681
00:33:06.759 --> 00:33:09.440
Well, there's all the new helpers, right like we saw
682
00:33:09.480 --> 00:33:11.920
this extensively with Microsoft Fabric. Not to go too far
683
00:33:12.000 --> 00:33:16.000
off track here, but because Fabric touches so many different tools.
684
00:33:16.039 --> 00:33:19.440
When you're doing data analytics and you've got POWERBI and
685
00:33:19.480 --> 00:33:22.799
the data warehousing clients and these different storage mechanisms in
686
00:33:22.839 --> 00:33:25.240
the lake and so forth, each one you don't use
687
00:33:25.319 --> 00:33:27.000
enough to be really proficient with so the fact that
688
00:33:27.079 --> 00:33:28.960
it was a copilot at each layer, it's like, what'd
689
00:33:29.000 --> 00:33:31.039
you want to do? Let me help you there, Like
690
00:33:31.480 --> 00:33:32.400
it's really powerful.
691
00:33:32.440 --> 00:33:34.559
It seems like a good time to take a break. Yeah,
692
00:33:34.640 --> 00:33:37.400
So we'll be right back after these very important messages.
693
00:33:37.559 --> 00:33:42.480
Stay tuned. Did you know you can easily migrate asp
694
00:33:42.640 --> 00:33:46.799
net web apps to Windows containers on AWS? Use the
695
00:33:46.920 --> 00:33:51.319
app to Container tool to containerize your iis websites and
696
00:33:51.359 --> 00:33:56.759
deploy to AWS managed container services with or without Kubernetes.
697
00:33:57.119 --> 00:34:01.039
Find out more about app to Container and aw dot Amazon,
698
00:34:01.119 --> 00:34:08.760
dot Com, Slash, dot Net, slash Modernize, and we're back.
699
00:34:08.800 --> 00:34:12.360
It's dot net Rocks. I'm Carl Franklin's my friend Richard Campbell. Hey,
700
00:34:12.400 --> 00:34:16.960
and that's our friend Mads Christensen, the Mad indentist of
701
00:34:18.480 --> 00:34:19.960
Visual Studio Extensions.
702
00:34:20.480 --> 00:34:23.280
And Mad's you said, Studio twenty twenty six. So is
703
00:34:23.320 --> 00:34:25.880
this official? What are we expecting in the version of
704
00:34:25.920 --> 00:34:26.840
Studio next year?
705
00:34:27.039 --> 00:34:28.079
No, it's out in preview.
706
00:34:28.440 --> 00:34:30.239
It is okay, so it's not next year, it's like
707
00:34:30.440 --> 00:34:34.280
imminently right now. One would speculate because there's certain events
708
00:34:34.280 --> 00:34:35.639
coming up towards the end of the year.
709
00:34:35.880 --> 00:34:39.440
Hey, but you know, I'm not in the business of speculation, no, so,
710
00:34:40.159 --> 00:34:42.400
but you know we when did we ship visuals do
711
00:34:42.519 --> 00:34:43.360
to twenty twenty.
712
00:34:43.119 --> 00:34:46.719
Two in fall of twenty one? As I recall, maybe, yeah,
713
00:34:46.760 --> 00:34:49.320
so I'm just doing math. How much did the whole
714
00:34:49.360 --> 00:34:51.760
AI wave derail? You guys, Like, I don't envy your
715
00:34:51.800 --> 00:34:54.519
situation because you push that out in the fall of
716
00:34:54.599 --> 00:35:00.079
twenty twenty one. Chat GBT is the next year, and
717
00:35:00.480 --> 00:35:02.920
you know, get Hub Copilot's already out, So that's a
718
00:35:02.960 --> 00:35:06.360
thing like this, It's been a it's been a while,
719
00:35:06.440 --> 00:35:09.880
Like you're not talking four years between versions of the studio,
720
00:35:10.280 --> 00:35:13.679
but they've been some nutty years, a little pandemic, a
721
00:35:13.719 --> 00:35:16.800
little revolutionary computing, like wooh.
722
00:35:17.519 --> 00:35:20.480
It's been it's like a train that hits you, right,
723
00:35:20.719 --> 00:35:23.519
It's yeah, it was it was like that. Yeah. We
724
00:35:23.519 --> 00:35:26.679
we changed the whole ORC structure, change, all of that
725
00:35:26.760 --> 00:35:28.960
changed in the past couple of years to accommodate this.
726
00:35:29.280 --> 00:35:35.000
So there's no question where that this is like such
727
00:35:35.119 --> 00:35:40.920
a groundbreaking change for everybody, and I think we're probably
728
00:35:40.920 --> 00:35:43.199
on the forefront of it because we are we are
729
00:35:43.320 --> 00:35:45.760
kind of the lower layers of that that enables others
730
00:35:45.800 --> 00:35:46.480
to kind of use.
731
00:35:46.599 --> 00:35:49.440
A name, and you're expected to dog food the new
732
00:35:49.480 --> 00:35:52.000
bits so you're seeing it before we see it.
733
00:35:52.079 --> 00:35:54.519
So all that was like really heavy. But I think
734
00:35:54.559 --> 00:35:56.599
like this year when we look at like get ub
735
00:35:56.639 --> 00:36:00.159
copilot adoption, like this year is where it's really exploded. Yeah,
736
00:36:00.199 --> 00:36:02.119
so I think the l ms now are so good
737
00:36:02.199 --> 00:36:04.360
with the you know, clots on at for another like
738
00:36:04.480 --> 00:36:07.679
they're just GPT five, like they're finally at a place
739
00:36:08.400 --> 00:36:10.000
Jim and I are two point five is you know?
740
00:36:10.119 --> 00:36:12.199
Was also another one that was like, Okay, this is.
741
00:36:12.159 --> 00:36:13.760
Good, real good.
742
00:36:13.760 --> 00:36:16.159
So I got a story for you. I was trying
743
00:36:16.159 --> 00:36:18.320
to solve a CSS problem and I knew it was
744
00:36:18.320 --> 00:36:20.320
a CSS problem, but I wasn't quite sure how to
745
00:36:20.320 --> 00:36:22.639
solve it because you know, I'm a C sharp programmer,
746
00:36:22.719 --> 00:36:27.280
not a CSS guy. And I asked Chatchept. I spent
747
00:36:27.360 --> 00:36:29.840
an hour with chatchyp Yeah, I like that he's holding
748
00:36:29.920 --> 00:36:35.119
up the mugs. CSS is awesome outside of the box.
749
00:36:36.920 --> 00:36:40.880
I set the challenge to chat Ept. I spent an
750
00:36:40.960 --> 00:36:44.719
hour with chatchept, and it could not figure out, for
751
00:36:44.800 --> 00:36:47.559
the life of itself, how to fix this problem. So
752
00:36:47.639 --> 00:36:52.519
then I went to get hub Copilot. I just created
753
00:36:52.559 --> 00:36:56.960
a new private repo in gethub with a scaled down example.
754
00:36:57.559 --> 00:37:00.679
Get ub co Pilot scratched its head for like forty
755
00:37:00.760 --> 00:37:03.719
minutes and then came back with the wrong answer. Then
756
00:37:03.760 --> 00:37:06.639
I went to Gemini and I, because Gemini is like
757
00:37:06.679 --> 00:37:10.079
built into Chrome, right, you can ask Gemini how do
758
00:37:10.119 --> 00:37:15.599
I fix this? And it completely baffled itself. It did
759
00:37:15.599 --> 00:37:17.320
not have the answer. Then I went back in the
760
00:37:17.400 --> 00:37:20.239
visual studio and I went to agent mode and I
761
00:37:20.320 --> 00:37:23.760
picked Claude Son at three point five and I said
762
00:37:23.880 --> 00:37:27.480
do this, And it was literally less than three minutes
763
00:37:27.679 --> 00:37:30.360
and it had figured it out. Claude's Son. It is
764
00:37:30.400 --> 00:37:32.400
the bomb for CSS anyway.
765
00:37:32.639 --> 00:37:33.360
It's really good.
766
00:37:33.760 --> 00:37:35.960
Yeah, and you're sort of speaking to that sort of
767
00:37:36.119 --> 00:37:39.519
new reality that just harnished the agents you got. You
768
00:37:39.559 --> 00:37:41.719
want a client that has access to all of them,
769
00:37:41.719 --> 00:37:43.719
and you can try your different problems on different right
770
00:37:43.920 --> 00:37:45.440
on different models.
771
00:37:46.079 --> 00:37:47.719
So that's that's really nice. You can now you can
772
00:37:47.719 --> 00:37:49.599
bring your own keys what we call it, right, You
773
00:37:49.599 --> 00:37:52.119
can bring your own API key and plug in you know,
774
00:37:52.159 --> 00:37:57.639
any other clod model or whatever. So but it's it,
775
00:37:58.039 --> 00:38:00.360
you know, it really depends a lot of a things.
776
00:38:00.400 --> 00:38:02.199
One is the context you give it like what does
777
00:38:02.239 --> 00:38:05.719
it understand about your project? And the other thing is
778
00:38:05.760 --> 00:38:08.800
the prompt, like how are you prompting it? And so
779
00:38:08.920 --> 00:38:11.280
that's the challenge because you know at what point I'll
780
00:38:11.320 --> 00:38:13.880
be becoming prompting engineers. I always think that sounds a
781
00:38:13.880 --> 00:38:16.880
little bit too big for what it is, Like it's
782
00:38:16.920 --> 00:38:18.920
a different way of asking a question. You know, does
783
00:38:18.960 --> 00:38:22.119
that make you a prompt engineer? But but you know
784
00:38:22.159 --> 00:38:23.119
there's some truth to that.
785
00:38:23.159 --> 00:38:25.000
I guess, you know, yeah, because I'm all, you know,
786
00:38:25.039 --> 00:38:26.480
I do a favorite of writing, so it must be
787
00:38:26.519 --> 00:38:27.480
a sentence engineer.
788
00:38:27.639 --> 00:38:31.280
Also, yeah, exactly paragraph engineer.
789
00:38:32.599 --> 00:38:34.760
Don't get crazy now trying to get there.
790
00:38:34.920 --> 00:38:37.280
So but what I what I do like is you know,
791
00:38:37.360 --> 00:38:39.199
I mentioned the thing where it kind of makes you better,
792
00:38:39.480 --> 00:38:42.519
you become a better developer. But the other aspect is
793
00:38:42.559 --> 00:38:44.800
that it will it will allow you to do things
794
00:38:44.840 --> 00:38:48.239
that you couldn't do before. So when I mentioned this
795
00:38:48.239 --> 00:38:52.159
stuff about the profiler right before, like I'm not a
796
00:38:52.239 --> 00:38:55.280
very low level developer, like I don't I don't go
797
00:38:55.320 --> 00:38:57.920
into unsafety sharp for instance, right, Like I've never used
798
00:38:57.920 --> 00:39:00.119
a volatile keyword. I don't know what it does, and
799
00:39:00.159 --> 00:39:01.159
I'm kind of afraid to know.
800
00:39:01.880 --> 00:39:03.840
But the name tells you everything you want to know.
801
00:39:03.960 --> 00:39:09.920
That's right, stay away, Yeah, danger here across.
802
00:39:11.519 --> 00:39:14.960
So that door was closed to me, right, And but
803
00:39:15.079 --> 00:39:17.679
with this this new profile agent, for instance, it can
804
00:39:17.719 --> 00:39:19.440
come in and it can teach me stuff. I can
805
00:39:19.480 --> 00:39:21.280
see how to do this, it can it can kick
806
00:39:21.320 --> 00:39:23.760
in the door that was otherwise closed to Yeah, and
807
00:39:24.199 --> 00:39:28.079
so it makes the impossible possible. And I really like
808
00:39:28.199 --> 00:39:31.119
that because it's like that. And then it doesn't go there,
809
00:39:31.159 --> 00:39:32.840
It doesn't open the door and walk in on its own.
810
00:39:33.559 --> 00:39:35.559
It takes me with it, right, we walk in together,
811
00:39:36.719 --> 00:39:38.920
and that I think that's the magic part. I think
812
00:39:38.960 --> 00:39:41.280
a lot of people miss that. They think, oh, you know, Copila,
813
00:39:41.320 --> 00:39:43.039
that's going to take over my job or whatever, but
814
00:39:43.119 --> 00:39:46.039
it is. It is really a cold pilot. I think
815
00:39:46.039 --> 00:39:46.639
that's important.
816
00:39:46.760 --> 00:39:48.519
Yeah, I'm looking forward to the day and I don't
817
00:39:48.519 --> 00:39:51.159
think it we're here yet. But it doesn't do really
818
00:39:51.320 --> 00:39:55.239
well with graphics and you know, animation and all that
819
00:39:55.239 --> 00:39:58.360
stuff yet that's not really in the in the models
820
00:39:58.800 --> 00:40:01.199
that I know anyway. But I'm looking forward to the
821
00:40:01.280 --> 00:40:04.920
day where I can think about something that I never
822
00:40:05.360 --> 00:40:09.000
thought of before doing because I know it's completely outside
823
00:40:09.039 --> 00:40:13.480
my wheelhouse. And then and then engaging some AI to
824
00:40:13.519 --> 00:40:17.119
help me figure that stuff out. But otherwise I would
825
00:40:17.199 --> 00:40:19.360
I would never have attempted it. But and I'm not
826
00:40:19.440 --> 00:40:22.360
talking about for professional reasons, like I would never say
827
00:40:22.920 --> 00:40:25.400
yes if a customer asked me to do something like that,
828
00:40:25.559 --> 00:40:28.360
but you know, for for messing around and you know,
829
00:40:28.480 --> 00:40:30.960
writing some fun games or something, I would totally be
830
00:40:31.000 --> 00:40:31.360
into it.
831
00:40:31.400 --> 00:40:34.599
Did you see the Scott Hanselman and Mark Prosenovitch they
832
00:40:34.599 --> 00:40:37.199
did this shader using copony. They had no idea how
833
00:40:37.199 --> 00:40:40.119
to write a shrader, and they did it. And they
834
00:40:40.119 --> 00:40:42.480
could use it as a background kind of animation movie
835
00:40:42.480 --> 00:40:45.440
thing that just ran in the background up the windows terminal. Yeah,
836
00:40:45.480 --> 00:40:48.360
and they've never written the shad before. And so again
837
00:40:48.400 --> 00:40:50.400
that was a door that was to go. They could
838
00:40:50.400 --> 00:40:52.519
have learned they had spent their time doing that.
839
00:40:52.639 --> 00:40:53.400
But good stuff.
840
00:40:53.679 --> 00:40:54.599
Here we are well.
841
00:40:54.639 --> 00:40:56.960
And that's always the thing, Like you have skills, you
842
00:40:57.039 --> 00:41:00.480
know you could do this, but your list of needs,
843
00:41:00.519 --> 00:41:02.679
the things, you know, priority list is so long.
844
00:41:03.039 --> 00:41:06.280
That's exactly it. You know, I got kids and family
845
00:41:06.320 --> 00:41:08.280
and stuff. I gotta leave work, and then I gotta
846
00:41:08.320 --> 00:41:10.559
leave work. I can't just you know, keep going. And
847
00:41:11.400 --> 00:41:13.519
that's the most most people are in a situation like that,
848
00:41:13.599 --> 00:41:15.880
your time is limited, and so having that kind of
849
00:41:16.159 --> 00:41:18.679
AI sitting there and being helpful to I think it's
850
00:41:18.760 --> 00:41:22.079
really good. Another one that's really helpful is it can
851
00:41:22.079 --> 00:41:25.599
increase your velocity. So I have a three hundred and
852
00:41:25.599 --> 00:41:28.079
something repos on GIDDA right, a lot of extensions and
853
00:41:28.440 --> 00:41:31.280
NU could package libraries and whatnot, and I get a
854
00:41:31.280 --> 00:41:34.159
bunch of feature requests and bug reporting, and I can't
855
00:41:34.199 --> 00:41:36.239
really as a single person, I can't do all of
856
00:41:36.239 --> 00:41:38.719
these things. But I can have the coding D and
857
00:41:38.760 --> 00:41:41.000
I can assign a task, say hey, can you take
858
00:41:41.000 --> 00:41:42.719
a look at this bug? Can you fix that? Or
859
00:41:42.800 --> 00:41:45.000
take a look at this feature request? And the more
860
00:41:45.039 --> 00:41:46.840
you use it, the more you kind of understand what
861
00:41:46.960 --> 00:41:49.159
it can do. And then you know, oh, this is
862
00:41:49.199 --> 00:41:51.760
a great candidate for the copilot.
863
00:41:51.920 --> 00:41:54.360
Sure to do for me. If you want one hundred
864
00:41:54.360 --> 00:41:57.159
percent unit test coverage, you know, you could beat your
865
00:41:57.159 --> 00:41:59.000
interns as much as you want to try and get there,
866
00:41:59.000 --> 00:42:01.039
but boy, the soft or knocks it out.
867
00:42:01.199 --> 00:42:02.199
Yeah that's right.
868
00:42:02.679 --> 00:42:04.960
Yeah, yeah, So I feel like you can your A.
869
00:42:05.000 --> 00:42:07.159
Your velocity can go up if you if you know
870
00:42:07.199 --> 00:42:09.559
how to use it in the right way. But that
871
00:42:09.800 --> 00:42:12.119
now you have, but then you learn that too write.
872
00:42:12.239 --> 00:42:15.280
So there's some new stuff to learn. And I think
873
00:42:15.280 --> 00:42:18.320
that's important that we do it and whatever time we've got,
874
00:42:18.679 --> 00:42:20.559
but don't dismiss it up front.
875
00:42:20.599 --> 00:42:23.159
One hundred percent coverage. I would set that on to
876
00:42:23.239 --> 00:42:25.480
go on a Friday night and then go away for
877
00:42:25.519 --> 00:42:28.559
the weekend. For some of these projects that I have,
878
00:42:28.679 --> 00:42:30.159
there's so big. Well.
879
00:42:30.960 --> 00:42:33.559
One of the patterns I've gotten into now when I'm
880
00:42:33.639 --> 00:42:35.800
asking the tools to write code is that they sort
881
00:42:35.800 --> 00:42:37.400
of do a tdd thing. I want you to write
882
00:42:37.440 --> 00:42:39.960
the test as well. And one of the effects I
883
00:42:40.039 --> 00:42:44.159
found with that was that often if you made too
884
00:42:44.159 --> 00:42:47.079
big of a request, it wouldn't finish it. Yes, and
885
00:42:47.159 --> 00:42:50.559
so including the tests and keep iterating this until all
886
00:42:50.599 --> 00:42:55.039
the tests passed. Actually create a pattern to finish the
887
00:42:55.119 --> 00:42:56.199
code request. Right.
888
00:42:56.400 --> 00:42:59.719
I don't like, you know, dot dot dot, you know,
889
00:43:00.000 --> 00:43:03.280
finish the implementation here. No, you finish it. That's what
890
00:43:03.440 --> 00:43:04.679
I'm asking you.
891
00:43:06.440 --> 00:43:08.679
That's what you do, you piece of software.
892
00:43:08.719 --> 00:43:10.239
You what I do?
893
00:43:10.480 --> 00:43:11.880
Is that what you do?
894
00:43:12.639 --> 00:43:12.960
Yeah?
895
00:43:13.079 --> 00:43:16.119
Nice? But I feel like more and more we're the
896
00:43:16.639 --> 00:43:20.760
project managers, right Like you're managing you only write certain
897
00:43:20.800 --> 00:43:22.559
bits of code that you're like, well, the tool's going
898
00:43:22.599 --> 00:43:25.679
to have at the time with this, but most of
899
00:43:25.719 --> 00:43:27.639
the other code you're you're just doling it out and
900
00:43:27.760 --> 00:43:30.320
checking it in. I feel like software developers are uniquely
901
00:43:30.360 --> 00:43:33.079
qualified in the scenario because the tools like GitHub and
902
00:43:33.119 --> 00:43:37.159
things like, we're used to taking contributions from unknown sources
903
00:43:37.159 --> 00:43:40.880
in some respects, and what's more unknown than an LLM, right, Like,
904
00:43:41.039 --> 00:43:44.880
just makes sense that okay, and it comes evaluated, you know,
905
00:43:44.960 --> 00:43:47.159
run it through the process integrated.
906
00:43:46.719 --> 00:43:50.000
And let's get meta here, Like you ask the copilot
907
00:43:50.079 --> 00:43:52.679
to write you something and it does a pull request
908
00:43:52.800 --> 00:43:55.440
and you check out that pull request. Now you should
909
00:43:55.519 --> 00:43:58.360
have an agent test that pull request. Sure, why not
910
00:43:58.599 --> 00:44:02.760
have another third part? Right? And so thinking about this
911
00:44:02.920 --> 00:44:05.360
in terms of, oh, it's not just this one agent
912
00:44:05.440 --> 00:44:08.679
that I'm interacting with, but multiple agents that do different
913
00:44:08.719 --> 00:44:12.159
things better than the other kind. That's this is the future,
914
00:44:12.199 --> 00:44:12.440
I think.
915
00:44:12.559 --> 00:44:15.800
Yeah, we're already seeing with the mcps, for instance, where
916
00:44:15.800 --> 00:44:19.360
they know now you have the playwright and it can
917
00:44:19.400 --> 00:44:23.079
go ahead and unbelievable too, launch your new pro request
918
00:44:23.159 --> 00:44:25.679
and the browser and test that it works. And I
919
00:44:25.679 --> 00:44:26.920
mean it's pretty phenomenal.
920
00:44:27.039 --> 00:44:29.719
The thing that got me with the playwright MCP was
921
00:44:30.760 --> 00:44:33.039
the ownership of the test problem on my part. Now
922
00:44:33.119 --> 00:44:35.039
is a set of prompts about what I need to
923
00:44:35.119 --> 00:44:38.679
valuate it on this website, And so as playwright changes
924
00:44:38.719 --> 00:44:40.719
on you and the site changes on you, you don't
925
00:44:40.719 --> 00:44:44.360
have to rewrite the test. They're regenerated by the prompt. Yeah.
926
00:44:44.440 --> 00:44:45.599
Yeah, yeah, that's nice.
927
00:44:45.679 --> 00:44:48.480
Yeah yeah, it's powerful, and it's just a funny way
928
00:44:49.079 --> 00:44:53.440
to think about software. And I don't know if necessarily
929
00:44:53.519 --> 00:44:55.000
like it's fun in the sense that I'm getting a
930
00:44:55.000 --> 00:44:57.320
lot done, but it's not fun in the sense of
931
00:44:57.400 --> 00:45:01.079
like that old school flowing with code thing that I
932
00:45:01.159 --> 00:45:03.239
used to do once in a while. It's not the
933
00:45:03.280 --> 00:45:06.320
same when you're shepherding all these tools, like you're you're
934
00:45:06.360 --> 00:45:10.400
kind of running an interrupt driven method of coding where
935
00:45:10.800 --> 00:45:13.360
various bits are coming back from different agents and you're
936
00:45:13.360 --> 00:45:15.239
trying to pull them together. It's like, where are we
937
00:45:15.320 --> 00:45:17.039
in the overall problem space here?
938
00:45:17.400 --> 00:45:21.199
You're definitely more of a conductor of an orchestra now
939
00:45:21.440 --> 00:45:23.920
when you take really take full advantage of all this stuff.
940
00:45:24.400 --> 00:45:26.480
But I don't I don't see that as Hey, the
941
00:45:26.880 --> 00:45:29.960
role of the software engineer is changing. It's just that
942
00:45:30.039 --> 00:45:32.599
we do we work in a slightly different way. And
943
00:45:32.639 --> 00:45:36.880
so we also now orchestrate stuff, but hopefully we orchestrate
944
00:45:36.880 --> 00:45:40.079
the stuff that's kind of boring or the stuff that tedious,
945
00:45:40.199 --> 00:45:43.159
or stuff that doesn't add unique where we you know
946
00:45:43.199 --> 00:45:47.079
that that we want to add unique value that only
947
00:45:47.119 --> 00:45:50.000
we can do, right, stuff that's like you know, makes
948
00:45:50.079 --> 00:45:52.119
us feel great and love our work, and where we
949
00:45:52.159 --> 00:45:55.320
have unique insights and we can be creative and come
950
00:45:55.400 --> 00:45:57.880
up with these fantastic things and then have kind of
951
00:45:58.119 --> 00:46:00.800
maybe the boring parts and stuff that would be great
952
00:46:00.800 --> 00:46:02.920
if someone else would take care of that, but we
953
00:46:03.000 --> 00:46:04.800
do the conducting of that.
954
00:46:04.800 --> 00:46:06.880
That was back to the old adage, right, Like your
955
00:46:07.079 --> 00:46:10.840
job as the software engineer wasn't to write code, it
956
00:46:10.880 --> 00:46:14.039
was to produce solutions. Yep, right, I remember. I mean
957
00:46:14.039 --> 00:46:16.239
I'm old enough down to remember switching to Visual Basic.
958
00:46:16.360 --> 00:46:19.960
His guy brought real tired of battling MFC, like you
959
00:46:20.039 --> 00:46:24.159
were mostly fighting with Windows, not providing solutions, and VB
960
00:46:24.320 --> 00:46:26.519
took that off the shelf, and people like we're not
961
00:46:26.519 --> 00:46:29.639
really programming anymore. It's like pretty sure, I am pretty sure.
962
00:46:29.679 --> 00:46:31.079
I'm going to be crying all the way to the
963
00:46:31.119 --> 00:46:31.719
bank here.
964
00:46:32.159 --> 00:46:34.199
Yeah, I forget who said it? But it was was
965
00:46:34.239 --> 00:46:37.800
it Repert Scoble or like Joe's bowlski or something that. Hey,
966
00:46:37.880 --> 00:46:40.920
you know, as a software engineer, your goal is to
967
00:46:41.000 --> 00:46:43.960
solve problems. Yeah, the side effect is that you write
968
00:46:44.000 --> 00:46:46.920
code or something like that. The by product is code.
969
00:46:47.559 --> 00:46:49.480
But we're here to solve problems. And so I think
970
00:46:49.519 --> 00:46:51.199
that's true in this new world as well. And I
971
00:46:51.239 --> 00:46:53.159
think we're still going to write as much code. We
972
00:46:53.239 --> 00:46:55.519
might even write more because some of this other stuff
973
00:46:55.559 --> 00:46:58.960
can be sort of automated away a little bit. And
974
00:46:59.039 --> 00:47:01.960
so I think we're looking at a very very bright
975
00:47:02.000 --> 00:47:04.480
future for software engineering. I think it's going to be
976
00:47:04.480 --> 00:47:06.559
more fun now than they has been in the past.
977
00:47:06.559 --> 00:47:09.679
The productivity explosion is astonishing. Folks have seen who figure
978
00:47:09.679 --> 00:47:12.679
this stuff out. I mean, I for a while there,
979
00:47:12.800 --> 00:47:15.519
the good Hub Copilot days, I was seeing folks saying, hey,
980
00:47:15.880 --> 00:47:19.119
my coders are pushing in more code. It's twenty thirty
981
00:47:19.199 --> 00:47:23.400
forty percent more productive. There's more reworks, like they're backing
982
00:47:23.440 --> 00:47:26.519
out stuff more often. But generally if it gets pushed
983
00:47:26.519 --> 00:47:28.760
and it sticks, it's pretty good in its days, Like
984
00:47:28.840 --> 00:47:31.960
code quality up overall. Yeah, Yeah, Now I watch guys
985
00:47:32.039 --> 00:47:34.519
that are knocking out two three weeks worth of work
986
00:47:34.960 --> 00:47:37.480
in a typical pattern in a day. Sure, Like it's
987
00:47:37.519 --> 00:47:39.119
just astonishing when they get it right.
988
00:47:39.199 --> 00:47:42.320
Yeah, yeah, right, And so I think like, as, but
989
00:47:42.519 --> 00:47:45.760
that's a craft too. How do you work with the
990
00:47:45.800 --> 00:47:47.239
prompting and with the yelms.
991
00:47:47.360 --> 00:47:50.880
Yeah, So also staying current on what the different lllms
992
00:47:50.880 --> 00:47:53.159
are and what their strengths and weaknesses are. I think
993
00:47:53.199 --> 00:47:56.800
that's a big challenge too, because you know that experiment
994
00:47:56.840 --> 00:47:59.360
that I did with the first chatchpt for an hour,
995
00:47:59.440 --> 00:48:02.320
and then you know that the GitHub copilot and all
996
00:48:02.360 --> 00:48:04.800
that stuff that took like a whole day just to
997
00:48:04.840 --> 00:48:07.559
figure out that claudees on at three point five was
998
00:48:07.559 --> 00:48:10.559
was the was the model that I wanted. And now
999
00:48:10.599 --> 00:48:13.039
when I go back that, I'm going to try to
1000
00:48:13.159 --> 00:48:16.079
use that for a similar problem. But something else might
1001
00:48:16.119 --> 00:48:18.800
have come around that makes it even easier. Right, So
1002
00:48:19.840 --> 00:48:22.440
keeping up with these things is going to be a
1003
00:48:22.440 --> 00:48:24.000
full time endeavor.
1004
00:48:24.159 --> 00:48:26.880
I remember the arguments over is garbage collecting actually a
1005
00:48:26.880 --> 00:48:30.119
good idea? We've been to these sort of changes in
1006
00:48:30.159 --> 00:48:32.719
the way we think about code things before. Yeah, and
1007
00:48:33.440 --> 00:48:35.119
it's just this is an issue one.
1008
00:48:35.199 --> 00:48:36.760
And I also feel like, yeah, you have to keep
1009
00:48:36.840 --> 00:48:39.599
up today with like which models are great for your scenario.
1010
00:48:39.719 --> 00:48:42.840
Let's say, I don't think that's different than keeping up
1011
00:48:42.840 --> 00:48:44.400
with other industry kind of.
1012
00:48:44.480 --> 00:48:48.599
Yeah, it just most faster, most faster than language evolution
1013
00:48:48.960 --> 00:48:50.239
or tool evolution.
1014
00:48:51.400 --> 00:48:52.880
That may only be true right now.
1015
00:48:53.119 --> 00:48:55.119
Yeah, it's a moment in time. I think it feels
1016
00:48:55.159 --> 00:48:58.719
like we're on our way somewhere. Yeah, and we're trying
1017
00:48:58.719 --> 00:49:00.760
to figure out where where does this go? Is this
1018
00:49:00.960 --> 00:49:03.320
is the chat the right interface going forward? Is it
1019
00:49:03.360 --> 00:49:06.320
a what is it? It might be, but it might
1020
00:49:06.360 --> 00:49:09.039
not be. And so we're on our way there wherever
1021
00:49:09.079 --> 00:49:09.440
there is.
1022
00:49:09.599 --> 00:49:12.199
I have a suggestion to people who are hearing this podcast,
1023
00:49:12.239 --> 00:49:14.880
and that is listen to more dot ne Rocks episodes
1024
00:49:14.920 --> 00:49:16.800
because we'll keep you up to date on these things.
1025
00:49:16.840 --> 00:49:18.679
Because we're doing the hard work out here.
1026
00:49:22.360 --> 00:49:25.480
We're definitely asking some questions anyway and trying to get
1027
00:49:25.480 --> 00:49:28.199
an overview. Yeah, that's true of you know, who's succeeding,
1028
00:49:28.239 --> 00:49:31.239
who's struggling? Where are these things helping? Word? Don't they help?
1029
00:49:31.400 --> 00:49:33.800
But we're thinking about this. You know, you might have
1030
00:49:33.880 --> 00:49:37.519
heard this concept of ambient AI. Yeah, so the concept
1031
00:49:37.519 --> 00:49:40.519
real briefly is that it's kind of sitting there in
1032
00:49:40.519 --> 00:49:44.280
the background only showing its phase when it's needed, and
1033
00:49:44.360 --> 00:49:49.079
it seamlessly offer you, you know, the help contextually where
1034
00:49:49.119 --> 00:49:51.199
you want it. And so it's so think of it
1035
00:49:51.239 --> 00:49:54.280
as something that's always there, but it's not in your way,
1036
00:49:54.320 --> 00:49:56.760
and it's not something that you need to learn. And
1037
00:49:56.800 --> 00:50:00.000
so we like that idea because it kind of fits
1038
00:50:00.159 --> 00:50:03.039
naturally into things that already exist. So if we were
1039
00:50:03.079 --> 00:50:05.239
to put it into Visual Studio, for instance, you know
1040
00:50:05.320 --> 00:50:08.320
I mentioned the you know, the generated commit message, Well,
1041
00:50:08.320 --> 00:50:10.840
we already have a commit message box. So adding a
1042
00:50:10.880 --> 00:50:14.320
button that automatically does that would be it's a place
1043
00:50:14.360 --> 00:50:16.800
where you expected, it's not in your way, you don't
1044
00:50:16.840 --> 00:50:19.559
have to prompt anything, right. That's a that's kind of
1045
00:50:19.599 --> 00:50:23.119
ambient AI thinking. Another one is renamed variable. We made
1046
00:50:23.119 --> 00:50:24.880
a big splash about this because you know it's the
1047
00:50:25.280 --> 00:50:28.119
one of the hardest problems in computer science is naming things.
1048
00:50:29.079 --> 00:50:31.119
And so if you want to rename a variable, there's
1049
00:50:31.159 --> 00:50:32.880
like a little UI and Visual studio for that. If
1050
00:50:32.920 --> 00:50:36.599
you could click control r R on an identifier, the
1051
00:50:36.760 --> 00:50:39.280
rename thing come up. We show you automatically the top
1052
00:50:39.320 --> 00:50:41.880
three things that we think based on how that variable
1053
00:50:41.920 --> 00:50:44.320
is being used in your code. What will be good
1054
00:50:44.440 --> 00:50:47.679
names for that based on cipical naming strategies, and so
1055
00:50:47.760 --> 00:50:48.639
that's ambient AI.
1056
00:50:48.920 --> 00:50:51.559
Although we are talking about Microsoft here and you guys
1057
00:50:51.599 --> 00:50:56.960
have a record about names.
1058
00:50:57.360 --> 00:50:58.880
All right, well let's just put.
1059
00:50:58.679 --> 00:51:00.239
That right out there.
1060
00:50:59.599 --> 00:51:02.880
No size, that's the perfect name for what it does.
1061
00:51:03.079 --> 00:51:04.440
You know exactly what it does.
1062
00:51:04.639 --> 00:51:07.639
I'm the worst of naming things. They just the name
1063
00:51:07.719 --> 00:51:08.320
is what they do.
1064
00:51:08.519 --> 00:51:11.480
Yeah, yeah, which is actually the perfect name. Like, because
1065
00:51:11.599 --> 00:51:12.840
nobody's confused in.
1066
00:51:12.880 --> 00:51:15.960
The in the UK, they say, it's what's on the tin, right,
1067
00:51:16.440 --> 00:51:19.079
what's printed on the can is what you get. Yeah,
1068
00:51:19.199 --> 00:51:20.000
what's on the tin.
1069
00:51:20.000 --> 00:51:21.800
It's what is in the can. Like, that's as much
1070
00:51:21.840 --> 00:51:25.400
as we could hope for. I appreciate that.
1071
00:51:26.079 --> 00:51:27.079
Uh.
1072
00:51:27.480 --> 00:51:28.840
Can we talk a little bit about the sort of
1073
00:51:28.920 --> 00:51:32.239
project side that is also visual studio because I think,
1074
00:51:32.599 --> 00:51:33.960
you know, people will tell me, you, well, why would
1075
00:51:33.960 --> 00:51:36.239
I use visual studio code of visual studio? And it's like,
1076
00:51:36.920 --> 00:51:39.760
to me, studio is as much a project management tool
1077
00:51:40.119 --> 00:51:41.800
as it is a development environment.
1078
00:51:42.000 --> 00:51:46.000
It is. Now, that's funny, that's exactly how I look
1079
00:51:46.000 --> 00:51:48.320
at it too, and that relationship you have between projects
1080
00:51:48.360 --> 00:51:52.519
and solutions. But if you're new to visual studio, you know,
1081
00:51:52.800 --> 00:51:56.199
a lot of people don't understand that concept, yeah, because
1082
00:51:56.239 --> 00:51:58.960
it's just new to them, foreign to them, and it
1083
00:51:59.000 --> 00:52:02.119
really allows us to do some interesting things when it
1084
00:52:02.159 --> 00:52:05.519
comes to building and to building context, I mean compiling
1085
00:52:05.840 --> 00:52:08.960
and building context for intellisents and so on when it's
1086
00:52:08.960 --> 00:52:10.920
not based on a file system, but it's based on
1087
00:52:11.239 --> 00:52:15.039
an intentional project structure. So I guess you could replicate
1088
00:52:15.039 --> 00:52:16.920
that in the filesystem too, but that's typically not what
1089
00:52:17.039 --> 00:52:21.880
you see, and so that's you know, we've it's always
1090
00:52:21.920 --> 00:52:24.920
been a little bit problematic too, because loading from a
1091
00:52:24.960 --> 00:52:28.800
file system is fast, but loading from a project hierarchy
1092
00:52:28.880 --> 00:52:31.679
that you have to read the entire hierarchy first before
1093
00:52:31.719 --> 00:52:34.480
you can figure out the dependencies between them and how
1094
00:52:34.519 --> 00:52:37.079
to then render them in the solution explore right in
1095
00:52:37.119 --> 00:52:39.519
the tree view. And so there's always it's always been
1096
00:52:39.519 --> 00:52:43.239
more expensive from that perspective working with the projects and solutions.
1097
00:52:43.800 --> 00:52:47.400
So this time around we've we've finally i'd say, been
1098
00:52:47.440 --> 00:52:50.840
able to go really really deep on some performance stuff
1099
00:52:51.679 --> 00:52:54.280
to make that, you know, faster than ever. So you'll
1100
00:52:54.280 --> 00:52:56.480
notice the first thing you'll notice in the new version
1101
00:52:56.599 --> 00:53:01.599
is how fast things show up, how fast project solutions
1102
00:53:01.639 --> 00:53:03.480
load all that, it's just it's visible immediately.
1103
00:53:03.599 --> 00:53:07.960
I was under the impression that the reason why visual
1104
00:53:08.000 --> 00:53:13.199
studio proper is slower than say visual studio code is
1105
00:53:13.239 --> 00:53:18.000
because there's a lot of calm involved in stuff, and
1106
00:53:18.079 --> 00:53:21.360
so that naturally kind of slows down the whole process
1107
00:53:21.400 --> 00:53:23.960
and kind of bloats the memory. But I don't know
1108
00:53:24.039 --> 00:53:25.760
if that's really true. What do you think about that?
1109
00:53:26.960 --> 00:53:28.840
No, that that had that has some truth to it,
1110
00:53:28.880 --> 00:53:32.800
for sure. And but also like visual studios over twenty
1111
00:53:32.840 --> 00:53:35.119
eight years old, and so there's there's some things that
1112
00:53:35.119 --> 00:53:38.239
have just evolved over time, like some debt that has
1113
00:53:38.280 --> 00:53:40.679
been building up, right, and we've finally been able to
1114
00:53:40.719 --> 00:53:43.920
look at that, but some very key aspects of it.
1115
00:53:43.960 --> 00:53:47.000
But one thing that was was a thing was blocking
1116
00:53:47.000 --> 00:53:49.599
the UI threat. So when you would click a button
1117
00:53:49.920 --> 00:53:53.639
to do it something, sometimes whatever would happen when you
1118
00:53:53.639 --> 00:53:55.800
click that button would do that on the UI threat.
1119
00:53:55.880 --> 00:53:59.159
And what that means is that visual studio freezese. Nothing
1120
00:53:59.199 --> 00:54:01.920
could update on the score, right, and so we would
1121
00:54:02.280 --> 00:54:03.920
and so we get what we call it's called a hang,
1122
00:54:04.320 --> 00:54:07.440
but you might call it a freeze, and Zoo would
1123
00:54:07.440 --> 00:54:09.440
be unresponsive for like a half a second.
1124
00:54:09.519 --> 00:54:12.159
Once the programmers know all about that though. I mean,
1125
00:54:12.199 --> 00:54:14.679
if you've done any kind of multi threaded or a programming,
1126
00:54:14.719 --> 00:54:15.440
you know what that is.
1127
00:54:16.239 --> 00:54:17.280
That's top programmers.
1128
00:54:17.800 --> 00:54:22.199
Richard had this comment about outlook sixty five threads and
1129
00:54:22.320 --> 00:54:28.719
not one of them for me, that's my thread.
1130
00:54:29.119 --> 00:54:31.239
But when you start but when you start doing that,
1131
00:54:31.320 --> 00:54:33.159
and that's part of that profile the thing too, right
1132
00:54:33.320 --> 00:54:35.679
or or debugger where like something like an AI can
1133
00:54:35.719 --> 00:54:38.880
help you. Is it's really hard to d book like
1134
00:54:39.239 --> 00:54:44.119
acinc call stacks and you know, multi threaded applications or whatnot.
1135
00:54:44.639 --> 00:54:48.960
But this time around, we've really really done more than
1136
00:54:49.000 --> 00:54:51.519
ever in terms of moving things out of the UI
1137
00:54:51.519 --> 00:54:55.679
threat and that we run dot net you know core
1138
00:54:56.559 --> 00:54:59.960
processes under visual Studio that you know runs very qui
1139
00:55:00.199 --> 00:55:02.159
and very fast, and it does a lot of that
1140
00:55:02.239 --> 00:55:04.559
work in the background now. So you'll see visual Studio
1141
00:55:04.639 --> 00:55:09.679
becoming a lot snappier. So opening startup, opening a solution,
1142
00:55:10.159 --> 00:55:13.480
time you hit five, like compilation and time for you
1143
00:55:13.559 --> 00:55:14.800
to hit When you hit a five too, you hit
1144
00:55:14.840 --> 00:55:16.800
your break point. Is that was so much faster than
1145
00:55:16.880 --> 00:55:19.360
ever was and it does all that while the UI
1146
00:55:19.400 --> 00:55:20.320
is still respond here.
1147
00:55:20.480 --> 00:55:23.280
If you guys at Microsoft, the people that are working
1148
00:55:23.280 --> 00:55:27.320
on Visual Studio in general are using AI to help
1149
00:55:27.440 --> 00:55:32.159
them find bottlenecks and find places that need to be
1150
00:55:32.719 --> 00:55:33.559
fixed or updated.
1151
00:55:33.920 --> 00:55:36.119
Yeah, we're using it internally. You have to you have
1152
00:55:36.159 --> 00:55:39.119
to think about the So the Profiler Agent is really new,
1153
00:55:39.440 --> 00:55:41.800
So we haven't used it like extensively, like for a
1154
00:55:41.840 --> 00:55:46.000
long period of time. It's very new, and I tell
1155
00:55:46.000 --> 00:55:47.159
you it was. Some of the first things we did
1156
00:55:47.320 --> 00:55:49.400
was we told all the teams, hey use it on
1157
00:55:49.440 --> 00:55:52.840
your own code base inside Visual Studio, and so we
1158
00:55:52.880 --> 00:55:56.239
see optimizations come in all the time. But what Nick did,
1159
00:55:56.440 --> 00:55:58.760
he's on the profiler team, he did something really interesting.
1160
00:55:58.840 --> 00:56:01.639
He started with the top hundred Nugat packages and he
1161
00:56:01.679 --> 00:56:04.880
would profile them to figure out where are the hotspots
1162
00:56:04.920 --> 00:56:06.480
or whatever and can he fixed them? So he sent
1163
00:56:06.599 --> 00:56:09.760
starts sending pull requests to the top Nugat packages because
1164
00:56:09.760 --> 00:56:12.880
they're used in thousands and if not millions of apps, right,
1165
00:56:13.719 --> 00:56:16.280
and that means if he can like do seventeen percent
1166
00:56:16.360 --> 00:56:19.360
better performance for some of these packages, like that's a
1167
00:56:19.519 --> 00:56:21.280
huge win for everybody.
1168
00:56:21.800 --> 00:56:22.400
Yeah wow.
1169
00:56:22.719 --> 00:56:25.960
So he's been very busy doing that and that's really
1170
00:56:25.960 --> 00:56:28.599
great because that trains him in using the product and
1171
00:56:28.679 --> 00:56:31.199
figuring out where there could be further improvements and so on.
1172
00:56:31.960 --> 00:56:35.559
Plus all the internal dog footing stuff off that profiler
1173
00:56:36.719 --> 00:56:39.639
ends up making everything better and we can fine tune
1174
00:56:39.679 --> 00:56:41.920
all these things and it's it's really impressive.
1175
00:56:41.920 --> 00:56:45.079
Well, I guarantee Polly isn't one of those newcat packages
1176
00:56:45.119 --> 00:56:46.800
that needed improvement.
1177
00:56:47.440 --> 00:56:49.719
It's really should I tell nick to go look at that.
1178
00:56:50.280 --> 00:56:52.719
No, it's really fast, it's really good.
1179
00:56:53.039 --> 00:56:55.239
Oh, it's fast enough, it doesn't need Yeah, it's.
1180
00:56:55.119 --> 00:56:58.639
Like all native the as your team got involved because
1181
00:56:58.679 --> 00:57:00.800
they were leaning on it. Pretty Yeah.
1182
00:57:00.920 --> 00:57:04.559
I think actually Nicky found that when he ran some profiling,
1183
00:57:04.599 --> 00:57:07.400
he figured out all the way down in dot Net
1184
00:57:07.440 --> 00:57:10.800
framework itself that there was something that could be optimize.
1185
00:57:11.039 --> 00:57:13.679
So I think he's gonna send up a code update.
1186
00:57:13.920 --> 00:57:16.360
I'm not sure they take pull requests in the traditional sense,
1187
00:57:16.920 --> 00:57:19.079
but like he's gonna see if we can get some.
1188
00:57:19.400 --> 00:57:20.039
That's so cool.
1189
00:57:20.199 --> 00:57:22.639
That framework, because that has to do with visual studio startup.
1190
00:57:22.920 --> 00:57:26.000
Visual Studio actually is a native process that boots up
1191
00:57:26.119 --> 00:57:29.599
the dot Net framework in its own. It's like it's
1192
00:57:29.639 --> 00:57:30.280
really kind of.
1193
00:57:30.719 --> 00:57:33.559
And you're talking about you're talking about the Donet framework,
1194
00:57:33.599 --> 00:57:35.360
the Windows version of dot Net framework.
1195
00:57:35.719 --> 00:57:37.559
Yeah, framework for it Yep.
1196
00:57:37.480 --> 00:57:39.639
That's so cool that you guys are doing that, and
1197
00:57:40.360 --> 00:57:42.199
it's it's inspirational.
1198
00:57:42.360 --> 00:57:45.280
Really well, it's just a reminder that Microsoft employees use
1199
00:57:45.360 --> 00:57:48.840
Visual Studio like the products you build the products with
1200
00:57:48.880 --> 00:57:50.239
the products Uber Dog Souper.
1201
00:57:51.199 --> 00:57:53.000
That's my joke always like, hey, did you know that
1202
00:57:53.079 --> 00:57:56.719
Visual Studio twenty twenty six was build using Visual Studio six.
1203
00:57:57.360 --> 00:57:59.960
That's great, it's true. So where can folks take out
1204
00:58:00.159 --> 00:58:01.079
preview out firs spin.
1205
00:58:01.440 --> 00:58:03.599
Yeah, go to visual studio dot com, click the download
1206
00:58:03.639 --> 00:58:07.280
button and select the preview of twenty twenty six. That's
1207
00:58:07.280 --> 00:58:07.679
how you do it.
1208
00:58:07.679 --> 00:58:10.000
But if you already have the Visual Studio installer, you
1209
00:58:10.000 --> 00:58:13.519
can just load run that and it'll tell you if
1210
00:58:13.519 --> 00:58:15.000
there are preview versions, right.
1211
00:58:15.440 --> 00:58:18.480
You need to maybe if you have the preview already,
1212
00:58:18.519 --> 00:58:22.199
you've got the latest on the preview that includes the installer. Otherwise,
1213
00:58:22.239 --> 00:58:24.119
just go to visual studiot com click it there. If
1214
00:58:24.119 --> 00:58:26.760
it doesn't show up for you, and you can install
1215
00:58:26.760 --> 00:58:29.559
a side by side. It won't interfere with any other installs.
1216
00:58:29.599 --> 00:58:32.039
You got a Visual Studio twenty twenty two or whatever,
1217
00:58:32.679 --> 00:58:34.840
and it will it will look at twenty twenty two
1218
00:58:34.920 --> 00:58:36.840
if you have that installed. So when you're installed twenty
1219
00:58:36.840 --> 00:58:38.840
twenty six, it looks at twenty twenty two, and it
1220
00:58:38.880 --> 00:58:44.000
looks at your settings, your extensions, and the components the
1221
00:58:44.039 --> 00:58:47.000
workloads like if you're if you've taken like let's say
1222
00:58:47.159 --> 00:58:50.840
dot net, ASP, dot net and desktop, those are your
1223
00:58:50.880 --> 00:58:54.800
two workloads. It will copy that information. It will take
1224
00:58:54.800 --> 00:58:57.880
that information from twenty twenty two and pre select all that.
1225
00:58:57.920 --> 00:59:00.239
So your installation is super smooth. You get all the
1226
00:59:00.239 --> 00:59:03.920
components you need, settings and extensions because the extensions are
1227
00:59:04.840 --> 00:59:07.199
you're twenty twenty two. Extensions work in twenty twenty three.
1228
00:59:07.239 --> 00:59:14.639
You go, let's hear for extensions. Yeah, going into the future.
1229
00:59:14.960 --> 00:59:17.400
Very exciting stuff and that. Yeah, so it's super fast
1230
00:59:17.440 --> 00:59:19.800
to get from you click the install butt until you're
1231
00:59:19.800 --> 00:59:22.679
able to open till you're able to open your solution
1232
00:59:22.760 --> 00:59:25.440
and start writing code. Is probably the fastest ever.
1233
00:59:25.559 --> 00:59:29.079
Fantastic nice All right, Well, geez, I think I ran
1234
00:59:29.119 --> 00:59:31.559
out of questions. You got any more, Richard.
1235
00:59:31.360 --> 00:59:33.920
No good. I think it looks like it's gonna be
1236
00:59:33.960 --> 00:59:35.599
an awesome version of the studio, and it's been a
1237
00:59:35.599 --> 00:59:37.239
while coming, but I understand why.
1238
00:59:37.480 --> 00:59:40.599
Matt, thank you so much. It's been awesome as always.
1239
00:59:40.639 --> 00:59:43.559
Thanks for having me. It's my pleasure as always.
1240
00:59:43.159 --> 00:59:45.400
All right, and we'll talk to you next time on
1241
00:59:45.519 --> 01:00:02.960
dot net brocks.
1242
01:00:07.199 --> 01:00:09.880
Dot net Rocks is brought to you by Franklin's Net
1243
01:00:10.000 --> 01:00:13.960
and produced by Pop Studios, a full service audio, video
1244
01:00:14.039 --> 01:00:18.119
and post production facility located physically in New London, Connecticut,
1245
01:00:18.360 --> 01:00:23.159
and of course in the cloud online at pwop dot com.
1246
01:00:23.360 --> 01:00:25.480
Visit our website at d O T N E t
1247
01:00:25.719 --> 01:00:29.760
R O c k S dot com for RSS feeds, downloads,
1248
01:00:29.880 --> 01:00:33.559
mobile apps, comments, and access to the full archives going
1249
01:00:33.599 --> 01:00:37.000
back to show number one, recorded in September.
1250
01:00:36.440 --> 01:00:37.239
Two thousand and two.
1251
01:00:37.920 --> 01:00:40.239
And make sure you check out our sponsors. They keep
1252
01:00:40.320 --> 01:00:43.480
us in business. Now go write some code, See you
1253
01:00:43.519 --> 01:00:43.960
next time.
1254
01:00:44.880 --> 01:00:46.679
You got Javans
1255
01:00:48.760 --> 01:01:00.559
And s