WEBVTT

1
00:00:06.160 --> 00:00:09.039
<v Speaker 1>Hello, and welcome to this week's episode of Alexa Mix.

2
00:00:09.119 --> 00:00:12.199
<v Speaker 1>We are joined by, as ever, our fabulous panel of posts.

3
00:00:12.320 --> 00:00:16.760
<v Speaker 1>We have Alex Kutman, Hey Alex. We've got Bruce t Hi. Everybody,

4
00:00:16.839 --> 00:00:17.519
<v Speaker 1>Hello Bruce.

5
00:00:17.559 --> 00:00:18.960
<v Speaker 2>We've got Steven Nunyez.

6
00:00:19.079 --> 00:00:19.480
<v Speaker 3>Hello.

7
00:00:19.640 --> 00:00:22.359
<v Speaker 2>I am SOPHIEA Benedetto and we are joined today.

8
00:00:22.079 --> 00:00:26.519
<v Speaker 1>By Randall Thomas, who has many potential introductions that I

9
00:00:26.559 --> 00:00:27.280
<v Speaker 1>may choose from.

10
00:00:27.320 --> 00:00:29.000
<v Speaker 2>So I'm going to go with my favorite two, which

11
00:00:29.039 --> 00:00:31.239
<v Speaker 2>is the first. One's a little more informative.

12
00:00:30.879 --> 00:00:34.799
<v Speaker 1>CTO at a tech incubator called Geometer, as well as

13
00:00:34.840 --> 00:00:37.240
<v Speaker 1>a thanks for Hacker and vonn Dufon, and I'm sure

14
00:00:37.320 --> 00:00:39.840
<v Speaker 1>we'll be excited to dig into any of those topics.

15
00:00:39.880 --> 00:00:40.520
<v Speaker 2>Welcome Randall.

16
00:00:40.719 --> 00:00:41.960
<v Speaker 3>Oh, thank you so much for having me.

17
00:00:42.119 --> 00:00:44.359
<v Speaker 1>Yeah, we're so thrilled you could be here. We've got

18
00:00:44.399 --> 00:00:46.719
<v Speaker 1>so many great things to dig into today. But one

19
00:00:46.759 --> 00:00:48.399
<v Speaker 1>of the things that we often ask us when they

20
00:00:48.399 --> 00:00:50.039
<v Speaker 1>first come on is tell us a little bit about

21
00:00:50.039 --> 00:00:52.240
<v Speaker 1>how you got into the Elixir community in the first place.

22
00:00:52.520 --> 00:00:54.960
<v Speaker 3>Strangely enough, the short version is I've been around the

23
00:00:55.039 --> 00:00:57.560
<v Speaker 3>Rube community for a long time, and one day I

24
00:00:57.560 --> 00:00:59.399
<v Speaker 3>looked around and all the people that I knew from

25
00:00:59.399 --> 00:01:01.920
<v Speaker 3>the old Rube Kee Comunity weren't there anymore, and I

26
00:01:02.039 --> 00:01:04.400
<v Speaker 3>figured out where they went, and it turns out that

27
00:01:04.400 --> 00:01:06.519
<v Speaker 3>they all showed up in Elixir. In fact, it was

28
00:01:06.599 --> 00:01:09.959
<v Speaker 3>kind of accidental. I went to I think the first

29
00:01:09.959 --> 00:01:11.680
<v Speaker 3>Elixir comp I had gone to, I think was in

30
00:01:11.760 --> 00:01:14.640
<v Speaker 3>twenty eighteen or twenty seventeen, and I showed up there

31
00:01:14.640 --> 00:01:17.239
<v Speaker 3>and I literally just walked around. I'm like, wait, so

32
00:01:17.280 --> 00:01:20.200
<v Speaker 3>that's why you weren't at Ruby komf Oh wait, so

33
00:01:20.840 --> 00:01:23.120
<v Speaker 3>you're here. What are you doing here? So I thought

34
00:01:23.159 --> 00:01:24.760
<v Speaker 3>I would know no one, and it turned out that

35
00:01:24.760 --> 00:01:26.719
<v Speaker 3>I knew everybody. So all the smart people that I

36
00:01:26.879 --> 00:01:29.200
<v Speaker 3>sort of coattailed on and Ruby ended up in a Elixir.

37
00:01:29.280 --> 00:01:31.400
<v Speaker 3>So I figured they're way smarter than me. I should

38
00:01:31.400 --> 00:01:33.680
<v Speaker 3>go follow them see what they're doing. So it's kind

39
00:01:33.719 --> 00:01:33.959
<v Speaker 3>of it.

40
00:01:34.200 --> 00:01:36.439
<v Speaker 1>That's really as good a reason as any, and kind

41
00:01:36.439 --> 00:01:39.200
<v Speaker 1>of similar to how I started learning Alixir. It's like,

42
00:01:39.560 --> 00:01:41.879
<v Speaker 1>I don't know, maybe four or five years ago, one day,

43
00:01:41.920 --> 00:01:44.280
<v Speaker 1>maybe five five thirty, and Steven says, hey, you want

44
00:01:44.319 --> 00:01:46.359
<v Speaker 1>to see something cool, And that was kind of like

45
00:01:46.840 --> 00:01:49.040
<v Speaker 1>theyentre into the wide world of Alixir.

46
00:01:49.159 --> 00:01:51.079
<v Speaker 2>So following the smart people is the way to go.

47
00:01:51.480 --> 00:01:53.799
<v Speaker 3>There was a funny thing. I'm pretty sure this is

48
00:01:53.840 --> 00:01:57.840
<v Speaker 3>actually true, right, but like all apocryphal stories, because it

49
00:01:57.840 --> 00:02:01.159
<v Speaker 3>happened in Barcelona. There was baruk oh Barcelona Ruby konf

50
00:02:01.280 --> 00:02:03.319
<v Speaker 3>and at the time we were giving this talk on

51
00:02:03.719 --> 00:02:06.319
<v Speaker 3>Ruby motion. If you remember, there was this big kerfuffle

52
00:02:06.359 --> 00:02:08.199
<v Speaker 3>about hey man, you're gonna be able to write iOS

53
00:02:08.199 --> 00:02:10.560
<v Speaker 3>apps in Ruby, and it was actually a really really

54
00:02:10.599 --> 00:02:12.199
<v Speaker 3>great idea, I kind of think a little ahead of

55
00:02:12.199 --> 00:02:17.080
<v Speaker 3>its time. And I think actually at that conference somebody

56
00:02:17.199 --> 00:02:19.680
<v Speaker 3>was talking about, oh, yeah, you heard that somebody's trying

57
00:02:19.719 --> 00:02:23.120
<v Speaker 3>to build a Ruby for Elixir or for Erlang, and

58
00:02:23.120 --> 00:02:26.800
<v Speaker 3>I'm just like, yeah, good luck with that. I literally

59
00:02:26.879 --> 00:02:28.840
<v Speaker 3>thought it was like because I was thinking about, like

60
00:02:28.879 --> 00:02:32.159
<v Speaker 3>I tried learning Arlang once when the prag Prague released

61
00:02:32.159 --> 00:02:35.039
<v Speaker 3>that first book from Joe on Arlang, and I remember

62
00:02:35.120 --> 00:02:37.360
<v Speaker 3>getting into it and I remember thinking I'm like, okay,

63
00:02:37.599 --> 00:02:39.919
<v Speaker 3>I'll put this somewhere right above pearl. I recant that

64
00:02:40.000 --> 00:02:42.680
<v Speaker 3>statement now, but at the time I was thinking to myself, like,

65
00:02:42.759 --> 00:02:44.599
<v Speaker 3>there's no way you're ever going to get Rubis to

66
00:02:44.680 --> 00:02:47.439
<v Speaker 3>learn the syntax, because you know, the obsession with beauty

67
00:02:47.479 --> 00:02:49.639
<v Speaker 3>and elegance and expressiveness and everything else.

68
00:02:49.759 --> 00:02:52.240
<v Speaker 4>Yeah, and it's really funny that Jose kind of put

69
00:02:52.280 --> 00:02:55.479
<v Speaker 4>it onto the Ruby syntax, not as this great statement

70
00:02:55.639 --> 00:02:59.719
<v Speaker 4>of let's bring all the Ruby community over right, is

71
00:02:59.759 --> 00:03:03.639
<v Speaker 4>more like okay, one last thing, right, nobody yet, and

72
00:03:03.680 --> 00:03:06.360
<v Speaker 4>then then he kind of layers on these these beautiful abstractions.

73
00:03:06.400 --> 00:03:08.479
<v Speaker 4>But yeah, it seems like we were kind of circling

74
00:03:08.479 --> 00:03:10.960
<v Speaker 4>to each other for a long time randal before for

75
00:03:11.039 --> 00:03:14.120
<v Speaker 4>the Elexer community that you know, the idea that that

76
00:03:14.199 --> 00:03:16.080
<v Speaker 4>you were engine yard and you know, us to point

77
00:03:16.159 --> 00:03:19.039
<v Speaker 4>some stuff there, and you were kind of kind of

78
00:03:19.080 --> 00:03:22.479
<v Speaker 4>involved from from the very beginning, and kind of we

79
00:03:22.479 --> 00:03:25.439
<v Speaker 4>were we were just just outside of each other's or

80
00:03:25.479 --> 00:03:28.280
<v Speaker 4>but it didn't really meet until the Groxio course.

81
00:03:28.560 --> 00:03:31.120
<v Speaker 3>Yeah, which is That's actually what I like to say, is,

82
00:03:31.159 --> 00:03:35.159
<v Speaker 3>you know, I do a lot to to Bruce for

83
00:03:35.159 --> 00:03:37.800
<v Speaker 3>for really getting involved in the electric community. I don't

84
00:03:37.800 --> 00:03:40.360
<v Speaker 3>actually did you just advertise that course online? Was that

85
00:03:40.439 --> 00:03:40.879
<v Speaker 3>what it was?

86
00:03:41.120 --> 00:03:41.319
<v Speaker 5>Yeah?

87
00:03:41.360 --> 00:03:44.319
<v Speaker 4>I mean we literally just threw a couple of tweets

88
00:03:44.400 --> 00:03:47.319
<v Speaker 4>up just to see if there was a test market,

89
00:03:47.599 --> 00:03:50.520
<v Speaker 4>to test the market, and we said we would need

90
00:03:50.599 --> 00:03:52.759
<v Speaker 4>more people to start the class, and then you were

91
00:03:52.759 --> 00:03:54.919
<v Speaker 4>two signed up, but one was you, right, and the

92
00:03:54.919 --> 00:03:57.639
<v Speaker 4>other one was Patrick Thompson who's already writing you know,

93
00:03:58.039 --> 00:04:02.120
<v Speaker 4>articles and pull requests or Phoenix or Phoenix Live you.

94
00:04:02.360 --> 00:04:04.199
<v Speaker 4>But that was kind of a cool moment because we

95
00:04:04.240 --> 00:04:06.520
<v Speaker 4>had to decide whether to do the class or not,

96
00:04:06.719 --> 00:04:10.120
<v Speaker 4>and at that point we decided to go against the

97
00:04:10.159 --> 00:04:14.719
<v Speaker 4>grain of traditional courses to kind a you know, like

98
00:04:14.759 --> 00:04:18.360
<v Speaker 4>a smaller midge to school right where everybody could And

99
00:04:18.360 --> 00:04:20.800
<v Speaker 4>then that's that's where we kind of decided to flip

100
00:04:20.839 --> 00:04:21.920
<v Speaker 4>the keyboard, and.

101
00:04:21.720 --> 00:04:22.759
<v Speaker 5>You know, the rest is history.

102
00:04:23.000 --> 00:04:24.920
<v Speaker 3>Yeah, I was a pretty New York or program before

103
00:04:24.959 --> 00:04:26.600
<v Speaker 3>I got to spend a week in pairing with Bruce,

104
00:04:26.680 --> 00:04:29.079
<v Speaker 3>at least for Alixir, which is I think that's something

105
00:04:29.120 --> 00:04:31.600
<v Speaker 3>that we take for granted. You know, if you come

106
00:04:31.600 --> 00:04:33.800
<v Speaker 3>from procedural languages, it's really easy. If you know C,

107
00:04:34.199 --> 00:04:36.120
<v Speaker 3>you can kind of learn C plus plus even though

108
00:04:36.120 --> 00:04:38.079
<v Speaker 3>it might not be the right idioms, but it's the bridges.

109
00:04:38.120 --> 00:04:39.720
<v Speaker 3>If you know Joba, you can kind of get into

110
00:04:39.759 --> 00:04:43.120
<v Speaker 3>go and like. But learning how to actually think in

111
00:04:43.240 --> 00:04:45.720
<v Speaker 3>Elixir and break down the problem differently or thing functionally

112
00:04:45.800 --> 00:04:47.839
<v Speaker 3>is actually one of the big barrier sentry I think

113
00:04:47.879 --> 00:04:51.279
<v Speaker 3>people have and seeing it and doing it with other

114
00:04:51.319 --> 00:04:53.879
<v Speaker 3>people and going through that evolution was really helped me

115
00:04:54.000 --> 00:04:55.519
<v Speaker 3>but actually really leveled up my elixir.

116
00:04:56.040 --> 00:04:59.439
<v Speaker 4>Yeah, so I don't I don't take any credit at

117
00:04:59.439 --> 00:05:02.319
<v Speaker 4>all for you think you're doing an elixir by the way,

118
00:05:02.399 --> 00:05:05.519
<v Speaker 4>but I do think that there's a moment where your

119
00:05:05.560 --> 00:05:07.360
<v Speaker 4>revolution is like a lot of a lot of other

120
00:05:07.399 --> 00:05:09.639
<v Speaker 4>people's like mine as well. Right, it's why are the

121
00:05:09.639 --> 00:05:10.920
<v Speaker 4>cool kids leaving the room?

122
00:05:11.040 --> 00:05:11.519
<v Speaker 5>What do they.

123
00:05:11.439 --> 00:05:15.399
<v Speaker 4>See and how do I how do I make the

124
00:05:15.480 --> 00:05:20.040
<v Speaker 4>minute that mental shift to do the things that that

125
00:05:20.120 --> 00:05:23.079
<v Speaker 4>good programmers do. And you know that's what we were

126
00:05:23.120 --> 00:05:26.120
<v Speaker 4>all able to go through together in that class, you

127
00:05:26.160 --> 00:05:26.879
<v Speaker 4>and Patrick and I.

128
00:05:27.079 --> 00:05:28.879
<v Speaker 3>Yeah, well I still I still think it's one of

129
00:05:28.920 --> 00:05:30.759
<v Speaker 3>the greatest things that where I recommend it. In fact, actually,

130
00:05:30.800 --> 00:05:32.480
<v Speaker 3>if you remember, one of the first things I did

131
00:05:32.560 --> 00:05:35.240
<v Speaker 3>at CTO was I got a subscription. I think I

132
00:05:35.279 --> 00:05:37.120
<v Speaker 3>neede you write a feature so I could get my

133
00:05:37.160 --> 00:05:40.439
<v Speaker 3>team on Groxia. So shameless plug for Bruce's like learning

134
00:05:40.480 --> 00:05:43.439
<v Speaker 3>platform Groxio. It's great to learn alixer in a browser.

135
00:05:43.480 --> 00:05:45.480
<v Speaker 3>And I've actually used it for other people and they're like, well,

136
00:05:45.519 --> 00:05:47.040
<v Speaker 3>what do you think about Elixir? I'm like, I don't know.

137
00:05:47.079 --> 00:05:49.480
<v Speaker 3>Go try it out in a browser, like most people

138
00:05:49.480 --> 00:05:51.439
<v Speaker 3>are just blown away. That'll run in a browser anyway.

139
00:05:51.639 --> 00:05:53.639
<v Speaker 5>So it really doesn't runt in a browser.

140
00:05:54.720 --> 00:05:58.399
<v Speaker 3>It doesn't. But like those types of abstractions, it's not important.

141
00:05:58.600 --> 00:06:01.000
<v Speaker 3>It's like it's like everybody else. You first one's free,

142
00:06:01.199 --> 00:06:02.800
<v Speaker 3>ay man, first one's free.

143
00:06:03.079 --> 00:06:03.399
<v Speaker 5>Yeah.

144
00:06:03.639 --> 00:06:07.800
<v Speaker 4>But so as your Elixer genrety journey has kind of

145
00:06:08.120 --> 00:06:11.120
<v Speaker 4>started off, you didn't kind of peck around the edges

146
00:06:11.240 --> 00:06:12.480
<v Speaker 4>like most people did.

147
00:06:12.600 --> 00:06:12.759
<v Speaker 5>Right.

148
00:06:12.879 --> 00:06:15.639
<v Speaker 4>It's you know, you went from kind of zero to sixty, right,

149
00:06:15.879 --> 00:06:18.639
<v Speaker 4>So you went from Okay, now I'm in the community

150
00:06:18.720 --> 00:06:22.319
<v Speaker 4>taking a class to now I've got this incubator. Can

151
00:06:22.360 --> 00:06:24.079
<v Speaker 4>you tell us a little bit about what you're doing

152
00:06:24.160 --> 00:06:24.800
<v Speaker 4>at geomat.

153
00:06:25.319 --> 00:06:29.000
<v Speaker 3>Yeah, So some people I used to work with they

154
00:06:29.040 --> 00:06:32.000
<v Speaker 3>started a tech incubator, like all good things, and then

155
00:06:32.040 --> 00:06:34.079
<v Speaker 3>COVID hit. The most interesting part of actually what we

156
00:06:34.160 --> 00:06:36.319
<v Speaker 3>were doing was we ended up pivoting towards doing COVID

157
00:06:36.360 --> 00:06:38.839
<v Speaker 3>response work, and a lot of the work we ended

158
00:06:38.920 --> 00:06:42.639
<v Speaker 3>up deploying for several states was actually built on Elixer internline.

159
00:06:42.680 --> 00:06:46.839
<v Speaker 3>So we actually have data transformation platforms and pipelines. A fact,

160
00:06:47.000 --> 00:06:49.680
<v Speaker 3>we used Broadway for one of them. Two that are

161
00:06:49.800 --> 00:06:52.879
<v Speaker 3>currently supporting contact tracing in two states on the East coast,

162
00:06:53.319 --> 00:06:56.920
<v Speaker 3>So we learned a lot about both the scalability and functionality.

163
00:06:56.959 --> 00:06:59.279
<v Speaker 3>So just to give you an idea, they were caught

164
00:06:59.319 --> 00:07:02.639
<v Speaker 3>in batch world. Their best turnaround time started off at

165
00:07:02.639 --> 00:07:04.959
<v Speaker 3>twenty four hours, and then when they were really trying

166
00:07:04.959 --> 00:07:06.959
<v Speaker 3>to get up to speed, they could do it maybe

167
00:07:06.959 --> 00:07:08.920
<v Speaker 3>in six but there were a lot of errors and bugs.

168
00:07:09.160 --> 00:07:12.279
<v Speaker 3>We were actually able to in a week spike and

169
00:07:12.279 --> 00:07:15.439
<v Speaker 3>prototype something and then in about another week actually get

170
00:07:15.560 --> 00:07:19.279
<v Speaker 3>into deployment a solution that using Broadway and the inherent

171
00:07:19.399 --> 00:07:23.240
<v Speaker 3>sort of scalability of OTP, that turned the Literally we

172
00:07:23.240 --> 00:07:25.759
<v Speaker 3>were able to process the data faster than they could

173
00:07:25.759 --> 00:07:27.959
<v Speaker 3>get it to us. So we went from processing and

174
00:07:27.959 --> 00:07:31.040
<v Speaker 3>turning around all the COVID cases in about every couple

175
00:07:31.160 --> 00:07:34.240
<v Speaker 3>hours to one minute and thirty seconds was our first test,

176
00:07:34.279 --> 00:07:36.360
<v Speaker 3>and we got it down to sub one minute, and

177
00:07:36.399 --> 00:07:38.439
<v Speaker 3>they were doing it incrementally. We were actually able to

178
00:07:38.480 --> 00:07:42.519
<v Speaker 3>reprocess every single test, every single run, every single time,

179
00:07:42.600 --> 00:07:44.800
<v Speaker 3>which allowed us to do a different type of quality control,

180
00:07:44.959 --> 00:07:47.319
<v Speaker 3>which really matters for deduplication because a lot of the

181
00:07:47.800 --> 00:07:49.879
<v Speaker 3>issues that you run into with COVID testing are that

182
00:07:49.959 --> 00:07:52.079
<v Speaker 3>the lag between when people get tests and the test

183
00:07:52.120 --> 00:07:55.199
<v Speaker 3>results are reported. I mean that duplicates and false positives

184
00:07:55.240 --> 00:07:58.639
<v Speaker 3>are a real problem. So that was all done on

185
00:07:59.000 --> 00:08:02.399
<v Speaker 3>Elixir and Earlin, right, And that was one of those things.

186
00:08:02.439 --> 00:08:04.680
<v Speaker 3>By the way, we also wrote a telyphony shim that

187
00:08:04.759 --> 00:08:08.040
<v Speaker 3>actually did calliphony control, that did call control for connecting

188
00:08:08.079 --> 00:08:11.800
<v Speaker 3>calls to contact tracers, also done in arline, and both

189
00:08:11.800 --> 00:08:14.040
<v Speaker 3>of them, if I remember correctly, I might be making

190
00:08:14.040 --> 00:08:15.639
<v Speaker 3>this up a little bit, but both of them required

191
00:08:15.720 --> 00:08:18.759
<v Speaker 3>so few resources that they ran in like a container

192
00:08:19.040 --> 00:08:21.680
<v Speaker 3>inside of like an easy two medium, right. It was

193
00:08:21.759 --> 00:08:24.639
<v Speaker 3>just so ridiculously efficient that it was kind of kind

194
00:08:24.680 --> 00:08:28.279
<v Speaker 3>of sad, and we replaced a bunch of custom made

195
00:08:28.279 --> 00:08:30.399
<v Speaker 3>over this. Lambda functions that were doing this that had

196
00:08:30.399 --> 00:08:32.759
<v Speaker 3>to do were somewhere aer prone. I think the Lamba

197
00:08:32.759 --> 00:08:35.960
<v Speaker 3>function loads were a couple hours, like fourteen or fifteen

198
00:08:35.960 --> 00:08:38.600
<v Speaker 3>hours to reload the entire universe of data, just because

199
00:08:38.840 --> 00:08:41.200
<v Speaker 3>of some architectural decision. But the short version is alexur

200
00:08:41.320 --> 00:08:42.919
<v Speaker 3>was a big win because three people were able to

201
00:08:42.919 --> 00:08:46.480
<v Speaker 3>rebuild that system in like a week. So long week,

202
00:08:46.519 --> 00:08:48.440
<v Speaker 3>mind you, but it was really kind of impressive. That

203
00:08:48.480 --> 00:08:50.600
<v Speaker 3>was one of those really aha moments when you can

204
00:08:50.639 --> 00:08:54.320
<v Speaker 3>think about Elixir and Erling and being are very different

205
00:08:54.360 --> 00:08:56.639
<v Speaker 3>and they provide almost like what people or devs think

206
00:08:56.639 --> 00:08:57.519
<v Speaker 3>of as superpowers.

207
00:08:57.879 --> 00:09:00.320
<v Speaker 5>So I feel like I've lived the same exects story

208
00:09:00.399 --> 00:09:04.720
<v Speaker 5>of Lamb does being painful and terribly slow and then

209
00:09:04.720 --> 00:09:07.080
<v Speaker 5>replacing it with an Elixir app and then it was,

210
00:09:07.279 --> 00:09:09.200
<v Speaker 5>you know, like a whole different world entirely.

211
00:09:09.600 --> 00:09:09.840
<v Speaker 6>Yeah.

212
00:09:10.159 --> 00:09:12.000
<v Speaker 3>Actually, do you ever see that T shirt that says

213
00:09:12.000 --> 00:09:14.159
<v Speaker 3>go away, I'll replace you with a small shell script.

214
00:09:15.000 --> 00:09:17.200
<v Speaker 3>You know, there was like this comic I think it

215
00:09:17.240 --> 00:09:18.919
<v Speaker 3>was floating around for a while, but it's I almost

216
00:09:18.919 --> 00:09:21.679
<v Speaker 3>feel like the exact same thing. It's like almost any

217
00:09:21.759 --> 00:09:23.519
<v Speaker 3>use case where you're using the Lamb to function, you

218
00:09:23.519 --> 00:09:26.840
<v Speaker 3>can use Elixir and it just kind of works.

219
00:09:26.960 --> 00:09:29.240
<v Speaker 5>It's kind of funny. I mean, a Lamb is effected

220
00:09:29.240 --> 00:09:31.159
<v Speaker 5>with like one gen server and we can spawn like,

221
00:09:31.240 --> 00:09:33.399
<v Speaker 5>you know, thousands of thousands of them, no problem.

222
00:09:33.600 --> 00:09:36.360
<v Speaker 6>So are you guys saying this? And the question I

223
00:09:36.440 --> 00:09:39.200
<v Speaker 6>have is why isn't everyone doing this? Why is the

224
00:09:39.200 --> 00:09:42.519
<v Speaker 6>Elixir not like the language that everyone builds all the things?

225
00:09:42.799 --> 00:09:46.600
<v Speaker 6>I mean, yeah, obviously it's the right soul for every

226
00:09:46.679 --> 00:09:49.559
<v Speaker 6>job there. That's a great question. It has nothing to

227
00:09:49.639 --> 00:09:50.320
<v Speaker 6>do technology.

228
00:09:50.320 --> 00:09:51.799
<v Speaker 3>I'd love to hear what you guys think, and then

229
00:09:51.879 --> 00:09:55.799
<v Speaker 3>I'll opine with my own slightly derisive, sarcastic view on.

230
00:09:55.759 --> 00:10:00.919
<v Speaker 4>This and and the darkness behind then right language to

231
00:10:01.039 --> 00:10:01.960
<v Speaker 4>rule them all.

232
00:10:02.039 --> 00:10:04.159
<v Speaker 5>Right, It's it's interesting.

233
00:10:04.639 --> 00:10:06.840
<v Speaker 4>I'm starting to play with with a lot of different

234
00:10:06.879 --> 00:10:09.279
<v Speaker 4>languages that that have different takes in the world.

235
00:10:09.360 --> 00:10:10.440
<v Speaker 5>And so the.

236
00:10:10.399 --> 00:10:13.679
<v Speaker 4>One that really opened my eyes was Pony because it

237
00:10:13.759 --> 00:10:16.320
<v Speaker 4>does so there are a lot of things that Elixer

238
00:10:16.399 --> 00:10:19.840
<v Speaker 4>does really well that that Pony just really really sucks at, right,

239
00:10:20.440 --> 00:10:22.960
<v Speaker 4>But one of the things that Pony does well is

240
00:10:23.639 --> 00:10:30.159
<v Speaker 4>it enforces compiler constraints that enforce concurrency constraints, right, so

241
00:10:30.559 --> 00:10:32.879
<v Speaker 4>incorrect programs won't compile.

242
00:10:33.559 --> 00:10:36.039
<v Speaker 5>And so you know that that pointed.

243
00:10:35.720 --> 00:10:39.159
<v Speaker 4>Me to to the to the idea that if you

244
00:10:39.279 --> 00:10:42.559
<v Speaker 4>have to move a lot of data around, you know,

245
00:10:42.600 --> 00:10:45.879
<v Speaker 4>if you have a lot of mutability, then then Elixor

246
00:10:45.960 --> 00:10:48.240
<v Speaker 4>isn't it. And so I've been spending a little bit

247
00:10:48.279 --> 00:10:50.639
<v Speaker 4>of time in Julia this year just kind of to

248
00:10:51.360 --> 00:10:52.919
<v Speaker 4>flux the old math muscles.

249
00:10:53.000 --> 00:10:53.159
<v Speaker 2>Right.

250
00:10:54.559 --> 00:10:57.480
<v Speaker 4>So I was a math major in college or computer

251
00:10:57.519 --> 00:10:59.840
<v Speaker 4>science and math, and so one of the things that

252
00:11:00.039 --> 00:11:04.720
<v Speaker 4>we were focused on was linear algebra, I'm sorry, like

253
00:11:05.000 --> 00:11:09.360
<v Speaker 4>matrix matrix algebra. And that's kind of what machine learning

254
00:11:09.519 --> 00:11:12.919
<v Speaker 4>and machine modeling have have turned into, right. It's it's

255
00:11:13.039 --> 00:11:16.600
<v Speaker 4>you have these these massive systems of equations and and

256
00:11:16.759 --> 00:11:20.840
<v Speaker 4>algorithms to kind of slowly crank and provide more and

257
00:11:20.919 --> 00:11:24.320
<v Speaker 4>more precision. And we're starting to get into the places

258
00:11:24.440 --> 00:11:28.039
<v Speaker 4>where where you could take these these massive tables and

259
00:11:28.120 --> 00:11:32.759
<v Speaker 4>apply these differential equations to them. And Elixer is just

260
00:11:33.279 --> 00:11:34.799
<v Speaker 4>not good at that, and it is never going to

261
00:11:34.840 --> 00:11:38.120
<v Speaker 4>be good at that. It's good at kind of the control.

262
00:11:38.879 --> 00:11:40.759
<v Speaker 4>But yet, Yeah, I mean I think that that there

263
00:11:40.759 --> 00:11:43.000
<v Speaker 4>are a lot of good things that Elixer is great at.

264
00:11:43.279 --> 00:11:46.919
<v Speaker 4>It's funny, Randall, It's Elixur is great at almost all

265
00:11:47.000 --> 00:11:48.639
<v Speaker 4>the things that we were doing.

266
00:11:49.440 --> 00:11:53.039
<v Speaker 7>Where you're at these early Ruby communities, right the deployment,

267
00:11:53.240 --> 00:11:56.639
<v Speaker 7>the you know, the the babysit a big fat relational

268
00:11:56.720 --> 00:11:59.759
<v Speaker 7>database with a web UI, you know, on and on.

269
00:12:00.559 --> 00:12:02.960
<v Speaker 3>Yeah. No, So I don't know, what do you guys,

270
00:12:03.000 --> 00:12:04.639
<v Speaker 3>Why do you guys think it's not winning? I mean,

271
00:12:04.879 --> 00:12:07.039
<v Speaker 3>I guess the other question is what's the definition of winning.

272
00:12:07.360 --> 00:12:11.600
<v Speaker 3>I don't think universal adoption of everything is the definition

273
00:12:11.639 --> 00:12:14.039
<v Speaker 3>of winning. I don't think it's for everyone. Not all

274
00:12:14.159 --> 00:12:15.200
<v Speaker 3>languages are for everyone.

275
00:12:15.600 --> 00:12:17.759
<v Speaker 5>I have a question, how do we know it's not winning?

276
00:12:17.879 --> 00:12:18.080
<v Speaker 3>Right?

277
00:12:18.480 --> 00:12:21.120
<v Speaker 4>The language popularity? And they make mistakes?

278
00:12:21.200 --> 00:12:24.360
<v Speaker 3>Right, Oh yeah, didn't they? Actually what was it? There's

279
00:12:24.440 --> 00:12:28.519
<v Speaker 3>something that they included, like crystal, that's what it was, right,

280
00:12:28.559 --> 00:12:29.919
<v Speaker 3>And they ended up playing.

281
00:12:29.679 --> 00:12:34.639
<v Speaker 4>Like agechygramming crystals, which is either a programming model or

282
00:12:35.360 --> 00:12:38.600
<v Speaker 4>a great way to have your new Age crystals learn

283
00:12:39.200 --> 00:12:42.200
<v Speaker 4>as you get more enlightened every day.

284
00:12:42.519 --> 00:12:45.639
<v Speaker 3>I have to look into that. So no, So I

285
00:12:45.639 --> 00:12:48.240
<v Speaker 3>think there are lots of things. It's really funny. So

286
00:12:48.279 --> 00:12:50.360
<v Speaker 3>one of the things I learned from being a rubyist

287
00:12:50.399 --> 00:12:52.600
<v Speaker 3>early on, and at the time I got into Ruby,

288
00:12:52.639 --> 00:12:55.240
<v Speaker 3>I was actually an independent consultant. I was all in

289
00:12:55.399 --> 00:12:58.799
<v Speaker 3>dot net, like I had actually started a long time ago,

290
00:12:59.039 --> 00:13:01.960
<v Speaker 3>System five Release three, that's how old I am. But

291
00:13:02.440 --> 00:13:03.919
<v Speaker 3>I had gotten into that net because that's where all

292
00:13:03.960 --> 00:13:06.399
<v Speaker 3>the consulting money was. So that was c plus plus

293
00:13:06.519 --> 00:13:09.639
<v Speaker 3>MICROSUF Foundation classes, all that crap, and the learning Aha

294
00:13:09.679 --> 00:13:11.320
<v Speaker 3>moment for me is I had to take some visual

295
00:13:11.360 --> 00:13:13.440
<v Speaker 3>basic programmers and try and teach them see sharp and

296
00:13:13.480 --> 00:13:16.080
<v Speaker 3>they failed miserably, like there was no way to teach

297
00:13:16.120 --> 00:13:18.759
<v Speaker 3>them the basics of classes, and they just hadn't learned

298
00:13:18.759 --> 00:13:20.840
<v Speaker 3>any of that stuff, and we had to deliver an

299
00:13:20.879 --> 00:13:25.000
<v Speaker 3>ETL system. And Blake Miserini at the time he's like, hey, man,

300
00:13:25.080 --> 00:13:26.919
<v Speaker 3>I know you like Pearl, but I've got something way

301
00:13:26.919 --> 00:13:29.480
<v Speaker 3>better than Pearl. And I apologize for all the Pearl

302
00:13:29.519 --> 00:13:31.159
<v Speaker 3>I ever wrote. I think we all need to do that.

303
00:13:31.559 --> 00:13:33.480
<v Speaker 3>But he said I got something way better than Pearl.

304
00:13:33.519 --> 00:13:36.000
<v Speaker 3>It's this Ruby thing and like whatever. So I played

305
00:13:36.000 --> 00:13:37.399
<v Speaker 3>around with it for a week and I'm like, huh,

306
00:13:37.399 --> 00:13:40.159
<v Speaker 3>this is pretty neat, and I'm pretty sure at the

307
00:13:40.240 --> 00:13:43.120
<v Speaker 3>time I actually had to go to like a bookstore

308
00:13:43.159 --> 00:13:45.840
<v Speaker 3>and find the Ruby book, like an actual print version

309
00:13:45.840 --> 00:13:49.360
<v Speaker 3>of the book. This was, you know, so like he

310
00:13:49.399 --> 00:13:52.039
<v Speaker 3>had to like run around to borders and whatever and

311
00:13:52.200 --> 00:13:55.639
<v Speaker 3>try and find a copy of Dave Thomas's book. And

312
00:13:55.960 --> 00:13:57.960
<v Speaker 3>I did over the weekend, and then I tried it

313
00:13:58.000 --> 00:14:00.840
<v Speaker 3>with these guys on one day and I had them

314
00:14:00.879 --> 00:14:03.559
<v Speaker 3>doing advanced string processing and classes. They just got it

315
00:14:03.600 --> 00:14:06.320
<v Speaker 3>and rocked it. And that was the moment I knew that, like,

316
00:14:06.679 --> 00:14:09.759
<v Speaker 3>oh yeah, that's where we need to go, and so

317
00:14:09.840 --> 00:14:12.320
<v Speaker 3>I literally just stopped doing Dutton had stuff and started

318
00:14:12.320 --> 00:14:16.440
<v Speaker 3>doing all in on Ruby and Erlin and Elixir, and

319
00:14:16.519 --> 00:14:19.240
<v Speaker 3>I actually, when I say that Earleg, Elixir, Beam, I

320
00:14:19.279 --> 00:14:22.120
<v Speaker 3>actually really like to separate those things because I think

321
00:14:22.120 --> 00:14:24.639
<v Speaker 3>it's important that you don't mix them or blend them

322
00:14:24.679 --> 00:14:26.639
<v Speaker 3>like they are there are different things, and that you're

323
00:14:26.679 --> 00:14:28.799
<v Speaker 3>getting a lot there. I think it has that same

324
00:14:28.840 --> 00:14:32.200
<v Speaker 3>feeling as early adoption for Ruby. Like literally when we

325
00:14:32.240 --> 00:14:35.080
<v Speaker 3>started doing Ruby work, we had this other company called

326
00:14:35.159 --> 00:14:37.559
<v Speaker 3>Quality Humans where we were all doing rails apps and

327
00:14:37.559 --> 00:14:39.919
<v Speaker 3>everybody thought that we were crazy. You're like, I don't

328
00:14:39.960 --> 00:14:42.759
<v Speaker 3>know this rails thing. I don't know. It seems pretty risky,

329
00:14:43.120 --> 00:14:45.519
<v Speaker 3>Like only do guys in Chicago are doing it? Yeah.

330
00:14:45.519 --> 00:14:46.240
<v Speaker 5>I mean I think that.

331
00:14:46.960 --> 00:14:50.480
<v Speaker 4>Very often we as a programming community have to take

332
00:14:50.480 --> 00:14:53.320
<v Speaker 4>a step back to take a step forward, right, And

333
00:14:53.360 --> 00:14:55.360
<v Speaker 4>I think that that's one of the things that would

334
00:14:55.360 --> 00:14:58.080
<v Speaker 4>be provided, right. So it was a huge step forward

335
00:14:58.080 --> 00:14:59.960
<v Speaker 4>in a lot of ways, right, first in the idea

336
00:15:00.120 --> 00:15:03.919
<v Speaker 4>that a programming language should be intuitive and fun. Second

337
00:15:04.080 --> 00:15:08.879
<v Speaker 4>in that that you didn't have to specify, it wasn't

338
00:15:09.279 --> 00:15:13.799
<v Speaker 4>kind of this this really tedious artificial typing model. And

339
00:15:13.919 --> 00:15:18.519
<v Speaker 4>third we didn't have these really tedious and artificial configurations

340
00:15:18.960 --> 00:15:22.039
<v Speaker 4>that were you know, XML that was explicit for everything,

341
00:15:22.559 --> 00:15:25.919
<v Speaker 4>with no defaults. All those things were really important for Ruby,

342
00:15:26.399 --> 00:15:30.799
<v Speaker 4>and it seems like by taking that step back to

343
00:15:30.840 --> 00:15:35.440
<v Speaker 4>reset the kind of the bar on for application developers

344
00:15:35.519 --> 00:15:39.799
<v Speaker 4>on the productivity of application developers. You know, we got

345
00:15:39.840 --> 00:15:43.559
<v Speaker 4>a lot of the you know, the deployments, you know, mutability,

346
00:15:43.840 --> 00:15:46.639
<v Speaker 4>a lot of a lot of things wrong, but there

347
00:15:46.720 --> 00:15:49.600
<v Speaker 4>was a whole lot that was right about Ruby that

348
00:15:49.799 --> 00:15:50.799
<v Speaker 4>Lizor learned from.

349
00:15:51.000 --> 00:15:52.039
<v Speaker 3>Yeah, good stuff.

350
00:15:52.559 --> 00:15:54.679
<v Speaker 1>I like that you mentioned productivity, Bruce, because it's something

351
00:15:54.720 --> 00:15:57.559
<v Speaker 1>that I absolutely feel is true of Alexa and Phoenix.

352
00:15:57.600 --> 00:15:59.159
<v Speaker 1>And then kind of back to what you were saying, Randall,

353
00:15:59.200 --> 00:16:02.679
<v Speaker 1>when you were trying to, you know, move some folks

354
00:16:02.720 --> 00:16:04.960
<v Speaker 1>into kind of this realm of like object oriented and

355
00:16:05.000 --> 00:16:07.080
<v Speaker 1>when you found Ruby and kind of brought that to them,

356
00:16:07.120 --> 00:16:09.240
<v Speaker 1>that people were able to grack it and learn it

357
00:16:09.279 --> 00:16:09.559
<v Speaker 1>and be.

358
00:16:09.519 --> 00:16:12.799
<v Speaker 2>Productive in it relatively quickly. And that's absolutely true of Alixir.

359
00:16:12.840 --> 00:16:15.000
<v Speaker 1>It's absolutely true of Phoenix, and not just because of

360
00:16:15.320 --> 00:16:17.919
<v Speaker 1>you know, Alixir's language features, in the fact that, similarly

361
00:16:18.039 --> 00:16:20.600
<v Speaker 1>to Rubyo, it is eloquent and easy to reason about.

362
00:16:20.639 --> 00:16:24.159
<v Speaker 1>But I think there's so many sort of Alixir ecosystem

363
00:16:24.200 --> 00:16:27.360
<v Speaker 1>features that allow developers and whole teams to be really

364
00:16:27.440 --> 00:16:30.120
<v Speaker 1>highly productive. And I think that's why I'm not at

365
00:16:30.120 --> 00:16:33.120
<v Speaker 1>all surprise to hear how Alexir and Erlang has allowed

366
00:16:33.159 --> 00:16:35.559
<v Speaker 1>you guys to solve these really big scale problems for

367
00:16:35.639 --> 00:16:38.320
<v Speaker 1>like COVID contact tracing. It reminds me a bit of

368
00:16:38.320 --> 00:16:40.480
<v Speaker 1>a talk that was one of the keynotes at Alexa

369
00:16:40.519 --> 00:16:42.759
<v Speaker 1>kronk EEO this year, which will hopefully be out soon,

370
00:16:43.200 --> 00:16:45.600
<v Speaker 1>about some folks in Kenya who are using Elixir to.

371
00:16:45.559 --> 00:16:48.320
<v Speaker 2>Develop a new like nine to one one emergency contact

372
00:16:48.360 --> 00:16:49.639
<v Speaker 2>system around the country.

373
00:16:50.279 --> 00:16:52.799
<v Speaker 1>And it's just it's kind of the perfect combination of

374
00:16:52.879 --> 00:16:56.080
<v Speaker 1>like scale and concurrency and fault tolerance, but also productivity

375
00:16:56.159 --> 00:16:57.440
<v Speaker 1>for actual humans.

376
00:16:57.799 --> 00:16:59.679
<v Speaker 2>And so I definitely be curious to hear, you know,

377
00:16:59.679 --> 00:17:01.960
<v Speaker 2>from you Randal with your experiences lately with some of

378
00:17:01.960 --> 00:17:03.799
<v Speaker 2>these COVID projects, Like sounds like you.

379
00:17:03.799 --> 00:17:06.480
<v Speaker 1>Guys spun this up really fast, like a week later

380
00:17:06.599 --> 00:17:08.880
<v Speaker 1>you had these working prototypes. So like, what is it

381
00:17:08.920 --> 00:17:12.720
<v Speaker 1>about Alixer specifically or this ecosystem specifically that let you

382
00:17:12.799 --> 00:17:14.000
<v Speaker 1>guys do that so quickly?

383
00:17:14.559 --> 00:17:16.200
<v Speaker 3>So I'm going to give you the first one in

384
00:17:16.240 --> 00:17:17.960
<v Speaker 3>no particular order, but the first one that pops to

385
00:17:17.960 --> 00:17:20.720
<v Speaker 3>mind is people. So it's a really bizarre thing that

386
00:17:20.759 --> 00:17:23.599
<v Speaker 3>I found is that people who are looking for those

387
00:17:23.640 --> 00:17:26.880
<v Speaker 3>exact things that you mentioned, like people for whom tools matter,

388
00:17:27.039 --> 00:17:30.680
<v Speaker 3>like productivity matters. Like this is not to popoo or

389
00:17:30.759 --> 00:17:32.480
<v Speaker 3>denigrate people who don't choose that, but there are some

390
00:17:32.519 --> 00:17:34.279
<v Speaker 3>people who are like approach things that it's kind of

391
00:17:34.279 --> 00:17:36.039
<v Speaker 3>like a craftsman, and some people approach it it's just

392
00:17:36.079 --> 00:17:37.960
<v Speaker 3>like this is my job. But there are literally people

393
00:17:37.960 --> 00:17:39.720
<v Speaker 3>who go out and try and learn more because they

394
00:17:39.720 --> 00:17:43.160
<v Speaker 3>want better tools, they want a better experience, Like all

395
00:17:43.240 --> 00:17:45.920
<v Speaker 3>those things holistically matter to them. And I find people

396
00:17:45.960 --> 00:17:49.799
<v Speaker 3>who gravitate to the elixir ecosystem generally speaking, care about

397
00:17:49.839 --> 00:17:51.839
<v Speaker 3>those things and as a result it ironically it makes

398
00:17:51.839 --> 00:17:54.799
<v Speaker 3>them much better problem solvers, Like they literally care about

399
00:17:54.839 --> 00:17:57.880
<v Speaker 3>the solution and the elegance solution on I think Buckminster

400
00:17:57.920 --> 00:18:00.559
<v Speaker 3>Fuller had that statement. I might be mische doing the quote,

401
00:18:00.599 --> 00:18:02.880
<v Speaker 3>but it's like, first I start with a solution, but

402
00:18:02.920 --> 00:18:04.480
<v Speaker 3>if at the end it is an elegant, I know

403
00:18:04.559 --> 00:18:06.319
<v Speaker 3>that I haven't solved it in the best way. It's

404
00:18:06.400 --> 00:18:08.519
<v Speaker 3>kind of that's kind of the gist of it. So

405
00:18:08.799 --> 00:18:11.279
<v Speaker 3>we actually because we had people who had experienced in Elixir,

406
00:18:11.720 --> 00:18:14.200
<v Speaker 3>they were really good at solving problems. Then the other

407
00:18:14.240 --> 00:18:17.559
<v Speaker 3>thing that really works out is that beam Erling and

408
00:18:17.599 --> 00:18:22.000
<v Speaker 3>Elixer provide great abstractions, Like I really love the fact

409
00:18:22.000 --> 00:18:24.000
<v Speaker 3>that you get to pick to the right level of

410
00:18:24.000 --> 00:18:26.039
<v Speaker 3>abstraction for your problem, and if you need to go

411
00:18:26.119 --> 00:18:28.839
<v Speaker 3>more granular, you can't. If you don't have to go

412
00:18:28.920 --> 00:18:32.160
<v Speaker 3>more granular, no need. Like I wrote C plus plus

413
00:18:32.200 --> 00:18:36.119
<v Speaker 3>for a long time, probably professionally for the better part

414
00:18:36.160 --> 00:18:38.559
<v Speaker 3>of almost eight or nine years, and one of the

415
00:18:38.559 --> 00:18:40.920
<v Speaker 3>problems I always I didn't realize at the time because

416
00:18:40.960 --> 00:18:43.559
<v Speaker 3>like I started off an assembler and then everything looked

417
00:18:43.559 --> 00:18:46.559
<v Speaker 3>better than assembler was that C plus plus forces you

418
00:18:46.920 --> 00:18:50.000
<v Speaker 3>to solve every abstraction from the ground up, like almost

419
00:18:50.039 --> 00:18:52.200
<v Speaker 3>invariably you're just starting it's like, oh yeah, so let's

420
00:18:52.200 --> 00:18:53.680
<v Speaker 3>talk about how you're going to play out the memory

421
00:18:53.680 --> 00:18:56.640
<v Speaker 3>for your class. Write another class. Guess what, now you're

422
00:18:56.720 --> 00:18:58.519
<v Speaker 3>going to do the exact same thing. Let's talk about

423
00:18:58.559 --> 00:19:01.400
<v Speaker 3>the copy semantics for your class. Let's topic about like

424
00:19:02.119 --> 00:19:04.400
<v Speaker 3>all of these things, which really have nothing to do

425
00:19:04.480 --> 00:19:06.519
<v Speaker 3>with solving the problem, are the majority of the lift

426
00:19:06.519 --> 00:19:09.359
<v Speaker 3>that you actually have to do. And the funny thing

427
00:19:09.480 --> 00:19:13.680
<v Speaker 3>is we didn't really think about parallelization. We didn't think

428
00:19:13.680 --> 00:19:17.000
<v Speaker 3>about memory usage, we didn't think about cpututilization. We just

429
00:19:17.039 --> 00:19:18.960
<v Speaker 3>really thought about, well, we have to do the same

430
00:19:19.039 --> 00:19:21.640
<v Speaker 3>thing over and over and over again. Well, how do

431
00:19:21.640 --> 00:19:23.799
<v Speaker 3>we solve it in the small we do this? Oh well,

432
00:19:23.839 --> 00:19:25.400
<v Speaker 3>how what do we need to do to paralyze it?

433
00:19:25.480 --> 00:19:28.160
<v Speaker 3>What's this broadway thing? Okay, hey, look this gives us

434
00:19:28.160 --> 00:19:31.200
<v Speaker 3>some like composible data pipelines. Well that works really well, great, Okay,

435
00:19:31.279 --> 00:19:32.839
<v Speaker 3>I guess it all works. How fast is it? I

436
00:19:32.880 --> 00:19:36.240
<v Speaker 3>don't know. Let's look at it. Oh crap, did it break?

437
00:19:36.519 --> 00:19:40.200
<v Speaker 3>Oh no, it finished? Weird Okay, I guess we solved

438
00:19:40.240 --> 00:19:43.400
<v Speaker 3>the problem. But it felt like a happy accident. And

439
00:19:43.440 --> 00:19:44.839
<v Speaker 3>that's one of the things I really love about it. Like,

440
00:19:44.880 --> 00:19:46.480
<v Speaker 3>so like a perfect example, the first time you run

441
00:19:46.559 --> 00:19:48.400
<v Speaker 3>Live you, it feels like a happy accident.

442
00:19:48.599 --> 00:19:51.200
<v Speaker 2>You're like totally You're like, oh, okay, I guess that's it.

443
00:19:51.200 --> 00:19:51.799
<v Speaker 2>It just worked.

444
00:19:51.839 --> 00:19:53.720
<v Speaker 1>And I feel like I've had that experience so much,

445
00:19:53.759 --> 00:19:56.319
<v Speaker 1>not just with Live You, but definitely very notably with

446
00:19:56.400 --> 00:19:58.599
<v Speaker 1>Live You, but so often you're like, huh, okay, I

447
00:19:58.599 --> 00:20:00.000
<v Speaker 1>have to do this thing. I wonder if I just

448
00:20:00.519 --> 00:20:02.359
<v Speaker 1>X Y and Z and then you know you're kind

449
00:20:02.400 --> 00:20:03.240
<v Speaker 1>of off to the races.

450
00:20:03.400 --> 00:20:06.200
<v Speaker 3>Yeah. Oh, Also, speaking of productivity, I actually really like

451
00:20:06.279 --> 00:20:10.519
<v Speaker 3>the fact that, specifically when you start talking about abstractions,

452
00:20:10.799 --> 00:20:13.680
<v Speaker 3>I like the fact that one of the principal ideas

453
00:20:13.680 --> 00:20:16.200
<v Speaker 3>behind both the Elixir Earling Phoenix novel libraries is that

454
00:20:16.240 --> 00:20:19.400
<v Speaker 3>we don't hide them, we just express them, if that

455
00:20:19.400 --> 00:20:22.920
<v Speaker 3>makes sense. Like, there's no super uber magic. The magic

456
00:20:23.000 --> 00:20:24.759
<v Speaker 3>is there for you to understand and see and it

457
00:20:25.079 --> 00:20:27.039
<v Speaker 3>basically you can deal with it and you can use

458
00:20:27.079 --> 00:20:28.920
<v Speaker 3>it or you cannot. But it's not trying to make

459
00:20:28.960 --> 00:20:31.559
<v Speaker 3>something really magical happen. Like I know it's fun to

460
00:20:31.599 --> 00:20:34.039
<v Speaker 3>pick on JavaScript, but like promises and JavaScript seem like

461
00:20:34.079 --> 00:20:36.519
<v Speaker 3>a really good idea. But I think we've all written

462
00:20:36.519 --> 00:20:39.720
<v Speaker 3>some JavaScript where the chain of promises goes down and

463
00:20:39.799 --> 00:20:41.319
<v Speaker 3>on and on and on.

464
00:20:41.599 --> 00:20:43.759
<v Speaker 2>I have no idea. What you're talking about doesn't make

465
00:20:43.799 --> 00:20:44.200
<v Speaker 2>me at all.

466
00:20:44.839 --> 00:20:47.000
<v Speaker 1>I'm curious how you feel that compares to you know,

467
00:20:47.079 --> 00:20:49.680
<v Speaker 1>people throw the phrase like rails magic around a lot,

468
00:20:49.759 --> 00:20:51.880
<v Speaker 1>and that's something that I know, like Stephen and I encountered,

469
00:20:51.920 --> 00:20:54.559
<v Speaker 1>and teaching rails is when you take students from the

470
00:20:54.599 --> 00:20:56.440
<v Speaker 1>way that we had taught the course back of flatter

471
00:20:56.480 --> 00:20:58.880
<v Speaker 1>and usually went from you know, your building like a

472
00:20:58.880 --> 00:21:01.720
<v Speaker 1>web app with reps using Sinatra, than you're using rails,

473
00:21:02.079 --> 00:21:04.519
<v Speaker 1>and like the class would always split almost fifty fifty.

474
00:21:04.559 --> 00:21:06.279
<v Speaker 1>Like half the people would be so thrilled to get

475
00:21:06.279 --> 00:21:08.400
<v Speaker 1>to rails. Stuff would just click for them. They would

476
00:21:08.440 --> 00:21:10.680
<v Speaker 1>be so productive, and then the other people would be

477
00:21:10.759 --> 00:21:12.680
<v Speaker 1>frankly kind of pissed because they wanted to know what

478
00:21:12.720 --> 00:21:15.480
<v Speaker 1>the heck was going on under the hood and weren't.

479
00:21:15.200 --> 00:21:17.519
<v Speaker 2>Comfortable or happy with all of these abstractions.

480
00:21:18.039 --> 00:21:20.480
<v Speaker 3>So, you know, the funny thing about that is one

481
00:21:20.519 --> 00:21:22.440
<v Speaker 3>of the best I think what saved me from that

482
00:21:22.480 --> 00:21:26.880
<v Speaker 3>specific thing was one I was lucky enough to take

483
00:21:27.039 --> 00:21:29.920
<v Speaker 3>the advanced Ruby class that they taught where I think

484
00:21:29.920 --> 00:21:32.519
<v Speaker 3>it was it was the pragxey. I think Dave might

485
00:21:32.519 --> 00:21:35.680
<v Speaker 3>have actually taught it, and he specifically talked about eigenclasses

486
00:21:35.680 --> 00:21:38.559
<v Speaker 3>and unpacking. So and I think the first version of

487
00:21:38.599 --> 00:21:41.680
<v Speaker 3>rails I use was point nine or point eight, it was.

488
00:21:41.880 --> 00:21:43.880
<v Speaker 3>It was not long after his brand new so you

489
00:21:43.960 --> 00:21:46.319
<v Speaker 3>had to understand how it worked because the stuff broke

490
00:21:46.359 --> 00:21:49.559
<v Speaker 3>all the time, right, Like, it had some really weird behaviors.

491
00:21:49.839 --> 00:21:52.400
<v Speaker 3>And we actually used to have this what we would

492
00:21:52.400 --> 00:21:55.519
<v Speaker 3>say is we want Ruby programmers, not rails programmers, And

493
00:21:55.599 --> 00:21:57.839
<v Speaker 3>the difference was whether or not you understood the abstractions.

494
00:21:58.000 --> 00:22:00.599
<v Speaker 3>And I think that's actually a different coach that people

495
00:22:00.640 --> 00:22:02.640
<v Speaker 3>take to learning things, And to me, that's the difference

496
00:22:02.640 --> 00:22:06.039
<v Speaker 3>between maybe being a craftsman just being a utilitarian, like

497
00:22:06.400 --> 00:22:08.559
<v Speaker 3>you need to understand those abstractions. And in fact, I

498
00:22:08.559 --> 00:22:10.839
<v Speaker 3>think somebody was mentioning something about, like, what would you

499
00:22:10.839 --> 00:22:13.640
<v Speaker 3>say about learning Elixir? What I wish I had done differently?

500
00:22:13.640 --> 00:22:16.359
<v Speaker 3>I think was one of the things we were talking about.

501
00:22:16.559 --> 00:22:19.519
<v Speaker 3>One of the things I always tell people is learn Elixir,

502
00:22:19.599 --> 00:22:22.720
<v Speaker 3>not Phoenix, right, because a lot of people get into

503
00:22:23.000 --> 00:22:25.759
<v Speaker 3>Ruby through rails, and so what they learn is rails,

504
00:22:25.799 --> 00:22:27.839
<v Speaker 3>and that's as deep as they go. And the problem

505
00:22:27.839 --> 00:22:29.720
<v Speaker 3>then becomes, if you ever give them a ruby esque

506
00:22:29.799 --> 00:22:32.480
<v Speaker 3>or Ruby center problem, they always see it through a

507
00:22:32.559 --> 00:22:36.440
<v Speaker 3>rail's lens, right, same thing with Elixir. I think it's

508
00:22:36.519 --> 00:22:40.799
<v Speaker 3>actually way it's far better to learn Elixer first, then

509
00:22:40.920 --> 00:22:43.400
<v Speaker 3>learn Phoenix, then learn Phoenix, and then try and figure

510
00:22:43.400 --> 00:22:46.319
<v Speaker 3>out what's going on, because if you learn Alixer, you

511
00:22:46.319 --> 00:22:49.519
<v Speaker 3>see Phoenix and you're like, well that makes perfect sense, right, Pipes,

512
00:22:49.839 --> 00:22:54.160
<v Speaker 3>got it? Composable, got it it. There's nothing magical here.

513
00:22:54.160 --> 00:22:56.680
<v Speaker 3>The abstractions are all just layered into this particular problem.

514
00:22:56.720 --> 00:22:58.680
<v Speaker 3>It's great, but if you only see Phoenix, like I've

515
00:22:58.720 --> 00:23:00.799
<v Speaker 3>done this with people. They want to build a web app,

516
00:23:00.799 --> 00:23:02.559
<v Speaker 3>they go for Phoenix, they get everything work, and they're like,

517
00:23:02.599 --> 00:23:05.000
<v Speaker 3>I have no idea what's going on here? Like why

518
00:23:05.000 --> 00:23:06.440
<v Speaker 3>do you keep returning this okay thing?

519
00:23:06.759 --> 00:23:08.440
<v Speaker 1>Like or I think what you'll do then, too, is

520
00:23:08.440 --> 00:23:11.799
<v Speaker 1>you'll draw a lot of false equivalencies between Phoenix and rails.

521
00:23:11.839 --> 00:23:13.480
<v Speaker 1>And I think that that's the thing that I did

522
00:23:13.519 --> 00:23:16.599
<v Speaker 1>a lot, and you know, a lot of the Elixa

523
00:23:16.640 --> 00:23:18.359
<v Speaker 1>that I wrote probably for like you know whatever. The

524
00:23:18.400 --> 00:23:20.480
<v Speaker 1>first year of my life is an electric Developer was

525
00:23:20.559 --> 00:23:22.559
<v Speaker 1>just a mess because I was just trying to write

526
00:23:22.599 --> 00:23:23.480
<v Speaker 1>Ruby and Elixir.

527
00:23:24.160 --> 00:23:25.480
<v Speaker 2>I think that's probably not uncommon.

528
00:23:25.839 --> 00:23:28.200
<v Speaker 3>I really agree with you on that one. Like I

529
00:23:28.240 --> 00:23:29.880
<v Speaker 3>remember I said the same thing because when I moved

530
00:23:29.920 --> 00:23:31.640
<v Speaker 3>to C plus plus from C, I always said that

531
00:23:31.759 --> 00:23:34.319
<v Speaker 3>C programmers make the worst C plus plus programmers because

532
00:23:34.319 --> 00:23:37.759
<v Speaker 3>you're writing C and C plus plus. And the strange

533
00:23:37.759 --> 00:23:39.920
<v Speaker 3>thing is Elixer has both the blessing and the curse

534
00:23:39.960 --> 00:23:42.680
<v Speaker 3>of looking like Ruby. I have seen it. Like I

535
00:23:42.720 --> 00:23:45.960
<v Speaker 3>see people who are literally they're great rubyists. They get

536
00:23:45.960 --> 00:23:48.559
<v Speaker 3>into Elixir and like you look at the code and

537
00:23:48.559 --> 00:23:50.640
<v Speaker 3>you're like, you know that at variable doesn't do what

538
00:23:50.680 --> 00:23:53.720
<v Speaker 3>you think it does, Like that is not what you

539
00:23:53.759 --> 00:23:56.480
<v Speaker 3>think it is, right, And but you can see them

540
00:23:56.599 --> 00:23:58.920
<v Speaker 3>using it like it's a Ruby, like you know, a class,

541
00:23:58.920 --> 00:24:01.119
<v Speaker 3>a little variable and they're like, well, a class all available, right,

542
00:24:01.200 --> 00:24:03.519
<v Speaker 3>You're like, no, no, no, no.

543
00:24:03.559 --> 00:24:06.000
<v Speaker 4>It's really funny. I agree with both of you so much.

544
00:24:06.039 --> 00:24:09.759
<v Speaker 4>And what's funny is Sophie that that when I want

545
00:24:09.880 --> 00:24:12.960
<v Speaker 4>to learn to code things like an Elixir developer, would

546
00:24:13.000 --> 00:24:17.680
<v Speaker 4>I look for your articles? But anyway, neither here Northern.

547
00:24:18.319 --> 00:24:19.119
<v Speaker 5>So render.

548
00:24:19.160 --> 00:24:22.160
<v Speaker 4>One of the things that's that's cool about the pivot

549
00:24:22.160 --> 00:24:25.039
<v Speaker 4>that we made when you impactorate to that first class

550
00:24:25.039 --> 00:24:29.960
<v Speaker 4>of ours was that our OTP and Phoenix courses have

551
00:24:30.079 --> 00:24:34.240
<v Speaker 4>become a looser courses with a little OTP and Phoenix

552
00:24:34.279 --> 00:24:34.599
<v Speaker 4>mixed in.

553
00:24:34.880 --> 00:24:35.039
<v Speaker 5>Right.

554
00:24:35.559 --> 00:24:38.279
<v Speaker 4>It's that you know, we we we teach this model

555
00:24:38.599 --> 00:24:42.839
<v Speaker 4>of you know, constructor reducer transformer that I think that

556
00:24:42.880 --> 00:24:45.559
<v Speaker 4>we started to talk about in your class, but since

557
00:24:45.880 --> 00:24:50.079
<v Speaker 4>essence has become stronger, and we also teach this concept

558
00:24:50.200 --> 00:24:53.200
<v Speaker 4>of pipelind and with land and how to get between them.

559
00:24:53.559 --> 00:24:56.440
<v Speaker 4>But we also try to teach the concepts of how

560
00:24:56.480 --> 00:24:59.599
<v Speaker 4>do you learn, where do you find things like how

561
00:24:59.599 --> 00:25:01.839
<v Speaker 4>do you find to the callbacks or behavior?

562
00:25:02.240 --> 00:25:03.279
<v Speaker 5>What is a behavior?

563
00:25:03.559 --> 00:25:06.839
<v Speaker 4>All those kinds of things really really matter when when

564
00:25:06.920 --> 00:25:08.319
<v Speaker 4>you're taking the next step.

565
00:25:08.480 --> 00:25:10.240
<v Speaker 3>She didn't even think about that. That's the other thing

566
00:25:10.240 --> 00:25:12.640
<v Speaker 3>that's really great about Alixir is the documentation is amazing.

567
00:25:12.839 --> 00:25:16.519
<v Speaker 4>Yeah, right, and that the documentation actually bleeds through all

568
00:25:16.559 --> 00:25:20.079
<v Speaker 4>the way from the documents on hex to the documents

569
00:25:20.119 --> 00:25:23.839
<v Speaker 4>on the individual page for the project to on get

570
00:25:23.960 --> 00:25:27.119
<v Speaker 4>up to the documentation and I e X and all

571
00:25:27.119 --> 00:25:30.160
<v Speaker 4>you have to do is using to bring it all

572
00:25:30.160 --> 00:25:31.480
<v Speaker 4>in and make it all available.

573
00:25:31.799 --> 00:25:33.279
<v Speaker 3>Yeah. In fact, actually I think in one of your

574
00:25:33.279 --> 00:25:35.920
<v Speaker 3>other podcasts, you guys mentioned something like the you were

575
00:25:35.920 --> 00:25:39.160
<v Speaker 3>talking about Don't Fear er Lang whose podcast was that.

576
00:25:39.400 --> 00:25:43.920
<v Speaker 2>We've definitely had that conversation here. Yeah, it's Ton Yeah.

577
00:25:44.000 --> 00:25:44.240
<v Speaker 5>Yeah.

578
00:25:44.240 --> 00:25:45.880
<v Speaker 3>So by the way, I totally met him for the

579
00:25:45.880 --> 00:25:48.279
<v Speaker 3>first time at a lone Star.

580
00:25:48.640 --> 00:25:49.720
<v Speaker 2>Yeah.

581
00:25:49.839 --> 00:25:52.279
<v Speaker 3>Yeah, actually, we totally We've got a chance to hang out.

582
00:25:52.279 --> 00:25:54.200
<v Speaker 3>I had no idea of like and like we just

583
00:25:54.240 --> 00:25:55.799
<v Speaker 3>met it. We just started talking mostly about food.

584
00:25:55.880 --> 00:25:59.319
<v Speaker 4>Actually, he has the biggest surfer vibe of anybody I've

585
00:25:59.319 --> 00:25:59.759
<v Speaker 4>ever met.

586
00:25:59.799 --> 00:25:59.960
<v Speaker 5>You know.

587
00:26:00.200 --> 00:26:02.559
<v Speaker 3>Yeah, no, he's a great guy. But I actually I

588
00:26:02.559 --> 00:26:06.000
<v Speaker 3>had heard his podcast on your podcast, his talking on

589
00:26:06.000 --> 00:26:08.039
<v Speaker 3>your podcast, and it was really funny because I think

590
00:26:08.039 --> 00:26:09.920
<v Speaker 3>we had some of the same stuff, like sasag Jerk's

591
00:26:09.920 --> 00:26:13.039
<v Speaker 3>talk on the soul of the Elixric ecosystem. I actually

592
00:26:13.039 --> 00:26:14.519
<v Speaker 3>just sent that to somebody. People were like, well, why

593
00:26:14.559 --> 00:26:16.039
<v Speaker 3>would you care? Like, why should I care about this?

594
00:26:16.079 --> 00:26:18.799
<v Speaker 3>I'm like, go, go watch this. If it resonates, come

595
00:26:19.039 --> 00:26:21.359
<v Speaker 3>If it doesn't, well, by all means, keep keep doing

596
00:26:21.400 --> 00:26:21.839
<v Speaker 3>what you're doing.

597
00:26:22.000 --> 00:26:24.839
<v Speaker 5>Yeah, that's definitely the best introductory video. If anybody wants

598
00:26:24.880 --> 00:26:27.200
<v Speaker 5>to know what the beam is and the value proposition,

599
00:26:27.440 --> 00:26:29.319
<v Speaker 5>send them that video. And if they're not convinced, then

600
00:26:29.880 --> 00:26:32.039
<v Speaker 5>in an hour of listening to Sasha, then it's not

601
00:26:32.079 --> 00:26:32.400
<v Speaker 5>for them.

602
00:26:32.680 --> 00:26:34.480
<v Speaker 3>Yeah. Well, you know. One of the other funny things

603
00:26:34.519 --> 00:26:36.480
<v Speaker 3>is so I had this conversation with somebody else the

604
00:26:36.519 --> 00:26:39.240
<v Speaker 3>other day because we were talking about JavaScript's easy to

605
00:26:39.279 --> 00:26:42.079
<v Speaker 3>pick on listen, like all tools have their both pluses

606
00:26:42.079 --> 00:26:45.079
<v Speaker 3>and minuses. But what I was saying is they argument.

607
00:26:45.119 --> 00:26:47.559
<v Speaker 3>He's like, listen, javascripts got ubiquity, all these other things,

608
00:26:47.599 --> 00:26:49.680
<v Speaker 3>and I said, listen, you don't write JavaScript. And he's like, well,

609
00:26:49.720 --> 00:26:51.759
<v Speaker 3>what do you mean. I'm like, okay, I'm going to

610
00:26:51.839 --> 00:26:54.000
<v Speaker 3>go in and to take your babble canfig and I'm

611
00:26:54.039 --> 00:26:55.839
<v Speaker 3>just going to start deleting some stuff. Tell me whether

612
00:26:55.920 --> 00:26:57.720
<v Speaker 3>or not this is going to work right. And I

613
00:26:57.720 --> 00:26:59.640
<v Speaker 3>think one of the things that nobody realizes is that

614
00:26:59.680 --> 00:27:02.400
<v Speaker 3>none of of us actually write the languages we think

615
00:27:02.440 --> 00:27:06.160
<v Speaker 3>we write. We're writing like Elixer runs on the beam right,

616
00:27:06.720 --> 00:27:09.519
<v Speaker 3>it uses Erling libraries, it uses a whole bunch of

617
00:27:09.519 --> 00:27:13.160
<v Speaker 3>other things. Java Closure, they run on JVM. Well, which

618
00:27:13.240 --> 00:27:16.799
<v Speaker 3>JVM the hot spot? Like the abstractions between us and

619
00:27:16.839 --> 00:27:18.960
<v Speaker 3>the hardware and what we're really doing in the libraries

620
00:27:19.000 --> 00:27:21.920
<v Speaker 3>we're all calling. It's actually one of the things which

621
00:27:21.960 --> 00:27:24.039
<v Speaker 3>which drives me nuts is that nobody really tries to

622
00:27:24.119 --> 00:27:26.960
<v Speaker 3>understand how many abstractions they're getting in between them and

623
00:27:27.000 --> 00:27:30.400
<v Speaker 3>their solution. Same thing with JavaScript. You don't actually write jobscript.

624
00:27:30.480 --> 00:27:33.119
<v Speaker 3>You write yes six, or you write yes six with reducers,

625
00:27:33.160 --> 00:27:35.359
<v Speaker 3>or are you write I don't know. I'm a terrible

626
00:27:35.440 --> 00:27:38.119
<v Speaker 3>JavaScript programmer, but I've tried. I've struggled for hours with

627
00:27:38.160 --> 00:27:40.519
<v Speaker 3>my babble jskinfigs and all the other stuff to try

628
00:27:40.519 --> 00:27:42.680
<v Speaker 3>and get something to compile right because I had the

629
00:27:42.720 --> 00:27:46.079
<v Speaker 3>wrong type of aerofunction selected right. And it's one of

630
00:27:46.079 --> 00:27:49.240
<v Speaker 3>the things I really like about the entire Arling, Elixir

631
00:27:49.319 --> 00:27:52.559
<v Speaker 3>and Beam ecosystem is that it makes very transparent at

632
00:27:52.559 --> 00:27:55.759
<v Speaker 3>what level you're operating, whereas almost everybody else they tries

633
00:27:55.799 --> 00:27:58.440
<v Speaker 3>to obfuscate it. Well even see nobody uses C anymore,

634
00:27:58.559 --> 00:28:02.400
<v Speaker 3>use klangor LVM right, like your SE code really doesn't.

635
00:28:02.440 --> 00:28:05.279
<v Speaker 3>Actually the most instances compile straight down anymore, not in

636
00:28:05.279 --> 00:28:06.079
<v Speaker 3>the way you think it does.

637
00:28:06.319 --> 00:28:08.640
<v Speaker 5>Yeah, I've definitely seen that issue of JavaScript. I was

638
00:28:08.759 --> 00:28:11.200
<v Speaker 5>helping somebody during the consultancy and then we're using a

639
00:28:11.279 --> 00:28:14.720
<v Speaker 5>Sinkle eight in some AWS lambda, and somewhere deep in

640
00:28:14.799 --> 00:28:17.119
<v Speaker 5>the AWS doctor it's like, you can't use a Sinkle eight.

641
00:28:17.160 --> 00:28:19.839
<v Speaker 5>It may work, but you know, the lambda may terminate

642
00:28:19.839 --> 00:28:21.640
<v Speaker 5>because the event looke doesn't know that it's still busy

643
00:28:21.720 --> 00:28:23.240
<v Speaker 5>or something like that. So you so then we went

644
00:28:23.279 --> 00:28:25.160
<v Speaker 5>through and switched everything over to promises and then all

645
00:28:25.160 --> 00:28:27.720
<v Speaker 5>of a sudden the thing just worked. So, yeah, JavaScript

646
00:28:27.839 --> 00:28:30.359
<v Speaker 5>does not equal JavaScript at the time.

647
00:28:30.799 --> 00:28:33.559
<v Speaker 4>Yeah, I've got Joe Armstrong's voice in my head. Saying

648
00:28:34.319 --> 00:28:37.759
<v Speaker 4>run to completion semantics. That's madness.

649
00:28:38.400 --> 00:28:42.000
<v Speaker 3>Yeah, right, Like, well, so you know what, it's the

650
00:28:42.079 --> 00:28:44.559
<v Speaker 3>other thing that's really interesting, just language wise. My big

651
00:28:44.680 --> 00:28:47.880
<v Speaker 3>kick these days is is Haskell, and I blame Actually

652
00:28:47.920 --> 00:28:50.759
<v Speaker 3>I bring Bruce because he introduced me to Brooklyn Sealinka,

653
00:28:51.400 --> 00:28:53.880
<v Speaker 3>and I now know that she's actually a word of

654
00:28:53.960 --> 00:28:56.240
<v Speaker 3>magnitude smarter than i'll ever be. And so if she's

655
00:28:56.240 --> 00:28:59.319
<v Speaker 3>doing Haskell, then it's it's upon me to incumbent upon

656
00:28:59.359 --> 00:29:01.680
<v Speaker 3>me to learn half of what she knows about Askell.

657
00:29:02.160 --> 00:29:04.640
<v Speaker 3>And the Hascal people are right. Being a terrible Haskell

658
00:29:04.680 --> 00:29:08.519
<v Speaker 3>programmer has made me a much better everything else programmer. Right, So,

659
00:29:08.960 --> 00:29:11.440
<v Speaker 3>and what's interesting to me is that you want to

660
00:29:11.440 --> 00:29:14.039
<v Speaker 3>talk about some people who embracem mutability in terms of

661
00:29:14.079 --> 00:29:16.519
<v Speaker 3>what your language is going to do, like your prelude,

662
00:29:16.960 --> 00:29:19.160
<v Speaker 3>like the idea. It's like no, no, no, no, sorry,

663
00:29:19.480 --> 00:29:21.640
<v Speaker 3>let's start. It's not a pre compiler. You tell me

664
00:29:21.680 --> 00:29:24.119
<v Speaker 3>what this language should be doing, right now, go ahead,

665
00:29:24.279 --> 00:29:26.799
<v Speaker 3>Like it's it's kind of crazy how flexible Ascal is.

666
00:29:27.279 --> 00:29:30.599
<v Speaker 4>Yeah, I have another thing in common with you, Randall

667
00:29:30.720 --> 00:29:32.880
<v Speaker 4>that I am a terrible Hassal programmer.

668
00:29:33.160 --> 00:29:36.440
<v Speaker 3>Well, I highly recommend everybody should struggle with some Askell though,

669
00:29:37.079 --> 00:29:39.720
<v Speaker 3>because you want to talk about some magic and some

670
00:29:39.920 --> 00:29:42.319
<v Speaker 3>just understanding of what raw computation looks like.

671
00:29:42.440 --> 00:29:46.960
<v Speaker 4>Yeah, I mean, it's the foundation for everything that's important

672
00:29:46.960 --> 00:29:49.160
<v Speaker 4>to the list our community, right. So even some of

673
00:29:49.200 --> 00:29:51.279
<v Speaker 4>the things that we're doing with types, some of the

674
00:29:51.319 --> 00:29:54.599
<v Speaker 4>things that we're doing that we've always done with strains,

675
00:29:54.640 --> 00:29:57.599
<v Speaker 4>they're all kind of based on the erity models. Some

676
00:29:57.640 --> 00:29:59.119
<v Speaker 4>of the things that we want to get into with

677
00:29:59.160 --> 00:30:01.720
<v Speaker 4>property based test thing, some of the things that we

678
00:30:01.799 --> 00:30:05.680
<v Speaker 4>do with for example, the formatter. Jose did this this

679
00:30:05.799 --> 00:30:08.319
<v Speaker 4>talk I think three or four years ago called John

680
00:30:08.400 --> 00:30:11.759
<v Speaker 4>Hughes Driven Development, which was cool because at that time

681
00:30:12.079 --> 00:30:16.319
<v Speaker 4>we had John Hughes at gig City Electure, and you know,

682
00:30:16.359 --> 00:30:18.559
<v Speaker 4>it was just a whole lot of fun talking to

683
00:30:18.640 --> 00:30:22.440
<v Speaker 4>him about how his inventions in the language, and he'd

684
00:30:22.480 --> 00:30:25.000
<v Speaker 4>never cold it before at the time, are making such

685
00:30:25.039 --> 00:30:27.480
<v Speaker 4>a such a hard impact on it. I mean, it

686
00:30:27.519 --> 00:30:28.640
<v Speaker 4>was just beaming the whole time.

687
00:30:28.799 --> 00:30:31.519
<v Speaker 5>So, while this is an Elixir podcast, what Haskell learning

688
00:30:31.519 --> 00:30:32.799
<v Speaker 5>resources would you recommend?

689
00:30:33.240 --> 00:30:33.400
<v Speaker 2>So?

690
00:30:33.640 --> 00:30:36.799
<v Speaker 3>I like the Haskell book, like Haskell from first Principles.

691
00:30:36.799 --> 00:30:38.880
<v Speaker 3>I think it's called it's the Purple Book. Whatever, that's

692
00:30:38.920 --> 00:30:43.599
<v Speaker 3>out there. That's a really good one. There is another thing, gosh,

693
00:30:43.680 --> 00:30:45.279
<v Speaker 3>what was called things I wish I had known when

694
00:30:45.319 --> 00:30:48.759
<v Speaker 3>I was learning Haskell. I can't remember who wrote it.

695
00:30:49.079 --> 00:30:50.640
<v Speaker 3>I've got it. I'm sure I have a link to

696
00:30:50.599 --> 00:30:52.400
<v Speaker 3>it somewhere, because I have a running list of an

697
00:30:52.480 --> 00:30:55.279
<v Speaker 3>org file of just Haskell resources. But what it talks

698
00:30:55.319 --> 00:30:58.200
<v Speaker 3>about is it? You mean, Haskell is kind of like

699
00:30:58.240 --> 00:30:59.960
<v Speaker 3>what Elixir could have been had there not been a

700
00:31:00.039 --> 00:31:02.880
<v Speaker 3>good community. And it's not a dang against the Hascalo community.

701
00:31:02.880 --> 00:31:04.880
<v Speaker 3>It's just that the haspical community, like, depending on how

702
00:31:04.920 --> 00:31:07.519
<v Speaker 3>you get into it, it might kick you immediately out

703
00:31:07.559 --> 00:31:10.000
<v Speaker 3>of it. Like there are plenty of posts where it's like, oh, well,

704
00:31:10.079 --> 00:31:12.799
<v Speaker 3>let's start with some category theory, right, which is which

705
00:31:12.880 --> 00:31:16.920
<v Speaker 3>is kind of like imagine if if you came into Erlang,

706
00:31:17.039 --> 00:31:20.079
<v Speaker 3>or you came into the luxury ecosystem and somebody said, oh, yeah,

707
00:31:20.119 --> 00:31:22.880
<v Speaker 3>that's really great, so let's talk about applicative functors and

708
00:31:23.039 --> 00:31:25.880
<v Speaker 3>basic functional like do you know do you know what

709
00:31:25.960 --> 00:31:27.720
<v Speaker 3>a calculus is? Do you know what a lamb to

710
00:31:27.759 --> 00:31:30.359
<v Speaker 3>calculus is? No, Okay, we're going to start with some proofs, right.

711
00:31:30.680 --> 00:31:34.160
<v Speaker 3>That's probably not why they came there. It might be

712
00:31:34.200 --> 00:31:35.880
<v Speaker 3>what they need to know, but that's not necessarily what

713
00:31:35.880 --> 00:31:37.359
<v Speaker 3>you want to hit him over the head with initially,

714
00:31:37.759 --> 00:31:40.839
<v Speaker 3>But that one broke down like all this sort of

715
00:31:40.960 --> 00:31:42.839
<v Speaker 3>history that you need to know to sort of get through,

716
00:31:42.920 --> 00:31:45.119
<v Speaker 3>like why is their stack? Why is their cabal? Like

717
00:31:45.400 --> 00:31:48.119
<v Speaker 3>what's the split between the two? Why are there two configurations?

718
00:31:48.160 --> 00:31:50.759
<v Speaker 3>Like what's this next thing everybody's talking about? Like there's

719
00:31:50.799 --> 00:31:52.640
<v Speaker 3>a lot of history there also some stuff what you

720
00:31:52.680 --> 00:31:54.319
<v Speaker 3>need to worry about, what you don't need to worry about.

721
00:31:54.480 --> 00:31:56.880
<v Speaker 3>We're sure to remember that Stephen Dall maybe was the

722
00:31:56.880 --> 00:32:01.039
<v Speaker 3>guy who wrote it. Maybe, But I'll do a burrito blog. Yeah, yeah,

723
00:32:01.039 --> 00:32:04.000
<v Speaker 3>that's it. Yeah, that's I think that's that's it. So

724
00:32:04.279 --> 00:32:06.440
<v Speaker 3>those are kind of my two. The other one is

725
00:32:07.279 --> 00:32:10.200
<v Speaker 3>like the look up the LSP, like, figure out how

726
00:32:10.240 --> 00:32:13.480
<v Speaker 3>to support Haskel inside whever your favorite editor is EMAX,

727
00:32:13.680 --> 00:32:17.240
<v Speaker 3>I mean, but aside from that, you know, figure out

728
00:32:17.240 --> 00:32:19.559
<v Speaker 3>some good language support for and then just start typing it.

729
00:32:19.599 --> 00:32:23.680
<v Speaker 3>And also there's the gosh, man, i'd actually have to

730
00:32:23.720 --> 00:32:25.519
<v Speaker 3>go actually go like dig up my actual list of

731
00:32:25.559 --> 00:32:28.240
<v Speaker 3>Pascal resources and tell you what it was. But those

732
00:32:28.240 --> 00:32:30.160
<v Speaker 3>were the actually I started with a Haskell book is

733
00:32:30.200 --> 00:32:32.160
<v Speaker 3>what I did because actually that's what Brooklyn told me

734
00:32:32.200 --> 00:32:33.240
<v Speaker 3>to do, right, gotcha.

735
00:32:33.640 --> 00:32:37.000
<v Speaker 5>So after embarking on this Haskell journey, what your kind

736
00:32:37.039 --> 00:32:39.119
<v Speaker 5>of learnings that you bring back to your Eleixtra code

737
00:32:39.279 --> 00:32:42.440
<v Speaker 5>and how did your your style and way of approaching

738
00:32:42.440 --> 00:32:44.039
<v Speaker 5>problems and elixtur change, if at all?

739
00:32:44.519 --> 00:32:47.400
<v Speaker 3>Actually so a couple of things. One, I stopped getting

740
00:32:47.400 --> 00:32:50.519
<v Speaker 3>fancy and I simplified a lot of things too. What

741
00:32:50.559 --> 00:32:53.119
<v Speaker 3>it made me appreciate was how a lookser is the same,

742
00:32:53.160 --> 00:32:55.799
<v Speaker 3>but how it's different. I'm actually much happier doing recursive

743
00:32:55.839 --> 00:32:58.759
<v Speaker 3>and recursion now, Like I'm much more likely to reach

744
00:32:58.799 --> 00:33:02.279
<v Speaker 3>for a recursive style or a rehearsal style of a solution,

745
00:33:02.559 --> 00:33:05.759
<v Speaker 3>and also a mentautic composition and state passing composition, Like

746
00:33:05.759 --> 00:33:07.279
<v Speaker 3>there are couple of patterns that I steal all the

747
00:33:07.279 --> 00:33:10.160
<v Speaker 3>time now, like pass state along with that. Before I

748
00:33:10.200 --> 00:33:12.160
<v Speaker 3>didn't realize that's exactly what you were doing in Eluxra,

749
00:33:12.200 --> 00:33:15.200
<v Speaker 3>But now to me it's explicit as opposed to being implicit. Yeah.

750
00:33:15.240 --> 00:33:18.680
<v Speaker 3>So mostly I think Haskell is the definition of just

751
00:33:18.720 --> 00:33:21.440
<v Speaker 3>because you can doesn't mean you should. Right, you can

752
00:33:22.079 --> 00:33:25.000
<v Speaker 3>by all means it won't stop you, but be careful,

753
00:33:25.119 --> 00:33:26.839
<v Speaker 3>you might be just taking him at your big toe

754
00:33:27.079 --> 00:33:30.519
<v Speaker 3>with a very very very large shotgun. So yeah, So mostly,

755
00:33:30.680 --> 00:33:34.319
<v Speaker 3>like I said, I think what it made me understand

756
00:33:34.359 --> 00:33:37.599
<v Speaker 3>is which abstractions I'm using and be much more I guess,

757
00:33:37.599 --> 00:33:41.440
<v Speaker 3>for I'm much more explicit about the abstractions that I'm

758
00:33:41.480 --> 00:33:44.440
<v Speaker 3>choosing at each level now than whereas before I'm like, oh, yeah,

759
00:33:44.480 --> 00:33:46.519
<v Speaker 3>we do this because that's what alexa cod is supposed

760
00:33:46.559 --> 00:33:49.039
<v Speaker 3>to look like, Versus now I'm thinking, oh, this is

761
00:33:49.039 --> 00:33:51.440
<v Speaker 3>what it's supposed to do. It's still a terrible Hascal

762
00:33:51.440 --> 00:33:53.319
<v Speaker 3>programmer though, like terrible.

763
00:33:53.519 --> 00:33:57.000
<v Speaker 5>Yeah, it's a programming language, of course in graduate school

764
00:33:57.000 --> 00:33:59.720
<v Speaker 5>and we did a hash Schull lisp in prologue and

765
00:34:00.000 --> 00:34:02.400
<v Speaker 5>at that point it's like, I'm never doing functional programming ever. Again,

766
00:34:02.440 --> 00:34:05.079
<v Speaker 5>I don't see the utility at all. And like five

767
00:34:05.160 --> 00:34:07.240
<v Speaker 5>years later I went all in on a Likster. So

768
00:34:07.319 --> 00:34:09.760
<v Speaker 5>I my foot in my mouth five years ago. But yeah,

769
00:34:09.760 --> 00:34:11.599
<v Speaker 5>it was, it was definitely interesting. I'm sure if I

770
00:34:11.599 --> 00:34:13.480
<v Speaker 5>picked it up again today, I'd be just as terrible

771
00:34:13.480 --> 00:34:15.719
<v Speaker 5>at Haskell as I was, you know, ten years ago.

772
00:34:16.239 --> 00:34:18.760
<v Speaker 3>So to be full credit to the Haskell community, they're

773
00:34:18.760 --> 00:34:21.639
<v Speaker 3>doing a much better job about being more welcoming. Oh

774
00:34:21.719 --> 00:34:25.639
<v Speaker 3>also exorcism. Exorcism has a great Haskell like exercises that

775
00:34:25.719 --> 00:34:27.280
<v Speaker 3>you can go look at and they actually have people

776
00:34:27.280 --> 00:34:29.960
<v Speaker 3>who give you feedback on your Haskell and it's cool

777
00:34:30.000 --> 00:34:33.480
<v Speaker 3>to see this other solutions from different styles, from people

778
00:34:33.559 --> 00:34:35.840
<v Speaker 3>who are kind of new to Haskell, like your solutions,

779
00:34:35.840 --> 00:34:37.119
<v Speaker 3>and people who have been working with haske for a

780
00:34:37.159 --> 00:34:39.239
<v Speaker 3>little bit, and then some other person who's like, yes,

781
00:34:39.400 --> 00:34:43.119
<v Speaker 3>I did this in exactly three characters, right, like there

782
00:34:43.400 --> 00:34:45.320
<v Speaker 3>is you can see sort of see the expressiveness of

783
00:34:45.360 --> 00:34:47.599
<v Speaker 3>the language. And that's actually I don't know, I'm kind

784
00:34:47.639 --> 00:34:49.639
<v Speaker 3>of a language nerd, so I like, like we were

785
00:34:49.639 --> 00:34:53.360
<v Speaker 3>early on diclosure at Thunderbolt Labs, we were early adopters

786
00:34:53.360 --> 00:34:56.440
<v Speaker 3>of closure. We went to the first college, and I

787
00:34:56.440 --> 00:34:59.880
<v Speaker 3>think closure had some similar problems with that. It's incredibly powerful,

788
00:35:00.320 --> 00:35:01.800
<v Speaker 3>but in the hands of people who know how to

789
00:35:01.880 --> 00:35:03.639
<v Speaker 3>use it, and there's not a lot of stuff to

790
00:35:03.679 --> 00:35:07.000
<v Speaker 3>get you from here's a lisp to here's being really

791
00:35:07.039 --> 00:35:09.880
<v Speaker 3>good with a lisp. Speaking of random weird language things,

792
00:35:10.119 --> 00:35:11.760
<v Speaker 3>let over lambda. If you ever just want to see

793
00:35:11.920 --> 00:35:13.400
<v Speaker 3>I know a lot of people don't write lisp, but

794
00:35:13.400 --> 00:35:14.880
<v Speaker 3>if you ever just want to see a book to

795
00:35:15.000 --> 00:35:17.519
<v Speaker 3>see where a lisp can take you. There is this

796
00:35:17.559 --> 00:35:19.880
<v Speaker 3>book called let over Lambda. I think you can only

797
00:35:19.880 --> 00:35:23.239
<v Speaker 3>get as like a epub or like a PDF download.

798
00:35:23.280 --> 00:35:25.679
<v Speaker 3>Maybe there's a print version two. I think actually, as

799
00:35:25.719 --> 00:35:28.679
<v Speaker 3>a functional programmer, it's just great to read what other

800
00:35:28.760 --> 00:35:32.760
<v Speaker 3>people who hit the advanced end of a language can do.

801
00:35:33.440 --> 00:35:37.559
<v Speaker 3>And specifically let over lambda is working on. He does

802
00:35:37.559 --> 00:35:40.239
<v Speaker 3>a lot of macros and list style macros. One of

803
00:35:40.280 --> 00:35:42.159
<v Speaker 3>the things I think that's underappreciated. I would like to

804
00:35:42.199 --> 00:35:44.039
<v Speaker 3>learn more about it, and I never really use it

805
00:35:44.079 --> 00:35:47.039
<v Speaker 3>is the macro facilities inside of Alixir, right, I'm always

806
00:35:47.039 --> 00:35:49.800
<v Speaker 3>looking for something to really do with it. But macros

807
00:35:49.800 --> 00:35:52.599
<v Speaker 3>are incredibly powerful, and a lett of over lambda was

808
00:35:52.599 --> 00:35:54.039
<v Speaker 3>one of those things where I saw it and I'm

809
00:35:54.079 --> 00:35:55.960
<v Speaker 3>just like, I got about fifty percent of what you're

810
00:35:55.960 --> 00:36:01.159
<v Speaker 3>writing here, But man, that looks just ridiculously overpowered to

811
00:36:01.320 --> 00:36:04.840
<v Speaker 3>be like, how do you manage to do this cool stuff?

812
00:36:05.159 --> 00:36:05.280
<v Speaker 2>Oh?

813
00:36:05.320 --> 00:36:07.760
<v Speaker 3>Also, I had learned racket last year too, which was

814
00:36:07.840 --> 00:36:09.760
<v Speaker 3>kind of cool, like looking at schemes, but.

815
00:36:10.280 --> 00:36:12.360
<v Speaker 5>That's pretty cool. Yeah, I'm on my second take of

816
00:36:12.519 --> 00:36:15.679
<v Speaker 5>Christmas Chord's book Metaprogramming and Elixir. I'll figure out one

817
00:36:15.719 --> 00:36:18.920
<v Speaker 5>of these days and I'll build right macros correctly.

818
00:36:19.360 --> 00:36:22.519
<v Speaker 3>Yeah, it's a different level of reasoning. They're right string

819
00:36:22.559 --> 00:36:24.000
<v Speaker 3>interpolation for code.

820
00:36:24.360 --> 00:36:25.800
<v Speaker 5>So if you can go back in time and give

821
00:36:25.840 --> 00:36:29.239
<v Speaker 5>yourself some advice as you embark on the selector journey,

822
00:36:29.559 --> 00:36:32.559
<v Speaker 5>would what would some of those tidbits be aside from

823
00:36:32.559 --> 00:36:34.960
<v Speaker 5>this isn't Ruby, don't treat like this Ruby.

824
00:36:34.679 --> 00:36:38.519
<v Speaker 3>That would be one of the first ones actually find people, right,

825
00:36:38.880 --> 00:36:40.800
<v Speaker 3>it's really weird. One of the things I think about.

826
00:36:41.239 --> 00:36:42.800
<v Speaker 3>One of the things I think worked for Ruby and

827
00:36:42.840 --> 00:36:45.320
<v Speaker 3>specifically where else they're different things, but I mean is

828
00:36:45.360 --> 00:36:46.840
<v Speaker 3>that they had a community of people who are always

829
00:36:46.840 --> 00:36:48.679
<v Speaker 3>willing to help. I think the community aspect of the

830
00:36:48.760 --> 00:36:51.719
<v Speaker 3>language is really underrated. So find other people who are

831
00:36:51.719 --> 00:36:53.239
<v Speaker 3>in a Elixir, who are kind of in that same boat,

832
00:36:53.440 --> 00:36:56.119
<v Speaker 3>and collectively start learning with them. That would be one

833
00:36:56.280 --> 00:37:00.559
<v Speaker 3>to learn Elixir before learning other things first. Right, Oh,

834
00:37:00.719 --> 00:37:03.800
<v Speaker 3>I think somewhere on the Elixir I think you or

835
00:37:03.800 --> 00:37:06.239
<v Speaker 3>someplace maybe on the Elixir lang website it says, don't

836
00:37:06.280 --> 00:37:09.880
<v Speaker 3>ask how do I What was it said? Don't ask

837
00:37:09.880 --> 00:37:12.360
<v Speaker 3>how do you do X? An elixir ask? How would

838
00:37:12.400 --> 00:37:15.840
<v Speaker 3>I solve why? In Alixir? Like the idea of don't

839
00:37:15.880 --> 00:37:18.400
<v Speaker 3>just translate the idioms from whatever languages you already know

840
00:37:19.039 --> 00:37:21.880
<v Speaker 3>into elixir. Actually go back and learn from first principles

841
00:37:21.880 --> 00:37:23.800
<v Speaker 3>what's going on. That's actually one of the things I

842
00:37:23.800 --> 00:37:26.039
<v Speaker 3>really like about the Dave Thomas book is that it

843
00:37:26.199 --> 00:37:30.480
<v Speaker 3>kind of abandons some of the oh look, look, here's

844
00:37:30.519 --> 00:37:32.880
<v Speaker 3>hello world, Look here's a forur loop. Like if you

845
00:37:32.920 --> 00:37:34.440
<v Speaker 3>think about it. I don't know about you, but for

846
00:37:34.480 --> 00:37:37.159
<v Speaker 3>the past twenty years whatever, like our programming books have

847
00:37:37.159 --> 00:37:39.679
<v Speaker 3>pretty much been exactly the same, right because we all

848
00:37:39.719 --> 00:37:44.400
<v Speaker 3>have some sort of c art style functional like programming background,

849
00:37:44.480 --> 00:37:46.599
<v Speaker 3>so they'll pretty much look the same. They teach you

850
00:37:46.599 --> 00:37:48.320
<v Speaker 3>the same construct so you're really trying to do if

851
00:37:48.320 --> 00:37:51.519
<v Speaker 3>you're trying to figure out, like, oh, what's the equivalent

852
00:37:51.519 --> 00:37:54.440
<v Speaker 3>of a four loop and go got it? Like, what's

853
00:37:54.480 --> 00:37:57.719
<v Speaker 3>the equivalent of a if then else in c sharp

854
00:37:58.400 --> 00:38:00.960
<v Speaker 3>got it right? So I would say, actually learn it

855
00:38:00.960 --> 00:38:04.920
<v Speaker 3>from first principles. So strangely enough, you know, shameless plug.

856
00:38:04.960 --> 00:38:06.639
<v Speaker 3>I did give a talk on how to learn an

857
00:38:06.639 --> 00:38:11.119
<v Speaker 3>Elixir at Alexakoff and Codebeam. And the other one is

858
00:38:11.199 --> 00:38:14.280
<v Speaker 3>I think take time because you're building up new cognitive structures.

859
00:38:14.320 --> 00:38:16.440
<v Speaker 3>I think people a lot of time. Do not realize

860
00:38:16.719 --> 00:38:19.000
<v Speaker 3>how much work it takes to get your brain to

861
00:38:19.039 --> 00:38:22.039
<v Speaker 3>start thinking functionally? Right, there is a lot there that

862
00:38:22.079 --> 00:38:23.639
<v Speaker 3>you have to unlearn.

863
00:38:23.760 --> 00:38:31.679
<v Speaker 4>Syntax, concurrency, distribution, blackros. Yeah, so that's a lot, right.

864
00:38:32.079 --> 00:38:34.639
<v Speaker 3>It's interesting. I'm going to give another shameless plug for Bruce.

865
00:38:34.960 --> 00:38:37.480
<v Speaker 3>I generally speaking, I recommend that they read the Elixir book,

866
00:38:37.639 --> 00:38:40.440
<v Speaker 3>and then, strangely, before they read the Phoenix book, I

867
00:38:40.480 --> 00:38:44.760
<v Speaker 3>recommend that they read Designing Systems and Elixir from Bruce's

868
00:38:44.760 --> 00:38:48.559
<v Speaker 3>book because it teaches you the part of the problem

869
00:38:48.599 --> 00:38:50.960
<v Speaker 3>is if you're functioning like no pun intended, a function

870
00:38:51.039 --> 00:38:54.119
<v Speaker 3>sort of professional programmer, you normally have something you got

871
00:38:54.159 --> 00:38:56.400
<v Speaker 3>to do for your day job. Like it's not most

872
00:38:56.400 --> 00:38:58.320
<v Speaker 3>of us don't just have the luxury of learning a

873
00:38:58.400 --> 00:39:02.400
<v Speaker 3>language for no applicative also no pun intended reason. So

874
00:39:03.000 --> 00:39:04.960
<v Speaker 3>you need to know how you build up an electure

875
00:39:04.960 --> 00:39:07.320
<v Speaker 3>system and the functional core stuff. What does it do

876
00:39:07.400 --> 00:39:11.199
<v Speaker 3>fun things with? What's the rest of the acronym, Well, there's.

877
00:39:13.119 --> 00:39:18.079
<v Speaker 6>Work work we gotta yeah, yeah, yeah, do fun things

878
00:39:18.079 --> 00:39:19.679
<v Speaker 6>a big loud yeah.

879
00:39:19.719 --> 00:39:23.440
<v Speaker 5>Big workers, that's right. Yeah you and a beer?

880
00:39:26.000 --> 00:39:28.719
<v Speaker 3>Yeah, Stephen, thank you? Because I I personally I think

881
00:39:28.760 --> 00:39:30.840
<v Speaker 3>the Wilder Beasts has a nice lowing sound, you.

882
00:39:30.800 --> 00:39:33.559
<v Speaker 4>Know, yeah it does. But O'Riley had the cover.

883
00:39:35.760 --> 00:39:38.400
<v Speaker 2>The cover, so yeah, oh.

884
00:39:38.320 --> 00:39:39.119
<v Speaker 5>Interesting is that really?

885
00:39:39.159 --> 00:39:41.679
<v Speaker 3>What happened is like O'Reilly had like a wilder Beast

886
00:39:41.760 --> 00:39:43.639
<v Speaker 3>on something and they're like, no, you may not put

887
00:39:43.639 --> 00:39:44.559
<v Speaker 3>the Wilder Beasts.

888
00:39:44.920 --> 00:39:45.119
<v Speaker 5>Yeah.

889
00:39:45.199 --> 00:39:49.000
<v Speaker 4>Yeah, So James had just come back from an Africa trip, right,

890
00:39:49.800 --> 00:39:52.280
<v Speaker 4>and so he loved the world a beast and and

891
00:39:52.360 --> 00:39:55.480
<v Speaker 4>I mean, I've done all this marketing, but now I

892
00:39:55.519 --> 00:39:59.599
<v Speaker 4>mean it makes sense, right. Beehives layers different cells OTP.

893
00:39:59.880 --> 00:40:01.280
<v Speaker 4>Just it really good time.

894
00:40:01.639 --> 00:40:05.679
<v Speaker 3>It's true. And beehives are built in hexagons, right, so

895
00:40:05.719 --> 00:40:07.280
<v Speaker 3>that you have hecks already built.

896
00:40:07.000 --> 00:40:11.840
<v Speaker 5>In ooh oh, well done there. Well they just dropped

897
00:40:11.840 --> 00:40:13.000
<v Speaker 5>the mike. We got to be done.

898
00:40:14.519 --> 00:40:16.920
<v Speaker 3>So yeah, so I recommend that they read that book

899
00:40:16.960 --> 00:40:19.800
<v Speaker 3>because it's important to understand how you build an layer

900
00:40:19.840 --> 00:40:22.159
<v Speaker 3>of system together, because it's very different than alixir. The

901
00:40:22.199 --> 00:40:24.880
<v Speaker 3>functional core aspect is what most people miss. In fact,

902
00:40:25.559 --> 00:40:28.000
<v Speaker 3>we just had a team try to learn an elixir

903
00:40:28.159 --> 00:40:30.280
<v Speaker 3>that had been Rubius and jobs for people, and that's

904
00:40:30.320 --> 00:40:33.079
<v Speaker 3>exactly what they missed. And it was the first thing

905
00:40:33.119 --> 00:40:34.760
<v Speaker 3>they missed. They didn't have a functional core, and it

906
00:40:34.840 --> 00:40:36.559
<v Speaker 3>made everything else almost impossible.

907
00:40:36.679 --> 00:40:37.119
<v Speaker 5>It's funny.

908
00:40:37.159 --> 00:40:40.039
<v Speaker 4>In San Francisco, Brooklyn came up to me, and I

909
00:40:40.079 --> 00:40:43.239
<v Speaker 4>mean she's one of the people that I practically idolized.

910
00:40:43.280 --> 00:40:48.159
<v Speaker 4>I mean the Witchcraft Library, the strong resonance with Haskell,

911
00:40:48.400 --> 00:40:51.800
<v Speaker 4>with the things that she can make Macro's do. She's

912
00:40:51.800 --> 00:40:53.920
<v Speaker 4>just smarter than Oliver be. But she came up to

913
00:40:53.960 --> 00:40:57.280
<v Speaker 4>me and said, hey about your talk, and I'm saying, oh, crap,

914
00:40:57.320 --> 00:40:59.840
<v Speaker 4>here it comes. You know, it was basically an outline

915
00:41:00.079 --> 00:41:02.039
<v Speaker 4>of the work of the books. She says, I agree

916
00:41:02.039 --> 00:41:04.960
<v Speaker 4>with all of it. And by the way, here's where

917
00:41:06.320 --> 00:41:09.519
<v Speaker 4>this paper says the same thing, except between this layer

918
00:41:09.519 --> 00:41:11.760
<v Speaker 4>and this layer you have an interface. And so it

919
00:41:11.840 --> 00:41:14.440
<v Speaker 4>was really it was like a high moment in my career.

920
00:41:14.559 --> 00:41:17.280
<v Speaker 4>You know. It's kind of said, yeah, you get this,

921
00:41:17.400 --> 00:41:19.159
<v Speaker 4>and I said, I didn't need to get it that way,

922
00:41:19.199 --> 00:41:20.280
<v Speaker 4>but I'll take it right.

923
00:41:21.000 --> 00:41:23.199
<v Speaker 3>So, actually, if I remember currently, so he didn't she

924
00:41:23.239 --> 00:41:26.119
<v Speaker 3>say that you didn't you had like a liberal arts background.

925
00:41:25.800 --> 00:41:26.199
<v Speaker 2>Right that.

926
00:41:27.159 --> 00:41:32.400
<v Speaker 1>Yeah, yeah, liberal arts background, history degree and then ended

927
00:41:32.480 --> 00:41:35.480
<v Speaker 1>up at the Slattern School, which was a software engineering

928
00:41:35.519 --> 00:41:38.000
<v Speaker 1>bood camp, and that kind of the rest was history

929
00:41:38.119 --> 00:41:38.840
<v Speaker 1>just fell in love with it.

930
00:41:39.440 --> 00:41:41.760
<v Speaker 3>Yeah, So when you were thinking about learning things, why

931
00:41:41.760 --> 00:41:42.960
<v Speaker 3>didn't you wish somebody had told you?

932
00:41:43.360 --> 00:41:44.079
<v Speaker 2>That's a good question.

933
00:41:44.159 --> 00:41:45.800
<v Speaker 1>I mean, that's one of the things that I loved

934
00:41:45.840 --> 00:41:49.639
<v Speaker 1>about learning Ruvie is that it tells a story and

935
00:41:49.679 --> 00:41:53.000
<v Speaker 1>you really have the emphasis on the problem that you're

936
00:41:53.039 --> 00:41:55.599
<v Speaker 1>trying to solve and how to express it with code

937
00:41:55.599 --> 00:41:57.920
<v Speaker 1>as opposed to needing to understand kind of some of

938
00:41:58.000 --> 00:42:01.679
<v Speaker 1>the low level principles. I feel like that and later for.

939
00:42:01.679 --> 00:42:06.000
<v Speaker 2>Me and then I think the thing that really hooked.

940
00:42:05.639 --> 00:42:09.559
<v Speaker 1>Me and kind of got me frankly obsessed with programming

941
00:42:09.760 --> 00:42:11.559
<v Speaker 1>was and I really think this is a feature of

942
00:42:11.599 --> 00:42:14.519
<v Speaker 1>something that the Flattering School really engenders and their teachers

943
00:42:14.559 --> 00:42:15.280
<v Speaker 1>and offers.

944
00:42:14.960 --> 00:42:16.760
<v Speaker 2>To their students is just just.

945
00:42:16.679 --> 00:42:19.440
<v Speaker 1>An absolute love of what you're doing, just an excitement,

946
00:42:19.480 --> 00:42:22.039
<v Speaker 1>a curiosity, like this total space of support.

947
00:42:22.119 --> 00:42:25.159
<v Speaker 2>That's something that I very much felt from my teachers.

948
00:42:24.800 --> 00:42:27.119
<v Speaker 1>There and then learned, i think, in part, how to

949
00:42:27.159 --> 00:42:29.280
<v Speaker 1>give to my students subsequently, because then I went on

950
00:42:29.320 --> 00:42:30.599
<v Speaker 1>to teach there from Steven.

951
00:42:30.719 --> 00:42:32.320
<v Speaker 2>I think Stephen just brings this like.

952
00:42:32.480 --> 00:42:36.599
<v Speaker 1>Absolute joy to whatever he's doing, and he is as

953
00:42:36.679 --> 00:42:39.239
<v Speaker 1>excited to show you something that he showed you know

954
00:42:39.280 --> 00:42:41.199
<v Speaker 1>a thousand people for five years as he is to

955
00:42:41.199 --> 00:42:42.960
<v Speaker 1>show you something that he just figured out for the

956
00:42:42.960 --> 00:42:43.679
<v Speaker 1>first time ever.

957
00:42:44.079 --> 00:42:45.199
<v Speaker 2>And it's really infectious.

958
00:42:45.239 --> 00:42:46.760
<v Speaker 1>And I think that to me is really like the

959
00:42:46.800 --> 00:42:49.079
<v Speaker 1>secret ingredient to learning a new language and learning a

960
00:42:49.079 --> 00:42:49.519
<v Speaker 1>new skill.

961
00:42:50.639 --> 00:42:54.719
<v Speaker 4>Joy that's actually a stone cold ninja as a teacher.

962
00:42:54.840 --> 00:42:58.039
<v Speaker 4>I mean, so he started coming teaching to our childhood

963
00:42:58.119 --> 00:43:00.840
<v Speaker 4>liks group and you know, just got of I just

964
00:43:00.920 --> 00:43:04.320
<v Speaker 4>dropped them into our most advanced class and and disappeared

965
00:43:04.360 --> 00:43:06.960
<v Speaker 4>on them really and and they came back right And

966
00:43:07.000 --> 00:43:09.480
<v Speaker 4>now I'm saying, when you coming back, you don't have

967
00:43:09.559 --> 00:43:11.719
<v Speaker 4>to come back. You really don't have to come back.

968
00:43:11.840 --> 00:43:15.880
<v Speaker 4>Speaking as this, it was really really cool them.

969
00:43:16.039 --> 00:43:19.199
<v Speaker 3>I paid them all to say that you Musty's a

970
00:43:19.360 --> 00:43:21.519
<v Speaker 3>that's a great thing to do. It's like, especially nowadays

971
00:43:21.519 --> 00:43:23.039
<v Speaker 3>with gift cards, it's a really easy way to get

972
00:43:23.079 --> 00:43:25.719
<v Speaker 3>a great review. But actually that's really funny. I think

973
00:43:25.960 --> 00:43:28.159
<v Speaker 3>it's interesting. One of the common threads I see about

974
00:43:28.159 --> 00:43:30.800
<v Speaker 3>people is people. I think what brings us to different

975
00:43:30.840 --> 00:43:33.159
<v Speaker 3>languages and different tools are the people. Which is a

976
00:43:33.199 --> 00:43:35.599
<v Speaker 3>really weird thing to say. Protect people, right like, but

977
00:43:35.760 --> 00:43:37.719
<v Speaker 3>a lot of why we choose the tools we have

978
00:43:37.880 --> 00:43:39.719
<v Speaker 3>is if you get a good person who introduces you

979
00:43:39.760 --> 00:43:41.400
<v Speaker 3>to the right sort of like to the joy of

980
00:43:41.679 --> 00:43:44.639
<v Speaker 3>better tools and better approaches and better thinking, you have

981
00:43:44.719 --> 00:43:47.760
<v Speaker 3>this great experience and that carries forward and they're I've

982
00:43:48.079 --> 00:43:50.239
<v Speaker 3>you know, I've met my more than my fair share

983
00:43:50.320 --> 00:43:53.760
<v Speaker 3>of like abused programmers, right, Like, Hey, what happened? I

984
00:43:53.760 --> 00:43:56.320
<v Speaker 3>got dumped into this project? Nobody told me what to do.

985
00:43:56.679 --> 00:43:59.840
<v Speaker 3>There was no cic D, nobody told me about testing. Like,

986
00:44:00.079 --> 00:44:03.239
<v Speaker 3>if you don't have somebody to tell you how fun

987
00:44:03.360 --> 00:44:05.800
<v Speaker 3>and how joyant and joyful programming can be, it can

988
00:44:05.840 --> 00:44:08.679
<v Speaker 3>be a real be a real slug. So could u seven?

989
00:44:08.719 --> 00:44:10.760
<v Speaker 3>If you can actually like convey that sort of excitement

990
00:44:10.760 --> 00:44:13.800
<v Speaker 3>to people, that's super important for the next generation programmers.

991
00:44:14.199 --> 00:44:16.119
<v Speaker 1>Yeah, well, I think we're all very grateful to have

992
00:44:16.159 --> 00:44:16.880
<v Speaker 1>benefited from that.

993
00:44:17.119 --> 00:44:18.599
<v Speaker 2>Since we are coming to the end of our time.

994
00:44:18.639 --> 00:44:20.519
<v Speaker 1>There's one last question that I really wanted to get

995
00:44:20.559 --> 00:44:22.920
<v Speaker 1>to for Randall, since you are a bona fide bond vibon,

996
00:44:23.440 --> 00:44:27.159
<v Speaker 1>I need like a Halloween themed cocktail that isn't like

997
00:44:27.280 --> 00:44:29.679
<v Speaker 1>too much. I don't like things that are super sweet.

998
00:44:30.280 --> 00:44:32.360
<v Speaker 1>I want to be easy because I'm not great at this.

999
00:44:32.960 --> 00:44:36.199
<v Speaker 1>Do you have anything for me, okay, off the Topllowen autumnal.

1000
00:44:36.320 --> 00:44:39.000
<v Speaker 3>Yeah, so an autumnal cocktail, I would go with a

1001
00:44:39.000 --> 00:44:41.559
<v Speaker 3>spiced cider with a rye whiskey on the side, or

1002
00:44:41.599 --> 00:44:44.800
<v Speaker 3>a ryebourbon whiskey kicker. So the things you can do

1003
00:44:44.880 --> 00:44:47.119
<v Speaker 3>is you can actually take apple cider. You need the

1004
00:44:47.199 --> 00:44:50.840
<v Speaker 3>unfiltered type sider, not juice. So you take apple cider

1005
00:44:50.880 --> 00:44:52.440
<v Speaker 3>when you can actually reduce it in a pan, and

1006
00:44:52.480 --> 00:44:54.760
<v Speaker 3>it makes for a very strong apples almost like an

1007
00:44:54.800 --> 00:44:57.639
<v Speaker 3>apple syrup. Interesting, and you can infuse that with things

1008
00:44:57.639 --> 00:44:59.920
<v Speaker 3>like cinnamon, So you could put like cardamous cinnamon and

1009
00:45:00.000 --> 00:45:01.840
<v Speaker 3>any of those things in it in a pan, reduce

1010
00:45:01.880 --> 00:45:03.559
<v Speaker 3>it more by half or a little more, and you

1011
00:45:03.599 --> 00:45:05.800
<v Speaker 3>end up with an apple syrup. And so from there

1012
00:45:05.880 --> 00:45:08.679
<v Speaker 3>you can basically select your level of booziness, your level

1013
00:45:08.760 --> 00:45:11.960
<v Speaker 3>of appleness, and your level of cocktail. You make an

1014
00:45:11.960 --> 00:45:14.159
<v Speaker 3>effort vestment by either fixing it or toping it off

1015
00:45:14.199 --> 00:45:15.039
<v Speaker 3>the champagne.

1016
00:45:15.480 --> 00:45:17.000
<v Speaker 2>I love that. I'm definitely doing.

1017
00:45:17.320 --> 00:45:21.719
<v Speaker 3>So it works in a situation. Yeah, yeah, Champagne cocktails are underrated.

1018
00:45:21.880 --> 00:45:23.320
<v Speaker 3>Good cure, I agree.

1019
00:45:23.400 --> 00:45:25.119
<v Speaker 2>Also makes me feel like I'm in the nineteen twenties.

1020
00:45:25.159 --> 00:45:26.840
<v Speaker 2>I'm not really sure why I have the association.

1021
00:45:27.519 --> 00:45:31.800
<v Speaker 3>Yes, maybe a slipper glass. Yeah, yeah, So that's because

1022
00:45:31.880 --> 00:45:33.679
<v Speaker 3>in what I like about that is with one prep

1023
00:45:33.719 --> 00:45:35.199
<v Speaker 3>you can make the base and then people can have

1024
00:45:35.280 --> 00:45:37.480
<v Speaker 3>either a non alcoholic if you have people who aren't drinking,

1025
00:45:37.719 --> 00:45:40.079
<v Speaker 3>or a completely boozy, wipe you out cocktail by just

1026
00:45:40.119 --> 00:45:42.000
<v Speaker 3>dumping a bunch of ry whiskey and putting a splash

1027
00:45:42.000 --> 00:45:43.039
<v Speaker 3>of apple over the.

1028
00:45:42.960 --> 00:45:43.440
<v Speaker 5>Top of it.

1029
00:45:43.639 --> 00:45:45.119
<v Speaker 2>Also, I like a cocktail that you don't have to

1030
00:45:45.159 --> 00:45:46.079
<v Speaker 2>mix individually.

1031
00:45:46.159 --> 00:45:48.840
<v Speaker 1>Even if you have like just a couple of people around,

1032
00:45:48.880 --> 00:45:49.920
<v Speaker 1>it's still sort of a pain.

1033
00:45:50.000 --> 00:45:51.840
<v Speaker 2>So I love this. Thank you. I cannot wait to

1034
00:45:51.840 --> 00:45:53.199
<v Speaker 2>try this out. That's just perfect.

1035
00:45:53.800 --> 00:45:57.159
<v Speaker 1>So yeah, great, And I think that'll bring us to

1036
00:45:57.320 --> 00:45:57.880
<v Speaker 1>our picks.

1037
00:45:57.960 --> 00:45:59.719
<v Speaker 2>We have a lot of great recommendations.

1038
00:45:59.719 --> 00:46:01.880
<v Speaker 1>We've been collecting some of the links and things that

1039
00:46:01.920 --> 00:46:04.119
<v Speaker 1>have been mentioned in this convo, but we will go

1040
00:46:04.159 --> 00:46:07.159
<v Speaker 1>around the room, so to speak, and if anyone has

1041
00:46:07.320 --> 00:46:10.159
<v Speaker 1>specific recommendation. Since Bruce had to drop off, I'll start

1042
00:46:10.159 --> 00:46:14.159
<v Speaker 1>with his. Graxio starts their Nerves course on November first.

1043
00:46:14.360 --> 00:46:17.679
<v Speaker 1>Definitely don't miss it out and check out grox dot

1044
00:46:17.679 --> 00:46:20.679
<v Speaker 1>Io Groxio, and I will pass it over to.

1045
00:46:22.320 --> 00:46:25.960
<v Speaker 5>Alex so my picks are two learning resources. They're both

1046
00:46:26.039 --> 00:46:28.280
<v Speaker 5>kind of open books. One is the beam book and

1047
00:46:28.280 --> 00:46:29.559
<v Speaker 5>there'll be a link in the show notes, and the

1048
00:46:29.599 --> 00:46:32.079
<v Speaker 5>other one is Earling and Anger. I've definitely used Earling

1049
00:46:32.079 --> 00:46:35.199
<v Speaker 5>and Anger several times when there's been a memory leak

1050
00:46:35.239 --> 00:46:37.360
<v Speaker 5>in production and you're like, whoa, this is a lickxir.

1051
00:46:37.400 --> 00:46:40.159
<v Speaker 5>Memory leaks are not possible. Well, they are possible, and

1052
00:46:40.159 --> 00:46:42.400
<v Speaker 5>there's a couple of scenarios into which they're possible. So

1053
00:46:42.480 --> 00:46:45.239
<v Speaker 5>that is a good reference to hit up when you

1054
00:46:45.280 --> 00:46:47.880
<v Speaker 5>don't know why memory is spiking and Grofana is going

1055
00:46:47.920 --> 00:46:50.320
<v Speaker 5>off the charts, So definitely check those out.

1056
00:46:50.599 --> 00:46:52.199
<v Speaker 2>Awesome, Thanks Alex Steven.

1057
00:46:52.760 --> 00:46:55.360
<v Speaker 6>So mine is going to be for I have ultra

1058
00:46:55.440 --> 00:46:58.960
<v Speaker 6>wide monitors here, but I actually mean super ultra wide monitors.

1059
00:46:58.960 --> 00:47:00.920
<v Speaker 6>So first of all, this is a thing. You can

1060
00:47:00.920 --> 00:47:06.000
<v Speaker 6>get a monitor that's forty nine inches and super ultra wide. Yeah,

1061
00:47:06.360 --> 00:47:07.719
<v Speaker 6>you don't know you need this, but you need this

1062
00:47:07.800 --> 00:47:11.119
<v Speaker 6>in your life. You need to be surrounded by zoom

1063
00:47:11.559 --> 00:47:13.079
<v Speaker 6>like people on your left, people on your right.

1064
00:47:13.079 --> 00:47:15.039
<v Speaker 5>It really makes you feel like you're back in the office,

1065
00:47:15.079 --> 00:47:16.920
<v Speaker 5>but kind of surrounded in a weird way.

1066
00:47:17.480 --> 00:47:18.239
<v Speaker 3>So check that out.

1067
00:47:18.480 --> 00:47:21.199
<v Speaker 1>Thank you for that I can't wait to squint even

1068
00:47:21.239 --> 00:47:23.320
<v Speaker 1>harder at the teeny tiny.

1069
00:47:23.039 --> 00:47:25.280
<v Speaker 2>Resolution of whatever is on your s great chair.

1070
00:47:25.920 --> 00:47:27.559
<v Speaker 1>I don't have any picks this week, although I've a

1071
00:47:27.559 --> 00:47:30.239
<v Speaker 1>feeling I'll be recommending a contail as soon as I

1072
00:47:30.320 --> 00:47:30.840
<v Speaker 1>try it out.

1073
00:47:31.320 --> 00:47:31.639
<v Speaker 2>Randal.

1074
00:47:31.679 --> 00:47:33.119
<v Speaker 1>Like I said, I collected some of the links that

1075
00:47:33.159 --> 00:47:35.199
<v Speaker 1>you had mentioned, but if you have anything else you'd

1076
00:47:35.199 --> 00:47:36.960
<v Speaker 1>like to share, it currently doesn't have to be a

1077
00:47:37.039 --> 00:47:39.039
<v Speaker 1>lexor or even programming related.

1078
00:47:39.039 --> 00:47:43.639
<v Speaker 3>So one is definitely seeing deals. The Haskell link what

1079
00:47:43.760 --> 00:47:45.760
<v Speaker 3>I wish I had known that was actually really good.

1080
00:47:46.119 --> 00:47:48.199
<v Speaker 3>I just like that as a comprehensive sort of resource.

1081
00:47:48.440 --> 00:47:51.840
<v Speaker 3>Another one is Kemming Labs has this thing called finda.

1082
00:47:52.000 --> 00:47:53.800
<v Speaker 3>I don't know if you guys have ever used finda.

1083
00:47:54.239 --> 00:47:58.440
<v Speaker 3>It is literally a search everything. It's like it's one

1084
00:47:58.480 --> 00:48:00.360
<v Speaker 3>of the greatest things ever. It just pops up all

1085
00:48:00.440 --> 00:48:03.639
<v Speaker 3>of these this this huge overlay that you can search

1086
00:48:03.760 --> 00:48:06.679
<v Speaker 3>all the things, and I do mean all the things

1087
00:48:06.679 --> 00:48:08.840
<v Speaker 3>as you can like integrate it with your VIM, you

1088
00:48:08.840 --> 00:48:11.719
<v Speaker 3>can integrate with your emacs. I'm pretty sure it integrates

1089
00:48:11.719 --> 00:48:13.639
<v Speaker 3>with them. I know it works with vidas code, but

1090
00:48:13.719 --> 00:48:15.880
<v Speaker 3>it'll search open tabs. So if you're like me and

1091
00:48:15.920 --> 00:48:17.760
<v Speaker 3>you're one of those people who never close the tabs.

1092
00:48:18.360 --> 00:48:20.280
<v Speaker 3>You can search all your tabs, you can search all

1093
00:48:20.320 --> 00:48:23.599
<v Speaker 3>your links, and it's super fast, and it's a it's

1094
00:48:23.639 --> 00:48:26.519
<v Speaker 3>a great way to actually kind of be lazy about

1095
00:48:26.559 --> 00:48:28.039
<v Speaker 3>managing Windows until you should.

1096
00:48:28.079 --> 00:48:31.079
<v Speaker 1>It's really dangerous for me because I absolutely have a

1097
00:48:31.079 --> 00:48:32.880
<v Speaker 1>million tabs and can never find anything.

1098
00:48:32.960 --> 00:48:33.840
<v Speaker 2>And I think it's just.

1099
00:48:35.760 --> 00:48:38.679
<v Speaker 3>Going to try this, so check it out. Actually, like

1100
00:48:38.719 --> 00:48:40.880
<v Speaker 3>I said, I'm a huge fan of that, just because

1101
00:48:40.880 --> 00:48:43.039
<v Speaker 3>I started using it yesterday and I was just like,

1102
00:48:43.480 --> 00:48:46.760
<v Speaker 3>where have you been? So cool? Thank you, thank you guys.

1103
00:48:46.760 --> 00:48:48.800
<v Speaker 3>Actually appreciate you. Guys. Give me a chance to just

1104
00:48:48.840 --> 00:48:49.920
<v Speaker 3>prattle on for a while.

1105
00:48:50.039 --> 00:48:51.800
<v Speaker 2>Yeah, this is great. We were thrilled to have you,

1106
00:48:51.840 --> 00:48:53.480
<v Speaker 2>and hopefully we'll get the talk again too.

1107
00:48:53.679 --> 00:48:55.119
<v Speaker 3>All right, sounds great. Curious
