WEBVTT

1
00:00:05.320 --> 00:00:09.800
<v Speaker 1>Hello, everybody, Welcome to another exciting episode of JavaScript Jabber.

2
00:00:09.839 --> 00:00:12.199
<v Speaker 1>I am Steve Edwards, the host with the face for

3
00:00:12.359 --> 00:00:14.359
<v Speaker 1>radio and the voice for being a mine. But I'm

4
00:00:14.359 --> 00:00:17.719
<v Speaker 1>still your host, at least for today. Chuck has out

5
00:00:17.760 --> 00:00:21.320
<v Speaker 1>had some work to do. Dan he is on vacation,

6
00:00:21.600 --> 00:00:25.199
<v Speaker 1>so he's taken some time off. So it's me and

7
00:00:25.480 --> 00:00:27.839
<v Speaker 1>on the panel. I have mister A j O'Neil. How

8
00:00:27.920 --> 00:00:28.600
<v Speaker 1>you doing, aj.

9
00:00:30.320 --> 00:00:34.320
<v Speaker 2>I'm doing fine, flipping fantastic. No, yo yo yo.

10
00:00:36.600 --> 00:00:38.880
<v Speaker 1>Yo y oh? Did you on the back end? Oh?

11
00:00:38.920 --> 00:00:39.320
<v Speaker 1>Back end?

12
00:00:39.520 --> 00:00:42.000
<v Speaker 2>Sorry, you asked me a question, So okay, I give

13
00:00:42.000 --> 00:00:43.600
<v Speaker 2>you the answer, and then I added the yo yo

14
00:00:43.640 --> 00:00:48.560
<v Speaker 2>yo yo yo yo, coming at you live from my goodness.

15
00:00:48.799 --> 00:00:50.159
<v Speaker 2>Isn't the weather heavenly today?

16
00:00:50.840 --> 00:00:53.280
<v Speaker 1>Yes? It is here too. It's awesome. I was thinking

17
00:00:53.280 --> 00:00:55.359
<v Speaker 1>the fall was coming way too early last week, but

18
00:00:55.560 --> 00:00:58.039
<v Speaker 1>that's warming up. Supposed to be ninety here in Portland tomorrow.

19
00:00:58.799 --> 00:01:01.799
<v Speaker 1>We're looking at some sunny sky and some good weather.

20
00:01:02.159 --> 00:01:04.400
<v Speaker 2>So we did a drive through the mountains yesterday with

21
00:01:04.400 --> 00:01:05.079
<v Speaker 2>the kiddos.

22
00:01:05.359 --> 00:01:06.920
<v Speaker 1>Hey, Jay, see the fall colors.

23
00:01:06.959 --> 00:01:07.840
<v Speaker 2>Yeah, it was wonderful.

24
00:01:09.120 --> 00:01:10.879
<v Speaker 1>Yeah, okay, it is after the twenty first, so I

25
00:01:10.879 --> 00:01:12.760
<v Speaker 1>guess we can start calling it fall now, can't we?

26
00:01:13.959 --> 00:01:16.200
<v Speaker 1>Although here we tend to have really nice September and

27
00:01:16.280 --> 00:01:22.040
<v Speaker 1>October Indian summer they call it, so that's always nice. Anyway,

28
00:01:22.599 --> 00:01:25.400
<v Speaker 1>as we blaberon, let's welcome our guests, mister Daniel Kelly.

29
00:01:25.439 --> 00:01:28.000
<v Speaker 1>How you doing, Daniel, Hey, Steve doing great?

30
00:01:28.359 --> 00:01:29.120
<v Speaker 3>Great to be here.

31
00:01:30.000 --> 00:01:35.280
<v Speaker 1>So Daniel is a prominent member of the view JS community,

32
00:01:36.400 --> 00:01:38.640
<v Speaker 1>and so since I don't do the views on view

33
00:01:38.680 --> 00:01:41.840
<v Speaker 1>podcast anymore, I like to bring in some view JS

34
00:01:42.079 --> 00:01:44.879
<v Speaker 1>content into JavaScript jabber every once in a while, and

35
00:01:44.920 --> 00:01:45.760
<v Speaker 1>this is my chance.

36
00:01:46.879 --> 00:01:48.959
<v Speaker 3>Yeah, get a rep view here.

37
00:01:49.400 --> 00:01:51.200
<v Speaker 1>Yes, that's right. We need a good view of what's

38
00:01:51.239 --> 00:01:54.879
<v Speaker 1>going on. Sorry, I missed my dang it, I missed

39
00:01:54.920 --> 00:01:58.040
<v Speaker 1>my sound effect. I'll do it. Delay there we go,

40
00:01:58.159 --> 00:02:02.159
<v Speaker 1>thank you. Okay. So, first of all, Daniel, why don't

41
00:02:02.200 --> 00:02:04.159
<v Speaker 1>you just give us an intro on who you are

42
00:02:04.200 --> 00:02:06.599
<v Speaker 1>and why you're famous and we'll go from there.

43
00:02:07.519 --> 00:02:12.080
<v Speaker 3>Sure. So, I am the lead instructor over at view School.

44
00:02:12.120 --> 00:02:14.560
<v Speaker 3>We're one of the primary places you can go to

45
00:02:14.639 --> 00:02:18.240
<v Speaker 3>learn view JS, whether you're a beginner or you know,

46
00:02:18.400 --> 00:02:21.080
<v Speaker 3>even in a more advanced view person. We've got all

47
00:02:21.159 --> 00:02:24.599
<v Speaker 3>kinds of tutorials available for everyone. So I've been working

48
00:02:24.599 --> 00:02:27.800
<v Speaker 3>with view School for almost four years now, Has it

49
00:02:27.919 --> 00:02:31.479
<v Speaker 3>really been that long? Yeah, Google, I think.

50
00:02:33.159 --> 00:02:33.400
<v Speaker 1>Yeah.

51
00:02:33.479 --> 00:02:40.479
<v Speaker 3>So we also run in the in the conference kind

52
00:02:40.520 --> 00:02:42.520
<v Speaker 3>of circuit there. I go to conferences all the time

53
00:02:42.520 --> 00:02:45.360
<v Speaker 3>with view School. We put on a few virtual conferences

54
00:02:46.000 --> 00:02:49.960
<v Speaker 3>and also recently got into the certification space, so we

55
00:02:50.039 --> 00:02:54.199
<v Speaker 3>worked with Evan you to create an official view Jess

56
00:02:54.719 --> 00:02:57.360
<v Speaker 3>certificate so you can take an exam, you know, show

57
00:02:57.400 --> 00:03:00.919
<v Speaker 3>potential employers. I know my stuff, right, So yeah, that's

58
00:03:00.960 --> 00:03:02.439
<v Speaker 3>kind of what I do on the day to day

59
00:03:02.479 --> 00:03:03.719
<v Speaker 3>these days.

60
00:03:04.840 --> 00:03:08.039
<v Speaker 1>So let's talk about that for a minute. I know,

61
00:03:08.680 --> 00:03:11.479
<v Speaker 1>way back when before I got into web development, I

62
00:03:11.599 --> 00:03:15.639
<v Speaker 1>was doing software and I got into doing some network certifications.

63
00:03:15.680 --> 00:03:19.280
<v Speaker 1>So if you're looking at network certifications for instance, I

64
00:03:19.360 --> 00:03:23.000
<v Speaker 1>was doing on one. Uh this is Windows. This is

65
00:03:23.319 --> 00:03:25.240
<v Speaker 1>early days of Linux. I don't even know if Linx

66
00:03:25.280 --> 00:03:28.280
<v Speaker 1>was out yet, but like Windows NTI network certifications. You know,

67
00:03:28.280 --> 00:03:33.479
<v Speaker 1>there's a plus certifications, and I know that it's seen

68
00:03:33.599 --> 00:03:36.240
<v Speaker 1>as a way to say, hey, I really know what

69
00:03:36.280 --> 00:03:38.719
<v Speaker 1>I'm talking about. I can remember when I was in

70
00:03:38.759 --> 00:03:42.199
<v Speaker 1>the drouple world. You know, there was always issue when

71
00:03:42.199 --> 00:03:44.639
<v Speaker 1>you know, when hiring a developer to do a druple

72
00:03:44.719 --> 00:03:47.080
<v Speaker 1>site for you. How do you know that they know

73
00:03:47.159 --> 00:03:50.039
<v Speaker 1>their stuff? And I know that up Drupal has come

74
00:03:50.120 --> 00:03:52.319
<v Speaker 1>up with certification test if I remember, I haven't looked

75
00:03:52.319 --> 00:03:56.439
<v Speaker 1>in a while. So you know, view development, any type

76
00:03:56.479 --> 00:04:01.919
<v Speaker 1>of development can cover a wide array of topics, you know, absolutely,

77
00:04:02.439 --> 00:04:05.520
<v Speaker 1>So I'm just curious this first chance I've had to

78
00:04:05.520 --> 00:04:08.680
<v Speaker 1>talk to somebody about this. Can you talk about what's

79
00:04:08.719 --> 00:04:13.840
<v Speaker 1>involved in generating a certification test? And obviously you got

80
00:04:14.520 --> 00:04:17.519
<v Speaker 1>the input from the guy who created you, which is

81
00:04:17.600 --> 00:04:23.199
<v Speaker 1>you can't get much lower level than that speak right.

82
00:04:22.399 --> 00:04:24.199
<v Speaker 3>We're very happy about that for sure.

83
00:04:24.240 --> 00:04:27.079
<v Speaker 1>Right, and then so and then what does it cover?

84
00:04:27.319 --> 00:04:29.000
<v Speaker 1>What are the main areas?

85
00:04:30.040 --> 00:04:33.639
<v Speaker 3>So we've got yeah, we've got it really focuses on

86
00:04:33.759 --> 00:04:39.399
<v Speaker 3>like core VIEWJSS, right, and we have two different levels

87
00:04:39.399 --> 00:04:42.839
<v Speaker 3>of the certification. So there's like a mid level or

88
00:04:43.160 --> 00:04:46.399
<v Speaker 3>just kind of regular level developer short and then there's

89
00:04:46.439 --> 00:04:52.519
<v Speaker 3>the senior level developer certification. And so at the at

90
00:04:52.600 --> 00:04:56.600
<v Speaker 3>level one, we're basically testing, Hey, do you know just

91
00:04:56.839 --> 00:04:59.199
<v Speaker 3>like the basics of you? Right, can you create a component?

92
00:04:59.319 --> 00:05:03.040
<v Speaker 3>Do you know how props and emits work? Do you

93
00:05:03.160 --> 00:05:05.759
<v Speaker 3>know how to you know how to start a view application?

94
00:05:07.319 --> 00:05:10.959
<v Speaker 3>Kind of basic things like that, and the way we

95
00:05:11.040 --> 00:05:14.519
<v Speaker 3>test you on that is we provide multiple choice questions

96
00:05:14.759 --> 00:05:17.319
<v Speaker 3>at the beginning of the exam and then we provide

97
00:05:17.759 --> 00:05:20.879
<v Speaker 3>two different coding challenges that you have to complete to

98
00:05:21.000 --> 00:05:25.279
<v Speaker 3>build some kind of some kind of little app right,

99
00:05:26.480 --> 00:05:30.639
<v Speaker 3>So it's fairly in depth in terms of what you

100
00:05:30.759 --> 00:05:34.279
<v Speaker 3>actually have to do to pass the exam. I mean,

101
00:05:34.759 --> 00:05:37.240
<v Speaker 3>if you can't create this, if you can't complete the

102
00:05:37.240 --> 00:05:39.439
<v Speaker 3>coding challenge and actually write the code for yourself, you're

103
00:05:39.800 --> 00:05:43.360
<v Speaker 3>not going to pass. And then at the senior level,

104
00:05:43.680 --> 00:05:46.920
<v Speaker 3>it's the same structure. It's multiple choice questions and two

105
00:05:46.959 --> 00:05:52.000
<v Speaker 3>different coding challenges, but the topics are a little bit

106
00:05:52.000 --> 00:05:56.439
<v Speaker 3>more advanced, things like using Typescript with view, things like

107
00:05:56.480 --> 00:06:02.800
<v Speaker 3>writing test for your view components, things like a few

108
00:06:02.800 --> 00:06:05.800
<v Speaker 3>more advanced things that are a little less used but

109
00:06:05.920 --> 00:06:10.560
<v Speaker 3>can be very useful for creating you know, intuitive APIs

110
00:06:10.600 --> 00:06:15.639
<v Speaker 3>for your components, things like provide inject for example. So yeah,

111
00:06:15.759 --> 00:06:19.480
<v Speaker 3>it's it's an interesting dynamic and we've had a lot

112
00:06:19.519 --> 00:06:22.319
<v Speaker 3>of good feedback from people. One of my favorite things

113
00:06:22.360 --> 00:06:25.439
<v Speaker 3>to share is actually we have a boot camp that

114
00:06:25.480 --> 00:06:29.639
<v Speaker 3>goes along with the certification as well. It's a three

115
00:06:29.720 --> 00:06:33.040
<v Speaker 3>day boot camp. It's a virtual thing, right, but it's

116
00:06:33.240 --> 00:06:38.720
<v Speaker 3>basically me or a colleague of mine doing a just

117
00:06:38.759 --> 00:06:42.800
<v Speaker 3>an educational style boot camp thing and people can ask

118
00:06:42.879 --> 00:06:44.439
<v Speaker 3>questions and we go over all the different topics that

119
00:06:44.480 --> 00:06:46.319
<v Speaker 3>are on the exam and teach the concepts and so on.

120
00:06:46.759 --> 00:06:49.079
<v Speaker 3>But I actually had one guy who works on a

121
00:06:49.160 --> 00:06:52.319
<v Speaker 3>very popular UI library in the View community who attended.

122
00:06:52.639 --> 00:06:56.399
<v Speaker 3>You're like, why would he attend? Like he knows View right,

123
00:06:56.480 --> 00:06:58.519
<v Speaker 3>and he came out telling me he learned stuff. So

124
00:06:58.639 --> 00:07:01.439
<v Speaker 3>I'd really like to talk about that really really makes

125
00:07:01.439 --> 00:07:02.319
<v Speaker 3>me feel good.

126
00:07:03.439 --> 00:07:06.439
<v Speaker 1>So I assume that with I mean, there's a huge

127
00:07:06.519 --> 00:07:08.920
<v Speaker 1>number of apps ot out there and still in View two.

128
00:07:08.959 --> 00:07:10.519
<v Speaker 1>I mean, I will work on a very large one

129
00:07:10.600 --> 00:07:13.199
<v Speaker 1>every day. And you know V three has been out

130
00:07:13.279 --> 00:07:17.800
<v Speaker 1>for is it two years now? I want to say

131
00:07:17.839 --> 00:07:18.879
<v Speaker 1>twenty twenty.

132
00:07:18.959 --> 00:07:22.279
<v Speaker 3>Actually I believe I think it's been almost four years now.

133
00:07:22.680 --> 00:07:27.360
<v Speaker 1>That isn't really wow anyway, Okay, so you have, you know,

134
00:07:27.759 --> 00:07:30.000
<v Speaker 1>a lot of U two step out the View three

135
00:07:30.079 --> 00:07:34.279
<v Speaker 1>is the latest and greatest. So are there cerif case

136
00:07:34.319 --> 00:07:37.160
<v Speaker 1>to test for both? Is everything focused on View three?

137
00:07:38.000 --> 00:07:40.920
<v Speaker 3>That's a great question. It is focused on View three.

138
00:07:41.360 --> 00:07:45.680
<v Speaker 3>All of our exams focus on the current level and

139
00:07:45.759 --> 00:07:48.800
<v Speaker 3>as soon as the as soon as the current latest

140
00:07:48.920 --> 00:07:51.720
<v Speaker 3>is has changed to you know, increment to the next thing,

141
00:07:52.000 --> 00:07:54.759
<v Speaker 3>then we will have new exam material for that next level.

142
00:07:54.800 --> 00:07:57.839
<v Speaker 3>That's kind of our strategy there. But yeah, it's all

143
00:07:57.839 --> 00:08:02.680
<v Speaker 3>of you three. It does focus on the composition API

144
00:08:03.040 --> 00:08:06.000
<v Speaker 3>as opposed to the options API because that is the

145
00:08:06.040 --> 00:08:09.279
<v Speaker 3>recommendation from the VJs stocks now and that's the direction

146
00:08:09.360 --> 00:08:11.759
<v Speaker 3>Evan wanted to take it while we were developing it.

147
00:08:13.319 --> 00:08:18.720
<v Speaker 1>So yeah, okay, so how many any ballpark figure on

148
00:08:18.800 --> 00:08:22.000
<v Speaker 1>how many people have been taken it so far?

149
00:08:22.480 --> 00:08:26.560
<v Speaker 3>Oh? How many have taken it? That's a really great question.

150
00:08:28.480 --> 00:08:30.639
<v Speaker 3>I couldn't give you an exact number. I know it's

151
00:08:31.319 --> 00:08:33.679
<v Speaker 3>I mean, we're literally getting people taking it every day.

152
00:08:34.000 --> 00:08:36.080
<v Speaker 3>Their exams come in every day for the past year.

153
00:08:36.200 --> 00:08:39.000
<v Speaker 3>So do the math on that. I'm not sure exactly

154
00:08:39.000 --> 00:08:39.360
<v Speaker 3>how many.

155
00:08:39.360 --> 00:08:42.039
<v Speaker 1>But yeah, so is this run through view school? Is

156
00:08:42.039 --> 00:08:47.879
<v Speaker 1>that you school that's running this certification? More of a

157
00:08:48.039 --> 00:08:49.919
<v Speaker 1>open source type thing, I guess for lack of a

158
00:08:49.919 --> 00:08:50.679
<v Speaker 1>better term.

159
00:08:51.200 --> 00:08:54.600
<v Speaker 3>Right, we uh, it is our team that produces the

160
00:08:54.879 --> 00:09:00.360
<v Speaker 3>content along with third parties like Evan, but the brand

161
00:09:01.200 --> 00:09:04.840
<v Speaker 3>is called Certificates dot dev. So the website is certificates

162
00:09:04.840 --> 00:09:08.679
<v Speaker 3>dot dev and we had we started out with just

163
00:09:08.759 --> 00:09:13.000
<v Speaker 3>the view exam, but we found that that was so

164
00:09:13.159 --> 00:09:17.080
<v Speaker 3>meaningful to people that we pivoted to also not pivoted.

165
00:09:17.120 --> 00:09:19.919
<v Speaker 3>We expanded to also do other certifications as well. So

166
00:09:20.879 --> 00:09:25.639
<v Speaker 3>now we also offer an Angular certification. We're actually launching

167
00:09:25.960 --> 00:09:31.320
<v Speaker 3>tomorrow a JavaScript certification, a more general JavaScript certification, and

168
00:09:31.360 --> 00:09:33.480
<v Speaker 3>we offer a next certification as well.

169
00:09:35.360 --> 00:09:38.519
<v Speaker 1>M okay yea, I'll put the link up here in

170
00:09:38.600 --> 00:09:43.639
<v Speaker 1>the little banner here for a second. Angler. So are

171
00:09:43.720 --> 00:09:46.360
<v Speaker 1>you guys you have somebody with Angular expertise that's that's

172
00:09:46.399 --> 00:09:47.000
<v Speaker 1>doing that one?

173
00:09:47.639 --> 00:09:50.200
<v Speaker 3>We do absolutely. So. We we partnered with a guy

174
00:09:50.279 --> 00:09:55.399
<v Speaker 3>named Alan. Oh, he's gonna kill me because I I'm

175
00:09:55.399 --> 00:09:59.200
<v Speaker 3>gonna butcher. His last name Gerard I think it is. Anyways,

176
00:09:59.240 --> 00:10:02.720
<v Speaker 3>he had an a give their certification that he's been

177
00:10:02.720 --> 00:10:06.960
<v Speaker 3>working on for years and he wanted to partner with

178
00:10:07.039 --> 00:10:09.080
<v Speaker 3>us just to make his processes a little bit easier

179
00:10:09.080 --> 00:10:12.440
<v Speaker 3>and so on. So he is definitely an expert with

180
00:10:12.480 --> 00:10:15.000
<v Speaker 3>that kind of material and provided a lot of that.

181
00:10:15.440 --> 00:10:18.080
<v Speaker 3>It was just a matter of, you know, changing it

182
00:10:18.120 --> 00:10:20.279
<v Speaker 3>up a little bit to fit our standards in our

183
00:10:20.279 --> 00:10:22.919
<v Speaker 3>platform requirements.

184
00:10:23.840 --> 00:10:29.240
<v Speaker 1>Okay, Yeah, so here's the view and interesting. So having

185
00:10:29.600 --> 00:10:36.000
<v Speaker 1>had to administer and take online tests and scenarios and

186
00:10:36.000 --> 00:10:38.639
<v Speaker 1>stuff out of curiosity, how you mentioned that there's some

187
00:10:38.720 --> 00:10:43.879
<v Speaker 1>multiple guests excuse me, multiple choice questions throughout the test,

188
00:10:43.919 --> 00:10:46.679
<v Speaker 1>and then there's some coding challenges and things. So how

189
00:10:46.720 --> 00:10:49.879
<v Speaker 1>has that done? Is that like a clonable repo that

190
00:10:49.919 --> 00:10:51.720
<v Speaker 1>you can do and push back to a repo or

191
00:10:51.759 --> 00:10:53.600
<v Speaker 1>is it just like an online thing like a hacker

192
00:10:53.679 --> 00:10:58.080
<v Speaker 1>rank environment or how exactly is that test done?

193
00:10:58.840 --> 00:11:02.840
<v Speaker 3>So it is all in the browsler. In fact, we're

194
00:11:02.879 --> 00:11:07.919
<v Speaker 3>pretty what's the word for, we are literally watching you

195
00:11:08.000 --> 00:11:12.519
<v Speaker 3>during the exam. There's there's this entire proctoring setup. Yeah,

196
00:11:12.519 --> 00:11:16.399
<v Speaker 3>it's intense, right, there's your camera's on, your screen is

197
00:11:16.440 --> 00:11:20.759
<v Speaker 3>being monitored, your your mic is on. It's it's monitoring everything.

198
00:11:20.759 --> 00:11:20.919
<v Speaker 1>A G.

199
00:11:21.240 --> 00:11:22.399
<v Speaker 3>You want to say something, I.

200
00:11:22.320 --> 00:11:26.840
<v Speaker 2>Can tell I always bomb those like when the quession

201
00:11:26.919 --> 00:11:30.879
<v Speaker 2>is on, oh yeah, I bombed with yeah. When the

202
00:11:30.960 --> 00:11:33.279
<v Speaker 2>pressure is on like that, I forget how to do

203
00:11:33.320 --> 00:11:38.360
<v Speaker 2>fizz buzz. And oftentimes it seems like in most of

204
00:11:38.399 --> 00:11:41.240
<v Speaker 2>those situations they're looking for a very specific answer, so

205
00:11:41.279 --> 00:11:44.960
<v Speaker 2>it's not like, hey, here's a here's a problem that's

206
00:11:45.039 --> 00:11:50.039
<v Speaker 2>reasonable to have, and then walk us through what are

207
00:11:50.039 --> 00:11:53.159
<v Speaker 2>you thinking about that? How would you solve it? It's okay,

208
00:11:53.159 --> 00:11:55.360
<v Speaker 2>so you've got the numbers twelve, twenty seventy to eight

209
00:11:55.440 --> 00:11:57.799
<v Speaker 2>and four. They're in an array, but they're backwards, they're

210
00:11:57.799 --> 00:12:01.000
<v Speaker 2>inside of an object, and you need to have uh

211
00:12:01.120 --> 00:12:05.600
<v Speaker 2>less than oh two lot in like like, so, how

212
00:12:05.600 --> 00:12:11.360
<v Speaker 2>do you solve this problem? And it's like, uh what, yes,

213
00:12:11.399 --> 00:12:13.840
<v Speaker 2>and then and then and then like you saw that

214
00:12:13.919 --> 00:12:17.159
<v Speaker 2>and they're like, well, that's not the solution that we

215
00:12:17.240 --> 00:12:21.559
<v Speaker 2>have in our bookshet here, so.

216
00:12:20.480 --> 00:12:23.440
<v Speaker 3>Totally totally yeah, And we we've done a lot of

217
00:12:23.480 --> 00:12:25.759
<v Speaker 3>work to try to avoid that as much as we

218
00:12:25.799 --> 00:12:29.720
<v Speaker 3>can while still being uh, you know, you have to

219
00:12:29.720 --> 00:12:33.200
<v Speaker 3>have the parameters that they work in, and we tried

220
00:12:33.240 --> 00:12:38.120
<v Speaker 3>to make the coding challenges specifically kind of lifelike things.

221
00:12:38.960 --> 00:12:41.559
<v Speaker 3>For example, I don't want to give too much away,

222
00:12:41.600 --> 00:12:43.600
<v Speaker 3>but maybe there's, you know, in the the view one,

223
00:12:43.960 --> 00:12:46.360
<v Speaker 3>maybe you have to create like a carousel, right that

224
00:12:46.440 --> 00:12:50.440
<v Speaker 3>has some kind of functionality that requires JavaScript rotating the images,

225
00:12:50.559 --> 00:12:52.840
<v Speaker 3>you know, blah blah, so on and so forth. So

226
00:12:52.879 --> 00:12:55.200
<v Speaker 3>we try to make it a fairly realistic thing where

227
00:12:55.240 --> 00:13:00.960
<v Speaker 3>you understand what the goal is. So so yeah, that

228
00:13:01.120 --> 00:13:03.279
<v Speaker 3>that's kind of our way of trying to avoid the

229
00:13:03.360 --> 00:13:07.159
<v Speaker 3>situation you're talking about. But we definitely have found over

230
00:13:07.240 --> 00:13:11.759
<v Speaker 3>time that we've had little instances exactly like you're talking about,

231
00:13:12.279 --> 00:13:15.240
<v Speaker 3>and people report would report such things to us, and

232
00:13:15.320 --> 00:13:17.799
<v Speaker 3>we've been able to work and improve it over time.

233
00:13:19.159 --> 00:13:22.240
<v Speaker 3>So during the coding challenge portion of the exam, it

234
00:13:22.320 --> 00:13:26.200
<v Speaker 3>is all in your browser. We embed a stack blitz

235
00:13:26.240 --> 00:13:29.320
<v Speaker 3>project into the into the platform. I don't know if

236
00:13:29.320 --> 00:13:30.399
<v Speaker 3>you've heard of stackltz before.

237
00:13:31.080 --> 00:13:35.200
<v Speaker 1>So last week we just talked to Tomatsolkowski from Stacklitz

238
00:13:35.240 --> 00:13:38.120
<v Speaker 1>about tutorial Kit and I was about I was about

239
00:13:38.159 --> 00:13:40.039
<v Speaker 1>to ask you if that was what you were using,

240
00:13:40.120 --> 00:13:44.039
<v Speaker 1>or maybe it was just embedding stacklits within your in

241
00:13:44.080 --> 00:13:45.279
<v Speaker 1>the test.

242
00:13:45.879 --> 00:13:49.399
<v Speaker 3>Yeah, that's right. It is just the classic stacklitz ebed.

243
00:13:50.080 --> 00:13:53.240
<v Speaker 3>They came out with tutorial Kit. I believe they actually

244
00:13:53.320 --> 00:13:59.960
<v Speaker 3>launched they announced it, they launched it at JavaScript. I'll shoot,

245
00:14:00.039 --> 00:14:04.039
<v Speaker 3>I'm getting my conference names mixed up at front end Nation,

246
00:14:04.399 --> 00:14:07.080
<v Speaker 3>which is a conference FE school puts on an online conference,

247
00:14:08.159 --> 00:14:10.639
<v Speaker 3>and so yeah, that that wasn't quite out when we

248
00:14:10.720 --> 00:14:12.440
<v Speaker 3>first released the certification.

249
00:14:13.559 --> 00:14:15.559
<v Speaker 1>So yes, we do no stack Q. We've had Eric

250
00:14:15.600 --> 00:14:19.960
<v Speaker 1>Simon's on I think when they first started talking about

251
00:14:20.480 --> 00:14:24.039
<v Speaker 1>embedding node in the browser a few years ago. So yeah,

252
00:14:24.080 --> 00:14:26.080
<v Speaker 1>we're familiar with right.

253
00:14:26.879 --> 00:14:28.480
<v Speaker 3>I'm sure it sounded a little crazy at that point,

254
00:14:28.519 --> 00:14:29.600
<v Speaker 3>but I love it right.

255
00:14:29.759 --> 00:14:36.440
<v Speaker 1>Right, right for sure? So cool? What about Okay, so

256
00:14:36.559 --> 00:14:39.279
<v Speaker 1>people are coming in and you know, taking the certification test,

257
00:14:39.320 --> 00:14:41.440
<v Speaker 1>say hey, I got the certificate, I can do view.

258
00:14:42.600 --> 00:14:48.679
<v Speaker 1>Have you seen that being utilized requested in the employment

259
00:14:48.679 --> 00:14:51.720
<v Speaker 1>community in terms of people who are actually looking for

260
00:14:51.919 --> 00:14:56.639
<v Speaker 1>view developers. What kind of reception has that been getting.

261
00:14:57.320 --> 00:15:02.919
<v Speaker 3>Sure, that's an excellent question from my point of view.

262
00:15:03.799 --> 00:15:08.080
<v Speaker 3>I don't have any I guess case studies per se

263
00:15:08.080 --> 00:15:10.840
<v Speaker 3>on the employer side of Hey, we were looking for

264
00:15:10.879 --> 00:15:13.519
<v Speaker 3>a view developer, and we saw some of our applicants

265
00:15:13.840 --> 00:15:18.240
<v Speaker 3>out of view certification, and so they're the ones we hired. Honestly,

266
00:15:18.279 --> 00:15:20.159
<v Speaker 3>our marketing team would probably have a ton of that,

267
00:15:21.039 --> 00:15:24.720
<v Speaker 3>a ton of that valuable stuff, right. But I've definitely

268
00:15:24.720 --> 00:15:30.799
<v Speaker 3>heard testimonials from view developers themselves who have said, hey,

269
00:15:31.200 --> 00:15:33.360
<v Speaker 3>I got this in order to help me with the

270
00:15:33.480 --> 00:15:37.960
<v Speaker 3>job search. Whether it actually ended up helping them long run,

271
00:15:38.000 --> 00:15:39.919
<v Speaker 3>that's something I don't have the feedback on to be honest.

272
00:15:40.720 --> 00:15:44.000
<v Speaker 3>But one thing we also I think is a really

273
00:15:44.039 --> 00:15:47.679
<v Speaker 3>great benefit besides just the higher ability of a developer

274
00:15:47.759 --> 00:15:50.519
<v Speaker 3>getting the start, we also think another great benefit and

275
00:15:50.559 --> 00:15:53.360
<v Speaker 3>something we hear actually from people who have taken the

276
00:15:53.360 --> 00:15:56.000
<v Speaker 3>exam is that they really just want to take it

277
00:15:56.039 --> 00:15:58.559
<v Speaker 3>to kind of give them the confidence that they're up

278
00:15:58.559 --> 00:16:01.879
<v Speaker 3>to date and their knowledge. They can kind of feel

279
00:16:01.879 --> 00:16:04.320
<v Speaker 3>confident that, hey, I have the knowledge it takes to

280
00:16:04.320 --> 00:16:07.279
<v Speaker 3>be a modern day day view developer, and so that's

281
00:16:07.279 --> 00:16:10.039
<v Speaker 3>something they self evaluate, right, and we get a lot

282
00:16:10.080 --> 00:16:13.039
<v Speaker 3>of feedback about that being the case for them.

283
00:16:13.200 --> 00:16:16.559
<v Speaker 1>So it's yeah, sort of just a measuring tool, I guess,

284
00:16:16.679 --> 00:16:19.600
<v Speaker 1>or a way to bone up on what's the latest

285
00:16:19.600 --> 00:16:22.080
<v Speaker 1>and make sure you're learning the right thing and not

286
00:16:22.679 --> 00:16:25.279
<v Speaker 1>focusing on something it's antiquated that's going to go away.

287
00:16:25.600 --> 00:16:28.159
<v Speaker 3>Right, exactly right, because because evn't reviewed it all and

288
00:16:28.159 --> 00:16:29.960
<v Speaker 3>said ahead, this is what you need to know, right

289
00:16:32.399 --> 00:16:36.279
<v Speaker 3>and uh and yeah, we also we have had a

290
00:16:36.360 --> 00:16:41.039
<v Speaker 3>few employers I know specifically who you know, have given

291
00:16:41.080 --> 00:16:44.200
<v Speaker 3>this exam, bought this exam for their employees in order

292
00:16:44.240 --> 00:16:49.919
<v Speaker 3>to give people raises or you know, elevate their position

293
00:16:50.000 --> 00:16:52.360
<v Speaker 3>and the team things like that. Right, So that's been

294
00:16:52.360 --> 00:16:54.440
<v Speaker 3>a successful use case for it.

295
00:16:55.480 --> 00:17:01.120
<v Speaker 1>Okay, cool, all right, so uh let's talk about we'll

296
00:17:01.159 --> 00:17:03.399
<v Speaker 1>do well, we'll do some shameless plugs towards the end

297
00:17:03.919 --> 00:17:09.720
<v Speaker 1>per View school. In terms of View in general. Obviously

298
00:17:09.759 --> 00:17:13.799
<v Speaker 1>we talked about how you three came out almost four

299
00:17:13.839 --> 00:17:17.400
<v Speaker 1>years ago or a little over four years ago, and

300
00:17:17.519 --> 00:17:17.960
<v Speaker 1>I want.

301
00:17:17.799 --> 00:17:19.480
<v Speaker 3>To google that, Steve, I don't want to tell you

302
00:17:19.640 --> 00:17:25.039
<v Speaker 3>the wrong thing. View V three When did it come out?

303
00:17:25.119 --> 00:17:26.000
<v Speaker 3>Let's see twenty two?

304
00:17:26.599 --> 00:17:29.599
<v Speaker 1>Two years okay? Oh no, it is twenty two, No,

305
00:17:29.640 --> 00:17:32.400
<v Speaker 1>I'm sorry. It is officially released on September eighteenth, twenty twenty,

306
00:17:34.759 --> 00:17:37.000
<v Speaker 1>became the default version of February twenty two.

307
00:17:37.640 --> 00:17:40.640
<v Speaker 3>Yep, yep, that's that's okay, okay.

308
00:17:40.640 --> 00:17:44.920
<v Speaker 1>So so if you go to view dot the View website,

309
00:17:44.960 --> 00:17:47.880
<v Speaker 1>it's by default of View three and you got to

310
00:17:47.880 --> 00:17:49.359
<v Speaker 1>click on a link to go view the V two

311
00:17:49.440 --> 00:17:55.599
<v Speaker 1>docs with what sort of makes it the default? So

312
00:17:56.319 --> 00:17:59.319
<v Speaker 1>we're on as we were talking about before, and we're

313
00:17:59.359 --> 00:18:03.880
<v Speaker 1>on three point five is the current release of View?

314
00:18:05.519 --> 00:18:08.599
<v Speaker 1>What what's so, what's the latest and greatest coming out

315
00:18:08.599 --> 00:18:11.279
<v Speaker 1>of view with with the latest releases, Since you're probably

316
00:18:11.519 --> 00:18:12.200
<v Speaker 1>right on top.

317
00:18:12.079 --> 00:18:17.160
<v Speaker 3>Of that absolutely, so viewpoint three point three was a

318
00:18:17.359 --> 00:18:21.759
<v Speaker 3>pretty big one. So with that came define model. I'm

319
00:18:21.759 --> 00:18:23.960
<v Speaker 3>not sure if you've used define model yet. It's it's

320
00:18:24.000 --> 00:18:29.039
<v Speaker 3>a really handy kind of wrapper around a common pattern

321
00:18:29.400 --> 00:18:36.640
<v Speaker 3>for for taking a prop in and then emitting an

322
00:18:36.640 --> 00:18:40.000
<v Speaker 3>event up whenever the value for that that prop changes.

323
00:18:40.759 --> 00:18:44.480
<v Speaker 3>So think of like a custom input field, right. You

324
00:18:44.559 --> 00:18:48.279
<v Speaker 3>bring a prop in that's called model value, and then

325
00:18:48.319 --> 00:18:52.559
<v Speaker 3>you send an event up called update model value. Right,

326
00:18:54.599 --> 00:18:59.440
<v Speaker 3>And so define model essentially just lets you skip the

327
00:18:59.559 --> 00:19:04.759
<v Speaker 3>kind of and dance there and directly alter the prop

328
00:19:04.799 --> 00:19:08.440
<v Speaker 3>that came in inside of your child component. So whenever

329
00:19:08.480 --> 00:19:12.079
<v Speaker 3>you actually assign a new value to that prop, you're

330
00:19:12.079 --> 00:19:14.400
<v Speaker 3>not actually mutating the prop, which would be a no

331
00:19:14.400 --> 00:19:16.920
<v Speaker 3>no right. Instead, what it's doing under the hood is

332
00:19:16.960 --> 00:19:19.920
<v Speaker 3>it's emitting update model value for you. So it's just

333
00:19:19.920 --> 00:19:26.480
<v Speaker 3>a little ergonomic quality of development thing. So that was

334
00:19:26.759 --> 00:19:28.839
<v Speaker 3>a kind of big addition to three point three. Now

335
00:19:28.839 --> 00:19:31.240
<v Speaker 3>that's been quite a number of months now since set

336
00:19:31.279 --> 00:19:31.799
<v Speaker 3>one's been out.

337
00:19:32.000 --> 00:19:33.839
<v Speaker 1>Can I ask you one question real quick. One of

338
00:19:33.880 --> 00:19:36.279
<v Speaker 1>the things I used to talk about was component v model,

339
00:19:36.839 --> 00:19:39.559
<v Speaker 1>which is basically where you you know you have a

340
00:19:39.640 --> 00:19:45.240
<v Speaker 1>parent and a child and you can do something within

341
00:19:45.559 --> 00:19:49.240
<v Speaker 1>the child and then admit it back up to the parent,

342
00:19:49.359 --> 00:19:51.000
<v Speaker 1>you know. And the example I have is one that

343
00:19:51.039 --> 00:19:54.640
<v Speaker 1>I actually use in an inertia app where I have

344
00:19:54.960 --> 00:19:58.799
<v Speaker 1>a just like an index listing and a table, and

345
00:19:58.839 --> 00:20:03.359
<v Speaker 1>then within I do all The table itself is a

346
00:20:03.400 --> 00:20:06.319
<v Speaker 1>separate component, but the search field that I'm using it

347
00:20:06.359 --> 00:20:09.640
<v Speaker 1>is in the parent. And because I'm using inertia, I

348
00:20:09.640 --> 00:20:13.160
<v Speaker 1>got to use a to find URL. So basically in

349
00:20:13.240 --> 00:20:15.240
<v Speaker 1>my table, I say, you know, I do all my

350
00:20:15.319 --> 00:20:17.880
<v Speaker 1>stuff or no, I take it back. My route has

351
00:20:17.920 --> 00:20:19.759
<v Speaker 1>to be defined in the parent. The search field is

352
00:20:19.759 --> 00:20:22.160
<v Speaker 1>actually in the child, and so I read the child,

353
00:20:22.200 --> 00:20:23.920
<v Speaker 1>passed it up to the parents what we can call

354
00:20:24.599 --> 00:20:27.119
<v Speaker 1>the u ur L and that's basically a component V

355
00:20:27.240 --> 00:20:30.000
<v Speaker 1>model where you can map that real easily and have

356
00:20:30.039 --> 00:20:32.200
<v Speaker 1>that dynamic field. Is this different or is this an

357
00:20:32.240 --> 00:20:35.640
<v Speaker 1>improvement on components and the model? Are they just? Are

358
00:20:35.640 --> 00:20:37.119
<v Speaker 1>they different things?

359
00:20:36.839 --> 00:20:40.640
<v Speaker 3>It's very similar, So really we are talking about the

360
00:20:40.680 --> 00:20:43.240
<v Speaker 3>same thing. Like it's the V model on the using

361
00:20:43.279 --> 00:20:46.640
<v Speaker 3>the V model in the parent on the child component.

362
00:20:46.640 --> 00:20:49.680
<v Speaker 3>That's exactly what this is supporting. Okay, but it's just

363
00:20:49.799 --> 00:20:52.960
<v Speaker 3>when you're doing your logic inside the child. It's making

364
00:20:53.000 --> 00:20:55.279
<v Speaker 3>that logic inside the child a little bit easier to

365
00:20:56.079 --> 00:20:58.519
<v Speaker 3>reason about in short, less lines.

366
00:20:58.440 --> 00:21:02.279
<v Speaker 1>Right, okay, so it's yeah, sort of the longest same. Yeah,

367
00:21:02.319 --> 00:21:05.119
<v Speaker 1>it's really it's an easy way to because it's one

368
00:21:05.119 --> 00:21:10.480
<v Speaker 1>of the thorning our problems with making everything self contained component,

369
00:21:10.599 --> 00:21:12.599
<v Speaker 1>you know, trying to so you don't have this huge,

370
00:21:12.640 --> 00:21:14.720
<v Speaker 1>you know, five hundred line component with everything in it.

371
00:21:14.799 --> 00:21:17.359
<v Speaker 1>You can break things into reusable components. But then you've

372
00:21:17.359 --> 00:21:19.319
<v Speaker 1>got to communicate between the parent and the child, and

373
00:21:19.319 --> 00:21:23.720
<v Speaker 1>that's where it gets gets really sticky and dynamic ways.

374
00:21:23.759 --> 00:21:26.279
<v Speaker 1>So okay, so sorry to interrupt, so or you were

375
00:21:26.279 --> 00:21:27.359
<v Speaker 1>going on from there.

376
00:21:27.599 --> 00:21:32.240
<v Speaker 3>No worries, No worries. So three point four, honestly, I

377
00:21:32.240 --> 00:21:35.519
<v Speaker 3>have no real recollection of.

378
00:21:34.519 --> 00:21:36.000
<v Speaker 1>Of what that's a very important release.

379
00:21:38.400 --> 00:21:41.720
<v Speaker 3>Yeah, truly minor release, right at least in my mind.

380
00:21:42.359 --> 00:21:44.839
<v Speaker 3>So three in three point five just because it's very

381
00:21:44.839 --> 00:21:49.519
<v Speaker 3>recent site I am thinking about. Of course, there's always

382
00:21:49.519 --> 00:21:53.079
<v Speaker 3>performance improvements in every release, right, But also three point

383
00:21:53.119 --> 00:21:59.519
<v Speaker 3>five brought about a feature called props destructure. So when

384
00:21:59.519 --> 00:22:03.000
<v Speaker 3>you're working with the Composition API inside of your script

385
00:22:03.119 --> 00:22:09.720
<v Speaker 3>set up tags, you use a a macro called defined props.

386
00:22:09.880 --> 00:22:11.559
<v Speaker 3>In order to define your props.

387
00:22:11.640 --> 00:22:12.279
<v Speaker 1>Right.

388
00:22:13.039 --> 00:22:17.079
<v Speaker 3>Uh, well, if you wanted to add defaults to your

389
00:22:18.480 --> 00:22:20.519
<v Speaker 3>to your props, you had to use this weird with

390
00:22:20.640 --> 00:22:24.319
<v Speaker 3>defaults method kind of wrap the whole defined props call

391
00:22:24.759 --> 00:22:27.960
<v Speaker 3>and then have a second argument to the with defaults

392
00:22:28.000 --> 00:22:30.240
<v Speaker 3>be your your actual defaults. So you're kind of like

393
00:22:30.279 --> 00:22:34.079
<v Speaker 3>declaring your props here, and then you're declaring that the

394
00:22:34.119 --> 00:22:37.680
<v Speaker 3>defaults for those those props here, and you kind of

395
00:22:37.680 --> 00:22:39.680
<v Speaker 3>have to, you know, put those keys in twice, and

396
00:22:39.720 --> 00:22:43.319
<v Speaker 3>it's just kind of weird and cumbersome. And then when

397
00:22:43.359 --> 00:22:46.799
<v Speaker 3>you're working with your props, you have to say constant

398
00:22:46.799 --> 00:22:50.039
<v Speaker 3>props equals defined props, and then you're working with those

399
00:22:50.200 --> 00:22:53.279
<v Speaker 3>you know, those props off of that props object. So

400
00:22:53.400 --> 00:22:58.000
<v Speaker 3>what props destructure does is it allows you to destructure

401
00:22:58.039 --> 00:23:01.279
<v Speaker 3>your props from defined props. Okay, so now you're not

402
00:23:01.359 --> 00:23:04.160
<v Speaker 3>working with props dot blah blah blah, oh throughout the components,

403
00:23:04.359 --> 00:23:08.200
<v Speaker 3>throughout the script section anyway. Now you can just get

404
00:23:08.240 --> 00:23:12.960
<v Speaker 3>the actual prop name. Right, So I got this and

405
00:23:12.960 --> 00:23:17.240
<v Speaker 3>it's it's it's seamless. They're not real reactive refs, so

406
00:23:17.279 --> 00:23:20.200
<v Speaker 3>you don't have to use that value. They're under the hood.

407
00:23:20.240 --> 00:23:22.880
<v Speaker 3>It actually compiles back to props dot whatever the prop

408
00:23:22.960 --> 00:23:26.559
<v Speaker 3>name is. Yeah, it's just super handy. And the other

409
00:23:26.599 --> 00:23:29.880
<v Speaker 3>benefit is is you can define the defaults in the

410
00:23:29.920 --> 00:23:33.240
<v Speaker 3>destructure statement. There's no with defaults function that you have

411
00:23:33.279 --> 00:23:38.000
<v Speaker 3>to do anymore. So, yeah, that's the big ad for

412
00:23:38.279 --> 00:23:38.759
<v Speaker 3>point five.

413
00:23:39.720 --> 00:23:42.759
<v Speaker 1>I've wrestled with that for quite a while, uh, in

414
00:23:42.799 --> 00:23:44.759
<v Speaker 1>a particular app that I do. So that's I got

415
00:23:44.759 --> 00:23:46.000
<v Speaker 1>to look into this for sure.

416
00:23:46.640 --> 00:23:48.559
<v Speaker 3>Okay, yeah, definitely do, definitely do.

417
00:23:51.079 --> 00:23:54.319
<v Speaker 1>Uh see, so I'm looking at your view school article

418
00:23:54.400 --> 00:23:57.559
<v Speaker 1>on what's coming in three point five. So use template

419
00:23:57.599 --> 00:24:03.680
<v Speaker 1>ref yep use ID. That's more for server side rendering.

420
00:24:03.720 --> 00:24:05.279
<v Speaker 1>It looks like it is.

421
00:24:05.400 --> 00:24:07.759
<v Speaker 3>That's a really cool one though, especially if you're in

422
00:24:07.839 --> 00:24:11.559
<v Speaker 3>the next world just getting a uniquely generated generated ID.

423
00:24:12.440 --> 00:24:14.920
<v Speaker 3>But it's that same uniquely generated ID both on the

424
00:24:14.960 --> 00:24:17.920
<v Speaker 3>client and the server. So there's no more like juggling

425
00:24:17.960 --> 00:24:20.119
<v Speaker 3>and passing the unique ID that you generate on the

426
00:24:20.160 --> 00:24:22.640
<v Speaker 3>server down to the client. You just you just call

427
00:24:22.680 --> 00:24:26.359
<v Speaker 3>it and it's the same everywhere. There's no mismatch hydration,

428
00:24:26.519 --> 00:24:29.480
<v Speaker 3>mismatch issues, which has just been a pain in the past.

429
00:24:30.720 --> 00:24:34.359
<v Speaker 1>Right, that's a good segue. So moving into next we

430
00:24:34.400 --> 00:24:37.960
<v Speaker 1>talked earlier about next and what's going on next, and

431
00:24:38.279 --> 00:24:40.759
<v Speaker 1>you had mentioned this a few bullet points for those

432
00:24:41.319 --> 00:24:44.759
<v Speaker 1>in the jobs world who might not know what next is.

433
00:24:44.839 --> 00:24:47.440
<v Speaker 1>Next is basically next for React. I don't remember which

434
00:24:47.519 --> 00:24:51.440
<v Speaker 1>camp first, and I know next is alphabetic that alphabetically

435
00:24:51.480 --> 00:24:53.240
<v Speaker 1>before next, so maybe it came first.

436
00:24:54.759 --> 00:24:55.599
<v Speaker 3>I think that's the case.

437
00:24:55.720 --> 00:25:01.359
<v Speaker 1>Yeah, right, I think there has a sort of similar

438
00:25:01.359 --> 00:25:03.720
<v Speaker 1>tool they came out with. I can't remember what it's called.

439
00:25:05.759 --> 00:25:08.880
<v Speaker 1>Smelt has spelt kit. So just so you can understand

440
00:25:09.000 --> 00:25:11.960
<v Speaker 1>the next side of things where View is just primarily

441
00:25:12.000 --> 00:25:14.000
<v Speaker 1>front of Joba script ne excuse you, the whole server

442
00:25:14.079 --> 00:25:15.759
<v Speaker 1>and during your stack stee.

443
00:25:15.799 --> 00:25:18.160
<v Speaker 3>But I think next like had to come out first

444
00:25:18.319 --> 00:25:20.920
<v Speaker 3>because next is like a play on words on is

445
00:25:20.960 --> 00:25:24.319
<v Speaker 3>that what it is? Because who would name something nuxt like?

446
00:25:24.559 --> 00:25:29.200
<v Speaker 1>That's a good question, Yeah, I think it. Yeah, I

447
00:25:29.200 --> 00:25:31.200
<v Speaker 1>could ask that about View and Drupel and any number

448
00:25:31.200 --> 00:25:34.599
<v Speaker 1>of other names too, so so interesting.

449
00:25:34.680 --> 00:25:38.400
<v Speaker 3>Fact. Uh, the name of the framework, View comes from

450
00:25:38.480 --> 00:25:43.160
<v Speaker 3>the French word for view. Know, that's.

451
00:25:44.839 --> 00:25:46.079
<v Speaker 1>Fast. Fast.

452
00:25:47.480 --> 00:25:50.839
<v Speaker 3>View is like the view layer like the u I layer.

453
00:25:50.920 --> 00:26:00.720
<v Speaker 1>Right, Okay, so that actually has significant.

454
00:25:57.319 --> 00:25:59.839
<v Speaker 3>You didn't take the same strategy, Evan took the same

455
00:26:00.400 --> 00:26:02.880
<v Speaker 3>for both view and meat. He just just grabbed the

456
00:26:02.920 --> 00:26:05.119
<v Speaker 3>French word for yeah.

457
00:26:05.160 --> 00:26:07.680
<v Speaker 1>The story of I always remember the story of Drupel

458
00:26:07.720 --> 00:26:09.759
<v Speaker 1>where it came from. And it was actually a typo,

459
00:26:11.200 --> 00:26:15.440
<v Speaker 1>really and because Dre's Boytart is Belgian and he was

460
00:26:16.200 --> 00:26:18.559
<v Speaker 1>he meant he was trying to drop hell. It was

461
00:26:18.599 --> 00:26:21.079
<v Speaker 1>like a French from Belgian word for drop, like a

462
00:26:21.160 --> 00:26:24.599
<v Speaker 1>drop of water, and it was a misspelling and and

463
00:26:24.759 --> 00:26:26.839
<v Speaker 1>ended up just sticking with it and it took off

464
00:26:26.839 --> 00:26:28.599
<v Speaker 1>from there. So sort of funny how some of these

465
00:26:28.680 --> 00:26:30.519
<v Speaker 1>names come about.

466
00:26:30.480 --> 00:26:32.880
<v Speaker 3>The best way. Yeah, right, happy accidents.

467
00:26:33.279 --> 00:26:36.160
<v Speaker 1>Yes, So nuxt, why don't you give us an overview

468
00:26:36.359 --> 00:26:40.079
<v Speaker 1>of next, what it does and what its capabilities are,

469
00:26:40.119 --> 00:26:41.559
<v Speaker 1>at least currently.

470
00:26:41.880 --> 00:26:47.480
<v Speaker 3>Sure, sonuxt is like, the big benefit of Next is

471
00:26:47.519 --> 00:26:51.200
<v Speaker 3>the server side rending portion. They take a lot of

472
00:26:52.640 --> 00:26:55.839
<v Speaker 3>I mean, you could server side render with just vanilla view, right,

473
00:26:55.920 --> 00:26:57.960
<v Speaker 3>but you're having to build a lot of things up

474
00:26:58.480 --> 00:27:00.279
<v Speaker 3>on your own if you decided to go that out.

475
00:27:00.319 --> 00:27:04.279
<v Speaker 3>So Next makes it really easy to make server rendered

476
00:27:04.359 --> 00:27:10.119
<v Speaker 3>you applications. But the really cool thing that's happened with

477
00:27:10.960 --> 00:27:15.720
<v Speaker 3>nuxts three versus with nuxt two, well number one, they've

478
00:27:15.720 --> 00:27:19.039
<v Speaker 3>embraced the composition API like wholeheartedly. Okay, so next three.

479
00:27:19.079 --> 00:27:22.160
<v Speaker 3>Composition API is like the first party way of interacting

480
00:27:22.880 --> 00:27:26.359
<v Speaker 3>and creating, which I like a lot of view developers

481
00:27:26.359 --> 00:27:28.759
<v Speaker 3>these days, I think have jumped on the composition API vote.

482
00:27:28.799 --> 00:27:31.440
<v Speaker 3>I know some haven't, and that's fine, but it's kind

483
00:27:31.440 --> 00:27:32.920
<v Speaker 3>of the direction a lot of the framework is going.

484
00:27:35.039 --> 00:27:38.359
<v Speaker 3>But the other really exciting part though about these Nuxt

485
00:27:38.359 --> 00:27:44.240
<v Speaker 3>steps is that you have the ability to specify where

486
00:27:44.359 --> 00:27:49.119
<v Speaker 3>and how you're going to render things so grandularly. And

487
00:27:49.160 --> 00:27:53.599
<v Speaker 3>what I mean by that is you could choose to

488
00:27:55.440 --> 00:27:58.559
<v Speaker 3>render a certain page only on the client. So think

489
00:27:58.599 --> 00:28:01.319
<v Speaker 3>about just that one page is rendered just like a

490
00:28:01.319 --> 00:28:03.720
<v Speaker 3>normal view application. You can skip the knuxt server side

491
00:28:03.720 --> 00:28:07.880
<v Speaker 3>rendering all together, okay, And that's at the page level.

492
00:28:07.960 --> 00:28:11.559
<v Speaker 3>You could do the same thing for the server. You

493
00:28:11.599 --> 00:28:14.440
<v Speaker 3>could say, render this page only on the server, don't

494
00:28:14.519 --> 00:28:16.559
<v Speaker 3>hydrate it on the client side. I don't want any

495
00:28:16.599 --> 00:28:18.680
<v Speaker 3>of that JavaScript coming down. And you know this is

496
00:28:18.720 --> 00:28:20.200
<v Speaker 3>just a content oriented kind of page.

497
00:28:20.240 --> 00:28:22.599
<v Speaker 1>I don't know, I can about page or something like that, right,

498
00:28:22.599 --> 00:28:23.559
<v Speaker 1>that's a common.

499
00:28:23.640 --> 00:28:28.200
<v Speaker 3>Use exactly exactly, So you can do that not just

500
00:28:28.240 --> 00:28:30.160
<v Speaker 3>at the app level. You used to could do that

501
00:28:30.200 --> 00:28:31.640
<v Speaker 3>at the app level. Now you can do that at

502
00:28:31.680 --> 00:28:33.519
<v Speaker 3>the page level, so you can mix and match your

503
00:28:33.920 --> 00:28:36.119
<v Speaker 3>you know, different rendering modes per page. But then you

504
00:28:36.160 --> 00:28:39.759
<v Speaker 3>can also even do that at the component level. So

505
00:28:40.720 --> 00:28:43.039
<v Speaker 3>you could have this, you know, one page is rendered

506
00:28:43.200 --> 00:28:48.319
<v Speaker 3>universally both on the client and the server, but nested

507
00:28:48.400 --> 00:28:50.640
<v Speaker 3>down inside that page, you could have a component that's

508
00:28:50.640 --> 00:28:53.079
<v Speaker 3>only rendered on the server, and then whenever the props

509
00:28:53.119 --> 00:28:56.200
<v Speaker 3>for that component change, it doesn't run any client side JavaScript,

510
00:28:57.200 --> 00:28:59.359
<v Speaker 3>It just goes back to the server, fetches it, it

511
00:28:59.400 --> 00:29:02.119
<v Speaker 3>renders on the server in it replaces that HTML you

512
00:29:02.160 --> 00:29:05.359
<v Speaker 3>know on the page. So it's a really dynamic way

513
00:29:05.400 --> 00:29:08.480
<v Speaker 3>of being able to choose exactly when and where you're

514
00:29:09.279 --> 00:29:13.599
<v Speaker 3>you're rendering your your few components so that that server

515
00:29:13.680 --> 00:29:17.599
<v Speaker 3>rendered example, is really great for something like rendering markdown. Right.

516
00:29:18.079 --> 00:29:20.440
<v Speaker 3>Loading a markdown parser into your browser is kind of

517
00:29:20.440 --> 00:29:23.000
<v Speaker 3>a heavy thing, and a lot of times what we're

518
00:29:23.079 --> 00:29:26.640
<v Speaker 3>using markdown for is for displaying static content, so we

519
00:29:26.640 --> 00:29:29.200
<v Speaker 3>don't need that run in the browser. We can save

520
00:29:29.359 --> 00:29:33.359
<v Speaker 3>so much you know, time in terms of loading by

521
00:29:33.400 --> 00:29:35.960
<v Speaker 3>just rendering out of the server and sending the loaded thing.

522
00:29:36.000 --> 00:29:38.240
<v Speaker 3>But then that's just that one component on your page,

523
00:29:38.240 --> 00:29:40.839
<v Speaker 3>all your other stuff could still be be dynamic, so

524
00:29:41.000 --> 00:29:41.559
<v Speaker 3>pretty cool.

525
00:29:42.720 --> 00:29:45.400
<v Speaker 1>So that's sort of the ASTRO approach to things, isn't

526
00:29:45.400 --> 00:29:47.400
<v Speaker 1>it pretty much where you can everythink server and then

527
00:29:47.440 --> 00:29:49.480
<v Speaker 1>you can have your I mean, I'm sure you don't

528
00:29:49.519 --> 00:29:52.200
<v Speaker 1>use the same terminology. They call it islands architecture, where

529
00:29:52.200 --> 00:29:54.240
<v Speaker 1>you can have your little islands of interactivity in the

530
00:29:54.240 --> 00:29:56.720
<v Speaker 1>middle of server side content. So that's pretty much the

531
00:29:57.440 --> 00:30:00.000
<v Speaker 1>at least from that from that high level. But I'm

532
00:30:00.079 --> 00:30:02.039
<v Speaker 1>sure there's a lot of other more dynamic stuff you

533
00:30:02.079 --> 00:30:04.480
<v Speaker 1>can do within next, within your.

534
00:30:04.319 --> 00:30:07.279
<v Speaker 3>Compass, right. Oh yeah, there's there's tons of other stuff

535
00:30:07.279 --> 00:30:10.880
<v Speaker 3>that can do. But in terms of your comparison ASTRO,

536
00:30:11.000 --> 00:30:15.119
<v Speaker 3>that's exactly right. That's yeah. ASTRO is the server rendered

537
00:30:15.160 --> 00:30:18.279
<v Speaker 3>by the fault, right, and then client rendered by opt

538
00:30:18.359 --> 00:30:21.440
<v Speaker 3>in nuxts is kind of the opposite, m h. It's

539
00:30:21.799 --> 00:30:23.759
<v Speaker 3>it's universal by the fault and then you can you

540
00:30:23.759 --> 00:30:27.960
<v Speaker 3>can opt into client only or server only per pageer

541
00:30:28.119 --> 00:30:32.200
<v Speaker 3>or per component. But yeah, in terms of like other

542
00:30:32.240 --> 00:30:34.359
<v Speaker 3>things that NUTS has to offer for the view developer,

543
00:30:34.559 --> 00:30:37.680
<v Speaker 3>just a lot of quality of life things, things like

544
00:30:37.839 --> 00:30:41.240
<v Speaker 3>auto imports for all the composables in your composables directory,

545
00:30:41.680 --> 00:30:46.640
<v Speaker 3>things like auto imports for the core view reactive functions,

546
00:30:46.720 --> 00:30:49.960
<v Speaker 3>you know, things like wrath, computed all that kind of stuff.

547
00:30:49.960 --> 00:30:51.880
<v Speaker 3>You just they just work. You just use them and

548
00:30:51.920 --> 00:30:56.119
<v Speaker 3>they work right, which is nice. But if you want

549
00:30:56.160 --> 00:30:58.720
<v Speaker 3>to still import everything like you have the ability to

550
00:30:58.720 --> 00:31:00.519
<v Speaker 3>do that. You can turn off the auto imports and

551
00:31:00.519 --> 00:31:01.079
<v Speaker 3>things like that.

552
00:31:01.160 --> 00:31:04.680
<v Speaker 1>So so now if you're using NEXT, one of the

553
00:31:04.680 --> 00:31:08.240
<v Speaker 1>big differences, and I think NEXT is like this or

554
00:31:08.279 --> 00:31:10.440
<v Speaker 1>some of the other ones, is how your routing is handled.

555
00:31:11.319 --> 00:31:15.680
<v Speaker 1>Whereas with us with a strictly view front end, you

556
00:31:15.720 --> 00:31:18.680
<v Speaker 1>have your front end routes that you have to define

557
00:31:18.720 --> 00:31:21.079
<v Speaker 1>and view router, whereas with NUTS it's all based on

558
00:31:21.160 --> 00:31:24.480
<v Speaker 1>folder structure. So you'll have a structure and then you

559
00:31:24.519 --> 00:31:26.920
<v Speaker 1>can define you know, I want my u RL to

560
00:31:26.960 --> 00:31:28.759
<v Speaker 1>look like this, so that's how you name your folders.

561
00:31:28.759 --> 00:31:31.000
<v Speaker 1>And then you can pass in dynamic values like ID

562
00:31:31.279 --> 00:31:34.519
<v Speaker 1>values and you know, so what to render a blog

563
00:31:34.559 --> 00:31:37.000
<v Speaker 1>post based on its slug or you know, however you

564
00:31:37.039 --> 00:31:41.039
<v Speaker 1>have identified it, so that's you know, that's a pretty

565
00:31:41.039 --> 00:31:43.359
<v Speaker 1>common thing. I've seen people. In fact, I've worked on

566
00:31:43.400 --> 00:31:47.200
<v Speaker 1>an app one time where everything was they were connecting

567
00:31:47.240 --> 00:31:51.200
<v Speaker 1>to a dot net back end. Okay, but they used

568
00:31:51.599 --> 00:31:55.000
<v Speaker 1>Next because they liked the page routing instead of just

569
00:31:55.039 --> 00:31:56.359
<v Speaker 1>straight view on the front end.

570
00:31:57.240 --> 00:32:00.359
<v Speaker 3>Okay, that's fair and a good opportunity for shameless plug.

571
00:32:00.559 --> 00:32:02.480
<v Speaker 3>We do have a Laravell course at the school where

572
00:32:02.480 --> 00:32:04.759
<v Speaker 3>we do that same thing. We use really Ravell for

573
00:32:04.799 --> 00:32:06.480
<v Speaker 3>the back end as an API, yeah, and we use

574
00:32:06.599 --> 00:32:07.440
<v Speaker 3>Next on the front end.

575
00:32:08.519 --> 00:32:10.440
<v Speaker 1>Interesting, okay. Yeah, So my day to day is a

576
00:32:10.480 --> 00:32:13.599
<v Speaker 1>pretty huge app with Laravell and rest APIs that you

577
00:32:13.599 --> 00:32:18.079
<v Speaker 1>know was initially built way back in Q two where

578
00:32:18.079 --> 00:32:20.200
<v Speaker 1>it's all APIs and then the view front end connects

579
00:32:20.240 --> 00:32:22.400
<v Speaker 1>to the back end, you know, through the defined APIs.

580
00:32:23.079 --> 00:32:25.880
<v Speaker 1>I myself, you know, people have heard me talk about this.

581
00:32:26.079 --> 00:32:29.480
<v Speaker 1>I'm a huge fan of Inertia JS if you familiarly

582
00:32:29.519 --> 00:32:32.200
<v Speaker 1>love Inertia. In fact, I had Jonathan on here a

583
00:32:32.200 --> 00:32:35.759
<v Speaker 1>couple of times when Inertia was pretty new, and I

584
00:32:35.799 --> 00:32:37.559
<v Speaker 1>will work with it with Lara Bell Laraval on the

585
00:32:37.559 --> 00:32:39.319
<v Speaker 1>back end, you on the front end, Inertia in the middle,

586
00:32:39.359 --> 00:32:41.000
<v Speaker 1>and it's it's awesome.

587
00:32:41.480 --> 00:32:44.519
<v Speaker 3>Very cool. I've got a colleague just came onto our

588
00:32:44.559 --> 00:32:48.839
<v Speaker 3>team within the like last eight months maybe, and yeah,

589
00:32:48.839 --> 00:32:50.680
<v Speaker 3>he was really big in there. Inertia taught me some

590
00:32:50.720 --> 00:32:53.480
<v Speaker 3>things on it and looks really interesting. I haven't had

591
00:32:53.519 --> 00:32:56.160
<v Speaker 3>the opportunity myself to use it in product.

592
00:32:55.799 --> 00:32:58.359
<v Speaker 1>But yeah, it's really like if you're and if you're

593
00:32:58.359 --> 00:33:00.920
<v Speaker 1>familiar like next is, you know your back end isn't no,

594
00:33:01.039 --> 00:33:03.319
<v Speaker 1>you're writing in no jess if you're doing any back

595
00:33:03.400 --> 00:33:05.200
<v Speaker 1>end right. So for someone like me who comes from

596
00:33:05.240 --> 00:33:10.599
<v Speaker 1>the PHP world and it's familiar with Lara Belle and PHP,

597
00:33:10.759 --> 00:33:13.240
<v Speaker 1>then that's a godsend being able to use something like

598
00:33:13.279 --> 00:33:14.960
<v Speaker 1>that that you're already familiar with and you don't have

599
00:33:15.000 --> 00:33:18.599
<v Speaker 1>to learn, you know, a whole new coding technology. So

600
00:33:18.759 --> 00:33:21.480
<v Speaker 1>a nurse is awesome, and it's it's so fast, it's

601
00:33:21.480 --> 00:33:25.359
<v Speaker 1>crazy how fast it is. So I'd be real curious

602
00:33:25.400 --> 00:33:27.039
<v Speaker 1>to see this course. I don't know if you oh,

603
00:33:27.079 --> 00:33:30.759
<v Speaker 1>you said it's just Laravell with if you're using so,

604
00:33:30.799 --> 00:33:33.480
<v Speaker 1>if you're using Laravell for the back end with Next,

605
00:33:35.039 --> 00:33:37.720
<v Speaker 1>you're still doing the service side rendering because your Laravell

606
00:33:37.759 --> 00:33:42.839
<v Speaker 1>controllers are returning your your content to your next components

607
00:33:43.079 --> 00:33:45.880
<v Speaker 1>and it's fully rendered HTML. That it's I mean you're

608
00:33:45.960 --> 00:33:49.640
<v Speaker 1>using Blade templates for the formatting of HTML or how's

609
00:33:49.680 --> 00:33:50.200
<v Speaker 1>that happening?

610
00:33:50.640 --> 00:33:50.799
<v Speaker 2>Uh?

611
00:33:51.240 --> 00:33:53.839
<v Speaker 3>So it's I'm trying to find the earl here. So

612
00:33:53.960 --> 00:33:56.319
<v Speaker 3>if you just google the name of the course is

613
00:33:56.400 --> 00:34:01.440
<v Speaker 3>Laravelle back ends for JS three, uh, and then view school,

614
00:34:02.319 --> 00:34:06.039
<v Speaker 3>I'm sure you could find it. But the whole approach is, yes,

615
00:34:06.079 --> 00:34:09.280
<v Speaker 3>we're still server do we service side? Remember in the

616
00:34:09.280 --> 00:34:12.199
<v Speaker 3>course we might turn SSR off?

617
00:34:12.679 --> 00:34:14.519
<v Speaker 1>Actually yeah, here it is, okay.

618
00:34:14.280 --> 00:34:16.679
<v Speaker 3>We do. We turn SSR off, but you would you

619
00:34:16.719 --> 00:34:20.119
<v Speaker 3>don't necessarily have to. You could do the server side

620
00:34:20.199 --> 00:34:22.880
<v Speaker 3>rendering a bit. But but basically we used in the course,

621
00:34:22.880 --> 00:34:25.800
<v Speaker 3>we use next just as the client right and as

622
00:34:25.840 --> 00:34:27.679
<v Speaker 3>as the JavaScript runs in the client. And the only

623
00:34:27.679 --> 00:34:29.800
<v Speaker 3>reason we chose to use nexts instead of straight view

624
00:34:30.559 --> 00:34:32.719
<v Speaker 3>was just because of some of the niceties like the

625
00:34:32.760 --> 00:34:34.239
<v Speaker 3>auto imports and things.

626
00:34:34.280 --> 00:34:39.639
<v Speaker 1>Okay, yeah, now I remember from a performance standpoint, one

627
00:34:39.679 --> 00:34:43.880
<v Speaker 1>of the editions that I'm pretty sure it was NEXT

628
00:34:43.880 --> 00:34:47.400
<v Speaker 1>three was Nitro, which is basically a rendering engines. So

629
00:34:48.559 --> 00:34:49.719
<v Speaker 1>can tell us about Nitro.

630
00:34:50.880 --> 00:34:54.199
<v Speaker 3>So, uh, there's kind of this weird like stacking order

631
00:34:54.280 --> 00:34:58.920
<v Speaker 3>of what what builds next and the next core team

632
00:34:59.000 --> 00:35:03.480
<v Speaker 3>actually having a organization now on GitHub called unjs, which

633
00:35:03.639 --> 00:35:07.280
<v Speaker 3>powers a lot of the inner workings of NUTS. But

634
00:35:07.360 --> 00:35:11.079
<v Speaker 3>those those packages that are also available for the wider

635
00:35:11.119 --> 00:35:14.000
<v Speaker 3>community at large to use, and Nitro is one of

636
00:35:14.000 --> 00:35:19.119
<v Speaker 3>those packages. Right, So Nitro is the kind of the

637
00:35:19.159 --> 00:35:23.320
<v Speaker 3>server layer there. It renders your view components on the

638
00:35:23.320 --> 00:35:25.280
<v Speaker 3>server side, of course, and so it's the HTML to

639
00:35:25.400 --> 00:35:28.840
<v Speaker 3>the browser. But the other really cool thing that Nitro

640
00:35:29.119 --> 00:35:32.039
<v Speaker 3>enables the nuxt three project to have out of the

641
00:35:32.079 --> 00:35:35.639
<v Speaker 3>box is API end points. This is something you didn't

642
00:35:35.639 --> 00:35:40.559
<v Speaker 3>have too. So now you just have a folder in

643
00:35:40.599 --> 00:35:44.679
<v Speaker 3>your NUTS project called server, and then you have a

644
00:35:44.719 --> 00:35:49.760
<v Speaker 3>folder inside of that folder called API, and any file

645
00:35:50.000 --> 00:35:55.639
<v Speaker 3>within that directory automatically becomes an API endpoint. So you've

646
00:35:55.679 --> 00:35:58.920
<v Speaker 3>really got the whole, like everything you need to build

647
00:35:58.960 --> 00:36:01.559
<v Speaker 3>a full stack app right there inside of your one

648
00:36:01.719 --> 00:36:04.239
<v Speaker 3>next project. There's no reason to hook it up to

649
00:36:04.440 --> 00:36:07.079
<v Speaker 3>an external API anymore. Of course, you still could, I mean,

650
00:36:07.079 --> 00:36:09.079
<v Speaker 3>there's nothing wrong with that, right We use Layravell in

651
00:36:09.119 --> 00:36:12.519
<v Speaker 3>the course. But if you don't want to have to

652
00:36:12.519 --> 00:36:15.239
<v Speaker 3>manage the separate back end, you can actually have your

653
00:36:15.400 --> 00:36:19.559
<v Speaker 3>entire You can have your rest API and your you know,

654
00:36:19.639 --> 00:36:22.639
<v Speaker 3>and your actually user facing applications all in the same repo,

655
00:36:22.760 --> 00:36:23.880
<v Speaker 3>which is is pretty cool.

656
00:36:24.719 --> 00:36:26.360
<v Speaker 1>So it's sort of a drop in if you have

657
00:36:26.719 --> 00:36:32.320
<v Speaker 1>APIs written for what any CMS online CMS versus maybe

658
00:36:32.360 --> 00:36:36.159
<v Speaker 1>something or even something that you have locally such Lavo,

659
00:36:36.239 --> 00:36:41.920
<v Speaker 1>my XQL or you know, no JS with Mango API

660
00:36:42.000 --> 00:36:43.760
<v Speaker 1>defined or something like that, then you can drop it

661
00:36:43.800 --> 00:36:45.920
<v Speaker 1>in and use it with with next.

662
00:36:46.639 --> 00:36:49.159
<v Speaker 3>Yeah, I wouldn't necessarily say you could drop it in.

663
00:36:49.400 --> 00:36:51.559
<v Speaker 3>I mean it is. They do have their own syntax

664
00:36:51.639 --> 00:36:54.920
<v Speaker 3>right now. Okay for for the API in points. But

665
00:36:55.320 --> 00:36:58.559
<v Speaker 3>if you have the data in a database somewhere, you know,

666
00:36:58.599 --> 00:37:01.559
<v Speaker 3>you can just start interacting with that database directly via

667
00:37:01.639 --> 00:37:04.480
<v Speaker 3>these these API and points and then sending the you know,

668
00:37:04.559 --> 00:37:06.960
<v Speaker 3>the data to your your front end, right.

669
00:37:08.360 --> 00:37:10.320
<v Speaker 1>And so is it sending everything as props? Then? Is

670
00:37:10.360 --> 00:37:13.800
<v Speaker 1>it's how? It's how it's how does it send it

671
00:37:13.800 --> 00:37:14.400
<v Speaker 1>to the front end.

672
00:37:15.079 --> 00:37:18.199
<v Speaker 3>So on your on your view pages. So you talked

673
00:37:18.199 --> 00:37:21.280
<v Speaker 3>about that page file based route in just a moment ago, right,

674
00:37:21.360 --> 00:37:26.000
<v Speaker 3>So uh, in your view components, you call a composable,

675
00:37:26.199 --> 00:37:29.599
<v Speaker 3>a built incomposable called use fetch and it makes a

676
00:37:30.199 --> 00:37:33.679
<v Speaker 3>fetch request and you just pass it the route for

677
00:37:33.719 --> 00:37:35.800
<v Speaker 3>that API end point. Right, So you do slash api,

678
00:37:35.960 --> 00:37:40.000
<v Speaker 3>slash users or slash posts or whatever. So that's how

679
00:37:40.000 --> 00:37:45.000
<v Speaker 3>you connect your view pages to those those API endpoints,

680
00:37:45.000 --> 00:37:49.159
<v Speaker 3>and of course on the server side. On the server side,

681
00:37:49.159 --> 00:37:51.159
<v Speaker 3>when you make that request, it's actually going to skip

682
00:37:51.199 --> 00:37:53.119
<v Speaker 3>the network layer altogether, and it's just going to go

683
00:37:53.159 --> 00:37:57.119
<v Speaker 3>call the function that that API endpoint is is made

684
00:37:57.159 --> 00:37:59.480
<v Speaker 3>up of. But then on the client side, when you're

685
00:37:59.559 --> 00:38:02.679
<v Speaker 3>navigating you know, first page load, it's all server side

686
00:38:02.679 --> 00:38:04.719
<v Speaker 3>rendered and it hydrates. But then as you navigate the

687
00:38:04.760 --> 00:38:08.920
<v Speaker 3>new pages, it's gonna make that request asynchronous lyad right,

688
00:38:10.920 --> 00:38:14.199
<v Speaker 3>So uh, it's it's it's pretty nice. Like it handles

689
00:38:14.239 --> 00:38:18.320
<v Speaker 3>things like you know, serializing your Jason for you, so

690
00:38:19.480 --> 00:38:21.320
<v Speaker 3>like you can just return an object from the API

691
00:38:21.360 --> 00:38:23.039
<v Speaker 3>in point. You don't have to serialize it first or

692
00:38:23.079 --> 00:38:25.039
<v Speaker 3>tell it what kind of data it is or something

693
00:38:25.079 --> 00:38:27.920
<v Speaker 3>like that. You just you return an object. It assumes, okay,

694
00:38:28.000 --> 00:38:31.679
<v Speaker 3>this is this is Jason and things like that. You

695
00:38:31.800 --> 00:38:37.320
<v Speaker 3>also have type safe autocompletions for your for your API

696
00:38:37.480 --> 00:38:39.639
<v Speaker 3>end point route. So if I'm calling U s fetch

697
00:38:39.760 --> 00:38:44.360
<v Speaker 3>on my front end on my page, as soon as

698
00:38:44.400 --> 00:38:46.559
<v Speaker 3>I start typing in the r L, I get a

699
00:38:46.599 --> 00:38:50.840
<v Speaker 3>list of of drop down autocomplete says what endpoints are available, right,

700
00:38:50.880 --> 00:38:53.119
<v Speaker 3>so I can just pick, oh I want API slash

701
00:38:53.199 --> 00:38:56.159
<v Speaker 3>users or I want API slash posts and because it

702
00:38:56.199 --> 00:38:59.239
<v Speaker 3>all exists in the same project, that makes that possible, right.

703
00:39:00.280 --> 00:39:04.159
<v Speaker 1>So yeah, so okay, so you mentioned that it's been

704
00:39:04.880 --> 00:39:09.440
<v Speaker 1>extracted into its own, separate sort of rendering engine. Is

705
00:39:09.480 --> 00:39:15.079
<v Speaker 1>it still geared specifically for view or is it something

706
00:39:15.199 --> 00:39:17.239
<v Speaker 1>that can be used with other front ends? You know?

707
00:39:17.280 --> 00:39:20.320
<v Speaker 1>I think of for instance, VAT. When VS first came out,

708
00:39:20.320 --> 00:39:25.840
<v Speaker 1>the original literation was view only, and then the next

709
00:39:25.920 --> 00:39:28.039
<v Speaker 1>version he said, okay, you can plug and play with anything,

710
00:39:28.039 --> 00:39:31.119
<v Speaker 1>and it's just gone nuts with how many people replace

711
00:39:31.239 --> 00:39:37.239
<v Speaker 1>webpack with with VT and so on. So is unjus

712
00:39:37.400 --> 00:39:39.960
<v Speaker 1>is this the same idea or is it still strictly

713
00:39:39.960 --> 00:39:40.360
<v Speaker 1>for view?

714
00:39:41.519 --> 00:39:44.880
<v Speaker 3>Yeah, it is the same idea. Everything in the UNJS

715
00:39:45.280 --> 00:39:49.119
<v Speaker 3>organization is completely framework agnostic, and indeed other frameworks have

716
00:39:49.199 --> 00:39:53.199
<v Speaker 3>picked up have picked up packages and have built off

717
00:39:53.239 --> 00:39:56.800
<v Speaker 3>them to make their own own thing. I can't remember.

718
00:39:58.079 --> 00:39:59.800
<v Speaker 3>I can't remember what it is, but there was some

719
00:40:00.199 --> 00:40:03.360
<v Speaker 3>other you know how the JavaScript world is frameworks every week,

720
00:40:04.280 --> 00:40:07.679
<v Speaker 3>But there's there's some new framework. I read about recently

721
00:40:07.719 --> 00:40:11.239
<v Speaker 3>that they they built their server layer on top of Nitro.

722
00:40:12.000 --> 00:40:13.800
<v Speaker 3>But yeah, that's that's the approach.

723
00:40:15.239 --> 00:40:17.960
<v Speaker 1>Hmm. Yeah, I've seen that before. I did some work

724
00:40:18.000 --> 00:40:22.360
<v Speaker 1>with another company that had a specific JavaScript form render

725
00:40:22.480 --> 00:40:27.280
<v Speaker 1>everything was rendering forms, and they extracted it, you know,

726
00:40:27.320 --> 00:40:30.320
<v Speaker 1>and made it open source. They had a story where

727
00:40:30.519 --> 00:40:34.239
<v Speaker 1>another company used it and made millions of dollars work,

728
00:40:35.280 --> 00:40:37.679
<v Speaker 1>but they wouldn't even mention the company name when we

729
00:40:37.719 --> 00:40:40.920
<v Speaker 1>talked to them. But uh, yeah, that's cool when you

730
00:40:40.960 --> 00:40:44.000
<v Speaker 1>can extract that use it for other things as well. Yeah,

731
00:40:45.840 --> 00:40:50.199
<v Speaker 1>any other next, next things, new features, you know, anything,

732
00:40:50.400 --> 00:40:54.000
<v Speaker 1>what's coming down the pike with Next three.

733
00:40:54.519 --> 00:41:00.559
<v Speaker 3>I know Next four is coming fairly soon. That's I'm

734
00:41:00.599 --> 00:41:03.280
<v Speaker 3>not totally sure that the biggest thing in Next four

735
00:41:04.000 --> 00:41:06.559
<v Speaker 3>is there's going to be a change to the project structure.

736
00:41:06.719 --> 00:41:07.880
<v Speaker 3>Like a lot of the things that we're in your

737
00:41:07.920 --> 00:41:11.559
<v Speaker 3>root directory for next three will now be nested under

738
00:41:11.760 --> 00:41:16.679
<v Speaker 3>an app directory an app directory for next four. And

739
00:41:16.719 --> 00:41:21.400
<v Speaker 3>I think there's some like typescript benefits to that, like

740
00:41:21.719 --> 00:41:25.800
<v Speaker 3>why you're watching certain files locally or something while you're developing.

741
00:41:25.840 --> 00:41:29.199
<v Speaker 3>Now it can it can focus on just that one

742
00:41:29.239 --> 00:41:31.199
<v Speaker 3>app fold or something. I don't remember exactly what it is,

743
00:41:31.239 --> 00:41:33.760
<v Speaker 3>but it's supposed to make your development process just a

744
00:41:33.800 --> 00:41:36.000
<v Speaker 3>little bit, you know, faster, your your depth serve a

745
00:41:36.039 --> 00:41:37.639
<v Speaker 3>little faster or something like that.

746
00:41:39.079 --> 00:41:40.920
<v Speaker 1>Yeah, so I'm curious. So they're going to do a

747
00:41:41.000 --> 00:41:43.559
<v Speaker 1>next four but still based on View three? Is that?

748
00:41:44.199 --> 00:41:44.360
<v Speaker 3>Yeah?

749
00:41:44.440 --> 00:41:47.159
<v Speaker 1>Right? Because it doesn't sound everything I'm you know, reading,

750
00:41:47.159 --> 00:41:51.440
<v Speaker 1>I was just reading something by Linusborg, uh that you know,

751
00:41:51.559 --> 00:41:54.920
<v Speaker 1>View two two. The three was such a huge you know,

752
00:41:55.039 --> 00:41:58.559
<v Speaker 1>gutting and rewriting of everything and lots of backwards breaking stuff.

753
00:41:58.559 --> 00:42:01.920
<v Speaker 1>Although they did do so. I think it's still sported

754
00:42:01.920 --> 00:42:03.599
<v Speaker 1>the option d API, but it was still so huge.

755
00:42:03.599 --> 00:42:06.679
<v Speaker 1>It sounds like VI four is going to be not

756
00:42:06.800 --> 00:42:12.320
<v Speaker 1>quite as aggressive, shall we say, or changing going forward.

757
00:42:12.440 --> 00:42:15.679
<v Speaker 3>Which is a good thing. Yeah. Yeah, And and I

758
00:42:15.719 --> 00:42:19.320
<v Speaker 3>think the view like where View is at in its

759
00:42:19.360 --> 00:42:23.320
<v Speaker 3>life It's it's stable, and it's well loved, it's it's

760
00:42:23.360 --> 00:42:25.320
<v Speaker 3>easy to use, Like I don't think at this point

761
00:42:25.320 --> 00:42:28.280
<v Speaker 3>in its lifespan you need this this major change like

762
00:42:28.280 --> 00:42:31.320
<v Speaker 3>we had from two to three, right right, which is

763
00:42:31.360 --> 00:42:35.239
<v Speaker 3>great news for developers. It's less things we have to

764
00:42:35.239 --> 00:42:36.159
<v Speaker 3>do to migrate.

765
00:42:37.320 --> 00:42:42.800
<v Speaker 1>And then are probably hopefully you know, sort of encourage

766
00:42:42.800 --> 00:42:46.239
<v Speaker 1>people to upgrade from View two to V three, which

767
00:42:46.280 --> 00:42:50.599
<v Speaker 1>is not a small undertaking undertaking, especially when you deal

768
00:42:50.599 --> 00:42:54.119
<v Speaker 1>with some very large you know, enterprise type applications.

769
00:42:53.480 --> 00:42:57.039
<v Speaker 3>And and everything, depending on the libraries you're using and things.

770
00:42:57.119 --> 00:43:00.480
<v Speaker 1>Oh yeah, absolutely, I do know. And I've mentioned this before.

771
00:43:00.480 --> 00:43:04.639
<v Speaker 1>I think it was two point seven of you had

772
00:43:04.960 --> 00:43:08.000
<v Speaker 1>composition API stuff embedded in it, and the idea being

773
00:43:08.000 --> 00:43:10.119
<v Speaker 1>that you could still be on YouTube but slow sort

774
00:43:10.159 --> 00:43:13.280
<v Speaker 1>of migrate to V three and then you know, throw

775
00:43:13.320 --> 00:43:15.920
<v Speaker 1>the switch in and migrate over to V three from there.

776
00:43:17.000 --> 00:43:20.039
<v Speaker 3>Yep, yep, it's I mean, they definitely made some good

777
00:43:20.039 --> 00:43:24.199
<v Speaker 3>tooling to help help you make that migration. But like

778
00:43:24.280 --> 00:43:27.840
<v Speaker 3>you said, the enterprise level, you know size applications, it's yeah,

779
00:43:27.920 --> 00:43:30.599
<v Speaker 3>it's it's still work and quite a bit of it.

780
00:43:30.840 --> 00:43:33.400
<v Speaker 1>Oh yeah. We have like upwards of probably five six

781
00:43:33.519 --> 00:43:36.840
<v Speaker 1>hundred different components in our View two app alone. That's

782
00:43:36.880 --> 00:43:39.000
<v Speaker 1>been around, you know, for probably ten eleven years. So

783
00:43:39.679 --> 00:43:41.840
<v Speaker 1>it wouldn't be a small undertaking, especially when you start

784
00:43:41.880 --> 00:43:45.119
<v Speaker 1>incorporating you know, typescript, because I tried to mess with

785
00:43:45.119 --> 00:43:47.119
<v Speaker 1>typescript in View two a couple of times and it

786
00:43:47.199 --> 00:43:51.119
<v Speaker 1>was Yeah, it was not a good experience. I mean

787
00:43:51.159 --> 00:43:53.239
<v Speaker 1>it's basically sort of bolted on instead of you know,

788
00:43:53.320 --> 00:43:56.679
<v Speaker 1>built in, right, So it definitely made things a lot

789
00:43:56.719 --> 00:44:00.280
<v Speaker 1>more difficult, but you know that pretty much any thing

790
00:44:00.360 --> 00:44:02.440
<v Speaker 1>large is going to be incorporating tax script anymore.

791
00:44:03.000 --> 00:44:03.239
<v Speaker 3>Yep.

792
00:44:04.320 --> 00:44:08.440
<v Speaker 1>Cool. Anything else you next related that we didn't cover

793
00:44:08.519 --> 00:44:11.880
<v Speaker 1>that you're you're dealing with a view school or covering

794
00:44:12.719 --> 00:44:15.199
<v Speaker 1>mm hmm, well.

795
00:44:15.039 --> 00:44:17.639
<v Speaker 3>I think we just about covered it all, Steve. I

796
00:44:17.920 --> 00:44:20.280
<v Speaker 3>guess I do want to throw in one shameless plug

797
00:44:20.360 --> 00:44:25.119
<v Speaker 3>for our VGs masterclass. Of course, we did release that.

798
00:44:26.360 --> 00:44:29.000
<v Speaker 3>It's a progressively released course, so we started releasing it

799
00:44:29.079 --> 00:44:31.480
<v Speaker 3>back in March of this year, and we're still releasing

800
00:44:31.559 --> 00:44:38.719
<v Speaker 3>lessons where you build a real world application, specifically a

801
00:44:38.719 --> 00:44:41.440
<v Speaker 3>project management app, something like Asana or a Monday or

802
00:44:41.440 --> 00:44:46.039
<v Speaker 3>something like that. So if you are you have the

803
00:44:46.039 --> 00:44:48.760
<v Speaker 3>basics of you down then and you want to kind

804
00:44:48.760 --> 00:44:50.519
<v Speaker 3>of take it to the next level. Uh, this is

805
00:44:50.559 --> 00:44:52.719
<v Speaker 3>a really great course for you.

806
00:44:54.280 --> 00:44:56.920
<v Speaker 1>All right? Cool? Yeah, I've got the you are l

807
00:44:57.000 --> 00:44:58.800
<v Speaker 1>up here on the screen for those who are watching

808
00:44:59.400 --> 00:45:06.199
<v Speaker 1>the view JA three masterclass at Viewschool dot Io. Alrighty uh,

809
00:45:06.400 --> 00:45:09.519
<v Speaker 1>before I forget, if people want to follow you and

810
00:45:09.719 --> 00:45:13.239
<v Speaker 1>give you money and read all your view wisdom, where's

811
00:45:13.280 --> 00:45:14.960
<v Speaker 1>the best places to do that.

812
00:45:16.199 --> 00:45:18.960
<v Speaker 3>I'll have to go set up the donation app right now.

813
00:45:19.480 --> 00:45:22.840
<v Speaker 3>So that sounds like a great idea. Now, you could

814
00:45:22.880 --> 00:45:28.599
<v Speaker 3>follow me on Twitter. I'm Daniel Kelly Underscore Io. That's

815
00:45:28.639 --> 00:45:31.800
<v Speaker 3>where I'm most active, if you can even call me active.

816
00:45:31.840 --> 00:45:35.639
<v Speaker 3>I'm not a huge social media guy, but you can

817
00:45:35.639 --> 00:45:39.480
<v Speaker 3>follow me there. View School is view school io on

818
00:45:39.519 --> 00:45:44.559
<v Speaker 3>Twitter and just you know, just google Daniel Kelly LinkedIn

819
00:45:44.719 --> 00:45:46.599
<v Speaker 3>or view School LinkedIn you'll be able to find us

820
00:45:46.639 --> 00:45:47.119
<v Speaker 3>there as well.

821
00:45:48.079 --> 00:45:51.719
<v Speaker 1>All righty, So with that, we will move on to

822
00:45:52.440 --> 00:45:54.239
<v Speaker 1>Picks picks for part of the show, where we can

823
00:45:54.239 --> 00:45:57.800
<v Speaker 1>talk about whatever we want doesn't necessarily have to be

824
00:45:57.840 --> 00:46:02.880
<v Speaker 1>tech related obviously within recently. AJ, We'll let you go first.

825
00:46:02.960 --> 00:46:04.960
<v Speaker 1>What do you got for us for picks this week?

826
00:46:06.880 --> 00:46:09.159
<v Speaker 2>Oil Boy? Have I got a good one for you?

827
00:46:11.079 --> 00:46:15.559
<v Speaker 2>I don't think I'm gonna take this back, because you know,

828
00:46:15.639 --> 00:46:19.800
<v Speaker 2>sometimes I make recommendations and then a month later I'm like, actually,

829
00:46:19.880 --> 00:46:28.599
<v Speaker 2>that was a bad idea. Okay. Browsers finally, as of

830
00:46:29.079 --> 00:46:34.760
<v Speaker 2>March twenty twenty three, have support for ekmascript modules ubiquitous support,

831
00:46:34.800 --> 00:46:39.559
<v Speaker 2>So whether you're on iPhone or Android, or Chrome or

832
00:46:39.800 --> 00:46:44.840
<v Speaker 2>Edge or Safari or Firefox. As of March twenty twenty three,

833
00:46:45.639 --> 00:46:54.440
<v Speaker 2>all browsers finally support ekmascript modules. That was about eighteen

834
00:46:54.480 --> 00:46:58.400
<v Speaker 2>months ago, and that's my threshold for when I say, okay,

835
00:46:58.400 --> 00:47:00.639
<v Speaker 2>it's safe to use a browser feature, because you know,

836
00:47:00.679 --> 00:47:03.480
<v Speaker 2>a lot of people they haven't had a power outage

837
00:47:03.519 --> 00:47:06.000
<v Speaker 2>in the last eighteen months, and so if they haven't

838
00:47:06.000 --> 00:47:08.880
<v Speaker 2>had a power outage, they haven't like their browser hasn't

839
00:47:08.880 --> 00:47:12.519
<v Speaker 2>been updated yet because they're you know, their computer's still going.

840
00:47:12.599 --> 00:47:14.199
<v Speaker 2>Or maybe if they're on Windows where you know it

841
00:47:14.559 --> 00:47:17.800
<v Speaker 2>like just shuts down the computer no matter what you're doing,

842
00:47:17.840 --> 00:47:20.159
<v Speaker 2>like you're in the middle of typing a document, it's

843
00:47:20.239 --> 00:47:23.400
<v Speaker 2>like shutting down to update. So I guess like within

844
00:47:23.519 --> 00:47:27.320
<v Speaker 2>eighteen months, either people have had a power outage or

845
00:47:27.440 --> 00:47:33.320
<v Speaker 2>their computer has like crashed from pending updates. So with

846
00:47:33.559 --> 00:47:38.119
<v Speaker 2>that on the browser side, we're good to go. We

847
00:47:38.119 --> 00:47:41.800
<v Speaker 2>can use ekmascript modules. We don't need transpilers. It can work.

848
00:47:43.599 --> 00:47:50.719
<v Speaker 2>As of March twenty twenty four, there was a pr

849
00:47:51.280 --> 00:47:57.880
<v Speaker 2>for uh ekmascript support in Node that is now available

850
00:47:57.920 --> 00:48:03.079
<v Speaker 2>as an experimental feature in Node v twenty two. So

851
00:48:04.800 --> 00:48:10.440
<v Speaker 2>I believe that it is now safe to publish ECMAScript

852
00:48:10.480 --> 00:48:15.360
<v Speaker 2>modules without any transpilers. And so you might say, oh,

853
00:48:15.639 --> 00:48:18.960
<v Speaker 2>node notes had notes had support for it forever. No,

854
00:48:19.079 --> 00:48:23.480
<v Speaker 2>it hasn't. Node has only supported note has had the

855
00:48:24.800 --> 00:48:28.559
<v Speaker 2>red blue function problem, the colored function problem, where you

856
00:48:28.599 --> 00:48:33.000
<v Speaker 2>can either use ESM or you can use common JS,

857
00:48:33.280 --> 00:48:35.719
<v Speaker 2>but you can't use both. In almost every module in

858
00:48:35.760 --> 00:48:39.159
<v Speaker 2>the entire ecosystem uses common JS. So the moment that

859
00:48:39.239 --> 00:48:44.000
<v Speaker 2>you introduce an import an ESM dependency, now you break

860
00:48:44.039 --> 00:48:47.679
<v Speaker 2>everything or you have to transpile. But the new feature

861
00:48:47.760 --> 00:48:51.880
<v Speaker 2>flag is that as long as you don't use a

862
00:48:51.960 --> 00:48:54.000
<v Speaker 2>top level of eight. So if you just have an

863
00:48:54.000 --> 00:48:56.480
<v Speaker 2>a knit function or a main function, if there's anything

864
00:48:56.480 --> 00:48:59.000
<v Speaker 2>that you need to do as part of the initialization

865
00:48:59.079 --> 00:49:02.079
<v Speaker 2>of your module, if you're willing to just put that

866
00:49:02.159 --> 00:49:05.760
<v Speaker 2>in a knit function that you export or a main

867
00:49:05.800 --> 00:49:08.199
<v Speaker 2>function that you export, or you know, as long as

868
00:49:08.239 --> 00:49:12.079
<v Speaker 2>you couch that or put it in a caching function

869
00:49:12.159 --> 00:49:15.159
<v Speaker 2>where the first time whatever function needs that thing, you

870
00:49:15.159 --> 00:49:18.119
<v Speaker 2>know it runs as long as you put the top

871
00:49:18.239 --> 00:49:21.960
<v Speaker 2>level a weight inside of an export. So basically, as

872
00:49:22.000 --> 00:49:24.519
<v Speaker 2>long as you don't have a true top level A weight,

873
00:49:26.079 --> 00:49:31.119
<v Speaker 2>you can now require an ESM module from a common

874
00:49:31.199 --> 00:49:34.239
<v Speaker 2>JS module, which means that we no longer have the

875
00:49:34.280 --> 00:49:38.360
<v Speaker 2>red blue function problem. That modules in Node are just

876
00:49:38.480 --> 00:49:42.400
<v Speaker 2>modules except for that one case if they actually have

877
00:49:43.440 --> 00:49:46.440
<v Speaker 2>in the body of the sm a weight whatever, and

878
00:49:46.480 --> 00:49:49.039
<v Speaker 2>I think that I hope, I hope that we can

879
00:49:49.079 --> 00:49:53.559
<v Speaker 2>all agree that it's a sacrifice worth making to move

880
00:49:53.599 --> 00:49:55.760
<v Speaker 2>that a weight into a function that's exported as the

881
00:49:55.760 --> 00:50:00.519
<v Speaker 2>innit function or whatever. So that so that you can

882
00:50:00.559 --> 00:50:05.039
<v Speaker 2>publish a module without transpiling, and it'd be available every now,

883
00:50:05.039 --> 00:50:08.239
<v Speaker 2>of course, since most people are on I would say

884
00:50:08.360 --> 00:50:12.480
<v Speaker 2>most people, since most most popular influencers are now on

885
00:50:12.559 --> 00:50:16.880
<v Speaker 2>the typescript bus. You know, you're not getting away from

886
00:50:16.920 --> 00:50:19.679
<v Speaker 2>the transpiling problem, but you can. That's a topic for

887
00:50:19.719 --> 00:50:22.400
<v Speaker 2>another time. You can have I use the type shirt

888
00:50:22.440 --> 00:50:25.760
<v Speaker 2>checker every day. All of my code is typed. I

889
00:50:25.840 --> 00:50:31.079
<v Speaker 2>even am using cql C with node such that I

890
00:50:31.960 --> 00:50:35.800
<v Speaker 2>had a left join in a sequel statement and sq

891
00:50:35.960 --> 00:50:38.119
<v Speaker 2>c allows you to write the raw sequel and then

892
00:50:38.159 --> 00:50:40.039
<v Speaker 2>generate the code. So rather than writing the code that

893
00:50:40.079 --> 00:50:42.519
<v Speaker 2>generates the sequel, you write the sequel that generates the

894
00:50:42.559 --> 00:50:47.920
<v Speaker 2>code parameterized all that. It's wonderful. I love it. I

895
00:50:47.960 --> 00:50:51.480
<v Speaker 2>had a left join in my SQL code and I

896
00:50:51.599 --> 00:50:55.400
<v Speaker 2>got a type error on one of the things I

897
00:50:55.440 --> 00:50:58.119
<v Speaker 2>was iterating over. It said, you know, error, this can

898
00:50:58.159 --> 00:51:01.800
<v Speaker 2>be null and that was the moment when I felt

899
00:51:01.840 --> 00:51:07.000
<v Speaker 2>we have arrived. Technology is maybe good again, Like maybe

900
00:51:07.039 --> 00:51:10.239
<v Speaker 2>we're on the right track. If I can write sequel

901
00:51:10.360 --> 00:51:15.039
<v Speaker 2>and get a type error from a left joint, maybe

902
00:51:15.360 --> 00:51:19.280
<v Speaker 2>maybe there is a bright future somewhere on the horizon.

903
00:51:20.119 --> 00:51:22.440
<v Speaker 1>So I was wondering when I was able to sleep

904
00:51:22.440 --> 00:51:24.320
<v Speaker 1>better at night lately. That answers my question.

905
00:51:25.800 --> 00:51:30.519
<v Speaker 2>So that's that's my that's my main pick is just that,

906
00:51:32.559 --> 00:51:35.519
<v Speaker 2>And I I am you know, I don't know how

907
00:51:35.559 --> 00:51:37.800
<v Speaker 2>many experimental features have made it all the way to

908
00:51:37.840 --> 00:51:40.320
<v Speaker 2>the point where they have a flag and are properly

909
00:51:40.360 --> 00:51:43.320
<v Speaker 2>documented in everything, and then don't make it in. But

910
00:51:43.440 --> 00:51:46.119
<v Speaker 2>this seems like a no brainer. So I'm I'm willing

911
00:51:46.239 --> 00:51:50.239
<v Speaker 2>to put my my eggs in this basket and say

912
00:51:51.000 --> 00:51:57.039
<v Speaker 2>it's time to use ESM imports. But for please, please,

913
00:51:57.079 --> 00:51:59.599
<v Speaker 2>for the love of all that is holy and and heavenly,

914
00:51:59.679 --> 00:52:02.920
<v Speaker 2>and say in this world, just use one default export.

915
00:52:03.360 --> 00:52:07.280
<v Speaker 2>Don't have a billion trillion exports. Please. But that said,

916
00:52:08.360 --> 00:52:11.559
<v Speaker 2>this is something I'm excited about. Uh. There have been

917
00:52:11.559 --> 00:52:14.480
<v Speaker 2>headaches around this for a long time because of the bundlers,

918
00:52:14.599 --> 00:52:18.360
<v Speaker 2>not because of the browser. Because of the bundlers. It's

919
00:52:18.360 --> 00:52:21.920
<v Speaker 2>been a pain in the butt to get isomorphic code

920
00:52:21.920 --> 00:52:24.199
<v Speaker 2>working in both note in the browser. The browser's super

921
00:52:24.239 --> 00:52:25.920
<v Speaker 2>easy to do, and note it's super easy to do.

922
00:52:25.960 --> 00:52:27.719
<v Speaker 2>You don't need to require SHIM or any of that.

923
00:52:28.119 --> 00:52:31.039
<v Speaker 2>You just need a simple ore. But because of the

924
00:52:31.039 --> 00:52:34.840
<v Speaker 2>way that the bundlers do the window detection versus the

925
00:52:34.840 --> 00:52:39.239
<v Speaker 2>global dis detection versus, there's all this crap that you

926
00:52:39.480 --> 00:52:42.320
<v Speaker 2>like boilerplate. There's like six lines of boilerplate that you

927
00:52:42.360 --> 00:52:45.400
<v Speaker 2>have to have in order to get a common JS

928
00:52:45.400 --> 00:52:48.559
<v Speaker 2>module that would otherwise work. Find a note in the

929
00:52:48.559 --> 00:52:52.599
<v Speaker 2>browser without any problem, without hardly like with one line

930
00:52:52.599 --> 00:52:56.920
<v Speaker 2>literally one line of quote unquote boilerplate for the bundlers.

931
00:52:57.000 --> 00:53:00.159
<v Speaker 2>Yet it's it's atrocious because they all do it wrong.

932
00:53:00.199 --> 00:53:03.679
<v Speaker 2>They don't follow this BAC. They don't anyway. But yeah,

933
00:53:03.800 --> 00:53:08.280
<v Speaker 2>so I'm I believe. I believe from today onward, I

934
00:53:08.360 --> 00:53:13.920
<v Speaker 2>will be writing es M import and export. And I

935
00:53:13.960 --> 00:53:16.840
<v Speaker 2>know that that went way over there are alloted two minutes. Oops.

936
00:53:17.400 --> 00:53:20.199
<v Speaker 1>Oops. So another we can blame Flow at Progressive for

937
00:53:20.239 --> 00:53:26.639
<v Speaker 1>all the problems for those who don't understand. In the America,

938
00:53:26.679 --> 00:53:30.239
<v Speaker 1>we have these insurance commercials down named Flow always talking

939
00:53:30.280 --> 00:53:31.519
<v Speaker 1>about bundling insurance.

940
00:53:31.599 --> 00:53:33.119
<v Speaker 3>So they're everywhere.

941
00:53:33.440 --> 00:53:37.519
<v Speaker 1>That's what comes to my mind. Unfortunately, was that it? AJ.

942
00:53:39.239 --> 00:53:43.159
<v Speaker 2>I'm hoping you're gonna field the best dad joke ever,

943
00:53:44.159 --> 00:53:49.039
<v Speaker 2>the best tech the best tech dad joke ever. Yeah, okay,

944
00:53:49.119 --> 00:53:51.159
<v Speaker 2>all right, are you gonna do it or do I

945
00:53:51.199 --> 00:53:53.719
<v Speaker 2>need to do it for you?

946
00:53:54.039 --> 00:53:56.199
<v Speaker 1>Oh yeah? Oh yeah, So let's talk about that. So,

947
00:53:57.159 --> 00:54:00.480
<v Speaker 1>for those who follow me on Twitter, AJ made an

948
00:54:01.199 --> 00:54:04.480
<v Speaker 1>attempt at a dad joke that apparently went over my

949
00:54:04.599 --> 00:54:08.440
<v Speaker 1>head and so I just finally got it explained to

950
00:54:08.480 --> 00:54:11.119
<v Speaker 1>me this morning before we came on. So you want

951
00:54:11.119 --> 00:54:13.719
<v Speaker 1>to explain it, AJ, And for those who are maybe

952
00:54:13.719 --> 00:54:15.480
<v Speaker 1>those who are less dense than I will get it.

953
00:54:16.920 --> 00:54:19.239
<v Speaker 2>I think it just is your experience, not that's this.

954
00:54:19.400 --> 00:54:25.599
<v Speaker 2>But oh so Steve was talking to me and he said,

955
00:54:26.400 --> 00:54:29.159
<v Speaker 2>what do you think about SQL migrators AJ? And I said, well,

956
00:54:29.199 --> 00:54:31.599
<v Speaker 2>you know, they have their ups and downs.

957
00:54:33.039 --> 00:54:36.920
<v Speaker 1>Wait sorry, sorry, sorry, I was pulling up a tweet

958
00:54:38.920 --> 00:54:43.000
<v Speaker 1>and getting because yeah, I didn't get the migration tools

959
00:54:43.000 --> 00:54:46.119
<v Speaker 1>I've used, didn't don't use the updown, up and down terminology,

960
00:54:46.199 --> 00:54:49.079
<v Speaker 1>and and so I missed it and I felt sorry.

961
00:54:49.239 --> 00:54:51.480
<v Speaker 1>It is it a for effort, though I appreciate the

962
00:54:51.519 --> 00:54:54.159
<v Speaker 1>thought going to the dad joke. Whenever you see that,

963
00:54:54.159 --> 00:54:56.800
<v Speaker 1>that's that tells me that you're learning.

964
00:55:00.239 --> 00:55:01.239
<v Speaker 2>Speaking to my heart.

965
00:55:02.719 --> 00:55:06.360
<v Speaker 1>Speaking of dad jokes of the week, let's see. This

966
00:55:06.400 --> 00:55:10.239
<v Speaker 1>one's a little long, but hopefully you'll get the It's

967
00:55:10.400 --> 00:55:12.719
<v Speaker 1>maybe a little more visual, but that's what I got

968
00:55:12.719 --> 00:55:21.760
<v Speaker 1>for this week. So imagine this thing was Monday, Greg, Tuesday, Ian, Wednesday, Greg, Thursday, Ian, Friday, Greg, Saturday, Ian,

969
00:55:21.880 --> 00:55:30.599
<v Speaker 1>Sunday Greg. That is known as the Gregorian calendar. Right.

970
00:55:32.039 --> 00:55:34.519
<v Speaker 1>I was talking to my friend one day not too

971
00:55:34.519 --> 00:55:36.519
<v Speaker 1>long ago, and I said, you know, I used to

972
00:55:36.559 --> 00:55:38.719
<v Speaker 1>be a heavy drinker and he said, oh, you stopped drinking.

973
00:55:38.719 --> 00:55:39.840
<v Speaker 1>He said, no, I just lost weight.

974
00:55:42.559 --> 00:55:44.000
<v Speaker 3>I saw that one on Twitter the other day.

975
00:55:45.199 --> 00:55:47.599
<v Speaker 1>Yeah, I wrote that Originally I really like I write

976
00:55:47.599 --> 00:55:52.639
<v Speaker 1>all my dad jokes and then finally, did you know?

977
00:55:52.920 --> 00:55:55.800
<v Speaker 1>It's funny when you die, people cry and they're upset

978
00:55:55.800 --> 00:55:57.320
<v Speaker 1>and they beg for you to come back, but when

979
00:55:57.360 --> 00:56:05.880
<v Speaker 1>you do, they freak out. So those are the dad

980
00:56:05.960 --> 00:56:08.719
<v Speaker 1>jokes of the week. All right, Daniel, your turn. What

981
00:56:08.760 --> 00:56:10.960
<v Speaker 1>do you got for us? Uh?

982
00:56:11.039 --> 00:56:15.440
<v Speaker 3>So picks? Uh, I'm gonna go with a book pick.

983
00:56:15.639 --> 00:56:18.480
<v Speaker 3>I have been listening to a book called The fairy

984
00:56:18.519 --> 00:56:20.679
<v Speaker 3>Tale because he actually reads books anymore.

985
00:56:21.079 --> 00:56:21.199
<v Speaker 2>Uh.

986
00:56:21.440 --> 00:56:25.199
<v Speaker 3>Listen to it, uh through Spotify and it's by Stephen King.

987
00:56:25.679 --> 00:56:29.000
<v Speaker 3>Definitely recommend checking that out if you're you're into Stephen King.

988
00:56:29.920 --> 00:56:32.039
<v Speaker 3>Very very well written book and it hasn't gotten to

989
00:56:32.119 --> 00:56:35.280
<v Speaker 3>the creepy part yet, but like there's a little hints

990
00:56:35.280 --> 00:56:38.400
<v Speaker 3>of it in there and it's very intriguing. So definitely

991
00:56:38.400 --> 00:56:39.119
<v Speaker 3>recommend that one.

992
00:56:39.320 --> 00:56:41.719
<v Speaker 1>Yeah, you know, Stephen King, you gotta expect some level

993
00:56:41.719 --> 00:56:42.920
<v Speaker 1>of creepiness.

994
00:56:42.440 --> 00:56:47.400
<v Speaker 3>Right, absolutely, absolutely, as far as I'm gonna do. I'm

995
00:56:47.440 --> 00:56:49.840
<v Speaker 3>gonna throw a music pick in here as well, because

996
00:56:49.880 --> 00:56:53.840
<v Speaker 3>I've had an earworm for the past week. I'm a

997
00:56:53.960 --> 00:56:58.039
<v Speaker 3>nineties kid. Does anybody remember Yellow Card? Does that band

998
00:56:58.119 --> 00:56:58.960
<v Speaker 3>named ls?

999
00:56:59.639 --> 00:57:00.000
<v Speaker 1>Yeah?

1000
00:57:00.159 --> 00:57:02.199
<v Speaker 3>Us? Yes, all right?

1001
00:57:02.400 --> 00:57:04.679
<v Speaker 2>Is that is that the her hair is everywhere? Or

1002
00:57:04.760 --> 00:57:05.039
<v Speaker 2>is that?

1003
00:57:05.880 --> 00:57:10.280
<v Speaker 3>No? No, no, her hair is not everywhere? Believe? No, no, no.

1004
00:57:10.519 --> 00:57:13.880
<v Speaker 3>What was the name of it? The very popular one? Man?

1005
00:57:14.119 --> 00:57:16.400
<v Speaker 3>I can't even remember the most potful one they have.

1006
00:57:16.440 --> 00:57:18.400
<v Speaker 3>I think it was called Believe, but I'm not singing

1007
00:57:18.440 --> 00:57:18.880
<v Speaker 3>it for you.

1008
00:57:21.400 --> 00:57:22.000
<v Speaker 1>Uh.

1009
00:57:22.079 --> 00:57:25.679
<v Speaker 3>Yeah, that's been my earworm for the past week. Very

1010
00:57:25.920 --> 00:57:30.079
<v Speaker 3>you know, heavy guitars. They have violin in there, which

1011
00:57:30.119 --> 00:57:31.519
<v Speaker 3>is really interesting.

1012
00:57:31.920 --> 00:57:34.000
<v Speaker 2>You know. I love that I think that that's the best.

1013
00:57:34.039 --> 00:57:36.360
<v Speaker 2>When when Hello Maybe came out, that was one of

1014
00:57:36.360 --> 00:57:38.199
<v Speaker 2>the things that I thought was so great. I love

1015
00:57:38.840 --> 00:57:43.880
<v Speaker 2>orchestral crossover in any music, be it punk or rap

1016
00:57:43.960 --> 00:57:46.320
<v Speaker 2>or anything. I love orchestral crossovers.

1017
00:57:46.480 --> 00:57:48.960
<v Speaker 3>Oh it's it's beautiful because you have h I mean,

1018
00:57:48.960 --> 00:57:52.960
<v Speaker 3>they live. They have a violinist in their band, and

1019
00:57:53.000 --> 00:57:55.239
<v Speaker 3>so she'll do this like solo, violent thing, and then

1020
00:57:55.280 --> 00:57:58.400
<v Speaker 3>the the whole band will kick in and it's really

1021
00:57:58.480 --> 00:58:02.239
<v Speaker 3>cool selling. But I think Believe is the name of

1022
00:58:02.559 --> 00:58:04.079
<v Speaker 3>one of the most popular.

1023
00:58:03.599 --> 00:58:08.880
<v Speaker 1>Songs, Okay, Believe by Yellow Card. I was not familiar

1024
00:58:08.920 --> 00:58:11.519
<v Speaker 1>with that band, but then I wasn't really listening to

1025
00:58:11.559 --> 00:58:12.840
<v Speaker 1>a lot of radio in the indies.

1026
00:58:14.800 --> 00:58:16.800
<v Speaker 3>If you remember a story of the year. They kind

1027
00:58:16.800 --> 00:58:19.159
<v Speaker 3>of remind me of them slightly, just a little less.

1028
00:58:19.400 --> 00:58:27.760
<v Speaker 1>Screamy, less screamy, more musical. That's right, cool, alrighty, Well,

1029
00:58:27.920 --> 00:58:29.639
<v Speaker 1>thank you Daniel for coming on. It's been good to

1030
00:58:29.719 --> 00:58:31.679
<v Speaker 1>have you. It's been good to talk to you on

1031
00:58:31.880 --> 00:58:35.840
<v Speaker 1>JavaScript Ever. We've already talked about where people can give

1032
00:58:35.880 --> 00:58:41.159
<v Speaker 1>you money, So thanks everybody for watching and listening, and

1033
00:58:41.360 --> 00:58:43.559
<v Speaker 1>we will talk to you next time on JavaScript Ever.
