WEBVTT

1
00:00:00.960 --> 00:00:02.879
<v Speaker 1>Hey Richard, Hey Carl, what do you know?

2
00:00:03.120 --> 00:00:06.679
<v Speaker 2>Well, I know that our friend Michelle Rubusta Monte is

3
00:00:06.719 --> 00:00:08.880
<v Speaker 2>with us to tell us about something that's going on

4
00:00:09.519 --> 00:00:11.199
<v Speaker 2>adjacent to DEV Intersection.

5
00:00:11.240 --> 00:00:12.039
<v Speaker 1>What is it?

6
00:00:12.039 --> 00:00:16.199
<v Speaker 3>It's cybersecurity Intersection. Let's let Michelle tell that story.

7
00:00:16.679 --> 00:00:21.320
<v Speaker 4>Hey Michelle, Hey Carl, Hey Richard, how are you.

8
00:00:21.000 --> 00:00:22.839
<v Speaker 2>Tell us about cybersecurity Intersection?

9
00:00:23.480 --> 00:00:26.920
<v Speaker 4>Well, so, Richard and I are partnering with the group

10
00:00:27.000 --> 00:00:30.359
<v Speaker 4>that does DEV Intersection and next Gen AI, and we

11
00:00:30.600 --> 00:00:34.200
<v Speaker 4>are putting on a new conference dedicated to one hundred

12
00:00:34.240 --> 00:00:40.000
<v Speaker 4>percent security focused topics. And I mean, honestly, the lineup

13
00:00:40.039 --> 00:00:43.679
<v Speaker 4>of speakers is incredible. We have Paula A. Jenis, who's

14
00:00:43.719 --> 00:00:47.600
<v Speaker 4>here from Poland and does keynotes all over the world

15
00:00:47.719 --> 00:00:50.600
<v Speaker 4>and is one of the top rated RSA speakers and

16
00:00:50.640 --> 00:00:53.159
<v Speaker 4>black hat speaker. We're so lucky to have her. But

17
00:00:53.240 --> 00:00:56.000
<v Speaker 4>she's not only keynoting, she's got a workshop teaches you

18
00:00:56.039 --> 00:01:01.039
<v Speaker 4>about protecting your environments against hackers and shows you about

19
00:01:01.280 --> 00:01:03.719
<v Speaker 4>how to you know, do attacks so that you can

20
00:01:03.759 --> 00:01:07.840
<v Speaker 4>prevent them. It's pretty cool and sessions like that as well.

21
00:01:07.840 --> 00:01:10.799
<v Speaker 4>But we also have speakers from Microsoft. We have we

22
00:01:10.840 --> 00:01:15.120
<v Speaker 4>have speakers that specialize in you know secure coding practices,

23
00:01:15.640 --> 00:01:20.439
<v Speaker 4>Azure security, Zuero, trust architectures on Azure UH and people

24
00:01:20.439 --> 00:01:23.519
<v Speaker 4>who do decision maker tracks, so things around governance policy

25
00:01:23.560 --> 00:01:26.200
<v Speaker 4>and you know how to how to manage and your

26
00:01:26.200 --> 00:01:29.480
<v Speaker 4>production operations keep them secure. So it's an amazing group

27
00:01:29.519 --> 00:01:31.040
<v Speaker 4>of speakers, really excited about it.

28
00:01:31.120 --> 00:01:33.560
<v Speaker 2>And I think I can count myself among the group

29
00:01:33.599 --> 00:01:34.599
<v Speaker 2>of speakers there.

30
00:01:35.040 --> 00:01:37.120
<v Speaker 4>Well, yes you can. That is great.

31
00:01:37.480 --> 00:01:42.159
<v Speaker 2>Yeah, I'm doing a securing Blazer Server applications talk and

32
00:01:42.239 --> 00:01:45.959
<v Speaker 2>also I think we're doing a Security this Week live

33
00:01:46.040 --> 00:01:48.480
<v Speaker 2>show there somewhere that is correct.

34
00:01:48.719 --> 00:01:51.200
<v Speaker 4>Yeah, we'll be recording Security this Week Live. We're going

35
00:01:51.239 --> 00:01:54.719
<v Speaker 4>to have a great panel with some folks. The interesting

36
00:01:54.719 --> 00:01:57.920
<v Speaker 4>thing here is we don't really have a Microsoft and

37
00:01:58.000 --> 00:02:02.120
<v Speaker 4>dot net and Azure focused toecurity conference yet, so that's

38
00:02:02.159 --> 00:02:05.159
<v Speaker 4>the reason we're putting this on as well. You know

39
00:02:05.200 --> 00:02:08.280
<v Speaker 4>there are other security conferences, but they have a spread

40
00:02:08.280 --> 00:02:10.439
<v Speaker 4>of topics that maybe don't focus on the things you

41
00:02:10.520 --> 00:02:13.080
<v Speaker 4>do day to day. And you know this overlaps with

42
00:02:13.199 --> 00:02:17.560
<v Speaker 4>again our community of folks that specialize in again dot net,

43
00:02:17.680 --> 00:02:21.039
<v Speaker 4>Azure and yeah, they need to keep it secure too,

44
00:02:21.280 --> 00:02:22.840
<v Speaker 4>So with tons of talks.

45
00:02:23.719 --> 00:02:27.240
<v Speaker 3>Cyber Intersection is part of a trio of conferences we're doing.

46
00:02:27.280 --> 00:02:30.360
<v Speaker 3>They have Intersection alongside the next Gen AI Conference all

47
00:02:30.439 --> 00:02:34.680
<v Speaker 3>in Orlando the week of October fifth through tenth. That's

48
00:02:34.759 --> 00:02:38.080
<v Speaker 3>workshops and the main conference. And you can get a

49
00:02:38.120 --> 00:02:41.400
<v Speaker 3>special registration code if you sign up through Cybersecurity Intersection

50
00:02:41.639 --> 00:02:42.360
<v Speaker 3>dot com.

51
00:02:42.680 --> 00:02:47.400
<v Speaker 4>Yeah, so if you sign up at Cybersecurity Intersection dot com,

52
00:02:47.599 --> 00:02:52.520
<v Speaker 4>then you put in this code so Alliance cyber three

53
00:02:52.599 --> 00:02:56.319
<v Speaker 4>hundred and you'll get three hundred off the entry price.

54
00:02:56.560 --> 00:02:59.639
<v Speaker 4>So that's a special code that only works at cybersecurity

55
00:03:00.599 --> 00:03:04.439
<v Speaker 4>dot com. And then you have access to all the conferences.

56
00:03:04.479 --> 00:03:09.400
<v Speaker 2>Like Richard said, Wow, that's cool. Thanks Michelle. I'm looking

57
00:03:09.439 --> 00:03:24.080
<v Speaker 2>forward to it and I'll see you there. Hey, guess what.

58
00:03:24.159 --> 00:03:27.199
<v Speaker 2>It's dot net Rocks. I'm Carl Franklin and I'm Richard

59
00:03:27.240 --> 00:03:31.360
<v Speaker 2>Kemp and we're here for episode number nineteen hundred and

60
00:03:31.400 --> 00:03:32.080
<v Speaker 2>sixty eight.

61
00:03:32.639 --> 00:03:34.639
<v Speaker 1>A good year for your listening.

62
00:03:34.240 --> 00:03:40.199
<v Speaker 2>Pleasure, for your listening pleasure. Yes, So David Wensche is

63
00:03:40.240 --> 00:03:42.680
<v Speaker 2>here and we're going to talk to him in a minute.

64
00:03:42.719 --> 00:03:45.840
<v Speaker 2>But first, how are you, mister Campbell. I haven't checked

65
00:03:45.840 --> 00:03:46.919
<v Speaker 2>in with you in a while.

66
00:03:46.719 --> 00:03:50.039
<v Speaker 3>You know, post summer going into the fall conference season,

67
00:03:50.080 --> 00:03:54.039
<v Speaker 3>I'm literally going to be traveling all of October. I'm

68
00:03:54.039 --> 00:03:59.879
<v Speaker 3>doing like five shows and two user groups back to back. Wow,

69
00:04:00.240 --> 00:04:01.800
<v Speaker 3>and the boss is not coming with me because you

70
00:04:01.879 --> 00:04:03.639
<v Speaker 3>looked at it? What nah?

71
00:04:03.960 --> 00:04:06.080
<v Speaker 2>I was just that was my next question. Is Stacy

72
00:04:06.120 --> 00:04:07.080
<v Speaker 2>coming with you?

73
00:04:07.120 --> 00:04:10.080
<v Speaker 3>No, no, she's not. We'll be together a dev intersection.

74
00:04:10.199 --> 00:04:13.120
<v Speaker 3>Oh cool? Yeah, well you and I. Stacy's not coming

75
00:04:13.120 --> 00:04:16.519
<v Speaker 3>for that one either, but yeah, okay Intersection and then

76
00:04:16.519 --> 00:04:20.160
<v Speaker 3>the Azure Dev Summit and then the Norwegian show is

77
00:04:20.199 --> 00:04:22.120
<v Speaker 3>this tron time and Stavanger.

78
00:04:22.360 --> 00:04:24.560
<v Speaker 2>I looked at my schedule for dev Intersection. I signed

79
00:04:24.639 --> 00:04:26.680
<v Speaker 2>up for a lot of stuff. Yeah, yeah, and put

80
00:04:26.720 --> 00:04:28.160
<v Speaker 2>you to work there. I'm going to be well, you

81
00:04:28.279 --> 00:04:30.920
<v Speaker 2>sign up for something out yourself. I know, I brought

82
00:04:30.920 --> 00:04:31.519
<v Speaker 2>it on myself.

83
00:04:31.639 --> 00:04:31.879
<v Speaker 1>Yeah.

84
00:04:31.920 --> 00:04:34.000
<v Speaker 3>You made that talk with Maddie, which is really going

85
00:04:34.040 --> 00:04:36.879
<v Speaker 3>to be cool. You know, it's spiifying.

86
00:04:37.639 --> 00:04:40.279
<v Speaker 2>Rocks dot com in front of a live audience.

87
00:04:40.560 --> 00:04:43.360
<v Speaker 3>I think you're crazy, but I love it. It is crazy,

88
00:04:43.560 --> 00:04:46.839
<v Speaker 3>you know me as the conference owner, delighted me as

89
00:04:46.839 --> 00:04:47.560
<v Speaker 3>your co host.

90
00:04:47.879 --> 00:04:48.560
<v Speaker 1>What are you doing?

91
00:04:48.600 --> 00:04:54.319
<v Speaker 2>What are you doing? Especially because you've seeing my code right?

92
00:04:54.399 --> 00:04:54.720
<v Speaker 1>Yeah? I know.

93
00:04:54.879 --> 00:04:59.240
<v Speaker 3>I you usually don't fly that close to the sun. Right,

94
00:04:59.720 --> 00:05:02.920
<v Speaker 3>you know that, guy. I've seen your demos. They're polished,

95
00:05:02.920 --> 00:05:04.680
<v Speaker 3>their routine they work every time.

96
00:05:04.720 --> 00:05:09.560
<v Speaker 2>You know, they haven't all been polished. I've had some clams.

97
00:05:09.759 --> 00:05:11.680
<v Speaker 3>It's funny anyway, it's going to be a riot.

98
00:05:13.120 --> 00:05:18.560
<v Speaker 2>In the early days of Zamorin, I remember spending the

99
00:05:18.560 --> 00:05:22.399
<v Speaker 2>first half of the workshop just getting people to Hello

100
00:05:22.480 --> 00:05:24.639
<v Speaker 2>World because it was so difficult.

101
00:05:24.800 --> 00:05:27.519
<v Speaker 3>No, you should have done the workshop called get Zamoran

102
00:05:27.560 --> 00:05:28.639
<v Speaker 3>running on your machine.

103
00:05:28.720 --> 00:05:31.759
<v Speaker 2>Yeah, that's basically the first half of the day. Yeah,

104
00:05:31.920 --> 00:05:34.240
<v Speaker 2>it got easier as time went on, but back in

105
00:05:34.279 --> 00:05:37.120
<v Speaker 2>the day, that's what we did. All right, let's run

106
00:05:37.199 --> 00:05:38.920
<v Speaker 2>the crazy music for better no framework?

107
00:05:39.000 --> 00:05:47.959
<v Speaker 1>Awesome? All right, what do you got?

108
00:05:48.000 --> 00:05:50.920
<v Speaker 2>Well? Me, being a Blazer guy, I found this trending

109
00:05:51.079 --> 00:05:56.399
<v Speaker 2>and true repo on GitHub from Mista Howard m I

110
00:05:56.600 --> 00:06:00.040
<v Speaker 2>S T A h O W A r D And

111
00:06:00.160 --> 00:06:04.079
<v Speaker 2>it's Blazer dash. Why Dash did Dash? You Dash render?

112
00:06:04.680 --> 00:06:06.639
<v Speaker 2>Blazer Why did you render?

113
00:06:10.800 --> 00:06:14.959
<v Speaker 3>So it's a powerful I wonder what this does, carlus.

114
00:06:15.680 --> 00:06:18.519
<v Speaker 2>It's a performance monitoring and debugging tool for Blazer apps.

115
00:06:18.560 --> 00:06:24.480
<v Speaker 2>Helps identify unnecessary rerenders and optimize component performance across server,

116
00:06:25.120 --> 00:06:29.639
<v Speaker 2>web assembly and service side rendered environments. That's fantastic, And

117
00:06:29.680 --> 00:06:33.879
<v Speaker 2>if you look down the features, one of the one

118
00:06:33.920 --> 00:06:39.120
<v Speaker 2>of the best one is unnecessary render detection. Find components

119
00:06:39.120 --> 00:06:43.439
<v Speaker 2>that re render without actual changes. Interesting and it's so

120
00:06:43.519 --> 00:06:47.040
<v Speaker 2>easy to do. Basically, anytime you do a state has

121
00:06:47.160 --> 00:06:51.160
<v Speaker 2>changed in Blazer, you're forcing a rerender, but you don't

122
00:06:51.160 --> 00:06:53.839
<v Speaker 2>always need to. And I find that this is one

123
00:06:53.879 --> 00:06:59.120
<v Speaker 2>of the things the nuances of Blazer that most developers

124
00:06:59.120 --> 00:07:02.360
<v Speaker 2>don't understand. When should I do state has changed, when

125
00:07:02.360 --> 00:07:06.240
<v Speaker 2>should I not? And when should I do invoke sync

126
00:07:06.319 --> 00:07:08.399
<v Speaker 2>state has changed, which has more to do with the

127
00:07:08.519 --> 00:07:13.040
<v Speaker 2>UI thread than it does a sink. But you basically,

128
00:07:13.319 --> 00:07:17.639
<v Speaker 2>anytime you have a UI and event like a button

129
00:07:17.720 --> 00:07:21.680
<v Speaker 2>click or something like that that's triggered from UI and

130
00:07:21.720 --> 00:07:24.600
<v Speaker 2>you write some code, you do not have to rerender

131
00:07:24.680 --> 00:07:28.000
<v Speaker 2>after that, it's automatically done. When you do have to

132
00:07:28.040 --> 00:07:30.839
<v Speaker 2>rerender is when you have like a callback from JavaScript

133
00:07:31.360 --> 00:07:34.800
<v Speaker 2>or a timer or something that isn't started on the

134
00:07:34.920 --> 00:07:38.240
<v Speaker 2>UI thread. That's when you do that. But doing some

135
00:07:38.319 --> 00:07:40.800
<v Speaker 2>code reviews and stuff, I see it's all over the map.

136
00:07:40.839 --> 00:07:44.040
<v Speaker 2>People just throw state has changed in there as an

137
00:07:44.040 --> 00:07:48.519
<v Speaker 2>insurance policy, but it's unnecessary. So this is a great

138
00:07:48.519 --> 00:07:49.240
<v Speaker 2>tool for that.

139
00:07:49.399 --> 00:07:49.839
<v Speaker 1>Awesome.

140
00:07:50.040 --> 00:07:52.800
<v Speaker 2>Yeah, well that's what I got. Who's talking to us today?

141
00:07:52.839 --> 00:07:55.680
<v Speaker 3>Richard grabbed a comment off a show fourteen seventy five,

142
00:07:56.319 --> 00:07:59.000
<v Speaker 3>just back in September twenty seventeen, or were talked to

143
00:07:59.040 --> 00:08:03.360
<v Speaker 3>Jesse Shadwick about the new Razor Pages in Core to

144
00:08:03.959 --> 00:08:06.319
<v Speaker 3>Core two. A bit of a flashback. I know, I

145
00:08:06.319 --> 00:08:08.639
<v Speaker 3>love it, Oh my god, but the comments are awesome

146
00:08:08.680 --> 00:08:09.199
<v Speaker 3>on this show.

147
00:08:09.240 --> 00:08:10.920
<v Speaker 2>Wait a minute, what episode number was that.

148
00:08:10.879 --> 00:08:12.800
<v Speaker 3>Fourteen seventy five, five hundred shows ago?

149
00:08:12.839 --> 00:08:15.319
<v Speaker 2>Oh my god, that's like right before Columbus Sail the

150
00:08:15.360 --> 00:08:22.240
<v Speaker 2>Ocean Blue. We weren't doing the what happened this year

151
00:08:22.279 --> 00:08:23.199
<v Speaker 2>back then? Yeah?

152
00:08:23.279 --> 00:08:24.120
<v Speaker 1>No, please don't.

153
00:08:25.079 --> 00:08:27.000
<v Speaker 3>All of that history is questionable at best.

154
00:08:27.360 --> 00:08:27.959
<v Speaker 2>Yeah right.

155
00:08:28.079 --> 00:08:31.319
<v Speaker 3>This comment comes from Saint Forever, which I suspect is

156
00:08:31.360 --> 00:08:35.320
<v Speaker 3>not their name. Also, a regular comment on the show

157
00:08:35.480 --> 00:08:39.320
<v Speaker 3>is including today the current shows. Wow, and they go

158
00:08:39.360 --> 00:08:41.200
<v Speaker 3>on to say another great show. I've been looking forward

159
00:08:41.200 --> 00:08:43.039
<v Speaker 3>to the show ever since it was first listed as

160
00:08:43.039 --> 00:08:45.000
<v Speaker 3>an upcoming show because we used to do that, used

161
00:08:45.039 --> 00:08:47.639
<v Speaker 3>to show the upcoming roster. We don't anymore, right indeed.

162
00:08:47.679 --> 00:08:50.080
<v Speaker 3>Asp doi net Coror Razor Pages is a well architected

163
00:08:50.120 --> 00:08:53.600
<v Speaker 3>programming model for developing modern WebUI. Microsoft recommended it as

164
00:08:53.600 --> 00:08:56.320
<v Speaker 3>the best way to build both simple and complex webuyes

165
00:08:56.679 --> 00:08:58.519
<v Speaker 3>and as the way forward for billy web locations. With

166
00:08:58.600 --> 00:09:02.399
<v Speaker 3>all all the MVCs ceremony and please Carl and Richard

167
00:09:02.440 --> 00:09:05.039
<v Speaker 3>at BEG you keep them coming great shows on Razor pages.

168
00:09:05.360 --> 00:09:07.480
<v Speaker 3>Developers will adopt this program all the logue full well

169
00:09:07.519 --> 00:09:09.360
<v Speaker 3>the Dotta ros Dowy shows on Razor Pages, and it

170
00:09:09.399 --> 00:09:13.679
<v Speaker 3>will help them make the choice. Yeah, okay, I mean

171
00:09:13.720 --> 00:09:17.360
<v Speaker 3>it's been a few years, but sure, let's do one. Yeah, okay, sure,

172
00:09:18.000 --> 00:09:20.360
<v Speaker 3>so thanks. See, Yeah, we're with you. We're a big

173
00:09:20.399 --> 00:09:22.279
<v Speaker 3>fan of Razor Pages. That's certainly what the run as

174
00:09:22.440 --> 00:09:26.559
<v Speaker 3>site is built out of. And although the the Dotta

175
00:09:26.639 --> 00:09:29.519
<v Speaker 3>rock side is Blazer, of course that's my friend Carl's

176
00:09:29.519 --> 00:09:32.559
<v Speaker 3>a big Blazer fan. Getting smallt we'll we'll keep on

177
00:09:32.799 --> 00:09:35.039
<v Speaker 3>doing a thing. Yeah, And a copy of music Coby

178
00:09:35.120 --> 00:09:36.159
<v Speaker 3>is on its way to you. And if you'd like

179
00:09:36.200 --> 00:09:37.720
<v Speaker 3>a copy of music Cobe, I write a comment on

180
00:09:37.720 --> 00:09:39.840
<v Speaker 3>the website at dot NetRocks dot com or on the facebooks.

181
00:09:39.840 --> 00:09:41.399
<v Speaker 3>You publish every show there, and if you comment there

182
00:09:41.399 --> 00:09:43.360
<v Speaker 3>and I'm reading the show, we'll send you copy of music.

183
00:09:43.360 --> 00:09:45.799
<v Speaker 2>Go and music to codeby is what we're talking about,

184
00:09:45.840 --> 00:09:48.919
<v Speaker 2>still going strong after all these years. Twenty two tracks,

185
00:09:48.960 --> 00:09:52.799
<v Speaker 2>twenty five minutes long each, perfect for those Pomedoro units

186
00:09:53.440 --> 00:09:56.240
<v Speaker 2>when you want to slip in and out of focus easily,

187
00:09:57.000 --> 00:10:00.159
<v Speaker 2>and that's at music toocoby dot net. Then we have

188
00:10:00.240 --> 00:10:05.320
<v Speaker 2>the collection in MP three flak and wave formats, and

189
00:10:05.799 --> 00:10:08.440
<v Speaker 2>that brings us to nineteen sixty eight, which is the

190
00:10:08.519 --> 00:10:11.720
<v Speaker 2>leader of the show and the things that happened in

191
00:10:11.799 --> 00:10:16.600
<v Speaker 2>nineteen sixty eight. Some bad things happened in nineteen sixty eight.

192
00:10:18.080 --> 00:10:23.679
<v Speaker 2>Martin Luther King was assassinated, Bobby Kennedy was assassinated. The

193
00:10:23.799 --> 00:10:28.360
<v Speaker 2>Tet offensive. On January thirtieth, Vietnamese forces launch a surprise

194
00:10:28.399 --> 00:10:37.360
<v Speaker 2>attack across South Vietnam. The DNC protests in Chicago deep

195
00:10:37.399 --> 00:10:40.120
<v Speaker 2>divisions over the deep Vietnam War and civil rights. I

196
00:10:40.120 --> 00:10:44.200
<v Speaker 2>remember getting back to the Beatles from last week, Paul

197
00:10:44.240 --> 00:10:47.480
<v Speaker 2>McCartney was saying, Yeah, they told us not to be political.

198
00:10:48.159 --> 00:10:50.240
<v Speaker 2>You know when they say, what do you think about Vietnam? Oh,

199
00:10:50.279 --> 00:10:58.600
<v Speaker 2>bad woo, bad wolf, that's it. Yeah, two thousand and one.

200
00:10:58.600 --> 00:11:03.399
<v Speaker 2>A Space Odyssey was released in sixty eight. Yeah, Summer Olympics.

201
00:11:03.399 --> 00:11:07.399
<v Speaker 2>First time the public heard the phrase artificial intelligence. Yeah, ever,

202
00:11:07.440 --> 00:11:11.080
<v Speaker 2>that's right, that's the first time. Yeah. Summer Olympics in

203
00:11:11.159 --> 00:11:14.879
<v Speaker 2>Mexico City notable for the black Power sloop by American

204
00:11:14.879 --> 00:11:19.200
<v Speaker 2>athletes Tommy Smith and John Carlos during the metal ceremony.

205
00:11:19.720 --> 00:11:22.480
<v Speaker 2>So you know, this is nothing new, this American No,

206
00:11:22.679 --> 00:11:23.679
<v Speaker 2>this is part of the history.

207
00:11:23.799 --> 00:11:24.039
<v Speaker 1>Yeah.

208
00:11:24.279 --> 00:11:27.120
<v Speaker 2>A Civil Rights Act of nineteen sixty eight was signed

209
00:11:27.120 --> 00:11:30.679
<v Speaker 2>into law. Great stuff, addressing housing discrimination and making a

210
00:11:30.759 --> 00:11:34.360
<v Speaker 2>significant step in the civil rights movement. And I'll let

211
00:11:34.360 --> 00:11:35.519
<v Speaker 2>you talk about Apollo eight.

212
00:11:35.799 --> 00:11:38.679
<v Speaker 3>Well, you know, an amazing because last week's show we

213
00:11:38.679 --> 00:11:41.639
<v Speaker 3>were talking about the disaster apollowed one. Yeah, and the

214
00:11:41.720 --> 00:11:44.720
<v Speaker 3>three astronauts lost there. And so just shy of two

215
00:11:44.799 --> 00:11:50.120
<v Speaker 3>years later, the first humans ever leave the Earth and

216
00:11:50.200 --> 00:11:54.200
<v Speaker 3>go beyond low Earth orbit. They Level Andmbornman and Andrews

217
00:11:54.240 --> 00:11:57.679
<v Speaker 3>go around the Moon a free return trajectory. They get

218
00:11:57.679 --> 00:12:03.279
<v Speaker 3>the famous photograph earth Rise by anders Yeah, and they

219
00:12:03.320 --> 00:12:04.399
<v Speaker 3>read from Genesis.

220
00:12:04.639 --> 00:12:04.879
<v Speaker 1>Yeah.

221
00:12:04.919 --> 00:12:07.720
<v Speaker 3>But Level is also the guy who held his arm

222
00:12:07.759 --> 00:12:10.000
<v Speaker 3>out at full length and covered the Earth with his thumb.

223
00:12:10.000 --> 00:12:14.399
<v Speaker 3>It's like everything we've ever known YEP is behind my thumb. Yeah,

224
00:12:14.440 --> 00:12:17.840
<v Speaker 3>it's crazy, crazy cool. It was an extraordinary moment and

225
00:12:17.879 --> 00:12:21.039
<v Speaker 3>a real positive one, and for better or worse, it

226
00:12:21.159 --> 00:12:23.600
<v Speaker 3>was also there was a serious picture at that moment

227
00:12:23.639 --> 00:12:25.759
<v Speaker 3>to end the Apollo program. At that point, the Americans

228
00:12:25.799 --> 00:12:28.639
<v Speaker 3>had finally were ahead on the space rice. They'd now

229
00:12:28.759 --> 00:12:30.360
<v Speaker 3>done something that the Soviets had not done.

230
00:12:30.440 --> 00:12:35.159
<v Speaker 2>I don't think it can be exaggerated the importance of

231
00:12:35.200 --> 00:12:39.080
<v Speaker 2>that image of Earth from space, the Earth rise, and

232
00:12:39.200 --> 00:12:41.440
<v Speaker 2>the impact that it well, not just the earth rise,

233
00:12:41.519 --> 00:12:43.960
<v Speaker 2>but you know, basically when we got out in the

234
00:12:44.000 --> 00:12:47.559
<v Speaker 2>Shuttle and we're able to take these pictures that were

235
00:12:47.879 --> 00:12:51.000
<v Speaker 2>where the Earth was bigger, but earth rise was in

236
00:12:51.039 --> 00:12:53.399
<v Speaker 2>the pale blue dot, of course, but the picture of

237
00:12:53.399 --> 00:13:01.120
<v Speaker 2>Earth from space is probably the biggest cultural achievement for

238
00:13:01.720 --> 00:13:05.279
<v Speaker 2>the mythos of who are we as a race, as

239
00:13:05.320 --> 00:13:11.639
<v Speaker 2>the human race, and with the biggest impact since you know,

240
00:13:11.799 --> 00:13:15.480
<v Speaker 2>the Egyptians perhaps or any of the ancient.

241
00:13:15.919 --> 00:13:18.639
<v Speaker 3>Astronauts to this day still talk about the overview effect

242
00:13:18.679 --> 00:13:21.480
<v Speaker 3>that you see that the borders are invisible. Yeah, right,

243
00:13:21.480 --> 00:13:23.799
<v Speaker 3>that the planet as a whole one. It changes the

244
00:13:23.799 --> 00:13:27.559
<v Speaker 3>way you perceive things, really does. I got two computing ones,

245
00:13:28.679 --> 00:13:30.399
<v Speaker 3>and we'll talk about which one is more important. The

246
00:13:30.399 --> 00:13:32.000
<v Speaker 3>first one, I think you'll think is the most portant,

247
00:13:32.000 --> 00:13:33.720
<v Speaker 3>but pretty sure. The second one is actually the first

248
00:13:33.759 --> 00:13:36.440
<v Speaker 3>one is that in nineteen sixty eight the company Intel

249
00:13:36.759 --> 00:13:39.519
<v Speaker 3>was founded, No kidding, I Noice and more. Yeah, And

250
00:13:39.559 --> 00:13:42.759
<v Speaker 3>their first product they'll start working hard on is making

251
00:13:44.120 --> 00:13:47.320
<v Speaker 3>digital RAM because at that point most computers are still

252
00:13:47.440 --> 00:13:49.039
<v Speaker 3>using Ferris core memory.

253
00:13:50.039 --> 00:13:50.960
<v Speaker 1>It's the idea of.

254
00:13:52.519 --> 00:13:55.840
<v Speaker 3>Integrated circuit memory is still novel. There's only test articles

255
00:13:55.840 --> 00:13:57.679
<v Speaker 3>so far. They haven't really scaled it up. But the

256
00:13:57.799 --> 00:14:01.240
<v Speaker 3>original product what Moore wrote more Law about, because this

257
00:14:01.320 --> 00:14:03.639
<v Speaker 3>is the year that he will author the statement that

258
00:14:03.679 --> 00:14:07.039
<v Speaker 3>will become Moore's law. He was talking about RAM. He

259
00:14:07.080 --> 00:14:09.879
<v Speaker 3>wasn't talking about CPUs. The CPU is still two years away.

260
00:14:10.159 --> 00:14:10.559
<v Speaker 1>Wow.

261
00:14:10.840 --> 00:14:14.200
<v Speaker 3>And yet there's something bigger that happened in nineteen sixty eight.

262
00:14:15.000 --> 00:14:18.720
<v Speaker 3>It is colloquially called today the mother of all demos.

263
00:14:19.480 --> 00:14:22.679
<v Speaker 3>This is dougle Engelbart's demo, which was originally named a

264
00:14:22.759 --> 00:14:25.919
<v Speaker 3>Research Center for Augmenting Human Intellect. This is the Stanford

265
00:14:26.000 --> 00:14:30.519
<v Speaker 3>Research Institute. And he had been working on a system

266
00:14:31.240 --> 00:14:37.000
<v Speaker 3>of computing that he called NLS, short for online system,

267
00:14:37.039 --> 00:14:39.720
<v Speaker 3>because picking random letters out of words is something they did.

268
00:14:39.840 --> 00:14:42.519
<v Speaker 3>Even then, he couldn't want to call it OS because

269
00:14:42.519 --> 00:14:46.120
<v Speaker 3>there's already operating system so online system NLS. There was

270
00:14:46.159 --> 00:14:50.039
<v Speaker 3>about a thousand people in the audiences at Stanford, including

271
00:14:50.080 --> 00:14:54.960
<v Speaker 3>Alan Ka, Like a lot of your foundational computing people

272
00:14:55.000 --> 00:14:57.679
<v Speaker 3>were in the room for this demo. And this was

273
00:14:57.720 --> 00:15:01.840
<v Speaker 3>a distributed computing demo, So not only were they at

274
00:15:03.039 --> 00:15:07.600
<v Speaker 3>the SRI Center there, but they had these custom made

275
00:15:07.840 --> 00:15:12.759
<v Speaker 3>twelve hundred modems and least lines to different locations. Bill

276
00:15:12.840 --> 00:15:16.159
<v Speaker 3>Paxton was remote. Bill English was there, and they used

277
00:15:16.200 --> 00:15:20.519
<v Speaker 3>an edit for video projector to show the screen that

278
00:15:20.559 --> 00:15:23.919
<v Speaker 3>Engelbert was working from on a twenty two foot wide screen.

279
00:15:23.960 --> 00:15:26.720
<v Speaker 3>Soever you could see it. The mouse prototype, which had

280
00:15:26.720 --> 00:15:28.919
<v Speaker 3>only been built a year or two before, is involved,

281
00:15:29.440 --> 00:15:35.919
<v Speaker 3>and what Douglas is demonstrating is resizing windows and highlighting text.

282
00:15:36.600 --> 00:15:40.559
<v Speaker 3>And at one point Paxton remotely edits some text that

283
00:15:42.039 --> 00:15:45.240
<v Speaker 3>Ingelbart had written. And at the end of this ninety

284
00:15:45.440 --> 00:15:49.600
<v Speaker 3>minute demo, it's just this huge standing ovation. Wow, they

285
00:15:49.759 --> 00:15:55.440
<v Speaker 3>saw the future that day. The future we were in diapers, right,

286
00:15:56.679 --> 00:16:00.440
<v Speaker 3>this is nineteen sixty eight, we were one one year old. Yeah,

287
00:16:00.519 --> 00:16:04.200
<v Speaker 3>the metaphors that you use in the computer today were

288
00:16:04.279 --> 00:16:07.200
<v Speaker 3>demonstrated that day. It's why they call it the Mother

289
00:16:07.240 --> 00:16:07.960
<v Speaker 3>of all demos.

290
00:16:08.200 --> 00:16:11.279
<v Speaker 2>Wow, I can't imagine what the excitement must have been

291
00:16:11.399 --> 00:16:13.320
<v Speaker 2>like the audience.

292
00:16:13.320 --> 00:16:16.000
<v Speaker 3>And that's the same year as we put humans around

293
00:16:16.000 --> 00:16:21.000
<v Speaker 3>the moon like sixty eight is horrible and astonishing.

294
00:16:21.200 --> 00:16:25.320
<v Speaker 2>Yeah, what are you amazing? And on that happy note,

295
00:16:25.679 --> 00:16:30.039
<v Speaker 2>which it is actually it is introduced David So. David

296
00:16:30.080 --> 00:16:35.600
<v Speaker 2>Wenja is a principal software engineer at Microsoft based in Melbourne, Australia.

297
00:16:35.720 --> 00:16:39.039
<v Speaker 2>He's currently the lead developer on the Razor Tooling experience

298
00:16:39.120 --> 00:16:42.200
<v Speaker 2>in Visual Studio and Visual Studio Code, but has otherwise

299
00:16:42.679 --> 00:16:45.559
<v Speaker 2>been working on dot net tooling for the last seven years,

300
00:16:46.200 --> 00:16:49.000
<v Speaker 2>with almost the entirety of that work being done in

301
00:16:49.039 --> 00:16:54.279
<v Speaker 2>the open on GitHub. He's passionate about good design, simple code,

302
00:16:54.399 --> 00:16:58.320
<v Speaker 2>and delivering a constant stream of pull requests to surprise

303
00:16:58.440 --> 00:17:03.279
<v Speaker 2>and confuse his coworker nice. When not working, he spends

304
00:17:03.320 --> 00:17:06.039
<v Speaker 2>more time than he probably should on social media and

305
00:17:06.240 --> 00:17:12.000
<v Speaker 2>enjoys admiring his lego collection from a respectful distance. Welcome, David,

306
00:17:12.160 --> 00:17:12.920
<v Speaker 2>Thank you very much.

307
00:17:13.000 --> 00:17:18.359
<v Speaker 5>Lovely pronunciation by the way. Yeah, I'm trying you trying

308
00:17:18.680 --> 00:17:19.640
<v Speaker 5>Melbourne right as well?

309
00:17:19.720 --> 00:17:21.160
<v Speaker 2>That's the Melbourne Nevin.

310
00:17:21.279 --> 00:17:24.160
<v Speaker 5>Yeah, usually that's the trap. Yeah, thank you for having.

311
00:17:24.039 --> 00:17:26.480
<v Speaker 3>Me all I remember most about Melbourne. Is it's windy

312
00:17:26.680 --> 00:17:29.799
<v Speaker 3>all the flip and time. Sometimes a warm wind, sometimes

313
00:17:29.839 --> 00:17:31.599
<v Speaker 3>it's a bitterly cold wind.

314
00:17:32.240 --> 00:17:35.880
<v Speaker 5>Yes, well, especially at the places where the conference venues

315
00:17:35.920 --> 00:17:37.519
<v Speaker 5>tend to be, which is I'm sure what you've bunk

316
00:17:37.559 --> 00:17:38.000
<v Speaker 5>out a lot?

317
00:17:38.240 --> 00:17:39.519
<v Speaker 1>Yeah? Right by the river right?

318
00:17:39.799 --> 00:17:42.960
<v Speaker 2>Yeh. So I have a couple of Australian terms I'd

319
00:17:43.039 --> 00:17:44.839
<v Speaker 2>like to settle with you.

320
00:17:45.519 --> 00:17:45.799
<v Speaker 5>Okay.

321
00:17:46.759 --> 00:17:49.759
<v Speaker 2>First of all, I first, I can't remember who I

322
00:17:49.839 --> 00:17:51.880
<v Speaker 2>was talking to when I first heard the word chuffed.

323
00:17:52.960 --> 00:17:56.559
<v Speaker 2>That's an Australian term for really happy. I'm excited. I'm chuffed.

324
00:17:57.039 --> 00:17:58.720
<v Speaker 5>I'm chuffed to be here, chuff to be here.

325
00:17:58.839 --> 00:18:02.319
<v Speaker 2>And second one is you guys really don't put shrimp

326
00:18:02.440 --> 00:18:03.519
<v Speaker 2>on the bobbie.

327
00:18:03.200 --> 00:18:03.799
<v Speaker 1>Do you know?

328
00:18:04.079 --> 00:18:06.000
<v Speaker 5>I don't think I've ever seen anyone do that.

329
00:18:06.039 --> 00:18:07.480
<v Speaker 2>And they don't say that, I mean, we don't call

330
00:18:07.519 --> 00:18:09.720
<v Speaker 2>it shrimp. No, that's an American.

331
00:18:09.759 --> 00:18:12.640
<v Speaker 5>We would say prawns. Yeah, we would say prawns. And

332
00:18:13.079 --> 00:18:14.559
<v Speaker 5>even then, but on.

333
00:18:14.640 --> 00:18:16.319
<v Speaker 2>The barbie, you don't do you say barbie or do

334
00:18:16.359 --> 00:18:19.160
<v Speaker 2>you say grill? Now we say bobby, you do say barbie? Okay?

335
00:18:19.359 --> 00:18:21.119
<v Speaker 5>Oh yeah, we like to shorten everything.

336
00:18:21.799 --> 00:18:25.720
<v Speaker 3>Yeah, yeah, even McDonald's is too long. It's mackers.

337
00:18:26.359 --> 00:18:27.559
<v Speaker 5>Yes, absolutely, so.

338
00:18:27.599 --> 00:18:31.319
<v Speaker 2>I remember Adam Cogan saying let's have some brecky not

339
00:18:31.440 --> 00:18:32.680
<v Speaker 2>breakfast hot eggs.

340
00:18:34.759 --> 00:18:35.119
<v Speaker 5>That's right.

341
00:18:35.200 --> 00:18:38.440
<v Speaker 2>And also Foster's beer is like water. You don't drink that.

342
00:18:38.480 --> 00:18:39.880
<v Speaker 1>Stuff, right, Yeah, we don't drink that.

343
00:18:40.000 --> 00:18:43.400
<v Speaker 5>No, No, I remember, Actually I was. I was in

344
00:18:43.480 --> 00:18:45.759
<v Speaker 5>London a few months ago and walked into a to

345
00:18:45.880 --> 00:18:48.519
<v Speaker 5>a pub there and they had it. I actually can't

346
00:18:48.519 --> 00:18:51.000
<v Speaker 5>remember the last time I'd seen Foster's. Yeah, I have

347
00:18:51.079 --> 00:18:52.640
<v Speaker 5>to travel internationally to do it.

348
00:18:53.119 --> 00:18:57.880
<v Speaker 2>So the American idea of Australia is nothing like Australia itself.

349
00:18:57.960 --> 00:19:00.440
<v Speaker 2>You just gotta go, yeah, got to go.

350
00:19:00.720 --> 00:19:03.400
<v Speaker 5>The American idea of animals that will kill you. And

351
00:19:03.960 --> 00:19:05.839
<v Speaker 5>Appeck Steakhouse no.

352
00:19:06.200 --> 00:19:10.359
<v Speaker 3>Yeah, yeah, I know Crocodile Dundee really and Outback Steakhouse

353
00:19:10.440 --> 00:19:12.319
<v Speaker 3>is owned by somebody from California.

354
00:19:12.359 --> 00:19:15.000
<v Speaker 2>If I'm not mistaken, like you know, I would not

355
00:19:15.119 --> 00:19:15.839
<v Speaker 2>Australian at.

356
00:19:15.759 --> 00:19:19.160
<v Speaker 5>All, wouldn't surprise me if they've never been to Australia. Yeah, well,

357
00:19:19.200 --> 00:19:20.960
<v Speaker 5>then again, I've never been to an Appback steakhouse. So

358
00:19:21.039 --> 00:19:23.160
<v Speaker 5>maybe you know, maybe I should speak at a school.

359
00:19:23.200 --> 00:19:26.200
<v Speaker 2>I mean, it's all right, but I wouldn't call it Australian. Yeah,

360
00:19:26.240 --> 00:19:30.799
<v Speaker 2>all right, let's talk about the Razor experience, the Razor

361
00:19:31.000 --> 00:19:34.480
<v Speaker 2>editor experience. I have a particular interest in this because

362
00:19:34.519 --> 00:19:38.720
<v Speaker 2>I'm a Blazer developer mostly. And you heard our talk

363
00:19:38.799 --> 00:19:40.880
<v Speaker 2>with Dustin Campbell, right, Yes, that's right.

364
00:19:42.000 --> 00:19:46.640
<v Speaker 5>Dustin's been I guess, moonlighting on Razor Tooling for a bit.

365
00:19:46.720 --> 00:19:49.519
<v Speaker 5>He's you know, he floats around and works on what

366
00:19:49.599 --> 00:19:52.240
<v Speaker 5>he wants to work on, but he's been helping out.

367
00:19:52.319 --> 00:19:52.480
<v Speaker 2>Yeah.

368
00:19:52.759 --> 00:19:56.839
<v Speaker 5>Yeah, he's been helping out. Heapes on Razor Tooling, doing

369
00:19:56.960 --> 00:19:59.480
<v Speaker 5>lots of stuff on the compiler, but also lots of

370
00:19:59.519 --> 00:20:02.640
<v Speaker 5>stuff on the two. And yes, I heard I heard

371
00:20:02.720 --> 00:20:06.240
<v Speaker 5>your excitement at when he mentioned this new co hosting effort,

372
00:20:06.400 --> 00:20:09.839
<v Speaker 5>and I thought, oh, well, if that's if that's interesting

373
00:20:09.920 --> 00:20:12.319
<v Speaker 5>to people, then I can talk about that for oh,

374
00:20:12.519 --> 00:20:14.200
<v Speaker 5>I don't know forever. I've been working on it for

375
00:20:14.240 --> 00:20:17.240
<v Speaker 5>about eighteen months, almost exclusively.

376
00:20:17.359 --> 00:20:21.079
<v Speaker 2>So yeah, well, why don't you remind us what that

377
00:20:21.880 --> 00:20:22.400
<v Speaker 2>was all about?

378
00:20:22.759 --> 00:20:26.279
<v Speaker 5>Sure, well, I mean let me take one step further back.

379
00:20:27.279 --> 00:20:31.880
<v Speaker 5>So in actually almost at the time that comment that

380
00:20:31.960 --> 00:20:35.000
<v Speaker 5>Richard red was from when Visual Studia twenty twenty two

381
00:20:35.200 --> 00:20:38.039
<v Speaker 5>was released. I believe the first version of that. There

382
00:20:38.160 --> 00:20:40.319
<v Speaker 5>was a new Razor Editor then and it was based

383
00:20:40.359 --> 00:20:43.920
<v Speaker 5>on LSP, which is Language Server Protocol, which is this

384
00:20:44.519 --> 00:20:47.680
<v Speaker 5>way to disconnect language services from the ide and have

385
00:20:48.680 --> 00:20:52.079
<v Speaker 5>you know, sharing of code and have one server be

386
00:20:52.119 --> 00:20:55.119
<v Speaker 5>able to go in multiple IDs, et cetera. It's really

387
00:20:55.200 --> 00:20:59.839
<v Speaker 5>cool idea. And the Razor Editor was the first sort

388
00:20:59.880 --> 00:21:04.400
<v Speaker 5>of widely used LSP editor in Visual Studio. LSP had

389
00:21:04.440 --> 00:21:06.599
<v Speaker 5>come out of Visual Studio Code and it's much much

390
00:21:06.599 --> 00:21:09.039
<v Speaker 5>bigger part of that, just you know, by its architecture,

391
00:21:09.079 --> 00:21:10.880
<v Speaker 5>it's more separated and things.

392
00:21:11.559 --> 00:21:15.400
<v Speaker 3>It's cool and so stuff being built visual Studio being

393
00:21:15.440 --> 00:21:18.079
<v Speaker 3>brought to Visual Studio, code being brought to Visual Studio.

394
00:21:18.640 --> 00:21:19.960
<v Speaker 1>I didn't know about that. That's interesting.

395
00:21:20.160 --> 00:21:23.880
<v Speaker 5>Yeah. So actually eighty nine of the code in the

396
00:21:23.960 --> 00:21:28.200
<v Speaker 5>Razor repository is behind sort of part of this LSP server,

397
00:21:28.400 --> 00:21:30.799
<v Speaker 5>and the same server is shipped with vs code in

398
00:21:30.839 --> 00:21:33.720
<v Speaker 5>the c sharp extension and with Visual Studio, and in

399
00:21:33.799 --> 00:21:36.039
<v Speaker 5>fact there's even some bits that go the other way.

400
00:21:36.160 --> 00:21:40.319
<v Speaker 5>So the CSS LSP server that is shipped in Visual

401
00:21:40.359 --> 00:21:43.319
<v Speaker 5>Studio is the VS code one. They just reship it.

402
00:21:44.319 --> 00:21:48.319
<v Speaker 5>So it's a lovely architecture and when it works, it's great.

403
00:21:49.640 --> 00:21:52.920
<v Speaker 3>And that's qualifier their David.

404
00:21:53.000 --> 00:21:56.319
<v Speaker 2>Yeah, that was very polite, kind of almost Canadian way

405
00:21:56.440 --> 00:21:58.519
<v Speaker 2>to express your opinion about that.

406
00:21:59.279 --> 00:22:02.160
<v Speaker 5>Yeah, I know, LSP is great, I think. So it's

407
00:22:02.200 --> 00:22:04.960
<v Speaker 5>not so much that the LSP doesn't work. There's dot

408
00:22:05.039 --> 00:22:08.759
<v Speaker 5>Net projects are difficult for LSP because LSP has no

409
00:22:08.839 --> 00:22:11.559
<v Speaker 5>concept of projects at all. And in dot net world,

410
00:22:11.640 --> 00:22:14.200
<v Speaker 5>we're used to having cs prog files and we have references,

411
00:22:14.319 --> 00:22:16.839
<v Speaker 5>and you know, automatically, every c sharp file that's in

412
00:22:16.960 --> 00:22:19.880
<v Speaker 5>your folder is just picked up magically. You don't need

413
00:22:19.960 --> 00:22:22.559
<v Speaker 5>include statements and import statements and all these wonderful things

414
00:22:22.599 --> 00:22:25.240
<v Speaker 5>we benefit from. Of course, the LSP server has to

415
00:22:26.720 --> 00:22:29.519
<v Speaker 5>deal with that itself, and so what we ended up

416
00:22:29.559 --> 00:22:32.920
<v Speaker 5>with is this situation where the Razor tooling has to

417
00:22:33.079 --> 00:22:35.839
<v Speaker 5>understand your project, It has to understand your references so

418
00:22:35.920 --> 00:22:38.440
<v Speaker 5>it can find your components, and that sort of thing,

419
00:22:38.680 --> 00:22:40.920
<v Speaker 5>has to monitor all the files for changes, and we

420
00:22:41.000 --> 00:22:43.720
<v Speaker 5>have the Roslin LSP server sitting next to it, which

421
00:22:43.759 --> 00:22:45.440
<v Speaker 5>has to do the exact same thing for all the

422
00:22:45.519 --> 00:22:52.839
<v Speaker 5>sea sharp files. And at some point Raiser, the Razor compiler,

423
00:22:53.240 --> 00:22:56.079
<v Speaker 5>became a source generator and so it plugs into Roslin,

424
00:22:56.240 --> 00:22:58.519
<v Speaker 5>and so now Roslin has to monitor all the Razor files,

425
00:22:58.640 --> 00:23:00.799
<v Speaker 5>and Raiser Tooling has to monitor all Raise files, and

426
00:23:00.880 --> 00:23:03.000
<v Speaker 5>we have lots of these double handling. And Razor has

427
00:23:03.039 --> 00:23:05.519
<v Speaker 5>a project system and Rosslin has a project system, and

428
00:23:06.400 --> 00:23:09.759
<v Speaker 5>there was bugs in Razors and probably less bugs in

429
00:23:09.839 --> 00:23:11.680
<v Speaker 5>Roslin's because it's a bit more battle hard and it's

430
00:23:11.680 --> 00:23:15.119
<v Speaker 5>got a few more users. And so a couple of

431
00:23:15.200 --> 00:23:19.359
<v Speaker 5>years ago, while working on the Razor tooling and fixing

432
00:23:19.400 --> 00:23:23.839
<v Speaker 5>all these lots of issues around this project system, I

433
00:23:24.000 --> 00:23:26.519
<v Speaker 5>just sort of had the idea that, like, maybe if

434
00:23:26.599 --> 00:23:30.559
<v Speaker 5>we just lived in the same world as Roslin, we could,

435
00:23:31.599 --> 00:23:33.480
<v Speaker 5>you know, things would be better. We do less work,

436
00:23:33.680 --> 00:23:35.759
<v Speaker 5>we take advantage of some of the stuff that Rosin's

437
00:23:35.759 --> 00:23:37.839
<v Speaker 5>already done, et cetera, et cetera. And that's where this

438
00:23:37.960 --> 00:23:41.039
<v Speaker 5>idea of co hosting comes from. I didn't coin the name,

439
00:23:41.240 --> 00:23:44.519
<v Speaker 5>but basically the idea is that Razor is hosted in

440
00:23:45.079 --> 00:23:49.119
<v Speaker 5>the same world as Rosslyn, and you know that's the

441
00:23:49.160 --> 00:23:51.440
<v Speaker 5>same process or not the same process doesn't really matter,

442
00:23:52.519 --> 00:23:57.079
<v Speaker 5>just more they have the same view of the world context. Yeah,

443
00:23:58.319 --> 00:24:03.559
<v Speaker 5>lsp is it's kind of like web API that that

444
00:24:03.680 --> 00:24:06.880
<v Speaker 5>sort of change from web views to web api. It's

445
00:24:06.920 --> 00:24:09.960
<v Speaker 5>that sort of thing applied to IDE tooling. So in

446
00:24:10.079 --> 00:24:12.880
<v Speaker 5>the old in the old days, maybe not the old days,

447
00:24:12.920 --> 00:24:15.680
<v Speaker 5>but you know, in a different type of thinking, you know,

448
00:24:15.799 --> 00:24:19.240
<v Speaker 5>you might have you might have an I frame, and

449
00:24:19.839 --> 00:24:21.519
<v Speaker 5>let's say you go like a master detail page on

450
00:24:21.559 --> 00:24:23.680
<v Speaker 5>a web page right right, and so you want to

451
00:24:23.680 --> 00:24:26.119
<v Speaker 5>show an order detail inside a grid where you might

452
00:24:26.160 --> 00:24:28.000
<v Speaker 5>have an I frame, and you say, show me the

453
00:24:28.079 --> 00:24:31.400
<v Speaker 5>order page here, and that works, but you're getting the

454
00:24:31.440 --> 00:24:33.839
<v Speaker 5>whole page, and so that page might need to have

455
00:24:33.920 --> 00:24:36.480
<v Speaker 5>some smarts to know if it's inside the grid or

456
00:24:36.559 --> 00:24:38.880
<v Speaker 5>not or whatever. If you make a change to this

457
00:24:39.000 --> 00:24:40.759
<v Speaker 5>doesn't apply for it's used, it's a been annoying. And

458
00:24:40.839 --> 00:24:43.359
<v Speaker 5>so we move forward from that and we you know,

459
00:24:43.519 --> 00:24:45.400
<v Speaker 5>have web API is now where you don't give me

460
00:24:45.480 --> 00:24:47.359
<v Speaker 5>the order page. You just give me the data for

461
00:24:47.519 --> 00:24:49.400
<v Speaker 5>the order and I'll work out how to display it.

462
00:24:49.640 --> 00:24:51.599
<v Speaker 5>And that's kind of the same thinking on the tooling side.

463
00:24:51.680 --> 00:24:55.039
<v Speaker 5>So in a c sharp file, when you bring up

464
00:24:55.039 --> 00:25:00.240
<v Speaker 5>the IntelliSense list, Roslin essentially is responsible for rendering that list.

465
00:25:01.000 --> 00:25:04.720
<v Speaker 5>Under the LSP world, the IDE is responsible for rendering

466
00:25:04.799 --> 00:25:07.519
<v Speaker 5>the list. The language server just tells it which items

467
00:25:07.559 --> 00:25:11.119
<v Speaker 5>to put in. So it's more portable and it's flexible

468
00:25:11.200 --> 00:25:16.119
<v Speaker 5>and all those things. Yeah, yeah, it's it's definitely. It's

469
00:25:16.160 --> 00:25:19.160
<v Speaker 5>a cool architecture. It's just that and some of the

470
00:25:19.279 --> 00:25:21.519
<v Speaker 5>quirks of Razor also always where it sort of shows

471
00:25:21.640 --> 00:25:23.960
<v Speaker 5>some of its rough edges. So Razor is, you know,

472
00:25:24.079 --> 00:25:28.359
<v Speaker 5>five languages in one file and that's a bit difficult, right,

473
00:25:28.480 --> 00:25:33.440
<v Speaker 5>So the Razor wrong, Yeah, that's right. The Razor LSP

474
00:25:34.200 --> 00:25:37.880
<v Speaker 5>server in order to answer some of these questions, it

475
00:25:37.960 --> 00:25:40.440
<v Speaker 5>would have to call to the Rosalin LSP server to

476
00:25:40.519 --> 00:25:43.279
<v Speaker 5>get its answer, and like, hey, you know, Razer will

477
00:25:43.319 --> 00:25:46.079
<v Speaker 5>get asked, you know, what should I show it line

478
00:25:46.160 --> 00:25:48.440
<v Speaker 5>five of this file, and Raser has to go, well,

479
00:25:48.480 --> 00:25:51.240
<v Speaker 5>actually line five, that's actually C sharp and that's actually

480
00:25:51.279 --> 00:25:53.960
<v Speaker 5>line seventy four in this generated C sharp file. So

481
00:25:54.000 --> 00:25:55.960
<v Speaker 5>I'll go and ask Roslin what to show at line

482
00:25:56.039 --> 00:25:59.200
<v Speaker 5>seventy four. Rosal will respond, I'll translate that back, send

483
00:25:59.279 --> 00:26:02.799
<v Speaker 5>that back up. And that sort of stuff still happens

484
00:26:03.000 --> 00:26:05.599
<v Speaker 5>in co hosting because it's still an LSP based editor

485
00:26:05.839 --> 00:26:09.039
<v Speaker 5>in from the Razor point of view, but now we

486
00:26:09.720 --> 00:26:13.000
<v Speaker 5>like that connection to Roslyn rather than making LSP calls

487
00:26:13.039 --> 00:26:16.079
<v Speaker 5>and serialization and de serialization of data and working with

488
00:26:16.200 --> 00:26:18.920
<v Speaker 5>strings and sort of primitive types. That's now just a

489
00:26:18.960 --> 00:26:21.599
<v Speaker 5>C sharp method call and we just call an API

490
00:26:21.640 --> 00:26:23.720
<v Speaker 5>and roslins ay, give me a list please.

491
00:26:24.000 --> 00:26:26.359
<v Speaker 2>So I get how it's more efficient for you guys

492
00:26:26.440 --> 00:26:29.160
<v Speaker 2>in the back end to render all this stuff, But

493
00:26:29.279 --> 00:26:33.319
<v Speaker 2>what can you nail down the benefits to the developer

494
00:26:34.440 --> 00:26:36.279
<v Speaker 2>this co hosting architecture, So.

495
00:26:37.400 --> 00:26:39.880
<v Speaker 5>I mean the benefits. The biggest benefits that you're going

496
00:26:39.960 --> 00:26:44.200
<v Speaker 5>to see is just performance and reliability. It's a lot faster,

497
00:26:44.440 --> 00:26:46.640
<v Speaker 5>a lot use a lot more memory, a lot less memory.

498
00:26:51.359 --> 00:26:54.759
<v Speaker 5>Reliabilities is definitely a huge one though one of the

499
00:26:55.079 --> 00:26:57.240
<v Speaker 5>one of the the other problem with this sort of

500
00:26:57.279 --> 00:27:04.559
<v Speaker 5>disconnected world. Fundamentally, the Raiser language server cannot see the

501
00:27:04.759 --> 00:27:07.920
<v Speaker 5>Roslin compilation, so it doesn't actually know about any of

502
00:27:07.960 --> 00:27:11.200
<v Speaker 5>the types used in your project. It doesn't know about

503
00:27:11.200 --> 00:27:14.359
<v Speaker 5>any of the references, and so there's this communication of

504
00:27:15.119 --> 00:27:17.359
<v Speaker 5>like component information and what is the list of components

505
00:27:17.400 --> 00:27:18.519
<v Speaker 5>that available in this project?

506
00:27:18.559 --> 00:27:19.039
<v Speaker 2>For example?

507
00:27:19.839 --> 00:27:22.039
<v Speaker 5>We have to find that out in Roslin where there's

508
00:27:22.039 --> 00:27:25.039
<v Speaker 5>a compilation, and then we send it across to RASA

509
00:27:26.039 --> 00:27:28.680
<v Speaker 5>and that data has to come across. It's a lot

510
00:27:28.759 --> 00:27:30.759
<v Speaker 5>of data and one of the key areas that Dustin

511
00:27:30.799 --> 00:27:34.880
<v Speaker 5>actually worked on was was making that used message pack

512
00:27:34.960 --> 00:27:37.279
<v Speaker 5>and used checksum so we could send less data if

513
00:27:37.279 --> 00:27:40.920
<v Speaker 5>nothing's changed. And it's a much more reliable system now

514
00:27:40.960 --> 00:27:42.839
<v Speaker 5>than it was it used to when when I first

515
00:27:42.920 --> 00:27:45.920
<v Speaker 5>joined the team, or when Raiser sort of Raisers sort

516
00:27:45.920 --> 00:27:48.720
<v Speaker 5>of joined the Roslin team, they came to me through

517
00:27:48.759 --> 00:27:53.599
<v Speaker 5>osmosis ident around here. But when that when that first happened,

518
00:27:54.119 --> 00:27:57.759
<v Speaker 5>it was literally adjacent file serialized disc And that's why,

519
00:27:58.200 --> 00:28:00.240
<v Speaker 5>like everyone, when there was problems with the Razor A,

520
00:28:00.440 --> 00:28:03.839
<v Speaker 5>people would delete their OBJ folder and that would fix things.

521
00:28:03.880 --> 00:28:05.759
<v Speaker 5>Because when they were just deleting this Jason file which

522
00:28:05.839 --> 00:28:09.000
<v Speaker 5>was this cash and it just got corrupted or it

523
00:28:09.079 --> 00:28:11.480
<v Speaker 5>got out of date, and so there's all the synchronization

524
00:28:11.599 --> 00:28:14.000
<v Speaker 5>issues trying to synchronize all this information. You know, Razor

525
00:28:14.079 --> 00:28:16.920
<v Speaker 5>has to compile your c sharp file and it pushed

526
00:28:16.920 --> 00:28:19.599
<v Speaker 5>it to Roslin in order for Roslam to answer questions,

527
00:28:20.039 --> 00:28:23.359
<v Speaker 5>and that's synchronizing two systems, and we just don't need

528
00:28:23.400 --> 00:28:24.000
<v Speaker 5>to do that anymore.

529
00:28:24.160 --> 00:28:29.799
<v Speaker 2>So is this why for example, if you type a type,

530
00:28:30.039 --> 00:28:32.640
<v Speaker 2>you know you have a variable of a type and

531
00:28:32.720 --> 00:28:38.000
<v Speaker 2>the namespace isn't qualified you In the Visual Studio code editor,

532
00:28:38.079 --> 00:28:40.359
<v Speaker 2>you can hover over that type and it will say

533
00:28:40.640 --> 00:28:44.359
<v Speaker 2>using blah blah blah. But in the Razor editor it

534
00:28:44.480 --> 00:28:46.680
<v Speaker 2>doesn't do that. Like there are little things like that,

535
00:28:46.839 --> 00:28:48.680
<v Speaker 2>like code lens is one thing that I miss in

536
00:28:48.720 --> 00:28:52.240
<v Speaker 2>the Razorator. So you're saying that this new co hosting

537
00:28:52.720 --> 00:28:56.319
<v Speaker 2>model will enable and facilitate those kinds of features.

538
00:28:56.559 --> 00:28:59.160
<v Speaker 5>Ah, that's I'm going to take that as two questions

539
00:28:59.160 --> 00:29:02.119
<v Speaker 5>because they were both really good but very different answers

540
00:29:02.200 --> 00:29:06.240
<v Speaker 5>unbunounced to you. So as far as the first one, yes,

541
00:29:06.720 --> 00:29:09.200
<v Speaker 5>So you were talking about add using, and in some

542
00:29:09.400 --> 00:29:11.400
<v Speaker 5>cases Razor does support ad using, and we do that

543
00:29:11.799 --> 00:29:14.039
<v Speaker 5>relay thing where we ask Roslin, hey, what should we

544
00:29:14.119 --> 00:29:18.160
<v Speaker 5>do here? But this co hosting will definitely enable us

545
00:29:18.240 --> 00:29:22.599
<v Speaker 5>to add more of that in future. So we in

546
00:29:22.839 --> 00:29:25.599
<v Speaker 5>Razor we now have full access to the same compilation

547
00:29:26.000 --> 00:29:29.079
<v Speaker 5>as rosalind, the same documents, the same project information, and

548
00:29:29.200 --> 00:29:34.559
<v Speaker 5>so we can call any of Roslin's normal API to

549
00:29:35.359 --> 00:29:37.599
<v Speaker 5>find out what we need to do, what we might

550
00:29:37.640 --> 00:29:39.920
<v Speaker 5>want to do that was never possible for so all

551
00:29:39.960 --> 00:29:41.920
<v Speaker 5>those things we can start to take advantage of now.

552
00:29:42.000 --> 00:29:44.839
<v Speaker 5>I will say the effort so far has just been

553
00:29:45.559 --> 00:29:47.880
<v Speaker 5>you know, we're sort of rebuilding the plane as it's going.

554
00:29:47.960 --> 00:29:50.640
<v Speaker 5>So we're just trying to get everything working right. The

555
00:29:50.680 --> 00:29:55.160
<v Speaker 5>features can come from here, So yeah, that's definitely something

556
00:29:55.200 --> 00:29:58.799
<v Speaker 5>we want to invest in. I did one sneaky feature

557
00:29:58.880 --> 00:30:00.480
<v Speaker 5>like that I worked on a couple of weeks ago,

558
00:30:01.000 --> 00:30:04.119
<v Speaker 5>where so go to definition in a Razer file. You

559
00:30:04.200 --> 00:30:06.480
<v Speaker 5>could do it on a Blaser component, but you couldn't

560
00:30:06.519 --> 00:30:09.680
<v Speaker 5>do it on an MVC tag helper. And the reason

561
00:30:09.759 --> 00:30:11.920
<v Speaker 5>for that is because all that data that synchronizes across

562
00:30:12.000 --> 00:30:16.680
<v Speaker 5>from Roslin, it includes type names and property names and things.

563
00:30:17.119 --> 00:30:20.680
<v Speaker 5>And in Blazer you can infer okay, well, if there's

564
00:30:20.680 --> 00:30:23.559
<v Speaker 5>a component with a type name of whatever, then it's

565
00:30:23.599 --> 00:30:26.559
<v Speaker 5>in a file called whatever, not Razer. But in MVC

566
00:30:27.119 --> 00:30:30.640
<v Speaker 5>you cannot make that connection. Take Helpers could be called anything,

567
00:30:30.720 --> 00:30:32.640
<v Speaker 5>they can be defined in any old class. And so

568
00:30:32.759 --> 00:30:35.160
<v Speaker 5>we just couldn't answer this questions in Razer because all

569
00:30:35.200 --> 00:30:36.720
<v Speaker 5>we had was a type name, but we didn't have

570
00:30:36.839 --> 00:30:41.519
<v Speaker 5>any information about the compilation. Now, with co hosting, I

571
00:30:41.720 --> 00:30:44.119
<v Speaker 5>wrote some code a couple weeks ago. It just calls

572
00:30:44.160 --> 00:30:47.519
<v Speaker 5>the standard Roslin method for hey, give me the type

573
00:30:47.599 --> 00:30:50.880
<v Speaker 5>for this type name please, and Roslin does, and then

574
00:30:50.920 --> 00:30:53.160
<v Speaker 5>now we know where it comes from. So we're definitely

575
00:30:53.200 --> 00:30:55.599
<v Speaker 5>going to start to see more of those things coming hopefully.

576
00:30:56.400 --> 00:31:00.720
<v Speaker 2>Okay, what about the underscore imports Raiser. I always thought

577
00:31:00.720 --> 00:31:03.119
<v Speaker 2>it was weird that we had a separate imports list

578
00:31:03.279 --> 00:31:06.960
<v Speaker 2>for Razor components than we do for regular Sea Sharp components.

579
00:31:07.759 --> 00:31:12.920
<v Speaker 2>Is that something that this will enable us to, I

580
00:31:12.960 --> 00:31:16.200
<v Speaker 2>don't know, just use the CEA sharp global usings or

581
00:31:16.359 --> 00:31:17.400
<v Speaker 2>regular using statements.

582
00:31:18.039 --> 00:31:22.599
<v Speaker 5>That's that's an interesting question. We definitely technically are capable

583
00:31:22.640 --> 00:31:26.720
<v Speaker 5>of doing that. The one interesting thing about Raiser that

584
00:31:26.839 --> 00:31:29.920
<v Speaker 5>this doesn't change is the ownership of things is a

585
00:31:30.200 --> 00:31:32.519
<v Speaker 5>bit weird. So Razer came out of ASP dot net,

586
00:31:32.799 --> 00:31:37.079
<v Speaker 5>including the tooling and the compiler, and probably three years

587
00:31:37.119 --> 00:31:40.720
<v Speaker 5>ago maybe the tooling and compiler came over to Roslyn,

588
00:31:41.039 --> 00:31:44.079
<v Speaker 5>and so the Roslin compiler team owned the Razor compiler.

589
00:31:44.480 --> 00:31:47.640
<v Speaker 5>Rosin Ide Tooling owned Razor Tooling, which is where I

590
00:31:48.160 --> 00:31:50.240
<v Speaker 5>sort of came to be on it. The runtime is

591
00:31:50.279 --> 00:31:53.799
<v Speaker 5>still owned by ASP dot net, and so those sorts

592
00:31:53.839 --> 00:31:58.039
<v Speaker 5>of decisions are more on the runtime side. Obviously, you know,

593
00:31:58.240 --> 00:32:01.160
<v Speaker 5>we meet with them and we have likeguage design meetings,

594
00:32:01.680 --> 00:32:03.079
<v Speaker 5>not as often as Sea Shark, but you know they

595
00:32:03.119 --> 00:32:06.720
<v Speaker 5>do exist, and so that's that's the sort of change

596
00:32:06.759 --> 00:32:07.960
<v Speaker 5>we can definitely talk about.

597
00:32:09.799 --> 00:32:12.240
<v Speaker 2>I don't know, but there's a reason that they chose

598
00:32:12.279 --> 00:32:13.799
<v Speaker 2>to do it that way, right, I mean.

599
00:32:14.160 --> 00:32:17.960
<v Speaker 5>Well that predates global usings in c sharp, So you

600
00:32:18.039 --> 00:32:20.079
<v Speaker 5>know the reason they did that is because they were

601
00:32:20.119 --> 00:32:22.279
<v Speaker 5>trying to solve a problem that rasor developers had and

602
00:32:22.480 --> 00:32:25.079
<v Speaker 5>sea sharp developers, I mean, they probably had it at

603
00:32:25.079 --> 00:32:27.079
<v Speaker 5>the time, but maybe it was less important or that

604
00:32:27.240 --> 00:32:29.440
<v Speaker 5>just wasn't Sea sharp was ready to tackle yet. So

605
00:32:30.039 --> 00:32:32.759
<v Speaker 5>it's sort of this you know, parallel invention thing that

606
00:32:32.880 --> 00:32:34.799
<v Speaker 5>sometimes happened, and then you get to the end you're like, oh,

607
00:32:34.839 --> 00:32:36.880
<v Speaker 5>we've got two systems for this, can we merge them?

608
00:32:37.720 --> 00:32:39.079
<v Speaker 5>And it certainly technically we can.

609
00:32:39.160 --> 00:32:40.640
<v Speaker 2>It's just sure is it?

610
00:32:40.960 --> 00:32:41.519
<v Speaker 5>How hard is it?

611
00:32:42.400 --> 00:32:42.920
<v Speaker 2>Will we break?

612
00:32:43.000 --> 00:32:43.240
<v Speaker 1>People?

613
00:32:43.799 --> 00:32:46.200
<v Speaker 2>Be nice to have the option like look in at

614
00:32:46.640 --> 00:32:48.920
<v Speaker 2>you know, look at underscore imports and if it's not there,

615
00:32:48.960 --> 00:32:51.359
<v Speaker 2>look in global usings and if it's their using yeah.

616
00:32:51.799 --> 00:32:56.839
<v Speaker 3>Easy, Yeah, definitely, and then all the places you'd go anyway, right.

617
00:32:57.079 --> 00:32:59.960
<v Speaker 5>Yeah. So the other thing you asked about though was codelin,

618
00:33:00.160 --> 00:33:03.680
<v Speaker 5>which is interesting. So code lens is supported in visual

619
00:33:03.680 --> 00:33:07.240
<v Speaker 5>stdio code, as you mentioned, and the code that does

620
00:33:07.279 --> 00:33:09.680
<v Speaker 5>that is in the Razor repot. That's like we own that,

621
00:33:09.839 --> 00:33:12.279
<v Speaker 5>that's our code, but it doesn't work in Visual studio.

622
00:33:12.960 --> 00:33:14.079
<v Speaker 5>The reason it doesn't work.

623
00:33:13.960 --> 00:33:17.079
<v Speaker 2>Wea code lens works in Visual studio, but not in

624
00:33:17.160 --> 00:33:18.279
<v Speaker 2>the Razor editor.

625
00:33:18.079 --> 00:33:21.519
<v Speaker 5>But not erase fun. Yes, sorry, code land's in a

626
00:33:21.599 --> 00:33:25.400
<v Speaker 5>Razor fhile. In visual studio, code is our code, but

627
00:33:25.519 --> 00:33:27.599
<v Speaker 5>it doesn't work in Visual studio in a Razor fhile.

628
00:33:27.880 --> 00:33:32.240
<v Speaker 5>And the reason for that is so LSP is, you know,

629
00:33:32.400 --> 00:33:36.319
<v Speaker 5>essentially a standard set of APIs for ID tooling. So

630
00:33:36.440 --> 00:33:39.880
<v Speaker 5>the Razor server supports the code lens API, but the

631
00:33:40.000 --> 00:33:41.920
<v Speaker 5>Visual Studio client doesn't.

632
00:33:42.519 --> 00:33:43.759
<v Speaker 3>And so that's on.

633
00:33:43.960 --> 00:33:47.759
<v Speaker 5>Visual Studio to you know, move further towards embracing alix

634
00:33:47.799 --> 00:33:48.359
<v Speaker 5>per But they.

635
00:33:48.319 --> 00:33:48.880
<v Speaker 1>Are doing that.

636
00:33:49.039 --> 00:33:52.039
<v Speaker 5>Get busy they are doing.

637
00:33:54.559 --> 00:33:55.160
<v Speaker 2>I'll let him know.

638
00:33:56.640 --> 00:33:59.799
<v Speaker 5>Since version like seventeen point ten, I think of Visual

639
00:34:00.119 --> 00:34:03.240
<v Speaker 5>do all of the error list and the squiggles and

640
00:34:03.319 --> 00:34:06.279
<v Speaker 5>the diagnostics and everything, all of that is powered entirely

641
00:34:06.319 --> 00:34:10.239
<v Speaker 5>through LSP in Visa studio. And that's one of those

642
00:34:10.480 --> 00:34:12.920
<v Speaker 5>you know, rebuilding the plane things where no one really

643
00:34:13.039 --> 00:34:15.880
<v Speaker 5>noticed we just swapped out. We were using this system.

644
00:34:16.039 --> 00:34:18.039
<v Speaker 5>Now we're using this system. We can get rid of

645
00:34:18.079 --> 00:34:20.679
<v Speaker 5>the old system now and so it's slowly being adopted

646
00:34:20.719 --> 00:34:23.920
<v Speaker 5>over there, but visual studio is twenty years of history

647
00:34:23.960 --> 00:34:24.519
<v Speaker 5>of not doing it.

648
00:34:24.800 --> 00:34:27.079
<v Speaker 2>Say so, sure, it's a lot of inertia. All right,

649
00:34:28.039 --> 00:34:30.239
<v Speaker 2>This seems like a good time to take a break,

650
00:34:30.400 --> 00:34:33.159
<v Speaker 2>so we will be back right after these very important

651
00:34:33.159 --> 00:34:37.599
<v Speaker 2>messages stick around. Do you have a complex dot net

652
00:34:37.679 --> 00:34:40.960
<v Speaker 2>monolith you'd like to refactor to a micro services architecture?

653
00:34:41.599 --> 00:34:45.559
<v Speaker 2>The Microservice Extractor for dot Net tool visualizes your app

654
00:34:45.800 --> 00:34:49.840
<v Speaker 2>and helps progressively extract code into micro services. Learn more

655
00:34:49.880 --> 00:34:53.719
<v Speaker 2>at aws dot Amazon dot com slash modernize.

656
00:34:57.719 --> 00:34:59.960
<v Speaker 3>All right, and we're back. I'm Richard Campbell. Let's call Frank.

657
00:35:00.519 --> 00:35:03.480
<v Speaker 3>You talking a bit about to David about all the

658
00:35:03.519 --> 00:35:06.079
<v Speaker 3>fun things in Roslin and when you mentioned co hosting

659
00:35:06.880 --> 00:35:10.679
<v Speaker 3>Roslin and Razor together. Of course, I'm collecting links for

660
00:35:10.760 --> 00:35:12.840
<v Speaker 3>the show, so I search for that, and I think

661
00:35:12.880 --> 00:35:17.320
<v Speaker 3>I found the GitHub issues ninety five nineteen where this

662
00:35:17.519 --> 00:35:19.679
<v Speaker 3>whole thing kind of kicks off, and I see you

663
00:35:19.880 --> 00:35:22.920
<v Speaker 3>stepping in. It's really fun for me to suddently see

664
00:35:23.039 --> 00:35:26.320
<v Speaker 3>here's where David got involved and started doing his work

665
00:35:26.440 --> 00:35:28.159
<v Speaker 3>all the way back at twenty twenty three.

666
00:35:28.719 --> 00:35:32.000
<v Speaker 5>That issue is it lives on my book Macbarr in

667
00:35:32.119 --> 00:35:34.360
<v Speaker 5>my browser. I bet my that is my stream of

668
00:35:34.400 --> 00:35:35.280
<v Speaker 5>consciousness issue.

669
00:35:36.960 --> 00:35:40.800
<v Speaker 3>It is a beast and then to the point where

670
00:35:40.840 --> 00:35:45.280
<v Speaker 3>it has a it has a there's another issue that

671
00:35:45.440 --> 00:35:48.440
<v Speaker 3>is a summary of all of the LSP implementations that

672
00:35:48.480 --> 00:35:50.719
<v Speaker 3>you can see are gradually all getting checked off.

673
00:35:51.519 --> 00:35:53.000
<v Speaker 5>Yes, I think itels like one left.

674
00:35:53.880 --> 00:35:57.519
<v Speaker 3>Yeah, you're hitting a point of this is becoming a ship. Yeah,

675
00:35:57.639 --> 00:35:59.159
<v Speaker 3>like you can see. I'll include it in the show

676
00:35:59.159 --> 00:36:00.760
<v Speaker 3>notes for people who want to see this because it's

677
00:36:00.880 --> 00:36:05.199
<v Speaker 3>really I love the historical sense of this, because there's

678
00:36:05.239 --> 00:36:08.800
<v Speaker 3>halfway through this issue you guys change gears on this

679
00:36:09.119 --> 00:36:12.159
<v Speaker 3>LSP integration mindset. You could see you clearly think bigger

680
00:36:12.199 --> 00:36:12.320
<v Speaker 3>in it.

681
00:36:12.440 --> 00:36:15.519
<v Speaker 5>There was actually I think two or three points where

682
00:36:16.480 --> 00:36:19.000
<v Speaker 5>we had to change gears and not even it wasn't

683
00:36:19.000 --> 00:36:22.400
<v Speaker 5>even enough. It was actually Roslin. So I had the

684
00:36:22.480 --> 00:36:24.760
<v Speaker 5>idea for this probably two years ago, and I think

685
00:36:24.800 --> 00:36:27.880
<v Speaker 5>the first PR was January twenty twenty four, so well

686
00:36:27.920 --> 00:36:32.039
<v Speaker 5>that's coming up to almost two years. And the basic

687
00:36:32.159 --> 00:36:35.280
<v Speaker 5>idea was can we use the razor source generator in

688
00:36:35.480 --> 00:36:38.639
<v Speaker 5>the ide not just at build time, and then live

689
00:36:38.679 --> 00:36:41.440
<v Speaker 5>within Rosalin And that was all cool. And we got

690
00:36:41.480 --> 00:36:44.480
<v Speaker 5>together a team, you know, with Roslin, and had a

691
00:36:44.519 --> 00:36:47.119
<v Speaker 5>bunch of meetings, which is what that stream of consciousness

692
00:36:47.119 --> 00:36:51.920
<v Speaker 5>issue is sort of the summary of. And so all fine,

693
00:36:51.960 --> 00:36:55.039
<v Speaker 5>we start working. And then Roslin, for you know, they

694
00:36:55.039 --> 00:36:59.000
<v Speaker 5>obviously have their own desires and performance goals. So I

695
00:36:59.079 --> 00:37:01.519
<v Speaker 5>think the first thing that had was they moved all

696
00:37:01.679 --> 00:37:05.400
<v Speaker 5>source generators. Now none of them run in the visual

697
00:37:05.400 --> 00:37:09.679
<v Speaker 5>studio process, and so if Razer wanted to access that data,

698
00:37:09.880 --> 00:37:11.840
<v Speaker 5>we couldn't be in the visual studio process anymore. So

699
00:37:11.920 --> 00:37:13.840
<v Speaker 5>we now had to go over to this process, and

700
00:37:13.880 --> 00:37:16.280
<v Speaker 5>so we rearchitected there in the middle to do that.

701
00:37:16.480 --> 00:37:16.920
<v Speaker 1>And then.

702
00:37:18.840 --> 00:37:21.599
<v Speaker 5>That you know, we sort of got past that. There's

703
00:37:21.599 --> 00:37:24.559
<v Speaker 5>a bunch of stuff of having our own external process

704
00:37:24.599 --> 00:37:28.360
<v Speaker 5>which we haven't had before, et cetera. And then they

705
00:37:28.599 --> 00:37:31.880
<v Speaker 5>Rosland introduced this another thing for source generators where they

706
00:37:32.000 --> 00:37:35.719
<v Speaker 5>now run if you set your idea up or by default,

707
00:37:35.920 --> 00:37:38.360
<v Speaker 5>they run in what's called balance mode, which is essentially

708
00:37:38.400 --> 00:37:40.440
<v Speaker 5>they run when you save a file and when you

709
00:37:40.519 --> 00:37:42.400
<v Speaker 5>do a build, but they don't run on every keystroke.

710
00:37:42.440 --> 00:37:44.880
<v Speaker 5>Because there's lots of source generators now and some of

711
00:37:44.920 --> 00:37:47.960
<v Speaker 5>them are a little slow. Of course, for Razor that

712
00:37:48.079 --> 00:37:50.440
<v Speaker 5>doesn't work. We need to run on every keystroke, and

713
00:37:50.519 --> 00:37:52.119
<v Speaker 5>so we had to adapt to that as well. And

714
00:37:52.239 --> 00:37:55.840
<v Speaker 5>so there's been a few things where I guess it's

715
00:37:55.920 --> 00:37:57.880
<v Speaker 5>the downside of living in the same world is where

716
00:37:57.920 --> 00:38:02.280
<v Speaker 5>sort of we're also from the same monumental shifts that

717
00:38:02.400 --> 00:38:04.559
<v Speaker 5>happened sometimes in that world. We were a little bit

718
00:38:04.599 --> 00:38:05.360
<v Speaker 5>isolated before.

719
00:38:05.440 --> 00:38:08.840
<v Speaker 3>But sure, now your change in architecture is also added

720
00:38:08.880 --> 00:38:10.440
<v Speaker 3>by their changes in architecture.

721
00:38:10.519 --> 00:38:13.480
<v Speaker 5>That's right, And I mean there's other there's changes in

722
00:38:13.599 --> 00:38:17.199
<v Speaker 5>architecture that they could do and that are sort of

723
00:38:17.280 --> 00:38:19.360
<v Speaker 5>on their roadmap that would make things easier for us too.

724
00:38:20.119 --> 00:38:22.239
<v Speaker 5>So you know, it's not all I don't want to

725
00:38:22.280 --> 00:38:24.119
<v Speaker 5>make it seem like the bad thing, but it's It's

726
00:38:24.119 --> 00:38:27.679
<v Speaker 5>definitely been an interesting eighteen months. And I think the

727
00:38:29.000 --> 00:38:32.119
<v Speaker 5>biggest thing about the exciting thing for me now is

728
00:38:32.480 --> 00:38:34.320
<v Speaker 5>like as you say, we're sort of starting to get

729
00:38:34.360 --> 00:38:37.119
<v Speaker 5>in close to the end, is just that this is

730
00:38:37.159 --> 00:38:40.679
<v Speaker 5>the first thing I can remember working on a Microsoft

731
00:38:40.760 --> 00:38:45.199
<v Speaker 5>where it's a reasonable size idea and a reasonable size implementation,

732
00:38:45.559 --> 00:38:49.119
<v Speaker 5>but it's sort of all or nothing. We can't really

733
00:38:49.280 --> 00:38:53.079
<v Speaker 5>do this halfway. We couldn't have rolled this out piece

734
00:38:53.079 --> 00:38:55.639
<v Speaker 5>at a time, we would have just been you know,

735
00:38:55.800 --> 00:38:59.239
<v Speaker 5>essentially making everything worse for everybody. And so that's a

736
00:38:59.280 --> 00:39:01.440
<v Speaker 5>little nerve wrack, you know, the big switch it happened.

737
00:39:01.480 --> 00:39:04.119
<v Speaker 3>Yeah, you don't like big bangs, big bangs bad.

738
00:39:04.880 --> 00:39:08.719
<v Speaker 5>Yeah, well that's right. It happened about a month ago

739
00:39:08.760 --> 00:39:10.960
<v Speaker 5>with Visual Studio code. We switched the sea Sharp extension

740
00:39:11.000 --> 00:39:13.800
<v Speaker 5>to have this on by defaults and you know, there

741
00:39:13.880 --> 00:39:17.280
<v Speaker 5>was a couple of little rough edges, but nothing too bad.

742
00:39:17.320 --> 00:39:19.559
<v Speaker 5>And of course that extension releases weekly if you're on

743
00:39:19.599 --> 00:39:22.119
<v Speaker 5>the pre release channel, so it's pretty quick to get

744
00:39:22.199 --> 00:39:25.679
<v Speaker 5>to get a fix out. But yeah, having it on

745
00:39:26.880 --> 00:39:29.480
<v Speaker 5>in Visual Studio is the next big the next big hurdle,

746
00:39:29.599 --> 00:39:32.039
<v Speaker 5>So it's definitely exciting times definitely.

747
00:39:32.159 --> 00:39:32.360
<v Speaker 1>Yeah.

748
00:39:32.440 --> 00:39:34.840
<v Speaker 3>Okay, Well it's just you know, as part of the

749
00:39:34.960 --> 00:39:38.519
<v Speaker 3>new Microsoft, the fact that the literally the thinking and

750
00:39:38.639 --> 00:39:41.400
<v Speaker 3>how these features evolve is documented publicly.

751
00:39:41.440 --> 00:39:43.159
<v Speaker 1>Anybody can look at it if they want to look out.

752
00:39:43.199 --> 00:39:46.199
<v Speaker 5>I mean, that's one of the I would say, the

753
00:39:46.199 --> 00:39:49.000
<v Speaker 5>reason I'm at Microsoft, but definitely one of the biggest

754
00:39:49.039 --> 00:39:51.400
<v Speaker 5>draw cards, you know. I remember I was a sea

755
00:39:51.400 --> 00:39:54.320
<v Speaker 5>Sharp developer in industry when Roslin was open sourced and

756
00:39:54.440 --> 00:39:57.880
<v Speaker 5>just watching all of everything happening on GitHub and you

757
00:39:57.960 --> 00:40:01.039
<v Speaker 5>know a few little contributions here and there. That's like

758
00:40:01.320 --> 00:40:03.119
<v Speaker 5>with such a huge draw card for me. It's the

759
00:40:03.199 --> 00:40:05.320
<v Speaker 5>bit about my job I love the most is that

760
00:40:05.599 --> 00:40:09.880
<v Speaker 5>interacting with the our users on GitHub because they're all developers,

761
00:40:09.920 --> 00:40:11.599
<v Speaker 5>we all speak the same language. You know, we can

762
00:40:11.679 --> 00:40:14.239
<v Speaker 5>all can we can we can shortcut a lot of things.

763
00:40:15.400 --> 00:40:18.639
<v Speaker 5>I love that bit. And so you know, I'm I'm

764
00:40:18.679 --> 00:40:21.280
<v Speaker 5>on read at watching when people mention it, I'm on

765
00:40:21.760 --> 00:40:24.960
<v Speaker 5>blue Sky and masterdon and everywhere else. Just yeah, that

766
00:40:25.079 --> 00:40:28.000
<v Speaker 5>community involvement of being on GitHub is a wonderful thing.

767
00:40:28.119 --> 00:40:33.159
<v Speaker 2>Does Microsoft need more contributors to the GitHub repos for

768
00:40:34.000 --> 00:40:37.239
<v Speaker 2>all of these things? Is there a lack of Is

769
00:40:37.280 --> 00:40:39.760
<v Speaker 2>there a perceived lack on Microsoft's part of, you know,

770
00:40:39.840 --> 00:40:41.199
<v Speaker 2>we need more community involvement?

771
00:40:41.320 --> 00:40:43.840
<v Speaker 5>I think I think it's I mean, it's gift. So

772
00:40:43.960 --> 00:40:45.519
<v Speaker 5>I don't know, I don't know the need is the

773
00:40:45.599 --> 00:40:48.800
<v Speaker 5>right word. I think it's always welcome, it's it's a

774
00:40:48.840 --> 00:40:52.320
<v Speaker 5>gift when it comes. I think there's some It really

775
00:40:52.400 --> 00:40:55.840
<v Speaker 5>depends on the product, you know, sometimes, particularly say the

776
00:40:55.920 --> 00:40:59.880
<v Speaker 5>c sharp compiler side of Rouslom. Sometimes when they're getting

777
00:41:00.119 --> 00:41:02.639
<v Speaker 5>to crunch time for a release, which is, you know,

778
00:41:02.760 --> 00:41:07.039
<v Speaker 5>sort of starting about a month or two ago, their

779
00:41:07.280 --> 00:41:10.960
<v Speaker 5>heads down fixing bugs, reviewing prs, etc. Any extra load

780
00:41:11.079 --> 00:41:14.480
<v Speaker 5>on them to review community prs is often too much

781
00:41:14.639 --> 00:41:18.079
<v Speaker 5>and they'll they'll have to push the community pr like

782
00:41:18.119 --> 00:41:20.400
<v Speaker 5>to tell the person, you know, we're not going to

783
00:41:20.400 --> 00:41:22.599
<v Speaker 5>be able to get to this for a couple of months, so,

784
00:41:23.320 --> 00:41:25.920
<v Speaker 5>you know, and that's you know, not a great thing

785
00:41:25.960 --> 00:41:28.800
<v Speaker 5>to have to say, because obviously maybe someone was hoping

786
00:41:28.840 --> 00:41:31.239
<v Speaker 5>to get something into Sea Sharp fourteen and they've missed

787
00:41:31.280 --> 00:41:34.760
<v Speaker 5>the boat or not from their fault, you know. So

788
00:41:34.840 --> 00:41:37.199
<v Speaker 5>I think that sort of thing can happen. But generally speaking,

789
00:41:37.320 --> 00:41:40.320
<v Speaker 5>Roslin gets a reasonable load of community contributions that are

790
00:41:41.599 --> 00:41:45.119
<v Speaker 5>they're all very welcome on Razer. We don't get a lot.

791
00:41:45.599 --> 00:41:50.119
<v Speaker 5>We've had some over the years and definitely very appreciative.

792
00:41:50.119 --> 00:41:53.320
<v Speaker 5>I think Razor is a difficult, slightly difficult thing to

793
00:41:53.360 --> 00:41:55.400
<v Speaker 5>get started with, just because you know, it is five

794
00:41:55.519 --> 00:42:00.480
<v Speaker 5>languages in one and it's hard to juggle and learn

795
00:42:00.559 --> 00:42:03.320
<v Speaker 5>about all the little quirks of Well, here's a method

796
00:42:03.360 --> 00:42:05.119
<v Speaker 5>that sounds like it does the right thing, but before

797
00:42:05.159 --> 00:42:07.079
<v Speaker 5>you call this, you have to be sure of these

798
00:42:07.119 --> 00:42:09.679
<v Speaker 5>other things first. And it's not really well documented.

799
00:42:09.800 --> 00:42:15.000
<v Speaker 2>Obviously, I can't imagine how one would go about trying

800
00:42:15.079 --> 00:42:19.119
<v Speaker 2>to write a Razor editor. I mean that just seems

801
00:42:19.239 --> 00:42:23.079
<v Speaker 2>like a big, big chunk of meat to you know,

802
00:42:23.320 --> 00:42:24.000
<v Speaker 2>to chew off.

803
00:42:24.599 --> 00:42:27.199
<v Speaker 5>It's it's definitely I mean I wasn't there when it started,

804
00:42:27.239 --> 00:42:31.079
<v Speaker 5>but yeah, it's definitely an ambitious goal. In particular the

805
00:42:31.159 --> 00:42:34.000
<v Speaker 5>way that LSP works. You know, essentially the Razor tooling

806
00:42:34.119 --> 00:42:37.760
<v Speaker 5>produces two files. Out of your razor file, it produces

807
00:42:37.760 --> 00:42:42.159
<v Speaker 5>a HTML file and a c sharp file, and most

808
00:42:43.679 --> 00:42:46.920
<v Speaker 5>you know, most of the questions that are asked about it,

809
00:42:46.960 --> 00:42:49.679
<v Speaker 5>it actually forwards onto these other two servers and then

810
00:42:49.719 --> 00:42:51.599
<v Speaker 5>it gets the answers back, and sometimes we have to

811
00:42:51.639 --> 00:42:54.079
<v Speaker 5>combine them, and sometimes we have to discard some or

812
00:42:54.159 --> 00:42:58.840
<v Speaker 5>we have to map coordinates around and it's it's interesting

813
00:42:58.880 --> 00:43:01.800
<v Speaker 5>we get I mean, we get a lot of benefit

814
00:43:01.880 --> 00:43:03.559
<v Speaker 5>from that as well, though. So yeah, we don't really

815
00:43:03.679 --> 00:43:06.719
<v Speaker 5>understand C sharp code, and we don't want to because

816
00:43:06.840 --> 00:43:09.159
<v Speaker 5>obviously that would be writing a separate PASA, which we

817
00:43:09.159 --> 00:43:12.519
<v Speaker 5>don't have to. That's right. One of the other big

818
00:43:12.599 --> 00:43:16.480
<v Speaker 5>innovations that's actually on by default in dotnet ten is

819
00:43:17.760 --> 00:43:20.320
<v Speaker 5>and fred on the ross and compiler team did this

820
00:43:20.480 --> 00:43:25.039
<v Speaker 5>for us. He raised a compiler now uses part of

821
00:43:25.119 --> 00:43:29.800
<v Speaker 5>the Roslyn PASA to parse the sea sharp and so

822
00:43:30.599 --> 00:43:36.440
<v Speaker 5>for things like interpolated strings in your sea sharp, that

823
00:43:36.679 --> 00:43:38.840
<v Speaker 5>was something the Razor compiler didn't know how to handle,

824
00:43:39.159 --> 00:43:41.480
<v Speaker 5>and to implement it in the Razor compiler would have

825
00:43:41.559 --> 00:43:43.920
<v Speaker 5>been teaching it the same parsing rules as is in

826
00:43:44.000 --> 00:43:45.800
<v Speaker 5>the sea sharp compaler. So if we can just reuse

827
00:43:45.840 --> 00:43:49.440
<v Speaker 5>that component, we sort of get it for free. And

828
00:43:49.559 --> 00:43:51.280
<v Speaker 5>so there's a lot more of those, you know, like

829
00:43:51.320 --> 00:43:53.159
<v Speaker 5>I was saying before, a lot more of those sharing things.

830
00:43:53.199 --> 00:43:56.800
<v Speaker 5>I'm hoping that we can take advantage of. My sort

831
00:43:56.840 --> 00:44:02.800
<v Speaker 5>of personal goal or north star maybe is right now

832
00:44:03.440 --> 00:44:06.000
<v Speaker 5>the light bulb menu in a raiser file, we have

833
00:44:06.159 --> 00:44:09.880
<v Speaker 5>an allow list of which things we will show. So

834
00:44:10.079 --> 00:44:12.960
<v Speaker 5>Roslin might suggest six things you could do to this code,

835
00:44:13.320 --> 00:44:15.400
<v Speaker 5>but we'll only show two of them, and that's because

836
00:44:15.480 --> 00:44:18.440
<v Speaker 5>we need to sort of vet each one and make

837
00:44:18.480 --> 00:44:21.119
<v Speaker 5>sure that it's not going to possibly break your razor code.

838
00:44:21.639 --> 00:44:23.559
<v Speaker 5>My north star is that we can just remove that

839
00:44:23.639 --> 00:44:25.760
<v Speaker 5>allow list and we can just say anything that Roland

840
00:44:25.760 --> 00:44:29.800
<v Speaker 5>suggests we know how to handle. And so we've done

841
00:44:29.800 --> 00:44:32.719
<v Speaker 5>it for using statements that was one of the one

842
00:44:32.760 --> 00:44:35.199
<v Speaker 5>of the big things I remember first working on was

843
00:44:35.239 --> 00:44:38.719
<v Speaker 5>pretty exciting. Was any anything that tries to introduce a

844
00:44:38.800 --> 00:44:41.280
<v Speaker 5>using directive, we will now map that to a Raser

845
00:44:41.360 --> 00:44:45.320
<v Speaker 5>using directive and they're pretty similar. So that's okay. But yeah,

846
00:44:45.400 --> 00:44:47.239
<v Speaker 5>we've got more work to do obviously. You know, if

847
00:44:47.320 --> 00:44:49.760
<v Speaker 5>you want to add a method, that's pretty easy in

848
00:44:49.760 --> 00:44:51.519
<v Speaker 5>a c sharp file, but in a Razer file you

849
00:44:51.639 --> 00:44:53.239
<v Speaker 5>might need to add a code block, you might not

850
00:44:53.719 --> 00:44:55.000
<v Speaker 5>you might be a code behind file.

851
00:44:55.280 --> 00:44:55.440
<v Speaker 1>You know.

852
00:44:55.559 --> 00:44:57.280
<v Speaker 5>There's all these sorts of things we need to work through.

853
00:44:57.920 --> 00:44:58.480
<v Speaker 1>But I'm hoping.

854
00:44:58.880 --> 00:45:01.679
<v Speaker 5>I'm hoping this is a new foundation we can get

855
00:45:01.679 --> 00:45:01.960
<v Speaker 5>there from.

856
00:45:02.320 --> 00:45:06.880
<v Speaker 2>What do you think is the feature of the up

857
00:45:06.920 --> 00:45:10.480
<v Speaker 2>and coming Razor editor in Visual Studio twenty twenty six

858
00:45:10.639 --> 00:45:13.760
<v Speaker 2>that people will freak out the most about. And I'm

859
00:45:13.840 --> 00:45:16.719
<v Speaker 2>talking about Blazer developers here. What are they going to

860
00:45:16.800 --> 00:45:17.239
<v Speaker 2>like the most?

861
00:45:17.400 --> 00:45:20.280
<v Speaker 5>Well, I mean, I hope they just the thing with

862
00:45:20.360 --> 00:45:23.519
<v Speaker 5>the Razor editor over the last couple of years is

863
00:45:23.920 --> 00:45:27.079
<v Speaker 5>the reliability has really not been that good, and so

864
00:45:27.159 --> 00:45:31.320
<v Speaker 5>I definitely hope that is the biggest change that they'll notice.

865
00:45:31.400 --> 00:45:33.360
<v Speaker 5>I think the challenge is it's hard for us as

866
00:45:33.440 --> 00:45:36.320
<v Speaker 5>humans to notice that sort of thing. We are very

867
00:45:36.400 --> 00:45:39.360
<v Speaker 5>quick to write it off. And you know, I was

868
00:45:39.400 --> 00:45:42.039
<v Speaker 5>mentioning about how we used to use this serialized Jason file.

869
00:45:42.679 --> 00:45:45.639
<v Speaker 5>I still see comments on Reddit of people saying, oh,

870
00:45:45.760 --> 00:45:48.079
<v Speaker 5>just delete your OBJ folder and that'll fix the razor editor.

871
00:45:48.480 --> 00:45:50.079
<v Speaker 5>Sometimes I go in there and I say, well, actually

872
00:45:50.239 --> 00:45:51.960
<v Speaker 5>that won't do anything. We have no files in there,

873
00:45:52.000 --> 00:45:53.760
<v Speaker 5>but you feel free to delete it. That's fine, we

874
00:45:53.840 --> 00:45:54.280
<v Speaker 5>won't hurt.

875
00:45:54.440 --> 00:45:57.360
<v Speaker 2>But what a lot of times just closing the razor

876
00:45:57.440 --> 00:45:59.679
<v Speaker 2>file and reopening it, you know, gets rid of this

877
00:46:00.559 --> 00:46:02.239
<v Speaker 2>and recolors everything correctly.

878
00:46:02.440 --> 00:46:05.360
<v Speaker 5>And yeah, that's right, and so that that I'm hoping

879
00:46:05.519 --> 00:46:08.000
<v Speaker 5>that we have to do that less. In fact, I'm

880
00:46:08.000 --> 00:46:10.440
<v Speaker 5>hoping you have to do that never, especially the colors one.

881
00:46:10.559 --> 00:46:12.400
<v Speaker 5>That one we have a we actually have a name

882
00:46:12.480 --> 00:46:14.679
<v Speaker 5>for that internally. We call that Disco colors. And it's

883
00:46:15.119 --> 00:46:21.159
<v Speaker 5>pretty well, pretty well known issue. Yeah that with co hosting.

884
00:46:21.880 --> 00:46:24.440
<v Speaker 5>With co hosting, that should be completely a thing of

885
00:46:24.480 --> 00:46:29.119
<v Speaker 5>the past. The question is whether anyone will will notice,

886
00:46:29.119 --> 00:46:30.519
<v Speaker 5>because you know, when things are working.

887
00:46:30.519 --> 00:46:32.960
<v Speaker 2>Of course there will, we'll see. The other thing is, dude,

888
00:46:33.000 --> 00:46:35.480
<v Speaker 2>I have an I nine computer with sixty four gigs

889
00:46:35.519 --> 00:46:38.719
<v Speaker 2>of RAM, and it's still happens on my computer.

890
00:46:39.079 --> 00:46:41.079
<v Speaker 5>Yeah, I mean that one, that one's not a performancing,

891
00:46:41.119 --> 00:46:43.880
<v Speaker 5>that one's just keeping these two worlds up to date.

892
00:46:43.960 --> 00:46:46.719
<v Speaker 5>That one's that What that means is, you know, Rosen

893
00:46:46.840 --> 00:46:49.400
<v Speaker 5>thinks that there's a there's a class from you know,

894
00:46:49.559 --> 00:46:51.760
<v Speaker 5>character four to character seven, and Razer thinks that's a

895
00:46:51.880 --> 00:46:54.760
<v Speaker 5>character seeks to character whatever, and we just get the

896
00:46:54.800 --> 00:46:56.519
<v Speaker 5>colors from it. But so that one should be thin.

897
00:46:56.719 --> 00:46:58.480
<v Speaker 5>But yeah, and the other thing is performance, and the

898
00:46:58.519 --> 00:47:02.800
<v Speaker 5>big the big win for performance with co hosting really

899
00:47:03.280 --> 00:47:08.639
<v Speaker 5>is hot reload. So with the old editor, we you know,

900
00:47:08.840 --> 00:47:12.360
<v Speaker 5>the Razor tooling compiled all your Raiser files and Roslin

901
00:47:12.400 --> 00:47:16.719
<v Speaker 5>compiled your Razor files. At build time and obviously at runtime,

902
00:47:17.119 --> 00:47:18.800
<v Speaker 5>both of those two things can be in play, and

903
00:47:18.880 --> 00:47:21.800
<v Speaker 5>so hot reload has this code to map from. We

904
00:47:21.960 --> 00:47:24.840
<v Speaker 5>essentially have two solutions in memory, ones called design time,

905
00:47:24.880 --> 00:47:26.480
<v Speaker 5>which is what you're looking at. One is called runtime,

906
00:47:27.119 --> 00:47:29.199
<v Speaker 5>and hot reload has to map between the two, et cetera.

907
00:47:30.400 --> 00:47:32.079
<v Speaker 5>And all of that just goes away now because co

908
00:47:32.199 --> 00:47:35.519
<v Speaker 5>hosting uses the same source generator, build time users. And

909
00:47:35.679 --> 00:47:38.280
<v Speaker 5>so I mean, I can't remember off the top of

910
00:47:38.320 --> 00:47:41.800
<v Speaker 5>my head, but Chris on the Razor Compiler team produced

911
00:47:41.840 --> 00:47:44.920
<v Speaker 5>a series of graphs of that some of the time

912
00:47:45.000 --> 00:47:48.000
<v Speaker 5>savings for large projects were just astronomical, and it's just

913
00:47:48.400 --> 00:47:50.280
<v Speaker 5>we're just not doing a whole lot of work we

914
00:47:50.360 --> 00:47:52.800
<v Speaker 5>had to do before, and so hopefully that impacts.

915
00:47:52.840 --> 00:47:55.800
<v Speaker 2>We have a ten second rule for het reload. If

916
00:47:55.840 --> 00:47:58.039
<v Speaker 2>it does an update in ten seconds, I closed, I

917
00:47:58.440 --> 00:48:01.320
<v Speaker 2>stopped the app and run it again. It's just one

918
00:48:01.360 --> 00:48:01.880
<v Speaker 2>of those things.

919
00:48:02.039 --> 00:48:05.320
<v Speaker 5>Yeah, so yeah, that that should be a big win

920
00:48:05.400 --> 00:48:05.719
<v Speaker 5>as well.

921
00:48:06.039 --> 00:48:09.760
<v Speaker 2>Yeah that's great. But yeah, well these dall sound really

922
00:48:09.840 --> 00:48:14.320
<v Speaker 2>fantastic and yeah, very powerful and as I mentioned before,

923
00:48:15.000 --> 00:48:20.480
<v Speaker 2>paving the way to parody with the visual Studio code

924
00:48:20.599 --> 00:48:25.039
<v Speaker 2>editor that we desperately want. So this is all good news.

925
00:48:25.679 --> 00:48:28.480
<v Speaker 2>Is there anything else that we didn't touch on that

926
00:48:28.559 --> 00:48:29.440
<v Speaker 2>you want to talk about?

927
00:48:30.039 --> 00:48:33.320
<v Speaker 5>I don't think so, you know, as I I could

928
00:48:33.360 --> 00:48:34.400
<v Speaker 5>talk about this stuff.

929
00:48:35.840 --> 00:48:38.920
<v Speaker 2>For a while. You know, we're not pressed for time.

930
00:48:39.039 --> 00:48:41.880
<v Speaker 2>We have someone if you want to continue.

931
00:48:43.199 --> 00:48:45.679
<v Speaker 3>I mean, the main part about what do you think

932
00:48:45.719 --> 00:48:48.119
<v Speaker 3>in the terms of testing for all of this, because

933
00:48:48.159 --> 00:48:51.480
<v Speaker 3>I think it's always a challenge with these mixed language files.

934
00:48:51.519 --> 00:48:53.760
<v Speaker 3>It's like, how do I know that it's working correct?

935
00:48:53.920 --> 00:48:57.239
<v Speaker 5>Yeah, So that's that's Actually, that's one really big influence

936
00:48:57.320 --> 00:49:00.559
<v Speaker 5>that I think. So, as I said, right started an

937
00:49:00.599 --> 00:49:03.920
<v Speaker 5>asp on net. When it came over to Rosalin, two

938
00:49:04.000 --> 00:49:06.599
<v Speaker 5>of the people from the asp on net team came

939
00:49:06.639 --> 00:49:09.199
<v Speaker 5>over with it, and so they were heading up the

940
00:49:09.280 --> 00:49:12.960
<v Speaker 5>Razor effort, but they were under Roslin, and over time,

941
00:49:13.119 --> 00:49:16.280
<v Speaker 5>through Riors and people getting promoted and some leaving Microsoft,

942
00:49:16.320 --> 00:49:20.400
<v Speaker 5>et cetera, that it's all changed out. But the I

943
00:49:20.480 --> 00:49:25.000
<v Speaker 5>feel like what we've been working on, you know, me

944
00:49:25.119 --> 00:49:26.400
<v Speaker 5>and Dust and the rest of the team over the

945
00:49:26.480 --> 00:49:29.400
<v Speaker 5>last few years is sort of the rosalindification of Razor

946
00:49:29.760 --> 00:49:33.239
<v Speaker 5>taking all these things from and so the testing is.

947
00:49:33.360 --> 00:49:36.519
<v Speaker 3>Meme has stuck around. Right to me, it'd always felt

948
00:49:36.800 --> 00:49:39.920
<v Speaker 3>temporary that this was the new version of c sharp,

949
00:49:39.960 --> 00:49:42.760
<v Speaker 3>this sort of compiler of a service mindset, but it

950
00:49:42.960 --> 00:49:45.760
<v Speaker 3>just yeah, it turns it seems like everything compiler related

951
00:49:45.800 --> 00:49:47.719
<v Speaker 3>has lived under Roslin ever since.

952
00:49:48.159 --> 00:49:52.360
<v Speaker 5>Yeah, sometimes codenames stick, you know, But yeah, the testing front,

953
00:49:52.719 --> 00:49:55.559
<v Speaker 5>the testing front is definitely something we've we've taken from them,

954
00:49:55.719 --> 00:50:00.519
<v Speaker 5>and so there's a bunch of new tests for hosting

955
00:50:01.440 --> 00:50:03.920
<v Speaker 5>in the Raisor repo, and every single one of them

956
00:50:04.280 --> 00:50:07.000
<v Speaker 5>is written as what I would call a Roslin style test,

957
00:50:07.000 --> 00:50:11.000
<v Speaker 5>which is really like snapshot testing, where we essentially have

958
00:50:11.480 --> 00:50:15.119
<v Speaker 5>here's your raser document, here's your operation you want to run,

959
00:50:15.320 --> 00:50:17.920
<v Speaker 5>and here's what the raser document should look like. The

960
00:50:18.079 --> 00:50:21.760
<v Speaker 5>older styal tests that come from more on the ASPN

961
00:50:21.800 --> 00:50:25.239
<v Speaker 5>and outside, they're more written like a library test, written

962
00:50:25.239 --> 00:50:27.519
<v Speaker 5>because asp dot net developers were all used to writing

963
00:50:27.559 --> 00:50:29.639
<v Speaker 5>libraries right like, it makes total sense how they got there.

964
00:50:29.679 --> 00:50:32.360
<v Speaker 5>It's just an interesting difference. And so there's lots of mocks,

965
00:50:32.400 --> 00:50:34.639
<v Speaker 5>and there's lots of unit tests of specific this method

966
00:50:34.719 --> 00:50:36.920
<v Speaker 5>should do this. And in the tooling side, we don't

967
00:50:36.960 --> 00:50:38.960
<v Speaker 5>really care what that method should do. We just care

968
00:50:39.000 --> 00:50:40.920
<v Speaker 5>that the user's code looks how they think it should

969
00:50:40.920 --> 00:50:44.480
<v Speaker 5>look after they've done whatever of they've done. And so

970
00:50:44.599 --> 00:50:46.800
<v Speaker 5>I think that's a big part of it. I think

971
00:50:46.840 --> 00:50:50.760
<v Speaker 5>one of the interesting things when we go to graduate

972
00:50:51.000 --> 00:50:55.199
<v Speaker 5>co hosting from being a an experiment and let's put

973
00:50:55.239 --> 00:50:57.480
<v Speaker 5>it out there and see if it breaks, to actually, okay,

974
00:50:57.519 --> 00:51:01.320
<v Speaker 5>it's great, let's turn it on and we remove some

975
00:51:01.480 --> 00:51:04.920
<v Speaker 5>of the old code. The temptation is, oh, we don't

976
00:51:04.960 --> 00:51:07.760
<v Speaker 5>need this test assembly anymore because none of this code

977
00:51:07.840 --> 00:51:09.840
<v Speaker 5>is real. But I think we actually need to go

978
00:51:10.000 --> 00:51:12.480
<v Speaker 5>through that test code with a little bit of a

979
00:51:12.519 --> 00:51:14.880
<v Speaker 5>fine tooth comb, because there's probably some little nuggets in

980
00:51:14.920 --> 00:51:17.599
<v Speaker 5>there that we maybe don't have coverage on that, you know,

981
00:51:17.719 --> 00:51:19.960
<v Speaker 5>we need to add in the newer style.

982
00:51:20.280 --> 00:51:24.960
<v Speaker 2>Good stuff. What's next for you, David? What's in your inbox?

983
00:51:25.679 --> 00:51:26.400
<v Speaker 2>Your to do list?

984
00:51:27.639 --> 00:51:31.719
<v Speaker 5>Well, not a lot because the wonders of time zone

985
00:51:31.719 --> 00:51:33.599
<v Speaker 5>differences mean I get most of the day to myself.

986
00:51:33.719 --> 00:51:37.800
<v Speaker 5>So no, the thing I'm working on, I'm still just

987
00:51:37.880 --> 00:51:40.440
<v Speaker 5>you know, trying to basically land this ship, you know,

988
00:51:40.519 --> 00:51:42.960
<v Speaker 5>work out how to pull out some of the older

989
00:51:42.960 --> 00:51:46.119
<v Speaker 5>stuff and make it as efficient as possible. Very very

990
00:51:46.199 --> 00:51:49.679
<v Speaker 5>keen to see the feedback from people, and I'm I'm

991
00:51:49.760 --> 00:51:51.800
<v Speaker 5>hesitant to take on too much right now because I'm

992
00:51:51.880 --> 00:51:54.400
<v Speaker 5>just poised for the bugs. But if you see them,

993
00:51:54.519 --> 00:51:56.440
<v Speaker 5>if you see them, log them and of fixham.

994
00:51:56.920 --> 00:51:57.360
<v Speaker 2>That's great.

995
00:51:57.440 --> 00:51:59.559
<v Speaker 3>Take the preview out for us bin try this on.

996
00:52:00.199 --> 00:52:05.159
<v Speaker 2>Yeah, absolutely absolutely, I'm looking forward to it. Yeah, okay, Well,

997
00:52:05.840 --> 00:52:07.840
<v Speaker 2>thanks very much for spending the hour with us.

998
00:52:07.880 --> 00:52:08.119
<v Speaker 1>David.

999
00:52:08.119 --> 00:52:10.440
<v Speaker 2>It's great pleasure to talk to you, and we're going

1000
00:52:10.519 --> 00:52:12.400
<v Speaker 2>to have to have you on again. If you have

1001
00:52:12.519 --> 00:52:15.039
<v Speaker 2>anything that haply comes up that you want to talk about,

1002
00:52:15.679 --> 00:52:17.440
<v Speaker 2>feel free to reach out. Thank you all right, and

1003
00:52:17.559 --> 00:52:40.719
<v Speaker 2>we'll talk to you next time on dot netwoks. Dot

1004
00:52:40.840 --> 00:52:43.400
<v Speaker 2>net Rocks is brought to you by Franklin's Net and

1005
00:52:43.559 --> 00:52:47.440
<v Speaker 2>produced by Pop Studios, a full service audio, video and

1006
00:52:47.559 --> 00:52:51.760
<v Speaker 2>post production facility located physically in New London, Connecticut, and

1007
00:52:51.920 --> 00:52:55.920
<v Speaker 2>of course in the cloud online at pwop dot com.

1008
00:52:56.719 --> 00:52:58.760
<v Speaker 2>Visit our website at d O T N E t

1009
00:52:59.079 --> 00:53:03.079
<v Speaker 2>R O c K S DOM for RSS feeds, downloads,

1010
00:53:03.280 --> 00:53:06.920
<v Speaker 2>mobile apps, comments, and access to the full archives going

1011
00:53:07.000 --> 00:53:10.360
<v Speaker 2>back to show number one, recorded in September two thousand

1012
00:53:10.400 --> 00:53:13.000
<v Speaker 2>and two. And make sure you check out our sponsors.

1013
00:53:13.199 --> 00:53:16.000
<v Speaker 2>They keep us in business. Now go write some code,

1014
00:53:16.559 --> 00:53:17.320
<v Speaker 2>see you next time.

1015
00:53:18.239 --> 00:53:20.039
<v Speaker 5>You got jud Middle Vans

1016
00:53:22.119 --> 00:53:26.840
<v Speaker 1>And the
