WEBVTT

1
00:00:05.280 --> 00:00:08.919
<v Speaker 1>Hey, folks, welcome back to another episode of JavaScript Jabber.

2
00:00:09.240 --> 00:00:11.759
<v Speaker 2>This week, on our panel, we have Steve Edwards.

3
00:00:11.960 --> 00:00:13.880
<v Speaker 3>You know, from a cold and rainy Portland, which is

4
00:00:13.919 --> 00:00:15.199
<v Speaker 3>typical for this time of year.

5
00:00:16.199 --> 00:00:19.640
<v Speaker 4>A j O'Neil yo ya yo, coming at you live

6
00:00:19.960 --> 00:00:23.800
<v Speaker 4>from a beautiful day in the shed.

7
00:00:24.800 --> 00:00:28.000
<v Speaker 3>I thought it was the purple room.

8
00:00:28.079 --> 00:00:30.120
<v Speaker 4>It changes every time, you know that.

9
00:00:30.320 --> 00:00:31.719
<v Speaker 3>No, it doesn't. It's always purple.

10
00:00:32.439 --> 00:00:35.600
<v Speaker 4>Well yeah, I mean it's obviously it's purple for those

11
00:00:35.640 --> 00:00:36.399
<v Speaker 4>that can see.

12
00:00:36.920 --> 00:00:43.520
<v Speaker 2>Right. Yeah, he won't tell us.

13
00:00:43.399 --> 00:00:45.359
<v Speaker 1>Where he is, but folks just look at the counting

14
00:00:45.399 --> 00:00:48.679
<v Speaker 1>records that he Healan's house. I'm Charles Maxwood from Top

15
00:00:48.719 --> 00:00:53.320
<v Speaker 1>End Devs and we have a special guest this week,

16
00:00:53.359 --> 00:00:55.600
<v Speaker 1>and that's Corey Brown. Corey, do you want to say

17
00:00:55.600 --> 00:00:58.920
<v Speaker 1>hello and let people know who you are and kind

18
00:00:58.920 --> 00:00:59.960
<v Speaker 1>of what your background is?

19
00:01:00.640 --> 00:01:04.799
<v Speaker 5>Sure? Hi, Corey Brown, I'm coming at you from Saint

20
00:01:04.920 --> 00:01:07.719
<v Speaker 5>George currently, not where I regularly live. That's where I

21
00:01:07.760 --> 00:01:08.480
<v Speaker 5>am right now.

22
00:01:09.200 --> 00:01:10.719
<v Speaker 2>It's supposed to be warm down there.

23
00:01:11.040 --> 00:01:13.560
<v Speaker 5>It's warmer than where I Yeah, it's warmer than up north,

24
00:01:13.599 --> 00:01:15.280
<v Speaker 5>that's for sure, which is why we're here.

25
00:01:15.439 --> 00:01:17.319
<v Speaker 3>I have a friend that lives down there. I'm always

26
00:01:17.359 --> 00:01:17.879
<v Speaker 3>so jealous.

27
00:01:18.439 --> 00:01:19.359
<v Speaker 5>It's it's love.

28
00:01:21.159 --> 00:01:21.359
<v Speaker 4>Yeah.

29
00:01:21.439 --> 00:01:25.400
<v Speaker 5>I I am a well currently I'm architect at a

30
00:01:25.400 --> 00:01:29.239
<v Speaker 5>place called Omni. We are a GPM company, JP Morgan Company,

31
00:01:31.000 --> 00:01:33.439
<v Speaker 5>and I've been in the industry for about fifteen years.

32
00:01:33.920 --> 00:01:38.200
<v Speaker 5>I enjoy speaking and sometimes on occasion, arguing with people

33
00:01:38.239 --> 00:01:39.519
<v Speaker 5>about childscript stuff.

34
00:01:41.319 --> 00:01:43.799
<v Speaker 1>Yeah, you picked a fight with our friend Dan and

35
00:01:43.840 --> 00:01:46.760
<v Speaker 1>then he ran away.

36
00:01:47.959 --> 00:01:50.680
<v Speaker 2>That's right. Well it was either that or he had

37
00:01:50.680 --> 00:01:51.599
<v Speaker 2>something else going on.

38
00:01:51.680 --> 00:01:55.040
<v Speaker 5>But you know, it reminded me of the argument and

39
00:01:55.079 --> 00:01:57.959
<v Speaker 5>a Family Guy where the rich guy rolls up and

40
00:01:58.000 --> 00:02:02.200
<v Speaker 5>he says, oh, Reginald, I disagree and peels off those

41
00:02:02.319 --> 00:02:03.599
<v Speaker 5>kind of the extent of the argument.

42
00:02:05.120 --> 00:02:05.480
<v Speaker 3>Ouch.

43
00:02:06.480 --> 00:02:08.199
<v Speaker 2>Yeah. Yeah.

44
00:02:08.240 --> 00:02:13.280
<v Speaker 1>So anyway, so yeah, from what I am gathering, and

45
00:02:13.319 --> 00:02:15.599
<v Speaker 1>it looks like AJ was part of the conversation on

46
00:02:15.639 --> 00:02:18.960
<v Speaker 1>Twitter as well, and so you all can tell me

47
00:02:19.000 --> 00:02:19.919
<v Speaker 1>where I get this wrong.

48
00:02:20.360 --> 00:02:21.439
<v Speaker 2>But there was a conversation.

49
00:02:23.400 --> 00:02:26.319
<v Speaker 1>AJ was suggesting maybe we do an episode on some

50
00:02:26.360 --> 00:02:31.719
<v Speaker 1>of the less understood dom APIs, and then Dan asked

51
00:02:31.759 --> 00:02:36.080
<v Speaker 1>the question, do React developers really need to understand the

52
00:02:36.159 --> 00:02:38.560
<v Speaker 1>dom APIs because React does a lot of these things

53
00:02:38.560 --> 00:02:43.759
<v Speaker 1>for you, and you said, yeah, they do, and he

54
00:02:43.919 --> 00:02:47.039
<v Speaker 1>kind of disagreed and So the idea was you could

55
00:02:47.039 --> 00:02:53.120
<v Speaker 1>come on and that conversation with you, and then he

56
00:02:53.560 --> 00:02:55.360
<v Speaker 1>ran away because you're so intimidating.

57
00:02:55.360 --> 00:02:57.080
<v Speaker 2>I think it's weird, but it's.

58
00:02:56.960 --> 00:02:59.039
<v Speaker 5>Got to be. It's very a little bit of gray

59
00:02:59.159 --> 00:03:01.240
<v Speaker 5>right there. Really, Oh, you rus really know what he's

60
00:03:01.240 --> 00:03:01.719
<v Speaker 5>talking about.

61
00:03:02.280 --> 00:03:05.400
<v Speaker 2>That's right. You've got a real gray beard in the house, folks.

62
00:03:06.039 --> 00:03:11.319
<v Speaker 1>So anyway, let me know if I missed anything important there,

63
00:03:11.400 --> 00:03:14.639
<v Speaker 1>and then if you or AJ want to chime in

64
00:03:14.800 --> 00:03:16.560
<v Speaker 1>and give us a little more context.

65
00:03:16.599 --> 00:03:18.719
<v Speaker 2>We get going on talking about this because I think

66
00:03:18.719 --> 00:03:21.479
<v Speaker 2>it'll be interesting. Yeah.

67
00:03:21.680 --> 00:03:23.199
<v Speaker 5>I think that's the sum of it. And had I

68
00:03:23.280 --> 00:03:26.759
<v Speaker 5>known that you could get on this podcast just with

69
00:03:27.080 --> 00:03:29.919
<v Speaker 5>a simple I don't think that's quite right comment, that

70
00:03:29.960 --> 00:03:31.280
<v Speaker 5>would have done it a long time ago.

71
00:03:35.120 --> 00:03:39.719
<v Speaker 1>But no, it's good, all right. So yeah, so is

72
00:03:39.759 --> 00:03:42.120
<v Speaker 1>there anything more to it? Did miss anything?

73
00:03:43.639 --> 00:03:43.800
<v Speaker 4>No?

74
00:03:43.800 --> 00:03:45.639
<v Speaker 5>I think I think that is the That was the

75
00:03:45.639 --> 00:03:49.560
<v Speaker 5>conversation we had on Twitter. But you know, should I

76
00:03:49.560 --> 00:03:52.159
<v Speaker 5>guess the premise of the argument is should dude react?

77
00:03:52.159 --> 00:03:54.520
<v Speaker 5>Developers need really need to understand the dom is is

78
00:03:54.599 --> 00:03:59.319
<v Speaker 5>react sufficient for your needs? I think there's there's a

79
00:03:59.360 --> 00:04:06.840
<v Speaker 5>bigger question under that. More like, given the rise and

80
00:04:06.879 --> 00:04:12.719
<v Speaker 5>the universality essentially a frameworks out there. The NILA jobscript

81
00:04:12.719 --> 00:04:17.000
<v Speaker 5>crowd has grown increasingly smaller. So given that you really

82
00:04:17.560 --> 00:04:19.160
<v Speaker 5>a lot of people make the argument you really can't

83
00:04:19.199 --> 00:04:22.600
<v Speaker 5>do jobscript work anymore without working inside of a framework. Therefore,

84
00:04:22.680 --> 00:04:26.120
<v Speaker 5>do you need to know the platform upon which that

85
00:04:26.120 --> 00:04:30.199
<v Speaker 5>framework is built or those frameworks sufficient to accomplish everything

86
00:04:30.240 --> 00:04:32.600
<v Speaker 5>you need? Do you want to live in the abstraction

87
00:04:32.800 --> 00:04:34.319
<v Speaker 5>or do you need to be able to dive down

88
00:04:34.399 --> 00:04:39.279
<v Speaker 5>into the metal Sometimes, at least that's the way I

89
00:04:39.279 --> 00:04:40.800
<v Speaker 5>am thinking about the problem.

90
00:04:40.560 --> 00:04:47.000
<v Speaker 1>The question, and your answer, it seems is obviously, yeah,

91
00:04:47.079 --> 00:04:49.399
<v Speaker 1>sometimes you need to get into the metal. So do

92
00:04:49.439 --> 00:04:52.639
<v Speaker 1>you have examples or do you have an argument for that?

93
00:04:53.279 --> 00:04:53.519
<v Speaker 4>Yeah?

94
00:04:53.639 --> 00:04:55.800
<v Speaker 5>Actually I had. It was interesting just a couple of

95
00:04:55.879 --> 00:04:59.720
<v Speaker 5>days after that conversation, which made it sound like it

96
00:04:59.759 --> 00:05:02.079
<v Speaker 5>was a it was a monumental thing. It was kind

97
00:05:02.079 --> 00:05:04.879
<v Speaker 5>of a passing thing. But with that said, just a

98
00:05:04.879 --> 00:05:08.000
<v Speaker 5>couple of days later, I was working on a problem

99
00:05:09.199 --> 00:05:16.680
<v Speaker 5>and just it was attaching a pop over a drop

100
00:05:16.720 --> 00:05:22.040
<v Speaker 5>down and kind of anchoring it to a to an element,

101
00:05:23.000 --> 00:05:26.879
<v Speaker 5>and I was refactoring something that'd done this, and the

102
00:05:26.920 --> 00:05:32.160
<v Speaker 5>original the old version was using just pure react as

103
00:05:32.240 --> 00:05:33.879
<v Speaker 5>much as React as they could, so using all the

104
00:05:33.920 --> 00:05:35.959
<v Speaker 5>hooks and all that stuff. And even then you have

105
00:05:36.040 --> 00:05:39.360
<v Speaker 5>to you have to do some some event listening. Even

106
00:05:39.360 --> 00:05:41.360
<v Speaker 5>when you're trying to go completely into React, you have

107
00:05:41.399 --> 00:05:43.040
<v Speaker 5>to do event listening, so you ad event listener on

108
00:05:43.079 --> 00:05:47.920
<v Speaker 5>scroll and and that sort of stuff. But in the refactor,

109
00:05:48.000 --> 00:05:50.279
<v Speaker 5>I just ripped all of that stuff out and I

110
00:05:50.279 --> 00:05:54.600
<v Speaker 5>did a very simple event listener on scroll and an

111
00:05:54.680 --> 00:06:01.680
<v Speaker 5>event listener on on resize and use the same handler

112
00:06:01.720 --> 00:06:06.279
<v Speaker 5>for both. And it was not The previous version had

113
00:06:06.279 --> 00:06:08.439
<v Speaker 5>a lot of bugs. It would not track well, it

114
00:06:08.439 --> 00:06:11.319
<v Speaker 5>would drift, and when things things would get out of whack.

115
00:06:11.920 --> 00:06:14.720
<v Speaker 5>Ripping all of that framework stuff out and dropping just

116
00:06:14.839 --> 00:06:20.199
<v Speaker 5>down into the very simple I mean scroll eventlisteners and

117
00:06:20.519 --> 00:06:24.199
<v Speaker 5>reset event listeners are not like new domain pies. They're

118
00:06:24.240 --> 00:06:28.399
<v Speaker 5>super they've been around forever. But just leaning on those

119
00:06:29.959 --> 00:06:31.720
<v Speaker 5>like fixed all of the bugs that had with it.

120
00:06:31.720 --> 00:06:34.800
<v Speaker 5>It is now buttery smooth. And it was kind of

121
00:06:34.800 --> 00:06:40.399
<v Speaker 5>a lesson that these frameworks they're designed to do something

122
00:06:40.680 --> 00:06:44.079
<v Speaker 5>that like a specific thing, and when you're doing what

123
00:06:44.120 --> 00:06:45.839
<v Speaker 5>those things are designed to do, they work really well

124
00:06:45.879 --> 00:06:48.800
<v Speaker 5>and you should lean into them, but they they aren't

125
00:06:48.800 --> 00:06:54.519
<v Speaker 5>designed to do everything, and when you try to force

126
00:06:54.600 --> 00:06:57.800
<v Speaker 5>that square peg into that round hole. For everything you

127
00:06:57.879 --> 00:07:00.879
<v Speaker 5>try to do and you are not aware of your

128
00:07:00.920 --> 00:07:03.959
<v Speaker 5>disregard the platform upon which it's built, which is designed

129
00:07:03.959 --> 00:07:08.959
<v Speaker 5>to do a slightly different thing, you can you over complicated. Actually,

130
00:07:09.000 --> 00:07:12.319
<v Speaker 5>I was just reading this morning. I was rereading out

131
00:07:12.319 --> 00:07:16.199
<v Speaker 5>of the tar Pit that that old article I can't

132
00:07:16.199 --> 00:07:19.920
<v Speaker 5>remember the author's names. That's really about complexity, about the

133
00:07:19.920 --> 00:07:24.160
<v Speaker 5>difference between necessary complexity and unnecessary complexity, and depending what

134
00:07:24.160 --> 00:07:25.879
<v Speaker 5>you're trying to do with the frameworks, can introduce a lot

135
00:07:25.879 --> 00:07:30.879
<v Speaker 5>of unnecessary complexity. And that's what I found. That's what

136
00:07:30.879 --> 00:07:32.560
<v Speaker 5>I happened then was fifteen years.

137
00:07:33.360 --> 00:07:35.480
<v Speaker 3>You know, check I have to add the obligatory joke

138
00:07:35.519 --> 00:07:39.439
<v Speaker 3>in here that this seems like a really overreaction.

139
00:07:39.759 --> 00:07:41.160
<v Speaker 5>Oh to this question.

140
00:07:41.680 --> 00:07:47.560
<v Speaker 3>Wow, there it is, But you know, I mean, so Corey,

141
00:07:47.680 --> 00:07:51.800
<v Speaker 3>My background is I started out with PHP straight PHP World,

142
00:07:51.839 --> 00:07:53.680
<v Speaker 3>and I got into droupil for a while and then

143
00:07:53.959 --> 00:07:57.399
<v Speaker 3>Angular and View. I have never played with React myself,

144
00:07:59.120 --> 00:08:03.360
<v Speaker 3>but to me, I'm like, my answer to this question

145
00:08:03.519 --> 00:08:08.199
<v Speaker 3>is duh, yes, you need to know both. I'm just like, yeah,

146
00:08:08.319 --> 00:08:11.439
<v Speaker 3>how would you not need to know the underlying basics?

147
00:08:11.480 --> 00:08:15.399
<v Speaker 3>Of any given language. There's no way that any framework

148
00:08:15.720 --> 00:08:19.720
<v Speaker 3>I think, is going to be able to do everything

149
00:08:19.759 --> 00:08:23.439
<v Speaker 3>that the underlying platform can do. And you know, I

150
00:08:23.519 --> 00:08:26.079
<v Speaker 3>listened to as woke as he is. I still listen

151
00:08:26.120 --> 00:08:29.680
<v Speaker 3>to Chrispherd Nandy quite a bit, and you know, I

152
00:08:29.720 --> 00:08:31.800
<v Speaker 3>get his newsletter. He makes a lot of great points.

153
00:08:31.879 --> 00:08:33.799
<v Speaker 3>You know, you listen to other podcasts and people talk

154
00:08:33.840 --> 00:08:37.279
<v Speaker 3>about using the platform. You know, use the platform, use

155
00:08:37.320 --> 00:08:40.879
<v Speaker 3>the dom APIs, use what's already there, and even in

156
00:08:41.000 --> 00:08:46.919
<v Speaker 3>view and uh and uh Lara Bell and Drupel. You know,

157
00:08:46.919 --> 00:08:49.039
<v Speaker 3>there's a lot of helper functions. There's a lot of

158
00:08:49.039 --> 00:08:51.279
<v Speaker 3>things that will do stuff. But time and time again,

159
00:08:52.200 --> 00:08:54.559
<v Speaker 3>you just got to get down to the basics and

160
00:08:54.679 --> 00:08:57.440
<v Speaker 3>use some of the basic tools. I mean, a framework's

161
00:08:57.480 --> 00:09:00.200
<v Speaker 3>not going to do everything, and why should it, you know.

162
00:09:00.279 --> 00:09:03.919
<v Speaker 5>Yeah, yeah, and more than that, a few more things.

163
00:09:03.919 --> 00:09:05.840
<v Speaker 5>I add a little bit of color to that. So

164
00:09:05.879 --> 00:09:09.559
<v Speaker 5>the original the new one uses the new popover API.

165
00:09:10.039 --> 00:09:11.480
<v Speaker 5>I don't know if any of you guys know of

166
00:09:11.519 --> 00:09:13.639
<v Speaker 5>it or used it. It's fantastic, it's lovely.

167
00:09:14.200 --> 00:09:15.440
<v Speaker 2>I keep wanting to play with it.

168
00:09:15.519 --> 00:09:17.360
<v Speaker 3>Yeah, I've seen a lot about it, haven't had a

169
00:09:17.440 --> 00:09:19.639
<v Speaker 3>chance to get down and use it yet, because that's

170
00:09:19.639 --> 00:09:21.840
<v Speaker 3>a you know, that's one thing that javascripts had to

171
00:09:21.840 --> 00:09:23.919
<v Speaker 3>do a lot of anytime of pop up, pubble or

172
00:09:24.000 --> 00:09:27.440
<v Speaker 3>stuff with dialogues, modals, whether it's date pickers, you know,

173
00:09:27.639 --> 00:09:29.639
<v Speaker 3>you name it, that's always something jobscripts.

174
00:09:29.679 --> 00:09:31.440
<v Speaker 1>I saw that was in the spec and I was

175
00:09:31.519 --> 00:09:33.879
<v Speaker 1>just like, oh, my life just got better.

176
00:09:33.960 --> 00:09:38.240
<v Speaker 5>But oh it's it's a delight. And ninety percent of

177
00:09:38.279 --> 00:09:40.759
<v Speaker 5>the code I was able to eliminate from the pure

178
00:09:40.799 --> 00:09:44.279
<v Speaker 5>React version was just state management, which again goes back

179
00:09:44.360 --> 00:09:48.120
<v Speaker 5>to the out of the Tarpet article where it identifies

180
00:09:48.360 --> 00:09:51.159
<v Speaker 5>this primary source of a necessary complexity of state management.

181
00:09:52.279 --> 00:09:54.679
<v Speaker 5>And you can just eliminate all of that. You do

182
00:09:54.759 --> 00:09:56.840
<v Speaker 5>not have to worry about it. And so you have

183
00:09:56.919 --> 00:09:59.600
<v Speaker 5>the scroll handlers and the research handlers. But the thing

184
00:09:59.639 --> 00:10:02.559
<v Speaker 5>that really reduced the complexity of it entirely was the

185
00:10:02.559 --> 00:10:06.039
<v Speaker 5>pop over API, which is not a vailable it's not

186
00:10:06.120 --> 00:10:08.480
<v Speaker 5>a React thing, it's a platform thing.

187
00:10:09.320 --> 00:10:09.480
<v Speaker 2>Right.

188
00:10:10.080 --> 00:10:13.279
<v Speaker 5>It reminds me very much of I mean, you guys,

189
00:10:13.759 --> 00:10:18.200
<v Speaker 5>I'm sure you all remember the the left pad incident.

190
00:10:19.960 --> 00:10:23.039
<v Speaker 3>Comes up with eight lines or something like that. Yeah,

191
00:10:23.240 --> 00:10:24.120
<v Speaker 3>the Internet.

192
00:10:23.799 --> 00:10:26.759
<v Speaker 1>But can you give people context because I'm sure we

193
00:10:26.799 --> 00:10:27.399
<v Speaker 1>have listeners.

194
00:10:27.519 --> 00:10:31.200
<v Speaker 5>Yeah sure, so I okay, So I love jobscript I

195
00:10:31.200 --> 00:10:32.799
<v Speaker 5>love the jobs community. I have been doing it for

196
00:10:32.840 --> 00:10:35.960
<v Speaker 5>fifteen years. I have I've learned of the languages, but

197
00:10:36.000 --> 00:10:38.840
<v Speaker 5>I have only ever been professionally paid to write JavaScript.

198
00:10:40.799 --> 00:10:44.559
<v Speaker 5>And but one thing that the jobscrip community does, I

199
00:10:44.600 --> 00:10:48.960
<v Speaker 5>think poorly or has done poorly is an over reliance

200
00:10:49.120 --> 00:10:53.960
<v Speaker 5>on abstractions, overliance on libraries, overliance on on frameworks.

201
00:10:54.279 --> 00:10:56.879
<v Speaker 1>What is not just a JavaScript problem. I'm just gonna

202
00:10:56.879 --> 00:10:59.360
<v Speaker 1>point that out. No, everybody does this.

203
00:11:00.200 --> 00:11:03.279
<v Speaker 5>Well there, Yeah, I think the some do it better

204
00:11:03.279 --> 00:11:08.759
<v Speaker 5>than others, but fair but yeah, So what it happened

205
00:11:08.919 --> 00:11:11.960
<v Speaker 5>is in this over aliance on on foremeworks, you know,

206
00:11:12.000 --> 00:11:17.919
<v Speaker 5>the hyper hyperrization of don't repeat yourself. We have created

207
00:11:18.000 --> 00:11:19.879
<v Speaker 5>libraries so we never have to write the same thing

208
00:11:19.919 --> 00:11:23.559
<v Speaker 5>over and over. Of course, so I'm tangenting a little bit.

209
00:11:23.960 --> 00:11:26.080
<v Speaker 5>The libraries end up all the overhead of importing it

210
00:11:26.080 --> 00:11:27.519
<v Speaker 5>and do this all their stuff, end up writing more

211
00:11:27.559 --> 00:11:30.440
<v Speaker 5>code sometimes then it would be just to write the thing.

212
00:11:30.480 --> 00:11:35.639
<v Speaker 5>In this case, that's exactly so. This library literally pads

213
00:11:36.279 --> 00:11:38.919
<v Speaker 5>the left side of a string, so the beginning of

214
00:11:38.960 --> 00:11:41.399
<v Speaker 5>a string with some characters that you give it right.

215
00:11:42.039 --> 00:11:44.360
<v Speaker 5>Turns out that there has been for a very long

216
00:11:44.399 --> 00:11:47.320
<v Speaker 5>time a native way to do this in JavaScript, but

217
00:11:47.840 --> 00:11:51.519
<v Speaker 5>we designed a lot of people decide yeah, shocker, a

218
00:11:51.559 --> 00:11:54.120
<v Speaker 5>lot of people decided, no, no, we're gonna use library because

219
00:11:54.519 --> 00:11:56.519
<v Speaker 5>because this is going to be better tested. I don't

220
00:11:56.519 --> 00:11:57.799
<v Speaker 5>really understand the logical.

221
00:11:57.639 --> 00:12:03.960
<v Speaker 4>Well, I think that pads start came after left pad

222
00:12:04.360 --> 00:12:07.440
<v Speaker 4>it may. I think that pad start was one of

223
00:12:07.480 --> 00:12:11.679
<v Speaker 4>the when they were calling it ECMAScript six where they

224
00:12:11.679 --> 00:12:15.120
<v Speaker 4>were just before they went hogwild crazy, and they were

225
00:12:15.159 --> 00:12:19.440
<v Speaker 4>just introducing things that the language actually needed. That was

226
00:12:19.559 --> 00:12:22.440
<v Speaker 4>around the time that pad start was introduced, and then

227
00:12:22.440 --> 00:12:25.240
<v Speaker 4>of course that didn't get implemented by browsers until what

228
00:12:25.399 --> 00:12:28.399
<v Speaker 4>you know, six years later or whatever, because they prioritized

229
00:12:28.840 --> 00:12:31.000
<v Speaker 4>dumb stuff that we don't need over stuff that we

230
00:12:31.039 --> 00:12:31.919
<v Speaker 4>actually do need.

231
00:12:33.840 --> 00:12:36.200
<v Speaker 5>In any case of the time, at the time this happened,

232
00:12:37.600 --> 00:12:41.039
<v Speaker 5>pad start was has art had already been a jobscript

233
00:12:41.039 --> 00:12:45.600
<v Speaker 5>for some time. So yeah, if if and this gets

234
00:12:45.759 --> 00:12:48.840
<v Speaker 5>the problem of like transit dependencies and deep dependencies and stuff.

235
00:12:49.000 --> 00:12:50.279
<v Speaker 5>A lot of people didn't even know that they had

236
00:12:50.320 --> 00:12:54.679
<v Speaker 5>a dependency on this library. So what happens is this

237
00:12:54.919 --> 00:12:58.200
<v Speaker 5>the owner of this library, uh, for reasons I don't recall,

238
00:12:58.240 --> 00:13:03.559
<v Speaker 5>and history we'll probably forget, got upset and pulled his

239
00:13:03.919 --> 00:13:07.159
<v Speaker 5>his library and at the time INPM allowed you to

240
00:13:07.200 --> 00:13:10.120
<v Speaker 5>do this. He just belieted it, and all of a sudden,

241
00:13:10.200 --> 00:13:12.519
<v Speaker 5>everybody's builds in the entire.

242
00:13:12.399 --> 00:13:13.799
<v Speaker 2>Yeah, the internet world.

243
00:13:14.399 --> 00:13:16.559
<v Speaker 5>Well everyone said the Internet broke. The Internet never broke

244
00:13:17.799 --> 00:13:22.519
<v Speaker 5>the builds. Everybody's build it would Yeah, well the pre

245
00:13:22.639 --> 00:13:25.600
<v Speaker 5>release part of the web break. So nobody's site went down,

246
00:13:26.159 --> 00:13:29.480
<v Speaker 5>but nobody could deliver anything anymore either. For a little while.

247
00:13:29.559 --> 00:13:32.320
<v Speaker 5>They could figure this out, and it was it was

248
00:13:32.360 --> 00:13:35.679
<v Speaker 5>a huge joke in the whole software community. Oh job ascript.

249
00:13:36.320 --> 00:13:38.200
<v Speaker 5>You know, they don't know what they're doing over there,

250
00:13:39.200 --> 00:13:43.519
<v Speaker 5>which is probably something great true, But so anyway, so

251
00:13:43.519 --> 00:13:44.600
<v Speaker 5>that's how it all went down.

252
00:13:45.480 --> 00:13:47.559
<v Speaker 2>Yep, as I recall.

253
00:13:47.639 --> 00:13:51.120
<v Speaker 1>Right, So the point you're making then is if people

254
00:13:51.200 --> 00:13:56.679
<v Speaker 1>had been relying on the underlying core API of start

255
00:13:56.759 --> 00:14:00.440
<v Speaker 1>pad instead of using the left pad library read, then

256
00:14:00.519 --> 00:14:02.320
<v Speaker 1>their stuff would have just kept on work.

257
00:14:02.960 --> 00:14:05.919
<v Speaker 5>It goes, it goes deeper than that, even because to

258
00:14:05.919 --> 00:14:09.720
<v Speaker 5>to AJ's point, if you it the if you look

259
00:14:09.720 --> 00:14:12.000
<v Speaker 5>at the the if you ever looked at the code

260
00:14:12.039 --> 00:14:16.840
<v Speaker 5>for left pad, it was very, very few lines of codes. Yeah,

261
00:14:16.960 --> 00:14:20.200
<v Speaker 5>very simple, very straightforward. Anyone could have wrote this, but

262
00:14:20.200 --> 00:14:23.279
<v Speaker 5>we used the library instead. Instead of everyone writing writing

263
00:14:23.279 --> 00:14:25.559
<v Speaker 5>it themselves, writing their own utility library, we used a

264
00:14:25.600 --> 00:14:29.039
<v Speaker 5>third party library, which created a dependency on someone else, who,

265
00:14:29.200 --> 00:14:35.399
<v Speaker 5>at their own whims could do whatever they wanted our

266
00:14:36.200 --> 00:14:40.600
<v Speaker 5>our insistence on like outsourcing our code. This way that

267
00:14:40.759 --> 00:14:45.440
<v Speaker 5>the simple code kind of created this problem. Everyone could

268
00:14:45.440 --> 00:14:50.720
<v Speaker 5>have written their own left pad and then updated as

269
00:14:50.840 --> 00:14:55.440
<v Speaker 5>they felt ready to to pat start when it came

270
00:14:55.480 --> 00:14:59.159
<v Speaker 5>into JavaScript. But instead it got very deeply, deeply deeply

271
00:14:59.200 --> 00:15:03.759
<v Speaker 5>into these dependencies that nobody even knew was there. We

272
00:15:03.799 --> 00:15:06.080
<v Speaker 5>don't keep up, we don't update our stuff. They didn't,

273
00:15:06.120 --> 00:15:08.080
<v Speaker 5>you know, left pad didn't update there to use the

274
00:15:08.159 --> 00:15:10.159
<v Speaker 5>native or anything like that. And so we got into

275
00:15:10.159 --> 00:15:13.440
<v Speaker 5>the system where there's these blind corners of things that

276
00:15:13.480 --> 00:15:15.440
<v Speaker 5>were relying on. We have no idea what we're relying

277
00:15:15.480 --> 00:15:18.799
<v Speaker 5>on them, because we've outsourced even the simplest of stuff.

278
00:15:19.879 --> 00:15:23.120
<v Speaker 1>I can I clarify something here, because what you're pointing

279
00:15:23.159 --> 00:15:26.919
<v Speaker 1>out is not just the people who like in their

280
00:15:27.000 --> 00:15:30.799
<v Speaker 1>project said I need left pad right. It was a

281
00:15:30.840 --> 00:15:32.919
<v Speaker 1>dependency of a whole bunch of the other library. So

282
00:15:33.000 --> 00:15:34.879
<v Speaker 1>even if they were making the kind of decision that

283
00:15:34.879 --> 00:15:37.720
<v Speaker 1>you're talking about where they're saying, you know what, something

284
00:15:37.799 --> 00:15:40.559
<v Speaker 1>like left pad, it's simple. It's simple for me to

285
00:15:40.559 --> 00:15:43.240
<v Speaker 1>write my own little library that does it, or you know,

286
00:15:43.559 --> 00:15:47.559
<v Speaker 1>if I'm late enough, i can use the native JavaScript

287
00:15:47.600 --> 00:15:48.559
<v Speaker 1>API that does it.

288
00:15:49.399 --> 00:15:51.639
<v Speaker 2>But I had other things that.

289
00:15:51.559 --> 00:15:55.799
<v Speaker 1>Were solving more complex problems for me that also relied

290
00:15:55.840 --> 00:15:58.360
<v Speaker 1>on left pad. So even if I was making some

291
00:15:58.399 --> 00:16:01.879
<v Speaker 1>of these better decisions, I still fell prey to this

292
00:16:02.000 --> 00:16:04.840
<v Speaker 1>because my my other underlying stuff wouldn't build.

293
00:16:05.200 --> 00:16:10.600
<v Speaker 5>That's right, because because of a more of a community problem.

294
00:16:10.639 --> 00:16:14.919
<v Speaker 5>I guess, uh, we we as a community have kind

295
00:16:14.960 --> 00:16:18.559
<v Speaker 5>of fall into this and so yeah, uh, which which

296
00:16:18.600 --> 00:16:23.000
<v Speaker 5>is why I do think that like dependencies come with

297
00:16:23.240 --> 00:16:26.279
<v Speaker 5>a certain amount of cost, it's often very hidden that

298
00:16:26.320 --> 00:16:28.879
<v Speaker 5>we don't we don't acknowledge, we don't recognize. I'm not

299
00:16:28.919 --> 00:16:31.360
<v Speaker 5>saying we shouldn't have dependencies, we shouldn't rely on frameworks

300
00:16:31.440 --> 00:16:33.720
<v Speaker 5>or libraries. We definitely should. There are great things that

301
00:16:33.759 --> 00:16:36.759
<v Speaker 5>come with them, But but to do so too often

302
00:16:36.879 --> 00:16:39.720
<v Speaker 5>or without acknowledging that there is that there's a cost

303
00:16:39.759 --> 00:16:44.519
<v Speaker 5>associated with that I think has bitten us as a

304
00:16:44.519 --> 00:16:47.919
<v Speaker 5>community and individually several times, and we still haven't learned

305
00:16:47.960 --> 00:16:50.279
<v Speaker 5>the lesson that maybe we should be a little bit

306
00:16:50.320 --> 00:16:54.120
<v Speaker 5>more intentional about the the dependencies that we bring on board.

307
00:16:55.159 --> 00:16:58.120
<v Speaker 1>Right, So let let me summarize a little bit because

308
00:16:58.120 --> 00:16:59.480
<v Speaker 1>I have some thoughts here too, but I want to

309
00:16:59.480 --> 00:17:01.639
<v Speaker 1>make sure that we've kind of covered what you've already covered.

310
00:17:02.039 --> 00:17:06.039
<v Speaker 1>So you've basically pointed out that you can use the

311
00:17:06.079 --> 00:17:10.119
<v Speaker 1>dom APIs to simplify the path that your code takes

312
00:17:10.160 --> 00:17:12.559
<v Speaker 1>and get more reliable results.

313
00:17:13.200 --> 00:17:14.319
<v Speaker 2>You've pointed out that.

314
00:17:16.240 --> 00:17:18.799
<v Speaker 1>Depending on somebody else's code can wind up causing you

315
00:17:18.880 --> 00:17:21.799
<v Speaker 1>issues if they change things in a way that you

316
00:17:21.839 --> 00:17:28.599
<v Speaker 1>don't expect, including having the library go away. One thing

317
00:17:28.599 --> 00:17:30.440
<v Speaker 1>that I've picked up on some of this, right, So

318
00:17:30.640 --> 00:17:34.759
<v Speaker 1>I've I've learned not not I guess at the level

319
00:17:34.759 --> 00:17:36.680
<v Speaker 1>where I was getting paid to do it, you know,

320
00:17:36.680 --> 00:17:40.880
<v Speaker 1>I've learned angular, I've learned view, I've learned react, mostly

321
00:17:40.920 --> 00:17:43.400
<v Speaker 1>because I was doing the podcast and I wanted to

322
00:17:44.039 --> 00:17:46.119
<v Speaker 1>sound like I knew what I was talking about, because

323
00:17:46.200 --> 00:17:47.920
<v Speaker 1>I at least kind of knew what I was talking about,

324
00:17:50.519 --> 00:17:52.880
<v Speaker 1>and in those cases that I as I was picking

325
00:17:52.960 --> 00:17:55.119
<v Speaker 1>things up, and also with with my history with like

326
00:17:55.200 --> 00:17:57.680
<v Speaker 1>Ruby on rails or some of the other you know

327
00:17:57.759 --> 00:18:00.200
<v Speaker 1>systems or frameworks that I've used a lot of time.

328
00:18:00.240 --> 00:18:02.440
<v Speaker 1>When you're learning them, they give you a way of

329
00:18:02.519 --> 00:18:04.880
<v Speaker 1>doing things, and so you kind of do things the

330
00:18:05.160 --> 00:18:07.920
<v Speaker 1>React way for a lack of a better way of

331
00:18:08.119 --> 00:18:11.119
<v Speaker 1>doing it, right, And as you build those apps, it's

332
00:18:11.160 --> 00:18:14.160
<v Speaker 1>often appropriate for you just to use those and not

333
00:18:14.240 --> 00:18:17.279
<v Speaker 1>think too deeply about, Hey, is there a simpler way

334
00:18:17.319 --> 00:18:19.000
<v Speaker 1>to do this or is there a better way to

335
00:18:19.039 --> 00:18:22.759
<v Speaker 1>do this? And so there's a lot of value in

336
00:18:22.839 --> 00:18:28.039
<v Speaker 1>kind of doing the accepted happy pathway that the framework

337
00:18:28.079 --> 00:18:33.480
<v Speaker 1>gives you, right. And I think this is where Dan

338
00:18:33.720 --> 00:18:37.079
<v Speaker 1>is saying, you know, for a lot of developers, if

339
00:18:37.119 --> 00:18:40.920
<v Speaker 1>they never learn deeply learn a lot of these dominpis,

340
00:18:41.160 --> 00:18:43.799
<v Speaker 1>they're gonna be fine. They're gonna be able to write

341
00:18:43.799 --> 00:18:46.759
<v Speaker 1>code that works. It's you're gonna be able to deliver

342
00:18:47.000 --> 00:18:47.880
<v Speaker 1>working features.

343
00:18:49.400 --> 00:18:53.599
<v Speaker 2>Is this just I mean, is that wrong?

344
00:18:54.119 --> 00:18:57.400
<v Speaker 1>Or is there a certain point you get to where

345
00:18:57.519 --> 00:19:00.079
<v Speaker 1>all of a sudden it's becomes really really valuable to

346
00:19:00.200 --> 00:19:03.960
<v Speaker 1>know these APIs Or is there some other X factor

347
00:19:04.039 --> 00:19:07.240
<v Speaker 1>that you know about that I'm not thinking of that

348
00:19:07.640 --> 00:19:10.279
<v Speaker 1>makes the difference right that It's like it's like Okay,

349
00:19:10.480 --> 00:19:13.680
<v Speaker 1>you're totally good using the react way until you have

350
00:19:13.759 --> 00:19:16.759
<v Speaker 1>to do this or until this changes, or until your

351
00:19:16.759 --> 00:19:18.400
<v Speaker 1>code is a certain size or whatever.

352
00:19:19.680 --> 00:19:20.359
<v Speaker 3>I think.

353
00:19:20.480 --> 00:19:23.359
<v Speaker 5>I think people in situation. Life is complicated, so there's

354
00:19:23.359 --> 00:19:29.319
<v Speaker 5>no there's no one answer here. But obviously you can

355
00:19:31.519 --> 00:19:36.319
<v Speaker 5>you can be productive in straight react or straight view

356
00:19:36.400 --> 00:19:38.960
<v Speaker 5>or straight angular, whatever it is. You can get some

357
00:19:39.000 --> 00:19:43.240
<v Speaker 5>stuff done, particularly if you're kind of a junior engineer.

358
00:19:44.720 --> 00:19:46.559
<v Speaker 2>But good get paid, right.

359
00:19:46.839 --> 00:19:51.480
<v Speaker 5>Right, exactly right. There's a there's an element of practicality there, immediacy,

360
00:19:51.759 --> 00:19:54.960
<v Speaker 5>immediate practicality. But I'm reminded of my actually of my

361
00:19:55.359 --> 00:20:01.799
<v Speaker 5>calculus classes in college. CALC one we spent an entire

362
00:20:01.839 --> 00:20:07.240
<v Speaker 5>semester going over how how to do by hand like

363
00:20:07.319 --> 00:20:12.759
<v Speaker 5>derivatives and summations and all this stuff. And it was yeah, yeah, yeah,

364
00:20:12.759 --> 00:20:13.400
<v Speaker 5>it was so hard.

365
00:20:13.400 --> 00:20:15.119
<v Speaker 2>I'll get my mom on the show. She teaches this

366
00:20:15.240 --> 00:20:15.920
<v Speaker 2>at the high school.

367
00:20:16.920 --> 00:20:18.279
<v Speaker 3>This is giving me nightmares.

368
00:20:19.079 --> 00:20:22.160
<v Speaker 5>But then I had I had the same teacher for

369
00:20:22.319 --> 00:20:26.000
<v Speaker 5>first in CALC one, Cup two, and the second semester

370
00:20:26.039 --> 00:20:29.559
<v Speaker 5>we went into CALC two. On day one, he said, okay,

371
00:20:30.000 --> 00:20:33.960
<v Speaker 5>so last semester we learned all this stuff. Now I'm

372
00:20:33.960 --> 00:20:35.559
<v Speaker 5>going to show you how to do that real fast,

373
00:20:35.799 --> 00:20:38.720
<v Speaker 5>and in five minutes he taught the entirety of CALC

374
00:20:38.799 --> 00:20:42.880
<v Speaker 5>one with some simple like do this, you know, move

375
00:20:42.920 --> 00:20:45.400
<v Speaker 5>this down here and do this multip and that's it,

376
00:20:45.480 --> 00:20:47.920
<v Speaker 5>and everyone grown. And he just got a kick out

377
00:20:47.960 --> 00:20:50.400
<v Speaker 5>doing that every year. You could tell because he taught

378
00:20:50.440 --> 00:20:53.839
<v Speaker 5>the entirety of CALC one in five minutes in CALC two.

379
00:20:54.440 --> 00:20:57.359
<v Speaker 5>But then he pointed out, like why did I why

380
00:20:57.359 --> 00:20:59.039
<v Speaker 5>did we go through all this stuff? It's important to

381
00:20:59.119 --> 00:21:02.759
<v Speaker 5>understand why and how we got to this point because

382
00:21:02.759 --> 00:21:04.279
<v Speaker 5>I can just show it to you do this and

383
00:21:04.319 --> 00:21:06.559
<v Speaker 5>it works, but you don't know why it works. But

384
00:21:06.640 --> 00:21:08.799
<v Speaker 5>now you do. You had calkawan, you know why it works.

385
00:21:08.839 --> 00:21:11.839
<v Speaker 5>You have you can now have inferences and understandings that

386
00:21:11.880 --> 00:21:14.079
<v Speaker 5>you wouldn't have had otherwise. And this is exactly the

387
00:21:14.079 --> 00:21:16.279
<v Speaker 5>same thing when you when you jump into a framework

388
00:21:16.279 --> 00:21:19.279
<v Speaker 5>and you learn the frameworkisms, the reactisms or the anbulisms,

389
00:21:19.359 --> 00:21:22.640
<v Speaker 5>whatever it is, you can be productive. You know, the

390
00:21:22.799 --> 00:21:26.880
<v Speaker 5>incantations to make to produce something, but that's what they are.

391
00:21:26.880 --> 00:21:30.920
<v Speaker 5>They're incantations. If you know the platform, if you begin

392
00:21:31.000 --> 00:21:33.759
<v Speaker 5>to understand how is this thing built, what is it

393
00:21:33.880 --> 00:21:38.039
<v Speaker 5>doing under the hood, it ceases to become incantations and

394
00:21:38.079 --> 00:21:40.759
<v Speaker 5>it starts to become recipes and you say, oh, okay, cool,

395
00:21:40.799 --> 00:21:43.119
<v Speaker 5>that's a cool bread recipe. I'm going to do this

396
00:21:43.160 --> 00:21:46.160
<v Speaker 5>thing and create like an orange loaf or a sour

397
00:21:46.240 --> 00:21:51.160
<v Speaker 5>dough or whatever it is. Whereas if you're just heads

398
00:21:51.160 --> 00:21:54.440
<v Speaker 5>down this, you don't exactly know how bread is produced

399
00:21:54.519 --> 00:21:57.359
<v Speaker 5>or how your application is, how it functions under the hood.

400
00:21:57.359 --> 00:22:00.759
<v Speaker 5>It's it's you're less useful than you could be.

401
00:22:01.640 --> 00:22:03.640
<v Speaker 3>Well you know, yeah, I mean this is like music

402
00:22:03.680 --> 00:22:05.160
<v Speaker 3>to my ears, and I could probably talk for a

403
00:22:05.160 --> 00:22:08.119
<v Speaker 3>half hour with examples of how all this is true,

404
00:22:08.200 --> 00:22:12.039
<v Speaker 3>going from my days and literally in banking and tech

405
00:22:12.079 --> 00:22:15.880
<v Speaker 3>support and anything. The more you know the platform you know,

406
00:22:16.240 --> 00:22:19.480
<v Speaker 3>the more function the more the better you can do

407
00:22:19.640 --> 00:22:21.920
<v Speaker 3>just because you know how things go underneath and you're

408
00:22:21.920 --> 00:22:25.000
<v Speaker 3>not relying on layers and layers on top of things.

409
00:22:25.359 --> 00:22:28.440
<v Speaker 3>But I think you know and not even when it's

410
00:22:28.480 --> 00:22:31.920
<v Speaker 3>when you're building stuff. The bigger issue that you're going

411
00:22:31.960 --> 00:22:34.799
<v Speaker 3>to come across those when you're trying to troubleshoot. So

412
00:22:35.240 --> 00:22:38.119
<v Speaker 3>if something breaks and you have no clue how it's

413
00:22:38.160 --> 00:22:41.640
<v Speaker 3>functioning underneath, then how are you going to fix the problem. Yep,

414
00:22:41.720 --> 00:22:43.759
<v Speaker 3>you know where are you going to look at? What

415
00:22:43.799 --> 00:22:45.440
<v Speaker 3>are you going to look at? I can, you know,

416
00:22:45.599 --> 00:22:49.640
<v Speaker 3>vouch for any time I've been whether it's tech support,

417
00:22:49.839 --> 00:22:51.960
<v Speaker 3>whether it's you know, being as a developer, and I've

418
00:22:51.960 --> 00:22:54.079
<v Speaker 3>written stuff and I've had to go back and fix it,

419
00:22:54.720 --> 00:22:56.839
<v Speaker 3>you know, right, I'm today, I'm you know, better in

420
00:22:56.880 --> 00:22:58.480
<v Speaker 3>this day, and I'm going to be fixing some bugs

421
00:22:58.480 --> 00:23:00.839
<v Speaker 3>in a in a out aplication that I have. But

422
00:23:00.960 --> 00:23:03.200
<v Speaker 3>I know where to go. I know pretty sure I

423
00:23:03.200 --> 00:23:04.880
<v Speaker 3>know where to fix it because I know how it

424
00:23:04.960 --> 00:23:09.599
<v Speaker 3>functions underneath the hood. And you know the example I've

425
00:23:09.640 --> 00:23:12.880
<v Speaker 3>given before, not to belabor this one is language. You know,

426
00:23:12.920 --> 00:23:16.759
<v Speaker 3>I'm a Spanish speaker, and to me, learning language came easy,

427
00:23:17.200 --> 00:23:20.839
<v Speaker 3>but the way I learned it was learning verbs. Learning

428
00:23:20.920 --> 00:23:24.519
<v Speaker 3>now is learning how verbs are conjugated, learning the rules

429
00:23:25.039 --> 00:23:28.640
<v Speaker 3>of the language. Instead of the people that amaze me,

430
00:23:29.079 --> 00:23:32.559
<v Speaker 3>you know that can learn conversational They can come in

431
00:23:32.599 --> 00:23:35.039
<v Speaker 3>and just take some you know, quote unquote conversational classes

432
00:23:35.039 --> 00:23:37.319
<v Speaker 3>where they learn phrases and start of piece them together,

433
00:23:37.359 --> 00:23:40.640
<v Speaker 3>but they really don't know the underlying rules and concepts

434
00:23:40.680 --> 00:23:44.039
<v Speaker 3>of how those sentences are put together. So that's always

435
00:23:44.079 --> 00:23:47.279
<v Speaker 3>been my tendency, but I mean just to validate what

436
00:23:47.279 --> 00:23:50.759
<v Speaker 3>you're saying. Yeah, anytime you know the underlying details and

437
00:23:50.839 --> 00:23:53.000
<v Speaker 3>concepts of how something is put together, you're going to

438
00:23:53.079 --> 00:23:56.000
<v Speaker 3>be much better not only at developing, but also figuring

439
00:23:56.039 --> 00:23:58.240
<v Speaker 3>out bugs because bugs are going to happen if you're

440
00:23:58.240 --> 00:24:00.680
<v Speaker 3>not writing. If you're writing, bug free, cod would let

441
00:24:00.759 --> 00:24:02.079
<v Speaker 3>me know. And I want to know how you do it,

442
00:24:02.400 --> 00:24:04.920
<v Speaker 3>because it doesn't happen very often.

443
00:24:05.640 --> 00:24:09.039
<v Speaker 1>So I want to jump in here because I feel

444
00:24:09.039 --> 00:24:13.279
<v Speaker 1>like there's still a little bit of nuance or play

445
00:24:13.359 --> 00:24:19.519
<v Speaker 1>within this argument, right, And I'm going to use fixing

446
00:24:19.559 --> 00:24:23.240
<v Speaker 1>cars as an example, right, just because it's kind of

447
00:24:23.279 --> 00:24:24.599
<v Speaker 1>a concrete thing that people understand.

448
00:24:24.680 --> 00:24:24.839
<v Speaker 2>Right.

449
00:24:24.880 --> 00:24:30.839
<v Speaker 1>And so when I married my wife, I knew how

450
00:24:30.839 --> 00:24:32.000
<v Speaker 1>to change the oil on my car.

451
00:24:32.079 --> 00:24:33.480
<v Speaker 2>That was about it, right.

452
00:24:34.279 --> 00:24:37.480
<v Speaker 1>And her dad knows how to change I mean, pick

453
00:24:37.480 --> 00:24:40.880
<v Speaker 1>a thing on the car, right, he can make it fixed.

454
00:24:41.519 --> 00:24:43.960
<v Speaker 1>And you know, and so the first time our car

455
00:24:44.039 --> 00:24:47.319
<v Speaker 1>broke down, he came up and we pulled it out

456
00:24:47.319 --> 00:24:47.960
<v Speaker 1>and put it back in.

457
00:24:48.240 --> 00:24:50.160
<v Speaker 2>You know, we fixed it, We replaced the part.

458
00:24:50.920 --> 00:24:54.880
<v Speaker 1>And you know, I was proficient at making bolts go

459
00:24:54.960 --> 00:24:58.559
<v Speaker 1>in and out right, and so you know I could

460
00:24:58.559 --> 00:25:00.839
<v Speaker 1>I could open the clamps or whatever you know on

461
00:25:00.960 --> 00:25:03.400
<v Speaker 1>hoses or you know. So I could do all of

462
00:25:03.440 --> 00:25:07.000
<v Speaker 1>those things, and so for a lot of the simple things,

463
00:25:07.039 --> 00:25:09.880
<v Speaker 1>I really, I really was okay fixing my own car,

464
00:25:10.920 --> 00:25:13.640
<v Speaker 1>but the issue came in when I had to diagnose

465
00:25:13.759 --> 00:25:16.839
<v Speaker 1>the actual problem. And in fact, I'm still kind of

466
00:25:16.839 --> 00:25:18.640
<v Speaker 1>at the point where about half the time, if I

467
00:25:18.720 --> 00:25:20.559
<v Speaker 1>run into a problem with my car, I call him

468
00:25:20.599 --> 00:25:23.519
<v Speaker 1>up and say, this is what's what it's doing. It's

469
00:25:25.680 --> 00:25:28.400
<v Speaker 1>He goes, oh, that sounds like the whatever, right, And

470
00:25:28.480 --> 00:25:30.319
<v Speaker 1>so then I can go figure out how to change

471
00:25:30.319 --> 00:25:33.799
<v Speaker 1>it out. But a lot of it just comes from

472
00:25:33.839 --> 00:25:36.880
<v Speaker 1>a deep understanding of how the car operates, how the

473
00:25:36.880 --> 00:25:40.640
<v Speaker 1>engine works. But a lot of it also comes from experience, right.

474
00:25:40.759 --> 00:25:44.160
<v Speaker 1>And so I'm hearing Steve talk about, you know, if

475
00:25:44.559 --> 00:25:47.160
<v Speaker 1>I'm in this code base and I need a troubleshoot it,

476
00:25:48.000 --> 00:25:50.680
<v Speaker 1>I can figure it out because you know, I know

477
00:25:50.759 --> 00:25:54.599
<v Speaker 1>how everything kind of goes together. And I'm just I guess,

478
00:25:54.759 --> 00:25:57.920
<v Speaker 1>I guess the feeling is is, you know, and I

479
00:25:57.960 --> 00:25:59.799
<v Speaker 1>see this. I mostly work in rails, and so I

480
00:25:59.799 --> 00:26:01.680
<v Speaker 1>see a lot of people do the same kinds of things, right,

481
00:26:01.720 --> 00:26:05.599
<v Speaker 1>and they you generally mostly use the rails APIs until

482
00:26:05.640 --> 00:26:08.319
<v Speaker 1>you get you get to the point where they don't

483
00:26:08.359 --> 00:26:10.680
<v Speaker 1>do a thing well, and then you kind of reach

484
00:26:10.799 --> 00:26:13.160
<v Speaker 1>into the tool bag of Okay, now I'm into the

485
00:26:13.240 --> 00:26:18.519
<v Speaker 1>underlying stuff, but I mean, you can go a long

486
00:26:18.559 --> 00:26:21.400
<v Speaker 1>ways with just what the framework gives you. And so

487
00:26:21.599 --> 00:26:25.640
<v Speaker 1>I guess, I guess what I'm saying is is that

488
00:26:27.039 --> 00:26:31.200
<v Speaker 1>And it sounds like you, Corey and Steve and aj

489
00:26:31.440 --> 00:26:34.119
<v Speaker 1>We're all kind of of the mindset where it's like, look,

490
00:26:34.119 --> 00:26:37.039
<v Speaker 1>I want to master this domain right. I want to

491
00:26:37.039 --> 00:26:38.680
<v Speaker 1>be able if there's a thing to be done, I

492
00:26:38.720 --> 00:26:41.039
<v Speaker 1>want to be able to do it right. If I

493
00:26:41.119 --> 00:26:44.960
<v Speaker 1>run into a problem to be solved with JavaScript, even

494
00:26:45.000 --> 00:26:48.519
<v Speaker 1>if I'm working and React or view or Vanilla or

495
00:26:48.680 --> 00:26:50.680
<v Speaker 1>you know. We did an episode where I talked about

496
00:26:50.720 --> 00:26:52.960
<v Speaker 1>the framework I use, which is Stimulus and hot wire.

497
00:26:54.799 --> 00:26:57.839
<v Speaker 2>You know, I want I want to be able to deliver.

498
00:26:59.160 --> 00:27:02.319
<v Speaker 1>Whatever it is need it right and Stimulus and hot

499
00:27:02.359 --> 00:27:05.079
<v Speaker 1>wire so lightweight that you have to use don APIs

500
00:27:05.119 --> 00:27:08.839
<v Speaker 1>you don't really have a whole lot of choice. But

501
00:27:09.599 --> 00:27:11.400
<v Speaker 1>the point is is that I think there are a

502
00:27:11.400 --> 00:27:15.000
<v Speaker 1>lot of people that get by just on react right,

503
00:27:15.599 --> 00:27:19.039
<v Speaker 1>and then they're the handful of don APIs that react

504
00:27:19.119 --> 00:27:22.359
<v Speaker 1>kind of pushes you, Hey, we're not going to invent

505
00:27:22.400 --> 00:27:24.519
<v Speaker 1>a better way to do this because this is kind of.

506
00:27:24.440 --> 00:27:26.279
<v Speaker 2>The way to do it. And so.

507
00:27:29.319 --> 00:27:32.720
<v Speaker 1>Anyway, the point I'm getting to is, I think there

508
00:27:32.720 --> 00:27:34.680
<v Speaker 1>are a couple of reasons why you may or may

509
00:27:34.720 --> 00:27:38.160
<v Speaker 1>not really deeply care about deeply learning some of these APIs.

510
00:27:38.559 --> 00:27:39.960
<v Speaker 2>And one of them is is.

511
00:27:39.920 --> 00:27:42.200
<v Speaker 1>A lot of people really are just comfortable showing up

512
00:27:42.240 --> 00:27:45.480
<v Speaker 1>and just doing, you know, doing what it says on

513
00:27:45.519 --> 00:27:50.119
<v Speaker 1>the REACT ten. And you know, they know, maybe they

514
00:27:50.160 --> 00:27:55.400
<v Speaker 1>know react super duper deeply, and so they never really

515
00:27:55.440 --> 00:27:58.480
<v Speaker 1>reach into that because they can either find somebody else

516
00:27:58.519 --> 00:28:00.759
<v Speaker 1>to solve the problem for them that way, or they're

517
00:28:00.759 --> 00:28:04.079
<v Speaker 1>not really driven to understand how all this stuff works

518
00:28:04.119 --> 00:28:04.759
<v Speaker 1>under the hood.

519
00:28:06.440 --> 00:28:10.640
<v Speaker 2>And on the other hand, you know, maybe you just

520
00:28:10.680 --> 00:28:11.119
<v Speaker 2>get people.

521
00:28:11.119 --> 00:28:13.640
<v Speaker 1>And I worked with people this way too, where I mean,

522
00:28:13.720 --> 00:28:15.759
<v Speaker 1>whatever the bare minimum was to just get the job

523
00:28:15.799 --> 00:28:16.720
<v Speaker 1>done was what they learned.

524
00:28:17.279 --> 00:28:18.559
<v Speaker 2>Yeah, And so.

525
00:28:20.200 --> 00:28:24.960
<v Speaker 1>I guess what I'm gonna ask next is is that, Okay,

526
00:28:26.039 --> 00:28:28.720
<v Speaker 1>I mean, are you handicapping yourself Like I'm not talking

527
00:28:28.799 --> 00:28:33.599
<v Speaker 1>like morally right, but are you really deeply handicapping yourself here?

528
00:28:33.960 --> 00:28:34.200
<v Speaker 2>Right?

529
00:28:34.680 --> 00:28:36.440
<v Speaker 1>Is this going to hurt you in the long run,

530
00:28:37.160 --> 00:28:39.319
<v Speaker 1>or can you just get by doing that for the

531
00:28:39.319 --> 00:28:40.119
<v Speaker 1>rest of your career.

532
00:28:40.799 --> 00:28:44.039
<v Speaker 5>Yeah, actually that's something I have thought a little bit about.

533
00:28:45.759 --> 00:28:50.119
<v Speaker 5>So they're all I think software development is a little

534
00:28:50.119 --> 00:28:56.799
<v Speaker 5>bit unique in the world of like work. Most people

535
00:28:56.839 --> 00:29:00.880
<v Speaker 5>that I run into genuinely love what they're doing. Right,

536
00:29:01.440 --> 00:29:05.359
<v Speaker 5>This is not normal. I think for most of the world,

537
00:29:05.920 --> 00:29:07.799
<v Speaker 5>a job is a job for them. They go there,

538
00:29:08.039 --> 00:29:10.960
<v Speaker 5>they are mildly depressed while they're doing their thing, they

539
00:29:11.000 --> 00:29:13.039
<v Speaker 5>get it done, and they just are so glad to

540
00:29:13.079 --> 00:29:16.640
<v Speaker 5>clock out and go home. I mean, either that's not me,

541
00:29:16.880 --> 00:29:19.559
<v Speaker 5>but but some people, most people like to live that way.

542
00:29:20.279 --> 00:29:24.400
<v Speaker 5>They find they derive their life. They're satisfaction and joy

543
00:29:24.960 --> 00:29:27.799
<v Speaker 5>outside of work. And I do too, to something said,

544
00:29:27.839 --> 00:29:30.480
<v Speaker 5>but I do derive joy at work as well, and

545
00:29:30.599 --> 00:29:35.960
<v Speaker 5>meaning and satisfaction. But there are still many people in

546
00:29:36.079 --> 00:29:39.559
<v Speaker 5>software development, especially the ones that were kind of sold hey,

547
00:29:39.599 --> 00:29:41.680
<v Speaker 5>go go write software, you make a whole bunch of money.

548
00:29:41.720 --> 00:29:44.079
<v Speaker 5>And they want to go make a whole bunch of money,

549
00:29:44.119 --> 00:29:46.480
<v Speaker 5>and now writing software, they don't really love that. They

550
00:29:46.519 --> 00:29:48.559
<v Speaker 5>could have done other things make a whole bunch of money.

551
00:29:49.559 --> 00:29:52.559
<v Speaker 5>But uh, it's just it's just a job for them,

552
00:29:52.920 --> 00:29:56.640
<v Speaker 5>and I think for those people that's fine, it's fine.

553
00:29:56.880 --> 00:29:59.480
<v Speaker 5>Just go do your job, clock out, go home, and

554
00:29:59.599 --> 00:30:04.599
<v Speaker 5>don't worry, worry about it, like no problem. But understand

555
00:30:04.920 --> 00:30:08.240
<v Speaker 5>that that that just means you're going to be perpetually

556
00:30:08.279 --> 00:30:12.880
<v Speaker 5>a mid level engineer. That's just you will. Whether you

557
00:30:12.880 --> 00:30:14.680
<v Speaker 5>get paid more than that, I don't know, but you

558
00:30:14.680 --> 00:30:17.000
<v Speaker 5>you'll never really be better than mid level. And that

559
00:30:17.160 --> 00:30:18.720
<v Speaker 5>is actually fine, because.

560
00:30:18.480 --> 00:30:19.640
<v Speaker 2>Okay, hang on, hang on, hang on.

561
00:30:19.960 --> 00:30:21.880
<v Speaker 1>So I just want to clarify, you're saying that you

562
00:30:21.960 --> 00:30:25.759
<v Speaker 1>really can't be a high level I don't know what

563
00:30:25.799 --> 00:30:31.839
<v Speaker 1>the term is senior architect level engineer without understanding the

564
00:30:32.160 --> 00:30:33.319
<v Speaker 1>underlying don API s.

565
00:30:33.519 --> 00:30:36.559
<v Speaker 5>Yeah, I don't think you can because because I don't

566
00:30:36.599 --> 00:30:39.279
<v Speaker 5>think you can. You mentioned before someone who really knows React,

567
00:30:39.359 --> 00:30:41.640
<v Speaker 5>can they and just lives in that. I don't think

568
00:30:41.640 --> 00:30:45.440
<v Speaker 5>you can really know React without knowing how React, without

569
00:30:45.480 --> 00:30:48.880
<v Speaker 5>knowing the platform and how React works with the platform.

570
00:30:49.000 --> 00:30:51.519
<v Speaker 4>Yeah, there's there's no there's no such thing as a

571
00:30:51.559 --> 00:30:55.359
<v Speaker 4>React expert that doesn't know about pad start. You can't, like,

572
00:30:55.440 --> 00:30:58.759
<v Speaker 4>you can't be an expert and React and not know

573
00:31:00.200 --> 00:31:03.799
<v Speaker 4>basic core APIs of JavaScript or basic core APIs of

574
00:31:03.799 --> 00:31:08.920
<v Speaker 4>the dumb. I I. I mean, I guess maybe maybe

575
00:31:08.920 --> 00:31:12.200
<v Speaker 4>you could be an expert in React and not know

576
00:31:13.119 --> 00:31:17.359
<v Speaker 4>insert adjacent HTML. But I actually find it hard to

577
00:31:17.359 --> 00:31:20.000
<v Speaker 4>believe that either because to be an expert in React,

578
00:31:20.039 --> 00:31:23.640
<v Speaker 4>you must have come against cases where React doesn't solve

579
00:31:23.680 --> 00:31:26.400
<v Speaker 4>the problem well or performantly, and then you would have

580
00:31:26.440 --> 00:31:29.279
<v Speaker 4>had to have learned insert adjason html.

581
00:31:30.920 --> 00:31:33.160
<v Speaker 1>I agree with you, but I think this is a

582
00:31:33.200 --> 00:31:35.680
<v Speaker 1>case that people make, and I think a lot of

583
00:31:35.680 --> 00:31:37.160
<v Speaker 1>people think they're getting by on it.

584
00:31:37.279 --> 00:31:41.880
<v Speaker 4>So well, I want to challenge the very premise, which

585
00:31:41.960 --> 00:31:48.480
<v Speaker 4>is that that somehow you're you know, your laziness, or

586
00:31:48.519 --> 00:31:51.960
<v Speaker 4>you're you know, you're just getting by, you know, not

587
00:31:52.079 --> 00:31:57.079
<v Speaker 4>doing deep dives. I don't. There's so many things that

588
00:31:57.160 --> 00:32:06.440
<v Speaker 4>I I it's so so to your to your talk Corey,

589
00:32:06.519 --> 00:32:08.960
<v Speaker 4>when you were talking about the difference between something that's

590
00:32:09.279 --> 00:32:11.880
<v Speaker 4>intuitive and unintuitive. I actually disagree with you on a

591
00:32:11.920 --> 00:32:14.400
<v Speaker 4>lot of points that talk, but because I watched it

592
00:32:14.440 --> 00:32:18.160
<v Speaker 4>once I got posted. But I agree with you probably

593
00:32:18.200 --> 00:32:21.000
<v Speaker 4>more than I disagree with you. And there's a certain

594
00:32:21.039 --> 00:32:25.200
<v Speaker 4>amount to like, okay, which is more intuitive left pad

595
00:32:26.000 --> 00:32:29.839
<v Speaker 4>or pad start. Now, in that particular case, I'm going

596
00:32:29.920 --> 00:32:32.319
<v Speaker 4>to argue that left pad is more intuitive because pad

597
00:32:32.400 --> 00:32:39.119
<v Speaker 4>start is directional based on locale. So if you're doing Japanese,

598
00:32:39.160 --> 00:32:41.160
<v Speaker 4>then it's going to pad the top. If you're doing

599
00:32:41.240 --> 00:32:44.839
<v Speaker 4>a reverse language and RTL language, then it's gonna pad

600
00:32:45.000 --> 00:32:50.160
<v Speaker 4>the right. But in general, yeah, pad start and pad

601
00:32:50.279 --> 00:32:54.000
<v Speaker 4>pad left and pad start are and and for someone

602
00:32:54.000 --> 00:32:55.960
<v Speaker 4>that is in one of those languages that's top to

603
00:32:55.960 --> 00:33:01.000
<v Speaker 4>bottom or or right to left, then than pad start

604
00:33:01.000 --> 00:33:03.920
<v Speaker 4>would probably be more intuitive. But in general, in general,

605
00:33:04.440 --> 00:33:06.519
<v Speaker 4>at the face of it, without going into the nuance,

606
00:33:07.359 --> 00:33:11.200
<v Speaker 4>is pad start or left pad more intuitive? Neither one

607
00:33:11.319 --> 00:33:15.039
<v Speaker 4>is more intuitive. They're they're they're equally intuitive in terms

608
00:33:15.079 --> 00:33:20.200
<v Speaker 4>of I want to in my language add some padding.

609
00:33:20.279 --> 00:33:24.400
<v Speaker 4>That's gonna be what I think the start is. And

610
00:33:24.440 --> 00:33:26.559
<v Speaker 4>you're gonna pick left pad or right pad based on,

611
00:33:26.720 --> 00:33:28.559
<v Speaker 4>you know, what your languages are, pad start or pad

612
00:33:28.599 --> 00:33:29.759
<v Speaker 4>in based on whether you want to be at the

613
00:33:29.759 --> 00:33:31.759
<v Speaker 4>beginning or there or whatever. But but there's not like,

614
00:33:31.799 --> 00:33:34.119
<v Speaker 4>it's not that's one's more intuitive. It's not that one's

615
00:33:34.119 --> 00:33:40.160
<v Speaker 4>more difficult to learn, Uh, you know, it's it's that

616
00:33:41.240 --> 00:33:44.039
<v Speaker 4>which one did you encounter first? And I think a

617
00:33:44.039 --> 00:33:46.240
<v Speaker 4>lot of this stuff it's not a matter of well,

618
00:33:46.359 --> 00:33:49.279
<v Speaker 4>isn't the framework just fine because it's not even an

619
00:33:49.319 --> 00:33:52.039
<v Speaker 4>issue of the framework because if you're using the framework,

620
00:33:52.799 --> 00:33:55.119
<v Speaker 4>well you should still be using pad start. Like there's

621
00:33:55.119 --> 00:33:57.720
<v Speaker 4>nothing about React that has anything to do with pad start.

622
00:33:57.759 --> 00:34:00.240
<v Speaker 4>There is a reason that if you're using React, you'd

623
00:34:00.240 --> 00:34:04.960
<v Speaker 4>never encounter insert adjacent HTML, But there's not a reason

624
00:34:05.400 --> 00:34:08.639
<v Speaker 4>in React that you would never encounter pad start. Right,

625
00:34:09.199 --> 00:34:13.639
<v Speaker 4>So next question, and so a lot of this stuff

626
00:34:13.679 --> 00:34:16.920
<v Speaker 4>is just it's not a matter of well, do you

627
00:34:17.000 --> 00:34:19.719
<v Speaker 4>have to be more of an expert? Not expert is

628
00:34:19.800 --> 00:34:22.719
<v Speaker 4>going to go back to first principles and learn or

629
00:34:22.719 --> 00:34:25.920
<v Speaker 4>maybe not first principles, but like an expert is going

630
00:34:25.960 --> 00:34:28.199
<v Speaker 4>to get down to, okay, what is the thing when

631
00:34:28.239 --> 00:34:30.480
<v Speaker 4>all the fluff is removed? I think that's that's a

632
00:34:30.559 --> 00:34:34.199
<v Speaker 4>quality of an expert. But even if you're not an expert,

633
00:34:34.400 --> 00:34:37.599
<v Speaker 4>it's not like, oh man, huh, I can't believe I

634
00:34:37.639 --> 00:34:40.400
<v Speaker 4>had to go on MDN. Can you believe it? Like

635
00:34:40.519 --> 00:34:44.480
<v Speaker 4>instead of hitting up GPT or stack overflow, I typed

636
00:34:44.679 --> 00:34:47.320
<v Speaker 4>MDN in my search career. Oh oh man, I got it,

637
00:34:47.320 --> 00:34:49.559
<v Speaker 4>and I need some advil, you know, Like that's that's

638
00:34:49.559 --> 00:34:51.239
<v Speaker 4>not what's happening. It's just a matter of what your

639
00:34:51.280 --> 00:34:54.360
<v Speaker 4>muscle memory is, are you hitting Chad GPT first? Are

640
00:34:54.400 --> 00:34:56.960
<v Speaker 4>you hitting MDN first? Now, granted a lot of the

641
00:34:57.079 --> 00:34:59.360
<v Speaker 4>articles on MDN could stand to be improved because they

642
00:34:59.440 --> 00:35:01.679
<v Speaker 4>kind of went back backwards a few years ago and

643
00:35:01.679 --> 00:35:03.679
<v Speaker 4>now they've gone forwards again. So I think MDN is

644
00:35:04.559 --> 00:35:09.679
<v Speaker 4>is back on par with W three schools because they

645
00:35:09.719 --> 00:35:11.920
<v Speaker 4>were better and then they got worse and now they're

646
00:35:12.000 --> 00:35:12.679
<v Speaker 4>okay again.

647
00:35:13.480 --> 00:35:19.119
<v Speaker 2>But you know, so what do you think, Corey Steve.

648
00:35:23.400 --> 00:35:29.880
<v Speaker 5>I'm trying to suss out the the the question there. So, yeah,

649
00:35:29.960 --> 00:35:33.800
<v Speaker 5>I agree with it. Sounds like you're making the argument

650
00:35:33.840 --> 00:35:38.320
<v Speaker 5>that kind of like what I made before, that React

651
00:35:38.679 --> 00:35:42.119
<v Speaker 5>or these other like UI frameworks are designed to do

652
00:35:42.159 --> 00:35:44.760
<v Speaker 5>a certain thing. It's like, if you remember when React

653
00:35:44.760 --> 00:35:48.199
<v Speaker 5>first came out there, they were marketing themselves as the

654
00:35:48.199 --> 00:35:51.519
<v Speaker 5>the V and NBC. Right, they don't do that anymore,

655
00:35:51.519 --> 00:35:52.760
<v Speaker 5>but at the time they were, that's what they were.

656
00:35:52.800 --> 00:35:55.599
<v Speaker 5>They were kind of marketing themselves as and by implication

657
00:35:55.679 --> 00:35:58.239
<v Speaker 5>that means they don't do the M and the C.

658
00:35:59.000 --> 00:36:02.119
<v Speaker 5>That's your job to under fan. We just do the V.

659
00:36:03.880 --> 00:36:08.760
<v Speaker 3>NBC being mod view controller.

660
00:36:09.159 --> 00:36:13.280
<v Speaker 1>Yeah, so they did the interface, they didn't do the

661
00:36:13.880 --> 00:36:16.639
<v Speaker 1>data and they didn't interface the data to the view

662
00:36:16.719 --> 00:36:17.000
<v Speaker 1>that was.

663
00:36:17.000 --> 00:36:20.119
<v Speaker 3>The top layer. They save view library. I think that's

664
00:36:20.119 --> 00:36:21.440
<v Speaker 3>why I've always heard it described.

665
00:36:21.920 --> 00:36:24.679
<v Speaker 5>Yeah, I don't. I don't think that's an accurate description.

666
00:36:24.719 --> 00:36:26.639
<v Speaker 5>It probably wasn't an accurate description at the time either,

667
00:36:26.719 --> 00:36:30.119
<v Speaker 5>but certainly not now. But regardless, they were making a

668
00:36:30.159 --> 00:36:32.679
<v Speaker 5>concession that we don't do everything, but we do do

669
00:36:32.840 --> 00:36:36.480
<v Speaker 5>this thing. And all frameworks are kind of that way.

670
00:36:36.559 --> 00:36:39.199
<v Speaker 5>And if you live in as long as the problem

671
00:36:39.280 --> 00:36:42.079
<v Speaker 5>to be solved is something that the framework aims to solve,

672
00:36:42.679 --> 00:36:45.159
<v Speaker 5>you can live in that framework and you don't have

673
00:36:45.199 --> 00:36:48.159
<v Speaker 5>to to dive down. But to create an application, you

674
00:36:48.199 --> 00:36:51.760
<v Speaker 5>will have to do more than what the framework solves. Charles,

675
00:36:51.800 --> 00:36:55.039
<v Speaker 5>you mentioned you do a hot wire stimulus and it's

676
00:36:55.159 --> 00:36:57.679
<v Speaker 5>very lightweight, and therefore you have to learn DOMINPA. It

677
00:36:57.679 --> 00:36:59.880
<v Speaker 5>doesn't it's not aiming to solve all the problems, react

678
00:37:00.679 --> 00:37:01.719
<v Speaker 5>all the problems.

679
00:37:02.639 --> 00:37:06.400
<v Speaker 1>It claims essentially to be the c in MVC, and

680
00:37:06.440 --> 00:37:09.599
<v Speaker 1>it leaves the V up to you writing HTML and

681
00:37:09.679 --> 00:37:11.800
<v Speaker 1>the m up to your APIs and you can do

682
00:37:11.840 --> 00:37:12.719
<v Speaker 1>those however you want.

683
00:37:13.199 --> 00:37:17.360
<v Speaker 5>Yeah, so, so in that sense, I think you know

684
00:37:17.400 --> 00:37:22.159
<v Speaker 5>you're right. You cannot become an expert at your job,

685
00:37:22.360 --> 00:37:25.599
<v Speaker 5>even if your job is to write React, unless you

686
00:37:25.719 --> 00:37:29.800
<v Speaker 5>understand more than just React, more than just the framework

687
00:37:29.840 --> 00:37:32.639
<v Speaker 5>that you're operating in, because your job. I don't know

688
00:37:32.639 --> 00:37:38.679
<v Speaker 5>of a job whose whose definition would keep them only

689
00:37:38.719 --> 00:37:41.840
<v Speaker 5>within the bounds of a framework. That just unless maybe

690
00:37:41.880 --> 00:37:45.079
<v Speaker 5>you're working in a very batteries included framework like Rails

691
00:37:45.159 --> 00:37:45.519
<v Speaker 5>or something.

692
00:37:46.079 --> 00:37:48.679
<v Speaker 1>Right, Well, even in the battery you said Rails, but

693
00:37:48.960 --> 00:37:52.760
<v Speaker 1>even in the batteries included frameworks like Rails, you still

694
00:37:52.800 --> 00:37:56.400
<v Speaker 1>frequently have to deviate from what the framework gives you,

695
00:37:56.440 --> 00:37:59.960
<v Speaker 1>either directly or because it just doesn't have a piece

696
00:38:00.039 --> 00:38:01.719
<v Speaker 1>of the framework that does the thing you need.

697
00:38:02.519 --> 00:38:06.599
<v Speaker 4>Well, addition is not part of Rails, right, string concatenation

698
00:38:07.480 --> 00:38:09.480
<v Speaker 4>Actually I think st I think I think Rails did

699
00:38:09.559 --> 00:38:11.519
<v Speaker 4>hijack stream cocttination.

700
00:38:12.280 --> 00:38:13.760
<v Speaker 2>A whole bunch with active support.

701
00:38:13.800 --> 00:38:20.280
<v Speaker 4>But yeah, but in general, in a sane language, you

702
00:38:20.320 --> 00:38:24.440
<v Speaker 4>know the language, the framework isn't taking over edition concatenation.

703
00:38:24.719 --> 00:38:27.360
<v Speaker 4>You know it's basic string and number support.

704
00:38:28.079 --> 00:38:33.280
<v Speaker 1>Well, active support was written for Rails, but it's mostly orthogonal.

705
00:38:33.559 --> 00:38:35.960
<v Speaker 1>I mean, it's required by Rails, but you can use

706
00:38:35.960 --> 00:38:38.960
<v Speaker 1>it in other projects without having Rails and give all

707
00:38:38.960 --> 00:38:39.960
<v Speaker 1>the niceties it gives.

708
00:38:39.840 --> 00:38:43.519
<v Speaker 4>You, and now the rails or Ruby has UTFA by

709
00:38:43.519 --> 00:38:47.239
<v Speaker 4>default active support doesn't hijack those things, right.

710
00:38:48.280 --> 00:38:55.079
<v Speaker 2>Not as much it it has it. It touches everything we.

711
00:38:54.920 --> 00:38:56.639
<v Speaker 1>We could we could talk about whether that's a good

712
00:38:56.679 --> 00:38:59.639
<v Speaker 1>idea or not, but that that's not the show. I

713
00:38:59.719 --> 00:39:02.039
<v Speaker 1>was us, Steve, if you had anything to add before

714
00:39:02.039 --> 00:39:04.639
<v Speaker 1>I kind of push this to the next question I

715
00:39:04.639 --> 00:39:05.679
<v Speaker 1>have on this then.

716
00:39:07.559 --> 00:39:10.760
<v Speaker 3>Not really, I mean I'm still a bit confused about

717
00:39:10.800 --> 00:39:13.519
<v Speaker 3>the what the question that AJ said anyway, which is

718
00:39:14.000 --> 00:39:15.159
<v Speaker 3>par for the course.

719
00:39:15.440 --> 00:39:17.920
<v Speaker 4>But I didn't ask a question, no idea.

720
00:39:18.000 --> 00:39:21.119
<v Speaker 1>That a common question, and it was it was effectively,

721
00:39:21.159 --> 00:39:24.159
<v Speaker 1>can you know can you be a high level senior

722
00:39:24.199 --> 00:39:26.079
<v Speaker 1>developer without knowing this stuff?

723
00:39:26.880 --> 00:39:29.000
<v Speaker 3>You don't think I don't think it's knowing it. I

724
00:39:29.039 --> 00:39:32.000
<v Speaker 3>mean I pretty much said that up front. I mean, yeah,

725
00:39:32.079 --> 00:39:34.280
<v Speaker 3>I think the general percentage that I can remember seeing,

726
00:39:34.840 --> 00:39:37.159
<v Speaker 3>like for instance, going back to the jupil world was

727
00:39:37.239 --> 00:39:41.480
<v Speaker 3>eighty twenty where the framework, the CMS whatever, out of

728
00:39:41.480 --> 00:39:43.360
<v Speaker 3>the box is going to do eighty percent of what

729
00:39:43.440 --> 00:39:46.679
<v Speaker 3>you need and the last twenty percent is what you need.

730
00:39:46.840 --> 00:39:49.920
<v Speaker 3>You know, you're going to need to do yourself with

731
00:39:49.920 --> 00:39:53.480
<v Speaker 3>a little customization with some writing code. In this case,

732
00:39:54.119 --> 00:39:56.480
<v Speaker 3>I think it could be you could translate that to say,

733
00:39:56.599 --> 00:40:01.320
<v Speaker 3>React view Angular rails is going to do eighty percent

734
00:40:01.320 --> 00:40:03.039
<v Speaker 3>of what you need by itself, and in a lot

735
00:40:03.079 --> 00:40:05.159
<v Speaker 3>of cases maybe it's one hundred percent, depending on the

736
00:40:05.199 --> 00:40:08.400
<v Speaker 3>simplicity or the complexity of what you're doing. But that

737
00:40:08.519 --> 00:40:11.079
<v Speaker 3>last twenty percent, you're going to need to know how

738
00:40:11.119 --> 00:40:13.280
<v Speaker 3>things work under the hood in order to be able

739
00:40:13.320 --> 00:40:14.920
<v Speaker 3>to get to what you really need to do.

740
00:40:15.679 --> 00:40:20.000
<v Speaker 5>Yeah, just as a quick example of that, if you're

741
00:40:20.000 --> 00:40:24.320
<v Speaker 5>writing in React and you're you're writing out HTML or GSX,

742
00:40:25.039 --> 00:40:28.119
<v Speaker 5>one thing that doesn't cover at all is aria, Like

743
00:40:28.280 --> 00:40:32.119
<v Speaker 5>you need to understand aria. You just that that's absolutely necessary.

744
00:40:32.159 --> 00:40:32.880
<v Speaker 5>That's not React.

745
00:40:34.480 --> 00:40:35.519
<v Speaker 2>Nope.

746
00:40:35.800 --> 00:40:37.679
<v Speaker 3>Yeah, that's a whole can of worms where you get

747
00:40:37.719 --> 00:40:41.440
<v Speaker 3>in to uh, what's the term you can believe disibility?

748
00:40:41.639 --> 00:40:42.840
<v Speaker 3>Thank you? Accessibility?

749
00:40:42.960 --> 00:40:43.159
<v Speaker 2>Right?

750
00:40:44.000 --> 00:40:44.199
<v Speaker 4>Yeah?

751
00:40:44.239 --> 00:40:45.440
<v Speaker 2>And why yeah?

752
00:40:45.480 --> 00:40:50.000
<v Speaker 5>Yeah. And also just to be clear, like, depending on

753
00:40:50.000 --> 00:40:52.280
<v Speaker 5>what your goals are in life, there's nothing necessarily wrong

754
00:40:52.360 --> 00:40:56.039
<v Speaker 5>with never becoming a senior like engineer like go do

755
00:40:56.159 --> 00:40:58.199
<v Speaker 5>your thing, man, do what makes you happy. And if

756
00:40:58.320 --> 00:41:00.639
<v Speaker 5>if being a mid level engineer for you know, for

757
00:41:00.679 --> 00:41:02.920
<v Speaker 5>your career get you the money you need to do

758
00:41:02.960 --> 00:41:05.280
<v Speaker 5>it makes you happy by all means, go, you know,

759
00:41:05.480 --> 00:41:08.880
<v Speaker 5>do that. That's fine. But if if you're going to

760
00:41:08.880 --> 00:41:10.920
<v Speaker 5>your manager and like I think I should be a

761
00:41:10.960 --> 00:41:13.239
<v Speaker 5>senior engineer, I want to get paid like a senior engineer,

762
00:41:13.880 --> 00:41:15.679
<v Speaker 5>well you're gonna have to learn some stuff outside of

763
00:41:15.679 --> 00:41:16.360
<v Speaker 5>that framework.

764
00:41:17.480 --> 00:41:17.719
<v Speaker 2>Yeah.

765
00:41:18.199 --> 00:41:20.159
<v Speaker 1>The example I've used with a bunch of people is

766
00:41:20.639 --> 00:41:23.400
<v Speaker 1>some people want to learn to code because they love

767
00:41:23.440 --> 00:41:25.039
<v Speaker 1>it and they just want to dive into every piece

768
00:41:25.039 --> 00:41:27.239
<v Speaker 1>of it. And some people want to learn to code

769
00:41:27.239 --> 00:41:28.800
<v Speaker 1>so they can make enough to go live on the

770
00:41:28.840 --> 00:41:32.440
<v Speaker 1>beach and go surf in the afternoon. And there's nothing

771
00:41:32.440 --> 00:41:33.239
<v Speaker 1>wrong with either one.

772
00:41:33.360 --> 00:41:35.960
<v Speaker 2>Just know who you are. Yeah.

773
00:41:36.119 --> 00:41:40.679
<v Speaker 1>Okay, so it sounds like and I think AJ most

774
00:41:40.760 --> 00:41:45.880
<v Speaker 1>directly touched on this, but let's say that somebody is

775
00:41:46.559 --> 00:41:49.400
<v Speaker 1>you know, they accept the argument. Okay, I do have

776
00:41:49.480 --> 00:41:52.880
<v Speaker 1>these ambitions for my career. I do want to be

777
00:41:53.000 --> 00:41:55.559
<v Speaker 1>able to expertly solve these problems, So I need to

778
00:41:55.599 --> 00:42:00.199
<v Speaker 1>start learning these dom APIs, and I'm also going to

779
00:42:00.360 --> 00:42:02.440
<v Speaker 1>deliver the premise and you can argue against it if

780
00:42:02.480 --> 00:42:04.800
<v Speaker 1>you want that. A lot of times people don't learn

781
00:42:04.840 --> 00:42:07.519
<v Speaker 1>these APIs because the framework does give you a way

782
00:42:07.559 --> 00:42:10.159
<v Speaker 1>to do it, and so you just never become aware

783
00:42:10.199 --> 00:42:13.800
<v Speaker 1>that the API even exists to do the thing. So

784
00:42:13.880 --> 00:42:16.360
<v Speaker 1>how do people And you can tell me if I'm

785
00:42:16.360 --> 00:42:18.599
<v Speaker 1>wrong about that as part of your answer, But how

786
00:42:18.599 --> 00:42:23.039
<v Speaker 1>do people then go? Okay, I'm a React guy, or

787
00:42:23.079 --> 00:42:25.519
<v Speaker 1>I'm a view guy, or I'm an Angular guy, and

788
00:42:25.599 --> 00:42:31.000
<v Speaker 1>I want to deliver elegant, well written, well engineered solutions,

789
00:42:31.000 --> 00:42:33.480
<v Speaker 1>and so I need to learn these do APIs? Which

790
00:42:33.519 --> 00:42:36.280
<v Speaker 1>ones they learn first? And how do they learn those

791
00:42:36.320 --> 00:42:38.840
<v Speaker 1>things so that they can start to become this high

792
00:42:38.920 --> 00:42:39.679
<v Speaker 1>level engineer.

793
00:42:40.480 --> 00:42:42.719
<v Speaker 5>Oh that's good. That's a good question.

794
00:42:43.599 --> 00:42:47.559
<v Speaker 1>And is my premise wrong that people aren't learning it

795
00:42:47.559 --> 00:42:49.119
<v Speaker 1>because of the framework just does it for him.

796
00:42:49.880 --> 00:42:51.519
<v Speaker 5>I don't think it's that the framework does it for him.

797
00:42:51.519 --> 00:42:55.039
<v Speaker 5>I honestly, I think it's I'm most familiar with React,

798
00:42:55.039 --> 00:42:56.599
<v Speaker 5>and so I'll speak for React here.

799
00:42:56.880 --> 00:42:57.280
<v Speaker 3>That's fair.

800
00:42:57.320 --> 00:42:59.320
<v Speaker 2>I think most people listening probably do React.

801
00:42:59.400 --> 00:43:04.480
<v Speaker 5>So the ecosystem has solutions for it, so React doesn't.

802
00:43:04.480 --> 00:43:07.159
<v Speaker 5>For instance, I talked before about using the popover API,

803
00:43:07.239 --> 00:43:08.599
<v Speaker 5>and one of the reasons we started doing that is

804
00:43:08.639 --> 00:43:11.559
<v Speaker 5>because we have a library in our application that handles

805
00:43:12.119 --> 00:43:15.679
<v Speaker 5>pop ups and it is flaky as all get out.

806
00:43:15.679 --> 00:43:18.000
<v Speaker 5>When it comes to tests, it does not perform well.

807
00:43:18.039 --> 00:43:19.840
<v Speaker 5>There's all kinds of problems with it, and so that's

808
00:43:19.840 --> 00:43:23.639
<v Speaker 5>why we're looking for more native solutions. But the reason

809
00:43:23.719 --> 00:43:27.119
<v Speaker 5>it exists at all is because someone came in. I'm

810
00:43:27.119 --> 00:43:30.440
<v Speaker 5>a react engineer. I need this thing. Someone created a

811
00:43:30.480 --> 00:43:33.559
<v Speaker 5>library to do this thing inside of the reacting ecosystem.

812
00:43:34.239 --> 00:43:36.239
<v Speaker 5>All I need to learn is this simple little API

813
00:43:36.360 --> 00:43:40.239
<v Speaker 5>for this library, rather than all this complex API for

814
00:43:40.280 --> 00:43:42.400
<v Speaker 5>the dominant I think this is the conceptually what people

815
00:43:42.440 --> 00:43:46.360
<v Speaker 5>get wrong. They think that the lower level stuff is complicated,

816
00:43:46.719 --> 00:43:49.800
<v Speaker 5>this library has a much nicer API. Many times that's true.

817
00:43:49.960 --> 00:43:53.320
<v Speaker 5>Many times that's not true or not as true as

818
00:43:53.320 --> 00:43:57.119
<v Speaker 5>people seem to want to think it is, And so

819
00:43:57.960 --> 00:44:01.079
<v Speaker 5>you end up with this bloated situation where I'm gonna

820
00:44:01.119 --> 00:44:02.920
<v Speaker 5>I'm gonna get a library that has a nicer API

821
00:44:03.119 --> 00:44:09.880
<v Speaker 5>rather than learning the platform API. I think that's what

822
00:44:10.400 --> 00:44:13.000
<v Speaker 5>tends to happen fairly often.

823
00:44:14.800 --> 00:44:18.039
<v Speaker 1>So, so what what should people be picking up first?

824
00:44:18.079 --> 00:44:20.800
<v Speaker 1>And how do they make sure they're learning the right

825
00:44:20.840 --> 00:44:22.920
<v Speaker 1>things that are going to move in the head.

826
00:44:24.039 --> 00:44:26.840
<v Speaker 5>Yeah, I wish they were a good, like simple answer

827
00:44:26.880 --> 00:44:29.000
<v Speaker 5>to that. It's kind of reminded when people ask like,

828
00:44:29.320 --> 00:44:31.679
<v Speaker 5>I'm just starting out as an engineer, what what books

829
00:44:31.679 --> 00:44:34.440
<v Speaker 5>should I be reading? What sources should be reading? I'm like, oh, man,

830
00:44:37.079 --> 00:44:39.440
<v Speaker 5>I mean there isn't a book that I used to have.

831
00:44:39.559 --> 00:44:41.159
<v Speaker 5>I used to point people to, like you know, Jobs

832
00:44:41.280 --> 00:44:43.239
<v Speaker 5>of the good parts. That's way outdated. I would not

833
00:44:43.280 --> 00:44:44.119
<v Speaker 5>recommend reading that.

834
00:44:44.079 --> 00:44:44.920
<v Speaker 2>Now right.

835
00:44:46.320 --> 00:44:46.559
<v Speaker 4>There.

836
00:44:46.599 --> 00:44:49.360
<v Speaker 5>There isn't a compendium of you want to get great,

837
00:44:49.599 --> 00:44:53.239
<v Speaker 5>here are the resources, Unfortunately. I what I tend to

838
00:44:53.239 --> 00:45:01.239
<v Speaker 5>do now is point people towards resources like email, newsletters

839
00:45:01.360 --> 00:45:04.840
<v Speaker 5>or podcasts or things like that where people are talking

840
00:45:04.840 --> 00:45:10.400
<v Speaker 5>about stuff, and I send them to Honestly, ah, you

841
00:45:10.440 --> 00:45:12.960
<v Speaker 5>mentioned Indiana. I send them to Indian all the time.

842
00:45:13.199 --> 00:45:16.400
<v Speaker 5>That is the unofficial or maybe it's now the official

843
00:45:16.920 --> 00:45:22.360
<v Speaker 5>platform documentation go that. I tell them like, look, you

844
00:45:22.440 --> 00:45:24.559
<v Speaker 5>always need to be looking for stuff. I will sometimes

845
00:45:24.599 --> 00:45:26.880
<v Speaker 5>go to like Indiana and look at the eighth the

846
00:45:26.880 --> 00:45:30.559
<v Speaker 5>list of hmail tags, just like what have I forgotten

847
00:45:30.559 --> 00:45:33.280
<v Speaker 5>about and go through and just read them and say, oh,

848
00:45:33.400 --> 00:45:35.480
<v Speaker 5>I told I didn't know that existed. I'm going to

849
00:45:35.519 --> 00:45:39.480
<v Speaker 5>try to incorporate that in there. And this reminds me

850
00:45:39.760 --> 00:45:42.119
<v Speaker 5>so I thought of this earlier when you were talking

851
00:45:42.119 --> 00:45:44.760
<v Speaker 5>about something else. But one thing that is incredibly useful

852
00:45:44.760 --> 00:45:48.519
<v Speaker 5>for understanding how things work or maybe what you should

853
00:45:48.559 --> 00:45:52.559
<v Speaker 5>be learning. Remember years ago, Paul Irish.

854
00:45:52.280 --> 00:45:56.199
<v Speaker 2>You guys know we've had them on the show. I think, yeah,

855
00:45:56.840 --> 00:45:59.480
<v Speaker 2>so Paul, maybe not anyway, in.

856
00:45:59.360 --> 00:46:02.920
<v Speaker 5>Any case, years year ago he wrote or he made

857
00:46:02.920 --> 00:46:04.920
<v Speaker 5>a couple of videos on the first one with ten

858
00:46:04.960 --> 00:46:08.119
<v Speaker 5>things I learned from the Jquerry source code and what

859
00:46:08.159 --> 00:46:09.639
<v Speaker 5>he did. He just did this little video where he

860
00:46:09.679 --> 00:46:11.639
<v Speaker 5>opened up the source code for jquerry and just walked

861
00:46:11.679 --> 00:46:14.599
<v Speaker 5>through it. And I was like, oh, this is cool.

862
00:46:14.800 --> 00:46:16.199
<v Speaker 5>Let me tell you about what's going on here and

863
00:46:16.239 --> 00:46:18.719
<v Speaker 5>what I learned about this, and it was it blew

864
00:46:18.760 --> 00:46:20.639
<v Speaker 5>my mind of like, holy crap, this is amazing. I

865
00:46:20.679 --> 00:46:23.360
<v Speaker 5>didn't kind of even it didn't occur to me to

866
00:46:23.480 --> 00:46:26.480
<v Speaker 5>do that. And I started kind of doing that more.

867
00:46:26.519 --> 00:46:28.039
<v Speaker 5>I'm going to look at the source code, how are

868
00:46:28.039 --> 00:46:30.320
<v Speaker 5>they doing this? How is this library that I like

869
00:46:30.840 --> 00:46:33.159
<v Speaker 5>doing this thing that seems magical to me? And I

870
00:46:33.159 --> 00:46:34.800
<v Speaker 5>figured it out and then take it a step farther

871
00:46:34.880 --> 00:46:37.719
<v Speaker 5>and you know what I'm going to recreate? I recreated jQuery.

872
00:46:37.880 --> 00:46:42.480
<v Speaker 5>It was crap. It was not performance, but the act

873
00:46:42.840 --> 00:46:46.679
<v Speaker 5>of doing it like opened my mind widely to all

874
00:46:46.760 --> 00:46:51.559
<v Speaker 5>kinds of new techniques and interesting things. And I think

875
00:46:51.599 --> 00:46:55.599
<v Speaker 5>that is a good exercise. I think, I think doing

876
00:46:55.639 --> 00:46:58.320
<v Speaker 5>that building into your career. I do this. I also

877
00:46:58.400 --> 00:47:00.880
<v Speaker 5>tell engineers that I meant to do this every day.

878
00:47:01.320 --> 00:47:05.320
<v Speaker 5>Spend the first hour of your day on company time learning.

879
00:47:06.239 --> 00:47:09.480
<v Speaker 5>Go read it, read some articles, go go build some

880
00:47:10.079 --> 00:47:13.639
<v Speaker 5>throwaway thing, but spend that first hour learning something new

881
00:47:13.719 --> 00:47:17.960
<v Speaker 5>every day. You The act of seeking out, I think

882
00:47:18.079 --> 00:47:21.199
<v Speaker 5>is going to expose you to uh, to these kinds

883
00:47:21.199 --> 00:47:24.079
<v Speaker 5>of things. But I don't have, like I said, a

884
00:47:24.119 --> 00:47:26.000
<v Speaker 5>compendium of like here are the things you need to

885
00:47:26.039 --> 00:47:27.480
<v Speaker 5>know necessarily.

886
00:47:27.840 --> 00:47:30.559
<v Speaker 3>So we did an episode about five years ago with

887
00:47:30.559 --> 00:47:36.519
<v Speaker 3>a guy named Karl Mungazi JavaScript Jebber number four zero eight,

888
00:47:36.960 --> 00:47:38.599
<v Speaker 3>all about reading sorce code.

889
00:47:38.800 --> 00:47:41.320
<v Speaker 2>He was also a host on React around It for

890
00:47:41.360 --> 00:47:42.000
<v Speaker 2>a while.

891
00:47:42.199 --> 00:47:45.239
<v Speaker 3>Right, So the whole I remember, and I can still

892
00:47:45.280 --> 00:47:48.519
<v Speaker 3>remember doing this episode where we talked to him about

893
00:47:48.559 --> 00:47:49.920
<v Speaker 3>reading source code and how to do it and the

894
00:47:49.920 --> 00:47:53.440
<v Speaker 3>benefits of it and so on and so anyway, I

895
00:47:53.599 --> 00:47:56.119
<v Speaker 3>put four zero eight if you want to listen to.

896
00:47:56.079 --> 00:48:00.000
<v Speaker 5>That, Yes, I think it's more about the practices you

897
00:48:00.039 --> 00:48:03.639
<v Speaker 5>build for yourself as an engineer, less than the sources

898
00:48:04.239 --> 00:48:06.159
<v Speaker 5>you turn to. The sources are good, but I think

899
00:48:06.199 --> 00:48:10.800
<v Speaker 5>the practices helped to help give you those sources, I

900
00:48:10.800 --> 00:48:13.480
<v Speaker 5>guess is a way I might put it, help you

901
00:48:13.519 --> 00:48:16.679
<v Speaker 5>discover those sources because I think they change over time

902
00:48:16.800 --> 00:48:17.119
<v Speaker 5>a lot.

903
00:48:18.719 --> 00:48:21.119
<v Speaker 4>I think one of the best things that front ends

904
00:48:21.239 --> 00:48:29.639
<v Speaker 4>people can do to improve their their craft is to

905
00:48:29.760 --> 00:48:34.840
<v Speaker 4>listen to people that just do programming and more importantly

906
00:48:34.840 --> 00:48:39.119
<v Speaker 4>engineering and architecture outside of the front end space, because

907
00:48:39.159 --> 00:48:44.239
<v Speaker 4>I think the front end space is assess pool, and

908
00:48:44.679 --> 00:48:48.880
<v Speaker 4>the thought leaders in the front end space are oftentimes

909
00:48:49.480 --> 00:48:52.599
<v Speaker 4>just people that have I don't know, really cool socks

910
00:48:52.679 --> 00:48:56.480
<v Speaker 4>and like I don't.

911
00:48:58.000 --> 00:48:59.239
<v Speaker 2>But I would people off.

912
00:49:01.039 --> 00:49:01.599
<v Speaker 5>I don't know.

913
00:49:01.519 --> 00:49:05.039
<v Speaker 4>How they become these thought leaders, but so many people

914
00:49:05.039 --> 00:49:09.800
<v Speaker 4>in the front end space they're not people. Let me

915
00:49:09.840 --> 00:49:12.280
<v Speaker 4>rephrase it. You'll get a lot more out of listening

916
00:49:12.360 --> 00:49:22.559
<v Speaker 4>to people like Rob Pike and Jonathan blow Casey Moritory, uh,

917
00:49:24.719 --> 00:49:27.760
<v Speaker 4>you know, like listen to people that do game dev,

918
00:49:27.840 --> 00:49:30.599
<v Speaker 4>listen to people that do server side dev, listen to

919
00:49:30.639 --> 00:49:35.320
<v Speaker 4>people that do GO or rust or zig or you know,

920
00:49:37.079 --> 00:49:40.480
<v Speaker 4>because most most of you know. Anybody that asked me

921
00:49:40.480 --> 00:49:42.079
<v Speaker 4>how do I learn to program? What I'm gonna say

922
00:49:42.119 --> 00:49:44.760
<v Speaker 4>is here's a bunch of great resources for Go. Because

923
00:49:44.800 --> 00:49:46.840
<v Speaker 4>goes a language you can learn in a weekend. You

924
00:49:46.880 --> 00:49:50.280
<v Speaker 4>don't have to have previous programming experience to get into

925
00:49:50.280 --> 00:49:53.119
<v Speaker 4>Go quickly. You can write actual real programs and go

926
00:49:53.360 --> 00:49:56.119
<v Speaker 4>that uh, you know, you can write terminal games like

927
00:49:56.159 --> 00:49:57.679
<v Speaker 4>tip tac toe type of stuff or whatever.

928
00:49:57.679 --> 00:49:57.880
<v Speaker 2>You know.

929
00:49:58.280 --> 00:50:01.239
<v Speaker 4>It's a it's a really great language. And once you

930
00:50:01.519 --> 00:50:05.639
<v Speaker 4>learn Go in particular, then you go back to something

931
00:50:05.679 --> 00:50:09.239
<v Speaker 4>like JavaScript and you're like, whoa, whoa, whoa, whoa. I

932
00:50:09.280 --> 00:50:12.760
<v Speaker 4>don't need this ninety five percent of the language. This

933
00:50:12.920 --> 00:50:16.519
<v Speaker 4>five percent does everything I need, and it's faster and

934
00:50:16.599 --> 00:50:18.000
<v Speaker 4>smaller and easier to learn.

935
00:50:18.440 --> 00:50:20.599
<v Speaker 5>They used to say the same thing about JavaScript that

936
00:50:20.599 --> 00:50:25.320
<v Speaker 5>you just said about Go. It's interesting. I a thing

937
00:50:25.320 --> 00:50:30.159
<v Speaker 5>I've often said about JavaScript is JavaScript has within it

938
00:50:30.239 --> 00:50:34.719
<v Speaker 5>this very beautiful and elegant language. If you if you

939
00:50:34.760 --> 00:50:37.559
<v Speaker 5>stay within the bounce, it's a wonderful language.

940
00:50:37.599 --> 00:50:40.480
<v Speaker 4>And there's a whole lot of.

941
00:50:41.280 --> 00:50:45.000
<v Speaker 5>I'll take some issue with with I guess the way

942
00:50:45.039 --> 00:50:50.159
<v Speaker 5>that you you positioned the in the front end space.

943
00:50:50.360 --> 00:50:51.800
<v Speaker 5>I do think there is a lot of value that

944
00:50:51.840 --> 00:50:54.920
<v Speaker 5>comes from many of them, I think, But what I agree,

945
00:50:55.920 --> 00:50:59.480
<v Speaker 5>but I will agree, Yeah, There's a couple of points

946
00:50:59.480 --> 00:51:01.519
<v Speaker 5>I would add on top of it, and that is

947
00:51:03.280 --> 00:51:07.119
<v Speaker 5>that it took me. I had an experienced earlier in

948
00:51:07.119 --> 00:51:12.920
<v Speaker 5>my career where I realized that even the most experienced

949
00:51:13.920 --> 00:51:19.800
<v Speaker 5>and knowledgeable people in the industry are just people. Like

950
00:51:19.840 --> 00:51:22.760
<v Speaker 5>they're just and they're almost kind of They're making it

951
00:51:22.840 --> 00:51:24.880
<v Speaker 5>up as they go in many the same ways that

952
00:51:24.920 --> 00:51:28.159
<v Speaker 5>we are. They just have been doing it longer, and

953
00:51:28.239 --> 00:51:35.039
<v Speaker 5>we tend to idolize the wrong word defer to them

954
00:51:35.079 --> 00:51:39.440
<v Speaker 5>maybe too much at the expense of our own rational thinking.

955
00:51:39.800 --> 00:51:41.920
<v Speaker 5>And I think we could do more rational thinking rational

956
00:51:41.920 --> 00:51:44.639
<v Speaker 5>thought there. But with that said, I will very much

957
00:51:44.719 --> 00:51:49.079
<v Speaker 5>concur with you AJ on expanding your horizons beyond the

958
00:51:49.119 --> 00:51:53.079
<v Speaker 5>domain space I mentioned before the seminal paper Out of

959
00:51:53.079 --> 00:51:56.039
<v Speaker 5>the tar Pit, and I also mentioned before that there

960
00:51:56.079 --> 00:51:59.239
<v Speaker 5>isn't a compendium of resources. However, I have been thinking

961
00:51:59.239 --> 00:52:01.199
<v Speaker 5>for a long time about put together a list of

962
00:52:01.920 --> 00:52:05.440
<v Speaker 5>these like must reads going back to the beginning of

963
00:52:05.599 --> 00:52:11.039
<v Speaker 5>computer programming, that are, like Quintin like thinks you really

964
00:52:11.079 --> 00:52:14.159
<v Speaker 5>really should read because it's going to shape in a

965
00:52:14.199 --> 00:52:16.559
<v Speaker 5>positive way the way you think about programming in a

966
00:52:16.559 --> 00:52:18.480
<v Speaker 5>broad sense. So you know, you know, out of the

967
00:52:18.559 --> 00:52:24.119
<v Speaker 5>tar Pit you have the the Orsons, cut Cards, the Beekeeper,

968
00:52:24.159 --> 00:52:27.320
<v Speaker 5>and Algae I always forget the name of it. You

969
00:52:27.400 --> 00:52:30.760
<v Speaker 5>have many white papers from the seventies and from the

970
00:52:30.800 --> 00:52:34.960
<v Speaker 5>sixties that are like mind blowing that they have they solved,

971
00:52:34.960 --> 00:52:38.039
<v Speaker 5>they solved problems that we have today and we've completely

972
00:52:38.079 --> 00:52:42.400
<v Speaker 5>forgot about it. I would, you know, point people to

973
00:52:42.400 --> 00:52:46.760
<v Speaker 5>to Brett Victor and a number of his his presentations

974
00:52:46.800 --> 00:52:49.519
<v Speaker 5>that illustrate some of that. There are some really kind

975
00:52:49.559 --> 00:52:52.119
<v Speaker 5>of everyone should really be reading this regardless of what

976
00:52:52.159 --> 00:52:55.000
<v Speaker 5>you're programming kind of stuff. And maybe one day I'll

977
00:52:55.000 --> 00:52:56.840
<v Speaker 5>put that together, but I don't have that with me.

978
00:52:56.960 --> 00:53:02.239
<v Speaker 1>So is the Beekeeper with Orsus Scott card House software

979
00:53:02.239 --> 00:53:02.960
<v Speaker 1>companies die.

980
00:53:03.159 --> 00:53:05.920
<v Speaker 5>Yeah, that's the one. That's the one, and it's really short.

981
00:53:06.800 --> 00:53:09.400
<v Speaker 1>I put both of these in the comments on Facebook

982
00:53:09.519 --> 00:53:14.119
<v Speaker 1>and YouTube, so yeah, if you're if you're looking for those, well,

983
00:53:14.119 --> 00:53:15.519
<v Speaker 1>hopefully we get them in the show notes too, but

984
00:53:15.559 --> 00:53:16.320
<v Speaker 1>they don't always.

985
00:53:17.920 --> 00:53:20.199
<v Speaker 5>So there's a yeah, I wish, I wish I had

986
00:53:20.199 --> 00:53:23.639
<v Speaker 5>a longer list of uh a hand, but those are

987
00:53:23.639 --> 00:53:27.000
<v Speaker 5>those are It is really amazing to go back to

988
00:53:27.079 --> 00:53:30.119
<v Speaker 5>the fifties and the sixties and the seventies and read

989
00:53:30.199 --> 00:53:32.519
<v Speaker 5>some of the papers that people wrote about software programming

990
00:53:32.559 --> 00:53:37.199
<v Speaker 5>back then, and the elegance with which they solve the

991
00:53:37.239 --> 00:53:39.400
<v Speaker 5>problems that the current problems that we have today, and

992
00:53:39.440 --> 00:53:42.960
<v Speaker 5>you start to think, why is everything so complicated now?

993
00:53:43.679 --> 00:53:46.920
<v Speaker 5>It doesn't need to be that way. It's kind of wild.

994
00:53:48.159 --> 00:53:53.079
<v Speaker 1>Yeah, so I think J had a question, and then

995
00:53:53.719 --> 00:53:55.440
<v Speaker 1>we're kind of getting toward our time.

996
00:53:55.679 --> 00:53:59.039
<v Speaker 4>So yeah, so this this was something that you'd actually

997
00:53:59.039 --> 00:54:00.800
<v Speaker 4>brought up, either in the two or in some of

998
00:54:00.840 --> 00:54:07.760
<v Speaker 4>the pre pre chat email or something. But request animation frame,

999
00:54:07.840 --> 00:54:10.960
<v Speaker 4>so that it's totally switching gears to a technical topic

1000
00:54:11.880 --> 00:54:16.599
<v Speaker 4>request animation frame? Do I really need to know about it?

1001
00:54:16.639 --> 00:54:21.480
<v Speaker 4>Is it really that important? How should I employ it

1002
00:54:21.599 --> 00:54:24.039
<v Speaker 4>or not? And as react using it behind the scenes?

1003
00:54:24.400 --> 00:54:27.480
<v Speaker 5>Oh, that really really depends. I'll tell you what I

1004
00:54:28.039 --> 00:54:31.679
<v Speaker 5>know about request animation frame. I don't think I've ever

1005
00:54:31.800 --> 00:54:35.360
<v Speaker 5>actively used request animation frame. No, I may have once

1006
00:54:35.440 --> 00:54:40.880
<v Speaker 5>or twice, But it depends. It very much depends on

1007
00:54:40.920 --> 00:54:42.920
<v Speaker 5>the kind of programming you're doing. Ay, are you doing

1008
00:54:42.920 --> 00:54:45.360
<v Speaker 5>a lot of animation? You probably do need to know

1009
00:54:45.440 --> 00:54:48.480
<v Speaker 5>that there's a lot. There's so much nuance in the

1010
00:54:48.559 --> 00:54:50.960
<v Speaker 5>kinds of things, and you can go so deep into

1011
00:54:50.960 --> 00:54:53.480
<v Speaker 5>one area when become an expert in that area, is

1012
00:54:53.559 --> 00:54:56.000
<v Speaker 5>such that you almost never touch this other stuff that

1013
00:54:56.639 --> 00:54:58.599
<v Speaker 5>maybe most other people do. And this is what a

1014
00:54:58.599 --> 00:54:58.960
<v Speaker 5>lot of.

1015
00:55:01.159 --> 00:55:04.519
<v Speaker 4>So I was thinking. So I've I've been using it

1016
00:55:04.559 --> 00:55:06.840
<v Speaker 4>by default lately, like anytime that I'm going to be

1017
00:55:07.559 --> 00:55:10.559
<v Speaker 4>doing anything with a DOM, I'm doing it inside of

1018
00:55:10.559 --> 00:55:13.760
<v Speaker 4>a request animation frame. I might even do the calculation outside,

1019
00:55:13.760 --> 00:55:18.000
<v Speaker 4>but then I do the actual Okay, replace children, insert

1020
00:55:18.000 --> 00:55:22.960
<v Speaker 4>adjacent HTML, text content equals, like any of that stuff.

1021
00:55:23.239 --> 00:55:25.519
<v Speaker 4>I just shove all of that into a request animation frame.

1022
00:55:25.559 --> 00:55:28.039
<v Speaker 4>And I was under the impression, which might be wrong,

1023
00:55:28.719 --> 00:55:32.800
<v Speaker 4>that that means that when it's inside of a request

1024
00:55:32.800 --> 00:55:35.079
<v Speaker 4>animation frame, that it actually is gonna get cued and

1025
00:55:35.119 --> 00:55:39.119
<v Speaker 4>batched by the browser and done all at once, rather

1026
00:55:39.280 --> 00:55:46.760
<v Speaker 4>than it cutting the browser's redraw. Because essentially, every time

1027
00:55:46.760 --> 00:55:50.119
<v Speaker 4>you do a dot text content or a dot ner HTML,

1028
00:55:50.320 --> 00:55:53.280
<v Speaker 4>well I guess not dot text content, well maybe potentially,

1029
00:55:53.519 --> 00:55:57.039
<v Speaker 4>but you are causing the browser to do a redraw.

1030
00:55:57.079 --> 00:55:59.280
<v Speaker 4>So if you do one online five, and you do

1031
00:55:59.280 --> 00:56:02.320
<v Speaker 4>another one online six and another one line seven, then

1032
00:56:02.360 --> 00:56:05.119
<v Speaker 4>you're telling the browser to redraw three times. And I

1033
00:56:05.159 --> 00:56:07.800
<v Speaker 4>thought that the deal was if you use request animation frame.

1034
00:56:08.239 --> 00:56:10.480
<v Speaker 4>It's saying, Hey, anything that I'm going to do that's

1035
00:56:10.519 --> 00:56:14.880
<v Speaker 4>going to redraw, wait until this complete before you do

1036
00:56:14.920 --> 00:56:17.960
<v Speaker 4>any redraws, and that maybe maybe the browsers are optimizing

1037
00:56:18.000 --> 00:56:19.400
<v Speaker 4>that way when I don't use it.

1038
00:56:19.719 --> 00:56:21.599
<v Speaker 5>Yeah, that's that's not quite right.

1039
00:56:21.760 --> 00:56:23.039
<v Speaker 4>Actually good.

1040
00:56:23.079 --> 00:56:25.519
<v Speaker 5>So if you do it outside yeah, no, if you

1041
00:56:25.519 --> 00:56:28.800
<v Speaker 5>do it outside the request animation frame. So we used

1042
00:56:28.800 --> 00:56:32.960
<v Speaker 5>to talk a lot about screen thrashing, you know, in

1043
00:56:32.960 --> 00:56:36.320
<v Speaker 5>the front of it. Yes, and that happens when you

1044
00:56:36.440 --> 00:56:39.599
<v Speaker 5>alternatively read and write to the DOM. So if you

1045
00:56:39.679 --> 00:56:41.159
<v Speaker 5>if you read and then write, and then read and

1046
00:56:41.159 --> 00:56:42.960
<v Speaker 5>the write and the read, then the DOM has to

1047
00:56:43.360 --> 00:56:45.320
<v Speaker 5>paint so you can read the new update and the

1048
00:56:45.360 --> 00:56:47.920
<v Speaker 5>paint so you can read the new update. However, for

1049
00:56:48.159 --> 00:56:50.960
<v Speaker 5>a very long time, if all you're doing is reading,

1050
00:56:51.559 --> 00:56:53.079
<v Speaker 5>or if you have a batch of reads and a

1051
00:56:53.119 --> 00:56:57.039
<v Speaker 5>batch of rights, it will do those like in batches.

1052
00:56:57.079 --> 00:56:59.800
<v Speaker 5>You'll do the reads, and then if you have sequentially

1053
00:56:59.800 --> 00:57:03.719
<v Speaker 5>so rights, it will do the rights in one draw.

1054
00:57:04.519 --> 00:57:07.239
<v Speaker 5>So it'll it'll do it all in one frame. Essentially,

1055
00:57:07.320 --> 00:57:12.639
<v Speaker 5>what request animation frame does for you is if you

1056
00:57:12.679 --> 00:57:14.679
<v Speaker 5>do it outside the request animation frame, it'll it'll do

1057
00:57:14.679 --> 00:57:17.239
<v Speaker 5>it kind of immediately, but if you do it in

1058
00:57:17.239 --> 00:57:21.440
<v Speaker 5>the request animation frame, it waits until the browser is

1059
00:57:21.440 --> 00:57:25.280
<v Speaker 5>about to do a paint anyway, and then we'll execute

1060
00:57:25.280 --> 00:57:27.800
<v Speaker 5>on that. And that can be really useful. However, if

1061
00:57:27.880 --> 00:57:30.639
<v Speaker 5>the what you're doing within that request animation frame takes

1062
00:57:30.719 --> 00:57:34.400
<v Speaker 5>longer than sixteen milliseconds to accomplish, you end up getting

1063
00:57:34.480 --> 00:57:39.760
<v Speaker 5>screen thrashing again. It pauses the like it becomes jarring

1064
00:57:39.800 --> 00:57:42.519
<v Speaker 5>and janky, and so you have to pay close attention

1065
00:57:42.760 --> 00:57:46.800
<v Speaker 5>to the amount of time it takes to do those things.

1066
00:57:46.800 --> 00:57:48.079
<v Speaker 5>So you have to be doing all the you know,

1067
00:57:48.119 --> 00:57:50.239
<v Speaker 5>the performance testing to make sure you're you're staying inside

1068
00:57:50.239 --> 00:57:51.360
<v Speaker 5>of that's sixteen milliseconds.

1069
00:57:53.119 --> 00:57:56.280
<v Speaker 4>Okay, yeah, all right, yeah, because that's that's something that

1070
00:57:56.320 --> 00:57:59.960
<v Speaker 4>I've just started using because I have heard about its benefits.

1071
00:58:00.039 --> 00:58:02.440
<v Speaker 4>I'm not they don't apply to the stuff I'm doing.

1072
00:58:02.440 --> 00:58:05.239
<v Speaker 4>I'm I'm but I don't know. Here's the thing here,

1073
00:58:05.320 --> 00:58:09.159
<v Speaker 4>this is the reason that my brain went to this. Okay, Angular,

1074
00:58:10.800 --> 00:58:13.519
<v Speaker 4>you could have one hundred items in a drop down

1075
00:58:13.559 --> 00:58:18.679
<v Speaker 4>list and change something. An Angular would take noticeable time

1076
00:58:19.559 --> 00:58:22.559
<v Speaker 4>to redraw those one hundred IDEs. I'm like, that is insane.

1077
00:58:22.599 --> 00:58:24.480
<v Speaker 4>There's no way that's real now I think that the

1078
00:58:24.519 --> 00:58:26.199
<v Speaker 4>people that came up with those demos, I think they

1079
00:58:26.280 --> 00:58:29.760
<v Speaker 4>must have been doing something that was horrendously wrong. But

1080
00:58:29.800 --> 00:58:33.480
<v Speaker 4>I think they were doing something like writing each of

1081
00:58:33.519 --> 00:58:36.880
<v Speaker 4>the hundred items into the drop down list or I

1082
00:58:37.239 --> 00:58:40.119
<v Speaker 4>don't know. I don't exactly know how it happened. I

1083
00:58:40.239 --> 00:58:42.880
<v Speaker 4>just know that Angular used to get ridiculously slow. And

1084
00:58:42.920 --> 00:58:45.000
<v Speaker 4>again I don't think it was Angular's fault per se,

1085
00:58:45.159 --> 00:58:49.800
<v Speaker 4>but people using non angular patterns in Angular or whatever.

1086
00:58:49.880 --> 00:58:54.000
<v Speaker 4>But it was one of the criticisms that drove React

1087
00:58:54.079 --> 00:58:57.280
<v Speaker 4>success was it was easy to do really dumb things

1088
00:58:57.280 --> 00:59:03.159
<v Speaker 4>in Angular, where simple modifications to the page would freeze

1089
00:59:03.480 --> 00:59:04.079
<v Speaker 4>the browser.

1090
00:59:05.280 --> 00:59:11.159
<v Speaker 5>Yeah. Yeah that if you can, you can find the

1091
00:59:11.159 --> 00:59:13.519
<v Speaker 5>the weaknesses and just about any of these frameworks. So yeah,

1092
00:59:13.559 --> 00:59:16.880
<v Speaker 5>I remember doing Angular and the problem was always the

1093
00:59:17.440 --> 00:59:20.880
<v Speaker 5>dirty checking. If you're not managing your state well and

1094
00:59:20.920 --> 00:59:23.800
<v Speaker 5>you're forcing anguler to do the dirty checking all the time,

1095
00:59:24.119 --> 00:59:26.960
<v Speaker 5>then it's going to have super bad performance. And I

1096
00:59:27.000 --> 00:59:28.960
<v Speaker 5>ran to the exactly these problems. At the same time.

1097
00:59:29.840 --> 00:59:33.079
<v Speaker 5>React with a virtual dog means that they can calculate

1098
00:59:33.599 --> 00:59:37.760
<v Speaker 5>off of the paint thread what needs to be painted,

1099
00:59:37.800 --> 00:59:40.159
<v Speaker 5>and then in one fell swoop, you know, paint as

1100
00:59:40.199 --> 00:59:42.519
<v Speaker 5>they do the reconciliation. That's kind of their their thing.

1101
00:59:42.599 --> 00:59:45.880
<v Speaker 5>But you see, now you have things like use effects

1102
00:59:45.880 --> 00:59:49.559
<v Speaker 5>and all these hooks where it becomes very easy to

1103
00:59:49.719 --> 00:59:54.559
<v Speaker 5>use them poorly, and you can get the same kind

1104
00:59:54.559 --> 00:59:58.320
<v Speaker 5>of really bad performance, really jank experience, and taking a

1105
00:59:58.360 --> 01:00:01.559
<v Speaker 5>long time to accomplish what should be pretty simple work

1106
01:00:01.639 --> 01:00:04.639
<v Speaker 5>because you're just using these use effects in really poor ways.

1107
01:00:05.599 --> 01:00:07.679
<v Speaker 5>And I'm sure the same thing can be said of

1108
01:00:07.800 --> 01:00:10.199
<v Speaker 5>a view. I'm much less familiar with that, but I'm

1109
01:00:10.199 --> 01:00:13.039
<v Speaker 5>sure it has its own situations like that. If you

1110
01:00:14.400 --> 01:00:16.440
<v Speaker 5>have these foot guns and all these frameworks need to

1111
01:00:16.480 --> 01:00:22.880
<v Speaker 5>have foot guns somewhere in there, that except well, I

1112
01:00:22.880 --> 01:00:25.440
<v Speaker 5>can imagine a few scenarios in which HTMX would fall apart,

1113
01:00:25.440 --> 01:00:27.800
<v Speaker 5>but is a pretty interesting.

1114
01:00:29.760 --> 01:00:29.960
<v Speaker 2>Yeah.

1115
01:00:30.039 --> 01:00:34.159
<v Speaker 1>Yeah, but again, the surface area on HTMX is considerably

1116
01:00:34.199 --> 01:00:39.679
<v Speaker 1>smaller than say a react or an angular, so.

1117
01:00:38.079 --> 01:00:40.159
<v Speaker 2>That that's one thing to consider. The other thing is

1118
01:00:40.159 --> 01:00:40.760
<v Speaker 2>is that.

1119
01:00:42.960 --> 01:00:46.360
<v Speaker 1>So I I'm not as involved in the angular community

1120
01:00:46.400 --> 01:00:50.159
<v Speaker 1>as I used to be, but they've rewritten like you

1121
01:00:50.320 --> 01:00:52.920
<v Speaker 1>mentioned that, try checking. They've written that like I don't

1122
01:00:52.920 --> 01:00:56.119
<v Speaker 1>even know how many times right, and made major forward

1123
01:00:56.159 --> 01:00:59.239
<v Speaker 1>progress on that, And so I mean That's one nice

1124
01:00:59.280 --> 01:01:02.000
<v Speaker 1>thing about a lot of the frameworks is they see

1125
01:01:02.039 --> 01:01:05.280
<v Speaker 1>the warts a lot of times as quickly as we do.

1126
01:01:05.960 --> 01:01:08.199
<v Speaker 1>It just takes them time to figure out how to

1127
01:01:08.239 --> 01:01:10.280
<v Speaker 1>make it work for people who are.

1128
01:01:10.239 --> 01:01:10.960
<v Speaker 2>Using the framework.

1129
01:01:11.039 --> 01:01:13.440
<v Speaker 1>But then at the end of the day, a lot

1130
01:01:13.440 --> 01:01:17.559
<v Speaker 1>of times you get that update or upgrade for free

1131
01:01:17.840 --> 01:01:23.119
<v Speaker 1>or for you know, a tiny bit of change when

1132
01:01:23.159 --> 01:01:26.360
<v Speaker 1>you update your framework. And so, I mean there are

1133
01:01:26.400 --> 01:01:29.679
<v Speaker 1>some really nice reasons to use a lot of these frameworks.

1134
01:01:29.960 --> 01:01:32.199
<v Speaker 5>And you can see that happening right now with React

1135
01:01:32.199 --> 01:01:34.719
<v Speaker 5>as well with the React compiler. That is going to.

1136
01:01:35.320 --> 01:01:36.599
<v Speaker 2>Yeah a lot.

1137
01:01:38.320 --> 01:01:40.440
<v Speaker 1>Yeah, it's gonna make things a lot nicer for a

1138
01:01:40.440 --> 01:01:43.960
<v Speaker 1>lot of people. We're kind of toward the end of

1139
01:01:43.960 --> 01:01:45.760
<v Speaker 1>our time. I think I'm gonna push just the picks.

1140
01:01:46.559 --> 01:01:48.599
<v Speaker 1>The one follow up I have, and so maybe we'll

1141
01:01:48.599 --> 01:01:50.639
<v Speaker 1>have you back on Corey is.

1142
01:01:51.000 --> 01:01:52.599
<v Speaker 2>I would love to get into.

1143
01:01:52.480 --> 01:01:57.199
<v Speaker 1>Now that we've kind of talked about, you know, APIs,

1144
01:01:57.280 --> 01:02:00.440
<v Speaker 1>do you need to know them? You know, what are

1145
01:02:00.480 --> 01:02:03.559
<v Speaker 1>some of the trade offs? You know, where's that going

1146
01:02:03.639 --> 01:02:06.519
<v Speaker 1>to get you and things like that. I'd actually love

1147
01:02:06.519 --> 01:02:08.679
<v Speaker 1>to have you back on and actually talk about the

1148
01:02:08.719 --> 01:02:11.880
<v Speaker 1>dom APIs you think people should know, right and so

1149
01:02:11.960 --> 01:02:14.679
<v Speaker 1>you can give us a list of you know, a

1150
01:02:14.760 --> 01:02:17.159
<v Speaker 1>dozen or so, AJ can throw in the ones that

1151
01:02:17.199 --> 01:02:20.199
<v Speaker 1>he thinks. I'm assuming that most are the ones that

1152
01:02:20.199 --> 01:02:22.599
<v Speaker 1>most people come up with on that list. You're if

1153
01:02:22.679 --> 01:02:24.760
<v Speaker 1>you give us a list of twelve, probably eight of

1154
01:02:24.760 --> 01:02:27.079
<v Speaker 1>them out of anybody's list are probably gonna be the same.

1155
01:02:28.519 --> 01:02:30.719
<v Speaker 1>So then we can get in and we can say, Okay,

1156
01:02:31.119 --> 01:02:33.599
<v Speaker 1>these ones are the slam dunks. These are the ones

1157
01:02:33.639 --> 01:02:38.159
<v Speaker 1>that I surprised myself by reaching for often that you know,

1158
01:02:38.199 --> 01:02:40.159
<v Speaker 1>most people wouldn't think of, but they just pay off.

1159
01:02:40.719 --> 01:02:44.320
<v Speaker 1>And yeah, then we can give people a direction if

1160
01:02:44.320 --> 01:02:46.320
<v Speaker 1>you're working in a react or a view or an

1161
01:02:46.320 --> 01:02:48.639
<v Speaker 1>angular start here.

1162
01:02:48.840 --> 01:02:50.920
<v Speaker 5>Right, Yeah, that'd be fun.

1163
01:02:52.639 --> 01:02:55.360
<v Speaker 1>All right, let's do it. Well, we'll talk to you

1164
01:02:55.400 --> 01:02:58.480
<v Speaker 1>after the show on how to line that up. But yeah,

1165
01:02:58.559 --> 01:03:02.199
<v Speaker 1>let's move into picks. Steve, do you want to start

1166
01:03:02.239 --> 01:03:03.280
<v Speaker 1>us with picks?

1167
01:03:04.159 --> 01:03:05.960
<v Speaker 3>Oh, we're going to the high point right off the bat.

1168
01:03:06.079 --> 01:03:08.679
<v Speaker 2>Huh all right, that's right. I couldn't wait any longer.

1169
01:03:09.000 --> 01:03:13.239
<v Speaker 3>Right, Uh See, you didn't have any other external picks

1170
01:03:13.239 --> 01:03:15.400
<v Speaker 3>that I can think of right now, so I'll just

1171
01:03:15.480 --> 01:03:21.159
<v Speaker 3>go to the dad jokes of the week. I shall do.

1172
01:03:21.719 --> 01:03:25.880
<v Speaker 3>I'll do four today instead of three. So here is

1173
01:03:26.000 --> 01:03:31.039
<v Speaker 3>proof that the annual Missed Universe pageant is fixed. Every

1174
01:03:31.039 --> 01:03:32.079
<v Speaker 3>winner has come from Earth.

1175
01:03:35.440 --> 01:03:35.960
<v Speaker 2>That's Steve.

1176
01:03:36.599 --> 01:03:38.280
<v Speaker 5>Yeah.

1177
01:03:38.400 --> 01:03:39.920
<v Speaker 3>My wife told me the other day that I should

1178
01:03:39.960 --> 01:03:42.199
<v Speaker 3>sign up for my company's four oh one k I said,

1179
01:03:42.480 --> 01:03:46.679
<v Speaker 3>not a chance. I can't even run a mile. That's

1180
01:03:46.719 --> 01:03:49.519
<v Speaker 3>right up Chuck Sally with his running and half marathon

1181
01:03:49.599 --> 01:03:56.079
<v Speaker 3>stuff he's doing. Man. Anyway, Now, from the moment when

1182
01:03:56.119 --> 01:03:58.519
<v Speaker 3>I first got married, from the moment I saw my

1183
01:03:58.559 --> 01:04:03.800
<v Speaker 3>wife's abacus had to I knew I could count on her.

1184
01:04:04.679 --> 01:04:06.440
<v Speaker 2>No, you can't. Those beads don't move.

1185
01:04:06.800 --> 01:04:11.800
<v Speaker 3>Right, that's true. And then finally, I've been seeing my

1186
01:04:11.840 --> 01:04:14.360
<v Speaker 3>psychiatrist for a while and he finally diagnosed me as

1187
01:04:14.360 --> 01:04:16.719
<v Speaker 3>a kleptomaniac. And I said, is there anything I can

1188
01:04:16.760 --> 01:04:22.440
<v Speaker 3>take for it? Those are the dad jokes of the week.

1189
01:04:24.440 --> 01:04:26.559
<v Speaker 2>All right, AJ, what are your picks?

1190
01:04:27.119 --> 01:04:30.679
<v Speaker 4>First thing I'm gonna pick is grug Brain dot dev,

1191
01:04:31.440 --> 01:04:34.800
<v Speaker 4>which is one of the most recent editions that I've

1192
01:04:34.800 --> 01:04:38.639
<v Speaker 4>added to Creedsaccraftsmanship dot com. It is I believe it's by.

1193
01:04:38.960 --> 01:04:40.400
<v Speaker 4>I don't want to say who it's by. I don't

1194
01:04:40.400 --> 01:04:42.880
<v Speaker 4>want to give any bias, but I think it's pretty

1195
01:04:42.880 --> 01:04:44.679
<v Speaker 4>clear who it's by once you reach the end of it,

1196
01:04:44.719 --> 01:04:48.199
<v Speaker 4>because I think he says so, but it is if

1197
01:04:48.239 --> 01:04:51.920
<v Speaker 4>you've ever seen the grug brain meme, it's you know,

1198
01:04:52.119 --> 01:04:58.280
<v Speaker 4>like like big brain think multiple inheritance, multi layer system,

1199
01:04:58.519 --> 01:05:02.960
<v Speaker 4>very good, but grug brain know, grug brain too stupid

1200
01:05:03.000 --> 01:05:06.760
<v Speaker 4>for big brain inheritance. Grug brain used simple object and

1201
01:05:06.840 --> 01:05:10.199
<v Speaker 4>get work done. It's a little bit hard to read

1202
01:05:10.199 --> 01:05:15.000
<v Speaker 4>because the whole thing is written in that style, which is,

1203
01:05:15.199 --> 01:05:17.400
<v Speaker 4>you know, it's great for a joke, but it's not

1204
01:05:17.599 --> 01:05:22.119
<v Speaker 4>good for an entire article. But the entire articles written

1205
01:05:22.119 --> 01:05:23.960
<v Speaker 4>that way, and I don't think there was a single

1206
01:05:23.960 --> 01:05:29.039
<v Speaker 4>thing I disagreed with in it, because yeah, I'm definitely

1207
01:05:29.079 --> 01:05:32.440
<v Speaker 4>I'm definitely a grug brain dev. So if you think

1208
01:05:32.480 --> 01:05:36.639
<v Speaker 4>that you might be too dumb to understand all the

1209
01:05:36.639 --> 01:05:39.559
<v Speaker 4>stuff that's going on in web dev these days, you

1210
01:05:39.639 --> 01:05:42.920
<v Speaker 4>might find great relief in joining the geniuses of grug

1211
01:05:42.960 --> 01:05:43.679
<v Speaker 4>brain dot dev.

1212
01:05:44.000 --> 01:05:46.159
<v Speaker 3>Well, as he says at the end, under the category

1213
01:05:46.159 --> 01:05:49.639
<v Speaker 3>of imposter syndrome, any young grug read this far probably

1214
01:05:49.679 --> 01:05:52.639
<v Speaker 3>do find in program career, even if frustrations and worry

1215
01:05:52.760 --> 01:05:53.719
<v Speaker 3>is always to be there.

1216
01:05:53.800 --> 01:05:54.119
<v Speaker 2>Sorry.

1217
01:05:55.599 --> 01:06:02.480
<v Speaker 4>Yep, another another pick is you know, we're talking about

1218
01:06:02.480 --> 01:06:05.199
<v Speaker 4>what's what's a good place to find material to learn.

1219
01:06:05.400 --> 01:06:08.840
<v Speaker 4>So I've been compiling creeds of craftsmanship. Uh. Most of

1220
01:06:08.880 --> 01:06:10.440
<v Speaker 4>the stuff that's on there has been on there for

1221
01:06:10.480 --> 01:06:12.960
<v Speaker 4>a while. Every once in a while I add something

1222
01:06:13.519 --> 01:06:16.840
<v Speaker 4>new and the most the most recent two things are

1223
01:06:16.960 --> 01:06:19.599
<v Speaker 4>the grug brain dot dev and then that it was

1224
01:06:19.679 --> 01:06:24.960
<v Speaker 4>actually the original talk that inspired can see Dodd's AHA

1225
01:06:25.000 --> 01:06:28.079
<v Speaker 4>programming that I can't let me go look at it

1226
01:06:28.119 --> 01:06:30.599
<v Speaker 4>real quick to bring what the name was. But anyway,

1227
01:06:30.639 --> 01:06:34.079
<v Speaker 4>I add stuff to this and it's it's non denominational

1228
01:06:34.320 --> 01:06:36.679
<v Speaker 4>other other thing that it's all pretty much grug brain.

1229
01:06:37.559 --> 01:06:40.800
<v Speaker 4>But you know, it's it's not really favoring a particular

1230
01:06:41.519 --> 01:06:49.280
<v Speaker 4>framework or or UH language. It's it's pretty much just

1231
01:06:50.480 --> 01:06:53.039
<v Speaker 4>the keys of success to becoming a great developer. Yeah,

1232
01:06:53.079 --> 01:06:54.679
<v Speaker 4>one of the one of the most recent ones, it's

1233
01:06:54.800 --> 01:06:58.239
<v Speaker 4>really old from twenty fourteen rails comp all the Little

1234
01:06:58.280 --> 01:07:02.320
<v Speaker 4>Things by Sandy met and that was that's actually cited

1235
01:07:02.599 --> 01:07:09.119
<v Speaker 4>in the UH the in one of Kensey Dodd's resources

1236
01:07:09.159 --> 01:07:13.440
<v Speaker 4>on avoid hasty abstractions. But I hadn't I hadn't put

1237
01:07:13.440 --> 01:07:15.679
<v Speaker 4>it on there before. It was really good. There were

1238
01:07:15.800 --> 01:07:19.280
<v Speaker 4>a couple of things towards the end, I disagreed with uh,

1239
01:07:19.440 --> 01:07:21.960
<v Speaker 4>But then again, she's giving such a small example of

1240
01:07:22.000 --> 01:07:25.400
<v Speaker 4>her her toy project where she's implementing she starts to

1241
01:07:25.440 --> 01:07:28.639
<v Speaker 4>implement inheritance in it, which you know, I'm I'm definitely

1242
01:07:28.639 --> 01:07:31.719
<v Speaker 4>in the camp of inheritance is evil. But but maybe

1243
01:07:32.000 --> 01:07:34.679
<v Speaker 4>maybe there's a larger example where where there is an

1244
01:07:34.679 --> 01:07:38.440
<v Speaker 4>exception to an inheritance is evil that she she she

1245
01:07:38.440 --> 01:07:41.199
<v Speaker 4>she makes a case that it's not always evil. I think,

1246
01:07:41.639 --> 01:07:44.920
<v Speaker 4>you know. Anyway, So there's that. And then lastly, I mean,

1247
01:07:44.960 --> 01:07:49.119
<v Speaker 4>we're talking about high performance jQuery alternatives. You've got to

1248
01:07:49.159 --> 01:07:53.079
<v Speaker 4>try aj query. Uh. It's been released on Twitter, the

1249
01:07:53.199 --> 01:07:58.679
<v Speaker 4>latest incarnation. Unfortunately, because it's now AI enhanced, it no

1250
01:07:58.760 --> 01:08:01.280
<v Speaker 4>longer fits in a tweet as texts. So I had

1251
01:08:01.320 --> 01:08:03.760
<v Speaker 4>to take a picture of it because now we've got that,

1252
01:08:03.960 --> 01:08:09.880
<v Speaker 4>we've got types in there. It's fully documented and yeah,

1253
01:08:09.920 --> 01:08:13.480
<v Speaker 4>it really really you know, ran it through chat GPT

1254
01:08:13.760 --> 01:08:19.079
<v Speaker 4>too to make sure it's it's up to snuff. But yeah,

1255
01:08:19.239 --> 01:08:22.640
<v Speaker 4>and and you know, uncompressed, it's kind of big. It's

1256
01:08:22.680 --> 01:08:27.399
<v Speaker 4>like I don't know, uh, two hundred bytes or so,

1257
01:08:28.359 --> 01:08:32.600
<v Speaker 4>but but uh, you know, you you you g zip

1258
01:08:32.680 --> 01:08:36.119
<v Speaker 4>that down and deliver it. It's the best, the best

1259
01:08:36.119 --> 01:08:40.680
<v Speaker 4>thing ever, hot, hottest thing since since sliced bread. So

1260
01:08:41.039 --> 01:08:43.479
<v Speaker 4>you know, get it while it's hot. A j query

1261
01:08:43.600 --> 01:08:45.960
<v Speaker 4>three point zero point three, it's a big one, y'all.

1262
01:08:47.560 --> 01:08:49.239
<v Speaker 2>A I to it. It should be a j P

1263
01:08:49.399 --> 01:08:50.479
<v Speaker 2>t query.

1264
01:08:51.600 --> 01:08:53.000
<v Speaker 4>Yeah, that that one's taken.

1265
01:08:53.279 --> 01:08:57.560
<v Speaker 1>That's already okay, just trying to I'm just trying to help,

1266
01:08:57.800 --> 01:09:00.439
<v Speaker 1>and I don't know, maybe you're not the aj behind it. Anyway,

1267
01:09:02.840 --> 01:09:05.279
<v Speaker 1>I'm gonna are you done? I was gonna just jump

1268
01:09:05.279 --> 01:09:07.000
<v Speaker 1>into my picks, and then I realized I might.

1269
01:09:06.920 --> 01:09:07.520
<v Speaker 2>Have cut you off.

1270
01:09:08.239 --> 01:09:09.840
<v Speaker 4>Now that was it. That was it.

1271
01:09:10.920 --> 01:09:17.039
<v Speaker 1>So every year I go to a board game convention

1272
01:09:17.159 --> 01:09:21.800
<v Speaker 1>here in Utah in Provo. It's called Timpcon, and I

1273
01:09:21.840 --> 01:09:24.399
<v Speaker 1>wind up helping out with the hot games tables and

1274
01:09:24.479 --> 01:09:28.199
<v Speaker 1>teaching people how to play board games. I usually take

1275
01:09:28.239 --> 01:09:30.439
<v Speaker 1>Friday off and go play board games all day Friday too.

1276
01:09:30.439 --> 01:09:31.720
<v Speaker 1>This year, I'm not gonna be able to do that,

1277
01:09:31.840 --> 01:09:35.600
<v Speaker 1>but so I wind up learning like six new games

1278
01:09:35.640 --> 01:09:39.279
<v Speaker 1>every time. I'm gonna pick a game that I've already

1279
01:09:39.319 --> 01:09:40.880
<v Speaker 1>picked on the show because I know how to play

1280
01:09:40.920 --> 01:09:45.039
<v Speaker 1>it and we've been I taught my wife and my

1281
01:09:45.119 --> 01:09:47.399
<v Speaker 1>kids how to play yesterday. It was funny because my

1282
01:09:47.439 --> 01:09:51.560
<v Speaker 1>fifteen year old was like, I really wantay, you know,

1283
01:09:51.760 --> 01:09:53.840
<v Speaker 1>because if you have fifteen year olds, you get it?

1284
01:09:53.880 --> 01:09:55.520
<v Speaker 1>Do you want to understand? It's like, I don't know,

1285
01:09:55.720 --> 01:09:59.600
<v Speaker 1>it's gonna be cool, and anyway we can miss her

1286
01:09:59.640 --> 01:10:01.880
<v Speaker 1>sitting down, play it right, It's like, looks forty five minutes.

1287
01:10:01.920 --> 01:10:02.479
<v Speaker 2>Okay, over.

1288
01:10:03.880 --> 01:10:05.720
<v Speaker 1>And by the end she was like, this is fun.

1289
01:10:06.520 --> 01:10:10.920
<v Speaker 1>So anyway that that's my testimonial for it. Like she

1290
01:10:11.000 --> 01:10:12.680
<v Speaker 1>was smiling at the end of the game. Of course,

1291
01:10:12.680 --> 01:10:16.079
<v Speaker 1>she also won, so that that might have helped too.

1292
01:10:17.199 --> 01:10:20.039
<v Speaker 1>My seventeen year old enjoyed it. My nine year old

1293
01:10:20.119 --> 01:10:24.680
<v Speaker 1>kept wanting to play. It might have been the deck

1294
01:10:24.680 --> 01:10:26.680
<v Speaker 1>building piece of it might have been a little beyond her.

1295
01:10:26.760 --> 01:10:30.279
<v Speaker 1>But we could literally just tell her, look, try and

1296
01:10:30.279 --> 01:10:31.920
<v Speaker 1>get all of the same color and get the highest

1297
01:10:32.000 --> 01:10:34.239
<v Speaker 1>numbers you can, and I think she would actually do

1298
01:10:34.399 --> 01:10:38.239
<v Speaker 1>okay just playing that strategy. But effectively, what it is,

1299
01:10:38.239 --> 01:10:41.840
<v Speaker 1>it's it's a blend of capture the flag and war

1300
01:10:42.479 --> 01:10:47.399
<v Speaker 1>in a tournament style and and then there's the deck

1301
01:10:47.399 --> 01:10:50.760
<v Speaker 1>building component, right, and so you basically curate a deck

1302
01:10:51.399 --> 01:10:56.039
<v Speaker 1>and what you do is somebody starts, they play a

1303
01:10:56.119 --> 01:11:00.279
<v Speaker 1>card deck card capture the flag, and then they're oponent

1304
01:11:00.359 --> 01:11:04.840
<v Speaker 1>plays cards until their cards total equal to or more

1305
01:11:04.920 --> 01:11:08.239
<v Speaker 1>than the top card of the other players pile that's

1306
01:11:08.279 --> 01:11:11.319
<v Speaker 1>captured the flag, and then they capture the flag from them.

1307
01:11:11.520 --> 01:11:13.479
<v Speaker 2>The cards in the other players pile go on to

1308
01:11:13.560 --> 01:11:14.000
<v Speaker 2>the bench.

1309
01:11:15.439 --> 01:11:17.600
<v Speaker 1>You can stack cards at the same kind on the bench,

1310
01:11:18.199 --> 01:11:21.039
<v Speaker 1>and you have six slots on your bench. When your

1311
01:11:21.039 --> 01:11:23.960
<v Speaker 1>bench is full and you can't place another card on it,

1312
01:11:24.000 --> 01:11:26.039
<v Speaker 1>if you need to place another card on it, you can't,

1313
01:11:26.479 --> 01:11:29.800
<v Speaker 1>you lose. If you can't, If you run out of

1314
01:11:29.800 --> 01:11:32.239
<v Speaker 1>cards and you can't beat the other players.

1315
01:11:31.880 --> 01:11:34.439
<v Speaker 2>Pile, you lose the round.

1316
01:11:34.840 --> 01:11:36.960
<v Speaker 1>And then you get the trophy that's on top of

1317
01:11:37.000 --> 01:11:40.079
<v Speaker 1>the trophy pile on that field that you're playing on.

1318
01:11:40.319 --> 01:11:43.079
<v Speaker 1>And so it's basically a one on one. So if

1319
01:11:43.079 --> 01:11:46.439
<v Speaker 1>you're playing eight players, there are four one on one fields,

1320
01:11:46.680 --> 01:11:49.039
<v Speaker 1>and then you each have a schedule where you rotate

1321
01:11:49.479 --> 01:11:52.520
<v Speaker 1>to play against the other people and you play seven rounds.

1322
01:11:53.359 --> 01:11:55.600
<v Speaker 1>The two top scorers at the end of the seven

1323
01:11:55.680 --> 01:11:58.640
<v Speaker 1>rounds go on ahead to head for the final, and

1324
01:11:58.720 --> 01:12:02.039
<v Speaker 1>whoever wins that wins. And so in the final, it

1325
01:12:02.119 --> 01:12:04.399
<v Speaker 1>was my it was me versus my fifteen year old

1326
01:12:04.680 --> 01:12:05.399
<v Speaker 1>and she'd beat me.

1327
01:12:06.319 --> 01:12:09.840
<v Speaker 2>So anyway, it's it's super fun board game.

1328
01:12:09.880 --> 01:12:14.840
<v Speaker 1>Geek says it's a one point seventy nine, so that's

1329
01:12:16.039 --> 01:12:18.399
<v Speaker 1>it's it's pretty approachable for the casual gamer.

1330
01:12:19.000 --> 01:12:22.239
<v Speaker 2>The setup's pretty simple. There aren't a ton of pieces.

1331
01:12:24.439 --> 01:12:30.039
<v Speaker 1>You know, you have different color cards that do different things, right,

1332
01:12:30.079 --> 01:12:32.359
<v Speaker 1>So that's that's where the deck building comes into play.

1333
01:12:32.479 --> 01:12:34.720
<v Speaker 1>Is like one of them say will say if this

1334
01:12:34.800 --> 01:12:36.840
<v Speaker 1>is on your bench, then you get a certain ability,

1335
01:12:37.359 --> 01:12:38.840
<v Speaker 1>or you might get a card that says when you

1336
01:12:38.880 --> 01:12:42.600
<v Speaker 1>play this, or you know, sometimes it doesn't even say

1337
01:12:42.600 --> 01:12:46.520
<v Speaker 1>when you play this, which means that if it's as

1338
01:12:46.560 --> 01:12:48.359
<v Speaker 1>soon as you play it or whenever it's out, it

1339
01:12:48.399 --> 01:12:51.439
<v Speaker 1>does the thing right. And so I had a card

1340
01:12:51.520 --> 01:12:53.640
<v Speaker 1>that said, if there are any other purple cards on

1341
01:12:53.640 --> 01:12:56.319
<v Speaker 1>your bench, then this card has plus three power, right,

1342
01:12:56.359 --> 01:12:58.359
<v Speaker 1>So it was a one. But if I played another

1343
01:12:58.359 --> 01:13:01.800
<v Speaker 1>purple card and had it on my bench, then a four, right,

1344
01:13:02.399 --> 01:13:07.119
<v Speaker 1>And so anyway, so that's the rest of it. Some

1345
01:13:07.199 --> 01:13:09.399
<v Speaker 1>of them let you collect points towards the end of

1346
01:13:09.439 --> 01:13:12.319
<v Speaker 1>the game because the trophies are worth points, but you

1347
01:13:12.359 --> 01:13:15.840
<v Speaker 1>also have a pile of just loose points and so

1348
01:13:15.880 --> 01:13:18.640
<v Speaker 1>some of them say, if if this card captures the flag, right,

1349
01:13:18.720 --> 01:13:20.439
<v Speaker 1>if it's the last card you play before you capture

1350
01:13:20.439 --> 01:13:23.319
<v Speaker 1>the flag, then you get points. So anyway, whoever has

1351
01:13:23.439 --> 01:13:25.720
<v Speaker 1>the two people that have the top number of points

1352
01:13:25.720 --> 01:13:27.880
<v Speaker 1>at the end of the seven rounds, they go head

1353
01:13:27.880 --> 01:13:31.119
<v Speaker 1>to head and you win. You're probably wondering can you

1354
01:13:31.159 --> 01:13:32.520
<v Speaker 1>play with an odd number of players?

1355
01:13:32.560 --> 01:13:33.399
<v Speaker 2>The answer is yes.

1356
01:13:33.920 --> 01:13:37.439
<v Speaker 1>It has a robot deck, and so you're if you're

1357
01:13:37.439 --> 01:13:40.000
<v Speaker 1>playing against the robot, you play both sides, and so

1358
01:13:40.039 --> 01:13:43.359
<v Speaker 1>that robot deck has stuff in it, like this card

1359
01:13:43.479 --> 01:13:45.640
<v Speaker 1>is as powerful as the current round, so if you're

1360
01:13:45.680 --> 01:13:48.159
<v Speaker 1>on round one, it's a one, right, And so since

1361
01:13:48.199 --> 01:13:51.119
<v Speaker 1>your deck isn't strong, the robot's deck isn't as strong either,

1362
01:13:51.319 --> 01:13:54.039
<v Speaker 1>but he gets round six, and it's got some cards

1363
01:13:54.359 --> 01:13:56.560
<v Speaker 1>that before weren't giving you a whole lot of problems.

1364
01:13:56.199 --> 01:13:56.840
<v Speaker 2>And now they are.

1365
01:13:58.000 --> 01:13:59.920
<v Speaker 1>But you should have a stronger deck by then too,

1366
01:14:00.079 --> 01:14:02.880
<v Speaker 1>And so you just play the robot through and then

1367
01:14:03.119 --> 01:14:07.039
<v Speaker 1>the two players with highest scores, right, But if you

1368
01:14:07.119 --> 01:14:08.920
<v Speaker 1>lose to the robot, it gets the trophy.

1369
01:14:09.159 --> 01:14:09.359
<v Speaker 2>Right.

1370
01:14:09.720 --> 01:14:14.479
<v Speaker 1>So anyway, super fun, really enjoy it. I'll probably have

1371
01:14:15.000 --> 01:14:18.199
<v Speaker 1>we're doing six games at the board Game Conference, So

1372
01:14:18.279 --> 01:14:20.359
<v Speaker 1>for the next five or six weeks, you're gonna get

1373
01:14:20.359 --> 01:14:21.960
<v Speaker 1>a whole bunch of other ones. One of the other

1374
01:14:22.039 --> 01:14:25.800
<v Speaker 1>games is another version of Challengers. I just haven't played it.

1375
01:14:25.800 --> 01:14:28.319
<v Speaker 1>It's called Challengers Beach Cup. So I'll let you know

1376
01:14:28.359 --> 01:14:31.600
<v Speaker 1>when I learned that how that goes. But I'm imagining

1377
01:14:31.600 --> 01:14:34.520
<v Speaker 1>it is pretty similar to Challengers as.

1378
01:14:34.359 --> 01:14:35.479
<v Speaker 2>Far as other picks go.

1379
01:14:35.560 --> 01:14:41.960
<v Speaker 1>I've got a couple of other things. So I think

1380
01:14:42.000 --> 01:14:45.159
<v Speaker 1>Steve mentioned Chuck's half marathons or whatever. I just want

1381
01:14:45.159 --> 01:14:48.319
<v Speaker 1>to clarify I'm training for an iron Man. I'm gonna

1382
01:14:48.359 --> 01:14:51.640
<v Speaker 1>do it next year. I plan to break my body

1383
01:14:51.720 --> 01:14:53.680
<v Speaker 1>over a Saturday or a Sunday, depending on when the

1384
01:14:53.760 --> 01:14:56.800
<v Speaker 1>race is and right, and then I'll show up the

1385
01:14:56.800 --> 01:14:59.960
<v Speaker 1>next day for this podcast and you'll hear me talk

1386
01:15:00.000 --> 01:15:01.680
<v Speaker 1>going out of the puddle of whatever's left to me.

1387
01:15:01.880 --> 01:15:12.199
<v Speaker 1>But no, it's okay. So I've been doing a couple

1388
01:15:12.279 --> 01:15:13.920
<v Speaker 1>of things, and I'm just going to quickly shout out

1389
01:15:13.920 --> 01:15:15.880
<v Speaker 1>what those are. I've been using training Peaks, and then

1390
01:15:15.920 --> 01:15:18.479
<v Speaker 1>I bought a forty eight week training program for an

1391
01:15:18.479 --> 01:15:21.880
<v Speaker 1>iron Man that just goes into training Peaks. It scenks

1392
01:15:21.960 --> 01:15:23.800
<v Speaker 1>up with my garment app which means it goes on

1393
01:15:23.840 --> 01:15:25.840
<v Speaker 1>to my watch and so I just tell it I'm

1394
01:15:25.840 --> 01:15:28.279
<v Speaker 1>doing the workout for today on my watch, and then

1395
01:15:28.319 --> 01:15:30.600
<v Speaker 1>it times me and does on my laps and everything.

1396
01:15:30.720 --> 01:15:34.720
<v Speaker 1>So that's that's pretty nice. I've also been doing some

1397
01:15:34.760 --> 01:15:37.159
<v Speaker 1>strength training I've been using.

1398
01:15:37.199 --> 01:15:38.000
<v Speaker 2>I signed up for.

1399
01:15:37.920 --> 01:15:42.359
<v Speaker 1>A Transformation Challenges what they call it, with a company

1400
01:15:42.399 --> 01:15:45.439
<v Speaker 1>called First Form and they spell form pH or M.

1401
01:15:47.279 --> 01:15:51.279
<v Speaker 2>And man. Their stuff is just it's awesome and kick

1402
01:15:51.520 --> 01:15:52.199
<v Speaker 2>kick butt.

1403
01:15:52.880 --> 01:15:55.680
<v Speaker 1>They do sell a bunch of supplements, right, so I

1404
01:15:55.720 --> 01:15:57.359
<v Speaker 1>wound up buying a bunch of their other stuff.

1405
01:15:57.880 --> 01:15:59.640
<v Speaker 2>But their trainer has been terrific.

1406
01:16:00.119 --> 01:16:04.199
<v Speaker 1>Any questions I have, She's walked me through all the

1407
01:16:04.199 --> 01:16:05.600
<v Speaker 1>stuff I need to learn and know.

1408
01:16:06.119 --> 01:16:08.399
<v Speaker 2>It's just been amazing. So I'm gonna pick that.

1409
01:16:08.479 --> 01:16:12.159
<v Speaker 1>I'm gonna put a link in YouTube and hopefully get

1410
01:16:12.159 --> 01:16:15.560
<v Speaker 1>it into the show notes. That's my referral link. Now

1411
01:16:15.560 --> 01:16:17.520
<v Speaker 1>I don't get paid for the referral link. I think

1412
01:16:17.560 --> 01:16:20.000
<v Speaker 1>I might get some free swag from First Form if

1413
01:16:20.439 --> 01:16:23.640
<v Speaker 1>I'm entered into a drawing or something. I think that's

1414
01:16:23.680 --> 01:16:28.079
<v Speaker 1>how that works. But anyway, I'm just putting it out

1415
01:16:28.119 --> 01:16:32.000
<v Speaker 1>there because it's been amazing, and if you use my link.

1416
01:16:32.119 --> 01:16:37.279
<v Speaker 1>Then you join my coaches. You joined under my coach,

1417
01:16:37.279 --> 01:16:40.000
<v Speaker 1>and she's been amazing. So I just want to get

1418
01:16:40.000 --> 01:16:42.039
<v Speaker 1>you what I'm getting because it works and it's great.

1419
01:16:42.880 --> 01:16:48.079
<v Speaker 1>So far, I've lost like eight ten pounds and that's

1420
01:16:48.119 --> 01:16:51.079
<v Speaker 1>over like three weeks, two three weeks. But the other

1421
01:16:51.119 --> 01:16:54.600
<v Speaker 1>thing is is my gym has an inbody body scanner,

1422
01:16:55.359 --> 01:16:58.000
<v Speaker 1>and so I've lost like a dozen pounds in fat

1423
01:16:58.039 --> 01:17:01.680
<v Speaker 1>and I've put the rest back on and muscle and

1424
01:17:01.720 --> 01:17:03.560
<v Speaker 1>so I and I'm feeling terrific.

1425
01:17:03.640 --> 01:17:07.399
<v Speaker 2>My diabetes is well under control. It's just it's been

1426
01:17:07.439 --> 01:17:08.680
<v Speaker 2>it's been a really good thing for me.

1427
01:17:10.600 --> 01:17:12.119
<v Speaker 3>What are you type two diabetes?

1428
01:17:12.359 --> 01:17:16.680
<v Speaker 1>Two diabetes? Yeah, so it's it's been awesome. I've been

1429
01:17:16.680 --> 01:17:18.119
<v Speaker 1>type two diabetic.

1430
01:17:17.680 --> 01:17:19.600
<v Speaker 2>For like eighteen years.

1431
01:17:19.880 --> 01:17:22.560
<v Speaker 3>So yeah, I know if I was to do an

1432
01:17:22.600 --> 01:17:24.960
<v Speaker 3>iron Man, they would measure my time in days instead

1433
01:17:24.960 --> 01:17:25.520
<v Speaker 3>of hours.

1434
01:17:26.840 --> 01:17:29.079
<v Speaker 2>The course, after a while, Steve.

1435
01:17:29.039 --> 01:17:31.079
<v Speaker 3>Right, I might get kid. Yeah, they'd be okay, step

1436
01:17:31.199 --> 01:17:33.000
<v Speaker 3>go home, you know. But I mean I could do

1437
01:17:33.039 --> 01:17:35.159
<v Speaker 3>the swimming really well, on the biking pretty get the running.

1438
01:17:35.319 --> 01:17:37.199
<v Speaker 3>They just have to follow my holes in the pavement,

1439
01:17:37.239 --> 01:17:38.800
<v Speaker 3>you know. That's how I'm heavy for you.

1440
01:17:38.880 --> 01:17:41.680
<v Speaker 1>Yeah, the the bike is what I'm struggling with. I

1441
01:17:41.720 --> 01:17:45.119
<v Speaker 1>have a Wahoo trainer that I bought and it's it's

1442
01:17:45.119 --> 01:17:47.159
<v Speaker 1>been great, and I'll pick that next time and tell

1443
01:17:47.199 --> 01:17:47.680
<v Speaker 1>you what I bought.

1444
01:17:49.079 --> 01:17:50.399
<v Speaker 2>And then there was something else that I wanted to

1445
01:17:50.439 --> 01:17:52.600
<v Speaker 2>shout out about. H oh yeah.

1446
01:17:52.600 --> 01:17:56.359
<v Speaker 1>So this weekend I went to It was a retreat

1447
01:17:56.359 --> 01:18:02.359
<v Speaker 1>for faith based entrepreneurs. It was three days amazing stuff,

1448
01:18:02.640 --> 01:18:07.600
<v Speaker 1>big breakthroughs. You need to go and find the best

1449
01:18:07.720 --> 01:18:11.039
<v Speaker 1>link to kind of put you into the community that

1450
01:18:11.439 --> 01:18:12.520
<v Speaker 1>I connected.

1451
01:18:12.079 --> 01:18:12.560
<v Speaker 2>With for that.

1452
01:18:13.640 --> 01:18:17.800
<v Speaker 1>But yeah, I just got a lot of clarity on

1453
01:18:17.840 --> 01:18:20.359
<v Speaker 1>who I'm supposed to be and what I'm supposed to

1454
01:18:20.359 --> 01:18:23.279
<v Speaker 1>be doing. And I encourage people to just find if

1455
01:18:23.279 --> 01:18:25.479
<v Speaker 1>you're a person of faith and you're trying to be

1456
01:18:25.479 --> 01:18:28.239
<v Speaker 1>an entrepreneur, find people who are doing that. If you're

1457
01:18:28.279 --> 01:18:30.520
<v Speaker 1>not a person of faith and you just want to

1458
01:18:30.560 --> 01:18:33.000
<v Speaker 1>be a better programmer, go find people who are doing that.

1459
01:18:33.439 --> 01:18:37.399
<v Speaker 1>If you're right, I mean, whatever your ambition is and

1460
01:18:37.439 --> 01:18:40.399
<v Speaker 1>whatever your identity is, go find that and go find

1461
01:18:40.399 --> 01:18:43.239
<v Speaker 1>people who are being excellent what it is you want

1462
01:18:43.239 --> 01:18:45.039
<v Speaker 1>to be that you have a lot of things in

1463
01:18:45.079 --> 01:18:49.520
<v Speaker 1>common with, Because I guarantee you if you get with

1464
01:18:49.560 --> 01:18:51.439
<v Speaker 1>those people and you go deep You're going to have

1465
01:18:51.479 --> 01:18:56.159
<v Speaker 1>some really really eye opening breakthroughs. So that's my pick,

1466
01:18:56.800 --> 01:18:58.880
<v Speaker 1>or those are my picks? Corey, what are your picks?

1467
01:18:59.159 --> 01:19:01.880
<v Speaker 5>Yeah, so this one isn't my pick yet. But did

1468
01:19:02.279 --> 01:19:06.720
<v Speaker 5>you guys, did you guys hear about the circus? I

1469
01:19:06.800 --> 01:19:08.119
<v Speaker 5>understand it's going to be intense.

1470
01:19:10.560 --> 01:19:11.319
<v Speaker 3>I heard that coming.

1471
01:19:12.359 --> 01:19:15.520
<v Speaker 5>I appreciate that. It's my favorite. Uh No, my my

1472
01:19:15.600 --> 01:19:19.640
<v Speaker 5>pick is a absolutely shameless self plug. I mentioned at

1473
01:19:19.640 --> 01:19:21.880
<v Speaker 5>the top that I'm in Saint George. I am at

1474
01:19:22.079 --> 01:19:25.119
<v Speaker 5>a vacation rental that we recently bought and is now

1475
01:19:25.159 --> 01:19:29.760
<v Speaker 5>recently now ready for for renters. So if you are interested,

1476
01:19:30.159 --> 01:19:33.880
<v Speaker 5>and it's in this really cool community called Desert Color.

1477
01:19:33.920 --> 01:19:39.439
<v Speaker 5>There's this beautiful lagoon and it is fantastic. We have

1478
01:19:39.680 --> 01:19:43.239
<v Speaker 5>a condo. It is it sleeps seven, it's three bedrooms,

1479
01:19:44.159 --> 01:19:47.520
<v Speaker 5>and it is available for rent. And I can give

1480
01:19:47.600 --> 01:19:49.960
<v Speaker 5>a promotion code that maybe we could put in the

1481
01:19:50.319 --> 01:19:53.359
<v Speaker 5>in the show notes. So if you want to come

1482
01:19:53.359 --> 01:19:55.840
<v Speaker 5>down to Saint George, man, this this is the place.

1483
01:19:56.039 --> 01:19:56.680
<v Speaker 5>This is the place.

1484
01:19:57.399 --> 01:19:59.159
<v Speaker 3>Now are you bo.

1485
01:20:00.920 --> 01:20:01.279
<v Speaker 2>George?

1486
01:20:01.720 --> 01:20:04.079
<v Speaker 3>You're near what Bryce Canyon and Zion.

1487
01:20:04.319 --> 01:20:07.000
<v Speaker 5>So yeah, we're not far from not far from Zion,

1488
01:20:07.920 --> 01:20:10.560
<v Speaker 5>not too far from Bryce Canyon. It's probably about an hour.

1489
01:20:11.560 --> 01:20:14.079
<v Speaker 3>Oh, you're you're right in the corner on the border.

1490
01:20:14.520 --> 01:20:15.880
<v Speaker 5>We're on the border.

1491
01:20:15.600 --> 01:20:19.840
<v Speaker 3>Area literally, okay, yeah, so Lake Palace to the east,

1492
01:20:20.439 --> 01:20:24.800
<v Speaker 3>and yeah, it makes a bit of a drive.

1493
01:20:24.960 --> 01:20:26.920
<v Speaker 2>It's as if you're.

1494
01:20:26.760 --> 01:20:30.960
<v Speaker 5>Going to going to Tuacon out here. Yeah, it's real short.

1495
01:20:31.000 --> 01:20:32.520
<v Speaker 5>There's there's actually.

1496
01:20:32.960 --> 01:20:36.439
<v Speaker 1>Concerts and in place performances.

1497
01:20:36.600 --> 01:20:39.319
<v Speaker 3>I thought maybe it was that Hawk girl. Okay, no,

1498
01:20:39.520 --> 01:20:39.760
<v Speaker 3>not her.

1499
01:20:40.199 --> 01:20:42.000
<v Speaker 5>There's a lot of a lot of arts out here,

1500
01:20:42.079 --> 01:20:46.439
<v Speaker 5>and there's surprising number of like state parks that are

1501
01:20:46.560 --> 01:20:49.479
<v Speaker 5>really really great as well that that arts Zion.

1502
01:20:50.159 --> 01:20:54.359
<v Speaker 1>So yeah, but you're definitely within striking distance of Zion

1503
01:20:54.439 --> 01:20:54.920
<v Speaker 1>National Park.

1504
01:20:55.039 --> 01:20:56.479
<v Speaker 3>Yeah, you're just southwest of there.

1505
01:20:56.520 --> 01:20:56.760
<v Speaker 2>Okay.

1506
01:20:56.920 --> 01:20:59.840
<v Speaker 5>Yeah, yeah, you're from the airport. So if you're flying

1507
01:20:59.880 --> 01:21:02.720
<v Speaker 5>in in uh, you know, we're real close to that.

1508
01:21:03.319 --> 01:21:04.880
<v Speaker 2>There's a top golf right there too.

1509
01:21:05.560 --> 01:21:08.680
<v Speaker 5>It's a it's a we call it bottom golf. It's

1510
01:21:07.800 --> 01:21:10.960
<v Speaker 5>a big Shots. It's a it's not top golf.

1511
01:21:11.000 --> 01:21:12.039
<v Speaker 2>Oh, it's not top golf.

1512
01:21:13.000 --> 01:21:14.119
<v Speaker 5>It's called big Shots. Yeah.

1513
01:21:14.880 --> 01:21:15.479
<v Speaker 2>Yeah.

1514
01:21:15.800 --> 01:21:18.560
<v Speaker 1>Well, my wife and I and my father in law,

1515
01:21:18.720 --> 01:21:21.159
<v Speaker 1>my sister in law and her husband, we go down

1516
01:21:21.159 --> 01:21:23.640
<v Speaker 1>to Saint George every year for the parade of homes

1517
01:21:24.960 --> 01:21:27.960
<v Speaker 1>and yeah, so we'd be driving past it every year

1518
01:21:28.000 --> 01:21:30.319
<v Speaker 1>and oh look it's almost done.

1519
01:21:30.840 --> 01:21:35.399
<v Speaker 5>Yep. Yeah, and we just adore this community out here.

1520
01:21:35.439 --> 01:21:37.920
<v Speaker 5>And in a week and a half or so we'll

1521
01:21:37.920 --> 01:21:40.359
<v Speaker 5>be getting a hot tub here in our condos. So

1522
01:21:40.399 --> 01:21:41.399
<v Speaker 5>it's going to be even better.

1523
01:21:42.159 --> 01:21:47.399
<v Speaker 2>Man, all right, good deal.

1524
01:21:48.560 --> 01:21:50.119
<v Speaker 1>Yeah, I might have to pick your brain on how

1525
01:21:50.119 --> 01:21:53.600
<v Speaker 1>to buy one, because that's kind of my new dream

1526
01:21:53.680 --> 01:21:55.439
<v Speaker 1>is I want to own a bunch of real estate.

1527
01:21:55.479 --> 01:21:58.600
<v Speaker 5>But anyway, they don't make money month of a month

1528
01:21:58.680 --> 01:22:03.199
<v Speaker 5>right now, not down here, not yet really, Yeah, I don't. Well,

1529
01:22:03.760 --> 01:22:06.960
<v Speaker 5>we'll see, but that's we don't expect it to. We're

1530
01:22:07.000 --> 01:22:10.520
<v Speaker 5>in it for the the equity.

1531
01:22:12.279 --> 01:22:16.720
<v Speaker 1>Okay, Well, if people want to follow up and check

1532
01:22:16.720 --> 01:22:19.600
<v Speaker 1>out what you are doing, maybe in the programming space,

1533
01:22:21.199 --> 01:22:22.239
<v Speaker 1>how do they find you online?

1534
01:22:22.319 --> 01:22:22.560
<v Speaker 2>Corey?

1535
01:22:22.720 --> 01:22:26.159
<v Speaker 5>So you can find me mostly so I'm very quiet

1536
01:22:26.159 --> 01:22:30.239
<v Speaker 5>actually online I don't really get on too much. Kind

1537
01:22:30.239 --> 01:22:32.720
<v Speaker 5>of an accident. I swooped into too Twitter and made

1538
01:22:32.760 --> 01:22:35.680
<v Speaker 5>the comments that I did. But most you can find

1539
01:22:35.720 --> 01:22:38.319
<v Speaker 5>most of my stuff at three sixty five js Things

1540
01:22:38.319 --> 01:22:42.479
<v Speaker 5>dot tech. That's my website. I have all of my articles,

1541
01:22:42.560 --> 01:22:49.439
<v Speaker 5>my my talks, presentations slide decks up there, and that's

1542
01:22:49.520 --> 01:22:52.000
<v Speaker 5>probably at me on Twitter. If you want to talk,

1543
01:22:52.760 --> 01:22:53.920
<v Speaker 5>I'll respond to that, but.

1544
01:22:54.960 --> 01:22:56.920
<v Speaker 3>I won't say what your email is, but I like it.

1545
01:22:59.760 --> 01:23:02.159
<v Speaker 5>Well you can you can email me at Corey at

1546
01:23:02.199 --> 01:23:04.880
<v Speaker 5>three sixty five GSS dot tech. That's not the one that, uh,

1547
01:23:05.159 --> 01:23:05.760
<v Speaker 5>you're referring to.

1548
01:23:05.880 --> 01:23:11.119
<v Speaker 1>But yeah, yeah, all right, good deal. Well thanks for coming, Corey.

1549
01:23:11.159 --> 01:23:12.920
<v Speaker 1>This was great, and yeah, let's get that other one

1550
01:23:12.960 --> 01:23:15.359
<v Speaker 1>book because I I'd love to dive into. Hey, you

1551
01:23:15.399 --> 01:23:19.119
<v Speaker 1>may not know that madam did this, yeah something the

1552
01:23:19.279 --> 01:23:23.159
<v Speaker 1>browser did this for you, So all right, well we'll

1553
01:23:23.159 --> 01:23:27.760
<v Speaker 1>wrap it up till next night, folks, max out
