WEBVTT

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

2
00:00:09.039 --> 00:00:13.199
<v Speaker 1>This week, on our panel, we have Steve Edwards.

3
00:00:12.080 --> 00:00:15.960
<v Speaker 2>Yo yo yo, coming at you from away too warm Portland.

4
00:00:17.359 --> 00:00:20.920
<v Speaker 1>I'm Charles Maxwood from Top End devs. Well, I'm too

5
00:00:20.960 --> 00:00:23.120
<v Speaker 1>far west for that big cold storm. But it's still

6
00:00:23.160 --> 00:00:23.600
<v Speaker 1>cold here.

7
00:00:24.480 --> 00:00:28.719
<v Speaker 2>It's maybe too warm. Man. Our snowpack sucks. Yeah, been

8
00:00:28.800 --> 00:00:31.600
<v Speaker 2>able to get any skiing is just awful.

9
00:00:31.839 --> 00:00:34.119
<v Speaker 1>Yeah, same here. People are worried about water. I live

10
00:00:34.119 --> 00:00:37.159
<v Speaker 1>in Utah. If you're not aware, we have a special

11
00:00:37.159 --> 00:00:41.799
<v Speaker 1>guest though this week. That is Valeri Karpov. Do you

12
00:00:41.840 --> 00:00:44.039
<v Speaker 1>want to introduce yourself. I know we've had you on before,

13
00:00:44.079 --> 00:00:45.399
<v Speaker 1>but just remind people who you are.

14
00:00:46.000 --> 00:00:48.719
<v Speaker 3>Yeah, Hi everyone. My name is Belle. I'm the maintainer

15
00:00:48.719 --> 00:00:52.320
<v Speaker 3>of Mongers. I'm popular ODM for no JS and Mongo dB,

16
00:00:53.079 --> 00:00:56.159
<v Speaker 3>and I do freelance web development. I'm based in Miami, Florida,

17
00:00:56.200 --> 00:00:59.280
<v Speaker 3>which is much colder than expected. I had to turn

18
00:00:59.320 --> 00:01:01.520
<v Speaker 3>on the heat for the first time. I'm telling Chuck,

19
00:01:02.000 --> 00:01:04.560
<v Speaker 3>first time turning the seats. I moved to Miami about

20
00:01:04.560 --> 00:01:06.439
<v Speaker 3>seven years ago. That's brutal.

21
00:01:06.599 --> 00:01:11.079
<v Speaker 1>Yeah, I feel your pain. Yeah, my son's on a

22
00:01:11.120 --> 00:01:14.400
<v Speaker 1>mission for the church. In South Carolina, and yeah, apparently

23
00:01:14.400 --> 00:01:16.680
<v Speaker 1>people don't deal well with cold there either, so.

24
00:01:17.920 --> 00:01:20.840
<v Speaker 3>No, not used to it. I mean, yeah, I have

25
00:01:21.040 --> 00:01:23.400
<v Speaker 3>never seen Miami. I haven't seen Miami break into the

26
00:01:23.439 --> 00:01:25.920
<v Speaker 3>thirties before since it's been a while.

27
00:01:26.680 --> 00:01:28.760
<v Speaker 1>Yeah, I was accused of not teaching him how to

28
00:01:28.840 --> 00:01:32.599
<v Speaker 1>drive on the ice, which I know isn't true. So anyway,

29
00:01:33.400 --> 00:01:37.920
<v Speaker 1>let's dive in. Let's talk about Mongoose. I'm assuming that

30
00:01:37.959 --> 00:01:40.400
<v Speaker 1>people have some idea of what it is, and I

31
00:01:40.560 --> 00:01:44.920
<v Speaker 1>really want to get more into you know, features, functions,

32
00:01:45.159 --> 00:01:47.760
<v Speaker 1>you know, it seems like a lot more adoption of AI.

33
00:01:47.920 --> 00:01:50.159
<v Speaker 1>Where does it? Where does mongoos get us from there?

34
00:01:50.560 --> 00:01:53.200
<v Speaker 1>But just kind of set the stage to get us going,

35
00:01:53.239 --> 00:01:56.040
<v Speaker 1>like what is mongoose And at a high level what

36
00:01:56.079 --> 00:01:56.920
<v Speaker 1>does it do for people?

37
00:01:57.879 --> 00:01:59.560
<v Speaker 3>But a high level, it's like an O R M

38
00:01:59.840 --> 00:02:03.280
<v Speaker 3>or O D M and no sql land or for

39
00:02:03.400 --> 00:02:06.120
<v Speaker 3>no jas and malgaib so it provides you like the

40
00:02:06.280 --> 00:02:10.680
<v Speaker 3>M and MBC or for working with mafugedd B. We

41
00:02:10.800 --> 00:02:15.159
<v Speaker 3>recently released Mongoose nine, big breaking release, first major release

42
00:02:15.159 --> 00:02:17.520
<v Speaker 3>that we've had in two years. Got a few a

43
00:02:17.520 --> 00:02:20.560
<v Speaker 3>few cool new features there, and then we're also working

44
00:02:20.680 --> 00:02:24.280
<v Speaker 3>on a mungo centric muggedy b gooy called Magus Studio

45
00:02:24.759 --> 00:02:27.039
<v Speaker 3>that would like to take some time to talk about.

46
00:02:28.159 --> 00:02:30.719
<v Speaker 3>And then yeah, there's something else that you want to

47
00:02:30.759 --> 00:02:34.719
<v Speaker 3>talk about. We also are we've been working on a

48
00:02:35.120 --> 00:02:38.639
<v Speaker 3>kind of a plug in with with the data Stacks team.

49
00:02:38.680 --> 00:02:41.719
<v Speaker 3>I guess now they're IBM that what's mongoose talked to

50
00:02:41.919 --> 00:02:46.400
<v Speaker 3>a patche Cassandra via Data Stacks data API. So those

51
00:02:46.439 --> 00:02:49.680
<v Speaker 3>are kind of like three topics that I think we

52
00:02:49.719 --> 00:02:52.280
<v Speaker 3>can discuss related to Magus that are a little bit

53
00:02:52.280 --> 00:02:54.400
<v Speaker 3>of a little bit newer and a little bit less

54
00:02:55.280 --> 00:02:57.360
<v Speaker 3>less of the standard mongoose stuff. If you want to

55
00:02:57.400 --> 00:03:00.400
<v Speaker 3>talk about kind of high level what mongoose isn't one out,

56
00:03:00.439 --> 00:03:02.479
<v Speaker 3>we can talk about that before we can talk about

57
00:03:02.520 --> 00:03:06.759
<v Speaker 3>one of the three new things that are going on.

58
00:03:07.960 --> 00:03:11.319
<v Speaker 1>Yeah, I think like O rms and you know, or

59
00:03:11.319 --> 00:03:13.840
<v Speaker 1>in this case ODMs, which I'm assuming D stands for

60
00:03:13.919 --> 00:03:19.439
<v Speaker 1>document instead of relation, are probably pretty well understood, and

61
00:03:19.479 --> 00:03:22.319
<v Speaker 1>I'm assuming that you provide a lot of the standard

62
00:03:22.319 --> 00:03:26.479
<v Speaker 1>features you see from other O rms or or like libraries.

63
00:03:27.000 --> 00:03:30.000
<v Speaker 1>So let's let's dive into the new features and if

64
00:03:30.000 --> 00:03:31.919
<v Speaker 1>people want to learn more they can go pick up.

65
00:03:32.120 --> 00:03:34.199
<v Speaker 1>I think we've had you on before to talk about Mongoose,

66
00:03:34.240 --> 00:03:36.080
<v Speaker 1>and so they can probably go find an older episode

67
00:03:36.159 --> 00:03:38.719
<v Speaker 1>that gets into the fundamentals of what Mongoose is.

68
00:03:39.879 --> 00:03:42.639
<v Speaker 3>Yeah. I think I've probably been on JavaScript Chad at

69
00:03:42.719 --> 00:03:46.520
<v Speaker 3>least work times in the last twelve years, give or take.

70
00:03:47.039 --> 00:03:49.080
<v Speaker 2>Yeah, we did views on View twice too. I was

71
00:03:49.120 --> 00:03:49.840
<v Speaker 2>just looking that up.

72
00:03:50.039 --> 00:03:52.439
<v Speaker 3>Yeah, yeah, I might need to do views on View

73
00:03:52.479 --> 00:03:55.520
<v Speaker 3>again because Mama's Studio also built a view so that

74
00:03:55.560 --> 00:03:57.919
<v Speaker 3>could be a fun Oh is it really? Oh cool?

75
00:03:58.120 --> 00:04:01.520
<v Speaker 2>Yeah, I'm not doing that podcast anymore, but so we

76
00:04:01.520 --> 00:04:03.479
<v Speaker 2>can talk about it here if you want to. This

77
00:04:03.560 --> 00:04:05.240
<v Speaker 2>is where we try to squeeze in a little bit

78
00:04:05.280 --> 00:04:06.479
<v Speaker 2>of view in job the script here.

79
00:04:07.360 --> 00:04:10.400
<v Speaker 3>Okay, Yeah, that's something we can talk about too. Yeah.

80
00:04:10.879 --> 00:04:13.599
<v Speaker 3>I pretty much all of my software developed in view

81
00:04:13.680 --> 00:04:18.240
<v Speaker 3>these days, unless unless I'm working for a client that

82
00:04:18.279 --> 00:04:22.360
<v Speaker 3>has a strong front end preference. I cool.

83
00:04:22.879 --> 00:04:25.040
<v Speaker 2>So what's new and exciting in mongoos will now.

84
00:04:26.199 --> 00:04:31.040
<v Speaker 3>So Mongsteine, it's less about kind of like flashy features

85
00:04:31.040 --> 00:04:36.399
<v Speaker 3>and more about producing long term friction and specifically to

86
00:04:36.759 --> 00:04:40.279
<v Speaker 3>type script. I think one of the things one of

87
00:04:40.319 --> 00:04:44.360
<v Speaker 3>the major changes that we made was before we had it,

88
00:04:44.399 --> 00:04:48.879
<v Speaker 3>so that's functions like find, which is the general way

89
00:04:48.920 --> 00:04:51.600
<v Speaker 3>that you execute a query to load some documents. In Mongoose,

90
00:04:52.160 --> 00:04:55.240
<v Speaker 3>the typescript types there were very permissive and just let

91
00:04:55.279 --> 00:04:59.319
<v Speaker 3>you pass in whatever you wanted. We for Mongus nine,

92
00:04:59.319 --> 00:05:01.680
<v Speaker 3>we made that more script and made it so that's okay,

93
00:05:01.720 --> 00:05:06.079
<v Speaker 3>we have explicitly strong types or for what parameters you

94
00:05:06.079 --> 00:05:09.600
<v Speaker 3>can pass into a query filter. The advantage there is

95
00:05:09.639 --> 00:05:16.600
<v Speaker 3>twofold and in one one that helps typeescript catch typos

96
00:05:16.680 --> 00:05:19.639
<v Speaker 3>and whatnot. And for developers that don't use type script

97
00:05:19.759 --> 00:05:24.439
<v Speaker 3>very much like me, it helps with autocomplete because before

98
00:05:25.839 --> 00:05:28.680
<v Speaker 3>the fact that it just gave you the fact that

99
00:05:28.720 --> 00:05:32.439
<v Speaker 3>the types where just any object goes into find, that

100
00:05:32.560 --> 00:05:36.319
<v Speaker 3>meant that tools like visual Studio code could figure out,

101
00:05:36.319 --> 00:05:39.680
<v Speaker 3>like what are the properties that you should autocomplete, So

102
00:05:39.759 --> 00:05:42.519
<v Speaker 3>now you actually get nice little auto complete drop downs

103
00:05:42.879 --> 00:05:47.279
<v Speaker 3>or for query filters and the other The other big

104
00:05:47.279 --> 00:05:50.079
<v Speaker 3>thing that we added was was like full a stinc

105
00:05:50.480 --> 00:05:53.319
<v Speaker 3>a sink stack traces support in the sense that we

106
00:05:53.439 --> 00:05:57.439
<v Speaker 3>used we had so longos was originally very callback heavy.

107
00:05:57.920 --> 00:06:02.720
<v Speaker 3>We introduced promises support in twenty fourteen, twenty fifteen, and

108
00:06:02.879 --> 00:06:06.920
<v Speaker 3>now in with our last release. Our previous breaking release

109
00:06:07.000 --> 00:06:10.879
<v Speaker 3>Monkeys eight we got rid of the user facing callback

110
00:06:10.920 --> 00:06:14.920
<v Speaker 3>support in all but one important case, and Alan Mongus

111
00:06:15.000 --> 00:06:18.199
<v Speaker 3>nine there's no more user facing callback support. It's all

112
00:06:18.240 --> 00:06:20.920
<v Speaker 3>a sink a weight, which means you get ACNC stack traces,

113
00:06:21.120 --> 00:06:21.680
<v Speaker 3>which is great.

114
00:06:22.240 --> 00:06:24.160
<v Speaker 2>Okay, I'm still trying to wrap my head around this.

115
00:06:24.240 --> 00:06:24.879
<v Speaker 2>So what do you mean?

116
00:06:25.079 --> 00:06:25.439
<v Speaker 1>Yeah?

117
00:06:26.480 --> 00:06:29.240
<v Speaker 2>I understand that. So I'm I'm always big into debugging

118
00:06:29.319 --> 00:06:32.279
<v Speaker 2>and being able to get you know, traces, or I'm

119
00:06:32.319 --> 00:06:36.439
<v Speaker 2>more of the breakpoint debugger type of person. Uh, whenever possible.

120
00:06:36.839 --> 00:06:43.759
<v Speaker 2>So what's an acyinc stack trace as compared to the alternative.

121
00:06:44.720 --> 00:06:47.879
<v Speaker 3>But if you've worked with stack tracings and JavaScript, you've

122
00:06:47.879 --> 00:06:51.519
<v Speaker 3>probably seen things like processed next tick and rejection or

123
00:06:51.680 --> 00:06:55.439
<v Speaker 3>list not on timeouts. Those kind of stack traces where

124
00:06:55.759 --> 00:06:58.759
<v Speaker 3>you just where the stack trace doesn't show you the

125
00:06:58.800 --> 00:06:59.920
<v Speaker 3>actual calling code.

126
00:07:01.000 --> 00:07:01.800
<v Speaker 2>That could be a problem.

127
00:07:02.399 --> 00:07:05.160
<v Speaker 3>I've gotten gotten probably a few of those, and the

128
00:07:05.639 --> 00:07:09.439
<v Speaker 3>reason for that is is the asik nature of JavaScript.

129
00:07:09.519 --> 00:07:13.319
<v Speaker 3>Right when you pass a when you pass a call

130
00:07:13.360 --> 00:07:16.000
<v Speaker 3>back into like a set time out function, for instance,

131
00:07:17.399 --> 00:07:21.240
<v Speaker 3>you're losing You're losing your call stack when set time

132
00:07:21.279 --> 00:07:24.480
<v Speaker 3>out calls the function that the callback function that you

133
00:07:24.560 --> 00:07:28.560
<v Speaker 3>passed into set time out. You'll if that function throws

134
00:07:28.560 --> 00:07:33.480
<v Speaker 3>an error, you'll see a stack trace that includes Note internals,

135
00:07:33.680 --> 00:07:38.720
<v Speaker 3>let say okay, and calling it on timeout, you won't

136
00:07:38.800 --> 00:07:42.480
<v Speaker 3>see your code that actually called the set timeout. And

137
00:07:42.519 --> 00:07:46.920
<v Speaker 3>this was especially problematic with the callback based code because

138
00:07:47.720 --> 00:07:50.680
<v Speaker 3>callback based code, you know, runs a synchronously, right, so

139
00:07:51.399 --> 00:07:55.399
<v Speaker 3>you don't see the code that actually called whatever function

140
00:07:55.560 --> 00:08:00.000
<v Speaker 3>is getting the callback, and that may debugging Note apps

141
00:08:00.399 --> 00:08:03.160
<v Speaker 3>for a very very long time basically made every stack

142
00:08:03.199 --> 00:08:04.319
<v Speaker 3>trace and industry.

143
00:08:06.160 --> 00:08:08.560
<v Speaker 2>Yeah, other words, you're getting everything but what you want,

144
00:08:08.639 --> 00:08:12.519
<v Speaker 2>right and getting and you're not.

145
00:08:12.560 --> 00:08:17.199
<v Speaker 3>Getting your own code. Oh yeah, with a six stack traces,

146
00:08:17.560 --> 00:08:20.759
<v Speaker 3>it's pretty sure. Yeah, A six stack traces is like

147
00:08:20.800 --> 00:08:23.160
<v Speaker 3>a V eight feature, so it also works in Chrome.

148
00:08:24.680 --> 00:08:27.399
<v Speaker 3>But the idea is that if you're calling a sync

149
00:08:27.480 --> 00:08:32.799
<v Speaker 3>functions all the way down, even if the actual error

150
00:08:33.039 --> 00:08:37.279
<v Speaker 3>is a synchrons, you still get the full stack trace

151
00:08:37.399 --> 00:08:40.879
<v Speaker 3>of the actink functions that you call. So let's say

152
00:08:40.919 --> 00:08:43.080
<v Speaker 3>you know, you I'm in function I'm in an AC

153
00:08:43.240 --> 00:08:46.519
<v Speaker 3>function called A. I call an AC function called B,

154
00:08:46.759 --> 00:08:51.200
<v Speaker 3>which calls an ACC function called C, which has a timeout,

155
00:08:51.240 --> 00:08:55.720
<v Speaker 3>and then throws an error after five seconds. The stack

156
00:08:55.799 --> 00:08:59.519
<v Speaker 3>trace for that error will include ABC, it won't include

157
00:08:59.559 --> 00:09:01.919
<v Speaker 3>any I won't to cleave like the known internals for

158
00:09:02.159 --> 00:09:03.360
<v Speaker 3>on timeout or whatnot.

159
00:09:04.679 --> 00:09:08.720
<v Speaker 1>Well that's really handy, Yeah, but there.

160
00:09:08.159 --> 00:09:10.480
<v Speaker 3>Is you need to You need to make sure you're

161
00:09:10.480 --> 00:09:13.960
<v Speaker 3>calling ACYNC functions all the way down. So the instant that,

162
00:09:14.080 --> 00:09:18.159
<v Speaker 3>like somewhere in your internals you start calling something that's

163
00:09:18.200 --> 00:09:22.679
<v Speaker 3>callback based or call a set time out, you're going

164
00:09:22.679 --> 00:09:24.519
<v Speaker 3>to lose the A six stack traits and then you're

165
00:09:24.559 --> 00:09:28.440
<v Speaker 3>back to where you started. So the work of there

166
00:09:28.639 --> 00:09:30.840
<v Speaker 3>for Mongoose was to get rid of all of our

167
00:09:30.879 --> 00:09:36.279
<v Speaker 3>callback based internals pain point there was like the one

168
00:09:36.320 --> 00:09:39.799
<v Speaker 3>of the primary ways that you wrote Mangoose middleware was

169
00:09:39.799 --> 00:09:45.639
<v Speaker 3>was using callbacks specifically gang like you would say Schema

170
00:09:45.679 --> 00:09:50.039
<v Speaker 3>dot pre save. You would get a next callback, kind

171
00:09:50.039 --> 00:09:53.000
<v Speaker 3>of similar to Express middleware, where you would call next

172
00:09:53.000 --> 00:09:55.159
<v Speaker 3>in order to kick off the next middleware and the chain.

173
00:09:56.320 --> 00:09:58.720
<v Speaker 3>We had to remove that in order to properly support

174
00:09:58.759 --> 00:10:00.480
<v Speaker 3>acing stack traces all way through it.

175
00:10:03.840 --> 00:10:06.799
<v Speaker 1>Gotcha. So is there anything you have to do specifically

176
00:10:06.840 --> 00:10:09.039
<v Speaker 1>to get this to work? Or you just upgrade to

177
00:10:09.080 --> 00:10:10.639
<v Speaker 1>Mangouse nine and then you're good to go.

178
00:10:11.399 --> 00:10:15.039
<v Speaker 3>Yeah, upgrade to Margus nine. Any plugins or middleware that

179
00:10:15.279 --> 00:10:20.399
<v Speaker 3>uses that use it next needs to be rewritten. Thankfully,

180
00:10:20.759 --> 00:10:25.679
<v Speaker 3>hopefully that's not too many right now. But yeah, but

181
00:10:25.960 --> 00:10:28.279
<v Speaker 3>in the age of AI, it's much easier to refactor

182
00:10:28.679 --> 00:10:31.159
<v Speaker 3>this sort of thing. Yeah, so I'm a little bit more,

183
00:10:31.480 --> 00:10:35.480
<v Speaker 3>a little bit less concerned. Actually, that was pretty much

184
00:10:35.480 --> 00:10:40.159
<v Speaker 3>like my first foray into AI code generation a long

185
00:10:40.200 --> 00:10:45.639
<v Speaker 3>time ago was was refactoring some of Mogus's callback based

186
00:10:45.679 --> 00:10:54.080
<v Speaker 3>code into put into using a Sika weight. This was probably,

187
00:10:54.120 --> 00:10:58.840
<v Speaker 3>i want to say, early twenty twenty three. This was

188
00:10:58.840 --> 00:11:02.559
<v Speaker 3>like before pers or anything where you could easily select

189
00:11:02.600 --> 00:11:05.559
<v Speaker 3>a bunch of code and pass it into pass into

190
00:11:05.919 --> 00:11:11.440
<v Speaker 3>open AI. What I did was I I wrote some

191
00:11:11.480 --> 00:11:14.759
<v Speaker 3>code to basically parse out some of Maugus's test suites

192
00:11:15.200 --> 00:11:19.080
<v Speaker 3>into individual tests and then would pass those tests one

193
00:11:19.080 --> 00:11:22.000
<v Speaker 3>by one into open ai is a book API, and

194
00:11:22.000 --> 00:11:25.039
<v Speaker 3>tell it, tell it to refactor this into into a

195
00:11:25.159 --> 00:11:28.480
<v Speaker 3>synco weight based code. And even back then it did

196
00:11:28.519 --> 00:11:30.919
<v Speaker 3>a really good job, got like probably ninety percent of

197
00:11:30.960 --> 00:11:33.799
<v Speaker 3>the test suite done, and it took me. It was

198
00:11:33.840 --> 00:11:37.279
<v Speaker 3>a like this whole the whole project of refactoring all

199
00:11:37.320 --> 00:11:40.519
<v Speaker 3>the tests, like we have thousands of tests, and I

200
00:11:40.639 --> 00:11:44.279
<v Speaker 3>was working like eight hours a day for several days

201
00:11:44.320 --> 00:11:46.200
<v Speaker 3>straight trying to read back through all this, and then

202
00:11:46.240 --> 00:11:48.759
<v Speaker 3>I just was like, I'd even tooled for the piss.

203
00:11:48.840 --> 00:11:53.200
<v Speaker 3>This is getting insane. So uh yeah, I tried open

204
00:11:53.279 --> 00:11:57.120
<v Speaker 3>AI and Opening I did a great job. That made

205
00:11:57.120 --> 00:11:59.159
<v Speaker 3>it a one day project as opposed to a multi

206
00:11:59.200 --> 00:11:59.960
<v Speaker 3>week project.

207
00:12:01.200 --> 00:12:04.360
<v Speaker 1>Yep, yeah, I'll have to I have to say that

208
00:12:04.399 --> 00:12:07.000
<v Speaker 1>I've used some of those same kinds of features for

209
00:12:07.080 --> 00:12:10.399
<v Speaker 1>a number of things, just just to increase my test

210
00:12:10.440 --> 00:12:14.240
<v Speaker 1>coverage or hey, you know I need to yeah, rework this,

211
00:12:14.519 --> 00:12:17.480
<v Speaker 1>or you know, rethink that, or even add a feature,

212
00:12:18.320 --> 00:12:22.360
<v Speaker 1>and yeah it it does a pretty decent job. Usually

213
00:12:22.399 --> 00:12:25.159
<v Speaker 1>I have to go in and refine a handful of

214
00:12:25.159 --> 00:12:27.320
<v Speaker 1>things and I have to look over the code make

215
00:12:27.360 --> 00:12:31.159
<v Speaker 1>sure I didn't do anything stupid. But it's amazing what

216
00:12:31.240 --> 00:12:33.840
<v Speaker 1>you can get done with AI these days.

217
00:12:34.519 --> 00:12:41.759
<v Speaker 3>Yeah, I am the other. A couple of weeks ago,

218
00:12:41.879 --> 00:12:44.320
<v Speaker 3>I gave a demo of some new map features we

219
00:12:44.360 --> 00:12:47.000
<v Speaker 3>built in Mongoo Studio, and one of the things that

220
00:12:47.039 --> 00:12:51.600
<v Speaker 3>I demoed was was the ability to just like, so,

221
00:12:52.000 --> 00:12:55.000
<v Speaker 3>I have a one of my clients has a region model, right,

222
00:12:55.120 --> 00:13:00.799
<v Speaker 3>It's a region is like a geopolygon forever defining just

223
00:13:00.840 --> 00:13:02.840
<v Speaker 3>like a region where they have operations. You draw a

224
00:13:02.879 --> 00:13:06.279
<v Speaker 3>polygon in a map that represents Dallas, and this kind

225
00:13:06.360 --> 00:13:10.120
<v Speaker 3>represents the boundary of what the company's operations thinks of

226
00:13:10.200 --> 00:13:14.519
<v Speaker 3>as Dallas. So creating new regions can be annoying because well,

227
00:13:14.600 --> 00:13:16.759
<v Speaker 3>you need to figure out a way to get all

228
00:13:16.799 --> 00:13:20.960
<v Speaker 3>the DFAs on points. But I demoed a way where

229
00:13:21.000 --> 00:13:24.639
<v Speaker 3>you just lai, like, hey, create a create a region

230
00:13:25.159 --> 00:13:28.879
<v Speaker 3>representing Boston. And while it didn't do a perfect job,

231
00:13:29.039 --> 00:13:31.799
<v Speaker 3>Mugus Studio's willing to go into Maungus Studio and drag

232
00:13:31.919 --> 00:13:35.879
<v Speaker 3>the other urgencies around. But like, yeah, I just like

233
00:13:36.399 --> 00:13:38.679
<v Speaker 3>basic models already know off the top of their heads,

234
00:13:38.919 --> 00:13:43.919
<v Speaker 3>like where like the approximate lads to longitude of Boston, Massachusetts,

235
00:13:44.480 --> 00:13:48.120
<v Speaker 3>or or boise iaho or any pretty much any major city.

236
00:13:49.679 --> 00:13:53.799
<v Speaker 3>So it makes things, Yeah, a lot of if you

237
00:13:53.840 --> 00:13:56.000
<v Speaker 3>do a lot of really amazing things or amazing seeming

238
00:13:56.039 --> 00:13:58.279
<v Speaker 3>things with models there just off the shelf, if you

239
00:13:58.399 --> 00:14:01.799
<v Speaker 3>let them, and they do give you a good enough

240
00:14:01.879 --> 00:14:03.240
<v Speaker 3>job to at least get you started.

241
00:14:04.639 --> 00:14:06.720
<v Speaker 1>Yeah, if you give them a function that'll let them

242
00:14:06.759 --> 00:14:08.919
<v Speaker 1>talk to the internet too. Sometimes if they don't know

243
00:14:08.960 --> 00:14:11.559
<v Speaker 1>the answer that they have enough context to go and

244
00:14:11.559 --> 00:14:15.120
<v Speaker 1>look it up somewhere, and so that that's the other

245
00:14:15.159 --> 00:14:17.720
<v Speaker 1>piece to that that I found is Okay, here's how

246
00:14:17.759 --> 00:14:22.480
<v Speaker 1>you here's how you make a call, and it's like, oh, okay,

247
00:14:22.679 --> 00:14:24.080
<v Speaker 1>so what is mango studio.

248
00:14:25.159 --> 00:14:28.759
<v Speaker 3>So MUGAs studio is a gooey for magaritib that's a

249
00:14:28.799 --> 00:14:32.559
<v Speaker 3>little bit more higher level than than a traditional database viewer.

250
00:14:33.639 --> 00:14:37.600
<v Speaker 3>It's got we're trying to make it one more schema

251
00:14:37.639 --> 00:14:42.480
<v Speaker 3>a whare in the sense that in magerty B or

252
00:14:42.799 --> 00:14:45.360
<v Speaker 3>maggityb gooies typically don't have a notion of a schema

253
00:14:45.440 --> 00:14:49.360
<v Speaker 3>right because doesn't really have schemas by default. But magis

254
00:14:49.360 --> 00:14:51.720
<v Speaker 3>who do have a schema, and that lets you fill

255
00:14:51.759 --> 00:14:55.480
<v Speaker 3>in things like autocomplete and auto suggest so like auto

256
00:14:55.919 --> 00:15:01.080
<v Speaker 3>field names when you're typing in the life or filter

257
00:15:01.159 --> 00:15:05.679
<v Speaker 3>input for why. We're also adding a bunch of AI

258
00:15:06.159 --> 00:15:12.000
<v Speaker 3>elements in the sense that you can good concrete example,

259
00:15:12.879 --> 00:15:14.279
<v Speaker 3>what do you try when you want to create a

260
00:15:14.320 --> 00:15:16.720
<v Speaker 3>new document in your database. There's like a nice button

261
00:15:16.720 --> 00:15:20.000
<v Speaker 3>you clip to insert in your document, right, and then

262
00:15:20.039 --> 00:15:22.840
<v Speaker 3>you get a code input that tells that what you

263
00:15:23.039 --> 00:15:25.919
<v Speaker 3>enter in. Okay, I'm going to enter get a creative

264
00:15:25.919 --> 00:15:30.919
<v Speaker 3>documents properties, but that can be a little annoying to

265
00:15:31.080 --> 00:15:33.440
<v Speaker 3>type out manually. So we also have an AI input

266
00:15:33.480 --> 00:15:36.320
<v Speaker 3>there where you say, okay, let's let's ask the AI

267
00:15:36.440 --> 00:15:39.879
<v Speaker 3>to generate a document right there without having to go

268
00:15:39.919 --> 00:15:44.840
<v Speaker 3>anywhere els And that's kind of how the Boise Idaho

269
00:15:45.000 --> 00:15:48.360
<v Speaker 3>region example worked, just you know, instead of instead of

270
00:15:48.440 --> 00:15:51.879
<v Speaker 3>typing out the entire all the details for the Boise

271
00:15:52.000 --> 00:15:55.399
<v Speaker 3>Idaho region, I just have a quick little AI input

272
00:15:55.759 --> 00:15:59.759
<v Speaker 3>that already has the context of what the schema definition

273
00:15:59.919 --> 00:16:04.240
<v Speaker 3>is for this particular document, as well as what the

274
00:16:04.360 --> 00:16:08.000
<v Speaker 3>user is asking, create me a region with for representing

275
00:16:08.120 --> 00:16:11.840
<v Speaker 3>plays of Idaho, and then the AI just goes in

276
00:16:11.879 --> 00:16:15.519
<v Speaker 3>and generates the generates the output, the user confirms or

277
00:16:15.559 --> 00:16:18.679
<v Speaker 3>rejects and can edit it a little bit extra selves

278
00:16:19.000 --> 00:16:23.799
<v Speaker 3>looks create. So there's that, and then we're also working

279
00:16:23.919 --> 00:16:27.879
<v Speaker 3>on things like MCP server. So if you have a

280
00:16:27.919 --> 00:16:31.600
<v Speaker 3>production deployment, well you'll have an MCP server that you

281
00:16:31.639 --> 00:16:36.039
<v Speaker 3>can connect Claud too that lets you do have a

282
00:16:36.240 --> 00:16:40.200
<v Speaker 3>controlled code sandbox access like you can let Claud have

283
00:16:40.399 --> 00:16:44.120
<v Speaker 3>say read only access to your production data or or

284
00:16:45.080 --> 00:16:49.919
<v Speaker 3>access to write certain collections but not others. For a

285
00:16:49.919 --> 00:16:51.120
<v Speaker 3>little bit more security.

286
00:16:53.240 --> 00:16:55.519
<v Speaker 1>Yeah, that makes sense, I mean, and we're seeing this

287
00:16:55.559 --> 00:16:58.000
<v Speaker 1>more and more right where people are integrating AI into

288
00:16:58.039 --> 00:17:05.319
<v Speaker 1>their setup, right, and you know, whether it's taking user input,

289
00:17:05.559 --> 00:17:09.799
<v Speaker 1>so the user essentially is chatting with the AI system

290
00:17:10.079 --> 00:17:12.880
<v Speaker 1>or at least giving it some kind of prompt or

291
00:17:12.960 --> 00:17:19.519
<v Speaker 1>sometimes I've seen folks just basically say the LLM is

292
00:17:19.559 --> 00:17:21.599
<v Speaker 1>going to do a good enough job if I ask

293
00:17:21.640 --> 00:17:23.720
<v Speaker 1>it to do this job that I don't actually have

294
00:17:23.759 --> 00:17:27.839
<v Speaker 1>to write explicit code and cover all the edge cases

295
00:17:27.960 --> 00:17:29.559
<v Speaker 1>and make sure that it does the thing that I

296
00:17:29.599 --> 00:17:32.640
<v Speaker 1>needed to do. And so both of those scenarios sound

297
00:17:32.640 --> 00:17:35.799
<v Speaker 1>really really helpful with something like Mongoose, where you can

298
00:17:36.000 --> 00:17:39.640
<v Speaker 1>essentially say all right, you know, yeah, here are the

299
00:17:39.680 --> 00:17:45.279
<v Speaker 1>credentials for getting information from my data or you know,

300
00:17:45.319 --> 00:17:49.240
<v Speaker 1>here's how you query my data, and then yeah, effectively,

301
00:17:49.319 --> 00:17:52.680
<v Speaker 1>then it has much better information to go off of

302
00:17:53.480 --> 00:17:56.720
<v Speaker 1>to solve the particular problems that my system or my

303
00:17:56.839 --> 00:17:57.559
<v Speaker 1>app is solving.

304
00:17:58.319 --> 00:18:02.640
<v Speaker 3>Yeah, exactly the longer. In addition to having your STEMA definition,

305
00:18:02.799 --> 00:18:05.839
<v Speaker 3>we also have access to things like methods and statics

306
00:18:05.839 --> 00:18:10.279
<v Speaker 3>that you define on your on your models, right, So

307
00:18:10.359 --> 00:18:14.000
<v Speaker 3>that means that well, Mungas Studio can be aware to

308
00:18:14.000 --> 00:18:16.960
<v Speaker 3>some extent of how you write your code and how

309
00:18:16.960 --> 00:18:22.160
<v Speaker 3>your application works. But it's a more application centric or

310
00:18:22.200 --> 00:18:26.640
<v Speaker 3>developer centric database SCOUI. That's meant that's meant to help

311
00:18:26.680 --> 00:18:30.720
<v Speaker 3>developers do their jobs and be less kind of DBA centric,

312
00:18:31.039 --> 00:18:33.519
<v Speaker 3>which I find a lot of whether database scoes to be.

313
00:18:35.160 --> 00:18:38.240
<v Speaker 1>So does it just send a list of available functions

314
00:18:38.279 --> 00:18:42.680
<v Speaker 1>to claude when it you know, kind of like MCP,

315
00:18:43.559 --> 00:18:45.920
<v Speaker 1>or it doesn't have to be MCP. Sometimes you send

316
00:18:45.920 --> 00:18:46.839
<v Speaker 1>a list of functions.

317
00:18:47.960 --> 00:18:52.160
<v Speaker 3>So we have so for cases like the like the

318
00:18:52.240 --> 00:18:55.480
<v Speaker 3>creat input and the chat tab places where we have

319
00:18:56.559 --> 00:19:01.640
<v Speaker 3>AI inputs in the UI, there we we call we

320
00:19:01.759 --> 00:19:04.119
<v Speaker 3>call out to either like the Gemini a p I

321
00:19:04.160 --> 00:19:07.839
<v Speaker 3>and the chat API or prop a KPI, and we

322
00:19:08.119 --> 00:19:11.359
<v Speaker 3>pull the context like we have a collect or. We

323
00:19:11.400 --> 00:19:17.400
<v Speaker 3>have internal storage that stores just descriptions of the users models,

324
00:19:17.880 --> 00:19:23.359
<v Speaker 3>including including the bodies of statics and methods, including STEMA definitions. Okay,

325
00:19:23.960 --> 00:19:27.559
<v Speaker 3>so that data gets passed over there for the m

326
00:19:27.680 --> 00:19:34.440
<v Speaker 3>CP server. What we do with the server, uh, well there,

327
00:19:34.480 --> 00:19:36.279
<v Speaker 3>I think what we passed back is more along the

328
00:19:36.279 --> 00:19:41.599
<v Speaker 3>line of like a typescript definition of what models are available.

329
00:19:43.160 --> 00:19:45.200
<v Speaker 1>Right, and then it just comes back and calls into

330
00:19:45.240 --> 00:19:46.920
<v Speaker 1>whatever it needs in order to do what it needs

331
00:19:46.960 --> 00:19:47.200
<v Speaker 1>to do.

332
00:19:48.480 --> 00:19:51.599
<v Speaker 3>Yeah, exactly what the MCP server what we're experimenting with

333
00:19:51.880 --> 00:19:54.680
<v Speaker 3>is kind of like a code sandbox effectively for the

334
00:19:55.000 --> 00:19:59.160
<v Speaker 3>for the l l M. So we're so like the

335
00:19:59.200 --> 00:20:01.240
<v Speaker 3>way that our MP server works is more long the

336
00:20:01.240 --> 00:20:04.279
<v Speaker 3>lives of here. The MCP tool is here, execute this

337
00:20:04.400 --> 00:20:08.279
<v Speaker 3>code in your sandbox, right, and the AI just kind

338
00:20:08.279 --> 00:20:10.480
<v Speaker 3>of gets the context of like this is what's available

339
00:20:10.519 --> 00:20:15.680
<v Speaker 3>on the sandbox. So that's what we're experimenting with, trying

340
00:20:15.720 --> 00:20:18.039
<v Speaker 3>to figure out how that can work. The other option

341
00:20:18.160 --> 00:20:20.400
<v Speaker 3>that we're thinking of is almost like a CLI tool.

342
00:20:21.559 --> 00:20:24.039
<v Speaker 3>That's something I've been debating on Twitter and to make

343
00:20:24.079 --> 00:20:27.119
<v Speaker 3>it back myself as to whether whether I go the

344
00:20:27.240 --> 00:20:30.319
<v Speaker 3>m CP route with the code sandbox, whether I just

345
00:20:30.359 --> 00:20:33.400
<v Speaker 3>have like a c l I or where the line

346
00:20:33.759 --> 00:20:35.160
<v Speaker 3>it's a CLI to do stuff.

347
00:20:36.519 --> 00:20:40.359
<v Speaker 1>Yep makes sense.

348
00:20:44.799 --> 00:20:46.400
<v Speaker 2>Yeah, I was just going to say, where has I've

349
00:20:46.400 --> 00:20:49.759
<v Speaker 2>been doing some searching where's the Mango U? I keep

350
00:20:49.799 --> 00:20:51.960
<v Speaker 2>finding the Mango studio what you call it? Because I

351
00:20:52.000 --> 00:20:53.200
<v Speaker 2>keep finding studio three T.

352
00:20:54.200 --> 00:21:02.359
<v Speaker 3>Many planks for on the website is mongoostudio dot app? Yeah?

353
00:21:02.559 --> 00:21:03.279
<v Speaker 3>All one word.

354
00:21:06.359 --> 00:21:08.880
<v Speaker 2>Yeah, I keep forgetting about these new TLDs we have.

355
00:21:11.039 --> 00:21:14.160
<v Speaker 1>Yeah, and this is so is this something that I

356
00:21:14.160 --> 00:21:17.200
<v Speaker 1>can post on my own? Oh I see in your

357
00:21:17.480 --> 00:21:22.480
<v Speaker 1>video example on here that it's it's got to dot versell. Yeah,

358
00:21:23.000 --> 00:21:24.599
<v Speaker 1>so it looks like you can. You can play it

359
00:21:24.640 --> 00:21:25.960
<v Speaker 1>out to wherever you need.

360
00:21:26.160 --> 00:21:30.839
<v Speaker 3>Yeah, exactly. We support Brusell Netlify and express right now.

361
00:21:33.680 --> 00:21:37.200
<v Speaker 3>So if you have a Verseell deployment, yeah, you don't

362
00:21:37.240 --> 00:21:38.680
<v Speaker 3>even need next j ask them to think of it.

363
00:21:38.720 --> 00:21:42.039
<v Speaker 3>If you have a versall mangu Studio as a sidecar

364
00:21:42.119 --> 00:21:45.920
<v Speaker 3>alongside your interesting application, or you can just run Mungu

365
00:21:46.000 --> 00:21:50.920
<v Speaker 3>studio for local usage and you still get mostly all

366
00:21:50.960 --> 00:21:53.400
<v Speaker 3>the features. I think a couple of things that are

367
00:21:53.440 --> 00:21:57.119
<v Speaker 3>missing or we don't support dashboards for local development. All

368
00:21:57.200 --> 00:22:00.279
<v Speaker 3>we do support have like the basic database you were

369
00:22:00.319 --> 00:22:04.720
<v Speaker 3>and the chat chat tab is our kind like a

370
00:22:04.799 --> 00:22:10.119
<v Speaker 3>chat GPT interface for generating for generating scripts that execute

371
00:22:10.160 --> 00:22:17.160
<v Speaker 3>in the momy studio code sandbox, and I think that one.

372
00:22:17.480 --> 00:22:22.039
<v Speaker 3>The chat tab also gives addresses like one limitation I've

373
00:22:22.039 --> 00:22:26.200
<v Speaker 3>seen with MCP which may not be as relevant after

374
00:22:26.440 --> 00:22:30.640
<v Speaker 3>last week when they announced MCP apps, but before MCP

375
00:22:30.759 --> 00:22:33.160
<v Speaker 3>apps came out like about a week ago, there was

376
00:22:33.200 --> 00:22:36.240
<v Speaker 3>no way for MCP to really generate like non trivially.

377
00:22:36.400 --> 00:22:39.279
<v Speaker 3>Why so, one of the things that I wanted from

378
00:22:39.319 --> 00:22:41.400
<v Speaker 3>the chat tab from the very beginning is the ability

379
00:22:41.440 --> 00:22:44.599
<v Speaker 3>to generate scripts or to generate charts and maps from

380
00:22:44.880 --> 00:22:48.759
<v Speaker 3>from after language. So the ability to say things like,

381
00:22:49.000 --> 00:22:51.799
<v Speaker 3>give me a chart of users created by day for

382
00:22:52.079 --> 00:22:57.599
<v Speaker 3>the last two weeks. Being able to do that is

383
00:22:57.759 --> 00:23:01.359
<v Speaker 3>what the chattab is good at. But MCP did not

384
00:23:01.480 --> 00:23:03.759
<v Speaker 3>really have any meaningful way to do that up until

385
00:23:03.839 --> 00:23:07.000
<v Speaker 3>very recent So we're figuring out how to do the

386
00:23:07.720 --> 00:23:10.000
<v Speaker 3>MSP app side.

387
00:23:10.960 --> 00:23:16.880
<v Speaker 1>Cool. Yeah, I'm just looking at this and thinking to myself,

388
00:23:17.440 --> 00:23:21.079
<v Speaker 1>I typically use a relational database, but if I were

389
00:23:21.160 --> 00:23:25.319
<v Speaker 1>using Mango TIB, I mean, having something like this just

390
00:23:28.000 --> 00:23:30.000
<v Speaker 1>it makes it easier because you get to the place

391
00:23:30.039 --> 00:23:33.160
<v Speaker 1>where being able to visualize a lot of this stuff,

392
00:23:34.519 --> 00:23:36.279
<v Speaker 1>it just it allows you to think about it in

393
00:23:36.279 --> 00:23:38.759
<v Speaker 1>a different way rather than being stuck in your CLI

394
00:23:38.960 --> 00:23:39.319
<v Speaker 1>or something.

395
00:23:40.000 --> 00:23:42.640
<v Speaker 3>Yeah. Absolutely, And you'd be surprised how many times like

396
00:23:43.400 --> 00:23:45.839
<v Speaker 3>a bug is difficult to spot when you're looking at

397
00:23:45.880 --> 00:23:48.400
<v Speaker 3>a traditional kind of like rods and tables data. Basically

398
00:23:48.519 --> 00:23:50.559
<v Speaker 3>the gids that you look at a chart, You're like, oh,

399
00:23:50.599 --> 00:23:55.200
<v Speaker 3>that's a bug I actually spotted, Like from one of

400
00:23:55.240 --> 00:23:57.119
<v Speaker 3>my clients, I spotted a bug that was costing them

401
00:23:57.240 --> 00:24:01.200
<v Speaker 3>thousands of dollars just by together a quick chart I

402
00:24:01.200 --> 00:24:03.599
<v Speaker 3>look at. I'm like, there's an extreme outlier on this chart.

403
00:24:03.640 --> 00:24:08.119
<v Speaker 3>What's going on there? And well, yeah, we've never caught that.

404
00:24:08.200 --> 00:24:10.240
<v Speaker 3>If I had to look at that one charm and

405
00:24:10.400 --> 00:24:12.200
<v Speaker 3>on that chart you just look at, it's like that's

406
00:24:12.200 --> 00:24:14.119
<v Speaker 3>squaringly obvious. Thing is wrong there.

407
00:24:16.240 --> 00:24:19.240
<v Speaker 1>So I was paying you on commission on those bugs, right,

408
00:24:19.440 --> 00:24:21.359
<v Speaker 1>six thousands of dollars a month. They have to pay

409
00:24:21.400 --> 00:24:22.039
<v Speaker 1>you ten percent.

410
00:24:22.799 --> 00:24:24.599
<v Speaker 3>Well, if I caused the bug at the first place.

411
00:24:27.759 --> 00:24:30.480
<v Speaker 2>So when I was working with Mango on Atlas, so

412
00:24:30.480 --> 00:24:34.119
<v Speaker 2>I used like a guy called Studio three T. That

413
00:24:34.240 --> 00:24:37.720
<v Speaker 2>was just what my company used. How does Mango's studio

414
00:24:37.880 --> 00:24:39.759
<v Speaker 2>different from that? Is it just that it's web based

415
00:24:39.839 --> 00:24:43.759
<v Speaker 2>versus like a separate app or what's the differences between

416
00:24:43.839 --> 00:24:44.599
<v Speaker 2>those two.

417
00:24:46.000 --> 00:24:48.519
<v Speaker 3>A couple of things. Web based is one big thing

418
00:24:50.880 --> 00:24:54.400
<v Speaker 3>for production deployments. In particular, we like to we like

419
00:24:54.480 --> 00:24:57.480
<v Speaker 3>to have Mangoo's studio as something that you log into

420
00:24:59.279 --> 00:25:03.160
<v Speaker 3>through through UH through either Gmail a lot through Get

421
00:25:03.160 --> 00:25:07.119
<v Speaker 3>Help a lot instead of passing around connection strings. So

422
00:25:07.240 --> 00:25:09.559
<v Speaker 3>one of the things that we've seen that small medium

423
00:25:09.559 --> 00:25:13.839
<v Speaker 3>businesses do is like when a new engineer joins and

424
00:25:13.880 --> 00:25:16.400
<v Speaker 3>you want to give them production database access, we just

425
00:25:16.519 --> 00:25:21.240
<v Speaker 3>send them like a shared credential or shared connection string

426
00:25:21.279 --> 00:25:24.240
<v Speaker 3>and slack and then ask them to hook up put

427
00:25:24.240 --> 00:25:27.440
<v Speaker 3>that connection strain in your studio at threep and that

428
00:25:27.759 --> 00:25:39.400
<v Speaker 3>can be No, that's a little bit insecure, yeah, Dice, Yeah, yeah.

429
00:25:39.680 --> 00:25:42.079
<v Speaker 3>What you should do is at least have a share

430
00:25:42.279 --> 00:25:46.480
<v Speaker 3>or a separate connection strength for each individual developer, so

431
00:25:46.519 --> 00:25:51.319
<v Speaker 3>you can easily onboard off board people rotate it probably

432
00:25:51.400 --> 00:25:55.200
<v Speaker 3>once every year at least, but nobody does that because

433
00:25:55.240 --> 00:25:59.680
<v Speaker 3>it's it's tedious, it's a thankless job. Just everyone finds

434
00:25:59.720 --> 00:26:01.680
<v Speaker 3>it a union and annoyance. No, but he does it.

435
00:26:02.440 --> 00:26:05.720
<v Speaker 3>With Mango's studio, we do things a little differently in

436
00:26:05.720 --> 00:26:09.160
<v Speaker 3>the sense that you deploy, deploy mongke you studio as

437
00:26:09.200 --> 00:26:11.839
<v Speaker 3>a web application, and then people log in by a

438
00:26:11.839 --> 00:26:15.559
<v Speaker 3>GitHub or Gmail. So if you onboard or off board someone,

439
00:26:16.440 --> 00:26:21.279
<v Speaker 3>you offboard someone, they lose access to their they're no

440
00:26:21.319 --> 00:26:23.880
<v Speaker 3>longer part of your GitHub organization, and they lose access

441
00:26:23.920 --> 00:26:27.200
<v Speaker 3>to the company email. Then they're automatically removed from Monkey

442
00:26:27.279 --> 00:26:32.119
<v Speaker 3>studio as well. So those are two big differences, the

443
00:26:32.160 --> 00:26:37.480
<v Speaker 3>production deployments and the well on the web based side

444
00:26:37.480 --> 00:26:44.480
<v Speaker 3>of things, Yeah, another big thing is well, uh being

445
00:26:44.519 --> 00:26:47.720
<v Speaker 3>mongt centric and knowing about your Monkey's schemas gives you

446
00:26:47.839 --> 00:26:51.799
<v Speaker 3>access to things like schema level autocomplete, where again it

447
00:26:52.119 --> 00:26:55.160
<v Speaker 3>uh monbu studio knows that your users have a first

448
00:26:55.200 --> 00:26:59.079
<v Speaker 3>name property studio three T doesn't necessarily know that it

449
00:26:59.200 --> 00:27:02.559
<v Speaker 3>can infer it from the shape of existing documents, but

450
00:27:02.640 --> 00:27:06.440
<v Speaker 3>it's it's not going to be one accurate that way.

451
00:27:08.119 --> 00:27:10.839
<v Speaker 3>Another detail is like, we're trying to make all of

452
00:27:10.839 --> 00:27:16.319
<v Speaker 3>your studio a little bit more, a little bit more

453
00:27:16.359 --> 00:27:18.799
<v Speaker 3>higher level. I'm a little bit more developer focused in

454
00:27:18.839 --> 00:27:21.240
<v Speaker 3>the sense that we want to show data less as

455
00:27:21.400 --> 00:27:25.440
<v Speaker 3>rose and columns and as plain text and more as

456
00:27:25.680 --> 00:27:28.680
<v Speaker 3>the data that you want, the data that you actually

457
00:27:28.720 --> 00:27:32.039
<v Speaker 3>want to see in a useful way. So, for example,

458
00:27:32.200 --> 00:27:35.279
<v Speaker 3>for things that look like GeoJSON, we actually have the

459
00:27:35.319 --> 00:27:39.599
<v Speaker 3>ability to show the GeoJSON points as mapps. Nice. So

460
00:27:40.200 --> 00:27:43.039
<v Speaker 3>if you go into looking a particular at a particular

461
00:27:43.119 --> 00:27:47.079
<v Speaker 3>document and it has like a geok song polygon or points,

462
00:27:47.839 --> 00:27:50.079
<v Speaker 3>you can actually click to show that on a map.

463
00:27:51.599 --> 00:27:54.480
<v Speaker 3>A couple of other visualizations that we're adding is for

464
00:27:54.799 --> 00:27:57.839
<v Speaker 3>image fields we want to actually visualize or have the

465
00:27:57.880 --> 00:28:02.480
<v Speaker 3>option to this as an image and then or for

466
00:28:02.720 --> 00:28:04.920
<v Speaker 3>vector data, that's something that would give you worked out

467
00:28:05.000 --> 00:28:09.920
<v Speaker 3>pretty cool, and so is showing a projection of the

468
00:28:10.039 --> 00:28:13.359
<v Speaker 3>of the vector data or at least making it easier

469
00:28:13.400 --> 00:28:16.920
<v Speaker 3>to visualize a bunch of vectors just in your database.

470
00:28:16.960 --> 00:28:20.519
<v Speaker 2>You are, so, I'm assuming you can also view the

471
00:28:20.599 --> 00:28:23.240
<v Speaker 2>data and it's raw format right in your.

472
00:28:23.319 --> 00:28:26.839
<v Speaker 3>Yeah, the format is the default. But if you but

473
00:28:26.880 --> 00:28:29.359
<v Speaker 3>if you want to just quickly look at something a

474
00:28:29.440 --> 00:28:34.240
<v Speaker 3>GJ song data point on a map, click a button,

475
00:28:34.480 --> 00:28:39.000
<v Speaker 3>don't even have to leave studio, which is nice. Is

476
00:28:39.000 --> 00:28:42.880
<v Speaker 3>a frequent pain point for for me. I've been working

477
00:28:42.880 --> 00:28:45.640
<v Speaker 3>with geo Data and mal aib for a long long time.

478
00:28:45.880 --> 00:28:49.039
<v Speaker 3>Just having that all faked into one database food that's

479
00:28:49.079 --> 00:28:52.079
<v Speaker 3>been huge. I no longer have to worry about what

480
00:28:52.119 --> 00:28:54.160
<v Speaker 3>I used to have was I had like a script

481
00:28:54.240 --> 00:28:58.160
<v Speaker 3>that would take in a would take in latitude longitude

482
00:28:58.160 --> 00:29:00.920
<v Speaker 3>points and just give me a Google Maps output that

483
00:29:00.960 --> 00:29:03.960
<v Speaker 3>I could copy for account Google Maps that I could

484
00:29:03.960 --> 00:29:07.440
<v Speaker 3>copy paste into my grouder to view where this to

485
00:29:07.559 --> 00:29:10.319
<v Speaker 3>be where this was, or to view where a point was.

486
00:29:10.960 --> 00:29:13.839
<v Speaker 3>And then for polygons there there was pretty much nothing

487
00:29:14.000 --> 00:29:17.400
<v Speaker 3>I guess I could generate like a Google Maps does

488
00:29:17.440 --> 00:29:20.960
<v Speaker 3>have like this static image generators, so that's what I

489
00:29:20.960 --> 00:29:24.119
<v Speaker 3>would probably use, was I would just take a polygon

490
00:29:24.119 --> 00:29:26.519
<v Speaker 3>and just generate a Google Maps image from a script.

491
00:29:27.000 --> 00:29:30.359
<v Speaker 3>But that was an elegant and inconvenience, much easier to

492
00:29:30.400 --> 00:29:33.039
<v Speaker 3>just I'm already and day. Basically I click a button

493
00:29:33.079 --> 00:29:36.559
<v Speaker 3>to view on the map again, a nice little leaflet

494
00:29:36.599 --> 00:29:38.000
<v Speaker 3>map that I can edit drag.

495
00:29:39.880 --> 00:29:41.519
<v Speaker 2>That was my next question. I was curious to see

496
00:29:41.519 --> 00:29:43.759
<v Speaker 2>what library you're using to generate your maps. If you're

497
00:29:43.799 --> 00:29:46.920
<v Speaker 2>not using Google Maps anymore.

498
00:29:47.440 --> 00:29:52.640
<v Speaker 3>It's Sleep. But for for Google Maps, I was talking

499
00:29:52.640 --> 00:29:56.200
<v Speaker 3>more about their Google Maps has like this api for

500
00:29:56.440 --> 00:30:00.640
<v Speaker 3>generating static map images, which is actually really useful.

501
00:30:01.559 --> 00:30:03.319
<v Speaker 2>Yeah, if you just want like a screenshot of a

502
00:30:03.359 --> 00:30:06.000
<v Speaker 2>map or a one time view as compared to something

503
00:30:06.000 --> 00:30:08.240
<v Speaker 2>that you can zoom and pan and that kind of stuff.

504
00:30:07.960 --> 00:30:11.079
<v Speaker 3>Right, yeah, exactly, or if you wants something that's easier

505
00:30:11.079 --> 00:30:14.759
<v Speaker 3>to share in a place like Slack that will support

506
00:30:15.640 --> 00:30:19.559
<v Speaker 3>the whole Google Maps experience. Paying the image it's very important.

507
00:30:20.400 --> 00:30:24.200
<v Speaker 1>So what's coming next for Mongoose or Mongoose Studio.

508
00:30:25.960 --> 00:30:28.880
<v Speaker 3>For Mongoose, we're probably going to have one more another

509
00:30:29.000 --> 00:30:33.640
<v Speaker 3>breaking release this year. We will see about exact timing

510
00:30:33.799 --> 00:30:37.200
<v Speaker 3>and scope, but it's going to be our Mongoose ten

511
00:30:37.279 --> 00:30:40.480
<v Speaker 3>release if I want to make sure that there's something

512
00:30:40.559 --> 00:30:43.519
<v Speaker 3>interesting in there. I just haven't settled on exactly what

513
00:30:43.599 --> 00:30:47.680
<v Speaker 3>I want, but one thing I want is more of

514
00:30:47.720 --> 00:30:51.119
<v Speaker 3>a switch towards using proxies internally for change tracking as

515
00:30:51.119 --> 00:30:54.759
<v Speaker 3>opposed to project of defined property, kind of going more

516
00:30:54.799 --> 00:30:57.359
<v Speaker 3>along the lines of how View does change tracking, whether

517
00:30:58.240 --> 00:31:02.440
<v Speaker 3>how Magos does change tracking. Now I was gonna say,

518
00:31:03.039 --> 00:31:07.359
<v Speaker 3>like views, Yeah, now, View and Mongoose have a lot

519
00:31:07.400 --> 00:31:10.720
<v Speaker 3>of similarities internally in terms of the problems that they

520
00:31:10.720 --> 00:31:14.279
<v Speaker 3>try to solve. Again, one of the uh one of

521
00:31:14.319 --> 00:31:19.599
<v Speaker 3>the core parts of Mongoose is is has changed tracking

522
00:31:19.599 --> 00:31:22.039
<v Speaker 3>in the sense that you load a document from the database,

523
00:31:22.319 --> 00:31:24.759
<v Speaker 3>you assigned some properties to the document, and then you

524
00:31:24.839 --> 00:31:28.359
<v Speaker 3>type save. Mongoose tracks the changes that you made and

525
00:31:28.640 --> 00:31:31.200
<v Speaker 3>only sends the changes that you made the database, as

526
00:31:31.240 --> 00:31:33.720
<v Speaker 3>opposed to trying to write the whole document.

527
00:31:34.880 --> 00:31:37.559
<v Speaker 2>So now where is I was going back and listening

528
00:31:37.599 --> 00:31:44.640
<v Speaker 2>to simpots from past episodes like twenty twenty twenty twenty

529
00:31:44.680 --> 00:31:48.160
<v Speaker 2>one on Views on View where we were talking about

530
00:31:48.599 --> 00:31:52.799
<v Speaker 2>Mangos mongoose. So I know Dino's you know, has been

531
00:31:52.799 --> 00:31:55.000
<v Speaker 2>around for a while a few more years since then,

532
00:31:55.720 --> 00:31:59.119
<v Speaker 2>is uh this mongoose compatible with Dino?

533
00:32:00.720 --> 00:32:04.799
<v Speaker 3>Yeah, I think we technically still have a helpful support

534
00:32:04.839 --> 00:32:07.759
<v Speaker 3>for Dino, and we do. We have been testing on

535
00:32:07.839 --> 00:32:11.599
<v Speaker 3>Dino for several years, so I think it's reasonably stable.

536
00:32:11.680 --> 00:32:14.200
<v Speaker 3>But I haven't really used Dino very much, to be

537
00:32:15.200 --> 00:32:19.200
<v Speaker 3>perfectly frank like, I am not sufficiently confident, and I

538
00:32:19.240 --> 00:32:23.680
<v Speaker 3>haven't seen enough enough interest in using mortgage with Dino

539
00:32:23.799 --> 00:32:26.599
<v Speaker 3>to than justifys saying like, hey, this is like an

540
00:32:26.599 --> 00:32:31.839
<v Speaker 3>officially supported thing. I'm seeing more usage for BUN, so

541
00:32:31.880 --> 00:32:34.720
<v Speaker 3>I'm kind of curious to tinker with how Moggy's works

542
00:32:34.759 --> 00:32:38.000
<v Speaker 3>on the bond, But I haven't had time to work

543
00:32:38.000 --> 00:32:38.599
<v Speaker 3>on that either.

544
00:32:40.680 --> 00:32:43.640
<v Speaker 2>Now it was, but I'm I've you heard about bun

545
00:32:43.839 --> 00:32:45.640
<v Speaker 2>and see a list? Is that more just a run

546
00:32:45.680 --> 00:32:47.519
<v Speaker 2>time or is that something you would write apps in

547
00:32:48.319 --> 00:32:49.160
<v Speaker 2>like you would Node?

548
00:32:51.359 --> 00:32:54.960
<v Speaker 3>From what I gather you, yes, you would write and

549
00:32:55.000 --> 00:32:57.880
<v Speaker 3>you would write applications and fun I've heard of some

550
00:32:58.599 --> 00:33:01.839
<v Speaker 3>interesting app frameworks that are specific to BUN. I think

551
00:33:01.960 --> 00:33:06.079
<v Speaker 3>there's Alicia JS something like that. I think that one

552
00:33:06.559 --> 00:33:09.799
<v Speaker 3>down there. I think that one is very BUN specific,

553
00:33:10.039 --> 00:33:13.319
<v Speaker 3>and I've heard very good reviews about it. I think

554
00:33:13.359 --> 00:33:19.200
<v Speaker 3>one thing I liked when I reviewed Alicia Elisia. I'm

555
00:33:19.440 --> 00:33:22.599
<v Speaker 3>going to sorry if I'm butchering the pronunciation. One thing

556
00:33:22.640 --> 00:33:24.880
<v Speaker 3>I really liked about that Express does not support is

557
00:33:24.880 --> 00:33:28.920
<v Speaker 3>Alisia has good support for server sent events, kind of

558
00:33:29.000 --> 00:33:31.839
<v Speaker 3>right out of the box. So if you pass it in,

559
00:33:32.680 --> 00:33:35.960
<v Speaker 3>it gives the other developer experience that I've always wanted

560
00:33:35.960 --> 00:33:38.720
<v Speaker 3>for service sent events, which is you pass in a

561
00:33:38.720 --> 00:33:44.960
<v Speaker 3>acink generator function and then whatever your acin generator function

562
00:33:45.119 --> 00:33:50.039
<v Speaker 3>yields that that gets admitted as a server event, which

563
00:33:50.079 --> 00:33:53.480
<v Speaker 3>is really cool. Love that I actually use that pattern

564
00:33:53.519 --> 00:33:56.519
<v Speaker 3>in the Malgi studio back end as well. Yeah. One

565
00:33:57.279 --> 00:34:00.000
<v Speaker 3>UI decision that we made probably a couple of months

566
00:34:00.039 --> 00:34:02.480
<v Speaker 3>ago in Mugu Studio that has paid huge dividends is,

567
00:34:03.400 --> 00:34:08.320
<v Speaker 3>like traditional database viewers, you frequently load query results in pages.

568
00:34:09.119 --> 00:34:12.440
<v Speaker 3>So you would so if you execute a query, you

569
00:34:12.519 --> 00:34:16.679
<v Speaker 3>get twenty results back you get or there's let's how

570
00:34:16.719 --> 00:34:20.039
<v Speaker 3>you execute a query and there's forty results you typically

571
00:34:20.079 --> 00:34:23.800
<v Speaker 3>get twenty results at a time as a page, but

572
00:34:23.920 --> 00:34:28.400
<v Speaker 3>the query, but when you execute the query, you don't

573
00:34:28.400 --> 00:34:30.000
<v Speaker 3>get to see the results one at a time. If

574
00:34:30.039 --> 00:34:33.880
<v Speaker 3>you wear uh, the the gooey waits until it gets

575
00:34:33.880 --> 00:34:38.400
<v Speaker 3>all twenty results and then displays the twenty. With Mogus Studio,

576
00:34:38.400 --> 00:34:41.199
<v Speaker 3>we've actually made it so that we use server sent

577
00:34:41.280 --> 00:34:43.960
<v Speaker 3>events to stream the results as they come at in

578
00:34:44.239 --> 00:34:48.000
<v Speaker 3>so even though you load twenty at a time, you

579
00:34:48.119 --> 00:34:50.440
<v Speaker 3>get kind of like, okay, the instant that this document

580
00:34:50.519 --> 00:34:52.719
<v Speaker 3>is available, we stream it to the front end, and

581
00:34:52.760 --> 00:34:54.519
<v Speaker 3>the front end gets it to you kind of see

582
00:34:54.639 --> 00:34:57.599
<v Speaker 3>like more of a smooth loading effect. And then there's

583
00:34:57.639 --> 00:35:00.400
<v Speaker 3>infinite scroll back then too, so of course you if

584
00:35:00.400 --> 00:35:02.519
<v Speaker 3>you want to scroll and view more data, well you

585
00:35:02.599 --> 00:35:05.239
<v Speaker 3>get kind of a smoother experience where you're running one

586
00:35:05.360 --> 00:35:07.760
<v Speaker 3>documents one at a time as opposed to kind of

587
00:35:07.800 --> 00:35:13.320
<v Speaker 3>like gang Chunks twenty twenty twenty. And it really is important,

588
00:35:13.400 --> 00:35:16.239
<v Speaker 3>especially in cases where you have a very slow running query,

589
00:35:16.639 --> 00:35:18.960
<v Speaker 3>like if you're filtering logs or something like that, where

590
00:35:19.000 --> 00:35:23.039
<v Speaker 3>you expects, okay, I may get like one or two

591
00:35:23.079 --> 00:35:26.039
<v Speaker 3>log results really quickly, but then it may take twenty

592
00:35:26.079 --> 00:35:28.760
<v Speaker 3>seconds to get all the log results, so it's more

593
00:35:28.920 --> 00:35:31.119
<v Speaker 3>it's important to kind of get some of the data

594
00:35:31.400 --> 00:35:34.440
<v Speaker 3>first or get the results as they come in case

595
00:35:34.480 --> 00:35:38.239
<v Speaker 3>with long running queries. Service centerventsive great for that. Ye

596
00:35:38.360 --> 00:35:40.679
<v Speaker 3>have you guys been working with with the Dino or

597
00:35:40.840 --> 00:35:42.880
<v Speaker 3>bun at all? I have it.

598
00:35:43.000 --> 00:35:47.119
<v Speaker 2>Most of my back end, I generally focus on PHPU

599
00:35:47.159 --> 00:35:51.280
<v Speaker 2>and label just because that's been you know, where I

600
00:35:51.280 --> 00:35:54.199
<v Speaker 2>started on the server side. So no, I haven't had

601
00:35:54.280 --> 00:35:58.960
<v Speaker 2>much opportunity to work with with Note or mon Ordino itself.

602
00:35:59.079 --> 00:36:01.639
<v Speaker 2>Like I said, just Mango in the context of a

603
00:36:01.760 --> 00:36:03.159
<v Speaker 2>large letter bill view application.

604
00:36:03.920 --> 00:36:05.960
<v Speaker 1>Yeah, and I mostly do Ruby on rails on the

605
00:36:06.000 --> 00:36:06.599
<v Speaker 1>back end, So.

606
00:36:07.079 --> 00:36:09.559
<v Speaker 3>Yeah, I guess I'm in the minority as someone that

607
00:36:09.679 --> 00:36:15.239
<v Speaker 3>does server side jobscript pretty much exclusively. And like all,

608
00:36:15.400 --> 00:36:17.480
<v Speaker 3>I describe myself as like a back end heavy full

609
00:36:17.519 --> 00:36:20.320
<v Speaker 3>stack de alter in SnSe that in my team, we

610
00:36:20.639 --> 00:36:23.719
<v Speaker 3>typically focus more on the back end and build pieces

611
00:36:23.800 --> 00:36:27.719
<v Speaker 3>en upfront ends. Our frontucts are not our shrunk suit,

612
00:36:28.000 --> 00:36:29.079
<v Speaker 3>but we do.

613
00:36:29.159 --> 00:36:35.360
<v Speaker 2>Sound like me. Yeah, when it comes to the JavaScript

614
00:36:35.440 --> 00:36:39.039
<v Speaker 2>side of things, I'm really good at you know, if

615
00:36:39.039 --> 00:36:41.519
<v Speaker 2>I'm handling data, you know, communicating with the back end

616
00:36:41.519 --> 00:36:44.960
<v Speaker 2>and getting data, displaying and data and that kind of stuff.

617
00:36:45.000 --> 00:36:47.239
<v Speaker 2>You know, one of the data management type of application

618
00:36:47.320 --> 00:36:49.480
<v Speaker 2>A pretty good when it comes to the UI and

619
00:36:49.519 --> 00:36:52.320
<v Speaker 2>making it really pretty and design and stuff not so much.

620
00:36:55.199 --> 00:36:58.599
<v Speaker 3>Yeah, well, these days the AI does a pretty decent

621
00:36:58.679 --> 00:37:05.039
<v Speaker 3>job of that. Oh ish. One thing I've seen is that,

622
00:37:05.119 --> 00:37:07.280
<v Speaker 3>like you know, the AI tools are still not quite

623
00:37:07.360 --> 00:37:11.440
<v Speaker 3>as good as people as like spurts in that space. Right,

624
00:37:11.679 --> 00:37:14.679
<v Speaker 3>So you know, if I if I build something, just

625
00:37:14.840 --> 00:37:17.119
<v Speaker 3>if I just have clawed one try to one shot something,

626
00:37:17.159 --> 00:37:19.599
<v Speaker 3>it's not going to be as good as the tailwe

627
00:37:19.639 --> 00:37:23.960
<v Speaker 3>guy built some spoke lay up for me, but it'll

628
00:37:24.000 --> 00:37:27.000
<v Speaker 3>be it'll be probably like seventy percent is good and

629
00:37:27.800 --> 00:37:29.800
<v Speaker 3>maybe that's good enough. Yeah, exactly.

630
00:37:29.840 --> 00:37:32.039
<v Speaker 2>I've been trying to play around and find some different

631
00:37:32.039 --> 00:37:34.960
<v Speaker 2>tools that would be good at at creating like a

632
00:37:35.119 --> 00:37:37.119
<v Speaker 2>you know, some sort of UI template you know, that

633
00:37:37.159 --> 00:37:39.199
<v Speaker 2>I could implement on the front end at least looks

634
00:37:39.320 --> 00:37:42.400
<v Speaker 2>decent and better than what I would come with on

635
00:37:42.440 --> 00:37:42.800
<v Speaker 2>my own.

636
00:37:43.400 --> 00:37:45.840
<v Speaker 1>Cool. Well, is there anything else that we should dive

637
00:37:45.880 --> 00:37:46.400
<v Speaker 1>into here?

638
00:37:46.679 --> 00:37:48.360
<v Speaker 3>Well, there was one topic that we want to talk

639
00:37:48.400 --> 00:37:52.360
<v Speaker 3>about I mentioned earlier, the data API at Cassandra Integration.

640
00:37:53.079 --> 00:37:57.559
<v Speaker 3>Oh yeah, that's something that's interesting. Oh, so yeah, we're

641
00:37:58.079 --> 00:38:02.280
<v Speaker 3>for probably the last year two we've been we've been

642
00:38:02.320 --> 00:38:05.639
<v Speaker 3>working with what Data Stacks, which recently got acquired by

643
00:38:05.639 --> 00:38:08.480
<v Speaker 3>IBM to build a plug in that. Let's mongoose talk

644
00:38:08.639 --> 00:38:11.039
<v Speaker 3>to the stack of Data API, which is kind of

645
00:38:11.039 --> 00:38:13.639
<v Speaker 3>like an HDT layer on top of the Patrick Cassandra.

646
00:38:14.760 --> 00:38:16.320
<v Speaker 3>So one of the neat things you can do with

647
00:38:16.360 --> 00:38:21.280
<v Speaker 3>mongous now is you can actually or you can actually

648
00:38:21.320 --> 00:38:24.840
<v Speaker 3>like just find wright molecuse code dropping a couple of

649
00:38:24.920 --> 00:38:28.679
<v Speaker 3>lines of figuration and habit talk to Patrick Cassandra with

650
00:38:29.039 --> 00:38:33.039
<v Speaker 3>with some pasttrisks as opposed for features that are supported

651
00:38:33.079 --> 00:38:36.079
<v Speaker 3>and whatnot. And then now the neat things you can

652
00:38:36.119 --> 00:38:38.960
<v Speaker 3>do like Magus is populate, which is kind of like

653
00:38:39.039 --> 00:38:43.199
<v Speaker 3>Malgus's application level level joins gosh. I use that to

654
00:38:43.199 --> 00:38:45.480
<v Speaker 3>take data from Manga to be populates some data from

655
00:38:45.519 --> 00:38:50.199
<v Speaker 3>Cassandra or vice versa. It's pretty cool thing, I think.

656
00:38:51.000 --> 00:38:53.679
<v Speaker 2>So for the uninitiated, can you explain what Cassandra is

657
00:38:53.679 --> 00:38:55.880
<v Speaker 2>because I didn't know myself until I went and.

658
00:38:55.920 --> 00:39:02.079
<v Speaker 3>Looked Patrick Cassandra is. It's a no SQL database but

659
00:39:02.239 --> 00:39:04.440
<v Speaker 3>quite different from malgady B in the sense that like

660
00:39:04.480 --> 00:39:07.199
<v Speaker 3>it still stores data and what kind of looks like

661
00:39:07.280 --> 00:39:09.519
<v Speaker 3>Rosen columns, but it is like what's called a y

662
00:39:09.639 --> 00:39:14.039
<v Speaker 3>columns store. I think the big selling point for Cassandra

663
00:39:14.280 --> 00:39:18.880
<v Speaker 3>is it is it's good for massive right throughput, like

664
00:39:19.960 --> 00:39:23.519
<v Speaker 3>the classic. The big example of probably the biggest Cassandra

665
00:39:23.599 --> 00:39:25.480
<v Speaker 3>deployment that I could think of off the top of my

666
00:39:25.519 --> 00:39:28.639
<v Speaker 3>head is is Apple iCloud. So let's say every time

667
00:39:28.679 --> 00:39:32.639
<v Speaker 3>that you take a photo on your iPhone, metadata associated

668
00:39:32.679 --> 00:39:35.519
<v Speaker 3>with that photo, like who took it, when they took it,

669
00:39:35.800 --> 00:39:38.920
<v Speaker 3>that gets dumped into a two hundred and fifty thousand

670
00:39:39.079 --> 00:39:41.800
<v Speaker 3>last I checked, no Cassandra cluster, or at least the

671
00:39:41.880 --> 00:39:44.960
<v Speaker 3>last time I read about this. Yeah, Apple iCloud is

672
00:39:45.000 --> 00:39:49.599
<v Speaker 3>one big deployments discord messages for a long time. We're

673
00:39:49.840 --> 00:39:54.039
<v Speaker 3>we're also in a Patrick Cassandra and pretty much like name,

674
00:39:54.159 --> 00:39:56.880
<v Speaker 3>like a major tech company that's not Google, they probably

675
00:39:56.920 --> 00:40:00.360
<v Speaker 3>have a Cassandra deployment. Like Cassandra is actually originally written

676
00:40:00.360 --> 00:40:05.760
<v Speaker 3>by Facebook. The open source de debated. I think it

677
00:40:05.800 --> 00:40:09.559
<v Speaker 3>was like originally written to ah as like the back

678
00:40:09.639 --> 00:40:12.400
<v Speaker 3>end store for the timeline view, but.

679
00:40:12.440 --> 00:40:14.519
<v Speaker 2>It sounds like it's more it's not like something to

680
00:40:14.559 --> 00:40:17.000
<v Speaker 2>use for small laps. It's more of an enterprise, huge

681
00:40:18.199 --> 00:40:21.679
<v Speaker 2>implementation type application, right.

682
00:40:22.639 --> 00:40:27.159
<v Speaker 3>Yeah, exactly. Now, one of the things they're trying or

683
00:40:27.920 --> 00:40:29.400
<v Speaker 3>that they're trying to do is like make the Sandra

684
00:40:29.519 --> 00:40:32.679
<v Speaker 3>more accessible using that data API, and Mongoose is part

685
00:40:32.719 --> 00:40:35.239
<v Speaker 3>of that as well. There's a lot of content out

686
00:40:35.239 --> 00:40:38.360
<v Speaker 3>there on how to use monkeys. The munguse kind of

687
00:40:38.400 --> 00:40:41.960
<v Speaker 3>like plugs neatly into into the the sex data API,

688
00:40:42.039 --> 00:40:44.519
<v Speaker 3>which kind of exposes like a Mango like layer on

689
00:40:44.559 --> 00:40:45.360
<v Speaker 3>top of Sandra.

690
00:40:46.440 --> 00:40:48.199
<v Speaker 1>Yeah, I've done a little bit with the Cassandra and

691
00:40:48.239 --> 00:40:51.960
<v Speaker 1>it's it's kind of an interesting set up with the

692
00:40:52.039 --> 00:40:54.639
<v Speaker 1>column near focus and things like that.

693
00:40:54.679 --> 00:40:58.360
<v Speaker 2>But so it's no SQL because it's not SQL. But

694
00:40:58.400 --> 00:41:00.320
<v Speaker 2>it's different than mongo ters or.

695
00:41:00.280 --> 00:41:03.400
<v Speaker 3>How in the sense that they have, like they have

696
00:41:03.440 --> 00:41:07.679
<v Speaker 3>a language called CQL Cassandra Corry language, which is similar

697
00:41:07.719 --> 00:41:10.880
<v Speaker 3>to SQ well but heavily simplified.

698
00:41:13.440 --> 00:41:18.280
<v Speaker 1>And they strictly speaking don't have a rigid schema kind

699
00:41:18.280 --> 00:41:28.199
<v Speaker 1>of like what Mango does. But yeah, their performance characteristics

700
00:41:28.239 --> 00:41:30.639
<v Speaker 1>are different and they kind of focus in a different

701
00:41:30.719 --> 00:41:32.639
<v Speaker 1>way of thinking about your data. So depending on what

702
00:41:32.639 --> 00:41:37.360
<v Speaker 1>you're doing, you would pick Cassandra over mongo I'm not

703
00:41:37.360 --> 00:41:39.119
<v Speaker 1>sure I'm the right person to explain when you would

704
00:41:39.119 --> 00:41:39.920
<v Speaker 1>pick one over the other.

705
00:41:40.760 --> 00:41:44.079
<v Speaker 3>But yeah, I think historically I'm not sure like how

706
00:41:44.079 --> 00:41:46.400
<v Speaker 3>accurate this is right now, but historically them was like,

707
00:41:46.519 --> 00:41:50.800
<v Speaker 3>if if you have for read heavy data or data

708
00:41:50.840 --> 00:41:55.760
<v Speaker 3>where you're incrementing a counter where like it's crementing data

709
00:41:55.840 --> 00:41:59.079
<v Speaker 3>in place, you would probably use manga to be And

710
00:41:59.119 --> 00:42:01.639
<v Speaker 3>if you have something where you're just writing something as

711
00:42:01.679 --> 00:42:05.280
<v Speaker 3>fast as you can, you would use at Sandra m

712
00:42:06.199 --> 00:42:08.239
<v Speaker 3>I'm not sure how accurate that is right now, but

713
00:42:08.320 --> 00:42:10.559
<v Speaker 3>that tends to be the way that I think about things,

714
00:42:11.559 --> 00:42:14.519
<v Speaker 3>although recently I've also been using Cassandra more or data

715
00:42:14.559 --> 00:42:17.199
<v Speaker 3>api more for vector search, because one of the things

716
00:42:17.159 --> 00:42:20.000
<v Speaker 3>that I really I think Cassandra did really well recently

717
00:42:20.079 --> 00:42:22.880
<v Speaker 3>is they have they've taken vector search and made it

718
00:42:22.960 --> 00:42:27.840
<v Speaker 3>a part of the core Cassandra and now that's exposed

719
00:42:27.840 --> 00:42:31.239
<v Speaker 3>throughout through data Api as well, Whereas with muggerity b

720
00:42:31.360 --> 00:42:35.519
<v Speaker 3>it's still like h vector search is still like an

721
00:42:35.559 --> 00:42:39.119
<v Speaker 3>Atlas only thing. Like you if you're running muggity B

722
00:42:39.280 --> 00:42:44.119
<v Speaker 3>by itself locally, you don't get ex your search, which

723
00:42:44.199 --> 00:42:49.360
<v Speaker 3>is not not a complete deal breaker in the sense

724
00:42:49.480 --> 00:42:52.239
<v Speaker 3>that for the most part you're going to be running

725
00:42:52.280 --> 00:42:56.159
<v Speaker 3>production deployments and outlets like even I don't run even

726
00:42:56.199 --> 00:42:59.000
<v Speaker 3>I don't run my o mugity Be closers anymore, but

727
00:42:59.039 --> 00:43:01.079
<v Speaker 3>it does kind of. It is a bit of a

728
00:43:01.079 --> 00:43:03.280
<v Speaker 3>pain point in terms of local development.

729
00:43:03.920 --> 00:43:06.199
<v Speaker 2>So basically you can unless you're like hosting it on

730
00:43:06.280 --> 00:43:09.119
<v Speaker 2>Atlas or something like that, unless.

731
00:43:10.400 --> 00:43:14.559
<v Speaker 3>Or or running manga to be locally via the Atlas

732
00:43:14.559 --> 00:43:18.639
<v Speaker 3>cl I. However, like running it locally by the Atlas

733
00:43:18.639 --> 00:43:22.760
<v Speaker 3>cl I also comes with caveats and restrictions that you

734
00:43:22.800 --> 00:43:26.480
<v Speaker 3>don't have if you're you're running you're running one mangity

735
00:43:26.519 --> 00:43:29.760
<v Speaker 3>be locally, there's there's caveats there.

736
00:43:30.400 --> 00:43:33.360
<v Speaker 1>Cool, Well, I've got about ten minutes before I have

737
00:43:33.360 --> 00:43:35.199
<v Speaker 1>to jump off. Or are there other things that you

738
00:43:35.199 --> 00:43:37.679
<v Speaker 1>guys want to keep talking about or should we do picks?

739
00:43:37.880 --> 00:43:40.000
<v Speaker 2>But just real quick, the one question I had was

740
00:43:40.079 --> 00:43:43.599
<v Speaker 2>you admit now you mentioned at the beginning that you

741
00:43:43.760 --> 00:43:47.559
<v Speaker 2>use view whenever you have to whenever you need, you know,

742
00:43:47.719 --> 00:43:50.239
<v Speaker 2>job to script front end. So is that just in

743
00:43:50.239 --> 00:43:55.880
<v Speaker 2>in the UH, the UI or where else do you

744
00:43:55.960 --> 00:43:58.159
<v Speaker 2>use view at least with Mango.

745
00:44:00.199 --> 00:44:03.800
<v Speaker 3>For front endy wise, either either your service side rendering

746
00:44:04.039 --> 00:44:07.559
<v Speaker 3>or single page app Another thing that we use viewfore

747
00:44:07.639 --> 00:44:12.039
<v Speaker 3>is email temple, but we'll send emails we are email

748
00:44:12.079 --> 00:44:13.239
<v Speaker 3>templates are also in view.

749
00:44:13.800 --> 00:44:17.159
<v Speaker 2>Oh okay, you just have to use some single file

750
00:44:17.239 --> 00:44:20.960
<v Speaker 2>components that format your your email.

751
00:44:21.360 --> 00:44:25.639
<v Speaker 3>Not single file components, and we typically use were typically

752
00:44:25.679 --> 00:44:27.559
<v Speaker 3>used two file components in the sense that we have

753
00:44:27.639 --> 00:44:31.719
<v Speaker 3>JavaScript in HTML, so our emails look more along the

754
00:44:31.760 --> 00:44:35.079
<v Speaker 3>lines that there's like there's order confirmation dot JS and

755
00:44:35.239 --> 00:44:39.360
<v Speaker 3>order confirmation dot HTML. And that defines a component that

756
00:44:39.639 --> 00:44:45.480
<v Speaker 3>renders a that renders our order confirmation. So I can

757
00:44:45.480 --> 00:44:49.639
<v Speaker 3>we write out we define our uh, we define the

758
00:44:50.199 --> 00:44:54.639
<v Speaker 3>layout in an HTML file. Historically, we found that easier.

759
00:44:54.880 --> 00:44:57.760
<v Speaker 3>I have considered switching to single file components in recent

760
00:44:57.840 --> 00:45:00.119
<v Speaker 3>years because I think that as I thought that way,

761
00:45:00.159 --> 00:45:02.320
<v Speaker 3>I could do a better job with single files. But

762
00:45:02.400 --> 00:45:06.440
<v Speaker 3>we're still sticking the separate JS and htmail files for

763
00:45:06.559 --> 00:45:10.800
<v Speaker 3>now and then just to find to find emails in

764
00:45:10.880 --> 00:45:14.360
<v Speaker 3>each GM because we found the comput is really good

765
00:45:14.440 --> 00:45:19.320
<v Speaker 3>at just beef work things like that, like basic loops

766
00:45:19.519 --> 00:45:23.039
<v Speaker 3>computer properties. That makes email rendering much easier.

767
00:45:23.719 --> 00:45:26.840
<v Speaker 1>Mm hm cool, Well, I'm gonna I'm gonna push us

768
00:45:26.880 --> 00:45:31.320
<v Speaker 1>into picks, so, uh, Steve, do you want to start

769
00:45:31.360 --> 00:45:32.880
<v Speaker 1>us off with picks?

770
00:45:32.920 --> 00:45:38.880
<v Speaker 2>Certainly, nothing really pickwise other than the high point of

771
00:45:39.039 --> 00:45:41.000
<v Speaker 2>all of repros. That's the dad jokes of the week,

772
00:45:41.800 --> 00:45:45.639
<v Speaker 2>So I'll dive right into those real quick. So when

773
00:45:45.679 --> 00:45:48.159
<v Speaker 2>I was growing up, one of my favorite memories of

774
00:45:48.199 --> 00:45:52.119
<v Speaker 2>my childhood was I used to build sand castles, you know,

775
00:45:52.159 --> 00:45:55.079
<v Speaker 2>with my grandmother, and then my mom took the urn

776
00:45:55.119 --> 00:46:01.360
<v Speaker 2>away from me, right, I sort of like the joke

777
00:46:01.360 --> 00:46:03.159
<v Speaker 2>about where I was at washing cars with my son

778
00:46:03.199 --> 00:46:06.000
<v Speaker 2>and he's like, Dad, can we just use a sponge?

779
00:46:06.400 --> 00:46:12.480
<v Speaker 2>But and then people say, when people say you look

780
00:46:12.519 --> 00:46:15.440
<v Speaker 2>so familiar, do I know you? I find that if

781
00:46:15.480 --> 00:46:18.079
<v Speaker 2>I say were we in prison together? Really ends the

782
00:46:18.079 --> 00:46:25.639
<v Speaker 2>conversation every time. And then finally I was talking to

783
00:46:25.679 --> 00:46:27.480
<v Speaker 2>my insurance age and I said, I hit an animal

784
00:46:27.480 --> 00:46:30.880
<v Speaker 2>and my car is total on my copboard. He goes, yeah,

785
00:46:30.920 --> 00:46:35.440
<v Speaker 2>what'd you hit? And I said a fish? And that

786
00:46:35.559 --> 00:46:37.199
<v Speaker 2>joke sort of comes with the car in the water.

787
00:46:37.400 --> 00:46:40.360
<v Speaker 2>Maybe it's a little more of a visual joke, but anyway,

788
00:46:40.519 --> 00:46:41.800
<v Speaker 2>those are the dad jokes of the week.

789
00:46:41.880 --> 00:46:44.639
<v Speaker 1>All right, I'm going to jump in here with some

790
00:46:45.079 --> 00:46:49.480
<v Speaker 1>pisure really quickly. So I'm going to pick a game

791
00:46:49.519 --> 00:46:52.360
<v Speaker 1>I've been playing a lot lately with my buddies. I

792
00:46:52.400 --> 00:46:54.039
<v Speaker 1>know I've picked it before, but I'm just gonna pick

793
00:46:54.039 --> 00:46:56.760
<v Speaker 1>it again because I didn't have time to look one up.

794
00:46:57.039 --> 00:47:01.119
<v Speaker 1>It's called the Gang. Play it in like fifteen to

795
00:47:01.119 --> 00:47:08.800
<v Speaker 1>twenty minutes. It's essentially group poker, like cooperative poker. And

796
00:47:08.840 --> 00:47:11.239
<v Speaker 1>so what you do is you have chips that are

797
00:47:11.320 --> 00:47:14.400
<v Speaker 1>numbered from one to however many players are playing it

798
00:47:14.440 --> 00:47:17.719
<v Speaker 1>has up to six, and then you deal everybody out

799
00:47:17.760 --> 00:47:20.360
<v Speaker 1>their whole cards or their pocket cards, you know, the

800
00:47:20.400 --> 00:47:23.239
<v Speaker 1>two cards you start with in Texas. Hold them, and

801
00:47:23.280 --> 00:47:30.760
<v Speaker 1>then everybody grabs a chip and you try and get

802
00:47:30.960 --> 00:47:33.159
<v Speaker 1>it in order of who has the best hand down

803
00:47:33.199 --> 00:47:36.480
<v Speaker 1>to who has the worst hand, and then you flip

804
00:47:36.519 --> 00:47:39.639
<v Speaker 1>the flop and you do it again right, and then

805
00:47:41.079 --> 00:47:44.320
<v Speaker 1>you flip the turn, and then you you know, do

806
00:47:44.400 --> 00:47:46.679
<v Speaker 1>the same thing, and they flip the river, and after

807
00:47:46.719 --> 00:47:52.559
<v Speaker 1>the river on the red chips. Then whoever has the

808
00:47:52.639 --> 00:47:54.760
<v Speaker 1>number one chip flips theirs over first. They should have

809
00:47:54.760 --> 00:47:57.639
<v Speaker 1>the worst hand. Whoever has the number two should have

810
00:47:58.280 --> 00:48:00.960
<v Speaker 1>a better hand, three, four, five, and all the way

811
00:48:01.000 --> 00:48:03.119
<v Speaker 1>up to six, or if you're only playing with three people,

812
00:48:03.119 --> 00:48:04.199
<v Speaker 1>you know, all the way up to three. I was

813
00:48:04.239 --> 00:48:07.840
<v Speaker 1>playing it with my kids the other day and yeah.

814
00:48:07.880 --> 00:48:10.400
<v Speaker 1>So the only other rule is is you can talk

815
00:48:10.400 --> 00:48:12.519
<v Speaker 1>about everybody else's hand, but you can't talk about your own.

816
00:48:13.360 --> 00:48:19.000
<v Speaker 1>So at one point, for example, we had flipped the

817
00:48:19.039 --> 00:48:23.000
<v Speaker 1>turn card, and so which is the fourth card in texas?

818
00:48:23.039 --> 00:48:26.920
<v Speaker 1>Hold him? And it was a ten, and so my

819
00:48:27.039 --> 00:48:29.119
<v Speaker 1>son grabbed the number three chip because of whatever the

820
00:48:29.159 --> 00:48:32.679
<v Speaker 1>three of us playing, because he in his whole cards

821
00:48:32.679 --> 00:48:34.239
<v Speaker 1>he had a ten, and so he had a pair

822
00:48:34.280 --> 00:48:38.599
<v Speaker 1>of tens. And so I looked at him and I said,

823
00:48:38.920 --> 00:48:41.960
<v Speaker 1>if you matched, just now, you have a pair of tens.

824
00:48:42.039 --> 00:48:44.079
<v Speaker 1>And then I grabbed the three chip and put it

825
00:48:44.119 --> 00:48:45.880
<v Speaker 1>in front of me because I had a pair of

826
00:48:45.960 --> 00:48:50.280
<v Speaker 1>jacks from the flop, and so that told him. So

827
00:48:50.320 --> 00:48:53.199
<v Speaker 1>I didn't talk about my hand, but I indicated him

828
00:48:53.199 --> 00:48:54.840
<v Speaker 1>I know what you have and I have a better hand.

829
00:48:55.480 --> 00:48:58.199
<v Speaker 1>And so anyway, so that's kind of the way you

830
00:48:58.239 --> 00:49:00.639
<v Speaker 1>do it. If there are more pople you tend to

831
00:49:00.719 --> 00:49:03.920
<v Speaker 1>talk through a lot more things. With my buddies, we

832
00:49:03.960 --> 00:49:06.360
<v Speaker 1>also like to call out you know, for example, if

833
00:49:06.400 --> 00:49:08.840
<v Speaker 1>you have two clubs, then you have a flush, right

834
00:49:08.880 --> 00:49:12.480
<v Speaker 1>because there are three clubs cards in the you know,

835
00:49:12.519 --> 00:49:16.519
<v Speaker 1>in the in the shared cards. Or if you have

836
00:49:16.559 --> 00:49:19.639
<v Speaker 1>a two and then six, then you have a you

837
00:49:19.679 --> 00:49:23.119
<v Speaker 1>have a straight right, which is a run of five

838
00:49:23.559 --> 00:49:26.400
<v Speaker 1>cards in number order. And so anyway, so it's a

839
00:49:26.440 --> 00:49:29.079
<v Speaker 1>lot of fun and like I said, we you know,

840
00:49:29.119 --> 00:49:31.599
<v Speaker 1>we just you know, you can play through pretty quick.

841
00:49:31.960 --> 00:49:35.599
<v Speaker 1>You're trying to get three correct before you get three incorrect,

842
00:49:36.440 --> 00:49:38.239
<v Speaker 1>and that's how you win the game. And yeah, like

843
00:49:38.280 --> 00:49:40.840
<v Speaker 1>this it takes like twenty minutes. So I'm going to

844
00:49:40.880 --> 00:49:45.599
<v Speaker 1>pick that for the game. I've also wanted to really quickly.

845
00:49:45.639 --> 00:49:48.760
<v Speaker 1>I was texting. I've started this thing where I start

846
00:49:48.800 --> 00:49:50.800
<v Speaker 1>texting people that I haven't talked to in a while.

847
00:49:51.519 --> 00:49:55.239
<v Speaker 1>And so one person that I texted, let me find

848
00:49:55.239 --> 00:49:56.559
<v Speaker 1>the text because I told him I was going to

849
00:49:56.559 --> 00:50:00.800
<v Speaker 1>share some stuff. But I was texting with can Kent

850
00:50:02.280 --> 00:50:07.000
<v Speaker 1>Kent Dodds, and I might just have to search it here.

851
00:50:07.000 --> 00:50:08.360
<v Speaker 2>Wow, talk about name dropping.

852
00:50:10.079 --> 00:50:14.280
<v Speaker 1>Well he lives out here and so periodically, well you know,

853
00:50:15.159 --> 00:50:21.400
<v Speaker 1>hang out or whatever. But yeah, so he said that

854
00:50:21.480 --> 00:50:24.440
<v Speaker 1>he's been doing a couple of things, so I'm just

855
00:50:24.480 --> 00:50:27.320
<v Speaker 1>going to shout out his websites. He has epic ai

856
00:50:27.360 --> 00:50:31.519
<v Speaker 1>dot Pro, so he's been teaching people to do AI stuff.

857
00:50:32.559 --> 00:50:34.920
<v Speaker 1>He's also got epic web dot dev, which is kind

858
00:50:34.920 --> 00:50:41.360
<v Speaker 1>of his full stack preferred stack, and so I don't

859
00:50:41.360 --> 00:50:46.039
<v Speaker 1>know if he's still doing remix, but you know, that

860
00:50:46.159 --> 00:50:47.199
<v Speaker 1>used to be a big part of it. And then

861
00:50:47.199 --> 00:50:48.480
<v Speaker 1>he had a whole bunch of other stuff that hed

862
00:50:48.480 --> 00:50:50.880
<v Speaker 1>pull in. And then he also has epic React dot dev.

863
00:50:50.960 --> 00:50:54.760
<v Speaker 1>So if you're looking to learn stuff about React, JavaScript

864
00:50:54.960 --> 00:50:59.079
<v Speaker 1>or AI, then he's got He's got some resources out

865
00:50:59.079 --> 00:51:02.119
<v Speaker 1>there that you go check out. I find that his stuff

866
00:51:02.159 --> 00:51:06.519
<v Speaker 1>is reasonably easy to follow along with, and so I

867
00:51:06.519 --> 00:51:10.079
<v Speaker 1>don't have any problem shouting that out. So I'm doing that,

868
00:51:10.400 --> 00:51:12.400
<v Speaker 1>and yeah, I'm also just going to shout out the

869
00:51:12.440 --> 00:51:16.159
<v Speaker 1>idea of, you know, find for people to reach out

870
00:51:16.159 --> 00:51:18.519
<v Speaker 1>to every day. I mean, I do it with family members,

871
00:51:18.519 --> 00:51:21.400
<v Speaker 1>I do it with people in the tech community. It's

872
00:51:21.480 --> 00:51:23.480
<v Speaker 1>kind of fun because sometimes I haven't heard from him

873
00:51:23.480 --> 00:51:25.039
<v Speaker 1>in a couple of years, like I had. I don't

874
00:51:25.039 --> 00:51:29.159
<v Speaker 1>think I've really talked to Kent in a couple of years, right,

875
00:51:29.199 --> 00:51:30.599
<v Speaker 1>and so it was like, oh, hey, and so we're

876
00:51:30.639 --> 00:51:35.920
<v Speaker 1>catching up on kids and things like that. Anyway, So yeah,

877
00:51:35.920 --> 00:51:38.840
<v Speaker 1>that's kind of what I've been doing. And I picked

878
00:51:38.840 --> 00:51:42.280
<v Speaker 1>that up from Jordan Harbinger. I was listening to him

879
00:51:42.360 --> 00:51:44.599
<v Speaker 1>do an interview with somebody and he said that he

880
00:51:44.639 --> 00:51:46.519
<v Speaker 1>does that, and I was like, there are a lot

881
00:51:46.519 --> 00:51:48.840
<v Speaker 1>of people I want to stay connected to that I don't,

882
00:51:49.039 --> 00:51:52.400
<v Speaker 1>And so anyway, I'm going to shout that out as well.

883
00:51:52.440 --> 00:51:54.880
<v Speaker 3>What are you think I reached out to Jordan? I

884
00:51:54.880 --> 00:51:56.840
<v Speaker 3>haven't spoken him in a few years.

885
00:51:57.519 --> 00:52:01.039
<v Speaker 1>Yeah, I haven't either. Last time I talked to him,

886
00:52:01.039 --> 00:52:02.440
<v Speaker 1>I had to drop some money.

887
00:52:02.519 --> 00:52:04.519
<v Speaker 2>So we should get Can on the podcast again.

888
00:52:05.000 --> 00:52:07.760
<v Speaker 1>We should. I'll ping him and see if he wants

889
00:52:07.760 --> 00:52:13.239
<v Speaker 1>to come on. All right, Val, what are your picks?

890
00:52:14.159 --> 00:52:18.119
<v Speaker 3>Yeah, check out Magus Studio, Mangu studio dot app Alicia J.

891
00:52:18.400 --> 00:52:25.519
<v Speaker 3>S Alsos dot com worth worth checking out. Actually it's

892
00:52:25.559 --> 00:52:28.599
<v Speaker 3>in the public chat already. But is the L y

893
00:52:29.159 --> 00:52:33.679
<v Speaker 3>s I a J S dot Okay? Yeah, yeah, that's yeah.

894
00:52:33.960 --> 00:52:35.920
<v Speaker 3>I told you I was going to butcher the pronunciation,

895
00:52:36.039 --> 00:52:39.559
<v Speaker 3>so sorry in advance. I tend to like not listen

896
00:52:39.599 --> 00:52:42.840
<v Speaker 3>to video. I tend to read things so frequently I

897
00:52:43.000 --> 00:52:47.360
<v Speaker 3>read things and I just don't know how sorry about that.

898
00:52:48.480 --> 00:52:50.760
<v Speaker 3>So yeah, that that one. I haven't actually played with

899
00:52:50.800 --> 00:52:53.000
<v Speaker 3>it yet, but it's got some interesting patterns and I

900
00:52:53.039 --> 00:52:57.039
<v Speaker 3>think I'll looking into thinking about especially related to servers

901
00:52:57.280 --> 00:53:01.159
<v Speaker 3>events and then yeah, recently, I've been using to do

902
00:53:01.239 --> 00:53:03.760
<v Speaker 3>list a lot more. I've kind of gone back and

903
00:53:03.800 --> 00:53:07.719
<v Speaker 3>forth on like DIF to do list tools, and I

904
00:53:07.760 --> 00:53:11.280
<v Speaker 3>just keep coming back to this one or specifically for

905
00:53:11.440 --> 00:53:16.960
<v Speaker 3>like personal tasks. So it's it's a great replacement for

906
00:53:17.480 --> 00:53:19.960
<v Speaker 3>just for like having a to do dot t x

907
00:53:20.039 --> 00:53:22.760
<v Speaker 3>T or for having sticky notes or something. So I

908
00:53:22.880 --> 00:53:25.239
<v Speaker 3>like having kind of like three, like a list of

909
00:53:25.280 --> 00:53:27.559
<v Speaker 3>three or four tasks, like these are the important things

910
00:53:27.599 --> 00:53:30.239
<v Speaker 3>I need to get done today. And it can be

911
00:53:30.280 --> 00:53:32.920
<v Speaker 3>work related, it can be just like if I have

912
00:53:33.000 --> 00:53:35.360
<v Speaker 3>Valentine's Day gift for my wife, which is still on

913
00:53:35.400 --> 00:53:38.920
<v Speaker 3>my on my list right now, so you got reminding me.

914
00:53:40.519 --> 00:53:41.000
<v Speaker 2>That one read.

915
00:53:41.159 --> 00:53:44.320
<v Speaker 3>Yeah, just having like a list of things that that

916
00:53:44.360 --> 00:53:46.360
<v Speaker 3>I want to be front center, like these are the

917
00:53:46.400 --> 00:53:49.079
<v Speaker 3>things I need to get done. To do US is

918
00:53:49.119 --> 00:53:51.800
<v Speaker 3>a great way for that because they got, oh they

919
00:53:51.880 --> 00:53:53.760
<v Speaker 3>got a great web app, they got a great mobile app,

920
00:53:54.119 --> 00:53:56.480
<v Speaker 3>and they have a nice, little simple user interface that

921
00:53:56.679 --> 00:53:59.320
<v Speaker 3>encourages you to only have a handful of things on

922
00:53:59.440 --> 00:54:04.000
<v Speaker 3>your list. So it's never going to replace like a

923
00:54:04.039 --> 00:54:08.119
<v Speaker 3>linear or Gira or something for managing a long backlog task,

924
00:54:08.639 --> 00:54:10.400
<v Speaker 3>but it is a good way to just kind of

925
00:54:10.400 --> 00:54:13.880
<v Speaker 3>have like a quick sticky notes thing for yourself to

926
00:54:14.000 --> 00:54:16.079
<v Speaker 3>keep track of important things.

927
00:54:16.440 --> 00:54:19.199
<v Speaker 2>So are you still doing the mastering JS at all?

928
00:54:19.199 --> 00:54:20.280
<v Speaker 2>I don't think know if I've seen.

929
00:54:20.199 --> 00:54:22.840
<v Speaker 3>Lee in a while, I have been not working on

930
00:54:22.880 --> 00:54:25.599
<v Speaker 3>it as much. Actually, I've been kind of like letting that,

931
00:54:25.960 --> 00:54:29.840
<v Speaker 3>laying that run, because the idea like mastering JS was

932
00:54:29.920 --> 00:54:35.079
<v Speaker 3>kind of more about like get it like a tech

933
00:54:35.119 --> 00:54:38.000
<v Speaker 3>tutorial se O, which is a game that has become

934
00:54:38.360 --> 00:54:41.800
<v Speaker 3>very played out in the post AI era. People don't

935
00:54:41.840 --> 00:54:45.719
<v Speaker 3>go to Google for code questions as much anymore. To

936
00:54:46.079 --> 00:54:53.159
<v Speaker 3>traffic for that website has fallen substantially since the yeah

937
00:54:53.440 --> 00:54:57.960
<v Speaker 3>you saw the if you saw the tailwind stuff, it's

938
00:54:58.039 --> 00:55:01.679
<v Speaker 3>not that fairly similar in the sunset. Yeah, Like with

939
00:55:01.360 --> 00:55:04.559
<v Speaker 3>the traffic to mangus jas dot com and mastering js

940
00:55:04.559 --> 00:55:08.679
<v Speaker 3>dot io pretty much peaked exactly in August September twenty

941
00:55:08.760 --> 00:55:13.760
<v Speaker 3>twenty two, and then it's been at the client sets,

942
00:55:14.800 --> 00:55:19.440
<v Speaker 3>which hasn't affected us that much right now, but we

943
00:55:19.480 --> 00:55:22.840
<v Speaker 3>don't really rely on the ad revenue right there, but

944
00:55:22.880 --> 00:55:25.960
<v Speaker 3>it's definitely been definitely been something that we've noticed in.

945
00:55:25.960 --> 00:55:30.239
<v Speaker 2>The thought about Yeah, interesting that Jeffrey Ray is the

946
00:55:30.280 --> 00:55:32.440
<v Speaker 2>guy that does Leerraic cass He put out a video

947
00:55:32.519 --> 00:55:35.880
<v Speaker 2>here in the past week. We're so talking about that

948
00:55:35.960 --> 00:55:39.039
<v Speaker 2>and the impact that AI has had on his site

949
00:55:40.159 --> 00:55:42.119
<v Speaker 2>in their courses and stuff like that too. It's an

950
00:55:42.119 --> 00:55:43.039
<v Speaker 2>interesting listen.

951
00:55:44.280 --> 00:55:47.880
<v Speaker 3>Yeah, the the impact of AI on our industry is

952
00:55:49.639 --> 00:55:53.960
<v Speaker 3>it's it's gonna be. It's still happening. It's it's huge

953
00:55:54.000 --> 00:55:56.519
<v Speaker 3>so far, and it's gonna keep getting bigger, so we

954
00:55:57.559 --> 00:56:02.480
<v Speaker 3>I honestly, it's somewhat exciting. It's an exciting but somewhat

955
00:56:02.480 --> 00:56:06.719
<v Speaker 3>scary time to be in software engineering because, Aslee, no

956
00:56:06.840 --> 00:56:08.559
<v Speaker 3>idea what our industry is going to look like in

957
00:56:08.599 --> 00:56:11.880
<v Speaker 3>five years. I agree with DH on that, on that assessment.

958
00:56:13.360 --> 00:56:15.679
<v Speaker 2>Yeah, someone who's job hunting right now, I can vouch

959
00:56:15.679 --> 00:56:17.480
<v Speaker 2>for that. It's pretty brutal out there.

960
00:56:18.320 --> 00:56:20.760
<v Speaker 1>Yeah, all right, I've got to jump off. I've got

961
00:56:20.760 --> 00:56:23.159
<v Speaker 1>a work meeting. But thanks for coming, Val.

962
00:56:24.119 --> 00:56:25.920
<v Speaker 3>Yeah, thank you for having me, Chuck, It's always great

963
00:56:25.960 --> 00:56:26.320
<v Speaker 3>to see you.

964
00:56:26.960 --> 00:56:32.880
<v Speaker 1>Yeah, you too, And yeah, until next time, folks. Max

965
00:56:32.880 --> 00:56:33.079
<v Speaker 1>out
