WEBVTT

1
00:00:05.080 --> 00:00:08.759
<v Speaker 1>Hello, everybody, Welcome to another thrilling episode of JavaScript Jabber.

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

3
00:00:10.919 --> 00:00:13.240
<v Speaker 1>radio and the voice for being of mine. But I'm

4
00:00:13.279 --> 00:00:16.719
<v Speaker 1>still your host. I'm flying solo today on the panel.

5
00:00:16.800 --> 00:00:20.000
<v Speaker 1>Dan is on vacation. Chuck has this name thing called work,

6
00:00:20.399 --> 00:00:22.320
<v Speaker 1>you know that gets in the way of the podcast,

7
00:00:22.440 --> 00:00:26.600
<v Speaker 1>And so you're suck with me today. But a very

8
00:00:26.640 --> 00:00:29.879
<v Speaker 1>special gift, mister Anton stoychef, how are you doing? Anton?

9
00:00:30.199 --> 00:00:33.079
<v Speaker 2>Pretty good? It pretty good? Thank you good?

10
00:00:33.159 --> 00:00:35.079
<v Speaker 1>It's uh oh yeah. I forgot to give weather update.

11
00:00:35.640 --> 00:00:37.880
<v Speaker 1>The great here in Portland. The summer has been awesome

12
00:00:37.960 --> 00:00:40.640
<v Speaker 1>up until this week, and starting yesterday the rain came in,

13
00:00:40.759 --> 00:00:44.600
<v Speaker 1>so it sucks. I miss my sunshine. And Dan always

14
00:00:44.600 --> 00:00:46.359
<v Speaker 1>gives his update about how it's hot and dry and

15
00:00:46.359 --> 00:00:47.960
<v Speaker 1>Tel Aviv, and I'm so jealous.

16
00:00:48.359 --> 00:00:51.679
<v Speaker 2>I have these kind of updates very much often. I

17
00:00:51.719 --> 00:00:54.200
<v Speaker 2>work with Esa ellis in there constantly. I was a

18
00:00:54.280 --> 00:00:56.840
<v Speaker 2>nice day at the beach. It was a fantastic day today.

19
00:00:56.840 --> 00:01:00.399
<v Speaker 2>The water was perfect and it was a freezing kind.

20
00:01:00.240 --> 00:01:07.200
<v Speaker 1>Of over here right right, So before we get started,

21
00:01:07.239 --> 00:01:09.799
<v Speaker 1>why don't you just give us the background on who

22
00:01:09.840 --> 00:01:12.480
<v Speaker 1>you are, what you do where you work, why people

23
00:01:12.519 --> 00:01:13.760
<v Speaker 1>should give you money, etcetera.

24
00:01:14.280 --> 00:01:19.680
<v Speaker 2>Absolutely, so again thank you for introducing me, Amanton. I

25
00:01:19.719 --> 00:01:23.599
<v Speaker 2>am currently working at Joppo as a core platform team

26
00:01:23.879 --> 00:01:27.040
<v Speaker 2>in front time Infrastructure officially name right, so it's a

27
00:01:27.120 --> 00:01:30.719
<v Speaker 2>team serving the whole company and other developers within it.

28
00:01:31.480 --> 00:01:34.359
<v Speaker 2>I've been doing this kind of thing front time JavaScript

29
00:01:34.760 --> 00:01:36.879
<v Speaker 2>whatever you want to call it, like JavaScript on a

30
00:01:37.000 --> 00:01:40.959
<v Speaker 2>spectors let's call it. Even touched in the good old

31
00:01:41.040 --> 00:01:44.439
<v Speaker 2>days a PHP kind of a templating world, the websites

32
00:01:44.519 --> 00:01:48.040
<v Speaker 2>and web press and ages ago boy, yes, like I

33
00:01:48.079 --> 00:01:51.000
<v Speaker 2>don't know, twenty years ago or something like this. I'm

34
00:01:51.040 --> 00:01:55.200
<v Speaker 2>not sure. So from is support until today kind of

35
00:01:55.239 --> 00:01:59.640
<v Speaker 2>the world. That's me And I've naturally had like the

36
00:01:59.680 --> 00:02:03.519
<v Speaker 2>design or interest into the nitty gritty stuff front end,

37
00:02:03.840 --> 00:02:07.319
<v Speaker 2>How do we get there? How does the production work?

38
00:02:07.400 --> 00:02:09.919
<v Speaker 2>Like what do we do to make it super fast?

39
00:02:09.919 --> 00:02:12.319
<v Speaker 2>But how does that piece work? How do CD ends work?

40
00:02:12.639 --> 00:02:15.520
<v Speaker 2>And I kind of naturally ended up doing this kind

41
00:02:15.520 --> 00:02:20.400
<v Speaker 2>of thing, which is built optimizations, tooling, optimizing the tools,

42
00:02:20.400 --> 00:02:23.800
<v Speaker 2>making sure they work, and making sure upgrades work. How

43
00:02:23.800 --> 00:02:26.520
<v Speaker 2>do we release? How do we upgrade? And this is

44
00:02:26.560 --> 00:02:28.800
<v Speaker 2>the sort of thing that the team does. Of course,

45
00:02:28.840 --> 00:02:32.759
<v Speaker 2>alongside core stuff like design system. I think most companies

46
00:02:32.800 --> 00:02:37.039
<v Speaker 2>have that, like a core team, Like most largish companies

47
00:02:37.080 --> 00:02:39.319
<v Speaker 2>have that, like a core team that kind of serves

48
00:02:39.360 --> 00:02:41.759
<v Speaker 2>the rest of the company and tries to make the

49
00:02:41.800 --> 00:02:46.000
<v Speaker 2>developer experience either better, faster, whatever you want to call it.

50
00:02:47.639 --> 00:02:49.240
<v Speaker 1>That well, I guess that depends on the size of

51
00:02:49.240 --> 00:02:49.800
<v Speaker 1>the company.

52
00:02:50.080 --> 00:02:51.080
<v Speaker 2>Sure, sure, sure sure.

53
00:02:52.319 --> 00:02:55.039
<v Speaker 1>My previous place, I was on developer team, and I

54
00:02:55.080 --> 00:02:57.800
<v Speaker 1>was also doing a lot of the core stuff and

55
00:02:58.000 --> 00:03:00.879
<v Speaker 1>you know, tools and infrastructure to you sort of the

56
00:03:00.960 --> 00:03:04.159
<v Speaker 1>many hats type of things. So I suppose when you

57
00:03:04.159 --> 00:03:05.479
<v Speaker 1>get to a larger company and you can have a

58
00:03:05.520 --> 00:03:09.039
<v Speaker 1>separate team just for that versus you know, the developers itself,

59
00:03:09.080 --> 00:03:10.000
<v Speaker 1>and that would be nice.

60
00:03:10.360 --> 00:03:12.919
<v Speaker 2>This is like a natural revolution. I think in previous company,

61
00:03:12.919 --> 00:03:15.960
<v Speaker 2>I was like, ah, but who who is responssible for that? Okay,

62
00:03:16.039 --> 00:03:18.199
<v Speaker 2>I will be the responsible person for that. So it

63
00:03:18.360 --> 00:03:22.199
<v Speaker 2>naturally evolved finally finding a place that has attention to

64
00:03:22.240 --> 00:03:25.439
<v Speaker 2>detail enough to like and kind of treasures and have

65
00:03:25.680 --> 00:03:29.240
<v Speaker 2>maybe legacy enough to pay attention to, like, Okay, we

66
00:03:29.360 --> 00:03:32.479
<v Speaker 2>need that team to kind of improve the situation. That's

67
00:03:32.520 --> 00:03:34.960
<v Speaker 2>usually what I think what happens like or from the

68
00:03:35.000 --> 00:03:37.759
<v Speaker 2>beginning somewhere. They already experienced that in a previous place,

69
00:03:38.159 --> 00:03:39.960
<v Speaker 2>so they set it up from the core from the

70
00:03:40.000 --> 00:03:40.319
<v Speaker 2>get go.

71
00:03:42.360 --> 00:03:44.800
<v Speaker 1>Yeah, so let's go back real quick. So you mentioned PHP.

72
00:03:44.960 --> 00:03:49.439
<v Speaker 1>I came a bit very similar to you. Oh, he

73
00:03:49.680 --> 00:03:51.159
<v Speaker 1>started with PHP and I still do a lot of

74
00:03:51.159 --> 00:03:55.080
<v Speaker 1>PHP with Laravelle okay, which I love to work with

75
00:03:55.159 --> 00:03:56.199
<v Speaker 1>La Belle and you and a nurse.

76
00:03:56.280 --> 00:03:58.280
<v Speaker 2>By the way, I was one of the first few

77
00:03:58.319 --> 00:04:00.680
<v Speaker 2>people like a lot of version. I don't know how much,

78
00:04:00.719 --> 00:04:04.439
<v Speaker 2>like zero points something. It was, Yeah, it was. I

79
00:04:04.439 --> 00:04:08.199
<v Speaker 2>think it grew explosively, like I did not expect lave

80
00:04:08.400 --> 00:04:10.479
<v Speaker 2>to become such a I remember the days of zend

81
00:04:10.560 --> 00:04:15.080
<v Speaker 2>framework and yes and the such I don't know, like, well, Ei, there's.

82
00:04:15.000 --> 00:04:20.560
<v Speaker 1>A let's see. I remember nuke PHP okay, kke php,

83
00:04:20.720 --> 00:04:25.360
<v Speaker 1>which is still around PHP nuke pH what that was?

84
00:04:25.519 --> 00:04:27.600
<v Speaker 1>I did some of my first websites. I just didn't

85
00:04:27.600 --> 00:04:29.759
<v Speaker 1>plane PHP.

86
00:04:29.639 --> 00:04:36.120
<v Speaker 2>No SAM SAM framework, no templating, just like combining HTMLA

87
00:04:36.720 --> 00:04:37.560
<v Speaker 2>oh god.

88
00:04:37.680 --> 00:04:40.279
<v Speaker 1>Well then you're talking about the templating. That just brings

89
00:04:40.319 --> 00:04:44.600
<v Speaker 1>back nightmares because I was at a few years ago,

90
00:04:44.800 --> 00:04:46.560
<v Speaker 1>the last the last couple of years that I was

91
00:04:46.560 --> 00:04:48.319
<v Speaker 1>in the droupile world. So I lived in the droupile

92
00:04:48.360 --> 00:04:51.040
<v Speaker 1>world for you know, from the That was what first

93
00:04:51.040 --> 00:04:53.079
<v Speaker 1>got me in well developments druple because I got tired

94
00:04:53.079 --> 00:04:54.759
<v Speaker 1>of writing my own thing like many people, and so

95
00:04:54.800 --> 00:04:56.720
<v Speaker 1>I found the CMS and I lived in that world

96
00:04:56.720 --> 00:05:02.879
<v Speaker 1>professionally up until probably about twenty ninety. But I was

97
00:05:02.920 --> 00:05:09.439
<v Speaker 1>at a very huge, large multinational corporation and we were

98
00:05:09.480 --> 00:05:15.439
<v Speaker 1>converting an old website based on Microsoft Server two thousand

99
00:05:15.519 --> 00:05:19.639
<v Speaker 1>and classic ASP, not SP don that Classic ASP to

100
00:05:19.800 --> 00:05:24.959
<v Speaker 1>Druple seven with the patch and solar and some other things.

101
00:05:25.480 --> 00:05:28.319
<v Speaker 1>But they had decided, because of the whole fear about

102
00:05:28.439 --> 00:05:30.560
<v Speaker 1>SEO and jobascript frameworks back in the day, to stick

103
00:05:30.600 --> 00:05:33.519
<v Speaker 1>with jupo on the front end and the built in

104
00:05:33.560 --> 00:05:36.879
<v Speaker 1>PHP template at the time, and I got tasked with

105
00:05:38.360 --> 00:05:42.480
<v Speaker 1>caching and I still have nightmares about that to this day.

106
00:05:42.560 --> 00:05:48.319
<v Speaker 1>About cashing with PHP templating, I mean, cashing.

107
00:05:48.160 --> 00:05:50.720
<v Speaker 2>On its own, even if you don't combine it with

108
00:05:50.759 --> 00:05:54.199
<v Speaker 2>like a CMS, is a mess because it only takes

109
00:05:54.240 --> 00:05:58.279
<v Speaker 2>one person to just forget something or like not to

110
00:05:58.399 --> 00:06:01.639
<v Speaker 2>have like guardrails and do something wrong and then you

111
00:06:01.639 --> 00:06:03.560
<v Speaker 2>get the productionich right.

112
00:06:03.879 --> 00:06:06.199
<v Speaker 1>Well, you know they say that the two hardest things

113
00:06:06.279 --> 00:06:10.079
<v Speaker 1>in computer programming are naming things cash and validation off

114
00:06:10.120 --> 00:06:14.319
<v Speaker 1>by one by one errors, you know. So so yeah,

115
00:06:14.360 --> 00:06:16.439
<v Speaker 1>I can. I can botch that anyway I can. And

116
00:06:16.480 --> 00:06:18.839
<v Speaker 1>then you talk about it six and I can remember,

117
00:06:19.680 --> 00:06:25.000
<v Speaker 1>you know, designers would literally charge extra because they had

118
00:06:25.040 --> 00:06:28.600
<v Speaker 1>to accommodate for I E. Six abnormalities in their CSS.

119
00:06:28.839 --> 00:06:29.279
<v Speaker 2>Oh yeah.

120
00:06:29.879 --> 00:06:32.120
<v Speaker 1>And then when it finally died, it was at a

121
00:06:32.199 --> 00:06:36.720
<v Speaker 1>Drupal con in New Orleans in like twenty thirteen twenty fourteen,

122
00:06:36.839 --> 00:06:39.600
<v Speaker 1>literally had a parade celebrating the death of eighty six

123
00:06:39.639 --> 00:06:43.120
<v Speaker 1>and micro Microsoft finally said, Okay, we're not supporting it anymore.

124
00:06:43.519 --> 00:06:45.720
<v Speaker 2>But the next thing was I E. Eleven. Like that was

125
00:06:45.759 --> 00:06:48.079
<v Speaker 2>like a you know, like there was a phases of

126
00:06:48.120 --> 00:06:51.160
<v Speaker 2>I E. That people were like dreadful about.

127
00:06:51.360 --> 00:06:53.680
<v Speaker 1>Yeah, until you got to edgyum, you know, or you

128
00:06:53.720 --> 00:06:57.319
<v Speaker 1>know that's whatever you call the when they finally changed engines.

129
00:06:57.519 --> 00:06:58.959
<v Speaker 2>Yeah, chromium based eight.

130
00:06:59.519 --> 00:07:02.959
<v Speaker 1>Yeah. So yeah, yeah, it sounds like we've been through

131
00:07:02.959 --> 00:07:05.279
<v Speaker 1>some of the same same wars.

132
00:07:05.360 --> 00:07:08.360
<v Speaker 2>I think it's kind of like edge based edge based,

133
00:07:08.800 --> 00:07:11.759
<v Speaker 2>So once you start web development early on, you can't

134
00:07:11.759 --> 00:07:15.160
<v Speaker 2>even inevitably going through these trenches, which I find to

135
00:07:15.199 --> 00:07:18.279
<v Speaker 2>be super helpful, Like I love to have gone through this.

136
00:07:18.439 --> 00:07:21.240
<v Speaker 2>I like, I don't think of them like, oh, wasted

137
00:07:21.279 --> 00:07:23.680
<v Speaker 2>my life or something like this. I think I've gained

138
00:07:24.279 --> 00:07:29.279
<v Speaker 2>super useful knowledge even for today's work, where like asking AI, like,

139
00:07:29.319 --> 00:07:31.600
<v Speaker 2>oh can you do this for me? Yes? Thanks?

140
00:07:32.319 --> 00:07:35.439
<v Speaker 1>Right, Remember the days of figuring it out?

141
00:07:36.800 --> 00:07:39.279
<v Speaker 2>I mean they're not gone. I can I can spend

142
00:07:39.360 --> 00:07:42.759
<v Speaker 2>like two days talking about my day to day configuring

143
00:07:43.079 --> 00:07:46.560
<v Speaker 2>CD and stuff and like going through documentation, asking KI

144
00:07:46.639 --> 00:07:49.240
<v Speaker 2>together with me and not being able to figure out stuff.

145
00:07:49.279 --> 00:07:53.079
<v Speaker 2>So I mean it's not gone, It's still there, right.

146
00:07:53.160 --> 00:07:55.800
<v Speaker 1>I had one of my favorite interviews I did on

147
00:07:55.839 --> 00:07:59.079
<v Speaker 1>another podcast, Views on Views with Taylor well Blaara Bell,

148
00:08:00.120 --> 00:08:04.480
<v Speaker 1>and he was asking us about our thoughts on where

149
00:08:05.040 --> 00:08:07.959
<v Speaker 1>Larravelle should go in terms of just focusing on PHP

150
00:08:08.120 --> 00:08:10.560
<v Speaker 1>back end or focusing on the front end framework. And

151
00:08:11.319 --> 00:08:14.079
<v Speaker 1>we talked about the pendulum switch, where you know, when

152
00:08:14.120 --> 00:08:16.240
<v Speaker 1>you and I started, you learned from the back end.

153
00:08:16.240 --> 00:08:18.000
<v Speaker 1>You started with a lampstack and you had to know

154
00:08:18.240 --> 00:08:20.160
<v Speaker 1>the back end and stuff, and then you learn the

155
00:08:20.240 --> 00:08:23.040
<v Speaker 1>jobscript in front of that, and then you've got to

156
00:08:23.040 --> 00:08:25.079
<v Speaker 1>today where a lot of people get into well web

157
00:08:25.120 --> 00:08:27.439
<v Speaker 1>development from the front end from the job script frameworks

158
00:08:27.439 --> 00:08:32.840
<v Speaker 1>you know, Angular, use Felt, React React predominantly just because

159
00:08:32.840 --> 00:08:35.480
<v Speaker 1>it's so dominant anymore. And then they don't know the

160
00:08:35.519 --> 00:08:37.279
<v Speaker 1>back end. So now they got to learn the back end,

161
00:08:37.320 --> 00:08:39.720
<v Speaker 1>and how do you know, accommodate for that? So it's

162
00:08:39.759 --> 00:08:42.960
<v Speaker 1>real it's been an interesting pendulum watching the pendulums when

163
00:08:43.200 --> 00:08:44.240
<v Speaker 1>back and forth. For sure.

164
00:08:45.879 --> 00:08:48.159
<v Speaker 2>Yeah, I mean I'm just thinking ancessary at the moment

165
00:08:48.240 --> 00:08:51.200
<v Speaker 2>because this is like my daily driver the last few months.

166
00:08:51.200 --> 00:08:55.759
<v Speaker 1>But anyway, yeah, yes, sorry, okay, So let's get into

167
00:08:55.759 --> 00:08:57.840
<v Speaker 1>what we're here to talk about. Then, So you worked

168
00:08:57.840 --> 00:09:01.080
<v Speaker 1>for the companies, how do you say? Yeah?

169
00:09:01.600 --> 00:09:04.679
<v Speaker 2>Yeah, yeah, it's like Israeli a US company you PO,

170
00:09:05.039 --> 00:09:06.919
<v Speaker 2>so that they're kind of big in the e commerce,

171
00:09:07.600 --> 00:09:08.200
<v Speaker 2>right y O.

172
00:09:08.320 --> 00:09:11.240
<v Speaker 1>T p O. In case you're you're you're looking for

173
00:09:11.399 --> 00:09:12.080
<v Speaker 1>dot com?

174
00:09:12.200 --> 00:09:18.320
<v Speaker 2>Yeah cool, yes, in there we open source something a

175
00:09:18.320 --> 00:09:21.320
<v Speaker 2>few months ago and it is something we use actually

176
00:09:21.360 --> 00:09:28.360
<v Speaker 2>internally to manage let's say the migrain of upgrading or

177
00:09:28.399 --> 00:09:33.720
<v Speaker 2>maintaining tool link working and let's say up to date. Uh.

178
00:09:34.159 --> 00:09:37.759
<v Speaker 2>And of course have quality quality gates some people call

179
00:09:37.799 --> 00:09:40.960
<v Speaker 2>them code checks. Usually you can see them on things

180
00:09:41.000 --> 00:09:45.159
<v Speaker 2>like GitHub on your prs and basically guarding you and

181
00:09:45.279 --> 00:09:48.320
<v Speaker 2>helping you by the way, especially in the AI world

182
00:09:48.399 --> 00:09:51.519
<v Speaker 2>where someone needs to put the brakes on on some

183
00:09:51.639 --> 00:09:54.799
<v Speaker 2>of the code or let's get generated. So it's kind

184
00:09:54.799 --> 00:09:58.360
<v Speaker 2>of a double important to have some code checks. Of course,

185
00:09:58.399 --> 00:10:01.960
<v Speaker 2>you can wing it aka vibe and just see what's up.

186
00:10:02.039 --> 00:10:05.000
<v Speaker 2>And then I don't know, I ask another AI to

187
00:10:05.039 --> 00:10:08.759
<v Speaker 2>maybe refractory, Sure, but I.

188
00:10:08.720 --> 00:10:10.559
<v Speaker 1>Think refactor ais are you?

189
00:10:11.000 --> 00:10:12.679
<v Speaker 2>I think so? I think maybe there is a future

190
00:10:12.679 --> 00:10:16.320
<v Speaker 2>where we don't care about quality. We just use the

191
00:10:16.360 --> 00:10:19.879
<v Speaker 2>model as of today, and then think about two years

192
00:10:19.919 --> 00:10:22.039
<v Speaker 2>in the future, the model will be better, so they

193
00:10:22.080 --> 00:10:24.320
<v Speaker 2>will generate something better and we ask them to just

194
00:10:24.360 --> 00:10:26.919
<v Speaker 2>improve the code base. You know, there is a world maybe.

195
00:10:27.600 --> 00:10:29.080
<v Speaker 1>Well. The problem with that, though, is the AI is

196
00:10:29.120 --> 00:10:30.919
<v Speaker 1>training itself on the old stuff.

197
00:10:31.399 --> 00:10:35.240
<v Speaker 2>Yes, yes, yes, yes, on itself maybe. Yeah. So we

198
00:10:35.879 --> 00:10:39.600
<v Speaker 2>wanted to kind of enforce this and do this in

199
00:10:39.639 --> 00:10:42.399
<v Speaker 2>a company that has been around for more than ten years.

200
00:10:42.799 --> 00:10:46.240
<v Speaker 2>And I think it's natural if you have projects for

201
00:10:46.279 --> 00:10:48.000
<v Speaker 2>more than ten years or even five years, that you

202
00:10:48.200 --> 00:10:51.799
<v Speaker 2>kind of accumulate legacy. And I maybe in this podcast

203
00:10:51.799 --> 00:10:54.399
<v Speaker 2>you talked about it, and maybe I've read it somewhere,

204
00:10:54.440 --> 00:10:57.519
<v Speaker 2>but legacy is not naturally a bad thing. Legacy means

205
00:10:57.559 --> 00:11:03.000
<v Speaker 2>you have something working right, true, but this thing that

206
00:11:03.120 --> 00:11:07.159
<v Speaker 2>is working is no longer performance, is no longer maintainable.

207
00:11:07.840 --> 00:11:10.279
<v Speaker 2>The tools that you use can no longer work with it.

208
00:11:10.720 --> 00:11:12.960
<v Speaker 2>If you want to upgrade one tool, you're kind of

209
00:11:13.000 --> 00:11:16.519
<v Speaker 2>stuck in this Nightmarrey scenario where you're like, oh, I

210
00:11:16.600 --> 00:11:19.519
<v Speaker 2>need to upgrade my e is lint. It's not connected

211
00:11:19.559 --> 00:11:21.960
<v Speaker 2>to my code. I want upgrade it, but the new

212
00:11:22.039 --> 00:11:24.919
<v Speaker 2>version requires a new version of no JS. Oh okay,

213
00:11:25.120 --> 00:11:27.639
<v Speaker 2>So I need to upgrade no JS. Oh okay. Then

214
00:11:27.639 --> 00:11:30.080
<v Speaker 2>I need to pay all my other packages because they

215
00:11:30.240 --> 00:11:34.120
<v Speaker 2>also need they need to be compatible with a new version.

216
00:11:34.279 --> 00:11:38.440
<v Speaker 2>So there's a vicious cycle of upgrades, basically because everything

217
00:11:38.519 --> 00:11:41.279
<v Speaker 2>kind of depends on each other and they're all grouped

218
00:11:41.320 --> 00:11:43.879
<v Speaker 2>into one thing. Even though if you think about it,

219
00:11:44.320 --> 00:11:47.159
<v Speaker 2>most of the things that are not really connected to

220
00:11:47.200 --> 00:11:50.840
<v Speaker 2>each other, like es lint doesn't use your built stuff

221
00:11:51.039 --> 00:11:55.559
<v Speaker 2>like things like es lint, like code checks, yeah, unit testing,

222
00:11:55.919 --> 00:11:59.080
<v Speaker 2>it doesn't use your actual built unless you were talking

223
00:11:59.120 --> 00:12:02.519
<v Speaker 2>about VAT and v test, which kind of shares the

224
00:12:02.519 --> 00:12:06.480
<v Speaker 2>same build mechanism. But let's let's say we're talking about

225
00:12:06.519 --> 00:12:10.879
<v Speaker 2>web pack or turbo pack, uh, and just they do

226
00:12:11.159 --> 00:12:14.320
<v Speaker 2>their own thing, like unit tests are built differently than

227
00:12:14.360 --> 00:12:17.200
<v Speaker 2>the web back, so they actually live in total isolation,

228
00:12:17.399 --> 00:12:21.200
<v Speaker 2>like into two different universes where just do this its

229
00:12:21.200 --> 00:12:23.919
<v Speaker 2>own thing with your source code, and then web back

230
00:12:24.039 --> 00:12:26.639
<v Speaker 2>or whatever tool you choose do their thing with your

231
00:12:26.679 --> 00:12:30.279
<v Speaker 2>source code. So in theory they are absolutely isolated. But

232
00:12:30.559 --> 00:12:33.559
<v Speaker 2>for historic reasons, we kind of put them in the

233
00:12:33.600 --> 00:12:37.440
<v Speaker 2>same package, put them in the same bag of dependencies, like, oh,

234
00:12:37.519 --> 00:12:40.240
<v Speaker 2>let's put web back, let's put just let's put the

235
00:12:40.320 --> 00:12:42.559
<v Speaker 2>way Yeah, go ahead, Wait a minute.

236
00:12:42.679 --> 00:12:45.799
<v Speaker 1>Those are two different things, though, I mean web Pack

237
00:12:45.840 --> 00:12:48.120
<v Speaker 1>and just you're doing two different things, just as you're

238
00:12:48.240 --> 00:12:50.519
<v Speaker 1>you know, you're unit testing, your code testing, right, Webpack

239
00:12:50.639 --> 00:12:52.480
<v Speaker 1>is more concerned with the bundling.

240
00:12:52.080 --> 00:12:54.519
<v Speaker 2>And absolutely and absolutely taking apart.

241
00:12:54.639 --> 00:12:57.440
<v Speaker 1>So I guess I'm confused as to I mean, it's

242
00:12:57.440 --> 00:12:59.720
<v Speaker 1>like you're complaining two different things there, I.

243
00:12:59.679 --> 00:13:03.480
<v Speaker 2>Know, And I think this is where I haven't explained

244
00:13:03.480 --> 00:13:05.720
<v Speaker 2>it probably well to have been more clear, but this

245
00:13:05.840 --> 00:13:08.039
<v Speaker 2>is my point. There are absolutely two different things. They

246
00:13:08.080 --> 00:13:10.919
<v Speaker 2>have two different purposes and they have like two different

247
00:13:11.039 --> 00:13:14.559
<v Speaker 2>universes of building. I think we're on the same page here, right,

248
00:13:14.639 --> 00:13:17.320
<v Speaker 2>Like web Pack doing is own thing and just but

249
00:13:17.519 --> 00:13:20.240
<v Speaker 2>what do you usually do? You have one package jacent,

250
00:13:21.000 --> 00:13:23.279
<v Speaker 2>and all of the gest related stuff and all of

251
00:13:23.279 --> 00:13:25.600
<v Speaker 2>the web pack related stuff they live in the same

252
00:13:25.639 --> 00:13:29.840
<v Speaker 2>package jacent, aka in the same bag of dependencies called

253
00:13:30.399 --> 00:13:34.039
<v Speaker 2>the giant node modules, right like you you kind of

254
00:13:34.039 --> 00:13:37.879
<v Speaker 2>combine them together. And there's a weird scenario where let's

255
00:13:37.879 --> 00:13:40.679
<v Speaker 2>say you have you found a bug and it's a

256
00:13:40.759 --> 00:13:43.600
<v Speaker 2>really nasty bug in jest. That just a scenario. It

257
00:13:43.600 --> 00:13:45.879
<v Speaker 2>could be any other too, right, it could be slaint.

258
00:13:45.919 --> 00:13:49.879
<v Speaker 2>It could be let's say, even an end to end

259
00:13:50.000 --> 00:13:52.720
<v Speaker 2>testing tool. Right, but you found a problem and in

260
00:13:52.759 --> 00:13:55.799
<v Speaker 2>one of great the two only like you don't want

261
00:13:55.799 --> 00:13:58.519
<v Speaker 2>to deal right now. You have other priorities, right, you

262
00:13:58.600 --> 00:14:01.240
<v Speaker 2>have to do a new future or do some actual

263
00:14:01.279 --> 00:14:04.039
<v Speaker 2>product work. But you want to fix this bug. And

264
00:14:04.080 --> 00:14:07.279
<v Speaker 2>the bug is fixed in the new version of jest. Okay,

265
00:14:07.639 --> 00:14:10.639
<v Speaker 2>is how I get ingested. This is about ingest itself,

266
00:14:10.799 --> 00:14:13.759
<v Speaker 2>ingest itself absolutely clarify. But you found it. Oh wait,

267
00:14:13.799 --> 00:14:16.279
<v Speaker 2>in three versions in the future, this bug is no

268
00:14:16.360 --> 00:14:21.000
<v Speaker 2>longer there. It's fixed. So your options here is like, Okay,

269
00:14:21.159 --> 00:14:24.159
<v Speaker 2>I can maybe live with this bug and document it

270
00:14:24.279 --> 00:14:27.000
<v Speaker 2>very well and just try to stay away from it

271
00:14:28.159 --> 00:14:33.080
<v Speaker 2>or try to upgrade JEST. And this is where I'm

272
00:14:33.080 --> 00:14:35.000
<v Speaker 2>trying to say, there is an actual problem for me.

273
00:14:35.120 --> 00:14:39.240
<v Speaker 2>It might have. It's like a dependency management. If everything

274
00:14:39.320 --> 00:14:41.960
<v Speaker 2>lives in the same bag and you want to upgrade EST,

275
00:14:42.840 --> 00:14:45.279
<v Speaker 2>just we'll tell you. Wait, you want to upgrade from

276
00:14:45.759 --> 00:14:49.200
<v Speaker 2>version I don't know five to version eight. Okay, but

277
00:14:49.279 --> 00:14:52.600
<v Speaker 2>I need a new note dress. I need no Dress

278
00:14:52.840 --> 00:14:56.879
<v Speaker 2>twenty seven, let's say twenty four. Okay, this is I

279
00:14:56.879 --> 00:15:01.919
<v Speaker 2>think the LTS version twenty four. But then when back

280
00:15:01.919 --> 00:15:04.879
<v Speaker 2>will tell you, hey, okay, you're graded JEST and no Jess,

281
00:15:05.720 --> 00:15:09.559
<v Speaker 2>but I'm not working with this no Jazz version like sorry, no,

282
00:15:10.200 --> 00:15:12.519
<v Speaker 2>or even worse, you build two links like let's say

283
00:15:13.000 --> 00:15:15.799
<v Speaker 2>you're not a React world, you're Angular world or something else.

284
00:15:16.559 --> 00:15:19.519
<v Speaker 2>Most of those even React nowadays with the React compiler

285
00:15:19.639 --> 00:15:22.399
<v Speaker 2>or something was code. They actually have a thing that

286
00:15:22.600 --> 00:15:26.240
<v Speaker 2>runs together with your build. An Angular whole thing is

287
00:15:26.320 --> 00:15:29.320
<v Speaker 2>that they actually control the build. They have a compiler,

288
00:15:29.360 --> 00:15:33.879
<v Speaker 2>Anglar compiler, right, So imagine this also tells you, hey,

289
00:15:34.000 --> 00:15:36.399
<v Speaker 2>I also don't work with the new no Jess. Figure

290
00:15:36.440 --> 00:15:39.080
<v Speaker 2>something out, figure something out. I am not going to

291
00:15:39.159 --> 00:15:42.759
<v Speaker 2>work with this version. And then you end up okay,

292
00:15:42.840 --> 00:15:45.000
<v Speaker 2>so I need to upgrade. Also, not only just I

293
00:15:45.120 --> 00:15:47.279
<v Speaker 2>only wanted to jest. I only wanted to cread this

294
00:15:47.440 --> 00:15:50.240
<v Speaker 2>thing because there was a bug. But now suddenly I

295
00:15:50.320 --> 00:15:53.159
<v Speaker 2>need to upgrade the entire framework. And guess what, when

296
00:15:53.200 --> 00:15:55.600
<v Speaker 2>you great the entire framework, you need to refractor all

297
00:15:55.639 --> 00:15:59.600
<v Speaker 2>your code because there's probably breaking changes. Right, You're probably

298
00:15:59.639 --> 00:16:02.919
<v Speaker 2>a grade two versions in the future. So now you

299
00:16:03.039 --> 00:16:05.000
<v Speaker 2>end up in this situation where are you either Oh,

300
00:16:05.080 --> 00:16:08.159
<v Speaker 2>I cannot upgrade. I'm stuck. I have to live with

301
00:16:08.279 --> 00:16:11.360
<v Speaker 2>whatever I have today, or you have to upgrade everything,

302
00:16:11.960 --> 00:16:15.039
<v Speaker 2>like you have to upgrade all your tools, all your

303
00:16:15.080 --> 00:16:18.320
<v Speaker 2>framework related stuff, all your run time dependencies. Maybe maybe not,

304
00:16:18.840 --> 00:16:22.039
<v Speaker 2>but let's let's say framework at least, right and refractor.

305
00:16:23.000 --> 00:16:25.200
<v Speaker 2>So I'm not sure about you, but I find that

306
00:16:25.519 --> 00:16:28.440
<v Speaker 2>very kind of a scary moment because this is what

307
00:16:28.720 --> 00:16:32.159
<v Speaker 2>defines kind of the depth of a code base. You're

308
00:16:32.159 --> 00:16:35.159
<v Speaker 2>you're kind of stuck and you cannot upgrade it. It's

309
00:16:35.200 --> 00:16:37.960
<v Speaker 2>too much work to upgrade it, or it's it's kind

310
00:16:38.000 --> 00:16:41.080
<v Speaker 2>of an equal to a rewrite, because you have to

311
00:16:41.159 --> 00:16:43.279
<v Speaker 2>upgrade like ten versions in the future or five versions

312
00:16:43.320 --> 00:16:47.279
<v Speaker 2>in the future. So the effort of upgrading is almost

313
00:16:47.360 --> 00:16:50.000
<v Speaker 2>equal to the effect of like let's start something new,

314
00:16:50.200 --> 00:16:53.639
<v Speaker 2>something small, as something performant, and let's gradually release it.

315
00:16:54.559 --> 00:16:57.679
<v Speaker 1>Well, I guess it depends on the size of your project.

316
00:16:58.799 --> 00:17:00.519
<v Speaker 1>I mean it's a lot of project. Yeah, you know,

317
00:17:00.879 --> 00:17:03.720
<v Speaker 1>larger project that's not even a possibility. You know, you

318
00:17:03.799 --> 00:17:05.039
<v Speaker 1>gotta do what you gotta do.

319
00:17:05.440 --> 00:17:05.680
<v Speaker 2>Yeah.

320
00:17:05.839 --> 00:17:09.440
<v Speaker 1>I ran it out with Lara Bell you know, on

321
00:17:09.519 --> 00:17:12.400
<v Speaker 1>the back and just because I was tasked with upgrading

322
00:17:12.440 --> 00:17:14.759
<v Speaker 1>from Larra Belt eleven to Laravelt twelve and my boss

323
00:17:14.920 --> 00:17:17.680
<v Speaker 1>was like, day one, Larrabelle twelve is up, let's do it.

324
00:17:17.799 --> 00:17:20.920
<v Speaker 1>I'm like, okay, I'm running into all kinds of dependency

325
00:17:20.920 --> 00:17:25.880
<v Speaker 1>issues for the dependencies have not upgraded to, you know,

326
00:17:26.000 --> 00:17:28.240
<v Speaker 1>to be able to handle Laaravelt twelve. And so you're

327
00:17:28.599 --> 00:17:32.640
<v Speaker 1>either looking at patches or you're waiting or I'm nothing.

328
00:17:32.680 --> 00:17:35.640
<v Speaker 2>By the way, I'm not sure if it's somebody's watching listen,

329
00:17:35.720 --> 00:17:38.200
<v Speaker 2>but I'm heavily noting here because this is it.

330
00:17:38.839 --> 00:17:39.640
<v Speaker 1>You can't upgrade.

331
00:17:39.680 --> 00:17:43.720
<v Speaker 2>You're kind of in a moment of shit. Oh I'm sorry,

332
00:17:44.279 --> 00:17:47.759
<v Speaker 2>but like I can't move. I'm stuck with whatever I have,

333
00:17:48.079 --> 00:17:50.920
<v Speaker 2>so I need to make it work or start a

334
00:17:51.000 --> 00:17:53.119
<v Speaker 2>new thing. But as you said, you can't start a

335
00:17:53.200 --> 00:17:57.240
<v Speaker 2>new thing every time you get stuck, right, Okay, So

336
00:17:57.279 --> 00:18:00.759
<v Speaker 2>I'm gonna offer an alternative to this world it were

337
00:18:00.759 --> 00:18:03.680
<v Speaker 2>talked about the typical scenario where all of your bag

338
00:18:03.759 --> 00:18:06.440
<v Speaker 2>of dependencies you can put in any language here by

339
00:18:06.480 --> 00:18:09.880
<v Speaker 2>the way, like Laravel, like it's all the dependencies, Python

340
00:18:09.960 --> 00:18:13.400
<v Speaker 2>with all the dependencies. But here the open source that

341
00:18:13.440 --> 00:18:17.119
<v Speaker 2>I'm talking about breakproof dot depth, which is just a

342
00:18:17.200 --> 00:18:23.519
<v Speaker 2>gidab repositor readirects there basically offer the following concept. Okay,

343
00:18:24.079 --> 00:18:27.440
<v Speaker 2>in the JavaScript ward and the JavaScript world of dependencies, right,

344
00:18:28.319 --> 00:18:31.279
<v Speaker 2>what we are used to is this bag of dependencies

345
00:18:31.400 --> 00:18:36.000
<v Speaker 2>not modus. Okay, but what if we can isolate each

346
00:18:36.160 --> 00:18:40.319
<v Speaker 2>tool with its own dependencies and its own node jazz version,

347
00:18:40.759 --> 00:18:45.200
<v Speaker 2>separate from the everything else but still be able to

348
00:18:45.279 --> 00:18:50.720
<v Speaker 2>work together. Okay. So let's say typescript or Jest has

349
00:18:50.799 --> 00:18:55.039
<v Speaker 2>its own list of just plugins, just configuration, right, and

350
00:18:55.319 --> 00:18:58.839
<v Speaker 2>specific note version, and I can only upgrade the note

351
00:18:58.920 --> 00:19:02.240
<v Speaker 2>version for Jest, and I can only upgrade the Jest dependencies,

352
00:19:03.039 --> 00:19:05.319
<v Speaker 2>and this does not affect the node version for any

353
00:19:05.359 --> 00:19:07.519
<v Speaker 2>of me any of the other dependencies that are heavy

354
00:19:07.599 --> 00:19:11.640
<v Speaker 2>my project no matter whatever they are. How does that sound?

355
00:19:14.039 --> 00:19:16.359
<v Speaker 1>I can already I already have a few questions running

356
00:19:16.400 --> 00:19:19.000
<v Speaker 1>through my head here about how you go that, But

357
00:19:19.559 --> 00:19:22.960
<v Speaker 1>I'm hereous well, I mean, just obviously do you want

358
00:19:23.119 --> 00:19:26.000
<v Speaker 1>does that mean you have multiple note versions running concurrently

359
00:19:26.119 --> 00:19:29.279
<v Speaker 1>somehow or how do you you know? You're saying, Okay,

360
00:19:29.319 --> 00:19:31.920
<v Speaker 1>I can upgrade this dependency from this version not to

361
00:19:32.000 --> 00:19:33.599
<v Speaker 1>twenty four. Maybe this one still has to be in

362
00:19:33.680 --> 00:19:36.079
<v Speaker 1>twenty two for instance. How you recofy that? But I'm

363
00:19:36.119 --> 00:19:37.079
<v Speaker 1>assuming you'll get to that.

364
00:19:38.079 --> 00:19:40.839
<v Speaker 2>Absolutely it did, But I think this is useful, Like

365
00:19:40.880 --> 00:19:43.279
<v Speaker 2>if this is your first question, super vialent question, by

366
00:19:43.319 --> 00:19:45.359
<v Speaker 2>the way, and there is an answer as you as

367
00:19:45.440 --> 00:19:49.880
<v Speaker 2>you guessed, yes, this means multiple no jailed versions, right,

368
00:19:50.440 --> 00:19:53.640
<v Speaker 2>and maybe immediately you have an interfere of like oh

369
00:19:53.720 --> 00:19:57.160
<v Speaker 2>my god, like I have to maintain multiple versions of

370
00:19:57.319 --> 00:20:00.440
<v Speaker 2>no jenis right, But maybe you can actually limit that,

371
00:20:00.599 --> 00:20:02.599
<v Speaker 2>like don't you don't need to have all the versions

372
00:20:02.640 --> 00:20:06.119
<v Speaker 2>of notices. You don't need to have like fourteen, sixteen, eighteen,

373
00:20:06.359 --> 00:20:08.160
<v Speaker 2>twenty twenty two, twenty four. You can have like a

374
00:20:08.319 --> 00:20:12.000
<v Speaker 2>white list you have like, okay, I support this twenty

375
00:20:12.279 --> 00:20:15.519
<v Speaker 2>twenty eight. That's it, Like three white listed ones, right,

376
00:20:17.000 --> 00:20:21.039
<v Speaker 2>And this is where we come into the repository. Why

377
00:20:21.119 --> 00:20:23.319
<v Speaker 2>is this open source, like I reposed, this is just

378
00:20:23.359 --> 00:20:26.359
<v Speaker 2>a template for repository. And something we mentioned before we

379
00:20:26.440 --> 00:20:31.759
<v Speaker 2>started recording is mono ripples, right, And there are many

380
00:20:31.880 --> 00:20:34.559
<v Speaker 2>tools for mono ripples as a whole. Like if you

381
00:20:35.240 --> 00:20:39.240
<v Speaker 2>start like research for mono repols, everything will come up,

382
00:20:39.359 --> 00:20:43.759
<v Speaker 2>like there's RUSH, there's NX, there's turbo ripple, I think,

383
00:20:44.400 --> 00:20:46.119
<v Speaker 2>and all of them are kind of helping you with

384
00:20:46.240 --> 00:20:51.039
<v Speaker 2>mono ripples. And we went through them with the team,

385
00:20:51.480 --> 00:20:53.640
<v Speaker 2>and there was one that kind of popped up which

386
00:20:53.680 --> 00:20:58.880
<v Speaker 2>is actually alternative to NPM, and it's called PMPM. It

387
00:20:59.200 --> 00:21:02.519
<v Speaker 2>is popular, like, oh, this is I discovered VMPM. Let

388
00:21:02.599 --> 00:21:04.160
<v Speaker 2>me tell you about it. No, I know, I know,

389
00:21:04.279 --> 00:21:08.519
<v Speaker 2>it's kind of popular. It Actually many people don't realize

390
00:21:08.599 --> 00:21:11.440
<v Speaker 2>or at least I found many developers I work with not.

391
00:21:11.559 --> 00:21:15.599
<v Speaker 2>Actually I realized that other tools like NX and other

392
00:21:15.720 --> 00:21:18.319
<v Speaker 2>tools like to go pack under the hood, they actually

393
00:21:18.400 --> 00:21:21.920
<v Speaker 2>use PMPM or they advise you to use PMPM, so

394
00:21:22.079 --> 00:21:26.519
<v Speaker 2>they're an abstraction on top of PMPM. So you don't

395
00:21:26.599 --> 00:21:29.559
<v Speaker 2>have to only learn the tool if you like it

396
00:21:29.720 --> 00:21:31.960
<v Speaker 2>or like NX or turble pack, but you also kind

397
00:21:32.000 --> 00:21:34.559
<v Speaker 2>of need to know PMPM because underneath this is what

398
00:21:34.720 --> 00:21:37.000
<v Speaker 2>it's working. Right, So if you get a problem or

399
00:21:37.039 --> 00:21:38.880
<v Speaker 2>if you have a specific need, you kind of have

400
00:21:38.960 --> 00:21:39.279
<v Speaker 2>to know it.

401
00:21:40.039 --> 00:21:42.559
<v Speaker 1>Well, isn't that sort of like in order to view

402
00:21:42.839 --> 00:21:47.799
<v Speaker 1>you really sort of need to understand JavaScript, have PHP right,

403
00:21:48.400 --> 00:21:50.400
<v Speaker 1>So right, real quick, real quick, before we got too far,

404
00:21:50.599 --> 00:21:52.920
<v Speaker 1>can I always like to define terms for those who

405
00:21:53.279 --> 00:21:55.759
<v Speaker 1>might not know. Can we define what a modo repo

406
00:21:55.920 --> 00:21:59.359
<v Speaker 1>is and give us an example of working mono repo.

407
00:22:00.480 --> 00:22:06.240
<v Speaker 2>Absolutely, mono riple is a get other kind of repository.

408
00:22:06.279 --> 00:22:10.680
<v Speaker 2>But I'm guessing nowadays git repository that is not holding

409
00:22:10.759 --> 00:22:14.559
<v Speaker 2>only one project, but it actually have multiple projects in it,

410
00:22:15.119 --> 00:22:19.319
<v Speaker 2>each isolated usually in its own directory, and each of

411
00:22:19.440 --> 00:22:23.359
<v Speaker 2>them have their own set of dependencies defined. This is

412
00:22:24.039 --> 00:22:26.039
<v Speaker 2>I would say, the definition of a mono repole. And

413
00:22:26.160 --> 00:22:28.519
<v Speaker 2>you can work only in one of them, but they

414
00:22:28.559 --> 00:22:31.960
<v Speaker 2>are in the same repository, so everything is kind of connected.

415
00:22:32.400 --> 00:22:34.200
<v Speaker 2>One of the perks may be one of the main

416
00:22:34.319 --> 00:22:36.519
<v Speaker 2>perks of the mono repo that you can use other

417
00:22:36.640 --> 00:22:42.400
<v Speaker 2>packages within the repo together without going to the whole

418
00:22:42.440 --> 00:22:45.359
<v Speaker 2>process of let me publish that, let me update the

419
00:22:45.480 --> 00:22:47.440
<v Speaker 2>versions on all the other packages, et ceter So you

420
00:22:47.519 --> 00:22:49.680
<v Speaker 2>can directly kind of depend on other packages in the

421
00:22:49.720 --> 00:22:52.640
<v Speaker 2>same repository. That is mono ripole in my mind.

422
00:22:54.680 --> 00:22:58.640
<v Speaker 1>Okay, okay, so if I so you could so far

423
00:22:58.720 --> 00:23:02.599
<v Speaker 1>like a company you know, could have different applications, say

424
00:23:02.599 --> 00:23:06.519
<v Speaker 1>they've got a view app versus angular app versus whatever.

425
00:23:06.920 --> 00:23:09.960
<v Speaker 1>The developers can work in the same repo, but only

426
00:23:10.000 --> 00:23:13.480
<v Speaker 1>on their projects and only impact. Yeah, I mean so when,

427
00:23:13.720 --> 00:23:15.680
<v Speaker 1>so how does that work? So when you're creating a branch, right,

428
00:23:15.759 --> 00:23:18.519
<v Speaker 1>let's say you create a feature branch for your particular project,

429
00:23:18.880 --> 00:23:22.359
<v Speaker 1>you're creating a branch of the entire repo just working

430
00:23:22.480 --> 00:23:23.160
<v Speaker 1>within your.

431
00:23:23.599 --> 00:23:26.599
<v Speaker 2>Yes, you're creating the ripple is one. So you're creating

432
00:23:26.839 --> 00:23:29.640
<v Speaker 2>branches every time on the entire repo. But you can

433
00:23:29.759 --> 00:23:33.960
<v Speaker 2>focus on your think, only on your think. And this

434
00:23:34.119 --> 00:23:37.200
<v Speaker 2>is where tools like PMPM work come in. Because naturally

435
00:23:37.400 --> 00:23:41.119
<v Speaker 2>MPM doesn't have this understanding, or it didn't have. I'm

436
00:23:41.160 --> 00:23:43.000
<v Speaker 2>not sure. I haven't followed up to the latest and

437
00:23:43.079 --> 00:23:45.759
<v Speaker 2>latest MPM. I'm not sure what it offers, but it

438
00:23:45.960 --> 00:23:50.079
<v Speaker 2>didn't historically have the concept of multiple things in the

439
00:23:50.160 --> 00:23:52.880
<v Speaker 2>same ripple right, like you have to go there each

440
00:23:52.960 --> 00:23:55.839
<v Speaker 2>individual kind of things. They cannot be connected like NPM

441
00:23:55.880 --> 00:23:59.720
<v Speaker 2>doesn't have this concept of connected packages within the same repol,

442
00:24:00.079 --> 00:24:02.880
<v Speaker 2>So you need other tools, and PMPM, I think is

443
00:24:02.960 --> 00:24:05.880
<v Speaker 2>one of the few ones that are super successful. I

444
00:24:05.960 --> 00:24:08.799
<v Speaker 2>think MPM has nowadays or for a few versions, something

445
00:24:08.880 --> 00:24:12.440
<v Speaker 2>like workspaces, but I haven't fully explored that because PMPM

446
00:24:12.559 --> 00:24:15.759
<v Speaker 2>is just so amazing at the things that it can

447
00:24:15.839 --> 00:24:20.279
<v Speaker 2>do and performance compared to MPM that there's at least

448
00:24:20.359 --> 00:24:23.200
<v Speaker 2>for some years that I've worked with PMPM, no point

449
00:24:23.359 --> 00:24:26.960
<v Speaker 2>of kind of switching. So PMPM is a much I

450
00:24:27.000 --> 00:24:30.000
<v Speaker 2>would say faster and leaner and very kind of focused

451
00:24:30.039 --> 00:24:33.000
<v Speaker 2>to and can allow you to be super strict in

452
00:24:33.119 --> 00:24:36.279
<v Speaker 2>things in a monopeople. When I say strict, we can

453
00:24:36.359 --> 00:24:40.200
<v Speaker 2>go into very much the depths of dependency management. But

454
00:24:40.319 --> 00:24:43.799
<v Speaker 2>maybe I can pause here and let you maybe direct

455
00:24:43.839 --> 00:24:46.400
<v Speaker 2>me or point me to some questions or directions that

456
00:24:46.440 --> 00:24:47.559
<v Speaker 2>are interesting kind of.

457
00:24:49.200 --> 00:24:51.519
<v Speaker 1>I've always been curious what that first P stands for

458
00:24:51.680 --> 00:24:52.480
<v Speaker 1>in pm PM.

459
00:24:53.279 --> 00:24:57.559
<v Speaker 2>I think it's performance. I am not one hundred percent here,

460
00:24:58.680 --> 00:25:01.279
<v Speaker 2>don't like put me on record, but I think it's performing.

461
00:25:02.160 --> 00:25:04.279
<v Speaker 1>Yeah, I always have the important questions like that.

462
00:25:05.319 --> 00:25:08.559
<v Speaker 2>So yeah, that's that's kind of your responsibility.

463
00:25:11.079 --> 00:25:13.519
<v Speaker 1>So anyway, okay, so now we've established what a what

464
00:25:13.680 --> 00:25:16.680
<v Speaker 1>a mono repo is, and what PM in pm PM is,

465
00:25:16.920 --> 00:25:20.839
<v Speaker 1>so let's go forward. So what is it? What are

466
00:25:20.880 --> 00:25:22.359
<v Speaker 1>you here to talk about? What is it that you're

467
00:25:22.440 --> 00:25:25.519
<v Speaker 1>doing that is somehow enhancing this or what is this?

468
00:25:26.000 --> 00:25:30.759
<v Speaker 1>Uh I'm sorry the break proof? Yes, do force in

469
00:25:30.839 --> 00:25:31.599
<v Speaker 1>that environment?

470
00:25:32.160 --> 00:25:34.240
<v Speaker 2>Amazing? Thank you, Thank you for that kind of question.

471
00:25:34.440 --> 00:25:37.519
<v Speaker 2>By the way, I adore the level of ability that

472
00:25:37.599 --> 00:25:39.759
<v Speaker 2>you can break down something and you can kind of

473
00:25:39.880 --> 00:25:42.759
<v Speaker 2>keep the conversation get clear and not like go to

474
00:25:42.880 --> 00:25:45.039
<v Speaker 2>bike shedding or something like this. So thank you.

475
00:25:45.160 --> 00:25:47.720
<v Speaker 1>Oh yeah, yeah, I like to make it clear.

476
00:25:48.279 --> 00:25:51.559
<v Speaker 2>So yeah, we establish some backgrounds on PMPM and monory pools,

477
00:25:51.640 --> 00:25:54.240
<v Speaker 2>and I kind of try to outline a problem that

478
00:25:54.400 --> 00:25:57.880
<v Speaker 2>I see in the typical way of like putting dependencies

479
00:25:58.559 --> 00:26:01.319
<v Speaker 2>in one big list of things that we do. By

480
00:26:01.359 --> 00:26:03.640
<v Speaker 2>the way, in mono repos is the same thing. You

481
00:26:03.720 --> 00:26:06.240
<v Speaker 2>can still have many packages, and this is what usually happens.

482
00:26:06.440 --> 00:26:09.480
<v Speaker 2>You have an application, let's say view. Let's use your example,

483
00:26:09.759 --> 00:26:12.400
<v Speaker 2>and inside of you you have all of its dependencies

484
00:26:12.480 --> 00:26:18.039
<v Speaker 2>and all of its tools, so it will contain just Yestlen, cypress, playwright,

485
00:26:18.160 --> 00:26:21.799
<v Speaker 2>whatever you have, it will be there, right, Okay, So

486
00:26:22.000 --> 00:26:23.359
<v Speaker 2>what is this breakthrough thing?

487
00:26:23.480 --> 00:26:23.599
<v Speaker 1>Right?

488
00:26:24.720 --> 00:26:29.640
<v Speaker 2>We wanted to try and escape this locking the thing

489
00:26:29.759 --> 00:26:31.640
<v Speaker 2>that I kind of the concept that I offered. We

490
00:26:31.799 --> 00:26:35.400
<v Speaker 2>wanted to be able to upgrade one tool, and we

491
00:26:35.519 --> 00:26:39.319
<v Speaker 2>face so many situations, I mean so many is stuations

492
00:26:39.359 --> 00:26:41.000
<v Speaker 2>where we wanted to just a break one tool like

493
00:26:41.319 --> 00:26:45.359
<v Speaker 2>linked stage a little too. That helps us with running

494
00:26:45.519 --> 00:26:49.519
<v Speaker 2>checks before get commited right or on get a pr

495
00:26:49.759 --> 00:26:50.720
<v Speaker 2>We won't just oblive that.

496
00:26:52.039 --> 00:26:54.519
<v Speaker 1>Yeah, I think we use that on my project. So yeah,

497
00:26:54.519 --> 00:26:55.400
<v Speaker 1>I know what you're talking about.

498
00:26:55.759 --> 00:26:57.640
<v Speaker 2>So we won't to agree that. But that required a

499
00:26:57.680 --> 00:26:59.400
<v Speaker 2>new version of not just a new version. I'm like,

500
00:26:59.480 --> 00:27:01.920
<v Speaker 2>oh no, we're stuck in the same thing, the same loop.

501
00:27:02.960 --> 00:27:05.160
<v Speaker 2>So we we were looking for a tool and we

502
00:27:05.200 --> 00:27:09.720
<v Speaker 2>actually talked with the maintainer of PMPM so don amazing guy.

503
00:27:10.200 --> 00:27:10.440
<v Speaker 1>It was.

504
00:27:10.759 --> 00:27:16.319
<v Speaker 2>It was an amazing call, and we kind of teased

505
00:27:16.400 --> 00:27:20.279
<v Speaker 2>him with this concept like, hey, but what if what

506
00:27:20.440 --> 00:27:23.400
<v Speaker 2>if we don't need Cyprus to be coupled with our

507
00:27:23.519 --> 00:27:25.400
<v Speaker 2>other stuff. We don't need just to be coupled with

508
00:27:25.519 --> 00:27:29.000
<v Speaker 2>our view stuff. Right, there are totally different concepts, like

509
00:27:29.759 --> 00:27:32.039
<v Speaker 2>if you go back to our previous example web back

510
00:27:32.119 --> 00:27:36.480
<v Speaker 2>and just they're totally different. Can I just be able

511
00:27:36.839 --> 00:27:39.759
<v Speaker 2>to say I'm in a mono reple Package A is

512
00:27:39.839 --> 00:27:42.720
<v Speaker 2>my application. This is why I run my viehw code

513
00:27:42.880 --> 00:27:47.359
<v Speaker 2>or React whatever. Right. But I had package B, and

514
00:27:47.480 --> 00:27:51.920
<v Speaker 2>this package B is all my JEST stuff. This is

515
00:27:52.079 --> 00:27:56.400
<v Speaker 2>where all my GEST configuration lives, all my plugins for jests.

516
00:27:56.720 --> 00:27:58.440
<v Speaker 2>And what I want to I want to be able

517
00:27:58.480 --> 00:28:02.319
<v Speaker 2>to do is any application like package A or package C.

518
00:28:03.039 --> 00:28:06.039
<v Speaker 2>If it's another application, as you suggested, maybe I have

519
00:28:06.119 --> 00:28:09.160
<v Speaker 2>a view and an angler app, right, or let's say

520
00:28:09.160 --> 00:28:11.960
<v Speaker 2>I view and a reactor. I want both of them

521
00:28:12.680 --> 00:28:15.079
<v Speaker 2>to share my configuration. I don't want to redo it.

522
00:28:15.839 --> 00:28:17.480
<v Speaker 2>I don't want to. I won't be able to just

523
00:28:17.680 --> 00:28:21.160
<v Speaker 2>call jest, have some basic configuration that makes sense for

524
00:28:21.240 --> 00:28:24.559
<v Speaker 2>our company or for this one repole, and just run

525
00:28:24.640 --> 00:28:27.960
<v Speaker 2>it from package A and package C. So this package B,

526
00:28:28.319 --> 00:28:31.319
<v Speaker 2>this magical JEST must be able to be isolated and

527
00:28:31.440 --> 00:28:34.960
<v Speaker 2>must be callable from the other packages. Right, So package

528
00:28:35.079 --> 00:28:38.039
<v Speaker 2>should be able to say, hey, I need GEST from

529
00:28:38.079 --> 00:28:41.680
<v Speaker 2>package B, and package should do the same thing. Cool.

530
00:28:42.880 --> 00:28:45.559
<v Speaker 2>Let's say in a classic Mono Repo. No matter whether

531
00:28:45.599 --> 00:28:49.279
<v Speaker 2>I use PMPM, you can you can structure these packages.

532
00:28:49.759 --> 00:28:53.759
<v Speaker 2>Now there's two questions, right, how do I call one

533
00:28:53.839 --> 00:28:55.799
<v Speaker 2>package from the other package? Like how do I call

534
00:28:56.200 --> 00:29:00.359
<v Speaker 2>JEST from package B in the AD from package to

535
00:29:00.480 --> 00:29:04.799
<v Speaker 2>package whatever? Right, So I'm not sure how other tools

536
00:29:04.799 --> 00:29:06.920
<v Speaker 2>do it, and I don't think it's so popular as

537
00:29:07.000 --> 00:29:10.039
<v Speaker 2>a thing, but PMPM allows you to filter out to

538
00:29:10.200 --> 00:29:13.039
<v Speaker 2>query with a command line. Basically, you open the terminal

539
00:29:13.279 --> 00:29:16.200
<v Speaker 2>say PMPM and you can filter packages. So you can

540
00:29:16.240 --> 00:29:20.240
<v Speaker 2>select one package and run a script from its package Jason,

541
00:29:20.720 --> 00:29:25.279
<v Speaker 2>or run a dependency that it's installed in this package. Okay,

542
00:29:25.599 --> 00:29:29.279
<v Speaker 2>So I can say PMPN filter my GEST package JEST,

543
00:29:30.119 --> 00:29:33.480
<v Speaker 2>so that will run just from my package that has

544
00:29:33.559 --> 00:29:37.759
<v Speaker 2>all my est stuff. Okay, So this means this allows

545
00:29:37.799 --> 00:29:42.880
<v Speaker 2>basically to collest from these two other packages without installing JEST.

546
00:29:43.680 --> 00:29:46.319
<v Speaker 2>So my package with my view application doesn't have just

547
00:29:46.440 --> 00:29:50.640
<v Speaker 2>install nothing, doesn't even know about just, but it can

548
00:29:50.759 --> 00:29:55.160
<v Speaker 2>codest that is instelled from the other package. Now, probably

549
00:29:55.200 --> 00:29:58.240
<v Speaker 2>the question here is like, okay, okay, why are we

550
00:29:58.319 --> 00:30:01.799
<v Speaker 2>complicating things making this separation? And now this is the

551
00:30:01.880 --> 00:30:06.039
<v Speaker 2>key here. This is because because PMPM. After we talk

552
00:30:06.079 --> 00:30:09.279
<v Speaker 2>with Zutan did one feature, which is I think it's

553
00:30:09.440 --> 00:30:12.039
<v Speaker 2>for me. It changed the game in terms of a

554
00:30:12.119 --> 00:30:17.359
<v Speaker 2>mono rip. They introduced the concept of runtime per package,

555
00:30:18.319 --> 00:30:20.359
<v Speaker 2>and they in the latest versions, by the way, a

556
00:30:20.400 --> 00:30:24.920
<v Speaker 2>few versions back ten something. I think it's now. They

557
00:30:25.039 --> 00:30:29.200
<v Speaker 2>even allowed different than no Dress runtimes. So you can say,

558
00:30:29.359 --> 00:30:33.400
<v Speaker 2>my package A will have no Jess fourteen. It's a

559
00:30:33.519 --> 00:30:37.720
<v Speaker 2>legacy one, let's say Angler eleven. But my package B

560
00:30:38.440 --> 00:30:43.680
<v Speaker 2>has all the all the latest React nineteen, like running

561
00:30:43.759 --> 00:30:46.279
<v Speaker 2>some CLI that only runs on the newest no Dress.

562
00:30:46.680 --> 00:30:49.480
<v Speaker 2>And I can even have like a concept experimental app

563
00:30:50.000 --> 00:30:53.359
<v Speaker 2>that runs on bun or other runtime and still live

564
00:30:53.400 --> 00:30:56.039
<v Speaker 2>in the same ripple, and I can still manage all

565
00:30:56.079 --> 00:31:02.400
<v Speaker 2>of their dependencies through the same PMPMCLI. Right, So back

566
00:31:02.599 --> 00:31:05.240
<v Speaker 2>back to the original example. I know, very lengthy, I'm

567
00:31:05.279 --> 00:31:08.319
<v Speaker 2>going to pose in a minute, I promise. Back in

568
00:31:08.359 --> 00:31:10.799
<v Speaker 2>the original example, I have my view application and I

569
00:31:10.920 --> 00:31:13.799
<v Speaker 2>have my gest related stuff in a separate package right

570
00:31:14.000 --> 00:31:15.160
<v Speaker 2>in the mono report.

571
00:31:15.839 --> 00:31:19.680
<v Speaker 1>The MPM package. Is that a separate like a separate directory. Yes,

572
00:31:19.759 --> 00:31:20.440
<v Speaker 1>separate directory.

573
00:31:20.559 --> 00:31:23.720
<v Speaker 2>Sorry, yes, let's simplify think, yes, two directories. One is

574
00:31:23.799 --> 00:31:26.319
<v Speaker 2>my view application with all of its dependencies, and one

575
00:31:26.440 --> 00:31:29.559
<v Speaker 2>is my GEST stuff a separate directory with all of

576
00:31:29.599 --> 00:31:33.720
<v Speaker 2>his GET related dependencies inployees. Right. So the NPM with

577
00:31:33.839 --> 00:31:36.559
<v Speaker 2>this feature what allowed us is the GET related stuff

578
00:31:37.839 --> 00:31:41.400
<v Speaker 2>to be running at note twenty four while your application

579
00:31:41.759 --> 00:31:45.400
<v Speaker 2>can run a newer or older note like the application

580
00:31:45.599 --> 00:31:47.559
<v Speaker 2>meaning the build of the application.

581
00:31:47.799 --> 00:31:47.920
<v Speaker 1>Right.

582
00:31:48.720 --> 00:31:50.920
<v Speaker 2>So this means that I can run GEST. I can

583
00:31:51.000 --> 00:31:53.759
<v Speaker 2>say from my application. I can say, hey, can you

584
00:31:53.839 --> 00:31:56.240
<v Speaker 2>codeest from the other package, And what this will do

585
00:31:57.079 --> 00:32:00.559
<v Speaker 2>is calle the other NOTEJAS that is associated with the

586
00:32:00.680 --> 00:32:04.039
<v Speaker 2>JEST from my application and can run on my source code.

587
00:32:04.559 --> 00:32:06.720
<v Speaker 2>This way, I can use the specific note that I

588
00:32:06.960 --> 00:32:10.759
<v Speaker 2>know it works with jests from my application, that I

589
00:32:10.920 --> 00:32:12.759
<v Speaker 2>know that it works with a different note all the

590
00:32:12.799 --> 00:32:15.039
<v Speaker 2>same note, but let's put it in a different note.

591
00:32:15.799 --> 00:32:18.759
<v Speaker 2>This gives you the ability to absolutely freely a great jest.

592
00:32:19.480 --> 00:32:21.039
<v Speaker 2>You can a great GEST and the only thing you

593
00:32:21.079 --> 00:32:23.039
<v Speaker 2>need to do is make sure that the configuration doesn't

594
00:32:23.079 --> 00:32:24.920
<v Speaker 2>break when you up great and that's it. You don't

595
00:32:24.960 --> 00:32:28.799
<v Speaker 2>have to think about all the interconnected dependencies that it

596
00:32:28.960 --> 00:32:33.119
<v Speaker 2>might bring in. You can have great in isolation. That is,

597
00:32:33.359 --> 00:32:38.519
<v Speaker 2>let's say the largest change that this breakproof freepoint and

598
00:32:38.519 --> 00:32:42.079
<v Speaker 2>template is promoting. It's not only that, and it's not

599
00:32:42.480 --> 00:32:45.440
<v Speaker 2>like as you can see, it's not a major thing.

600
00:32:45.599 --> 00:32:48.960
<v Speaker 2>Everything comes in from PMPM. There's a lot of other goodies,

601
00:32:49.039 --> 00:32:51.319
<v Speaker 2>let's say. But I think this is the highlight, like

602
00:32:51.519 --> 00:32:53.759
<v Speaker 2>being able to upgrade individually.

603
00:32:58.119 --> 00:33:02.079
<v Speaker 1>I'm okay, So yeah, I got a lot of questions here.

604
00:33:02.720 --> 00:33:05.640
<v Speaker 1>Being visual, it's hard to do this without actually looking

605
00:33:05.680 --> 00:33:06.119
<v Speaker 1>at something.

606
00:33:06.200 --> 00:33:08.559
<v Speaker 2>But so where.

607
00:33:10.200 --> 00:33:13.960
<v Speaker 1>Do you so normally, you know, in any project, the

608
00:33:14.039 --> 00:33:17.240
<v Speaker 1>way it's always worked is you have your node mantostrecture, right,

609
00:33:17.279 --> 00:33:21.160
<v Speaker 1>which has all your different dependencies and their indpendencies and

610
00:33:21.240 --> 00:33:26.119
<v Speaker 1>so on under your project route. So in your mono

611
00:33:26.200 --> 00:33:31.240
<v Speaker 1>repost setup, then where do these separate versions of note

612
00:33:31.279 --> 00:33:32.279
<v Speaker 1>actually get installed?

613
00:33:33.039 --> 00:33:33.240
<v Speaker 2>Yes?

614
00:33:33.440 --> 00:33:35.200
<v Speaker 1>Where is the physical locations of those?

615
00:33:35.319 --> 00:33:38.720
<v Speaker 2>Fantastic? Okay, so you have two direct directories, right, I

616
00:33:38.839 --> 00:33:41.279
<v Speaker 2>know it's a very visual thing. It's a podcasts people

617
00:33:41.359 --> 00:33:43.759
<v Speaker 2>some some people listen. So you have the two directories

618
00:33:44.319 --> 00:33:48.400
<v Speaker 2>and you can just accept them as two absolutely individual projects.

619
00:33:48.519 --> 00:33:51.599
<v Speaker 2>They have inside of them the note modules for their

620
00:33:51.640 --> 00:33:54.480
<v Speaker 2>own note modules. But your question was more like where

621
00:33:54.559 --> 00:33:57.960
<v Speaker 2>is the note dress? And maybe maybe the other question

622
00:33:58.079 --> 00:34:01.680
<v Speaker 2>is who stous the o JISS like, how do how

623
00:34:01.720 --> 00:34:04.079
<v Speaker 2>does you get the nogs? I'm not sure if you

624
00:34:04.160 --> 00:34:07.599
<v Speaker 2>have an innate understanding or maybe you already know the answer.

625
00:34:08.000 --> 00:34:11.639
<v Speaker 2>But maybe people are used to have a manager for

626
00:34:11.760 --> 00:34:14.480
<v Speaker 2>no JS versius like MBM very popular.

627
00:34:14.559 --> 00:34:16.119
<v Speaker 1>One version manager.

628
00:34:16.400 --> 00:34:18.599
<v Speaker 2>Yes, no version manager, it's a CLI too. I can

629
00:34:18.719 --> 00:34:21.639
<v Speaker 2>say use this version, or I can set it up

630
00:34:21.679 --> 00:34:23.559
<v Speaker 2>so that when I go to a certain project with

631
00:34:23.719 --> 00:34:27.199
<v Speaker 2>automatically which is not okay. It can also install note

632
00:34:27.320 --> 00:34:31.519
<v Speaker 2>versions can also uninstalled them like it manages no verse. Cool.

633
00:34:31.920 --> 00:34:34.960
<v Speaker 2>But what happens in this PMPN world and now this

634
00:34:35.119 --> 00:34:39.639
<v Speaker 2>is the other fantastic thing. PMPM is not a dependency

635
00:34:39.719 --> 00:34:43.760
<v Speaker 2>that lives under note right. It is written in JavaScript,

636
00:34:44.440 --> 00:34:49.159
<v Speaker 2>but is it's bundled as a standalone CLI so it

637
00:34:49.239 --> 00:34:52.480
<v Speaker 2>can work without a specific like that you don't have

638
00:34:52.559 --> 00:34:54.960
<v Speaker 2>to have NOTE to be able to run PMPM. This

639
00:34:55.079 --> 00:34:59.840
<v Speaker 2>is a huge difference from npm MPM is always bundled

640
00:35:00.039 --> 00:35:04.079
<v Speaker 2>with a specific version of no JFS right right, Okay, cool,

641
00:35:04.480 --> 00:35:07.239
<v Speaker 2>So you have PMPM and it's a standalone thing. And

642
00:35:07.400 --> 00:35:12.159
<v Speaker 2>the new feature is like addition to PMPM is that

643
00:35:12.239 --> 00:35:14.719
<v Speaker 2>it can also manage no JAS versions, so it has

644
00:35:14.840 --> 00:35:19.880
<v Speaker 2>like an MVM features, so it combines NPM and MVM

645
00:35:19.960 --> 00:35:24.119
<v Speaker 2>together in one two. I'm saying combined because PMPM, in

646
00:35:24.239 --> 00:35:27.920
<v Speaker 2>my mind, is a superset of MPM, which means it

647
00:35:28.039 --> 00:35:30.400
<v Speaker 2>has all of the functionalities of MPM to be honest,

648
00:35:30.440 --> 00:35:34.760
<v Speaker 2>even the same commands and underhood, basically it's kind of

649
00:35:34.800 --> 00:35:38.480
<v Speaker 2>the same results, but also can manage no JAS versions.

650
00:35:39.039 --> 00:35:43.400
<v Speaker 2>And having that that new feature that a PMPM introduced

651
00:35:43.719 --> 00:35:46.519
<v Speaker 2>after we talked to Zutan that allowed each package to

652
00:35:46.599 --> 00:35:49.880
<v Speaker 2>define it. PPM reads a specific property in your package

653
00:35:49.960 --> 00:35:52.880
<v Speaker 2>jason file. You have two directories and each have package

654
00:35:52.920 --> 00:35:55.679
<v Speaker 2>jason file right, and each of them can specify a

655
00:35:55.800 --> 00:36:00.800
<v Speaker 2>property that I think is called runtime environment and PMPM

656
00:36:00.920 --> 00:36:04.760
<v Speaker 2>knows about this property, reads it and checks if there

657
00:36:04.840 --> 00:36:08.239
<v Speaker 2>is an installed NOGS with this version. If it doesn't have,

658
00:36:08.440 --> 00:36:10.840
<v Speaker 2>it installs it for you automatically. You don't have to

659
00:36:10.880 --> 00:36:13.400
<v Speaker 2>do anything, So even if you try to run something

660
00:36:13.440 --> 00:36:16.559
<v Speaker 2>from a package that you don't have the OGS version four,

661
00:36:16.760 --> 00:36:19.800
<v Speaker 2>it will install it for you. Of course you can

662
00:36:19.920 --> 00:36:22.039
<v Speaker 2>pre install it, but it would do it for you

663
00:36:22.159 --> 00:36:25.320
<v Speaker 2>if you haven't done this step. I hope that this

664
00:36:25.480 --> 00:36:27.519
<v Speaker 2>gives a better idea like PMPM does it for you

665
00:36:27.599 --> 00:36:30.639
<v Speaker 2>basically in a short answer, a PPM does it for you?

666
00:36:31.599 --> 00:36:35.159
<v Speaker 1>Okay, but again, where so is it like you have

667
00:36:35.239 --> 00:36:38.079
<v Speaker 1>a separate package for each version of no. Twenty two,

668
00:36:38.199 --> 00:36:41.119
<v Speaker 1>twenty three, twenty four, you know, whatever versions you're using.

669
00:36:41.360 --> 00:36:42.360
<v Speaker 1>It is kind of report.

670
00:36:43.320 --> 00:36:45.280
<v Speaker 2>It is kind of the same as MVM. It has

671
00:36:45.360 --> 00:36:48.280
<v Speaker 2>told them in your system, in your home directory, maybe

672
00:36:48.599 --> 00:36:50.599
<v Speaker 2>if it stolls them somewhere. It just knows how to

673
00:36:50.760 --> 00:36:54.480
<v Speaker 2>run them for each package. Basically, so if you have

674
00:36:54.599 --> 00:36:57.639
<v Speaker 2>a package with just independencies, it knows that if you

675
00:36:57.679 --> 00:37:00.360
<v Speaker 2>want to run stuff from there, it will use the

676
00:37:00.440 --> 00:37:04.239
<v Speaker 2>installed no Jazz version with debt version. Sorry, the installted

677
00:37:04.239 --> 00:37:05.320
<v Speaker 2>no jas with debt version.

678
00:37:07.079 --> 00:37:13.000
<v Speaker 1>Okay, so I would So in your packages there are two.

679
00:37:13.960 --> 00:37:16.840
<v Speaker 1>There's save and then there's saved dev. Right, so there's

680
00:37:16.880 --> 00:37:20.719
<v Speaker 1>the tools that you need just why you're developing, and

681
00:37:20.840 --> 00:37:23.719
<v Speaker 1>there's the tools that the packages that need to be

682
00:37:23.840 --> 00:37:28.280
<v Speaker 1>installed for your application actually run. Right, So you could

683
00:37:28.320 --> 00:37:31.599
<v Speaker 1>have so to use examples we're using just as a

684
00:37:31.639 --> 00:37:33.920
<v Speaker 1>testing utaility, so you only need that at development type.

685
00:37:33.920 --> 00:37:35.599
<v Speaker 1>So that would be a saved dev type property in

686
00:37:35.639 --> 00:37:39.039
<v Speaker 1>your package that Jason absolutely say a CSS framework say

687
00:37:39.079 --> 00:37:41.559
<v Speaker 1>tail wind, which is a real popular win, right, that's

688
00:37:41.639 --> 00:37:45.679
<v Speaker 1>going to be a uh you've got to have that

689
00:37:45.920 --> 00:37:48.679
<v Speaker 1>in your bundled job description in order for your application

690
00:37:48.760 --> 00:37:54.079
<v Speaker 1>to work or at least to look decent. So can

691
00:37:54.199 --> 00:37:58.679
<v Speaker 1>this handle can you have I'm trying to think how

692
00:37:58.719 --> 00:38:02.599
<v Speaker 1>a word this? Could you have? You runtime packages that

693
00:38:02.719 --> 00:38:05.400
<v Speaker 1>you need to actually run your application that aren't saved,

694
00:38:06.679 --> 00:38:12.039
<v Speaker 1>that use different versions of Node? Is that a non issue?

695
00:38:12.480 --> 00:38:13.760
<v Speaker 2>Give me a second too, kind of.

696
00:38:15.320 --> 00:38:18.239
<v Speaker 1>Actually an issue? Because notice is your runtime from when

697
00:38:18.239 --> 00:38:18.840
<v Speaker 1>you're developing?

698
00:38:19.280 --> 00:38:23.119
<v Speaker 2>Yes, yes, if you're asking about runtime versus death time.

699
00:38:23.840 --> 00:38:24.000
<v Speaker 1>Yeah.

700
00:38:24.039 --> 00:38:26.519
<v Speaker 2>If if runtime is the browser, you don't you don't

701
00:38:26.800 --> 00:38:27.599
<v Speaker 2>need to think about it.

702
00:38:28.480 --> 00:38:30.719
<v Speaker 1>Okay, Yeah, never mind, I just realized that as that.

703
00:38:31.400 --> 00:38:33.719
<v Speaker 2>And if you're talking about different tools, if you're talking

704
00:38:33.760 --> 00:38:37.920
<v Speaker 2>about different tools, let's say just andy istlink, you can

705
00:38:38.000 --> 00:38:41.559
<v Speaker 2>expand on the example and have a package for island.

706
00:38:42.480 --> 00:38:44.559
<v Speaker 2>So the package with islint comes with its own no

707
00:38:44.719 --> 00:38:47.679
<v Speaker 2>Jet version and all of it's plugins, right because it

708
00:38:47.840 --> 00:38:50.280
<v Speaker 2>drags in it drags in a lot of plugins and

709
00:38:50.360 --> 00:38:53.880
<v Speaker 2>they have their own dependencies, right, So maybe these dependencies

710
00:38:54.280 --> 00:38:56.920
<v Speaker 2>are like a mismatch with your own dependencies if you

711
00:38:57.039 --> 00:38:58.039
<v Speaker 2>store them at the same place.

712
00:39:01.079 --> 00:39:02.679
<v Speaker 1>Okay, Yeah, so I think I get to just so

713
00:39:02.719 --> 00:39:05.079
<v Speaker 1>it's basically installing the different versions of no JAS on

714
00:39:05.159 --> 00:39:07.559
<v Speaker 1>your system and then just referencing them from the packages

715
00:39:07.760 --> 00:39:09.360
<v Speaker 1>as you need, but being.

716
00:39:09.239 --> 00:39:12.239
<v Speaker 2>Able to kind of use all the tools from one

717
00:39:12.320 --> 00:39:14.920
<v Speaker 2>package that doesn't have them installed, so they don't they

718
00:39:15.000 --> 00:39:18.400
<v Speaker 2>don't interfere with your dependencies, and they don't interfere with

719
00:39:18.480 --> 00:39:21.199
<v Speaker 2>your no Jazz version. They have their own thing.

720
00:39:22.559 --> 00:39:26.079
<v Speaker 1>So now the other you touched on something here briefly

721
00:39:26.159 --> 00:39:29.360
<v Speaker 1>that I wanted to ask about, and that's other run times.

722
00:39:29.639 --> 00:39:32.159
<v Speaker 1>So you got Bun, You've got Dno, You've got other things.

723
00:39:32.199 --> 00:39:35.360
<v Speaker 1>You don't necessarily have to use no JS as your

724
00:39:35.519 --> 00:39:38.519
<v Speaker 1>as your run time. I think was it Phoenix? Was

725
00:39:38.519 --> 00:39:40.159
<v Speaker 1>that another one that was supposed to be and then

726
00:39:40.239 --> 00:39:41.719
<v Speaker 1>sort of diet on the vine.

727
00:39:41.920 --> 00:39:44.920
<v Speaker 2>You're you're now reaching my ability to like to know.

728
00:39:45.159 --> 00:39:47.920
<v Speaker 2>But Dino, I know, Bun, I know, No, just that Phoenix,

729
00:39:48.199 --> 00:39:48.920
<v Speaker 2>I'm not sure.

730
00:39:49.079 --> 00:39:51.440
<v Speaker 1>Anyway that yeah, I forget that one. I didn't know

731
00:39:51.559 --> 00:39:54.639
<v Speaker 1>much about it anyway. The point is, does all of this,

732
00:39:54.800 --> 00:39:59.119
<v Speaker 1>the PNPM and this report that you had, does that

733
00:39:59.239 --> 00:40:01.840
<v Speaker 1>only worked in no j or can you support Bernardino

734
00:40:02.320 --> 00:40:03.440
<v Speaker 1>or other run times as well.

735
00:40:03.679 --> 00:40:06.679
<v Speaker 2>Fantastic question. The latest one of the latest versions of

736
00:40:06.760 --> 00:40:09.639
<v Speaker 2>PMPM allowed this new thing. They started with this concept

737
00:40:09.679 --> 00:40:12.119
<v Speaker 2>after we talked Zotan. We talked about it, and they

738
00:40:12.159 --> 00:40:14.840
<v Speaker 2>introduced no Jess only right, so you can have no

739
00:40:15.360 --> 00:40:18.519
<v Speaker 2>eleven and twenty. But I think in the recent versions

740
00:40:19.079 --> 00:40:22.199
<v Speaker 2>they change that. So they introduced the ability to choose

741
00:40:22.400 --> 00:40:26.400
<v Speaker 2>Dino for one environment. No, so one package, one directory.

742
00:40:26.880 --> 00:40:29.440
<v Speaker 2>This will run with Dino. So all your scripts, all

743
00:40:29.480 --> 00:40:33.039
<v Speaker 2>your stout dependencies, we will run through Dino. DINU will

744
00:40:33.119 --> 00:40:35.840
<v Speaker 2>run them basically. Right, So you specified Dino and a

745
00:40:35.960 --> 00:40:39.880
<v Speaker 2>version and another directory in another package. Jason, you specify

746
00:40:40.000 --> 00:40:44.079
<v Speaker 2>no jess aversion I can, I can hear, can not

747
00:40:44.239 --> 00:40:47.039
<v Speaker 2>commit to. How many run times does it support. I

748
00:40:47.159 --> 00:40:49.280
<v Speaker 2>am not sure. I'm not sure how many of them

749
00:40:49.320 --> 00:40:52.199
<v Speaker 2>they support, but I am sure I saw Dino, sure sure,

750
00:40:52.239 --> 00:40:54.559
<v Speaker 2>and I think I saw done. And I think these

751
00:40:54.599 --> 00:40:57.480
<v Speaker 2>are the kind of I hope I don't offend anyone,

752
00:40:57.519 --> 00:41:01.400
<v Speaker 2>but these are the major let's say, talk talking discussion points,

753
00:41:01.440 --> 00:41:04.119
<v Speaker 2>et cetera kind of is run times. I'm sure there's others.

754
00:41:04.400 --> 00:41:07.320
<v Speaker 2>There's probably edge run times that I don't know if

755
00:41:07.360 --> 00:41:09.320
<v Speaker 2>they have, Like a you can install them, Like I know,

756
00:41:09.440 --> 00:41:12.199
<v Speaker 2>cloud for has their own thing, my edge workers have

757
00:41:12.280 --> 00:41:15.000
<v Speaker 2>their own thing. Versailles has a run time, but I'm

758
00:41:15.039 --> 00:41:19.119
<v Speaker 2>not sure if it's just no jaiz. So many jobscript runtimes,

759
00:41:19.159 --> 00:41:21.159
<v Speaker 2>by the way, I'm not sure if they're all installable.

760
00:41:22.719 --> 00:41:26.119
<v Speaker 1>God of reminds me. I saw post on hacker News

761
00:41:26.840 --> 00:41:32.519
<v Speaker 1>probably in the last month, and it was a history

762
00:41:32.559 --> 00:41:36.599
<v Speaker 1>of JavaScript run times. Oh and the guy said it

763
00:41:36.760 --> 00:41:40.360
<v Speaker 1>took probably like a year to just to write this article.

764
00:41:40.360 --> 00:41:44.079
<v Speaker 1>Because I was like, oh, yeah, there's a few. Holy cow,

765
00:41:44.559 --> 00:41:46.639
<v Speaker 1>it was crazy how far he back. I mean, just

766
00:41:46.840 --> 00:41:51.840
<v Speaker 1>link after link after link, and I don't know if

767
00:41:51.880 --> 00:41:53.880
<v Speaker 1>this is the one. I'll have to find it maybe,

768
00:41:53.920 --> 00:41:55.719
<v Speaker 1>But I was like, holy cow, there's been a lot

769
00:41:55.800 --> 00:41:59.760
<v Speaker 1>of a lot of jobscript run times. Yeah. Here it

770
00:41:59.800 --> 00:42:02.199
<v Speaker 1>is the many, many, many JavaScript run times of the

771
00:42:02.320 --> 00:42:05.480
<v Speaker 1>last decade. And they'll do this as a pick anyway.

772
00:42:05.559 --> 00:42:07.559
<v Speaker 1>So there's a lot, but we're just focusing on on

773
00:42:07.760 --> 00:42:12.880
<v Speaker 1>these three kinds right now. Kind of yeah, yeah, okay,

774
00:42:13.079 --> 00:42:16.519
<v Speaker 1>So you have this young po breakproof based mono repo

775
00:42:16.920 --> 00:42:22.920
<v Speaker 1>m this is it's on GitHub Breakproof, dash base, dash

776
00:42:23.000 --> 00:42:29.599
<v Speaker 1>Mono repo under Poe Ltd. So how would this be implemented,

777
00:42:29.760 --> 00:42:31.800
<v Speaker 1>or how is this something where you'd have to fire

778
00:42:31.880 --> 00:42:34.639
<v Speaker 1>this up and build it, you know, from everything from

779
00:42:34.639 --> 00:42:36.760
<v Speaker 1>the beginning, or can you implement it into say an

780
00:42:36.800 --> 00:42:39.280
<v Speaker 1>existing modern repo, or how would you use this?

781
00:42:39.880 --> 00:42:44.000
<v Speaker 2>Okay? Also also fantastic question. I mean I think I

782
00:42:44.039 --> 00:42:46.639
<v Speaker 2>should just pick your questions and put them as a list.

783
00:42:46.719 --> 00:42:52.079
<v Speaker 2>How I start talking about this? Okay? So even by

784
00:42:52.119 --> 00:42:55.800
<v Speaker 2>its name, I hope they'd give some clue about it.

785
00:42:56.280 --> 00:43:02.320
<v Speaker 2>So it says base mon and go break break Yeah

786
00:43:02.719 --> 00:43:06.119
<v Speaker 2>it is, I mean, I mean breakthrough. Okay, Okay, Okay,

787
00:43:06.519 --> 00:43:10.360
<v Speaker 2>Given given your status of dead jokes owner and king,

788
00:43:10.800 --> 00:43:13.960
<v Speaker 2>I think you're you're kind of picking on the important

789
00:43:14.000 --> 00:43:16.679
<v Speaker 2>thing is Yes, breakproof is the key is the king keyword,

790
00:43:16.840 --> 00:43:19.800
<v Speaker 2>and it is because of specifically that it doesn't allow

791
00:43:19.840 --> 00:43:22.880
<v Speaker 2>you to break one package just because you have great another. Right,

792
00:43:23.840 --> 00:43:25.960
<v Speaker 2>That's that's where it all started from. This is where

793
00:43:26.000 --> 00:43:28.480
<v Speaker 2>it started from. But base Mono reple it kind of

794
00:43:28.519 --> 00:43:31.719
<v Speaker 2>gives the clue of how it's supposed to be intended

795
00:43:32.079 --> 00:43:35.360
<v Speaker 2>to be used. Right, So the giftab has this concept

796
00:43:35.400 --> 00:43:38.440
<v Speaker 2>of template repositories. Not sure if you've seen it, but

797
00:43:38.559 --> 00:43:41.079
<v Speaker 2>if you enter a template repository, It basically has a

798
00:43:41.119 --> 00:43:43.480
<v Speaker 2>button say create from this template.

799
00:43:44.000 --> 00:43:46.519
<v Speaker 1>That makes sense, I mean that's just kindard template type.

800
00:43:46.800 --> 00:43:46.960
<v Speaker 2>Yeah.

801
00:43:47.199 --> 00:43:47.400
<v Speaker 1>Sure.

802
00:43:47.840 --> 00:43:49.639
<v Speaker 2>The one thing why is this not a template? It

803
00:43:49.719 --> 00:43:53.199
<v Speaker 2>basically fits perfectly perfectly the case of a template repository.

804
00:43:53.480 --> 00:43:56.239
<v Speaker 2>But what happens that it's not super known is that

805
00:43:56.320 --> 00:44:00.079
<v Speaker 2>when you press great template repository, it blanks out the

806
00:44:00.239 --> 00:44:03.199
<v Speaker 2>entire history of the ripo. So it basically commits all

807
00:44:03.239 --> 00:44:05.440
<v Speaker 2>the files of the ripple as a new REPO with

808
00:44:05.599 --> 00:44:09.760
<v Speaker 2>no history. Okay, so you have a blank new slate

809
00:44:10.400 --> 00:44:13.079
<v Speaker 2>and you don't have all the previous changes, et cetera.

810
00:44:13.239 --> 00:44:14.760
<v Speaker 1>Okay, well, that can be good or bad.

811
00:44:14.800 --> 00:44:19.039
<v Speaker 2>I suppose exactly exactly. It could be good let's say

812
00:44:19.360 --> 00:44:21.480
<v Speaker 2>size of the repole. You don't have to care about

813
00:44:21.480 --> 00:44:25.159
<v Speaker 2>this stuff, right, But one of the let's say not

814
00:44:25.320 --> 00:44:28.440
<v Speaker 2>so great stuff is that if you fork it instead

815
00:44:28.480 --> 00:44:31.360
<v Speaker 2>of that, if you create your own base on the history,

816
00:44:32.119 --> 00:44:34.840
<v Speaker 2>it's kind of easy to pull changes, right Like if

817
00:44:34.880 --> 00:44:38.199
<v Speaker 2>you let's say you have a library and I want

818
00:44:38.239 --> 00:44:40.440
<v Speaker 2>to do a PR with some feature or a book fix,

819
00:44:41.280 --> 00:44:43.880
<v Speaker 2>usually what I do is fork it, do some changes

820
00:44:43.920 --> 00:44:46.159
<v Speaker 2>in my own branch, and create a PR to your

821
00:44:46.239 --> 00:44:50.360
<v Speaker 2>own original repository. Right. And I can do that very

822
00:44:50.400 --> 00:44:53.960
<v Speaker 2>easily because GIT knows about the history is their share.

823
00:44:54.159 --> 00:44:57.440
<v Speaker 2>My fork has all of the history of your original repository,

824
00:44:57.880 --> 00:45:02.360
<v Speaker 2>right and vice versa. If you update your original repository,

825
00:45:02.559 --> 00:45:04.480
<v Speaker 2>I can pull in all the changes.

826
00:45:05.920 --> 00:45:10.000
<v Speaker 1>Right. So we picked you're talking about working the whole repel,

827
00:45:10.119 --> 00:45:13.039
<v Speaker 1>not just a branch within a right, you fork the

828
00:45:13.199 --> 00:45:13.719
<v Speaker 1>entire ripple.

829
00:45:13.960 --> 00:45:16.360
<v Speaker 2>You fork the entire repole. Usually it's the main branch,

830
00:45:16.599 --> 00:45:19.920
<v Speaker 2>like you kind of copy the main branch only. So

831
00:45:20.280 --> 00:45:23.079
<v Speaker 2>what is the what what is the major difference? Okay?

832
00:45:23.800 --> 00:45:25.639
<v Speaker 2>So this is where I need to mention a bit

833
00:45:25.800 --> 00:45:29.159
<v Speaker 2>more maybe about what the repository is. But the whole

834
00:45:29.400 --> 00:45:33.119
<v Speaker 2>intended uses you kind of clone it. You clone it

835
00:45:33.280 --> 00:45:37.559
<v Speaker 2>to your own repository and you start from there. Why

836
00:45:38.079 --> 00:45:41.039
<v Speaker 2>why why do you use this as a new repository? Okay?

837
00:45:41.480 --> 00:45:43.719
<v Speaker 2>And and you asked, how do I get my projects

838
00:45:44.000 --> 00:45:46.519
<v Speaker 2>in it? Can I just plug it in my own

839
00:45:46.559 --> 00:45:49.480
<v Speaker 2>existing ripple? The answer here is no, you can't really

840
00:45:49.559 --> 00:45:52.320
<v Speaker 2>plug it in yours. But what you can do is

841
00:45:52.400 --> 00:45:55.760
<v Speaker 2>you important project from your existing ripple in here. We

842
00:45:55.960 --> 00:45:59.800
<v Speaker 2>created some utilities like interactive CLI with like questions like

843
00:46:00.079 --> 00:46:02.480
<v Speaker 2>where is your ripo? Where do you want it to be.

844
00:46:03.000 --> 00:46:06.039
<v Speaker 2>So when you clone the brakeproof based monitor reple and

845
00:46:06.159 --> 00:46:08.679
<v Speaker 2>you get like this copy of it, you can then

846
00:46:08.960 --> 00:46:12.679
<v Speaker 2>import the projects from elsewhere, so you can import them

847
00:46:12.719 --> 00:46:16.280
<v Speaker 2>from other monor reples or other just repoles, and you

848
00:46:16.400 --> 00:46:19.800
<v Speaker 2>put them as a package inside of your copy of

849
00:46:19.880 --> 00:46:23.719
<v Speaker 2>the breakproof monitor rep That's the intended use. And I

850
00:46:23.840 --> 00:46:26.840
<v Speaker 2>guess there's very much announce here of why is this

851
00:46:27.039 --> 00:46:30.519
<v Speaker 2>like this? And I should mention something, but I'm going

852
00:46:30.559 --> 00:46:33.360
<v Speaker 2>to pose again here to let you pick the first

853
00:46:33.440 --> 00:46:34.760
<v Speaker 2>questions if you already have.

854
00:46:35.000 --> 00:46:40.719
<v Speaker 1>Some, well, if we're talking about getting your project into

855
00:46:41.880 --> 00:46:43.679
<v Speaker 1>this repot, no, I don't have any questions, but I

856
00:46:43.760 --> 00:46:44.639
<v Speaker 1>do have some after that.

857
00:46:45.119 --> 00:46:47.760
<v Speaker 2>Okay, cool, So you have your own clone, right, you

858
00:46:47.880 --> 00:46:51.559
<v Speaker 2>copy the repository with the ford it with the entire history.

859
00:46:52.199 --> 00:46:54.880
<v Speaker 2>Next step you imported the project. You got it, So

860
00:46:55.039 --> 00:46:57.159
<v Speaker 2>why do you have why do you need this step?

861
00:46:57.440 --> 00:47:00.519
<v Speaker 2>Extra step and extra work of moving project?

862
00:47:00.960 --> 00:47:01.119
<v Speaker 1>Right?

863
00:47:02.239 --> 00:47:04.679
<v Speaker 2>So, so far we only talked about this PMP mobility

864
00:47:04.719 --> 00:47:09.840
<v Speaker 2>of isolation. Okay, but what it gives you is this

865
00:47:10.000 --> 00:47:12.960
<v Speaker 2>based moment ripple. Doesn't only have this concept, otherwise it

866
00:47:13.000 --> 00:47:14.599
<v Speaker 2>wouldn't be a based moment ripple, right, it would be

867
00:47:14.719 --> 00:47:16.880
<v Speaker 2>just a read me file. You can do that with

868
00:47:17.000 --> 00:47:21.199
<v Speaker 2>PMPM do it yourself, good luck bye. What it comes

869
00:47:21.280 --> 00:47:28.280
<v Speaker 2>in is with already some tools installed as isolated packages. Right,

870
00:47:28.800 --> 00:47:31.199
<v Speaker 2>they're not installed for your package. You can create your

871
00:47:31.199 --> 00:47:33.880
<v Speaker 2>own package with you, but there's already tools in it.

872
00:47:35.440 --> 00:47:37.800
<v Speaker 2>There are most of them. They're in a directory code

873
00:47:37.840 --> 00:47:41.559
<v Speaker 2>Infra as we just go back there. Yeah, if you

874
00:47:41.639 --> 00:47:45.239
<v Speaker 2>go back to our original conversation, there's like categories of packages. Right,

875
00:47:45.400 --> 00:47:48.320
<v Speaker 2>there's something about the built, there's something about code checks,

876
00:47:48.360 --> 00:47:50.559
<v Speaker 2>there's something about testing. So this is a kind of

877
00:47:50.599 --> 00:47:53.519
<v Speaker 2>a tooling that you usually have in an application. So

878
00:47:53.679 --> 00:47:56.679
<v Speaker 2>this ripple comes with some of those packages that are

879
00:47:56.760 --> 00:47:59.599
<v Speaker 2>isolated when their own dependence in their own packages, and

880
00:47:59.639 --> 00:48:03.360
<v Speaker 2>they're all Jazz version already there. So what you are

881
00:48:03.440 --> 00:48:08.239
<v Speaker 2>able to do is have your project already runs, linked,

882
00:48:08.400 --> 00:48:13.400
<v Speaker 2>already run, just already configured with some base sensible configuration.

883
00:48:14.039 --> 00:48:18.159
<v Speaker 2>It's not opinionated and you can change it, but it's

884
00:48:18.239 --> 00:48:21.199
<v Speaker 2>centralized and it's already working. So this concept that we

885
00:48:21.280 --> 00:48:24.880
<v Speaker 2>introduced in the beginning, it's a starter. It's a starter

886
00:48:25.039 --> 00:48:27.960
<v Speaker 2>that you can use, so they are already working. A

887
00:48:28.079 --> 00:48:32.559
<v Speaker 2>COO part is usually as we talked about scale of companies, right,

888
00:48:32.639 --> 00:48:35.639
<v Speaker 2>and scale of projects. When you have time projects, you

889
00:48:35.840 --> 00:48:38.800
<v Speaker 2>kind of want to reuse and not repeat every single

890
00:48:38.880 --> 00:48:42.559
<v Speaker 2>time and have one project with slightly different test configuration

891
00:48:43.440 --> 00:48:45.960
<v Speaker 2>from the other, because you end up with this bug

892
00:48:46.039 --> 00:48:50.599
<v Speaker 2>chasing where the result and the causation usually is like ah,

893
00:48:50.880 --> 00:48:53.400
<v Speaker 2>it was fixed, but not in the other package, but

894
00:48:53.480 --> 00:48:55.280
<v Speaker 2>in the other one. Right, So you want to have

895
00:48:55.400 --> 00:48:59.079
<v Speaker 2>something centralized as a base sensible configuration, and the repository

896
00:48:59.159 --> 00:49:02.760
<v Speaker 2>comes with sensible configuration for just based, sensible conforation for yes,

897
00:49:02.840 --> 00:49:05.480
<v Speaker 2>lim and different kind of tools that are not very

898
00:49:05.639 --> 00:49:10.880
<v Speaker 2>known but kind of useful, like finding unused dependencies, finding

899
00:49:11.000 --> 00:49:13.559
<v Speaker 2>dependencies that are not in stout but you kind of

900
00:49:13.719 --> 00:49:17.679
<v Speaker 2>use them. All these kind of code checks. They have

901
00:49:17.800 --> 00:49:20.559
<v Speaker 2>their own package. They're all no jazz and all based

902
00:49:20.599 --> 00:49:25.960
<v Speaker 2>configuration that your own package can just reference. Right. And

903
00:49:26.079 --> 00:49:28.800
<v Speaker 2>of course, if you have your view application, let's we

904
00:49:28.920 --> 00:49:31.960
<v Speaker 2>use the example and you want to extend you want

905
00:49:31.960 --> 00:49:34.079
<v Speaker 2>to change some isline plug in, Sure you can do

906
00:49:34.159 --> 00:49:36.920
<v Speaker 2>that because it only it only provides you with a

907
00:49:37.000 --> 00:49:40.920
<v Speaker 2>base config. It just extends the base config and you

908
00:49:41.119 --> 00:49:43.920
<v Speaker 2>just apply it with more configuration. You overwrite something, you

909
00:49:44.280 --> 00:49:47.679
<v Speaker 2>disable a plugin enable a new one. This is just

910
00:49:47.800 --> 00:49:51.400
<v Speaker 2>a base for you to play with and already isolated. Yes, Limp,

911
00:49:52.760 --> 00:49:55.920
<v Speaker 2>and I want to just mention one more thing. What

912
00:49:56.159 --> 00:49:59.480
<v Speaker 2>is the coolest part for me personally? After this isolation?

913
00:49:59.519 --> 00:50:02.800
<v Speaker 2>We talked about artists. You have your clone, you have

914
00:50:02.920 --> 00:50:08.000
<v Speaker 2>your copy. Right in several months, you say, wait, a

915
00:50:08.119 --> 00:50:10.639
<v Speaker 2>new version of ISLNT. I'm not sure if you dealt

916
00:50:10.679 --> 00:50:14.119
<v Speaker 2>with upgrading Yearlint eight to yearly nine. But it wasn't

917
00:50:14.159 --> 00:50:17.280
<v Speaker 2>a pleasant upgrade. I can tell you that it was

918
00:50:17.360 --> 00:50:17.960
<v Speaker 2>not pleasant.

919
00:50:18.599 --> 00:50:21.760
<v Speaker 1>Speaking personal experience, I mean, yeah, I.

920
00:50:21.800 --> 00:50:24.880
<v Speaker 2>Mean Islant is amazing. I love Islint. I'm super thankful

921
00:50:24.960 --> 00:50:28.440
<v Speaker 2>to I think, Josh. I mean I'm hoping. I'm hoping.

922
00:50:28.519 --> 00:50:31.599
<v Speaker 2>I'm not getting this wrong. I love that and we

923
00:50:31.760 --> 00:50:34.920
<v Speaker 2>use it extensively, but that grade was hard. So imagine

924
00:50:34.960 --> 00:50:40.800
<v Speaker 2>if you have your clone and the base breakproof repository,

925
00:50:40.880 --> 00:50:43.400
<v Speaker 2>keep on changing, right, and at some point the base

926
00:50:43.800 --> 00:50:48.800
<v Speaker 2>repository upgraded. Ye is lint in itself and you want

927
00:50:48.840 --> 00:50:52.320
<v Speaker 2>also upgrade. What you can do instead of you upgrading

928
00:50:52.360 --> 00:50:55.239
<v Speaker 2>it yourself in your clone is just pull the changes

929
00:50:55.599 --> 00:50:59.760
<v Speaker 2>from the base without fearing that it will break anything.

930
00:51:00.519 --> 00:51:04.079
<v Speaker 2>Because it's isolated, it doesn't affect your package. It only

931
00:51:04.199 --> 00:51:07.760
<v Speaker 2>upgrades is link. It only upgrades no JS maybe for

932
00:51:07.880 --> 00:51:11.519
<v Speaker 2>the is link, but it's very isolated. So now one

933
00:51:11.599 --> 00:51:16.679
<v Speaker 2>of a sudden, suddenly just doing git pull from breakproof

934
00:51:16.800 --> 00:51:21.599
<v Speaker 2>or whatever. Right, your get clone second origin, let's pull it.

935
00:51:22.159 --> 00:51:25.159
<v Speaker 2>You now suddenly have upgraded islink and that's it. You

936
00:51:25.239 --> 00:51:30.400
<v Speaker 2>continue there without a major like, oh, let's figure out

937
00:51:30.440 --> 00:51:33.719
<v Speaker 2>configuration now, et cetera, et cetera, et cetera. So you

938
00:51:33.800 --> 00:51:36.599
<v Speaker 2>suddenly have a newer version, like even major version of island.

939
00:51:36.760 --> 00:51:39.800
<v Speaker 2>We just want get poll. Okay, I'm gonna post here

940
00:51:43.360 --> 00:51:50.159
<v Speaker 2>if it makes sense. If it doesn't, I guess my

941
00:51:50.280 --> 00:51:50.679
<v Speaker 2>thought is.

942
00:51:51.119 --> 00:51:53.480
<v Speaker 1>You know what I'm trying to get my head around

943
00:51:53.639 --> 00:51:56.719
<v Speaker 1>is you know you've got this when you pulled in

944
00:51:56.840 --> 00:51:59.960
<v Speaker 1>your project. So going back to the example that we've

945
00:52:00.079 --> 00:52:04.480
<v Speaker 1>been using, you know, it's just and or having different

946
00:52:04.559 --> 00:52:11.440
<v Speaker 1>packages that ah that use different versions of node. You know, say,

947
00:52:13.440 --> 00:52:15.239
<v Speaker 1>so where does that happen? At what point? Is that

948
00:52:15.360 --> 00:52:17.679
<v Speaker 1>something you have to do manually where you split out

949
00:52:17.760 --> 00:52:20.840
<v Speaker 1>your just to a separate directory in the mono repo.

950
00:52:22.039 --> 00:52:25.039
<v Speaker 2>Yes, and this is already split in the base. However,

951
00:52:25.519 --> 00:52:27.920
<v Speaker 2>you can have other tools. You can have other tools

952
00:52:27.960 --> 00:52:32.719
<v Speaker 2>if you have a CLI twol called Steve right, or

953
00:52:32.760 --> 00:52:37.079
<v Speaker 2>you have a I know, I think if that it

954
00:52:37.159 --> 00:52:42.039
<v Speaker 2>doesn't exist, go book it trademark right here. So if

955
00:52:42.079 --> 00:52:43.559
<v Speaker 2>you if you want to, if you want to create

956
00:52:43.599 --> 00:52:46.199
<v Speaker 2>a tool like this, yes, you have to create your

957
00:52:46.239 --> 00:52:48.719
<v Speaker 2>own package. You have to define what the run time

958
00:52:48.880 --> 00:52:52.960
<v Speaker 2>to run. And basically all other packages can call stiff

959
00:52:53.639 --> 00:52:55.960
<v Speaker 2>from its own package, which will be run with the

960
00:52:56.000 --> 00:53:00.639
<v Speaker 2>specified run time. But for some tool which are kind

961
00:53:00.679 --> 00:53:04.639
<v Speaker 2>of popular, let's put it in the web world, right.

962
00:53:05.159 --> 00:53:07.519
<v Speaker 2>It doesn't have to be front end, but it's majorly

963
00:53:07.719 --> 00:53:10.360
<v Speaker 2>This repository is kind of focused on the front ed

964
00:53:10.480 --> 00:53:14.079
<v Speaker 2>side of the JavaScript rate, but it can be use alful,

965
00:53:14.119 --> 00:53:18.360
<v Speaker 2>not just so it comes with some popular packages. I

966
00:53:18.360 --> 00:53:20.920
<v Speaker 2>wouldn't say that all of them are favorable. I know,

967
00:53:21.039 --> 00:53:23.880
<v Speaker 2>for example, Cypress is kind of going out of favor

968
00:53:24.000 --> 00:53:27.639
<v Speaker 2>for years now, and some of them are because simply

969
00:53:27.760 --> 00:53:31.079
<v Speaker 2>we have legacy and as a company we need to

970
00:53:31.159 --> 00:53:34.440
<v Speaker 2>kind of pay attention. Once we started using a big

971
00:53:34.599 --> 00:53:37.960
<v Speaker 2>thing like Cypress to do our integration and to intest,

972
00:53:38.480 --> 00:53:41.199
<v Speaker 2>we kind of want to keep going to a certain point.

973
00:53:42.039 --> 00:53:44.920
<v Speaker 2>So we have a package for Cypress for Jest for years,

974
00:53:45.000 --> 00:53:48.119
<v Speaker 2>lind for even little things like DPDM that I mentioned

975
00:53:48.159 --> 00:53:52.239
<v Speaker 2>that lesser known code checks for also build tools like

976
00:53:52.400 --> 00:53:56.800
<v Speaker 2>web pack and other interesting cult checks by the way,

977
00:53:57.480 --> 00:53:59.920
<v Speaker 2>and bi tools I mentioned. I think I mentioned likes

978
00:54:00.039 --> 00:54:03.400
<v Speaker 2>con fixed as well. It's a it's another big topic,

979
00:54:03.519 --> 00:54:07.519
<v Speaker 2>but there it's coming already there. So back to your question.

980
00:54:08.280 --> 00:54:11.280
<v Speaker 2>You don't have to create separate packages for the things

981
00:54:11.280 --> 00:54:13.480
<v Speaker 2>that exist, but for any other new tool that you

982
00:54:13.559 --> 00:54:15.360
<v Speaker 2>want to introduce, you can create one.

983
00:54:18.199 --> 00:54:21.320
<v Speaker 1>Okay, yeah, I think I'm gonna have to play with

984
00:54:21.400 --> 00:54:23.079
<v Speaker 1>that at some point just to get my head around,

985
00:54:24.320 --> 00:54:26.599
<v Speaker 1>head around and how it works. I certainly get the

986
00:54:26.679 --> 00:54:31.000
<v Speaker 1>concept and it makes a lot of sense because yeah,

987
00:54:31.159 --> 00:54:35.480
<v Speaker 1>I can speak from personal experience on version upgrades and

988
00:54:35.519 --> 00:54:38.440
<v Speaker 1>version conflicts between different packages that they all depend on.

989
00:54:38.599 --> 00:54:45.800
<v Speaker 2>So and now I want to maybe, let's say, for

990
00:54:46.320 --> 00:54:51.239
<v Speaker 2>see one possible question that we might get when I

991
00:54:51.440 --> 00:54:56.760
<v Speaker 2>mentioned this, right, we mentioned these effortless upgrades. You just

992
00:54:56.880 --> 00:55:00.360
<v Speaker 2>pull in the latest changes from breakthrough freeball because it's

993
00:55:00.400 --> 00:55:03.599
<v Speaker 2>a separate trip which keeps evolving. Credit your loan is

994
00:55:04.199 --> 00:55:06.880
<v Speaker 2>from the time that you cloned it from or like

995
00:55:07.000 --> 00:55:09.519
<v Speaker 2>copying now you can then upgrade and you get all

996
00:55:09.559 --> 00:55:14.159
<v Speaker 2>the latest just yes, link typescripts or like the other tools. Now,

997
00:55:14.280 --> 00:55:17.519
<v Speaker 2>maybe a question you have is like Buttanton, the new

998
00:55:17.599 --> 00:55:20.519
<v Speaker 2>year is lint have a new algorithm and new rules

999
00:55:21.039 --> 00:55:25.320
<v Speaker 2>and new maybe strictness. Right, maybe you even change the conflict,

1000
00:55:25.559 --> 00:55:28.679
<v Speaker 2>the base conflict right the time extending in my application?

1001
00:55:30.239 --> 00:55:32.679
<v Speaker 2>What does that mean that my entire application now will

1002
00:55:32.719 --> 00:55:36.920
<v Speaker 2>like shout at me with red squiggles everywhere, right, Like,

1003
00:55:37.559 --> 00:55:40.239
<v Speaker 2>I mean you only mentioned what is upgrading is lint

1004
00:55:40.280 --> 00:55:43.159
<v Speaker 2>as its own thing, but what happens to my application

1005
00:55:43.239 --> 00:55:46.400
<v Speaker 2>and my rules? And you'll be right to ask that

1006
00:55:46.800 --> 00:55:50.559
<v Speaker 2>because if I didn't have an answer for that, this

1007
00:55:50.719 --> 00:55:53.559
<v Speaker 2>is exactly what would have. Like you upgrade ye is

1008
00:55:53.639 --> 00:55:56.320
<v Speaker 2>lint and all the conflict and suddenly in your editor

1009
00:55:56.559 --> 00:55:58.880
<v Speaker 2>everything will be read. You'll not be able to commit,

1010
00:55:59.239 --> 00:56:01.320
<v Speaker 2>your prs will just light up with like all the

1011
00:56:01.480 --> 00:56:03.880
<v Speaker 2>errors that are coming in. And this is I think

1012
00:56:03.960 --> 00:56:07.800
<v Speaker 2>where the interaction with Dan happened on Blue Sky. He

1013
00:56:08.239 --> 00:56:12.239
<v Speaker 2>was talking about having a project with JavaScript or like

1014
00:56:12.360 --> 00:56:16.000
<v Speaker 2>an older version of typescript and wanting to go to

1015
00:56:16.159 --> 00:56:20.559
<v Speaker 2>newer version or more stricter or even just introduce typescript okay,

1016
00:56:21.199 --> 00:56:23.440
<v Speaker 2>And this is kind of the same scenario, like changing

1017
00:56:23.960 --> 00:56:27.679
<v Speaker 2>the islin conflict because if something in the code checks

1018
00:56:27.719 --> 00:56:30.239
<v Speaker 2>become different and all of a sudden, all your code

1019
00:56:30.639 --> 00:56:34.480
<v Speaker 2>screams that you and says like it's red. So how

1020
00:56:34.519 --> 00:56:36.440
<v Speaker 2>do you jump over this hurdle? How do you go

1021
00:56:36.639 --> 00:56:40.480
<v Speaker 2>from previously it was working, now with a little change,

1022
00:56:41.280 --> 00:56:45.400
<v Speaker 2>it's now suddenly not working. And Don actually talked two

1023
00:56:45.480 --> 00:56:48.159
<v Speaker 2>times on this podcast from the two years that I've

1024
00:56:48.199 --> 00:56:51.719
<v Speaker 2>listened to prolifically about this topic, and you mentioned several

1025
00:56:51.800 --> 00:56:53.760
<v Speaker 2>times like, oh man, this is a nightmare, and yes,

1026
00:56:54.280 --> 00:56:57.239
<v Speaker 2>it is a nightmare because you don't have many options.

1027
00:56:57.320 --> 00:57:00.400
<v Speaker 2>You have like okay, maybe only introduced for the type

1028
00:57:00.440 --> 00:57:03.159
<v Speaker 2>script files and we don't check the JavaScript files, or

1029
00:57:03.199 --> 00:57:06.039
<v Speaker 2>we only introduce a few checks but not all the

1030
00:57:06.159 --> 00:57:08.679
<v Speaker 2>checks that we want, right because in the ideal world,

1031
00:57:08.800 --> 00:57:10.960
<v Speaker 2>we have like a list of checks that we all

1032
00:57:11.039 --> 00:57:13.320
<v Speaker 2>agree on that are good and this is how we

1033
00:57:13.360 --> 00:57:16.400
<v Speaker 2>should be and we turn them on. But in this

1034
00:57:16.440 --> 00:57:21.000
<v Speaker 2>scenario everything goes read. Okay, So what am I talking about?

1035
00:57:21.199 --> 00:57:24.039
<v Speaker 2>What is the solution? It was proposed to me. It

1036
00:57:24.159 --> 00:57:27.639
<v Speaker 2>wasn't original, as I said, even this repository, it's kind

1037
00:57:27.679 --> 00:57:31.440
<v Speaker 2>of all going around t MPM with some more stuff

1038
00:57:31.559 --> 00:57:35.199
<v Speaker 2>just around it. Right, So It was proposed to me

1039
00:57:35.239 --> 00:57:37.159
<v Speaker 2>in a previous company I work with. It was the

1040
00:57:37.280 --> 00:57:41.119
<v Speaker 2>idea of having an old project running with the strictest

1041
00:57:41.199 --> 00:57:45.159
<v Speaker 2>possible CONFIIC for isling whatever you like, all the plugs

1042
00:57:45.199 --> 00:57:50.079
<v Speaker 2>that you want, however, running a snapshot of all the

1043
00:57:50.320 --> 00:57:55.280
<v Speaker 2>errors aka remembering in my file called anton dot ts.

1044
00:57:55.880 --> 00:57:59.679
<v Speaker 2>I have five errors of this type, I have seven

1045
00:57:59.800 --> 00:58:04.559
<v Speaker 2>error of this different type. I have twenty errors of undefined.

1046
00:58:04.639 --> 00:58:08.440
<v Speaker 2>I have twenty more for console look that I don't

1047
00:58:08.480 --> 00:58:11.360
<v Speaker 2>want to have in my file, right, and remembering that

1048
00:58:11.760 --> 00:58:13.920
<v Speaker 2>for each file that you have in the repository, and

1049
00:58:14.119 --> 00:58:17.159
<v Speaker 2>just having this kind of a mini registry. Imagine it

1050
00:58:17.280 --> 00:58:21.119
<v Speaker 2>like adjacent file of like key value, found name, type

1051
00:58:21.159 --> 00:58:24.199
<v Speaker 2>of error, how many found name, type of error how many?

1052
00:58:24.800 --> 00:58:29.239
<v Speaker 2>And this is an invaluable resource in when upgrading and

1053
00:58:29.639 --> 00:58:34.079
<v Speaker 2>going stricter, going to a better roule. Why because it

1054
00:58:34.280 --> 00:58:36.639
<v Speaker 2>lets you see the problems. It lets all of your

1055
00:58:36.679 --> 00:58:40.480
<v Speaker 2>developers see aha. Edit, my editor is saying this is

1056
00:58:40.559 --> 00:58:43.119
<v Speaker 2>a problem, so I can focus on it, or I

1057
00:58:43.159 --> 00:58:46.639
<v Speaker 2>can at least understand there's a better way. While your

1058
00:58:46.880 --> 00:58:50.079
<v Speaker 2>CI checks at the point of upgrade, at the point

1059
00:58:50.119 --> 00:58:54.840
<v Speaker 2>you make it stricter, still pass Why because you run yes, Lind,

1060
00:58:55.440 --> 00:59:00.320
<v Speaker 2>but you also tell Eslin, hey ignore all of these

1061
00:59:00.480 --> 00:59:03.400
<v Speaker 2>number of errors in these files. So if you have

1062
00:59:03.639 --> 00:59:09.840
<v Speaker 2>five undefined like let's say errors in this file, then

1063
00:59:10.159 --> 00:59:13.639
<v Speaker 2>you do a change. If there are still five or

1064
00:59:13.760 --> 00:59:17.840
<v Speaker 2>less less than five, it's okay. If there's more than five,

1065
00:59:18.480 --> 00:59:21.320
<v Speaker 2>then you scream and you fail the commit and you

1066
00:59:21.400 --> 00:59:24.320
<v Speaker 2>fail the PR. So it's an approach that lets you

1067
00:59:24.440 --> 00:59:28.239
<v Speaker 2>gradually kind of increase the checks but still remember the

1068
00:59:28.320 --> 00:59:31.960
<v Speaker 2>status quore like not forcing you to change all of

1069
00:59:32.039 --> 00:59:35.280
<v Speaker 2>your code today. So I think this is where the

1070
00:59:37.280 --> 00:59:41.320
<v Speaker 2>let's say the breakproof part comes in. It allows you

1071
00:59:41.440 --> 00:59:45.119
<v Speaker 2>to keep going on. It gives you the errors, it

1072
00:59:45.239 --> 00:59:48.079
<v Speaker 2>tells you what they are, It lets you upgrade. All

1073
00:59:48.159 --> 00:59:50.760
<v Speaker 2>of the tools live in isolation, but it lets you

1074
00:59:50.880 --> 00:59:54.039
<v Speaker 2>keep going on. Of course, you can plant tech that

1075
00:59:54.199 --> 00:59:56.639
<v Speaker 2>you have to plant right when to do it, but

1076
00:59:56.760 --> 00:59:59.480
<v Speaker 2>it doesn't force you to do it now, and still

1077
01:00:00.079 --> 01:00:03.760
<v Speaker 2>lets you use newer stuff because newer stuff don't don't

1078
01:00:03.840 --> 01:00:06.800
<v Speaker 2>come only with stick the stuff. They also come with improvements,

1079
01:00:07.159 --> 01:00:10.920
<v Speaker 2>maybe performance, maybe like a different kind of built, maybe

1080
01:00:11.000 --> 01:00:13.320
<v Speaker 2>a new feature that you've waited so much in typescript

1081
01:00:13.800 --> 01:00:17.159
<v Speaker 2>four point eight. I know that's your opinion. Specifically on

1082
01:00:17.239 --> 01:00:20.119
<v Speaker 2>This is not about typescript. But let's say yes Lin

1083
01:00:20.480 --> 01:00:23.079
<v Speaker 2>or you change from Yeslin to another too. You want

1084
01:00:23.079 --> 01:00:25.760
<v Speaker 2>to remember the new set of errors. You don't want

1085
01:00:25.800 --> 01:00:29.039
<v Speaker 2>to fix them. Now, Okay, a lot of talking. I'm

1086
01:00:29.039 --> 01:00:33.280
<v Speaker 2>gonna pause again, but that's that's how we handle the flawless.

1087
01:00:33.400 --> 01:00:37.280
<v Speaker 2>Let's say the interrupted upgrade. You get the new version,

1088
01:00:37.679 --> 01:00:43.840
<v Speaker 2>you snapshot if there's any problems, and you keep going, gotcha.

1089
01:00:44.440 --> 01:00:49.840
<v Speaker 1>Okay, yeah, that makes sense again, something I probably want

1090
01:00:49.840 --> 01:00:52.199
<v Speaker 1>to play with a little more before it can ask

1091
01:00:52.280 --> 01:00:55.360
<v Speaker 1>any good questions before we wrap up. I will know

1092
01:00:55.519 --> 01:00:57.599
<v Speaker 1>one thing in here. I'm just looking at the directory

1093
01:00:57.719 --> 01:01:02.559
<v Speaker 1>structure and I noticed you have charactors for configured for GitHub,

1094
01:01:03.039 --> 01:01:07.079
<v Speaker 1>for idea, which is basically all the jet Brains tools,

1095
01:01:07.320 --> 01:01:11.960
<v Speaker 1>and then vias code as well. These are the standard

1096
01:01:12.960 --> 01:01:15.199
<v Speaker 1>What kind of settings are you keeping? There's any number

1097
01:01:15.199 --> 01:01:16.639
<v Speaker 1>of settings you can put in there, So what kind

1098
01:01:16.639 --> 01:01:17.960
<v Speaker 1>of stuff do you have in those directors?

1099
01:01:19.639 --> 01:01:21.840
<v Speaker 2>I love the questions. I mean, I told it probably

1100
01:01:21.960 --> 01:01:24.840
<v Speaker 2>many times, but this is an excellent question because many

1101
01:01:24.960 --> 01:01:28.760
<v Speaker 2>of the more ripple tools that I mentioned there, they exist, right,

1102
01:01:30.199 --> 01:01:33.599
<v Speaker 2>They help you manage it, and they give you tools

1103
01:01:33.679 --> 01:01:38.199
<v Speaker 2>to and like descriptions somewhere online documentation of how to

1104
01:01:38.320 --> 01:01:42.559
<v Speaker 2>configure your development environment, like how to configure intelligence, how

1105
01:01:42.639 --> 01:01:47.400
<v Speaker 2>to configure VIAS code to better best work with this report.

1106
01:01:47.960 --> 01:01:51.280
<v Speaker 2>But in the company, we're okay. We wanted this to

1107
01:01:51.360 --> 01:01:54.320
<v Speaker 2>be seamless, like we don't want to ask developers to

1108
01:01:54.360 --> 01:01:57.760
<v Speaker 2>readocumentation and each of them follow each steps. Maybe someone

1109
01:01:57.840 --> 01:02:00.440
<v Speaker 2>didn't read one step they contact us us, Hey, this

1110
01:02:00.599 --> 01:02:03.719
<v Speaker 2>doesn't work, right, Okay, I see you know then you

1111
01:02:03.840 --> 01:02:07.119
<v Speaker 2>know that you know the drill. So we added some

1112
01:02:07.280 --> 01:02:11.320
<v Speaker 2>based configuration that we know. And because we know this

1113
01:02:11.519 --> 01:02:14.280
<v Speaker 2>repository setup, we know how it's managed, right, we know

1114
01:02:14.360 --> 01:02:17.440
<v Speaker 2>all the tools, we know how to run the tools,

1115
01:02:18.159 --> 01:02:20.159
<v Speaker 2>and we know how to kind of configure your editor.

1116
01:02:21.079 --> 01:02:24.360
<v Speaker 2>So we went and went with a base configuration for

1117
01:02:24.440 --> 01:02:28.360
<v Speaker 2>your editor, plus a CLI that you can run to

1118
01:02:28.559 --> 01:02:31.239
<v Speaker 2>kind of onboard. You It's like if you run pmp

1119
01:02:31.559 --> 01:02:33.559
<v Speaker 2>te us a command I don't remember, Behart, but if

1120
01:02:33.599 --> 01:02:36.400
<v Speaker 2>you ru in command let's say PMPM breakproof on board

1121
01:02:36.920 --> 01:02:39.519
<v Speaker 2>and to ask you what is your editor? There we

1122
01:02:39.639 --> 01:02:42.960
<v Speaker 2>go and you'll structure. I will now set up the

1123
01:02:43.079 --> 01:02:46.320
<v Speaker 2>base settings for this repot. So it's best for the

1124
01:02:46.440 --> 01:02:50.880
<v Speaker 2>initial introduction, so to configure let's say yeslint in your VSCO,

1125
01:02:51.039 --> 01:02:53.760
<v Speaker 2>you configure eslint running for jet brain, so you don't

1126
01:02:53.800 --> 01:02:56.480
<v Speaker 2>have to forget. I've seen it so many times. You

1127
01:02:56.559 --> 01:02:59.239
<v Speaker 2>get a new project, you open it up, islin doesn't work,

1128
01:02:59.400 --> 01:03:01.400
<v Speaker 2>or a diferent version of Yeslin. By the way, it's

1129
01:03:01.440 --> 01:03:05.400
<v Speaker 2>possible to run like this is total possibility, even vs code.

1130
01:03:05.480 --> 01:03:07.440
<v Speaker 2>I'm not sure how many people know. It comes with

1131
01:03:07.559 --> 01:03:10.639
<v Speaker 2>a built in versions for these kind of tools like typescript,

1132
01:03:10.960 --> 01:03:13.920
<v Speaker 2>and by default it will run them, not your version,

1133
01:03:14.760 --> 01:03:18.000
<v Speaker 2>so you get different kind of verse in your editor

1134
01:03:18.280 --> 01:03:20.480
<v Speaker 2>that the ones that you get when you built, which

1135
01:03:20.519 --> 01:03:25.079
<v Speaker 2>is super confusing. So yes, thank you for the question.

1136
01:03:25.280 --> 01:03:28.159
<v Speaker 2>This is what these repositories are. And there's one for

1137
01:03:28.280 --> 01:03:31.599
<v Speaker 2>gifthooks basically, which is the things that will run automatically

1138
01:03:31.679 --> 01:03:35.519
<v Speaker 2>for you on pre comitt Because why because it comes

1139
01:03:35.559 --> 01:03:39.079
<v Speaker 2>in with some like structure and conventions that you can follow.

1140
01:03:40.280 --> 01:03:43.920
<v Speaker 2>Like all of it is nothing like separate packages and

1141
01:03:44.199 --> 01:03:47.400
<v Speaker 2>additional abstractions. It's just a convention for your own package.

1142
01:03:48.119 --> 01:03:51.199
<v Speaker 2>For example, as long as you have a pre commit

1143
01:03:51.320 --> 01:03:54.480
<v Speaker 2>script maybe or I think it was called linked pre commit.

1144
01:03:54.840 --> 01:03:58.119
<v Speaker 2>As long as you have this script in your packageation

1145
01:03:58.519 --> 01:04:01.760
<v Speaker 2>it will specifically run it before you commit. You don't

1146
01:04:01.800 --> 01:04:05.079
<v Speaker 2>need do any additional configuration, and it's all possible because

1147
01:04:05.119 --> 01:04:08.920
<v Speaker 2>it knows it's managed with PMPM. Okay, I'm gonna post here.

1148
01:04:08.960 --> 01:04:09.079
<v Speaker 1>I know.

1149
01:04:09.159 --> 01:04:10.119
<v Speaker 2>Were kind of wrapping up, so.

1150
01:04:10.320 --> 01:04:16.400
<v Speaker 1>Yeah, yeah, or if my case, you you just skip

1151
01:04:16.519 --> 01:04:18.559
<v Speaker 1>the pre commit hook sometimes just to get a committed

1152
01:04:24.880 --> 01:04:29.199
<v Speaker 1>We won't talk about that. Uh yeah. So we sort

1153
01:04:29.199 --> 01:04:30.800
<v Speaker 1>of hit a time limit here, so we need to

1154
01:04:30.840 --> 01:04:35.639
<v Speaker 1>start wrapping up. So before we get to picks, was

1155
01:04:35.679 --> 01:04:38.679
<v Speaker 1>there anything two questions? One, was there anything that you

1156
01:04:38.760 --> 01:04:42.639
<v Speaker 1>wanted to cover that we didn't cover about this repel?

1157
01:04:43.800 --> 01:04:46.719
<v Speaker 2>Yes, I'm not a fast talk or maybe i am,

1158
01:04:46.840 --> 01:04:50.440
<v Speaker 2>but I'm I'm not able to be super concise. Maybe

1159
01:04:50.480 --> 01:04:52.159
<v Speaker 2>the one thing that we didn't cover, like we can

1160
01:04:52.239 --> 01:04:55.280
<v Speaker 2>go into more details, I don't know later on is

1161
01:04:55.320 --> 01:04:59.199
<v Speaker 2>the fact that because the repository is so integrated, as

1162
01:04:59.239 --> 01:05:02.719
<v Speaker 2>you see right, editors packages that are already there, right,

1163
01:05:03.440 --> 01:05:06.559
<v Speaker 2>it comes in with understanding of the structure of the repository.

1164
01:05:07.719 --> 01:05:12.400
<v Speaker 2>So it comes in with already working CI, already knowing

1165
01:05:12.639 --> 01:05:15.559
<v Speaker 2>what to run on your pr, already knowing how to

1166
01:05:15.719 --> 01:05:19.199
<v Speaker 2>publish your package to MPM registry. All of the things

1167
01:05:19.320 --> 01:05:22.679
<v Speaker 2>are there and they work very well with the repository

1168
01:05:22.719 --> 01:05:27.679
<v Speaker 2>because they understand it. So it's not only a management

1169
01:05:27.719 --> 01:05:31.360
<v Speaker 2>for dependencies and project it's also for you to eliminate

1170
01:05:31.440 --> 01:05:33.519
<v Speaker 2>the step of like, oh I need to set up

1171
01:05:33.559 --> 01:05:37.159
<v Speaker 2>now jobs for end to end testing, for publishing, for deploying,

1172
01:05:37.679 --> 01:05:41.400
<v Speaker 2>for checks. All of it is there, configured with like

1173
01:05:41.760 --> 01:05:44.159
<v Speaker 2>concurrency and everything that you need. But yeah, that's my

1174
01:05:44.239 --> 01:05:47.280
<v Speaker 2>short answer. Yes, I did have something I didn't cover.

1175
01:05:48.480 --> 01:05:52.599
<v Speaker 1>So okay, all right, well thank you. This is uh

1176
01:05:54.000 --> 01:05:54.719
<v Speaker 1>my brain hurts.

1177
01:05:55.599 --> 01:05:56.840
<v Speaker 2>I'm sorry.

1178
01:05:57.519 --> 01:06:00.519
<v Speaker 1>Sorry, that's quite a right. Yeah, there's a there's a

1179
01:06:01.079 --> 01:06:03.320
<v Speaker 1>classic are if youamiliar with the fire side, there's a

1180
01:06:03.440 --> 01:06:06.400
<v Speaker 1>real famous cartoon here. I'm not in a state. Oh

1181
01:06:06.559 --> 01:06:10.519
<v Speaker 1>it's awesome. I look it up online. There's this guy.

1182
01:06:10.679 --> 01:06:14.039
<v Speaker 1>There're just you know, one panel cartoons, and there's a

1183
01:06:14.119 --> 01:06:17.960
<v Speaker 1>famous one where he shows a kid in class raising

1184
01:06:18.119 --> 01:06:20.440
<v Speaker 1>his hands. Excuse me? Can I leave class? My brain

1185
01:06:20.559 --> 01:06:24.159
<v Speaker 1>is full? So that's right. Look that up that I'll

1186
01:06:24.199 --> 01:06:25.320
<v Speaker 1>make that as a pick. I don't know where to

1187
01:06:25.360 --> 01:06:29.559
<v Speaker 1>find it online, but it's awesome, all right. And then

1188
01:06:29.920 --> 01:06:33.079
<v Speaker 1>if people want to follow you and give you money,

1189
01:06:33.119 --> 01:06:36.079
<v Speaker 1>your read more about this stuff? Where are the best

1190
01:06:36.119 --> 01:06:37.039
<v Speaker 1>places to do that.

1191
01:06:37.639 --> 01:06:41.719
<v Speaker 2>Okay, I'll start with the project it's breakproof dev. It

1192
01:06:41.800 --> 01:06:46.039
<v Speaker 2>will just redirect you to the repo Breakproof Death. Otherwise,

1193
01:06:46.079 --> 01:06:49.920
<v Speaker 2>for me personally, I use blue Sky. Not extremely active,

1194
01:06:49.960 --> 01:06:54.320
<v Speaker 2>but I'm there. I respond to messages. That's my kind

1195
01:06:54.360 --> 01:06:58.760
<v Speaker 2>of a small area of social online life, sometimes LinkedIn,

1196
01:06:59.079 --> 01:06:59.840
<v Speaker 2>sometimes linking.

1197
01:07:00.480 --> 01:07:02.719
<v Speaker 1>Well, that's it, and what are you on blue Sky?

1198
01:07:03.800 --> 01:07:10.559
<v Speaker 2>I'm Dev So it's my family name Dev. Yes drinks.

1199
01:07:10.960 --> 01:07:15.079
<v Speaker 1>Alrighty, Well, with that, we will shift the picks Pixar,

1200
01:07:15.280 --> 01:07:17.920
<v Speaker 1>the part of the program where we get to talk

1201
01:07:17.920 --> 01:07:22.360
<v Speaker 1>about anything. We want to talk about, anything from games

1202
01:07:22.360 --> 01:07:26.880
<v Speaker 1>to books, to food, to movies, to social issues, you

1203
01:07:27.000 --> 01:07:29.840
<v Speaker 1>name it. I'm going to stick in the tech realm

1204
01:07:30.119 --> 01:07:35.639
<v Speaker 1>and reference blog posts that I mentioned earlier called the

1205
01:07:35.719 --> 01:07:38.840
<v Speaker 1>many many many JavaScript run times of the last decade.

1206
01:07:38.920 --> 01:07:44.480
<v Speaker 1>It's on buttondown dot com whatever underscore Jamie, and it

1207
01:07:44.639 --> 01:07:48.360
<v Speaker 1>is amazing just all of the drun times that are

1208
01:07:48.360 --> 01:07:52.480
<v Speaker 1>out there that he talks about, whether it's TVs, UH

1209
01:07:53.159 --> 01:07:57.559
<v Speaker 1>operating systems and native apps and micro controllers and edge

1210
01:07:57.599 --> 01:08:01.119
<v Speaker 1>computing and so on. And at the end he gives

1211
01:08:01.119 --> 01:08:04.119
<v Speaker 1>a little summary. He says this was published in June

1212
01:08:04.280 --> 01:08:06.079
<v Speaker 1>of this year. I think it was June twenty seventh

1213
01:08:06.119 --> 01:08:09.119
<v Speaker 1>to twenty five. And at the end he gives a

1214
01:08:09.119 --> 01:08:11.920
<v Speaker 1>little summary. He says he started he started working on

1215
01:08:12.039 --> 01:08:16.560
<v Speaker 1>this in April of twenty twenty four and stretch the

1216
01:08:16.600 --> 01:08:18.920
<v Speaker 1>limits of button down. I guess that's the platform here

1217
01:08:19.079 --> 01:08:22.000
<v Speaker 1>edit history at over five two hundred and sixty revisions

1218
01:08:22.920 --> 01:08:26.880
<v Speaker 1>whoa before by August of that month. So yeah, even

1219
01:08:26.920 --> 01:08:29.880
<v Speaker 1>then he still doesn't think it's finished. But yeah, it's

1220
01:08:29.880 --> 01:08:33.239
<v Speaker 1>a great interesting if you're into this type of stuff.

1221
01:08:33.279 --> 01:08:37.479
<v Speaker 1>It's a great blog post. And then with that we'll

1222
01:08:37.560 --> 01:08:40.199
<v Speaker 1>switch to the dad jokes of the week, which are

1223
01:08:40.880 --> 01:08:43.119
<v Speaker 1>the high point of any of these episodes, as any

1224
01:08:43.319 --> 01:08:46.720
<v Speaker 1>fan will tell you. So we'll start out. My wife

1225
01:08:46.840 --> 01:08:48.159
<v Speaker 1>was mad at me because I woke her up at

1226
01:08:48.239 --> 01:08:51.600
<v Speaker 1>three o'clock am, but I just wanted to tell her

1227
01:08:51.680 --> 01:08:53.279
<v Speaker 1>that she forgot to take her sleeping pills.

1228
01:08:55.720 --> 01:08:55.960
<v Speaker 2>Thanks you.

1229
01:08:57.640 --> 01:09:00.560
<v Speaker 1>I think everybody knows the movie Jaws. You know about

1230
01:09:00.840 --> 01:09:05.359
<v Speaker 1>the shark? Did you know that if you watch it backwards,

1231
01:09:06.000 --> 01:09:08.479
<v Speaker 1>it's actually a heartwarming story about a shark who gives

1232
01:09:08.600 --> 01:09:15.000
<v Speaker 1>arms and legs to people who need them. And then

1233
01:09:15.079 --> 01:09:17.760
<v Speaker 1>recently I saw a story about a man who's suing

1234
01:09:19.000 --> 01:09:22.800
<v Speaker 1>company that makes a product called smart water for not

1235
01:09:23.039 --> 01:09:25.319
<v Speaker 1>making him smart. I'm not sure what he was thinking,

1236
01:09:25.520 --> 01:09:28.479
<v Speaker 1>but along those lines, I would like to formally announce

1237
01:09:28.600 --> 01:09:34.640
<v Speaker 1>my lawsuit against thin mits because they really don't make

1238
01:09:34.680 --> 01:09:38.479
<v Speaker 1>it thin. So those are my picks god jokes of

1239
01:09:38.520 --> 01:09:39.960
<v Speaker 1>the week. What do you have for a santon?

1240
01:09:40.720 --> 01:09:44.279
<v Speaker 2>I am trying to find the translation for it in English.

1241
01:09:44.520 --> 01:09:47.960
<v Speaker 2>Give me a sack, but I both like it's a

1242
01:09:48.039 --> 01:09:52.640
<v Speaker 2>kitchen thing. It's a kitchen thing, and I amazed my

1243
01:09:52.720 --> 01:09:57.640
<v Speaker 2>father with it. Give me a second, give me a second,

1244
01:09:57.720 --> 01:10:01.079
<v Speaker 2>ah a second? Oh yeah, and.

1245
01:10:01.039 --> 01:10:02.520
<v Speaker 1>I'm gonna yeah, pretty famous.

1246
01:10:03.359 --> 01:10:06.119
<v Speaker 2>What is that the time limit? Oh no, no, pom

1247
01:10:06.239 --> 01:10:12.600
<v Speaker 2>gran pomegranate, pomegranate, pomogrand Okay, I'm sorry, I mean pronunciation ship.

1248
01:10:12.720 --> 01:10:16.399
<v Speaker 2>I know, so pommegrant is kind of a famously messy

1249
01:10:17.239 --> 01:10:21.159
<v Speaker 2>to open it and clean it, and I love it. Yeah,

1250
01:10:21.199 --> 01:10:24.000
<v Speaker 2>it's true. It's the fruit. It's like a red fruit.

1251
01:10:24.119 --> 01:10:27.600
<v Speaker 2>It's prolific in let's say, Grease, which is like a

1252
01:10:27.640 --> 01:10:30.880
<v Speaker 2>neighboring country here in Bulgaria. Uh and it is also

1253
01:10:31.119 --> 01:10:33.920
<v Speaker 2>part of the south parts is there and my dad,

1254
01:10:34.000 --> 01:10:37.640
<v Speaker 2>as a person coming from there, I loves this loves this.

1255
01:10:37.880 --> 01:10:39.680
<v Speaker 2>I mean when I was growing up, it was just

1256
01:10:40.039 --> 01:10:43.920
<v Speaker 2>pomegranate and pomegran pomegranate, like any any time it's is

1257
01:10:44.000 --> 01:10:46.880
<v Speaker 2>the season, and of course it's like a special type

1258
01:10:46.920 --> 01:10:49.920
<v Speaker 2>of like opening it and getting the seeds out, et cetera.

1259
01:10:50.199 --> 01:10:52.760
<v Speaker 2>And I recently, I just I don't know, brows online

1260
01:10:52.960 --> 01:10:57.000
<v Speaker 2>is kind of a shopping, anti depressing, running away from

1261
01:10:57.039 --> 01:11:01.000
<v Speaker 2>reality moment. So I ended up at the kitchen tool

1262
01:11:01.399 --> 01:11:04.640
<v Speaker 2>that you kind of put the pomegranate on, and it

1263
01:11:04.760 --> 01:11:07.760
<v Speaker 2>comes with a little hammer, like it's super good. Comes

1264
01:11:07.800 --> 01:11:10.920
<v Speaker 2>with a little hammer, and it removes the mess from

1265
01:11:11.000 --> 01:11:13.960
<v Speaker 2>getting the seeds out, and it keeps the pieces that

1266
01:11:14.119 --> 01:11:16.800
<v Speaker 2>host the seeds out of the seeds. It's amazing. Like

1267
01:11:16.960 --> 01:11:19.560
<v Speaker 2>I know, maybe I'm not doing a good service and

1268
01:11:19.600 --> 01:11:24.000
<v Speaker 2>a job describing it. It's a pomegranate cleaning tool or whatever.

1269
01:11:24.319 --> 01:11:27.800
<v Speaker 2>And I love it. Only the fact that it amazed

1270
01:11:27.840 --> 01:11:30.760
<v Speaker 2>my dad when I showed how this works was worth

1271
01:11:31.319 --> 01:11:35.079
<v Speaker 2>so highly highly recommend that anyway. And it's called what

1272
01:11:35.920 --> 01:11:39.479
<v Speaker 2>I pomegranate too, Like there's no real name, there's no

1273
01:11:39.600 --> 01:11:41.800
<v Speaker 2>product name, to be honest, Like I think it was

1274
01:11:41.920 --> 01:11:45.720
<v Speaker 2>like yeah, like I couldn't find like a brand that

1275
01:11:45.840 --> 01:11:49.640
<v Speaker 2>sells it. It was like a random websites to be honest.

1276
01:11:50.840 --> 01:11:53.159
<v Speaker 2>All of them have like a different brand names, so

1277
01:11:53.199 --> 01:11:55.680
<v Speaker 2>I'm not sure there's like a one origin brand that

1278
01:11:55.960 --> 01:11:56.439
<v Speaker 2>created this.

1279
01:11:58.359 --> 01:12:02.640
<v Speaker 1>Yeah. Amazon's got a few pomegranate tool Yeah, yeah, I

1280
01:12:02.720 --> 01:12:05.960
<v Speaker 1>mean yes, Oh, I think I see this, Okay, Yeah?

1281
01:12:06.479 --> 01:12:07.520
<v Speaker 2>Is it like you think?

1282
01:12:07.960 --> 01:12:11.079
<v Speaker 1>What I'm seeing has like a bowl and then a piece.

1283
01:12:10.840 --> 01:12:14.119
<v Speaker 2>Of it's a little metal bowl. Yes, it's almost like

1284
01:12:14.159 --> 01:12:16.680
<v Speaker 2>a sie. If there's like a little bowl that is

1285
01:12:17.039 --> 01:12:19.760
<v Speaker 2>exactly the size of a pomegranate, it looks like this

1286
01:12:20.199 --> 01:12:23.039
<v Speaker 2>lemon squeezers. There's no squeezing kin. Yes, but you put

1287
01:12:23.439 --> 01:12:26.640
<v Speaker 2>the bommegranate on it and use the little hammer. It's

1288
01:12:26.760 --> 01:12:29.479
<v Speaker 2>just ridiculous. It's just ridiculous when you think about it,

1289
01:12:29.600 --> 01:12:32.199
<v Speaker 2>like being in the kitchen having a little wooden hammer

1290
01:12:32.520 --> 01:12:34.960
<v Speaker 2>with it and just knocking out the seats. I mean,

1291
01:12:35.199 --> 01:12:37.520
<v Speaker 2>I love all all of it and how it functions,

1292
01:12:37.600 --> 01:12:41.079
<v Speaker 2>the efficiency of it, and by kind of the my

1293
01:12:41.239 --> 01:12:44.479
<v Speaker 2>wife coming in and just looking at me hammering away

1294
01:12:44.640 --> 01:12:46.800
<v Speaker 2>at the pomegrap I love all of it.

1295
01:12:48.239 --> 01:12:51.960
<v Speaker 1>Yeah. Yeah. Pomegran Appeeler twenty twenty four. There's a few

1296
01:12:52.000 --> 01:12:54.319
<v Speaker 1>different options amazing.

1297
01:12:54.359 --> 01:12:57.119
<v Speaker 2>I know, ridicular spick that could have picked so much

1298
01:12:57.359 --> 01:12:57.840
<v Speaker 2>other stuff.

1299
01:12:58.039 --> 01:13:01.399
<v Speaker 1>Yeah, the life hack type, those are the best ones

1300
01:13:01.640 --> 01:13:05.359
<v Speaker 1>that helped solve the little problems. Cool for sure. All right,

1301
01:13:05.760 --> 01:13:08.000
<v Speaker 1>well we're going to wrap up. Thank you Anton for

1302
01:13:08.159 --> 01:13:10.159
<v Speaker 1>coming on telling us about your project. I know there

1303
01:13:10.199 --> 01:13:12.760
<v Speaker 1>are many people out there that use mono repos and

1304
01:13:13.199 --> 01:13:15.000
<v Speaker 1>as I sort of mentioned off there, we have a

1305
01:13:15.560 --> 01:13:18.000
<v Speaker 1>project that we're looking to move forward open sourcing in

1306
01:13:18.039 --> 01:13:21.439
<v Speaker 1>a mono repot type of structure. So so that will

1307
01:13:21.520 --> 01:13:23.760
<v Speaker 1>be uh definitely a tool to look at.

1308
01:13:24.439 --> 01:13:26.239
<v Speaker 2>Thank you for having me, Thank you for having me.

1309
01:13:26.279 --> 01:13:30.079
<v Speaker 1>My pleasure, pleasure, pleasure. All right, thanks everybody for listening,

1310
01:13:30.199 --> 01:13:32.439
<v Speaker 1>and we'll talk to you next time on JavaScript ever.
