WEBVTT

1
00:00:04.559 --> 00:00:08.599
<v Speaker 1>Hey, folks, welcome back to Ruby Rogues this week, it

2
00:00:08.640 --> 00:00:11.119
<v Speaker 1>looks like it's just me. We kind of took a

3
00:00:11.119 --> 00:00:14.080
<v Speaker 1>break from recording for a little while, but I'm back

4
00:00:14.160 --> 00:00:16.559
<v Speaker 1>at it and I had some stuff to talk about.

5
00:00:16.600 --> 00:00:20.039
<v Speaker 1>So I'm going to just jump in and talk about

6
00:00:20.079 --> 00:00:21.800
<v Speaker 1>some of the stuff that's going on out there in

7
00:00:21.800 --> 00:00:25.039
<v Speaker 1>the Ruby community, just to give a little bit of

8
00:00:25.079 --> 00:00:30.120
<v Speaker 1>context on how I expect this to flow effectively. I'm

9
00:00:30.160 --> 00:00:31.719
<v Speaker 1>just going to kind of explain what I've been able

10
00:00:31.719 --> 00:00:36.759
<v Speaker 1>to gather is happening. I'll probably interject my opinion or

11
00:00:36.759 --> 00:00:41.079
<v Speaker 1>feelings on things as I go, and then at the end,

12
00:00:41.119 --> 00:00:43.200
<v Speaker 1>I'll give some conclusions as far as what I think

13
00:00:43.479 --> 00:00:46.560
<v Speaker 1>we ought to be thinking or doing regarding the situation

14
00:00:46.679 --> 00:00:50.920
<v Speaker 1>with Ruby Central and Ruby Gems. I'm also going to

15
00:00:50.960 --> 00:00:55.679
<v Speaker 1>be gearing up and recording more episodes, and I'd like

16
00:00:55.719 --> 00:00:57.799
<v Speaker 1>to add another host or two to this show, so

17
00:00:57.840 --> 00:01:00.880
<v Speaker 1>if you're interested, feel free to email me Chuck at

18
00:01:00.960 --> 00:01:04.400
<v Speaker 1>topendevs dot com. I've also got some other stuff coming

19
00:01:05.000 --> 00:01:06.719
<v Speaker 1>just to kind of give you all a heads up.

20
00:01:07.000 --> 00:01:09.239
<v Speaker 1>I'm going to start recording a Ruby Tip of the Day,

21
00:01:09.599 --> 00:01:13.599
<v Speaker 1>and so that'll be a daily podcast. It'll probably be

22
00:01:13.640 --> 00:01:15.959
<v Speaker 1>five to ten minutes, and I'll just explain some stuff,

23
00:01:16.239 --> 00:01:19.959
<v Speaker 1>and I'm planning on putting out some video content related

24
00:01:20.000 --> 00:01:23.599
<v Speaker 1>to that, right, So I'll explain the concepts behind a thing,

25
00:01:23.760 --> 00:01:26.000
<v Speaker 1>and then and you know, hey, you probably want to

26
00:01:26.040 --> 00:01:28.079
<v Speaker 1>do this, or you probably want to do this instead

27
00:01:28.079 --> 00:01:32.239
<v Speaker 1>of that, and then do a quick video demo and

28
00:01:32.599 --> 00:01:36.480
<v Speaker 1>show you what the difference is. But in the meantime,

29
00:01:36.519 --> 00:01:38.319
<v Speaker 1>let's go ahead and dive in and talk about the

30
00:01:38.359 --> 00:01:43.799
<v Speaker 1>situation with Rocky Mountain Ruby or sorry, with Ruby Central.

31
00:01:44.840 --> 00:01:48.519
<v Speaker 1>I kind of Freudian slipped, I guess with mentioning Rocky

32
00:01:48.519 --> 00:01:50.920
<v Speaker 1>Mountain Ruby. I was at Rocky Mountain Ruby a week

33
00:01:51.000 --> 00:01:52.680
<v Speaker 1>or so ago. There were a number of people who

34
00:01:52.760 --> 00:01:55.400
<v Speaker 1>are involved in the whole Ruby Central situation that we're there.

35
00:01:56.680 --> 00:01:59.959
<v Speaker 1>I'm not going to attribute anything to anyone person, because

36
00:02:01.000 --> 00:02:03.079
<v Speaker 1>I kind of got the story from a handful of

37
00:02:03.079 --> 00:02:05.480
<v Speaker 1>people that are involved, and then another handful of people

38
00:02:05.519 --> 00:02:08.719
<v Speaker 1>who have been following things pretty closely. And I don't

39
00:02:08.759 --> 00:02:12.319
<v Speaker 1>want to represent that what I've gathered is necessarily the

40
00:02:12.400 --> 00:02:17.400
<v Speaker 1>opinion or you know, any kind of statement from anybody

41
00:02:17.400 --> 00:02:21.319
<v Speaker 1>who's involved, because honestly, I'm not sure if I remember

42
00:02:21.520 --> 00:02:27.120
<v Speaker 1>which details came from which people, and so anyway, I

43
00:02:27.159 --> 00:02:29.680
<v Speaker 1>feel like I've been able to gather more information than

44
00:02:31.520 --> 00:02:34.479
<v Speaker 1>what's kind of out there at the moment, so we

45
00:02:34.520 --> 00:02:37.240
<v Speaker 1>can dive into that. One other thing is is that

46
00:02:37.919 --> 00:02:41.439
<v Speaker 1>if you're looking for me to take sides on, you know,

47
00:02:42.000 --> 00:02:44.319
<v Speaker 1>these people did everything right and these people did everything wrong.

48
00:02:44.479 --> 00:02:46.479
<v Speaker 1>I don't feel like that's the case in this case.

49
00:02:46.520 --> 00:02:51.000
<v Speaker 1>I feel like both sides have made decisions that definitely.

50
00:02:50.520 --> 00:02:51.479
<v Speaker 2>Could have been made better.

51
00:02:52.240 --> 00:02:55.840
<v Speaker 1>And I don't think anybody comes out of this looking like, oh, well,

52
00:02:55.840 --> 00:02:59.039
<v Speaker 1>we did everything right and they screwed us over. So anyway,

53
00:02:59.080 --> 00:03:01.280
<v Speaker 1>I'm just gonna just kind of wanted to put that

54
00:03:01.360 --> 00:03:05.960
<v Speaker 1>out there as we get into it. So anyway, so

55
00:03:06.039 --> 00:03:09.599
<v Speaker 1>let me back up and give some historical information for folks.

56
00:03:10.560 --> 00:03:11.879
<v Speaker 1>I know that there are a lot of people that

57
00:03:11.919 --> 00:03:14.520
<v Speaker 1>are newer to the community and haven't been around for

58
00:03:15.560 --> 00:03:17.680
<v Speaker 1>all of the things that we've kind of lived through

59
00:03:17.840 --> 00:03:20.599
<v Speaker 1>over the last fifteen or twenty years. I've been programming

60
00:03:20.680 --> 00:03:24.240
<v Speaker 1>Ruby for around twenty years, and so I've kind of

61
00:03:24.280 --> 00:03:28.159
<v Speaker 1>seen a lot of the things that add up to this,

62
00:03:28.599 --> 00:03:30.599
<v Speaker 1>and you know, and so I want to give that

63
00:03:30.719 --> 00:03:36.599
<v Speaker 1>context as well. Essentially the situation, I'll just give a

64
00:03:36.599 --> 00:03:38.680
<v Speaker 1>little bit of that, and then I'll go back historically,

65
00:03:39.159 --> 00:03:40.599
<v Speaker 1>you know, so that you can kind of see where

66
00:03:40.599 --> 00:03:47.639
<v Speaker 1>it's headed. But the situation is that a few weeks ago,

67
00:03:47.719 --> 00:03:50.680
<v Speaker 1>maybe a month or so ago, sounds like it was

68
00:03:50.719 --> 00:03:55.840
<v Speaker 1>in early September or maybe late August, ruby Central. So

69
00:03:55.879 --> 00:03:58.080
<v Speaker 1>some people came out who work on some of the

70
00:03:58.080 --> 00:04:02.599
<v Speaker 1>projects like ruby jumps dot org, the Ruby Gems command

71
00:04:02.599 --> 00:04:07.199
<v Speaker 1>line interface, and Bundler, and they said that they had

72
00:04:07.280 --> 00:04:12.120
<v Speaker 1>had their access to the repositories revoked, that the organizations

73
00:04:12.159 --> 00:04:17.040
<v Speaker 1>that on GitHub that those repositories belonged to had been

74
00:04:17.079 --> 00:04:21.680
<v Speaker 1>reassigned to Marty HoTT, who's the developed director of open

75
00:04:21.720 --> 00:04:27.519
<v Speaker 1>source at Ruby Central. And then I guess they got

76
00:04:27.560 --> 00:04:30.000
<v Speaker 1>their access back for a little bit, and then they

77
00:04:30.040 --> 00:04:37.959
<v Speaker 1>had their access finally revoked. So then people were saying, well, hey,

78
00:04:38.040 --> 00:04:41.600
<v Speaker 1>you're essentially taking these projects that people work on for

79
00:04:41.680 --> 00:04:45.720
<v Speaker 1>the community out of their hands, and so people were

80
00:04:45.720 --> 00:04:48.160
<v Speaker 1>saying it was a hostile takeover and things like that.

81
00:04:49.199 --> 00:04:51.720
<v Speaker 1>I'm finding that there's a lot more context here, right So,

82
00:04:52.040 --> 00:04:56.240
<v Speaker 1>like I said before, I think the reasons that Ruby

83
00:04:56.279 --> 00:04:59.560
<v Speaker 1>Central's doing what it's doing are understandable, and I think

84
00:04:59.560 --> 00:05:02.120
<v Speaker 1>there are which could have been much much, much much better.

85
00:05:04.879 --> 00:05:07.439
<v Speaker 1>And I also understand where the contributors are coming from

86
00:05:07.480 --> 00:05:08.920
<v Speaker 1>because they've been working on this stuff for a really,

87
00:05:09.000 --> 00:05:13.600
<v Speaker 1>really really long time. So let's rewind way back, right,

88
00:05:13.639 --> 00:05:15.639
<v Speaker 1>and let's talk about the way things worked when I

89
00:05:15.680 --> 00:05:18.639
<v Speaker 1>started doing Ruby back in like two thousand and six.

90
00:05:20.120 --> 00:05:21.879
<v Speaker 2>So I was working for a company that.

91
00:05:23.439 --> 00:05:26.000
<v Speaker 1>I was actually running their tech support department, and we built,

92
00:05:28.040 --> 00:05:31.240
<v Speaker 1>we built the infrastructure for our support teams in Rails,

93
00:05:32.079 --> 00:05:36.000
<v Speaker 1>me and another guy that were running the support team.

94
00:05:36.120 --> 00:05:39.480
<v Speaker 1>And back then, when you built a Ruby or Rails application,

95
00:05:41.040 --> 00:05:44.279
<v Speaker 1>there was no gem file right, no bundler didn't exist,

96
00:05:44.519 --> 00:05:45.839
<v Speaker 1>and so what you would do is you would do

97
00:05:45.879 --> 00:05:49.399
<v Speaker 1>a gem install on your machine and it would run

98
00:05:49.439 --> 00:05:52.800
<v Speaker 1>whatever version of Ruby you had on your machine. And

99
00:05:52.839 --> 00:05:56.920
<v Speaker 1>there weren't these convenient switchers like RVM or OURBND, and

100
00:05:57.000 --> 00:05:59.759
<v Speaker 1>so you just had to have the right version on

101
00:05:59.800 --> 00:06:02.720
<v Speaker 1>your computer, have the right gems installed, and then you

102
00:06:02.759 --> 00:06:04.319
<v Speaker 1>would require them and it would pull them out of

103
00:06:04.319 --> 00:06:05.439
<v Speaker 1>wherever you had them installed.

104
00:06:06.120 --> 00:06:06.519
<v Speaker 2>And so.

105
00:06:08.199 --> 00:06:12.399
<v Speaker 1>If you had jim incompatibilities, you would get errors.

106
00:06:12.199 --> 00:06:13.480
<v Speaker 2>When you ran your Ruby code.

107
00:06:14.240 --> 00:06:21.399
<v Speaker 1>And as applications got more complicated, especially for Rails, applications,

108
00:06:23.240 --> 00:06:25.639
<v Speaker 1>dependency management became a huge nightmare, and then when you

109
00:06:25.720 --> 00:06:29.360
<v Speaker 1>upgraded from one version of Rails to another, it became

110
00:06:29.439 --> 00:06:34.040
<v Speaker 1>even more of a nightmare. So when we transitioned from

111
00:06:34.199 --> 00:06:40.759
<v Speaker 1>Rails two to Rails three, and Yahuta Katz and Carl Lerchie,

112
00:06:41.120 --> 00:06:43.480
<v Speaker 1>I can't remember how to say his name, anyway, they

113
00:06:43.839 --> 00:06:46.680
<v Speaker 1>were ya hootah did most You know, he was kind

114
00:06:46.680 --> 00:06:48.480
<v Speaker 1>of the front man for a lot of the work.

115
00:06:48.519 --> 00:06:49.959
<v Speaker 1>He was the one that was out there, given the

116
00:06:49.959 --> 00:06:52.839
<v Speaker 1>talks and things like that, and so I kind of

117
00:06:52.879 --> 00:06:54.480
<v Speaker 1>want to give him more credit, but I don't know

118
00:06:54.480 --> 00:06:56.160
<v Speaker 1>how much of the work was done by either of

119
00:06:56.160 --> 00:06:59.199
<v Speaker 1>those guys. And I can't remember if Tom Dale was

120
00:06:59.240 --> 00:07:00.720
<v Speaker 1>involved in that or not, or if he just got

121
00:07:00.720 --> 00:07:03.240
<v Speaker 1>involved later and was more of an influence in Ember,

122
00:07:04.079 --> 00:07:10.000
<v Speaker 1>which is a JavaScript framework. But anyway, so they they

123
00:07:10.040 --> 00:07:12.399
<v Speaker 1>did this work in the eight they had been working

124
00:07:12.480 --> 00:07:17.240
<v Speaker 1>on a competitor to Rails called MERB and Rails and

125
00:07:17.240 --> 00:07:20.519
<v Speaker 1>Merb decided to merge, and so they merged, and that

126
00:07:20.519 --> 00:07:23.399
<v Speaker 1>that upgrade was kind of a big, big, big move.

127
00:07:24.120 --> 00:07:25.920
<v Speaker 1>But a few of the things that came out of

128
00:07:25.920 --> 00:07:31.160
<v Speaker 1>that were eventually we got Bler from a lot of

129
00:07:31.199 --> 00:07:35.000
<v Speaker 1>that work and I think Carl and Yehuda were the

130
00:07:35.000 --> 00:07:38.920
<v Speaker 1>ones that started it. For a really really long time,

131
00:07:38.959 --> 00:07:41.720
<v Speaker 1>andre Arco was the one that was kind of spearheading

132
00:07:42.199 --> 00:07:45.079
<v Speaker 1>the work on that, and so we got Buler from that.

133
00:07:45.360 --> 00:07:47.439
<v Speaker 1>It changed a lot of things because then you could

134
00:07:47.480 --> 00:07:50.680
<v Speaker 1>just put stuff into the gem file and Butler would

135
00:07:50.720 --> 00:07:55.519
<v Speaker 1>figure out what dependencies you needed and it would align

136
00:07:55.560 --> 00:07:57.839
<v Speaker 1>all that stuff, and then if it couldn't find compatible

137
00:07:58.639 --> 00:08:01.519
<v Speaker 1>versions with everything that you've ad for, then it would

138
00:08:01.519 --> 00:08:05.040
<v Speaker 1>tell you. And so anyway, that became kind of this

139
00:08:05.079 --> 00:08:09.680
<v Speaker 1>critical thing. Ruby Gems the cli and ruby Gems the

140
00:08:09.759 --> 00:08:15.639
<v Speaker 1>server were around before I was programming Ruby, and so

141
00:08:15.800 --> 00:08:17.720
<v Speaker 1>a lot of that work was done by Eric Hodle

142
00:08:18.000 --> 00:08:21.600
<v Speaker 1>and some of the other folks around there. And my

143
00:08:21.759 --> 00:08:25.319
<v Speaker 1>understanding is is that for the RubyGems dot org service,

144
00:08:28.399 --> 00:08:31.639
<v Speaker 1>somebody had to pay the server bills, right, and Ruby

145
00:08:31.680 --> 00:08:34.360
<v Speaker 1>Central had kind of informed to run Ruby komf and

146
00:08:34.440 --> 00:08:38.320
<v Speaker 1>rails comp and so it's my understanding that they just

147
00:08:38.360 --> 00:08:41.360
<v Speaker 1>took that under their wing kind of formed something that

148
00:08:41.360 --> 00:08:44.559
<v Speaker 1>looks like a foundation. I'm not sure if they're organized

149
00:08:44.600 --> 00:08:46.200
<v Speaker 1>in the same way as kind of like the Rails

150
00:08:46.200 --> 00:08:48.360
<v Speaker 1>Foundation or some of the other open source foundations like

151
00:08:48.480 --> 00:08:54.279
<v Speaker 1>Linux Foundation, but ultimately they have corporate sponsors, and I

152
00:08:54.279 --> 00:09:00.600
<v Speaker 1>think they were actually making money from the conferences and

153
00:09:00.879 --> 00:09:03.120
<v Speaker 1>anyway they were able to pay for the infrastructure to

154
00:09:03.159 --> 00:09:07.039
<v Speaker 1>run regems dot org and so you know they've hosted

155
00:09:07.039 --> 00:09:10.399
<v Speaker 1>those servers and things like that. And then of course,

156
00:09:10.559 --> 00:09:14.799
<v Speaker 1>you know, over the years, people have become more sophisticated

157
00:09:14.840 --> 00:09:17.120
<v Speaker 1>in the way that they try and compromise people software,

158
00:09:17.159 --> 00:09:20.720
<v Speaker 1>and one of them are supply chain attacks, and so

159
00:09:21.039 --> 00:09:23.159
<v Speaker 1>you know, they've had to become much more sophisticated in

160
00:09:23.200 --> 00:09:27.399
<v Speaker 1>the way that they handle requests or you know, posting

161
00:09:27.440 --> 00:09:29.159
<v Speaker 1>of Ruby gems and things like that to make sure

162
00:09:29.200 --> 00:09:33.080
<v Speaker 1>that when you pull in a gem that it's what

163
00:09:33.120 --> 00:09:35.440
<v Speaker 1>you expected to be and it doesn't have any malicious

164
00:09:35.480 --> 00:09:39.440
<v Speaker 1>code in it or you know, open up vulnerabilities in

165
00:09:39.440 --> 00:09:41.799
<v Speaker 1>your application and things like that, and I think they

166
00:09:41.840 --> 00:09:44.039
<v Speaker 1>do a pretty good job of that. I can't think

167
00:09:44.080 --> 00:09:48.519
<v Speaker 1>of any major problems that you know, that have come

168
00:09:48.600 --> 00:09:51.639
<v Speaker 1>from ruby gems itself, and if they have been issues,

169
00:09:51.679 --> 00:09:53.120
<v Speaker 1>they've been on top of fixing those.

170
00:09:53.320 --> 00:09:53.480
<v Speaker 2>Right.

171
00:09:53.559 --> 00:09:56.600
<v Speaker 1>Most of the time, it's oh, we overlooked a thing

172
00:09:56.720 --> 00:09:58.759
<v Speaker 1>in you know, a gem or something, right, and so

173
00:09:58.799 --> 00:09:59.879
<v Speaker 1>then you get a patch.

174
00:09:59.639 --> 00:10:00.879
<v Speaker 2>To ray or something like that.

175
00:10:01.240 --> 00:10:03.519
<v Speaker 1>But anyway, so that's where a lot of this comes from.

176
00:10:03.559 --> 00:10:07.759
<v Speaker 1>And then a few years ago, I say a few,

177
00:10:07.759 --> 00:10:09.600
<v Speaker 1>but I think it was probably like ten or more

178
00:10:09.679 --> 00:10:13.559
<v Speaker 1>years ago, a lot of these folks were spending quite

179
00:10:13.559 --> 00:10:15.960
<v Speaker 1>a bit of time maintaining a lot of these projects

180
00:10:16.559 --> 00:10:19.799
<v Speaker 1>for the Ruby community, right, so rubygms dot org and

181
00:10:20.000 --> 00:10:25.759
<v Speaker 1>Bundler in particular, and so, and it's all open source software,

182
00:10:25.840 --> 00:10:28.480
<v Speaker 1>and they weren't really getting paid. This was before you

183
00:10:28.480 --> 00:10:32.480
<v Speaker 1>could sponsor people on GitHub, and there really weren't other

184
00:10:32.759 --> 00:10:35.960
<v Speaker 1>terrific mechanisms for people to say, hey, I'm doing this

185
00:10:36.080 --> 00:10:38.039
<v Speaker 1>work that benefits you. Do you want to throw me

186
00:10:38.080 --> 00:10:42.799
<v Speaker 1>a few bucks? And so they founded a group called

187
00:10:42.879 --> 00:10:47.399
<v Speaker 1>Ruby Together. And what Ruby Together did is it it

188
00:10:47.600 --> 00:10:51.399
<v Speaker 1>collected a fund similar to Ruby Central, right where you

189
00:10:51.480 --> 00:10:54.120
<v Speaker 1>have these companies that are donating to them. And then

190
00:10:54.120 --> 00:10:56.799
<v Speaker 1>they were able to pay the open source maintainers at

191
00:10:56.879 --> 00:11:01.080
<v Speaker 1>least something for kind of the above and beyond amount

192
00:11:01.080 --> 00:11:04.120
<v Speaker 1>of time that they were spending on Bundler and ruby

193
00:11:04.200 --> 00:11:07.320
<v Speaker 1>gems and RubyGems dot org so that they could provide

194
00:11:07.399 --> 00:11:10.879
<v Speaker 1>us with secure, functional tools that do the job that

195
00:11:10.919 --> 00:11:11.840
<v Speaker 1>we need them to do.

196
00:11:12.600 --> 00:11:14.639
<v Speaker 2>And then you know, and that all made sense, right.

197
00:11:16.440 --> 00:11:18.000
<v Speaker 1>It was kind of in a time where I felt

198
00:11:18.039 --> 00:11:20.879
<v Speaker 1>like some of the social agendas were starting to crop up,

199
00:11:20.919 --> 00:11:23.120
<v Speaker 1>and they were a little bit vocal on that. But

200
00:11:23.159 --> 00:11:25.519
<v Speaker 1>for the most part, they you know, they mostly were

201
00:11:25.559 --> 00:11:29.799
<v Speaker 1>just raising money for you know, for the the infrastructure

202
00:11:29.799 --> 00:11:32.919
<v Speaker 1>work that they were doing, right, and so, you know, great,

203
00:11:33.320 --> 00:11:35.399
<v Speaker 1>we still get all of the goodies for free.

204
00:11:35.720 --> 00:11:37.559
<v Speaker 2>They're doing work that we all need done.

205
00:11:38.960 --> 00:11:41.360
<v Speaker 1>You know, they're getting paid for it, which I think

206
00:11:41.440 --> 00:11:45.360
<v Speaker 1>is great, and so more power to them. And so

207
00:11:45.519 --> 00:11:49.399
<v Speaker 1>my understanding is about three three to five years ago,

208
00:11:51.720 --> 00:11:54.480
<v Speaker 1>Ruby Central and Ruby Together figured out that they were

209
00:11:54.519 --> 00:11:58.039
<v Speaker 1>basically going and asking for support from the same groups,

210
00:11:58.159 --> 00:12:00.919
<v Speaker 1>from the same folks, right, because the folks that support

211
00:12:01.000 --> 00:12:04.320
<v Speaker 1>Ruby Central or companies that use Ruby on a regular basis,

212
00:12:05.559 --> 00:12:09.120
<v Speaker 1>you know, so Shopify and you know, base Camp and whoever, Right,

213
00:12:09.200 --> 00:12:11.799
<v Speaker 1>they all run on Ruby and use the Ruby infrastructure.

214
00:12:11.799 --> 00:12:14.159
<v Speaker 1>And so they were giving money to Ruby Central. But

215
00:12:14.240 --> 00:12:17.679
<v Speaker 1>then a lot of the infrastructure that's supported by Ruby

216
00:12:17.720 --> 00:12:21.120
<v Speaker 1>Central runs on software that's being developed by Ruby Together,

217
00:12:21.200 --> 00:12:23.320
<v Speaker 1>and so they decided to merge, and so they did,

218
00:12:23.919 --> 00:12:27.759
<v Speaker 1>and they merged, and so what wound up happening was

219
00:12:28.600 --> 00:12:33.519
<v Speaker 1>now Butler rubygms, dot org and Rubygms are all maintained

220
00:12:33.519 --> 00:12:36.320
<v Speaker 1>by Recentral, along with the.

221
00:12:36.159 --> 00:12:38.240
<v Speaker 2>Conferences that they are no longer going to do.

222
00:12:38.320 --> 00:12:39.919
<v Speaker 1>I don't know if they're going to still do ruby COFF,

223
00:12:40.000 --> 00:12:42.720
<v Speaker 1>but they publicly announced that they are not going to

224
00:12:42.759 --> 00:12:48.039
<v Speaker 1>do rails COMF so so anyway, so that's kind of

225
00:12:48.080 --> 00:12:51.240
<v Speaker 1>where we wind up sitting for a while, right is,

226
00:12:53.039 --> 00:12:58.720
<v Speaker 1>Ruby Central is paying the developers you know as contractors basically,

227
00:12:59.000 --> 00:13:00.919
<v Speaker 1>so they're paying a lot of these people to work

228
00:13:00.960 --> 00:13:04.200
<v Speaker 1>on the Ruby GM's infrastructure and the Bundler infrastructure and

229
00:13:04.279 --> 00:13:07.039
<v Speaker 1>a lot of this other stuff that we use all

230
00:13:07.159 --> 00:13:13.039
<v Speaker 1>the time. And Ruby Central is now responsible for all

231
00:13:13.080 --> 00:13:15.440
<v Speaker 1>of this infrastructure and our supply chain to get us

232
00:13:15.480 --> 00:13:19.279
<v Speaker 1>gems right. And so you can kind of see where

233
00:13:19.279 --> 00:13:23.080
<v Speaker 1>we're headed with this, right So, if they have a

234
00:13:23.120 --> 00:13:30.120
<v Speaker 1>responsibility for that, then they might have some liability if

235
00:13:30.320 --> 00:13:36.399
<v Speaker 1>there's a supply chain attack and you know, the problems

236
00:13:36.399 --> 00:13:41.360
<v Speaker 1>aren't handled properly. And so it's my understanding. And again

237
00:13:41.440 --> 00:13:43.799
<v Speaker 1>this is I talked to a whole bunch of people.

238
00:13:45.080 --> 00:13:48.720
<v Speaker 1>I can't really name anyone source for this. It's it's

239
00:13:48.759 --> 00:13:52.039
<v Speaker 1>been gathered over a number of conversations. But my understanding

240
00:13:52.159 --> 00:13:56.519
<v Speaker 1>is is that the board Ruby Central started getting legal

241
00:13:56.519 --> 00:14:01.440
<v Speaker 1>advice that indicated that they could have some level of

242
00:14:01.519 --> 00:14:06.080
<v Speaker 1>vulnerable or of liability if there was.

243
00:14:06.120 --> 00:14:07.840
<v Speaker 2>If there was a supply chain attack.

244
00:14:08.639 --> 00:14:13.000
<v Speaker 1>And the other concern was that the developers that work

245
00:14:13.039 --> 00:14:16.960
<v Speaker 1>on these systems didn't really have the kinds of liability

246
00:14:17.000 --> 00:14:21.320
<v Speaker 1>protections that they ought to, right, so if somebody made

247
00:14:21.360 --> 00:14:25.759
<v Speaker 1>a mistake building ruby gems the CLI, and somebody else

248
00:14:25.879 --> 00:14:29.159
<v Speaker 1>was able to exploit that and do a mass supply

249
00:14:29.240 --> 00:14:32.919
<v Speaker 1>chain attack, they might be personally liable. And so there

250
00:14:32.960 --> 00:14:36.519
<v Speaker 1>were these concerns that were coming up, but mainly, if

251
00:14:36.639 --> 00:14:41.320
<v Speaker 1>Ruby Central gets sued and gets taken down, then who's

252
00:14:41.320 --> 00:14:43.200
<v Speaker 1>going to run RubyGems dot org and who's going to

253
00:14:43.240 --> 00:14:45.000
<v Speaker 1>do the work to protect the supply chain and things

254
00:14:45.039 --> 00:14:50.399
<v Speaker 1>like that. So, and here's where I'm not going to

255
00:14:50.440 --> 00:14:53.919
<v Speaker 1>represent anything that I haven't heard or don't know, but

256
00:14:54.039 --> 00:14:57.360
<v Speaker 1>it's my understanding that they determined that they needed to

257
00:14:57.720 --> 00:15:03.720
<v Speaker 1>amend the agreements they had with these other open source

258
00:15:03.759 --> 00:15:09.320
<v Speaker 1>maintainers so that Ruby Central could protect itself in the

259
00:15:09.360 --> 00:15:15.679
<v Speaker 1>case of, you know, something going really badly, and on

260
00:15:15.879 --> 00:15:22.399
<v Speaker 1>the other side, provides some level of indemnification to the

261
00:15:23.720 --> 00:15:27.759
<v Speaker 1>Ruby The Butler and Ruby Gems maintainers, right, so that

262
00:15:28.320 --> 00:15:32.279
<v Speaker 1>if something happened and they got personally sued, that Ruby

263
00:15:32.320 --> 00:15:36.240
<v Speaker 1>Central would be in a position to help protect them

264
00:15:35.919 --> 00:15:39.679
<v Speaker 1>from legal jeopardy. And so the other thing is is,

265
00:15:39.799 --> 00:15:42.039
<v Speaker 1>and I've seen this in other open source systems where

266
00:15:42.639 --> 00:15:47.519
<v Speaker 1>if you contribute to a project, so legally under US law,

267
00:15:47.600 --> 00:15:51.960
<v Speaker 1>if you write code, you own the code. And so

268
00:15:52.240 --> 00:15:54.679
<v Speaker 1>usually if you're working on some kind of system that's

269
00:15:55.240 --> 00:15:59.519
<v Speaker 1>out there at all, then especially if it has a license,

270
00:15:59.559 --> 00:16:02.320
<v Speaker 1>it's not like MIT, right, because if it's MIT license,

271
00:16:02.600 --> 00:16:05.039
<v Speaker 1>the license basically says take this and do whatever you

272
00:16:05.039 --> 00:16:07.639
<v Speaker 1>want with it, right, And so then there's there's not

273
00:16:07.720 --> 00:16:11.759
<v Speaker 1>really any like I can't come after you for using

274
00:16:11.799 --> 00:16:13.480
<v Speaker 1>my code because it's MIT license.

275
00:16:13.720 --> 00:16:13.840
<v Speaker 2>Right.

276
00:16:13.960 --> 00:16:17.159
<v Speaker 1>If I license an MIT, it says explicitly in there

277
00:16:17.159 --> 00:16:18.480
<v Speaker 1>you can do whatever you want with it, and so

278
00:16:19.399 --> 00:16:23.440
<v Speaker 1>I'm essentially giving over my copyright protection on the code

279
00:16:23.679 --> 00:16:25.399
<v Speaker 1>and allowing you to do what you want with it.

280
00:16:25.440 --> 00:16:28.360
<v Speaker 1>But some of the other licenses out there don't allow that.

281
00:16:28.440 --> 00:16:30.399
<v Speaker 1>And so then what happens is a lot of times

282
00:16:30.440 --> 00:16:33.960
<v Speaker 1>you'll have a contributor agreement that says, if you contribute

283
00:16:34.039 --> 00:16:38.200
<v Speaker 1>to our code base, then we own the code, and

284
00:16:38.360 --> 00:16:41.120
<v Speaker 1>we control the license, and we're able to write, we're

285
00:16:41.159 --> 00:16:43.480
<v Speaker 1>able to put it out however we want, right and

286
00:16:43.519 --> 00:16:46.600
<v Speaker 1>so then they can continue to maintain it under an

287
00:16:46.600 --> 00:16:49.519
<v Speaker 1>Apache license or things like that, and they don't have

288
00:16:49.559 --> 00:16:55.799
<v Speaker 1>any obligation to you to you know, they don't forget

289
00:16:55.840 --> 00:16:58.480
<v Speaker 1>your permission if they want to do something else with

290
00:16:58.480 --> 00:17:02.639
<v Speaker 1>the project leader, and so it gives the project owner

291
00:17:02.679 --> 00:17:06.359
<v Speaker 1>of flexibility. And so it's my understanding that that's kind

292
00:17:06.359 --> 00:17:08.680
<v Speaker 1>of the direction that Ruby Central was looking to go to,

293
00:17:09.200 --> 00:17:11.759
<v Speaker 1>where they could then have these kinds of contributor agreements

294
00:17:11.759 --> 00:17:15.799
<v Speaker 1>that would allow them to operate and have a little

295
00:17:15.799 --> 00:17:20.279
<v Speaker 1>more control over how rubygms, RubyGems dot org and things

296
00:17:20.319 --> 00:17:24.759
<v Speaker 1>like that we were managed. But if you look at

297
00:17:24.799 --> 00:17:26.279
<v Speaker 1>it from the other side, I mean, some of these

298
00:17:26.279 --> 00:17:28.079
<v Speaker 1>folks have been working on these projects for more than

299
00:17:28.079 --> 00:17:31.640
<v Speaker 1>ten years and have done a ton of work, and

300
00:17:31.680 --> 00:17:36.279
<v Speaker 1>they've kind of operated in this arena where they didn't

301
00:17:36.359 --> 00:17:40.400
<v Speaker 1>have as much oversight and they didn't have people telling

302
00:17:40.440 --> 00:17:43.720
<v Speaker 1>them what they could and couldn't do, and you know,

303
00:17:43.759 --> 00:17:46.680
<v Speaker 1>they felt a sense of ownership over the project, which

304
00:17:47.079 --> 00:17:52.720
<v Speaker 1>you know, I think is terrific. And so Ruby Central

305
00:17:52.799 --> 00:17:55.519
<v Speaker 1>coming in and saying hey, guys, we need you to

306
00:17:55.599 --> 00:18:00.119
<v Speaker 1>sign these agreements and do X, y and z in

307
00:18:00.200 --> 00:18:04.400
<v Speaker 1>order to continue to work on this project. And you know,

308
00:18:04.480 --> 00:18:07.000
<v Speaker 1>we're going to take a more active and controlling role

309
00:18:07.200 --> 00:18:10.400
<v Speaker 1>on this open source project that you've just worked on

310
00:18:10.519 --> 00:18:13.640
<v Speaker 1>and contributed you know, hours and hours and years of

311
00:18:13.680 --> 00:18:16.960
<v Speaker 1>your life to. Right, we're taking a level of ownership

312
00:18:17.000 --> 00:18:20.759
<v Speaker 1>away from you. I totally understand these people going, whoa, whoa,

313
00:18:20.799 --> 00:18:25.720
<v Speaker 1>Wait a minute, right, we don't remember signing up for this, right,

314
00:18:26.319 --> 00:18:29.799
<v Speaker 1>we signed up for Hey, you know, let's fund this

315
00:18:29.880 --> 00:18:31.920
<v Speaker 1>stuff in the way that it gets funded.

316
00:18:32.160 --> 00:18:32.319
<v Speaker 2>Right.

317
00:18:32.839 --> 00:18:35.400
<v Speaker 1>But I also can see the side of things from

318
00:18:35.480 --> 00:18:39.200
<v Speaker 1>Ruby Central's angle where they're looking at it and going,

319
00:18:41.079 --> 00:18:44.880
<v Speaker 1>if we own and are responsible for the code in Bundler,

320
00:18:45.519 --> 00:18:48.400
<v Speaker 1>in the Ruby gmc l I and rubygms dot org,

321
00:18:49.799 --> 00:18:53.400
<v Speaker 1>and something bad happens even though we didn't do it, right,

322
00:18:53.440 --> 00:18:57.359
<v Speaker 1>it's it's a contributor that's here, that's contracted through us.

323
00:18:58.400 --> 00:19:02.680
<v Speaker 1>We bear the brunt of that liability, and so we

324
00:19:02.759 --> 00:19:06.359
<v Speaker 1>need to have certain guarantees in order to be able

325
00:19:06.400 --> 00:19:09.079
<v Speaker 1>to say no, we've done everything we can, because then

326
00:19:09.119 --> 00:19:11.400
<v Speaker 1>if they get sued and they say, look, you know,

327
00:19:12.079 --> 00:19:14.200
<v Speaker 1>we've done we did everything we could, We followed all

328
00:19:14.200 --> 00:19:18.279
<v Speaker 1>the best practices. Right, we shouldn't be held liable for

329
00:19:18.440 --> 00:19:22.960
<v Speaker 1>a thing that is impossible to foresee and uh, where

330
00:19:23.000 --> 00:19:26.880
<v Speaker 1>there's not really a good practice for protecting against it, right,

331
00:19:27.480 --> 00:19:29.559
<v Speaker 1>then then they can they can put together a much

332
00:19:29.599 --> 00:19:32.279
<v Speaker 1>more sound defense because at the end of the day,

333
00:19:32.279 --> 00:19:34.960
<v Speaker 1>they can tell the court, no, we did everything we

334
00:19:34.960 --> 00:19:36.960
<v Speaker 1>were supposed to do, right, and it's not it's not

335
00:19:37.359 --> 00:19:40.599
<v Speaker 1>negligence or malice on our part, and so we can't

336
00:19:40.599 --> 00:19:45.920
<v Speaker 1>be held liable. Right And and so I understand. I

337
00:19:46.000 --> 00:19:49.119
<v Speaker 1>understand both sides. I understand the push and pull. So

338
00:19:49.920 --> 00:19:52.920
<v Speaker 1>here's here's where things kind of get a little dicey

339
00:19:53.039 --> 00:19:55.799
<v Speaker 1>for me on the Ruby Central side, right, because for

340
00:19:55.880 --> 00:19:59.720
<v Speaker 1>the most part, I understand where Ruby Central is coming from,

341
00:19:59.799 --> 00:20:02.400
<v Speaker 1>and I support them in what they were doing as

342
00:20:02.400 --> 00:20:05.519
<v Speaker 1>far as their motivations and things like that. Right, I

343
00:20:06.200 --> 00:20:09.359
<v Speaker 1>haven't seen any evidence that suggests that this was some

344
00:20:09.440 --> 00:20:13.319
<v Speaker 1>kind of hostile takeover, that there's some ego involved, or

345
00:20:13.359 --> 00:20:16.559
<v Speaker 1>that there's some kind of you know, malicious intent to

346
00:20:16.759 --> 00:20:21.200
<v Speaker 1>screw over the community, or some political gamesmanship that has

347
00:20:21.240 --> 00:20:23.480
<v Speaker 1>to do with these contributors. I haven't seen any evidence

348
00:20:23.480 --> 00:20:26.119
<v Speaker 1>of that at all. And so for the most part,

349
00:20:26.160 --> 00:20:27.759
<v Speaker 1>I think Ruby Central was just trying to do the

350
00:20:27.799 --> 00:20:29.200
<v Speaker 1>right thing, and they did.

351
00:20:29.039 --> 00:20:31.079
<v Speaker 2>It really really really really really really.

352
00:20:30.880 --> 00:20:36.880
<v Speaker 1>Really really poorly, right, because the first thing they should

353
00:20:36.920 --> 00:20:38.480
<v Speaker 1>have done is they should have been doing all of

354
00:20:38.519 --> 00:20:42.799
<v Speaker 1>this in public, right. I understand that maybe they don't

355
00:20:42.799 --> 00:20:47.440
<v Speaker 1>want to public publicize, Hey, we have this legal exposure, right,

356
00:20:48.599 --> 00:20:50.920
<v Speaker 1>you know, if this, if any of this happens, then

357
00:20:50.960 --> 00:20:53.480
<v Speaker 1>we're legally liable, and so we're trying to fix it. Hey, folks,

358
00:20:53.519 --> 00:20:55.799
<v Speaker 1>don't sue us in the meantime, Right that maybe that's

359
00:20:55.839 --> 00:20:56.440
<v Speaker 1>not the best.

360
00:20:56.240 --> 00:20:56.640
<v Speaker 2>Way to go.

361
00:20:57.200 --> 00:20:59.960
<v Speaker 1>But what they could do could have done, is they

362
00:21:00.079 --> 00:21:03.519
<v Speaker 1>could have said and they could have come out and announced, right, hey,

363
00:21:04.079 --> 00:21:06.960
<v Speaker 1>we are putting a new policy in place for contributors

364
00:21:08.319 --> 00:21:11.119
<v Speaker 1>so that you know, so that we have these kinds

365
00:21:11.119 --> 00:21:15.440
<v Speaker 1>of guarantees on the work that they do, and we're

366
00:21:15.480 --> 00:21:20.079
<v Speaker 1>providing these kinds of protections for the contributors on the

367
00:21:20.119 --> 00:21:22.359
<v Speaker 1>work that they do. And we're we're just trying to

368
00:21:22.440 --> 00:21:26.160
<v Speaker 1>kind of button up some areas so that we can

369
00:21:26.160 --> 00:21:31.079
<v Speaker 1>protect the community and that we can protect the we

370
00:21:31.119 --> 00:21:33.279
<v Speaker 1>can protect rev Central, right, and that way we can

371
00:21:33.319 --> 00:21:36.759
<v Speaker 1>continue to provide services, we can continue to work on

372
00:21:36.839 --> 00:21:38.799
<v Speaker 1>these libraries and we can continue to give people what

373
00:21:38.880 --> 00:21:42.680
<v Speaker 1>they need, right and maybe you know, not in so

374
00:21:42.759 --> 00:21:45.559
<v Speaker 1>many words, tell us, you know that they're they're trying

375
00:21:45.599 --> 00:21:48.480
<v Speaker 1>to they're trying to for the longevity of the of

376
00:21:48.519 --> 00:21:53.599
<v Speaker 1>the system to make these changes and then acknowledge right

377
00:21:53.680 --> 00:21:57.119
<v Speaker 1>that this may be painful and that the contributors are

378
00:21:57.119 --> 00:22:01.880
<v Speaker 1>probably used to working under different constraints, and we're working to.

379
00:22:01.839 --> 00:22:04.440
<v Speaker 2>Make sure that this is as painless as possible. Because

380
00:22:04.480 --> 00:22:06.240
<v Speaker 2>then when you go in and you.

381
00:22:06.240 --> 00:22:11.720
<v Speaker 1>Eventually revoke access or you know, try and get really

382
00:22:11.839 --> 00:22:14.799
<v Speaker 1>you know, maybe even push twist arms a little bit

383
00:22:15.200 --> 00:22:18.240
<v Speaker 1>to get them to sign these agreements, then people know

384
00:22:18.359 --> 00:22:18.960
<v Speaker 1>it's coming.

385
00:22:19.440 --> 00:22:20.480
<v Speaker 2>They know what's up.

386
00:22:21.039 --> 00:22:24.359
<v Speaker 1>They know that the Ruby Central I keep wanting to

387
00:22:24.359 --> 00:22:26.240
<v Speaker 1>say the foundation, but again I don't know if it's

388
00:22:26.319 --> 00:22:27.039
<v Speaker 1>organized that way.

389
00:22:27.680 --> 00:22:28.599
<v Speaker 2>But at the end of the.

390
00:22:28.640 --> 00:22:33.680
<v Speaker 1>Day, right, just so that people can see this coming

391
00:22:33.759 --> 00:22:36.960
<v Speaker 1>and go, oh, well, they obviously wouldn't agree to the

392
00:22:37.440 --> 00:22:40.920
<v Speaker 1>you know, the terms on Ruby Central, and yeah, I'm

393
00:22:41.000 --> 00:22:45.519
<v Speaker 1>frustrated on behalf of these folks, but you know, it

394
00:22:45.599 --> 00:22:48.160
<v Speaker 1>was all done above board, It was all transparent. We

395
00:22:48.200 --> 00:22:50.519
<v Speaker 1>all knew it was coming, right, and then they can

396
00:22:50.519 --> 00:22:52.680
<v Speaker 1>come out and they can make similar announcements because these

397
00:22:52.680 --> 00:22:57.119
<v Speaker 1>people are people that we all really rely on and

398
00:22:57.119 --> 00:22:59.519
<v Speaker 1>in a lot of cases at least trust, right, we

399
00:22:59.559 --> 00:23:03.039
<v Speaker 1>trust their code and things like that. So, you know,

400
00:23:03.079 --> 00:23:05.160
<v Speaker 1>they had to know that these folks have a little

401
00:23:05.200 --> 00:23:07.759
<v Speaker 1>bit of pull and that you know, if if it's

402
00:23:07.799 --> 00:23:11.279
<v Speaker 1>painful for them, we are all going to know and

403
00:23:11.440 --> 00:23:13.440
<v Speaker 1>a lot of us are going to be sympathetic to them, right,

404
00:23:14.079 --> 00:23:16.920
<v Speaker 1>and so, and again I don't know what level they

405
00:23:16.920 --> 00:23:20.640
<v Speaker 1>had communication with the contributors themselves. It sounded like they

406
00:23:20.680 --> 00:23:25.160
<v Speaker 1>were somewhat blindsided or completely blindsided, and that's not okay, right,

407
00:23:25.240 --> 00:23:27.880
<v Speaker 1>And so what what Ruby Central should have done is

408
00:23:27.880 --> 00:23:30.640
<v Speaker 1>they should have done this all above board and transparently

409
00:23:31.119 --> 00:23:33.440
<v Speaker 1>so that people could kind of connect the dots and

410
00:23:33.440 --> 00:23:36.839
<v Speaker 1>see it all coming. And they definitely, definitely, definitely should

411
00:23:36.839 --> 00:23:39.480
<v Speaker 1>have been talking to contributors, right. This should not have

412
00:23:39.519 --> 00:23:42.880
<v Speaker 1>been a surprise of contributors. It should have been a hey, look,

413
00:23:43.759 --> 00:23:45.799
<v Speaker 1>this is this is the contributor agreement that.

414
00:23:45.839 --> 00:23:48.160
<v Speaker 2>We're gonna we're going to enforce.

415
00:23:49.160 --> 00:23:52.039
<v Speaker 1>If you have any concerns or you think we could

416
00:23:52.119 --> 00:23:55.880
<v Speaker 1>change things in it, right, we're welcome to talk through it.

417
00:23:56.599 --> 00:23:56.799
<v Speaker 2>Right.

418
00:23:57.680 --> 00:24:00.920
<v Speaker 1>You know, this is what we're trying to do with

419
00:24:03.319 --> 00:24:07.400
<v Speaker 1>liability and longevity and things like that. And so ultimately

420
00:24:07.440 --> 00:24:09.079
<v Speaker 1>we're just trying to do the best by you, but

421
00:24:09.160 --> 00:24:11.240
<v Speaker 1>also make sure that we're doing right by the community.

422
00:24:11.960 --> 00:24:14.759
<v Speaker 1>And so then at least then you might have some

423
00:24:14.799 --> 00:24:17.240
<v Speaker 1>of the contributors coming out and saying, no, they told

424
00:24:17.319 --> 00:24:21.640
<v Speaker 1>us a while ago, and we've been negotiating on the

425
00:24:24.000 --> 00:24:28.240
<v Speaker 1>on the contributor agreement, and you know, and so you know,

426
00:24:28.519 --> 00:24:30.960
<v Speaker 1>these are the areas where it broke down. These are

427
00:24:31.000 --> 00:24:33.240
<v Speaker 1>the couple of things in the agreement that I didn't like,

428
00:24:33.400 --> 00:24:36.119
<v Speaker 1>and so you know, ultimately I wound up not signing

429
00:24:36.160 --> 00:24:40.720
<v Speaker 1>it and resigning right that that it just changes the

430
00:24:40.720 --> 00:24:45.680
<v Speaker 1>whole tenor of the thing, right, And and then on

431
00:24:45.720 --> 00:24:48.039
<v Speaker 1>the other side, right then we can also see that

432
00:24:48.039 --> 00:24:51.839
<v Speaker 1>they're negotiating in good faith right anyway. So so Ruby's

433
00:24:52.039 --> 00:24:56.119
<v Speaker 1>Central just screwed this up like massive, big time. And

434
00:24:56.160 --> 00:25:01.519
<v Speaker 1>then the other thing I understand is that somebody in

435
00:25:01.599 --> 00:25:07.720
<v Speaker 1>them in who was one of the major contributors left

436
00:25:07.799 --> 00:25:10.839
<v Speaker 1>or be Central, and so they had to replace somebody anyway.

437
00:25:10.880 --> 00:25:12.359
<v Speaker 2>And so my understanding is is.

438
00:25:12.319 --> 00:25:15.759
<v Speaker 1>That that caused the board to want to accelerate the

439
00:25:15.799 --> 00:25:18.279
<v Speaker 1>timeline because whoever they brought in was going to be

440
00:25:18.279 --> 00:25:22.920
<v Speaker 1>working on some pretty major stuff, and if they brought

441
00:25:22.960 --> 00:25:25.200
<v Speaker 1>them in, they could just have them under the agreement

442
00:25:25.200 --> 00:25:28.319
<v Speaker 1>to begin with. And so it's my understanding that they

443
00:25:28.359 --> 00:25:31.759
<v Speaker 1>started looking at that, and then that's when the board

444
00:25:31.920 --> 00:25:37.480
<v Speaker 1>essentially directed the folks that run the infrastructure to start

445
00:25:38.400 --> 00:25:43.200
<v Speaker 1>removing access and you know, changing the GitHub organization and

446
00:25:43.240 --> 00:25:47.000
<v Speaker 1>things like that, and so that kind of happened in

447
00:25:47.039 --> 00:25:50.279
<v Speaker 1>a hurry all at once. And again that was something

448
00:25:50.319 --> 00:25:54.240
<v Speaker 1>that they really shouldn't have done, because there's no reason

449
00:25:54.599 --> 00:25:56.920
<v Speaker 1>that they can't bring the new people on under the

450
00:25:57.000 --> 00:25:59.839
<v Speaker 1>under some kind of agreement and keep the old people

451
00:25:59.880 --> 00:26:03.400
<v Speaker 1>on under you know, and just tell them, look, you know,

452
00:26:03.880 --> 00:26:07.440
<v Speaker 1>we're bringing we're starting to bring you know, more important

453
00:26:07.440 --> 00:26:12.000
<v Speaker 1>players in the in this system in under the agreement.

454
00:26:12.119 --> 00:26:14.359
<v Speaker 1>So we need to get you on the agreement by

455
00:26:14.359 --> 00:26:17.480
<v Speaker 1>this date, right and then and then work with the contributors.

456
00:26:17.680 --> 00:26:20.839
<v Speaker 1>So so anyway, so that you know that that's that's

457
00:26:20.960 --> 00:26:24.440
<v Speaker 1>kind of the mess. Now, a couple of other things

458
00:26:24.480 --> 00:26:32.559
<v Speaker 1>that happened. We're so RubyGems dot org got forked and

459
00:26:32.599 --> 00:26:36.240
<v Speaker 1>I need to go look up. I think it's Ruby

460
00:26:36.279 --> 00:26:38.759
<v Speaker 1>dot coop. I'll have to find it. I was reading

461
00:26:38.839 --> 00:26:43.880
<v Speaker 1>up on it the other day anyway, So so yeah,

462
00:26:44.079 --> 00:26:52.279
<v Speaker 1>so uh kind of the way that things are looking now, yeah,

463
00:26:52.319 --> 00:26:55.160
<v Speaker 1>I'll find I'll find the link. But anyway, feel free

464
00:26:55.160 --> 00:27:00.720
<v Speaker 1>to go check it out. I'm personally not uh, I'm

465
00:27:00.759 --> 00:27:03.599
<v Speaker 1>I'm gonna keep using Ruby gems until until I feel

466
00:27:03.599 --> 00:27:06.920
<v Speaker 1>like I have a real reason to switch. Right now,

467
00:27:06.960 --> 00:27:08.799
<v Speaker 1>I think again, you know, I think they're trying to

468
00:27:08.799 --> 00:27:13.400
<v Speaker 1>act in the best interest of the the the community.

469
00:27:13.440 --> 00:27:16.640
<v Speaker 1>But at the end of the day, yeah, and anyway,

470
00:27:16.680 --> 00:27:18.759
<v Speaker 1>it might it might not be Ruby dot coop, but

471
00:27:18.799 --> 00:27:20.440
<v Speaker 1>it might be like co op is the way that

472
00:27:20.440 --> 00:27:21.240
<v Speaker 1>they're looking at it.

473
00:27:21.319 --> 00:27:23.559
<v Speaker 2>Anyway, So gem dot coop. There we go.

474
00:27:23.720 --> 00:27:27.720
<v Speaker 1>Okay, so it's gem dot coop. It's at gem dot

475
00:27:27.839 --> 00:27:35.680
<v Speaker 1>co op. So it's a new Ruby gem server. Looks

476
00:27:35.720 --> 00:27:39.200
<v Speaker 1>like Mike McQuaid is helping them set it up, and

477
00:27:39.519 --> 00:27:43.440
<v Speaker 1>it kind of follows the homebrew model. And then yeah,

478
00:27:43.519 --> 00:27:46.480
<v Speaker 1>you can swap in your bundle, bundle, your gem file.

479
00:27:46.960 --> 00:27:49.960
<v Speaker 1>You can swap out Ruby gems dot org to gem

480
00:27:50.000 --> 00:27:54.480
<v Speaker 1>dot coop. So anyway, and yeah, you know, so, so

481
00:27:54.559 --> 00:27:55.519
<v Speaker 1>the contributors are upset.

482
00:27:55.559 --> 00:27:56.599
<v Speaker 2>They went and started their own thing.

483
00:27:58.359 --> 00:28:01.480
<v Speaker 1>But this is where it gets a little it weird

484
00:28:01.920 --> 00:28:05.839
<v Speaker 1>on the contributor side. So apparently, and there was a

485
00:28:05.839 --> 00:28:08.279
<v Speaker 1>whole write up on this on Ruby Central and all

486
00:28:08.279 --> 00:28:13.759
<v Speaker 1>linked to it in the show notes. But apparently, so

487
00:28:13.799 --> 00:28:18.440
<v Speaker 1>they went and they revoked everybody's access to the the repos, right,

488
00:28:18.519 --> 00:28:20.200
<v Speaker 1>and but they're all they're all public.

489
00:28:20.000 --> 00:28:22.079
<v Speaker 2>Reposts, so you can go and you can fork it, right,

490
00:28:22.160 --> 00:28:22.799
<v Speaker 2>not a big deal.

491
00:28:24.559 --> 00:28:27.960
<v Speaker 1>And so I'm assuming that that's what gem dot coop

492
00:28:28.039 --> 00:28:30.440
<v Speaker 1>is doing, is that they just forked RubyGems dot org

493
00:28:30.480 --> 00:28:34.720
<v Speaker 1>and then you know, they're seeding it with whatever Gem

494
00:28:34.759 --> 00:28:40.799
<v Speaker 1>information they have. But it's all hosted on AWS. And

495
00:28:40.920 --> 00:28:48.920
<v Speaker 1>apparently the route access certificate or credential wasn't rotated when

496
00:28:49.319 --> 00:28:53.480
<v Speaker 1>they removed people's access to the other stuff, and so

497
00:28:53.680 --> 00:28:55.640
<v Speaker 1>a lot of folks were still able to access the

498
00:28:55.720 --> 00:29:01.640
<v Speaker 1>RubyGems dot org servers and so and so this is

499
00:29:01.680 --> 00:29:05.440
<v Speaker 1>the other part of the drama. And you know, and

500
00:29:05.480 --> 00:29:06.759
<v Speaker 1>a lot of people have weighed in and said no

501
00:29:06.839 --> 00:29:09.960
<v Speaker 1>ruby jams, blah blah blah. I've heard some people try

502
00:29:10.000 --> 00:29:12.359
<v Speaker 1>and pin a lot of this on shopify. I don't

503
00:29:12.400 --> 00:29:16.240
<v Speaker 1>find any of that evidence compelling. I really think that

504
00:29:16.279 --> 00:29:18.759
<v Speaker 1>it was just the Ruby gems board and then really

505
00:29:19.160 --> 00:29:25.160
<v Speaker 1>screwing it up anyway. So a lot of the contributors

506
00:29:25.680 --> 00:29:29.559
<v Speaker 1>who had helped maintain the systems still had access to

507
00:29:29.599 --> 00:29:34.680
<v Speaker 1>the ruby gems servers, and so the folks at Ruby

508
00:29:34.680 --> 00:29:36.680
<v Speaker 1>Central actually posted some of the emails that they got

509
00:29:36.680 --> 00:29:40.000
<v Speaker 1>from Andre Arco and where he was saying, Hey, maybe

510
00:29:40.000 --> 00:29:45.359
<v Speaker 1>we could monetize or otherwise lease the log information from

511
00:29:45.839 --> 00:29:49.640
<v Speaker 1>RubyGems dot org and you know, work out some kind

512
00:29:49.640 --> 00:29:53.599
<v Speaker 1>of arrangement where they could use that. And Ruby Central

513
00:29:53.640 --> 00:29:57.119
<v Speaker 1>told them no, told him and whoever was working with

514
00:29:57.200 --> 00:30:02.519
<v Speaker 1>him no. But then they show Mode that and he

515
00:30:02.559 --> 00:30:04.839
<v Speaker 1>told him he still had access to the servers, and

516
00:30:04.880 --> 00:30:08.359
<v Speaker 1>apparently they didn't solve that in a timely manner, right,

517
00:30:08.640 --> 00:30:11.119
<v Speaker 1>there was a few days and he still logged in,

518
00:30:11.559 --> 00:30:15.359
<v Speaker 1>and they imply that it was him without actually directly

519
00:30:15.759 --> 00:30:18.440
<v Speaker 1>saying it. They implied that it was Andre that was

520
00:30:18.480 --> 00:30:22.880
<v Speaker 1>getting in. The evidence really does point that way, But

521
00:30:22.960 --> 00:30:27.599
<v Speaker 1>I haven't seen the logs firsthand or anything to be

522
00:30:27.599 --> 00:30:31.720
<v Speaker 1>able to definitively say no, this really, you know, really

523
00:30:31.720 --> 00:30:37.759
<v Speaker 1>implicates Andre. So I'm a little uncomfortable putting his attaching

524
00:30:37.759 --> 00:30:40.400
<v Speaker 1>his name to it. But somebody who had that level

525
00:30:40.400 --> 00:30:44.000
<v Speaker 1>of access logged in and then they started changing credentials

526
00:30:44.200 --> 00:30:46.839
<v Speaker 1>on the ruby jem server, and so the folks at

527
00:30:46.880 --> 00:30:49.279
<v Speaker 1>Ruby Central couldn't get in, They couldn't get into the

528
00:30:49.640 --> 00:30:52.799
<v Speaker 1>AWS setup, and so they wound up having to contact

529
00:30:52.839 --> 00:30:57.039
<v Speaker 1>AWS and doing a credentials reset, and then they went

530
00:30:57.079 --> 00:30:59.799
<v Speaker 1>in and they fixed it all up. But they could

531
00:30:59.799 --> 00:31:02.480
<v Speaker 1>see that whoever it was it logged in several times

532
00:31:03.000 --> 00:31:06.880
<v Speaker 1>had accessed a bit of information. It didn't look like

533
00:31:06.960 --> 00:31:10.400
<v Speaker 1>they had copied anything off, but.

534
00:31:11.839 --> 00:31:12.400
<v Speaker 2>He did.

535
00:31:12.640 --> 00:31:14.480
<v Speaker 1>Anyway, there are a couple of things here that just

536
00:31:14.559 --> 00:31:17.160
<v Speaker 1>kind of really make me scratch my head, I mean.

537
00:31:18.000 --> 00:31:20.680
<v Speaker 1>And then Andre came out later and actually and so

538
00:31:21.279 --> 00:31:23.400
<v Speaker 1>this is where it really looks like it was him.

539
00:31:23.720 --> 00:31:26.559
<v Speaker 1>He said in his blog post that he went in

540
00:31:26.599 --> 00:31:29.839
<v Speaker 1>and was changing the credentials so that the system wouldn't

541
00:31:29.839 --> 00:31:34.119
<v Speaker 1>get a compromise. But the way that it was explained

542
00:31:34.119 --> 00:31:36.880
<v Speaker 1>on Ruby Central, and you know, the logs that they

543
00:31:36.920 --> 00:31:39.160
<v Speaker 1>presented and things like that, some of that just doesn't

544
00:31:39.200 --> 00:31:42.319
<v Speaker 1>quite add up to what Andre says he was doing

545
00:31:42.359 --> 00:31:46.000
<v Speaker 1>in there. And the other thing is is that I

546
00:31:46.039 --> 00:31:49.000
<v Speaker 1>think he probably could have done more to just kind

547
00:31:49.000 --> 00:31:56.880
<v Speaker 1>of force them around, because yeah, I mean, at some

548
00:31:57.000 --> 00:31:59.720
<v Speaker 1>point you're gonna, you know, you could get enough public

549
00:31:59.759 --> 00:32:02.200
<v Speaker 1>out cry from the community saying, you guys are putting

550
00:32:02.240 --> 00:32:05.839
<v Speaker 1>us all at risk if you don't change this. But anyway,

551
00:32:06.000 --> 00:32:08.240
<v Speaker 1>but the flip side is is than anybody who wants

552
00:32:08.240 --> 00:32:11.759
<v Speaker 1>to go in and try and hack it right might

553
00:32:11.799 --> 00:32:14.359
<v Speaker 1>be able to get in. So I don't know, I

554
00:32:14.359 --> 00:32:16.240
<v Speaker 1>don't know what the answer would have been, but I

555
00:32:16.240 --> 00:32:18.039
<v Speaker 1>think there were better ways for him to handle it.

556
00:32:18.440 --> 00:32:20.279
<v Speaker 1>And the other thing is is that if he wanted

557
00:32:20.279 --> 00:32:24.039
<v Speaker 1>that data because it would help them set up gem

558
00:32:24.079 --> 00:32:28.119
<v Speaker 1>dot coop and make gem dot coop you know run better,

559
00:32:28.359 --> 00:32:33.920
<v Speaker 1>or know what kinds of performance aspects or you know,

560
00:32:34.240 --> 00:32:38.359
<v Speaker 1>access patterns or anything else. I mean, all of that

561
00:32:38.359 --> 00:32:42.000
<v Speaker 1>stuff would have been in those logs and probably could

562
00:32:42.000 --> 00:32:45.640
<v Speaker 1>have helped them get that set up. And so that

563
00:32:45.640 --> 00:32:47.440
<v Speaker 1>that doesn't sit quite right with me.

564
00:32:48.960 --> 00:32:52.200
<v Speaker 2>And just you know, getting in and accessing stuff that.

565
00:32:52.119 --> 00:32:57.759
<v Speaker 1>Way when you've been you know, when they've basically let

566
00:32:57.759 --> 00:33:01.960
<v Speaker 1>you go from the organization and stuff like that, that

567
00:33:02.000 --> 00:33:05.920
<v Speaker 1>doesn't sit right with me either, And so I have

568
00:33:06.000 --> 00:33:10.400
<v Speaker 1>some really really grave concerns there. I've also seen Andre

569
00:33:10.759 --> 00:33:12.759
<v Speaker 1>do some other things where he's gone on the attack

570
00:33:12.839 --> 00:33:18.039
<v Speaker 1>for against other people, and so he seems like as

571
00:33:18.039 --> 00:33:19.960
<v Speaker 1>far as like a maintainer of Butler, I think he's

572
00:33:20.000 --> 00:33:20.960
<v Speaker 1>done a terrific job.

573
00:33:21.039 --> 00:33:23.559
<v Speaker 2>But as a member of the community.

574
00:33:23.039 --> 00:33:25.319
<v Speaker 1>I think sometimes he is a little bit of a

575
00:33:25.359 --> 00:33:28.799
<v Speaker 1>loose cannon and the way that he approaches some of

576
00:33:28.799 --> 00:33:33.559
<v Speaker 1>these issues, and so I'm I'm very not comfortable with,

577
00:33:36.039 --> 00:33:38.039
<v Speaker 1>you know, letting him off the hook either. In fact,

578
00:33:39.359 --> 00:33:41.519
<v Speaker 1>if I were Ruby Central, I would I would be

579
00:33:41.680 --> 00:33:46.839
<v Speaker 1>giving a serious look to you know, what repercussions can

580
00:33:47.440 --> 00:33:49.200
<v Speaker 1>you know, come against him. I don't know that I

581
00:33:49.240 --> 00:33:52.200
<v Speaker 1>necessarily want them to sue him or anything, but you know,

582
00:33:52.279 --> 00:33:56.119
<v Speaker 1>it's like, hey, look, you know, how do we how

583
00:33:56.160 --> 00:33:59.079
<v Speaker 1>do we curb this so that other bad actors aren't

584
00:33:59.079 --> 00:34:01.920
<v Speaker 1>going to do this kind of thing, right, that they'll

585
00:34:01.920 --> 00:34:06.400
<v Speaker 1>play ball in a way that actually is ethical, because

586
00:34:06.440 --> 00:34:08.199
<v Speaker 1>I think it was unethical for him to log in

587
00:34:08.239 --> 00:34:09.320
<v Speaker 1>and do any of the stuff.

588
00:34:09.119 --> 00:34:09.599
<v Speaker 2>That he did.

589
00:34:12.599 --> 00:34:15.119
<v Speaker 1>But again, you know, I mean, he said he was

590
00:34:15.199 --> 00:34:17.440
<v Speaker 1>just trying to change the credentials, and if that's true,

591
00:34:18.000 --> 00:34:19.960
<v Speaker 1>then maybe he deserves the benefit of the doubt. But

592
00:34:20.159 --> 00:34:22.239
<v Speaker 1>some of the other things that were done on the servers,

593
00:34:22.239 --> 00:34:24.519
<v Speaker 1>I just I don't know, but it does look like

594
00:34:24.559 --> 00:34:28.440
<v Speaker 1>he didn't actually compromise the systems and so anyway, I'm

595
00:34:28.440 --> 00:34:30.760
<v Speaker 1>going back and forth mostly because I don't know if

596
00:34:30.760 --> 00:34:32.400
<v Speaker 1>I want them to throw the book at him. But

597
00:34:32.639 --> 00:34:34.239
<v Speaker 1>I don't think he should get away with it either,

598
00:34:34.239 --> 00:34:37.239
<v Speaker 1>because I don't think what he did was right. So anyway, whatever,

599
00:34:37.320 --> 00:34:39.360
<v Speaker 1>whatever the appropriate outcome is there, I don't know if

600
00:34:39.400 --> 00:34:44.599
<v Speaker 1>I have a proper recommendation, but anyway, so that's where

601
00:34:44.639 --> 00:34:47.760
<v Speaker 1>things are sitting. I've told a few people at Ruby

602
00:34:47.800 --> 00:34:49.639
<v Speaker 1>Central at this point that what they need to do

603
00:34:49.719 --> 00:34:52.480
<v Speaker 1>is they need to just come out and come clean

604
00:34:52.519 --> 00:34:55.800
<v Speaker 1>on all this stuff, right, just say, hey, look, this

605
00:34:55.880 --> 00:35:00.320
<v Speaker 1>is where the decisions were made, These are the strains

606
00:35:00.360 --> 00:35:02.400
<v Speaker 1>we were working under, These are the concerns that we had,

607
00:35:02.920 --> 00:35:07.559
<v Speaker 1>and so this is what we did, and this is

608
00:35:07.599 --> 00:35:09.559
<v Speaker 1>the stuff we got right, this is the stuff we

609
00:35:09.599 --> 00:35:12.360
<v Speaker 1>got wrong, and these are the procedures that we're going

610
00:35:12.440 --> 00:35:14.000
<v Speaker 1>to put into place to make sure that we don't

611
00:35:14.039 --> 00:35:17.440
<v Speaker 1>mess it up again. Right, And that way the contributors

612
00:35:17.519 --> 00:35:21.119
<v Speaker 1>can all be comfortable that they're not going to pull

613
00:35:21.159 --> 00:35:27.119
<v Speaker 1>anything where they feel like they're getting screwed over. And

614
00:35:27.159 --> 00:35:32.280
<v Speaker 1>then also you know, feel like the the GEM repositories

615
00:35:32.320 --> 00:35:34.840
<v Speaker 1>and stuff like that are all in good hands, right

616
00:35:34.920 --> 00:35:37.320
<v Speaker 1>that hey, look, yeah, we should have changed the credentials

617
00:35:37.320 --> 00:35:38.639
<v Speaker 1>and rotated the credentials, and.

618
00:35:38.599 --> 00:35:40.159
<v Speaker 2>So we have a procedure for that now.

619
00:35:40.239 --> 00:35:43.719
<v Speaker 1>And you know, we just go through the whole list

620
00:35:43.760 --> 00:35:47.239
<v Speaker 1>of things whenever somebody you know is no longer a contributor,

621
00:35:47.320 --> 00:35:50.440
<v Speaker 1>right to make sure that only authorized people have access,

622
00:35:51.440 --> 00:35:55.800
<v Speaker 1>and yeah, just stuff like that, right, and just make

623
00:35:55.840 --> 00:35:58.800
<v Speaker 1>sure that everybody knows. And then yeah, just do a

624
00:35:58.840 --> 00:36:01.079
<v Speaker 1>big Maya culpa to say, hey, look, you know, we

625
00:36:01.159 --> 00:36:04.039
<v Speaker 1>know we messed up, and so this is what we're

626
00:36:04.079 --> 00:36:06.159
<v Speaker 1>doing to be more transparent so that people don't have

627
00:36:06.199 --> 00:36:10.320
<v Speaker 1>to be concerned over the infrastructure or over the treatment

628
00:36:10.360 --> 00:36:13.039
<v Speaker 1>of the contributors because the contributors are working for us

629
00:36:13.039 --> 00:36:15.559
<v Speaker 1>for free in a lot of cases, or if they

630
00:36:15.599 --> 00:36:17.480
<v Speaker 1>are getting paid by Ruby Central, I don't think it's

631
00:36:17.519 --> 00:36:20.079
<v Speaker 1>full time, and he's just part time, and so they've

632
00:36:20.119 --> 00:36:22.239
<v Speaker 1>got to go figure out other stuff in order to

633
00:36:22.280 --> 00:36:26.079
<v Speaker 1>make stuff work. And so you know, do right by

634
00:36:26.079 --> 00:36:31.880
<v Speaker 1>those guys, right. And then on the other side, I

635
00:36:32.239 --> 00:36:35.320
<v Speaker 1>think we deserve a much better explanation from Andre regarding

636
00:36:35.400 --> 00:36:40.360
<v Speaker 1>accessing those servers. Honestly, it makes it really hard for

637
00:36:40.400 --> 00:36:43.679
<v Speaker 1>me to trust him, just because it seems like there

638
00:36:43.719 --> 00:36:46.239
<v Speaker 1>are some kinds of ulterior motives here, but I don't

639
00:36:46.280 --> 00:36:49.000
<v Speaker 1>know what they are. I don't know if gem dot

640
00:36:49.079 --> 00:36:52.119
<v Speaker 1>coop is supposed to have some kind of commercial backing

641
00:36:53.119 --> 00:36:59.000
<v Speaker 1>or right, so maybe they'll offer like private GEM repositories

642
00:36:59.039 --> 00:37:02.000
<v Speaker 1>and stuff like that like NPM eventually wound up doing

643
00:37:04.000 --> 00:37:09.079
<v Speaker 1>or stuff like that, and so anyway, I'd like to

644
00:37:09.119 --> 00:37:11.480
<v Speaker 1>see a lot of that. And then I think, I think, honestly,

645
00:37:11.519 --> 00:37:15.800
<v Speaker 1>we need to have an honest discussion in the community

646
00:37:15.840 --> 00:37:17.960
<v Speaker 1>and just be like, Okay, so at the end of

647
00:37:17.960 --> 00:37:21.360
<v Speaker 1>the day, what you know, what's our expectation from these

648
00:37:21.440 --> 00:37:24.719
<v Speaker 1>organizations that are are doing this work and from contributors

649
00:37:24.760 --> 00:37:29.039
<v Speaker 1>to our our kind of core offerings.

650
00:37:28.559 --> 00:37:29.239
<v Speaker 2>In the community.

651
00:37:31.320 --> 00:37:33.320
<v Speaker 1>And then we need to make sure that these folks

652
00:37:33.440 --> 00:37:36.960
<v Speaker 1>know that these are the expectations we all have. And

653
00:37:37.000 --> 00:37:40.360
<v Speaker 1>then lastly, when they do stuff, right, I think we

654
00:37:40.400 --> 00:37:41.920
<v Speaker 1>have to show a little more appreciation.

655
00:37:42.159 --> 00:37:43.920
<v Speaker 2>Right, So, like I said, you know.

656
00:37:43.880 --> 00:37:47.000
<v Speaker 1>The work that's been done on Butler and Ruby, gems

657
00:37:47.039 --> 00:37:51.280
<v Speaker 1>and reegms dot org, right, regardless of you know, some

658
00:37:51.320 --> 00:37:54.639
<v Speaker 1>of maybe the bad things that we're done. I mean

659
00:37:54.719 --> 00:37:57.360
<v Speaker 1>I've befit benefited from that work, and so you know,

660
00:37:57.400 --> 00:37:59.360
<v Speaker 1>a hearty thank you to the people that are doing

661
00:37:59.400 --> 00:38:05.000
<v Speaker 1>making those gone ttributions. And at the same time, you know,

662
00:38:05.079 --> 00:38:09.599
<v Speaker 1>I have a friend that kind of messed his life

663
00:38:09.639 --> 00:38:14.519
<v Speaker 1>up making some poor decisions, and so, you know, as

664
00:38:14.519 --> 00:38:17.400
<v Speaker 1>he was going through some of the consequences for the

665
00:38:17.400 --> 00:38:22.320
<v Speaker 1>things that he did, you know, I went to lunch

666
00:38:22.320 --> 00:38:24.320
<v Speaker 1>with him multiple times. I tried to support him as

667
00:38:24.360 --> 00:38:27.039
<v Speaker 1>best I could, but I looked at him and I said,

668
00:38:27.039 --> 00:38:28.960
<v Speaker 1>You're never going to get me to give you a

669
00:38:29.039 --> 00:38:32.559
<v Speaker 1>pass on what you did right. But at the same time,

670
00:38:32.639 --> 00:38:34.840
<v Speaker 1>I'm going to support you in moving forward in the

671
00:38:34.880 --> 00:38:38.639
<v Speaker 1>right way to make things right. And that's kind of

672
00:38:38.639 --> 00:38:40.679
<v Speaker 1>where I feel like I'm at with these folks. Right

673
00:38:40.719 --> 00:38:44.800
<v Speaker 1>It's like, look screwed up. I'm not giving you a pass.

674
00:38:45.519 --> 00:38:45.719
<v Speaker 2>You know.

675
00:38:47.000 --> 00:38:49.559
<v Speaker 1>I think I can eventually forgive you if you prove

676
00:38:49.639 --> 00:38:52.960
<v Speaker 1>out that you're going to do it right. And in

677
00:38:53.000 --> 00:38:58.360
<v Speaker 1>the meantime, you know, let me support you in doing

678
00:38:58.360 --> 00:38:58.880
<v Speaker 1>the right thing.

679
00:38:59.840 --> 00:39:00.360
<v Speaker 2>And so.

680
00:39:02.239 --> 00:39:07.639
<v Speaker 1>Anyway, hopefully that that helps kind of paint a little

681
00:39:07.679 --> 00:39:10.400
<v Speaker 1>bit more of the picture for people so that you

682
00:39:10.480 --> 00:39:13.400
<v Speaker 1>all understand, you know, what's going on and where things

683
00:39:13.440 --> 00:39:17.400
<v Speaker 1>are at. And then yeah, at this point, besides kind

684
00:39:17.440 --> 00:39:20.719
<v Speaker 1>of supporting people and doing the right thing. I personally,

685
00:39:20.840 --> 00:39:23.519
<v Speaker 1>I mean, I don't feel like it's picking sides to

686
00:39:23.559 --> 00:39:27.039
<v Speaker 1>say that I'm sticking with Ruby gms until you know,

687
00:39:27.119 --> 00:39:32.760
<v Speaker 1>they prove that I can't trust them and then you know,

688
00:39:32.800 --> 00:39:35.440
<v Speaker 1>the behavior as far as like logging into the servers

689
00:39:35.440 --> 00:39:35.800
<v Speaker 1>and stuff.

690
00:39:35.800 --> 00:39:42.280
<v Speaker 2>I just I don't think that using gem dot coop is.

691
00:39:42.239 --> 00:39:46.280
<v Speaker 1>Necessarily dangerous or you know that that I can't trust

692
00:39:46.280 --> 00:39:48.559
<v Speaker 1>them to take care because I think they have an

693
00:39:48.559 --> 00:39:51.519
<v Speaker 1>interest in making that service work and work as.

694
00:39:51.400 --> 00:39:52.039
<v Speaker 2>Best it can.

695
00:39:52.719 --> 00:39:56.000
<v Speaker 1>But it does create a trust issue for me with

696
00:39:56.000 --> 00:39:59.960
<v Speaker 1>with Andre So yeah, some of that would probably have

697
00:40:00.199 --> 00:40:04.280
<v Speaker 1>be resolved before I'm full throated endorsing, you know, switching

698
00:40:04.400 --> 00:40:06.719
<v Speaker 1>or adding them as a source in your gem file.

699
00:40:07.840 --> 00:40:10.360
<v Speaker 1>So anyway, that's that's kind of where things sit for me.

700
00:40:11.559 --> 00:40:13.719
<v Speaker 1>I'm sure that there are things that you know will

701
00:40:13.719 --> 00:40:17.920
<v Speaker 1>come out later or that I haven't heard, that are involved.

702
00:40:17.920 --> 00:40:19.800
<v Speaker 1>There are a lot of other opinions that have come

703
00:40:19.800 --> 00:40:23.519
<v Speaker 1>out on this stuff. You know, Ara Howard came out

704
00:40:23.559 --> 00:40:27.320
<v Speaker 1>and you know, it was pretty vocally upset with Ruby Central.

705
00:40:29.360 --> 00:40:31.079
<v Speaker 1>You know, I've seen other people come out and say

706
00:40:31.119 --> 00:40:33.960
<v Speaker 1>I'm not taking sides. You know, they kind of took

707
00:40:33.960 --> 00:40:36.000
<v Speaker 1>the tack that I did and said both sides screwed up.

708
00:40:37.199 --> 00:40:39.639
<v Speaker 1>I've heard people come out and say both sides screwed up.

709
00:40:39.679 --> 00:40:43.159
<v Speaker 1>But I still trust Ruby Central and have kind of

710
00:40:43.280 --> 00:40:47.880
<v Speaker 1>defended them, and I feel like I guess I've kind

711
00:40:47.880 --> 00:40:50.320
<v Speaker 1>of done that to some degree. But at the end

712
00:40:50.360 --> 00:40:53.320
<v Speaker 1>of the day, you know, do your homework, go figure

713
00:40:53.320 --> 00:40:55.760
<v Speaker 1>out what's going on, figure out if this changes anything

714
00:40:55.800 --> 00:40:59.199
<v Speaker 1>for you, and then let's go and write beautiful code

715
00:40:59.239 --> 00:41:01.400
<v Speaker 1>that makes us happy. All right, So I'm gonna switch over.

716
00:41:01.400 --> 00:41:06.239
<v Speaker 1>I'm going to do some picks. So my first pick

717
00:41:06.239 --> 00:41:08.360
<v Speaker 1>I always pick a game. I might have picked this

718
00:41:08.400 --> 00:41:09.880
<v Speaker 1>one on the show before. I'm and pick it again

719
00:41:10.159 --> 00:41:12.400
<v Speaker 1>if so, and if not, then you're hearing about a

720
00:41:12.519 --> 00:41:17.119
<v Speaker 1>terrific game. It is called infiltrators, and it's not spelled

721
00:41:17.239 --> 00:41:21.960
<v Speaker 1>like infiltrators the regular word. It's spelled like infiltrators. If

722
00:41:22.119 --> 00:41:24.679
<v Speaker 1>the last part of the word was spelled like traders,

723
00:41:25.000 --> 00:41:28.599
<v Speaker 1>like people who betrayed their country and so anyway, so

724
00:41:28.639 --> 00:41:32.119
<v Speaker 1>it has an extra eye in it. Basically, it is

725
00:41:32.159 --> 00:41:37.320
<v Speaker 1>a card game and it has essentially it comes with

726
00:41:37.360 --> 00:41:39.599
<v Speaker 1>a deck of cards, not face cards. It has its

727
00:41:39.599 --> 00:41:43.280
<v Speaker 1>own cards and they're all I think there are five

728
00:41:43.360 --> 00:41:50.400
<v Speaker 1>colors numbered two to fifteen. And what you're doing is

729
00:41:50.480 --> 00:41:52.800
<v Speaker 1>you have traders that are.

730
00:41:54.519 --> 00:41:56.280
<v Speaker 2>Basically cards. You're trying to figure out what they are,

731
00:41:56.360 --> 00:42:00.000
<v Speaker 2>and so each player will pick.

732
00:42:00.760 --> 00:42:02.639
<v Speaker 1>So you have a you have a hand of cards,

733
00:42:02.639 --> 00:42:04.559
<v Speaker 1>and then you have a card in front of you

734
00:42:04.599 --> 00:42:08.320
<v Speaker 1>that's face down, and so people can hand you a

735
00:42:08.360 --> 00:42:11.519
<v Speaker 1>card that you use as a clue to let them

736
00:42:11.559 --> 00:42:12.559
<v Speaker 1>know what the card.

737
00:42:12.360 --> 00:42:17.239
<v Speaker 2>Is that's face down in front of you. And so if.

738
00:42:17.079 --> 00:42:19.800
<v Speaker 1>You put it sideways, it means it has nothing in

739
00:42:19.840 --> 00:42:22.880
<v Speaker 1>common with the card that's face down, right, So if

740
00:42:22.920 --> 00:42:28.280
<v Speaker 1>it's a blue two, then it means that the card

741
00:42:28.400 --> 00:42:30.679
<v Speaker 1>is not blue, and it's not a two, but the

742
00:42:30.840 --> 00:42:33.159
<v Speaker 1>two has all of its multiples on it, so it

743
00:42:33.159 --> 00:42:36.559
<v Speaker 1>has two, four, six, eight, ten, twelve, and fourteen on it,

744
00:42:37.039 --> 00:42:39.599
<v Speaker 1>And it means that your card that's face down is

745
00:42:39.639 --> 00:42:42.159
<v Speaker 1>not a blue, and it's not a two, four, six, eight, ten,

746
00:42:42.639 --> 00:42:43.599
<v Speaker 1>twelve or fourteen.

747
00:42:43.960 --> 00:42:44.159
<v Speaker 2>Right.

748
00:42:45.000 --> 00:42:48.039
<v Speaker 1>If you hand you the blue fifteen, then it has

749
00:42:48.039 --> 00:42:50.760
<v Speaker 1>the factors of fifteen on it, and so you know

750
00:42:50.800 --> 00:42:53.280
<v Speaker 1>that it's not a three or five or a fifteen,

751
00:42:53.320 --> 00:42:55.519
<v Speaker 1>then you know it's not blue. If it's faced the

752
00:42:55.559 --> 00:42:57.920
<v Speaker 1>other way, then you know it's a blue or A three,

753
00:42:58.039 --> 00:43:02.480
<v Speaker 1>a five or fifteen or both, right, But there's only

754
00:43:02.519 --> 00:43:04.239
<v Speaker 1>one copy of every card, and so if it's the

755
00:43:04.239 --> 00:43:06.559
<v Speaker 1>blue fifteen, you know it's not the blue fifteen, right,

756
00:43:06.599 --> 00:43:09.719
<v Speaker 1>does that make sense? So anyway, so you clue until

757
00:43:09.760 --> 00:43:12.480
<v Speaker 1>you get the cards. There's a prop gun and you

758
00:43:12.559 --> 00:43:15.960
<v Speaker 1>get so many bullets because you execute the traders. Eventually,

759
00:43:15.960 --> 00:43:17.360
<v Speaker 1>we just got to the point where we just point

760
00:43:17.400 --> 00:43:21.400
<v Speaker 1>and say that's the red three, right, and so we

761
00:43:22.760 --> 00:43:24.719
<v Speaker 1>sometimes people would pick up the gun and use it,

762
00:43:24.800 --> 00:43:25.280
<v Speaker 1>but I'm.

763
00:43:25.159 --> 00:43:27.559
<v Speaker 2>Executing, but most of the time people just point.

764
00:43:27.679 --> 00:43:30.199
<v Speaker 1>So if you don't you don't like the gun in imagery,

765
00:43:30.239 --> 00:43:31.840
<v Speaker 1>you don't have to have it, and you can use

766
00:43:31.880 --> 00:43:35.440
<v Speaker 1>other markers instead of bullets. But anyway, there's a little

767
00:43:36.639 --> 00:43:39.880
<v Speaker 1>dry erase card that has all the numbers and all

768
00:43:39.880 --> 00:43:41.480
<v Speaker 1>the colors on it, so you can mark off the

769
00:43:41.480 --> 00:43:42.320
<v Speaker 1>ones you know that.

770
00:43:42.239 --> 00:43:42.639
<v Speaker 2>It's not.

771
00:43:45.480 --> 00:43:48.519
<v Speaker 1>Anyway, it's super fun game. It's a deduction game. You're

772
00:43:48.559 --> 00:43:54.039
<v Speaker 1>working together to you know, expose all the traders. It

773
00:43:54.079 --> 00:43:57.679
<v Speaker 1>has different levels that you play through kind of like

774
00:43:58.719 --> 00:43:59.559
<v Speaker 1>what is it the crew?

775
00:44:00.079 --> 00:44:02.840
<v Speaker 2>So anyway, fun game.

776
00:44:03.320 --> 00:44:08.000
<v Speaker 1>So yeah, I definitely go check that game out Board

777
00:44:08.000 --> 00:44:10.119
<v Speaker 1>game Geek has it weighted at two point one one

778
00:44:10.880 --> 00:44:14.239
<v Speaker 1>I always tell people too is kind of complicated enough

779
00:44:14.280 --> 00:44:17.679
<v Speaker 1>to be interesting, but simple enough that a casual, not

780
00:44:17.840 --> 00:44:21.280
<v Speaker 1>hardcore gamer would enjoy it. So I'm going to pick

781
00:44:21.400 --> 00:44:24.400
<v Speaker 1>infiltrators as that. And then the other thing I wanted

782
00:44:24.440 --> 00:44:27.960
<v Speaker 1>to just put out there is there are two things

783
00:44:27.960 --> 00:44:32.239
<v Speaker 1>that have happened over the last month, maybe you know

784
00:44:32.559 --> 00:44:34.599
<v Speaker 1>since we were recorded last that I just wanted to

785
00:44:34.639 --> 00:44:38.719
<v Speaker 1>talk about briefly. So one of them is the hostages

786
00:44:38.800 --> 00:44:42.199
<v Speaker 1>in Israel were returned. And I get that there are

787
00:44:42.199 --> 00:44:45.280
<v Speaker 1>people that have feelings about the whole conflict in Israel

788
00:44:45.360 --> 00:44:47.800
<v Speaker 1>right on both sides, and I'm not going to wait

789
00:44:47.880 --> 00:44:51.320
<v Speaker 1>into that. I have my own opinions on it, but

790
00:44:52.159 --> 00:44:56.000
<v Speaker 1>you know, the hostages look like they were mistreated. It

791
00:44:56.119 --> 00:44:58.320
<v Speaker 1>is terrific that they get to come home to their families,

792
00:44:59.719 --> 00:45:02.960
<v Speaker 1>and it looks like the killing has stopped for a while,

793
00:45:02.960 --> 00:45:05.639
<v Speaker 1>which is also a good thing, regardless of which side

794
00:45:05.679 --> 00:45:08.960
<v Speaker 1>you come down on. And so I am going to

795
00:45:09.039 --> 00:45:13.039
<v Speaker 1>pick peace because I just I'm all for it. I've

796
00:45:13.079 --> 00:45:15.119
<v Speaker 1>seen some people saying we want peace, but we don't

797
00:45:15.119 --> 00:45:18.280
<v Speaker 1>want Donald Trump to negotiate it. I frankly don't care

798
00:45:18.320 --> 00:45:20.719
<v Speaker 1>who negotiates it as long as we get it right

799
00:45:20.880 --> 00:45:23.199
<v Speaker 1>and as long as we can make it last. So

800
00:45:24.800 --> 00:45:31.400
<v Speaker 1>you know, if it raises Donald Trump's status, fine, if

801
00:45:31.400 --> 00:45:34.119
<v Speaker 1>it raises somebody else's status, right, if it's Barack Obama

802
00:45:34.199 --> 00:45:36.400
<v Speaker 1>over there negotiating it, and that's what's effective.

803
00:45:36.800 --> 00:45:36.960
<v Speaker 2>Right.

804
00:45:37.480 --> 00:45:41.119
<v Speaker 1>We're not killing people as much anymore so, which is

805
00:45:41.119 --> 00:45:43.000
<v Speaker 1>a good thing. We got hostages back, which is a

806
00:45:43.039 --> 00:45:46.159
<v Speaker 1>good thing. And hopefully the bodies that the other hostages

807
00:45:46.199 --> 00:45:48.079
<v Speaker 1>come back and those families can have closure.

808
00:45:48.159 --> 00:45:51.280
<v Speaker 2>It's a good thing. And then the other one.

809
00:45:51.360 --> 00:45:56.039
<v Speaker 1>And this affected me much more deeply, and a lot

810
00:45:56.079 --> 00:45:58.639
<v Speaker 1>of it's because it occurred here at Utah Valley University,

811
00:45:58.679 --> 00:46:00.880
<v Speaker 1>which is like fifteen minutes away from where I'm sitting

812
00:46:00.920 --> 00:46:05.159
<v Speaker 1>in my house. Maybe twenty minutes depends on traffic, I guess.

813
00:46:06.119 --> 00:46:10.039
<v Speaker 1>And that was the Charlie Kirk assassination. And you know,

814
00:46:10.119 --> 00:46:11.840
<v Speaker 1>this kind of speaks a little bit to what we're

815
00:46:11.880 --> 00:46:14.639
<v Speaker 1>talking about here, except you know, nobody's getting killed over

816
00:46:14.719 --> 00:46:15.320
<v Speaker 1>Ruby Jims.

817
00:46:16.000 --> 00:46:18.280
<v Speaker 2>But we go out a lot.

818
00:46:18.159 --> 00:46:20.360
<v Speaker 1>Of times and we just demonize the other people on

819
00:46:20.400 --> 00:46:23.400
<v Speaker 1>the other side, and I think a lot of that

820
00:46:23.519 --> 00:46:27.599
<v Speaker 1>rhetoric was what led to somebody shooting him here.

821
00:46:28.840 --> 00:46:30.599
<v Speaker 2>And it's it's sad.

822
00:46:30.800 --> 00:46:33.599
<v Speaker 1>Right, It's like for me, it's hey, look, you know,

823
00:46:33.679 --> 00:46:35.519
<v Speaker 1>and I agree with Charlie on a lot of the

824
00:46:35.519 --> 00:46:36.079
<v Speaker 1>things that he.

825
00:46:36.800 --> 00:46:40.039
<v Speaker 2>Talked about, right, But at the end of the day.

826
00:46:40.079 --> 00:46:43.400
<v Speaker 1>We need to be good to each other. We need

827
00:46:43.440 --> 00:46:47.440
<v Speaker 1>to understand each other. Right, this kind of violence, celebrating

828
00:46:47.440 --> 00:46:50.920
<v Speaker 1>that somebody got killed, you know, the way that we

829
00:46:50.960 --> 00:46:53.280
<v Speaker 1>treat each other sometimes because you're on the other side

830
00:46:53.280 --> 00:46:56.920
<v Speaker 1>of the political aisle, it's not okay. And I think

831
00:46:56.920 --> 00:46:58.480
<v Speaker 1>a lot of times if we just go talk to

832
00:46:58.559 --> 00:47:01.400
<v Speaker 1>people and understand where they're coming from and what they're

833
00:47:01.440 --> 00:47:03.320
<v Speaker 1>worried about and what they're dealing with and all of

834
00:47:03.360 --> 00:47:04.360
<v Speaker 1>that stuff.

835
00:47:05.760 --> 00:47:08.039
<v Speaker 2>Things get a whole lot better.

836
00:47:08.719 --> 00:47:10.719
<v Speaker 1>And sure, you know, maybe I don't come around to

837
00:47:11.000 --> 00:47:13.599
<v Speaker 1>the other person's way of thinking, but at least I

838
00:47:13.639 --> 00:47:17.320
<v Speaker 1>can understand them, right, at least I can think about

839
00:47:17.360 --> 00:47:18.960
<v Speaker 1>it and say, Okay, you know, do they have a

840
00:47:18.960 --> 00:47:20.719
<v Speaker 1>good argument or do they not have a good argument?

841
00:47:20.800 --> 00:47:21.039
<v Speaker 2>Why?

842
00:47:21.679 --> 00:47:26.199
<v Speaker 1>And then maybe I can argue my understanding better next time,

843
00:47:27.079 --> 00:47:30.239
<v Speaker 1>or maybe I change my mind, or maybe I just

844
00:47:31.400 --> 00:47:33.639
<v Speaker 1>change it a little bit. Right, It's like, no, they're

845
00:47:33.760 --> 00:47:36.599
<v Speaker 1>generally not right about this stuff, but these couple of

846
00:47:36.679 --> 00:47:40.199
<v Speaker 1>points tell me that, yeah, maybe there's a little bit

847
00:47:40.199 --> 00:47:44.280
<v Speaker 1>more nuance here or there within within this space. And

848
00:47:44.559 --> 00:47:46.800
<v Speaker 1>I think if we can understand each other that way,

849
00:47:48.199 --> 00:47:50.760
<v Speaker 1>you know, maybe we can heal. I hear too about

850
00:47:50.800 --> 00:47:54.320
<v Speaker 1>like people's families being porn apart, because you know, people

851
00:47:54.360 --> 00:47:57.679
<v Speaker 1>do or don't like Donald Trump or Kamala Harris or

852
00:47:57.719 --> 00:48:01.039
<v Speaker 1>whoever else, and you know, it's like, hey, you know,

853
00:48:01.280 --> 00:48:03.719
<v Speaker 1>there are so many more important things, so many more

854
00:48:03.719 --> 00:48:06.480
<v Speaker 1>important things that we have in common. And so I

855
00:48:06.800 --> 00:48:10.159
<v Speaker 1>really am just I guess I'm picking piece again, but

856
00:48:10.199 --> 00:48:12.599
<v Speaker 1>mostly I just I want I want people to understand,

857
00:48:12.800 --> 00:48:16.159
<v Speaker 1>come to understand each other, right, show some respect to

858
00:48:16.199 --> 00:48:22.079
<v Speaker 1>each other, be good to each other, and anyway, So yeah,

859
00:48:22.199 --> 00:48:25.400
<v Speaker 1>sorry to end on kind of a low note, but yeah,

860
00:48:25.440 --> 00:48:27.960
<v Speaker 1>hopefully this helps some folks get some context on this stuff.

861
00:48:28.800 --> 00:48:30.000
<v Speaker 2>I guess one last pick.

862
00:48:31.400 --> 00:48:33.880
<v Speaker 1>So I am getting things together on top end devs

863
00:48:34.800 --> 00:48:38.519
<v Speaker 1>so that we can relaunch Ruby Geniuses. I had Ruby

864
00:48:38.519 --> 00:48:44.800
<v Speaker 1>Geniuses running before and it kind of fizzled out a

865
00:48:44.840 --> 00:48:46.599
<v Speaker 1>little bit, so I'm bringing it back.

866
00:48:47.599 --> 00:48:49.360
<v Speaker 2>I want to be doing the Ruby book club.

867
00:48:49.639 --> 00:48:52.599
<v Speaker 1>I try to do like a general programmer book club,

868
00:48:52.679 --> 00:48:55.360
<v Speaker 1>and I just figured out that that's not really I mean,

869
00:48:55.559 --> 00:48:58.800
<v Speaker 1>we read some interesting stuff, but I think they're I

870
00:48:58.840 --> 00:49:01.320
<v Speaker 1>think doing a Ruby focused one is a much better

871
00:49:01.400 --> 00:49:05.119
<v Speaker 1>approach because then we can get into stuff that's relevant

872
00:49:05.159 --> 00:49:08.519
<v Speaker 1>to stuff that you're working on at work. And then

873
00:49:09.639 --> 00:49:12.199
<v Speaker 1>I'm going to be putting out videos for the Ruby

874
00:49:12.239 --> 00:49:15.159
<v Speaker 1>tip of the day. I'm going to be putting out

875
00:49:15.239 --> 00:49:19.199
<v Speaker 1>a series kind of like Go Rails or Rails casts

876
00:49:19.280 --> 00:49:23.719
<v Speaker 1>or Drifting Ruby that is essentially AI on Ruby. And

877
00:49:25.159 --> 00:49:28.639
<v Speaker 1>I'd like to get some series going on just Ruby

878
00:49:28.760 --> 00:49:32.440
<v Speaker 1>or just rails right, or some blend. And so if

879
00:49:32.480 --> 00:49:35.320
<v Speaker 1>you're interested in authoring something like that, I am actually

880
00:49:35.639 --> 00:49:38.159
<v Speaker 1>I'm happy to talk through some of that with you.

881
00:49:38.239 --> 00:49:40.400
<v Speaker 1>And then I'm also looking at putting courses and stuff

882
00:49:40.440 --> 00:49:42.039
<v Speaker 1>up on top end devs. I kind of want to

883
00:49:42.440 --> 00:49:45.440
<v Speaker 1>make it the Netflix for programmers, and so then you

884
00:49:45.480 --> 00:49:47.960
<v Speaker 1>can come in and instead of like horror and comedy

885
00:49:48.079 --> 00:49:53.760
<v Speaker 1>and you know whatever, you can come in and it's Ruby, JavaScript,

886
00:49:54.199 --> 00:49:58.000
<v Speaker 1>you know, DevOps, infrastructure's code, right, and so then you

887
00:49:58.000 --> 00:50:01.320
<v Speaker 1>can kind of pick your topic and then you can

888
00:50:02.119 --> 00:50:05.679
<v Speaker 1>find whatever it is that you're looking for, right, And

889
00:50:05.760 --> 00:50:08.119
<v Speaker 1>so I'm working through that and I'm looking for authors,

890
00:50:08.119 --> 00:50:10.199
<v Speaker 1>So if you want to author a series on that,

891
00:50:10.440 --> 00:50:12.719
<v Speaker 1>or if you just listen to Ruby rogues and you

892
00:50:12.800 --> 00:50:15.679
<v Speaker 1>mostly write go or something like that. I'm looking at

893
00:50:15.679 --> 00:50:17.840
<v Speaker 1>pulling some stuff together and some of those other areas

894
00:50:17.920 --> 00:50:20.639
<v Speaker 1>like Go, React, JavaScript.

895
00:50:21.039 --> 00:50:22.159
<v Speaker 2>And and things like that.

896
00:50:22.320 --> 00:50:25.559
<v Speaker 1>So and I really want to kind of become the

897
00:50:26.239 --> 00:50:29.519
<v Speaker 1>central place for people to come to get up to

898
00:50:29.639 --> 00:50:33.760
<v Speaker 1>date information on how to build AI and you use

899
00:50:33.800 --> 00:50:38.119
<v Speaker 1>AI tools in development. So anyway, that's what I'm kind

900
00:50:38.159 --> 00:50:41.119
<v Speaker 1>of heading toward here. Maybe I'll give like the full

901
00:50:41.199 --> 00:50:43.079
<v Speaker 1>vision and a little bit of the history on that,

902
00:50:43.119 --> 00:50:47.119
<v Speaker 1>but anyway, in the meantime, be good to each other.

903
00:50:48.840 --> 00:50:51.400
<v Speaker 1>You know, we'll get past this as a community and

904
00:50:51.519 --> 00:50:52.840
<v Speaker 1>until next time acts out
