WEBVTT

1
00:00:05.639 --> 00:00:12.439
Hey, Welcome back to another episode
of the Ruby Rogues podcast. Our guests

2
00:00:12.480 --> 00:00:16.199
backed out for this week, so
it's just us. I'm here with Valentino.

3
00:00:16.280 --> 00:00:22.559
Valentino, you want to say hi. Yeah, So I thought we'd

4
00:00:22.640 --> 00:00:26.239
just catch up. You know,
we usually don't talk about us, so

5
00:00:26.760 --> 00:00:32.520
occasionally you'll mention, yeah, I'm
building machine learning models and doing important nifty

6
00:00:32.560 --> 00:00:37.399
stuff, and I thought, you
know what, it might be fun to

7
00:00:37.439 --> 00:00:40.280
catch up. The other thing is
is I started listening to some of the

8
00:00:40.320 --> 00:00:43.960
other Ruby podcasts out there that hadn't
Like, I knew there were more out

9
00:00:43.960 --> 00:00:46.439
there, and I'd been subscribed to
some of them, like Ruby on Rails

10
00:00:46.439 --> 00:00:53.000
podcast for a long time and things
like that. But I ran across Remote

11
00:00:53.079 --> 00:01:00.880
Ruby with Jason Charns and Chris Oliver
and Andrew Mason. I ran across Rooftop

12
00:01:00.200 --> 00:01:03.439
Ruby and I can't remember those guys'
names, but they've got nice accents,

13
00:01:03.560 --> 00:01:10.040
nice British accents. And then Ruby
for All, which is also Andrew Mason.

14
00:01:10.079 --> 00:01:14.480
But he talks to Julie and I'm
kind of getting the picture that she's

15
00:01:15.000 --> 00:01:19.359
a recent I don't know if she's
a boot camp grab grad or just graduated

16
00:01:19.439 --> 00:01:25.519
from school or just decided to become
a programmer because she used to be something

17
00:01:25.519 --> 00:01:29.000
else. But anyway, so they
just chat and I was like, oh,

18
00:01:29.040 --> 00:01:32.480
we should just have a chat,
right, So it's kind of both.

19
00:01:32.560 --> 00:01:36.920
So what are you working on and
let's chat? Yeah, we're gonna

20
00:01:36.920 --> 00:01:42.799
tell us stuff. I just I
guess my latest thing is I just bought

21
00:01:42.840 --> 00:01:48.879
this massive three GPU machine. Oh
wow, that I'm gonna start having some

22
00:01:48.959 --> 00:01:55.359
fun training and fine tuning of my
own models for AI related Thanks, I'm

23
00:01:55.400 --> 00:01:57.599
really looking forward to that. Are
you using lane chain or something for that

24
00:01:57.799 --> 00:02:02.200
or I will be? Yeah,
I mean that's what every everybody uses.

25
00:02:02.799 --> 00:02:07.199
So uh, I'm gonna try and
do it in Ruby. That's kind of

26
00:02:07.199 --> 00:02:13.319
my plans to do as much as
I can and then maybe benchmarkham and see

27
00:02:13.639 --> 00:02:21.159
see if it's possible to do it
in Ruby. R isn't written in Ruby,

28
00:02:21.240 --> 00:02:23.120
but yeah, so you're just going
to use it kind of like to

29
00:02:23.280 --> 00:02:27.280
use a database. Yeah, I
mean that. I think the hurdle is

30
00:02:27.280 --> 00:02:30.000
PyTorch, which there is a port
of it for Ruby. I haven't had

31
00:02:30.000 --> 00:02:34.719
a chance to play with it yet, so I'm kind of curious to see

32
00:02:34.960 --> 00:02:40.199
how well it works, like be
doing some you know, hard GPU competational

33
00:02:40.240 --> 00:02:46.759
stuff, so we'll see it should
be fun. Yeah, yeah, cool,

34
00:02:46.000 --> 00:02:52.520
Yeah, that sounds awesome. I
guess. I guess the other one

35
00:02:52.560 --> 00:02:57.199
big one in the space is TensorFlow. I would imagine, yeah you can.

36
00:02:58.000 --> 00:03:00.840
So so the tools that I talked
to people and I had people bringing

37
00:03:00.879 --> 00:03:05.520
it up during the Ruby Dev summit, it was well, Ruby needs to

38
00:03:05.560 --> 00:03:07.800
be better in AI because if not, then Ruby's going to be dead on

39
00:03:07.919 --> 00:03:10.319
arrival and all this stuff. And
I don't I don't know if I buy

40
00:03:10.360 --> 00:03:15.039
that, but you know, I'm
looking at it and I'm going, Okay,

41
00:03:15.080 --> 00:03:20.639
well, nobody's going to build the
modeling engine in Ruby, at least

42
00:03:20.800 --> 00:03:23.719
not that i'm seeing. I guess
they built it in Python and we're we're

43
00:03:23.800 --> 00:03:30.520
performed a dish like Python. So
maybe. But yeah, what I'm typically

44
00:03:30.520 --> 00:03:31.960
seeing when I talk to people who
are doing this is yeah, they're plugging

45
00:03:31.960 --> 00:03:37.759
into something else like PyTorch or like
chane or something. Yeah, you know,

46
00:03:37.840 --> 00:03:40.199
it's everybody. It's funny, like
you mentioned it, like everybody does

47
00:03:40.319 --> 00:03:44.800
like that it's the default. Oh, Python's doing AI, but like really

48
00:03:44.879 --> 00:03:47.319
it's like C and C plus plus
that is doing AI and then they have

49
00:03:47.400 --> 00:03:53.439
like buying Yeah, well, I
think I think where it's gained the most

50
00:03:53.439 --> 00:03:58.280
traction is with like the laying chain
people that have really like set up pipelines

51
00:03:58.319 --> 00:04:02.879
and tooling around like the parallelization,
which is like kind of crucial for a

52
00:04:02.879 --> 00:04:08.319
lot of the uh you know,
hard computation that's needed for it, and

53
00:04:08.439 --> 00:04:12.319
so they've said they've like focused on
that, and I think they've set up

54
00:04:12.319 --> 00:04:15.879
a functional framework that's worked really well
for them. Uh. I'm hopeful that

55
00:04:15.959 --> 00:04:20.279
we can kind of get something out
of that from Ruby too. Uh.

56
00:04:20.319 --> 00:04:25.439
Definitely. Ruby three has all the
acinc stuff, Yeah, which we could

57
00:04:25.439 --> 00:04:28.920
probably get just as close to be
honest. So that's what I plan to

58
00:04:29.160 --> 00:04:32.519
kind of test out a couple theorios
I have there. Yeah. Absolutely,

59
00:04:32.600 --> 00:04:36.279
Yeah. You mentioned that it's mostly
C and stuff, and you're right.

60
00:04:36.480 --> 00:04:41.800
I mean there are two reasons that
Python has kind of taken some of the

61
00:04:41.839 --> 00:04:46.720
space here, and one is that
they have kind of the the math libraries

62
00:04:46.759 --> 00:04:49.680
and things that a lot of the
academics wanted and then they backed it on

63
00:04:49.680 --> 00:04:56.399
to see so it's freaking fast.
Yeah, It's funny because like if you're

64
00:04:56.480 --> 00:05:00.959
running even if you're running imprints,
like you're kind of just like shelling out

65
00:05:01.000 --> 00:05:05.879
to run the CPP library and the
ground right, Like, so, uh,

66
00:05:08.160 --> 00:05:11.079
it's that's going to be the fastest. And if you especially if you're

67
00:05:11.120 --> 00:05:15.680
trying to like you have to optimize
on the speed of the tokens. Like

68
00:05:15.560 --> 00:05:18.519
what you end up doing is you
download the model and then you want to

69
00:05:18.600 --> 00:05:26.279
run infrints on it, and you
run the inference through a faster library that

70
00:05:26.319 --> 00:05:30.240
processes in real time since you want
to stream it often. Yeah, so

71
00:05:30.639 --> 00:05:34.879
that's I'm I'm interested in all the
open source models and what you can do

72
00:05:34.920 --> 00:05:40.959
with that and missdrill and mixed drill
and all that. You can get very

73
00:05:41.040 --> 00:05:45.639
similar outputs for a lot of certain
kinds of tasks, and so that's why

74
00:05:45.639 --> 00:05:50.240
I want to kind of see where
I could take fine tuning in models get

75
00:05:50.360 --> 00:05:56.959
very specific input outputs and you can
like make something really fast, right Yeah.

76
00:05:57.160 --> 00:05:59.800
Yeah. One of the things that
I'm playing with in the AI space

77
00:06:00.199 --> 00:06:02.480
little bit, and I'm just barely
starting to pick it up because I you

78
00:06:02.480 --> 00:06:05.800
know, I have the Summit,
I've got like eight zillion things going.

79
00:06:06.920 --> 00:06:12.160
But I've been talking to Alex Rudol, who wrote the open aigm. We

80
00:06:12.199 --> 00:06:17.319
had him on the show a while
back, and yeah, I've basically we

81
00:06:17.439 --> 00:06:21.839
talked after I interviewed him for the
Ruby Dev Summit and decided that we're going

82
00:06:21.920 --> 00:06:27.279
to do a five day challenge where
you hook into open Ai and so I'm

83
00:06:27.319 --> 00:06:30.680
trying to learn it so that I
can teach it, if that makes sense,

84
00:06:31.079 --> 00:06:39.319
But I also want to integrate it
into top end devs basically because I'm

85
00:06:39.360 --> 00:06:43.639
starting to put out more content.
And the system that we use is called

86
00:06:43.680 --> 00:06:47.879
cast Magic. They had some apps
Zumo lifetime deals, so I get like,

87
00:06:48.120 --> 00:06:51.360
I don't know, like four hundred
or six hundred minutes a month or

88
00:06:51.360 --> 00:06:55.519
something I can't remember, but I
get not enough minutes a month on there

89
00:06:55.600 --> 00:07:00.480
every month without having to pay anything
extra for them. And yeah, I

90
00:07:00.519 --> 00:07:02.879
talked to a few people and it
looks like you can just hook into the

91
00:07:02.879 --> 00:07:05.240
open ay stuff and it'll do a
lot of that work for you. So

92
00:07:06.120 --> 00:07:10.519
I'm much more on the consumer and
much less on the how how do I

93
00:07:10.560 --> 00:07:15.439
make this model come together? But
I think it'll be interesting. Yeah,

94
00:07:15.480 --> 00:07:17.160
I Mean the biggest challenge too,
is like where do you host it?

95
00:07:17.319 --> 00:07:21.519
Because like you gotta, you know, put the weights somewhere and you know,

96
00:07:21.639 --> 00:07:25.959
then you have like, you know, all these different services that offer

97
00:07:26.560 --> 00:07:31.480
like a Chat GPT API related you
know setup that just like less you run

98
00:07:31.480 --> 00:07:38.480
infernts on your weights like so that
it's like, yeah, at some point

99
00:07:38.720 --> 00:07:42.079
it starts to be like, well, you know Chat, you know opening

100
00:07:42.160 --> 00:07:47.199
eyes API isn't that expensive? Yeah? Yeah, so well it depends on

101
00:07:47.240 --> 00:07:53.079
what you want, right, Right. If if Chat GPT has a model

102
00:07:53.399 --> 00:07:59.600
you know, using GPT three point
five or you GPT four that that does

103
00:07:59.639 --> 00:08:01.560
your does the job for you,
then yeah, why build your own,

104
00:08:01.720 --> 00:08:07.920
right, unless unless you have another
reason to. But yeah, it's it's

105
00:08:07.959 --> 00:08:11.000
for those other setups or other circumstances
where it's like, you know what,

106
00:08:11.680 --> 00:08:16.480
I either foresee that I'm going to
need to expand beyond what chat GPT offers,

107
00:08:16.800 --> 00:08:22.399
or you know, my my scenario
is different for some reason and so

108
00:08:22.480 --> 00:08:28.639
I need a custom model. Yeah. I mean the most interesting part to

109
00:08:28.680 --> 00:08:33.559
me is like the next chipsets that
come out are versions of the MAC.

110
00:08:33.080 --> 00:08:37.679
You know, they're all going to
be driven to run enterance fast, right,

111
00:08:37.759 --> 00:08:41.080
and they right like the current ones
already like do pretty great, and

112
00:08:41.159 --> 00:08:46.519
so like if it's very easy to
run inference and like you can just download

113
00:08:46.519 --> 00:08:50.159
the weights for an open model that
get pretty much the same as you know,

114
00:08:50.240 --> 00:08:54.240
GP three point five Turbo, which
is like pretty great outputs. Yeah,

115
00:08:54.279 --> 00:08:58.559
Like then anybody can just run locally
any model that they want and get

116
00:08:58.679 --> 00:09:03.879
like chat GPT locally and not have
to, you know, worry about security

117
00:09:03.039 --> 00:09:07.600
or anything like that. Well,
I guess you always have to worry about

118
00:09:07.600 --> 00:09:11.240
security, but less less of who
you're giving your you know, all your

119
00:09:11.279 --> 00:09:15.360
questions to which you know right now
it's Google for a lot of people,

120
00:09:15.360 --> 00:09:22.039
and it'll be interesting to see that
change. Yep, absolutely, So what

121
00:09:22.080 --> 00:09:28.320
else are you working on? So? I joined a maker space at the

122
00:09:28.399 --> 00:09:31.799
end of end of the last year
and I've just been having so much fun.

123
00:09:31.879 --> 00:09:39.080
They have a ton of three D
printers and laser cutters and a metal

124
00:09:39.120 --> 00:09:43.840
shop and a wood shop and uh
so I have a bunch of projects that

125
00:09:43.879 --> 00:09:48.279
I've just like had in the back
burner for a while, and one of

126
00:09:48.320 --> 00:09:52.039
them is at Doctivity. I've made
I've run out a little team that we

127
00:09:52.120 --> 00:09:58.080
do like cat GPD for for healthcare
for physicians. And I wanted a way

128
00:09:58.120 --> 00:10:03.240
to like just have like a button
that I could push and like have it

129
00:10:03.320 --> 00:10:05.840
talked back to me. Since they
have like the Texas speech, and so

130
00:10:05.879 --> 00:10:09.399
I thought there could be some cool
applications where oh, you just pushed a

131
00:10:09.399 --> 00:10:11.720
button and it talks back, and
we we kind of have this like internal

132
00:10:13.039 --> 00:10:18.440
Uh that's a little funny. But
in in you know Microsoft word back in

133
00:10:18.480 --> 00:10:22.440
the day, these have a little
clip clip art you know, you know

134
00:10:22.879 --> 00:10:26.080
paper clip that would show up and
they would be like, oh, do

135
00:10:26.080 --> 00:10:28.720
you have any questions, like let's
chat. It was like one of the

136
00:10:28.720 --> 00:10:35.320
first like chat bots that was like
in an application or like Clippy I think

137
00:10:35.320 --> 00:10:39.240
they called it. And so somebody, somebody at work was like, oh,

138
00:10:39.320 --> 00:10:41.519
we should have you know, Clippy, but for doctors. So it

139
00:10:41.519 --> 00:10:46.879
would be like a stethoscope. So
somebody like made this like your kind of

140
00:10:46.919 --> 00:10:50.720
funny clip art looking stethoscope. So
I thought, how funny would it be

141
00:10:50.799 --> 00:10:54.120
to have like a real life stethoscope
that had like googly eyes the same way

142
00:10:56.840 --> 00:11:00.960
that I could talk to I would
give me the responses that. So I

143
00:11:01.039 --> 00:11:05.600
have that underway just for fun,
like, well, what are you gonna

144
00:11:05.679 --> 00:11:07.960
name him? You have to give
it a good name. Well, the

145
00:11:09.840 --> 00:11:16.759
internal name has been Stepie. Yeah, so I don't know, there's no

146
00:11:16.879 --> 00:11:20.519
real name yet. But either way, like I wanted to now, so

147
00:11:20.600 --> 00:11:22.679
now I wanted to set up where
Okay, I don't want to have to

148
00:11:22.960 --> 00:11:28.240
like depend on open AI for all
of this. So there's like an open

149
00:11:28.279 --> 00:11:31.240
source whisper. Like whisper itself is
what open a uses for, like,

150
00:11:31.679 --> 00:11:37.240
you know, transcribing what you're saying. And so they they published that and

151
00:11:37.279 --> 00:11:39.919
you could download and run it and
so like you you could just yourself transcribe

152
00:11:39.919 --> 00:11:45.080
anything. And so I got a
little micro controller already, and I got

153
00:11:45.080 --> 00:11:48.320
a you know, a tiny little
microphone on it and you just talk to

154
00:11:48.360 --> 00:11:52.519
it and it transcribes, and so
step one is done. And now I

155
00:11:52.559 --> 00:11:56.279
wanted to use one of these you
know, open models and just like give

156
00:11:56.320 --> 00:12:01.440
back the responses all locally. So
I'm to get it onto a board,

157
00:12:01.480 --> 00:12:09.080
which is like hard to do because
the inference does take time and computation.

158
00:12:09.519 --> 00:12:15.159
And so what I've done is offloaded
that and I stream that to my MacBook

159
00:12:16.440 --> 00:12:22.399
just over an open like TCP connection
and sin it's on the same network,

160
00:12:22.480 --> 00:12:26.919
Like I don't have to worry too
much because it's just serving local requests.

161
00:12:26.080 --> 00:12:31.720
Uh, and it's proxy there and
so like uh, then I run the

162
00:12:31.720 --> 00:12:35.919
inference on the Mac and then stream
it back to the device and so then

163
00:12:35.960 --> 00:12:39.879
I basically get like just I'm just
streaming wave files at this and it works

164
00:12:39.919 --> 00:12:43.320
great. And so I got you
know, the clipping and you push the

165
00:12:43.360 --> 00:12:46.759
button and it like you know,
submits your requests, does the infers and

166
00:12:46.919 --> 00:12:50.600
outputs back, and I don't know, it's just a lot of fun.

167
00:12:50.960 --> 00:12:56.360
So Makerspace like that project. And
then I have a split flap display that

168
00:12:56.399 --> 00:12:58.919
I've put off for way too long
where I want to chain together upon by

169
00:13:00.039 --> 00:13:03.480
show split flaps, which if you're
not familiar there like the old school,

170
00:13:03.519 --> 00:13:07.000
like if you're at an airport and
the displays would change here, like right,

171
00:13:07.840 --> 00:13:11.080
that's all. I want to set
those up on my desk stop so

172
00:13:11.159 --> 00:13:15.080
I could just like say, send
a message to it, it would like

173
00:13:15.159 --> 00:13:22.639
start flipping it and right, oh
yeah that's old old school stuff right there.

174
00:13:22.600 --> 00:13:26.320
Yeah. Yeah, So I don't
know, it's just having a lot

175
00:13:26.320 --> 00:13:35.679
of fun with that nice very cool. How do you working on? So

176
00:13:35.720 --> 00:13:39.759
where do I start? So the
big thing that I'm spending most of my

177
00:13:39.799 --> 00:13:43.919
time on is the Ruby Dev Summit. As we record this, it's going

178
00:13:43.000 --> 00:13:52.799
to be next week February thirteenth through
sixteenth, and yeah, so the plan

179
00:13:52.080 --> 00:13:58.399
is effectively, I've done twenty one
interviews. You were one of the interviews.

180
00:13:58.360 --> 00:14:03.279
But yeah, so putting that up, yeah, I figured you did.

181
00:14:03.960 --> 00:14:07.759
So anyway, the talks will be
available for twenty four hours from when

182
00:14:07.759 --> 00:14:13.159
they release, and then if you
sign up for one of the subscriptions on

183
00:14:13.200 --> 00:14:16.559
Top end devs, then you get
forever access. Incidentally, we have one

184
00:14:16.600 --> 00:14:20.080
person watching, or somebody may go
watch the replay on Twitch or something.

185
00:14:22.240 --> 00:14:26.200
Oh we went up to two people, all right, So anyway, it

186
00:14:26.519 --> 00:14:31.480
also gets you early access. So
I have six of the twenty one uploaded

187
00:14:31.559 --> 00:14:35.840
right now. My editors get me
more as we go, and he'll have

188
00:14:35.120 --> 00:14:41.279
he'll have them all for me,
you know, by say Monday, right,

189
00:14:41.360 --> 00:14:43.759
which is one day early access.
But if you want to watch them

190
00:14:43.759 --> 00:14:46.279
at your leisure and you don't want
to have to worry about that time window,

191
00:14:46.559 --> 00:14:50.399
you can sign up. But if
you go to rubydevsummit dot com and

192
00:14:50.480 --> 00:14:54.600
you enter your email address and I'll
email you when they come out, Hey,

193
00:14:54.000 --> 00:14:58.600
this talks out, here's the ur
I'll go watch it right So anyway,

194
00:14:58.639 --> 00:15:01.000
it'll be really cool. And I
talked to a whole bunch of people

195
00:15:01.080 --> 00:15:05.039
like on the Ruby core team,
so you know, we got Utasito did

196
00:15:05.320 --> 00:15:15.480
Ruby Wazam. I talked to Soto
Matsumoto, no relation to Matt's. Incidentally,

197
00:15:15.559 --> 00:15:22.200
I asked him who does the RBS
typing stuff. Talked to Jeremy Evans,

198
00:15:22.960 --> 00:15:26.559
I've talked to, I mean,
just all kinds of people. I'm

199
00:15:26.840 --> 00:15:31.080
we talked. I talked to Marc
Andre Cornoier last week for Ruby Rogues,

200
00:15:31.879 --> 00:15:35.879
and I emailed him to see if
I can get him to do it because

201
00:15:35.919 --> 00:15:41.600
he wrote thin the web Server,
so and he's got a whole bunch of

202
00:15:41.639 --> 00:15:46.200
stuff that he's been thinking about and
working on anyway, interesting stuff from interesting

203
00:15:46.240 --> 00:15:50.679
folks, and just getting that together
kind of raise awareness of the subscription and

204
00:15:50.720 --> 00:15:54.080
then you know, let people know, hey, look I'm putting out these

205
00:15:54.159 --> 00:15:56.480
videos. If you want to learn
Ruby stuff or real stuff, you can

206
00:15:56.519 --> 00:16:00.519
get one or both of the video
series. And then just getting videos for

207
00:16:00.519 --> 00:16:03.000
the video series done is the other
thing that I've been working on, and

208
00:16:04.039 --> 00:16:10.039
for the Rails series in particular,
I'm actually showing you how I'm building the

209
00:16:10.720 --> 00:16:15.720
website for Rails Composer, which is
the last thing that I'm working on work

210
00:16:15.759 --> 00:16:19.399
wise, besides my client project,
which is a whole other thing, so

211
00:16:19.559 --> 00:16:23.120
rails composer. I've talked to a
whole bunch of people that have either started

212
00:16:23.360 --> 00:16:30.879
businesses like SaaS businesses or maybe like
some of them don't necessarily qualify as a

213
00:16:30.879 --> 00:16:33.440
SaaS business, but you know they
have like hey, you pay this,

214
00:16:33.519 --> 00:16:37.840
and you get a license, and
you have a subscription to renew your license

215
00:16:37.840 --> 00:16:41.039
and things like that, and then
they're selling other software like Dragon Ruby for

216
00:16:41.039 --> 00:16:47.919
example. I talked to a mirror
John and right, he's got a thing

217
00:16:47.960 --> 00:16:52.559
where you pay, you pay for
your license for dragon Ruby and then you

218
00:16:52.039 --> 00:16:56.960
can go download it right and your
license to use it. So when I

219
00:16:57.000 --> 00:17:02.639
was talking to him and I mentioned
this idea and started talking through it with

220
00:17:02.679 --> 00:17:04.759
them. And I've talked to a
few other people too who are building or

221
00:17:04.759 --> 00:17:07.799
have built SaaS and I was like, well, what I want is I

222
00:17:07.839 --> 00:17:11.759
want to be able to say,
hey, look, you know, plug

223
00:17:11.799 --> 00:17:15.279
this in, do some config.
Now you've got payment processing right within an

224
00:17:15.279 --> 00:17:19.359
hour or two, plug this in, you know, do some config and

225
00:17:19.400 --> 00:17:23.160
now you've got user management right,
and it you know, has something that

226
00:17:23.200 --> 00:17:27.880
works cleanly with device or active off
or you know whatever, right, and

227
00:17:27.920 --> 00:17:33.480
so you can set up off.
I feel like oth's been handled for rails,

228
00:17:33.519 --> 00:17:36.079
so I don't need to do that. But you know, so any

229
00:17:36.119 --> 00:17:40.160
of those common scenarios that you build
into your application, right, maybe I'll

230
00:17:40.160 --> 00:17:44.880
build in a licensed distribution thing,
right, so you can license your software

231
00:17:45.000 --> 00:17:48.640
or you know, just different things
like that. The inspiration actually came from

232
00:17:48.720 --> 00:17:52.920
Laravell. I don't know if you've
looked into Laravel a whole lot, but

233
00:17:52.000 --> 00:17:56.599
larravel dot com. If you go
look and you click on their products,

234
00:17:56.200 --> 00:18:00.599
it lists a whole bunch of different
things. So one of the other things

235
00:18:00.599 --> 00:18:07.279
I want to put together is so
they have Forge, which is essentially you

236
00:18:07.319 --> 00:18:11.519
can deploy your applications to Digital Lotion
or linod or whatever. Right, so

237
00:18:11.559 --> 00:18:17.200
you set up the machines and it'll
deploy them. And I think it's pretty

238
00:18:17.200 --> 00:18:22.160
similar actually to hatchbox, which is
Chris Oliver's solution. But what I want

239
00:18:22.200 --> 00:18:26.000
to do is I want to do
it more along the model of camal And

240
00:18:26.079 --> 00:18:30.640
so instead of saying, hey,
deploy you know, set up brails on

241
00:18:30.680 --> 00:18:33.319
the server and deplay it there,
what I want to do is I want

242
00:18:33.319 --> 00:18:36.960
to say, take this app,
containerize it, and then deploy it to

243
00:18:37.079 --> 00:18:41.519
whichever machine in the set of machines
that you've told me about that you want

244
00:18:41.559 --> 00:18:44.000
it to go on. And so
then what you can do is you can

245
00:18:44.039 --> 00:18:51.359
deploy multiple apps onto the same set
of machines and have it load balance and

246
00:18:51.440 --> 00:18:56.440
everything else like you would expect and
anyway, just have everything kind of play

247
00:18:56.519 --> 00:18:59.039
nicely together that way. And then
if, yeah, if one of your

248
00:18:59.079 --> 00:19:03.039
apps starts taken over resources so that
the other ones are starved for resources,

249
00:19:03.200 --> 00:19:04.559
you know, you can migrate them
off and just give you a clean way

250
00:19:04.599 --> 00:19:12.519
to migrate them off with Kamal,
because ultimately it's just containerized, and so

251
00:19:14.759 --> 00:19:15.880
you know, you kill it over
here and start it over here, and

252
00:19:15.880 --> 00:19:19.200
then you tell the load balancers over
there now and you're done. And so

253
00:19:19.359 --> 00:19:23.519
it gives you all kinds of flexibility
and you can do all kinds of stuff

254
00:19:23.559 --> 00:19:26.039
with it. But the other thing
is is essentially what you wind up doing

255
00:19:26.119 --> 00:19:30.680
is giving me an SSH key onto
your machine or you know, in some

256
00:19:30.799 --> 00:19:33.599
other way, you know, accessing
the machine so I can set it up

257
00:19:33.880 --> 00:19:38.160
with an sshkey so I can deploy
to it, and then from there it

258
00:19:38.640 --> 00:19:42.240
just does all the things and so
you don't have to go get deep in

259
00:19:42.240 --> 00:19:45.440
the weeds with Kubernetes and stuff.
But you know, they have all kinds

260
00:19:45.480 --> 00:19:49.039
of other solutions for different things.
They have their own queueing solution. I

261
00:19:49.039 --> 00:19:52.279
don't feel like I need to build
that. They have an authentication solution for

262
00:19:52.359 --> 00:19:55.960
Laravel. I don't feel like I
need to build that. But there are

263
00:19:56.000 --> 00:20:00.720
some of these other pieces that if
I was building a SAT and I've looked

264
00:20:00.720 --> 00:20:03.839
at building SaaS apps for podcasters,
it'd be nice to just say, Okay,

265
00:20:03.839 --> 00:20:07.160
look what I want to do is
I want to manage the guest workflow.

266
00:20:07.480 --> 00:20:11.440
Right. I don't expect that anybody's
going to have a library or rails

267
00:20:11.440 --> 00:20:15.640
engine it's going to do that for
me, Right, I have to build

268
00:20:15.680 --> 00:20:21.559
that myself. But managing users,
supporting users, managing their subscriptions, collecting

269
00:20:21.599 --> 00:20:23.839
payments. I mean, everybody that
builds a SaaS app has to do that,

270
00:20:26.279 --> 00:20:27.920
and so why not just have a
quick and easy way to do it.

271
00:20:29.279 --> 00:20:32.559
And then the other thing is is
I want to give people more of

272
00:20:32.599 --> 00:20:36.880
a system for building their SaaS apps
and not a system technical system, but

273
00:20:37.000 --> 00:20:40.480
like, hey, you need to
validate your idea, here's how you do

274
00:20:40.519 --> 00:20:41.880
it, here are the steps you
take, here's how that works, right,

275
00:20:42.079 --> 00:20:45.200
and so then what you do is
you pull the engine in to schedule

276
00:20:45.240 --> 00:20:52.000
calls with your potential customers, right, and then you just embed the component

277
00:20:52.440 --> 00:20:53.839
you know, on your front page
and say, hey, we're launching.

278
00:20:55.640 --> 00:20:57.240
If you fit this criteria, we'd
like to talk to you, or you

279
00:20:57.279 --> 00:21:02.000
know, however you do that to
attract people in. And then once you've

280
00:21:02.039 --> 00:21:06.000
started validating the idea, then you
know, maybe you put up a change

281
00:21:06.039 --> 00:21:10.119
log or early access as part of
the user management, right, and so

282
00:21:10.160 --> 00:21:12.440
you can plug in these different systems
as you go. You set KPIs for

283
00:21:12.519 --> 00:21:18.200
your your app, and then you
get an engine that allows you to and

284
00:21:18.240 --> 00:21:21.920
I don't know if this is a
rails engine or if there's a library and

285
00:21:21.960 --> 00:21:25.519
an engine, or you know however
that would go together. But then it

286
00:21:25.640 --> 00:21:30.599
collects the metrics for those KPIs so
that you can say, hey, I

287
00:21:30.759 --> 00:21:37.559
need to be growing by this many
users, or I need to be reaching

288
00:21:37.559 --> 00:21:41.160
out to this many potential users,
or you know, what have you Or

289
00:21:41.200 --> 00:21:42.960
if you're marketing, you know,
you have a podcast and you're trying to

290
00:21:44.000 --> 00:21:45.680
get people on your mailing list because
that seems to be the effective way to

291
00:21:45.720 --> 00:21:49.200
sell it. Right, It's okay, well I need to have so many

292
00:21:49.200 --> 00:21:52.680
people signing up for my email list, right, and having a way to

293
00:21:52.720 --> 00:21:56.119
track that and then display it so
that I can go look at my dashboard

294
00:21:56.160 --> 00:21:59.599
every week or every day or every
month or however often and I can say,

295
00:21:59.640 --> 00:22:03.880
oh, I need to focus more
on you know this angle. And

296
00:22:03.920 --> 00:22:07.480
then also with those KPIs, recognizing
I'm not getting enough traffic, how do

297
00:22:07.519 --> 00:22:11.279
I get more traffic? Or I
am getting enough traffic but they're not converting.

298
00:22:11.279 --> 00:22:14.200
How do I get to convert?
And so just giving people the tools

299
00:22:14.240 --> 00:22:17.519
to grow their SaaS that all live
within their Rails app, Right, I

300
00:22:17.559 --> 00:22:22.240
don't have to go sign up for
some third party service out there and you

301
00:22:22.279 --> 00:22:25.240
know, have it plug into my
thing and then have all my data sent

302
00:22:25.319 --> 00:22:32.200
off to the cloud and then hope
that the provider doesn't you know, disappear

303
00:22:32.240 --> 00:22:36.000
on me or whatever. So anyway, that's that's what I'm looking to build.

304
00:22:36.039 --> 00:22:40.039
I feel like Rails is already the
awesome one person framework, and I

305
00:22:40.079 --> 00:22:42.200
want to make it the one person
SaaS framework where it's just like if I

306
00:22:42.240 --> 00:22:47.559
was going to build a SAS,
this solves eighty percent of the common problems

307
00:22:47.920 --> 00:22:49.519
and so I can just be in
my zone and genius and know what to

308
00:22:49.519 --> 00:22:55.039
do next to make it grow.
Tell me you've looked at bullet train.

309
00:22:55.759 --> 00:23:00.000
I have looked at bullet train.
So what are you saying as a differentiator

310
00:23:00.039 --> 00:23:07.759
from bullet train. So bullet train
building on it. So the issue with

311
00:23:07.880 --> 00:23:18.640
bullet train that I have is and
I haven't actually tried it, but my

312
00:23:18.759 --> 00:23:26.039
understanding is is that you you basically
get one template and so you you use

313
00:23:26.119 --> 00:23:29.720
the template in your for your rails
app. And what I want to do

314
00:23:29.799 --> 00:23:30.720
is I want it to be more
of a plug in model, so you

315
00:23:30.720 --> 00:23:37.759
can pick and choose which pieces you
put in. I also don't know if

316
00:23:37.799 --> 00:23:40.920
I want to be opinionated on some
of the things that they're opinionated on.

317
00:23:41.039 --> 00:23:47.720
So for example, device, you
know, I just I don't. I

318
00:23:47.720 --> 00:23:49.160
don't know if I'm really keen on
it. I don't know how their one

319
00:23:49.240 --> 00:23:55.160
click deployees work. Oh it deploys
the Kuroku, right, And so that's

320
00:23:55.160 --> 00:23:56.559
another thing, right, I don't
know if I want to lock into all

321
00:23:56.599 --> 00:24:03.559
of this stuff. I mean that
that's a big piece of it. The

322
00:24:03.599 --> 00:24:11.200
other thing is is that so one
of the things is they're using like can

323
00:24:11.279 --> 00:24:18.680
can can for their their roles and
permissions and stuff, and I want to

324
00:24:18.680 --> 00:24:22.920
be much more surface to UI on
that stuff. Right, So if I

325
00:24:23.039 --> 00:24:26.680
have a non technical co founder who's
helping me set some of this stuff up,

326
00:24:27.119 --> 00:24:32.079
I want them to be able to
manage permissions and things like that,

327
00:24:32.279 --> 00:24:36.400
right at a more fundamental level.
And so, you know, some of

328
00:24:36.440 --> 00:24:41.599
those things as I go in,
i'd like I'd like to tackle I mean

329
00:24:41.640 --> 00:24:48.880
some of the stuff like you know, teams, you know, tailwind,

330
00:24:51.440 --> 00:24:56.359
theming. Yeah, a lot of
these other things. You know, good

331
00:24:56.400 --> 00:25:03.119
looking form fields you know that are
JavaScript in and stuff like that. It

332
00:25:03.160 --> 00:25:08.559
has outgoing web hooks, which probably
isn't a bad idea. So yeah,

333
00:25:08.599 --> 00:25:11.519
there are definitely things here, but
I want you to be able to just

334
00:25:11.880 --> 00:25:15.759
pull in the pieces you want,
not have to use the whole framework.

335
00:25:15.319 --> 00:25:23.519
And I want to make this I
don't want you to have to basically code

336
00:25:26.680 --> 00:25:30.240
or customize my stuff. I want
you to be able to set it up

337
00:25:30.279 --> 00:25:33.839
and have it do eighty ninety percent
of what you need and then if you

338
00:25:33.880 --> 00:25:37.759
really do need to customize that,
you can and that should be easy.

339
00:25:37.799 --> 00:25:41.319
But for the most part, it's
like, hey, look, you know,

340
00:25:41.839 --> 00:25:45.039
we've already built in three of these
features. So we're just going to

341
00:25:45.119 --> 00:25:48.319
grab the plug in for this other
thing and integrate it. Yeah, that

342
00:25:48.359 --> 00:25:52.880
makes sense. It sounds like you're
getting on the bandwagon of using rails as

343
00:25:53.000 --> 00:25:57.559
much as possibly can and just for
Yeah. Yeah. The other one that

344
00:25:57.599 --> 00:26:02.759
I found out there that does this
is jump Start, and I haven't I

345
00:26:02.759 --> 00:26:07.000
haven't looked at theirs because there's there's
is a paid deal, but I think

346
00:26:07.039 --> 00:26:11.720
it's kind of the same thing.
Yeah, I've just jumped Start before.

347
00:26:11.759 --> 00:26:15.960
It's pretty good. Yeah. Does
it gets you right up and running and

348
00:26:15.039 --> 00:26:18.240
in no time? Yeah. Yeah. I've heard a few people very plain

349
00:26:18.319 --> 00:26:25.400
about bullet Train. They had some
issues making it bending it to their will.

350
00:26:26.759 --> 00:26:30.519
Yeah, it's very opinionated, I
will say that, but it is

351
00:26:30.680 --> 00:26:34.960
very featureful. So right, if
you're looking if you're looking for all the

352
00:26:36.000 --> 00:26:38.799
things that you would need for a
SaaS business, it's like pretty turnkey and

353
00:26:38.839 --> 00:26:42.440
configurable in that way. Yeah.
But I feel like, yeah, jump

354
00:26:42.519 --> 00:26:48.799
jump Start, bro. I feel
like that was more of like a platform

355
00:26:48.960 --> 00:26:51.599
and then you build on top of
it kind of thing. Yeah, rather

356
00:26:51.640 --> 00:26:55.839
than trying to tune the knobs.
Yeah, and yeah, what I'm looking

357
00:26:55.880 --> 00:27:00.920
for is a little less use my
platform and a little bit more of Hey,

358
00:27:02.279 --> 00:27:07.799
here, here's your toolbox, right, here's I still can't believe that,

359
00:27:08.920 --> 00:27:15.759
yeah, that Reels new does not
have an interactive element. What do

360
00:27:15.799 --> 00:27:22.039
you mean so that I mean,
there's the Mayo WTF that started to try

361
00:27:22.079 --> 00:27:27.160
and you know, cannibalize all the
griefs that people feel are in the Reels

362
00:27:27.240 --> 00:27:33.200
ecosystem. I'm trying trying to focus
on like new you know, people new

363
00:27:33.279 --> 00:27:37.920
to the community. And one of
the things is, you know, everybody

364
00:27:37.240 --> 00:27:44.519
like at some point has made some
kind of configurator to start a new Rails

365
00:27:44.559 --> 00:27:47.920
app. Like there's a way to
like have your templates, so you can

366
00:27:47.920 --> 00:27:51.160
have a template that you generate all
your new Reels apps off of, which

367
00:27:51.240 --> 00:27:52.799
is nice, right, but then
you have to end up having to maintain

368
00:27:52.880 --> 00:27:57.000
the generator and make sure that you
know, the template is up to speed

369
00:27:57.079 --> 00:28:03.799
while all the new generator dates.
And then so like the whole idea was

370
00:28:03.839 --> 00:28:08.559
okay, well, rails could just
like use its existing generator and we'll just

371
00:28:08.599 --> 00:28:12.000
make it, you know, add
little UI toggles. So in the command

372
00:28:12.079 --> 00:28:18.400
line you could just have you know, a dash dash interactive and it'll step

373
00:28:18.440 --> 00:28:21.680
you through, you know, walk
you through all the steps for do you

374
00:28:21.759 --> 00:28:25.640
want to use like the asset pipeline, right, do you want to use

375
00:28:25.680 --> 00:28:27.880
turbo like hot wire? Yea,
And like you know all the things that

376
00:28:27.960 --> 00:28:33.039
all the flags and features that already
has that are just unless you do like

377
00:28:33.279 --> 00:28:36.240
you know, reels new dash dash
help, Like you have no idea that

378
00:28:36.319 --> 00:28:41.519
they're in there, right, And
so just for the rails flags themselves,

379
00:28:41.559 --> 00:28:44.519
not for just for the rails flags, like just start there, right,

380
00:28:44.880 --> 00:28:48.839
yeah, And so somebody built that
and they're like, yeah, like we

381
00:28:48.839 --> 00:28:52.599
could do this pretty easy, like
and they built it and uh, you

382
00:28:52.640 --> 00:28:56.079
know, shut down pretty quick and
that oh we did want to have to

383
00:28:56.119 --> 00:29:00.319
maintain it. Then anytime I knew
flag, we also have to you know

384
00:29:00.440 --> 00:29:03.680
change the generator. And you know
that's fine, but like that's also true

385
00:29:03.680 --> 00:29:07.319
of all these flags and all this
other stuff, like you know, wouldn't

386
00:29:07.359 --> 00:29:11.559
be that much more to maintain.
I don't know, Like yeah, for

387
00:29:11.640 --> 00:29:17.720
the number of times as somebody just
from scratch makes the rails configurator, I

388
00:29:17.799 --> 00:29:22.480
feel like maybe the benefit weighs all
the time wasted doing that. Right.

389
00:29:23.279 --> 00:29:30.079
Well, it's funny because so railscomposer
dot com I got from Daniel Keho,

390
00:29:30.680 --> 00:29:36.079
who did rails apps and he built
Rails composer, which would ask me totally

391
00:29:37.240 --> 00:29:41.079
yeah, And so you know,
I emailed him and asked him if I

392
00:29:41.119 --> 00:29:45.480
could buy it from him, and
we worked out a deal and anyway,

393
00:29:45.519 --> 00:29:48.200
it was pretty funny. He's like, yeah, I'm not maintaining it anymore,

394
00:29:48.240 --> 00:29:51.640
so you know, Yeah, anyway, he didn't have any heartburn giving

395
00:29:51.680 --> 00:29:55.119
it up. But anyway, it
was just kind of funny because yeah,

396
00:29:56.759 --> 00:30:00.799
I kind of want to do that
kind of a thing for yeah, for

397
00:30:00.200 --> 00:30:03.599
SaaS app. So then it could
be Rails composed and it would be Okay,

398
00:30:03.640 --> 00:30:07.559
which of these things do you want
to pull in? Right? And

399
00:30:07.640 --> 00:30:10.240
yeah, I'd love to put built
themes into it, right, So it's

400
00:30:10.640 --> 00:30:14.160
hey, look, you know,
we've got a whole bunch of nice looking

401
00:30:14.279 --> 00:30:18.640
view components right that are all all
have the right CSS classes and properties and

402
00:30:18.640 --> 00:30:23.759
what have you, And so if
you switch themes, it just pulls in

403
00:30:23.799 --> 00:30:32.720
a different set of view components and
magic manic. But yeah, I mean

404
00:30:32.759 --> 00:30:34.640
I've got all kinds of ideas of
things that could go into that, and

405
00:30:36.680 --> 00:30:40.839
I mean there are a lot of
things that you could really provide to people

406
00:30:40.880 --> 00:30:45.599
off of that, But those are
the biggies. Those are the big things

407
00:30:45.599 --> 00:30:48.079
that I'm working on. I mean, I volunteer at a bunch of stuff

408
00:30:48.359 --> 00:30:53.279
here locally, but it's not really
anything that people who watch or listen to

409
00:30:53.279 --> 00:31:00.160
the podcast are that interested in.
So yeah, you know, we both

410
00:31:00.160 --> 00:31:03.920
probably have just like so many ideas, And I feel like the more senior

411
00:31:03.960 --> 00:31:07.400
you get, the more ideas that
you just have that just like end up

412
00:31:07.400 --> 00:31:10.799
on a shelf. Yeah, And
I feel like there's like there's a missing

413
00:31:10.839 --> 00:31:15.920
opportunity there to just like have like
some kind of uh you know, employment

414
00:31:17.000 --> 00:31:22.799
option, just like work on people's
side projects. Maybe you know where I

415
00:31:22.799 --> 00:31:26.799
feel like I might get to a
point where, like, you know,

416
00:31:26.880 --> 00:31:30.720
I could afford to just like okay, you know, pay somebody to try

417
00:31:30.759 --> 00:31:33.319
out a couple of them, you
know, see see how far you can

418
00:31:33.359 --> 00:31:38.119
get. And maybe like that's like
an internship opportunity to write maybe just like

419
00:31:38.640 --> 00:31:45.359
and like junior like onboarding like apprenticeship
kind of style program that could be made

420
00:31:45.359 --> 00:31:48.359
from this, right, like just
trying to chip away at people's side projects,

421
00:31:48.400 --> 00:31:52.440
like because you know, whether or
not they do anything, like they're

422
00:31:52.559 --> 00:31:56.200
end up where they are anyway and
will continue to be right, Like,

423
00:31:56.440 --> 00:31:59.160
I don't have time to do all
these side projects, but I got a

424
00:31:59.160 --> 00:32:04.359
lot to do it. Some of
why I wanted to do like Ruby bits

425
00:32:04.359 --> 00:32:07.880
and Rails clips and video series was
so that I could work on the side

426
00:32:07.920 --> 00:32:13.839
projects, right, And so yeah, I mean for Rails clips, I

427
00:32:14.240 --> 00:32:17.599
am building Rails Composer, right,
So I am building an actual business,

428
00:32:20.000 --> 00:32:22.240
right and then yeah, I intend
to show you, Okay, I'm building

429
00:32:22.279 --> 00:32:27.440
in the you know, the user
management console that's going to wind up being

430
00:32:27.480 --> 00:32:34.599
for sale on Rails Composer, right. But anyway, it's for me.

431
00:32:34.680 --> 00:32:37.400
It is. It's that I do. I have like eight ideas that I

432
00:32:37.400 --> 00:32:40.839
imminently want to do that I just
don't have time for it, all right,

433
00:32:42.279 --> 00:32:45.440
I see, wouldn't it be nice
to just have like an apprenticeship program

434
00:32:45.680 --> 00:32:49.319
where you can get a pipeline of
people right ready to work on it for

435
00:32:49.440 --> 00:32:53.440
the experience and exposure and to have
a product that they could join potentially if

436
00:32:53.440 --> 00:32:57.799
it becomes fruitful. Right, that's
true, if it starts paying me,

437
00:32:57.960 --> 00:33:01.160
I can use that to start paying
them, right. And so I don't

438
00:33:01.160 --> 00:33:07.720
know, Yeah, I feel like
so many now I have a project to

439
00:33:07.799 --> 00:33:15.440
run many of my projects exactly,
thanks, I'm It's like so many hours

440
00:33:15.480 --> 00:33:19.559
are wasted on developers, just like
making it to do app, right,

441
00:33:19.640 --> 00:33:22.319
Like yeah, instead of a two
do app, why not just like join

442
00:33:22.400 --> 00:33:27.759
this like apprenticeship program and like yeah, work on some idea that somebody has

443
00:33:27.839 --> 00:33:30.519
fleshed out that like it's pretty much
a to do app, but just like

444
00:33:31.000 --> 00:33:35.880
you know, right, or their
own version of it. Right. So,

445
00:33:36.000 --> 00:33:37.559
like one of the things that I
want to build is just a guest

446
00:33:37.599 --> 00:33:43.519
workflow manager because I have been cobbling
things together using zampier for years and it

447
00:33:43.599 --> 00:33:46.720
still breaks all the time, right, And so it'd be nice it was

448
00:33:46.839 --> 00:33:51.200
just okay, it does all the
things right. Sure, it integrates with

449
00:33:51.279 --> 00:33:53.400
Google Calendar and one or two other
things in order to do some of its

450
00:33:53.400 --> 00:34:00.920
work, but it doesn't the way
I want it, right, Or maybe

451
00:34:00.920 --> 00:34:06.400
I'll do that. Maybe maybe I'll
start the apprenticeship program. And so if

452
00:34:06.440 --> 00:34:08.599
you're out there listening and you have
projects that you need an apprentice for,

453
00:34:08.840 --> 00:34:12.760
you know, just let me know
and I'll get like a nice big list

454
00:34:12.800 --> 00:34:17.360
going. And if you're somebody interested
in like learning Ruby and rails and you

455
00:34:17.440 --> 00:34:22.719
want like exposure and experience, like
you know, with some tips from a

456
00:34:22.760 --> 00:34:24.559
pro, like you know, reach
out to me. You know, I'm

457
00:34:24.559 --> 00:34:28.840
on the Twitter, let me know, and if we get a good enough

458
00:34:29.159 --> 00:34:32.599
bace, you know, maybe hey, maybe something will happen here. I've

459
00:34:32.639 --> 00:34:37.239
got a couple of projects that honestly, if somebody came to me and wanted,

460
00:34:37.920 --> 00:34:39.480
you know, a little bit of
coaching every week, I would I

461
00:34:39.480 --> 00:34:43.239
would totally help them if they would
help work on those, right, especially

462
00:34:43.280 --> 00:34:45.440
if it would be made right Like, I would just like love to use

463
00:34:45.480 --> 00:34:49.519
it open source wise, you know, like hey, and then it's yours

464
00:34:49.559 --> 00:34:52.800
if you want it, like really, you know, if I need to

465
00:34:52.840 --> 00:34:54.719
make some tweaks to it, I'll
do the open source thing and submit a

466
00:34:54.719 --> 00:34:59.440
PR for it, you know,
like yeah, I feel like, I

467
00:34:59.480 --> 00:35:01.480
mean, I've looked at some of
the open source stuff and I have to

468
00:35:01.480 --> 00:35:07.719
say that this might actually tick people
off, but some of these projects I

469
00:35:07.719 --> 00:35:12.360
would I would open source them as
like LGPL or something so that hey,

470
00:35:12.360 --> 00:35:14.400
look, if you're going to use
it or contribute to it, you have

471
00:35:14.440 --> 00:35:16.719
to contribute back. And I'm the
only person that can actually sell it and

472
00:35:16.760 --> 00:35:22.079
make money at it, because if
I'm going to invest all the time,

473
00:35:22.159 --> 00:35:23.559
effort and money into it, yeah, I'd like to profit from it.

474
00:35:24.000 --> 00:35:28.079
Yeah, I mean licens thing is
important. I think it's often overlooked and

475
00:35:28.480 --> 00:35:32.920
get hubs MIT default. I think
maybe uh you know, catches people off

476
00:35:32.960 --> 00:35:37.320
guard when they go and try and
do something. I think I think MIT

477
00:35:37.559 --> 00:35:43.159
licensing is great for like the vast
majority of open source stuff because it's hey,

478
00:35:43.199 --> 00:35:45.239
look, this is out there to
help other developers, and so if

479
00:35:45.239 --> 00:35:51.880
they want to tweak it, tweak
it, tweak away. Right. Yeah,

480
00:35:52.039 --> 00:35:55.199
But for some of the other business
stuff, yeah, I don't know.

481
00:35:57.360 --> 00:36:00.719
Yeah, I know that there was
a couple of Ruby projects that just

482
00:36:00.880 --> 00:36:08.159
like completely wipe the get history right
because they they changed the license or something

483
00:36:08.199 --> 00:36:13.480
like that. I forget what it
was. I don't know. I haven't

484
00:36:13.519 --> 00:36:19.840
heard about that. Oh okay,
but one project that is from a local

485
00:36:19.840 --> 00:36:22.639
company here. There's a company here
called Instructure and it's a it's a fairly

486
00:36:22.719 --> 00:36:28.400
large rooby shop actually, and they
have a product called Canvas and it's the

487
00:36:28.519 --> 00:36:32.159
systems it's used on like college campuses, and I think my kids' schools use

488
00:36:32.199 --> 00:36:36.800
it and stuff. Right. It's
kind of funny because you know, they

489
00:36:36.880 --> 00:36:38.280
kind of give me funny looks when
I go I know the guys that built

490
00:36:38.320 --> 00:36:45.679
it. But anyway, so yeah, they they started putting it out there,

491
00:36:45.840 --> 00:36:51.639
and the big player in the space
was Blackboard. I think it was

492
00:36:51.679 --> 00:36:54.239
Blackboard, and that was what was
out there when I was in college,

493
00:36:54.920 --> 00:36:59.239
right to hand out assignments and stuff
on the Internet. And they had a

494
00:36:59.239 --> 00:37:02.519
whole bunch of stuff that they had
patented processes and things like that, and

495
00:37:02.840 --> 00:37:07.280
they basically came out and at one
point publicly stated that they would not sue

496
00:37:08.039 --> 00:37:15.119
other learning systems that used the stuff
that they had patented if they were open

497
00:37:15.119 --> 00:37:21.239
source systems. And so what Canvas
did is they took advantage of that and

498
00:37:21.280 --> 00:37:24.119
released an open source version of Canvas, so if you wanted to, you

499
00:37:24.119 --> 00:37:28.199
could go stand up your own version
of Canvas. And in fact, at

500
00:37:28.239 --> 00:37:31.719
the time I was picking up contracts
customizing Canvas for different people, right,

501
00:37:31.840 --> 00:37:36.920
so they'd gotten it installed on their
machine and then they had forked it.

502
00:37:37.320 --> 00:37:39.079
But it was LGPL, so you
could use it for your own stuff.

503
00:37:39.519 --> 00:37:44.480
But then any changes you made to
it also had to be open sourced,

504
00:37:44.880 --> 00:37:49.559
right, because that's GPL and LGPL. No, it was a pharaoh.

505
00:37:49.599 --> 00:37:53.639
GPL was AGPL. But you also
couldn't sell it, right, so I

506
00:37:53.679 --> 00:37:58.519
could sell services to help people set
it up and things like that, and

507
00:37:58.559 --> 00:38:00.719
they could run it, but I
couldn't actually like run a service that says,

508
00:38:00.719 --> 00:38:08.079
hey, you know, have a
canvas so and you couldn't close the

509
00:38:08.119 --> 00:38:12.639
source. And so that was the
way they got around those patents because then

510
00:38:12.679 --> 00:38:16.960
Blackboard couldn't go after them without giving
themselves a black eye. And I think

511
00:38:16.960 --> 00:38:22.079
they eventually ate their lunch and took
most of their business. That's another thing.

512
00:38:23.000 --> 00:38:25.800
But yeah, so you know a
model like that where it's like,

513
00:38:25.800 --> 00:38:30.400
hey, look, I don't really
care if you use my app, but

514
00:38:30.760 --> 00:38:35.320
I don't want you know, I
don't want you competing directly with me to

515
00:38:35.599 --> 00:38:39.320
give people access to run my stuff. Right, so all the non programmers

516
00:38:39.400 --> 00:38:43.719
out there who want, you know, a version of the thing that I

517
00:38:43.800 --> 00:38:47.039
built, they have to come to
me and pay me in order to have

518
00:38:47.079 --> 00:38:50.719
it, right if they're not going
to go set up an open source version

519
00:38:50.760 --> 00:38:57.360
themselves. Oh that makes sense.
So anyway, but I don't even know

520
00:38:57.400 --> 00:39:00.000
if I'm gonna get there with some
of these projects because I don't have time.

521
00:39:00.320 --> 00:39:06.920
So so we were talking about time
management before the show. You know,

522
00:39:06.960 --> 00:39:09.599
well, yeah, are you using
anything special for your to manage all

523
00:39:09.599 --> 00:39:14.239
of these ideas that you have right
now, I just have this like trello

524
00:39:14.320 --> 00:39:20.800
board that's just like it might as
well just be a text file. Yeah,

525
00:39:20.920 --> 00:39:25.239
it just keeps growing. So I
used to be better about this and

526
00:39:25.360 --> 00:39:28.639
what I used to do, and
I just got out of the habit and

527
00:39:28.639 --> 00:39:30.639
I need to get back into the
habit is. I would basically write down

528
00:39:30.760 --> 00:39:34.719
three to five things that I needed
to do today and I would just make

529
00:39:34.719 --> 00:39:38.599
sure I got those done and so
yeah, and then I do the same

530
00:39:38.599 --> 00:39:43.480
thing for the week, right as
I'm like, these big chunks of stuff

531
00:39:43.519 --> 00:39:45.440
have to happen this week, right, and so it's hey, you know,

532
00:39:45.800 --> 00:39:50.559
like I'm an officer for the Utah
County Republican Party, right, and

533
00:39:50.559 --> 00:39:52.920
so it's hey, I got to
get this stuff done for the party.

534
00:39:52.960 --> 00:39:54.039
I got to get this stuff done
for work, I got to get this

535
00:39:54.039 --> 00:39:59.840
stuff done for this other thing,
and you know, and so then it's

536
00:40:00.079 --> 00:40:01.320
it's just a hey, I got
to get these things done. And so

537
00:40:01.760 --> 00:40:05.280
then I look at the next thing
that has to happen for those things,

538
00:40:05.360 --> 00:40:07.400
and I put three or three to
five of them on a list. I

539
00:40:07.440 --> 00:40:09.800
get them done, and I usually
actually block out time on my calendar.

540
00:40:12.119 --> 00:40:15.880
I haven't been doing that lately,
and even then sometimes it's overwhelming because I

541
00:40:15.880 --> 00:40:17.599
don't see how I can fit everything
in when I try and put it into

542
00:40:17.639 --> 00:40:23.000
my calendar. So I don't know, I don't know what the answer is,

543
00:40:23.000 --> 00:40:25.760
because I feel like I have more
things than I have time still,

544
00:40:27.440 --> 00:40:29.920
and so then I have to start
taking things off my list. But it's

545
00:40:29.920 --> 00:40:34.639
all stuff that I feel like has
to happen. So yeah, I have

546
00:40:34.679 --> 00:40:38.320
a hard time balancing like the uh, like the work and play time mm

547
00:40:38.360 --> 00:40:44.800
hmmm, because like I have a
pretty good schedule for like work. At

548
00:40:44.800 --> 00:40:46.079
the beginning of the day, I
just write down the things that, like

549
00:40:46.159 --> 00:40:50.760
you said, you need to get
these things done, and then some you

550
00:40:50.800 --> 00:40:53.000
know, extras at the bottom what
would nice to have? Yeah, And

551
00:40:53.079 --> 00:40:55.920
then then I have my list and
I was looking. I stares at me

552
00:40:55.960 --> 00:41:00.360
all day, and I got to
cross the stuff off and so but at

553
00:41:00.360 --> 00:41:01.960
the end of the day, you
know, I don't have anything I'm looking

554
00:41:01.960 --> 00:41:07.079
at because I you know, I've
got a family and kids and dinner and

555
00:41:07.119 --> 00:41:09.559
all the yeah, stecking up.
And then so like then it becomes well,

556
00:41:09.599 --> 00:41:14.119
okay, I found this like hour
in the morning every morning that I

557
00:41:14.159 --> 00:41:17.480
could do other stuff. But like
it's not really enough time to like write

558
00:41:17.519 --> 00:41:22.119
stuff down and get across to It's
like just enough time to like, you

559
00:41:22.159 --> 00:41:27.119
know, read some stuff and like
play around, you know, with an

560
00:41:27.159 --> 00:41:32.320
experiment, and you don't really have
time to build anything. Yeah, yep.

561
00:41:32.960 --> 00:41:37.039
So Dave Kimura, I asked him
how he was, you know,

562
00:41:37.119 --> 00:41:40.639
because he does drifting ruby on top
of a full time job. And what

563
00:41:40.719 --> 00:41:45.639
he said was that he worked something
out with his wife so that most days

564
00:41:45.679 --> 00:41:50.559
seven pm to ten pm is his
time to do drifting ruby and whatever else.

565
00:41:52.000 --> 00:41:54.960
That doesn't work for me. And
part of the reason why that doesn't

566
00:41:54.960 --> 00:41:58.679
work for me, I don't know
how old your kids are. Maybe I

567
00:41:58.679 --> 00:42:01.679
should ask how old are your kids? Right out? They're eating seen.

568
00:42:02.480 --> 00:42:07.239
Okay, So my lifestyle is a
little different. My kids are eighteen,

569
00:42:07.559 --> 00:42:14.840
sixteen, fourteen, twelve, and
eight, and so they all have things

570
00:42:14.880 --> 00:42:20.800
that they need to be at and
do. And the other piece of the

571
00:42:20.800 --> 00:42:25.239
puzzle is is that my wife works
at the charter school. She's the lunch

572
00:42:25.280 --> 00:42:29.519
director over there, and so she's
gone all day too, and so if

573
00:42:29.559 --> 00:42:32.800
there's anything that happens that has to
get handled, a lot of times it's

574
00:42:32.840 --> 00:42:37.440
me, right or my my daughter
just started a job at Subway, and

575
00:42:37.480 --> 00:42:43.760
so she doesn't have a driver's license
yet, and so I wind up driving

576
00:42:43.760 --> 00:42:46.559
her to work or picking her up
or right. And so there's always something,

577
00:42:47.119 --> 00:42:51.920
always something, And then being involved
in the party, you know,

578
00:42:51.960 --> 00:42:54.199
with the political stuff. You know, there'll be a state legislator that wants

579
00:42:54.239 --> 00:42:59.639
to meet for lunch, or there's
some thing like what Utah's caucus Night is

580
00:42:59.639 --> 00:43:01.960
coming up in March, right,
and so making sure that we have that

581
00:43:02.039 --> 00:43:07.760
altogether so that people who want to
express their you know, their opinions on

582
00:43:07.840 --> 00:43:12.119
because we're also doing a presidential preference
poll at caucus night, and so we

583
00:43:12.159 --> 00:43:14.920
want to make sure that that comes
out fair and square and that we're not

584
00:43:15.000 --> 00:43:19.440
tipping the scales inadvertently in any way
or anything like that. And so,

585
00:43:19.679 --> 00:43:22.280
you know, there's always the other
stuff that comes up, and so having

586
00:43:22.360 --> 00:43:25.320
a set time that I can do
that stuff from seven to ten, it

587
00:43:25.480 --> 00:43:29.960
just you know, in the evening, it's just it's not something that I

588
00:43:29.960 --> 00:43:36.119
can reliably do. And so what
I've started doing this week is I've just

589
00:43:36.119 --> 00:43:38.920
started putting in at least an hour
on that stuff, and then I'll start

590
00:43:38.920 --> 00:43:42.400
doing the other stuff. So then
I'll work on the client stuff or the

591
00:43:42.480 --> 00:43:49.800
party stuff or whatever. But yeah, it's not always enough. Yeah,

592
00:43:49.840 --> 00:43:55.000
I think I just needed to work
on optimizing that one hour window. Yeah.

593
00:43:55.239 --> 00:43:58.440
There have been a couple of nights
this week where I've gotten like three

594
00:43:58.440 --> 00:44:00.960
hours of sleep because I just stayed
up, kept working on stuff. I

595
00:44:01.000 --> 00:44:05.159
mean, I only have two interviews
left for the summit, and that's taken

596
00:44:05.239 --> 00:44:07.159
up some time too, So that's
one thing that least will kind of fall

597
00:44:07.199 --> 00:44:12.199
off my plate. Yeah, I
don't know, I'm thinking more about this

598
00:44:12.239 --> 00:44:16.199
apprenticeship program. You know, I'm
loving that idea, the only valid way

599
00:44:16.280 --> 00:44:22.880
to expand my hour window. I
think I'm very seriously thinking about whole stale

600
00:44:22.920 --> 00:44:28.599
wholesale stealing your idea and saying,
these are the projects I'm working on.

601
00:44:29.679 --> 00:44:31.360
You know, hey, let's collaborate, you know, let's just make a

602
00:44:31.880 --> 00:44:37.840
simple to do app that's you know, Chuck and Valentino's like you know,

603
00:44:37.519 --> 00:44:43.039
wish list, and then hey,
sign up, you know, sign up

604
00:44:43.079 --> 00:44:46.880
for the apprenticeship program, pick your
projects. Yeah, you know, it

605
00:44:46.960 --> 00:44:51.159
comes with, you know, I
don't know, a couple hours a week

606
00:44:51.239 --> 00:44:55.920
of you know, yeah, mentorship
one, the mentorship and then like a

607
00:44:57.000 --> 00:45:00.480
review period right where after you know
quarter reviews. You know, you go

608
00:45:00.519 --> 00:45:05.280
through and you get a little extra
time and get to review the progress,

609
00:45:05.360 --> 00:45:08.480
right, Like, yeah, I'm
not interested in having them apprentice on a

610
00:45:08.559 --> 00:45:12.559
to do app. I've got some
other ideas also. Well, I don't

611
00:45:12.559 --> 00:45:15.159
mean, I don't mean it to
do app. I just mean, you

612
00:45:15.199 --> 00:45:19.039
know, we make just a website
that is a to do list. Oh,

613
00:45:19.119 --> 00:45:22.840
I gotcha, that has the projects
that are on our list. Yeah

614
00:45:22.960 --> 00:45:25.920
that we want. That makes sense. Yeah, Wesley Curry asked if we're

615
00:45:27.079 --> 00:45:31.559
live. We are live, so
Hi to West Virginia. But yeah,

616
00:45:31.719 --> 00:45:37.559
yeah, I kind of like that
idea, some kind of project management thing

617
00:45:37.719 --> 00:45:42.000
or something like that. So I'm
kind of digging the idea, right,

618
00:45:42.039 --> 00:45:45.119
So then it's yeah, it's Ruby
Apprentice something rather. And I would even

619
00:45:45.159 --> 00:45:50.840
be open to experienced people. Right
if you're between jobs and you want a

620
00:45:50.840 --> 00:45:52.719
project to work on, and you
want me to refer you because you do

621
00:45:52.800 --> 00:45:59.079
good work, sure sounds good to
me. Exactly. I got some advanced

622
00:45:59.119 --> 00:46:01.320
projects. I yeah, I like
wanted to try, you know, like

623
00:46:02.119 --> 00:46:09.679
I wanted to I wanted to try
setting up a a rail's GP I o

624
00:46:09.840 --> 00:46:15.639
JEM where I could hook up real
time action cable to a GP I open

625
00:46:16.320 --> 00:46:22.039
on the Raspberry Pie. Yeah,
you know, like that could be advanced

626
00:46:22.199 --> 00:46:25.440
and I feel like it could be
fun too. You know, that's really

627
00:46:25.519 --> 00:46:29.679
interesting. I've never seen that before. It says it says Wes Wesley Curry

628
00:46:29.760 --> 00:46:32.360
was banned and their comments were removed
because we're did you do that? Or

629
00:46:32.480 --> 00:46:37.440
was that you did that? Yeah, he started posting bizarre stuff and I'm

630
00:46:37.480 --> 00:46:46.519
like not interested. Yeah so anyway, oh so so yeah, so yeah,

631
00:46:46.519 --> 00:46:51.320
we should definitely flesh this out some. I don't know that it'll get

632
00:46:51.400 --> 00:46:53.320
traction, but maybe it will.
Maybe there are people out there looking for

633
00:46:53.519 --> 00:46:59.559
a project to think to contribute to
and to be perfectly honest, the other

634
00:46:59.599 --> 00:47:06.880
thing is like, as I'm working
through Rails composer or working through ruby bits

635
00:47:06.920 --> 00:47:10.280
or Rails clips or some of the
other videos or you know kind of premium

636
00:47:10.320 --> 00:47:15.320
access things, I'm totally willing to
let people in if they're willing to contribute,

637
00:47:15.480 --> 00:47:20.639
right Yeah, And you know,
I feel like that's a hard it

638
00:47:20.679 --> 00:47:25.000
could bridge a gap too, right
like for open source, where like the

639
00:47:25.039 --> 00:47:30.159
hardest part is finding contributors, right, Like, you have a set of

640
00:47:30.199 --> 00:47:32.480
things that you know need to get
done, just you know, you don't

641
00:47:32.480 --> 00:47:36.000
have the time for it, or
it's just like right, you know,

642
00:47:36.039 --> 00:47:39.239
you have a backlog of issues.
You don't just throw them on the apprenticeship

643
00:47:40.000 --> 00:47:44.079
page, you know. I like
that if you're willing to devote a certain

644
00:47:44.079 --> 00:47:49.280
amount of time right to like mentor
somebody for so long, just and they'll

645
00:47:49.320 --> 00:47:52.800
get you know, they'll work on
this set of issues or whatever it may

646
00:47:52.840 --> 00:47:54.480
be for you. Yeah, I
feel like I feel like it could work

647
00:47:54.519 --> 00:47:58.239
out. Yep, all right,
And I want to know how you and

648
00:47:58.440 --> 00:48:00.800
him I did. I didn't know
you could do that. Oh, they

649
00:48:00.800 --> 00:48:08.920
have a little Hamburger menu on you
can put on YouTube. It was on

650
00:48:09.320 --> 00:48:13.960
stream yard. Okay, good deal. Yeah. I think you can do

651
00:48:14.039 --> 00:48:17.719
it with the top end of user
too. Okay, just good to see

652
00:48:17.719 --> 00:48:22.480
that. I don't know how to
get them out of time out though.

653
00:48:23.800 --> 00:48:27.599
Oh yeah it's right there. Delete
comment, put user in time out,

654
00:48:27.760 --> 00:48:36.119
bend user all right. Cool.
Yeah, I've I've played with the layouts

655
00:48:36.159 --> 00:48:38.239
of stuff. All right, good
deal. Was there anything else do you

656
00:48:38.239 --> 00:48:43.559
want to make sure people know about? Maybe maybe our first mentorship project will

657
00:48:43.559 --> 00:48:49.159
be the mentorship website. Yeah,
right, let's put it out there.

658
00:48:49.360 --> 00:48:53.320
If you're interested in building a mentorship
website. Yeah, but the thing is

659
00:48:53.320 --> 00:49:00.440
is that I would also be willing
to so just as an example, not

660
00:49:00.599 --> 00:49:05.280
just the mentorship thing, but also
like, if you're willing to contribute in

661
00:49:05.320 --> 00:49:08.800
a meaningful way on a regular basis
to my project, then I am willing

662
00:49:08.840 --> 00:49:12.880
to give you in return. Right, And so there's kind of an informal

663
00:49:12.960 --> 00:49:16.320
or I don't want to say contract, but understanding right that Hey, I'm

664
00:49:16.320 --> 00:49:21.760
going to get an hour a week
of your time in exchange for contributing at

665
00:49:21.840 --> 00:49:24.719
least, you know, closing so
many issues on a ge hub repo or

666
00:49:27.199 --> 00:49:30.760
you know, if you solve these
issues in the repo, then you'll get

667
00:49:30.760 --> 00:49:35.440
two hours of my time, right, and then I'll put more up next

668
00:49:35.480 --> 00:49:38.639
month than you can claim those as
well, or you know, but that

669
00:49:38.719 --> 00:49:42.360
way, you can incentivize people with
more than that, right, And then

670
00:49:42.559 --> 00:49:45.840
I could go in there and say
I have this project, I need these

671
00:49:45.880 --> 00:49:47.960
things done, and if you do
it, then you'll get access to my

672
00:49:49.800 --> 00:49:52.840
whatever course or whatever right as part
of the deal. And so if people

673
00:49:52.840 --> 00:49:59.360
want to work for their access instead
of pay for it, then that's an

674
00:49:59.360 --> 00:50:04.000
option. Yeah, that's pretty cool. Well, I don't know, if

675
00:50:04.000 --> 00:50:06.039
I don't know if I have anything
else to add, But I'm kind of

676
00:50:06.039 --> 00:50:09.400
digging this idea. This is kind
of floating to the top of our conversation

677
00:50:10.280 --> 00:50:16.639
this way. It wasn't planned.
We had not discussed this beforehand. It's

678
00:50:16.679 --> 00:50:22.320
something I've been thinking about a lot. Yeah, but like I just sat

679
00:50:22.360 --> 00:50:24.880
half the time. Yeah, you
know, like I throw ideas out on

680
00:50:24.920 --> 00:50:30.800
Twitter all the time, and I'm
like, hey, yeah, yeah.

681
00:50:30.880 --> 00:50:37.280
Well. The other thing is is
I've put before when I put the summits

682
00:50:37.280 --> 00:50:40.199
together, you basically just had to
pay or you couldn't even get to the

683
00:50:40.239 --> 00:50:45.199
videos. And this time I'm putting
them up for free for a week or

684
00:50:45.280 --> 00:50:49.760
during a week, I should say, for twenty four hours each And I'd

685
00:50:49.800 --> 00:50:52.920
have people come to me and say, well, I live in you know,

686
00:50:52.000 --> 00:50:55.119
this really small country and I'm poor
and I can't afford it. And

687
00:50:55.119 --> 00:51:00.960
I was always not sure how to
give it to them, you know,

688
00:51:00.000 --> 00:51:02.639
because it's like, well, I
do have people who are actually paying full

689
00:51:02.719 --> 00:51:07.199
freight for this, right, and
I don't know that I feel good giving

690
00:51:07.239 --> 00:51:08.559
it away. But I could say, hey, look, you know,

691
00:51:09.400 --> 00:51:13.280
this should take you a couple hours, and if you submit a pull request,

692
00:51:13.280 --> 00:51:19.360
then I merge it. Then I'll
give you a ticket future. Yeah,

693
00:51:19.519 --> 00:51:21.559
all right, good deal. Well, I don't I don't know if

694
00:51:21.599 --> 00:51:22.559
I had Like I said, I
don't know if I have anything else.

695
00:51:22.559 --> 00:51:25.840
How about you than anything else you
wanted to bring up or that you're working

696
00:51:25.840 --> 00:51:30.159
on? No, No, not
really. That's it for me too.

697
00:51:30.400 --> 00:51:35.119
It's a you know, I've got
to start. I have this blog that

698
00:51:35.159 --> 00:51:42.440
I used to keep track of my
you know, my embedded systems discovery,

699
00:51:42.480 --> 00:51:45.599
and I haven't done it in a
while. And that's where I'm gonna go

700
00:51:45.639 --> 00:51:50.559
next probably is get finally get some
of these projects up and document it because

701
00:51:50.679 --> 00:51:53.599
they're just they're too fun. Yeah, it's worth the story. Yeah,

702
00:51:53.639 --> 00:51:57.320
I love it. All right,
Well, let's go ahead and do some

703
00:51:57.360 --> 00:52:00.519
picks and then we'll wrap it up. Why don't you go ahead and go

704
00:52:00.559 --> 00:52:06.519
first. Yeah, So I'm gonna
do all ai picks. My first one

705
00:52:06.639 --> 00:52:10.119
is a LAMA. I've been using
that a lot O L L A m

706
00:52:10.199 --> 00:52:15.519
A. It's just like a super
easy, you know, way to download

707
00:52:15.760 --> 00:52:22.840
open source models and run them locally, super slick. It configures it by

708
00:52:22.880 --> 00:52:25.599
your system, so you get the
optimizations of the Mac if you're on one

709
00:52:25.880 --> 00:52:32.280
or you know whatever GPU you may
have. It does pretty great and runs

710
00:52:32.280 --> 00:52:37.800
fast convenient. It sets up like
a local api for you to to hit

711
00:52:37.880 --> 00:52:40.679
too, so you get like,
uh, you know, open Ai style

712
00:52:42.440 --> 00:52:46.480
chat api to complete stuff with using
your local models, which is pretty neat.

713
00:52:47.360 --> 00:52:50.679
So I've been playing a lot with
that and having a lot of fun

714
00:52:52.239 --> 00:52:57.199
to check that out. And yeah, the other one, I've been playing

715
00:52:57.199 --> 00:53:04.719
with Turbo more and I keep going
going back to this hot Rails tutorial and

716
00:53:04.760 --> 00:53:14.440
we've had what's his name, Alexander
oh oh Man blanket on his name.

717
00:53:15.199 --> 00:53:20.519
I have it open here rubon yep, Alexander Ruban. We had him on

718
00:53:20.519 --> 00:53:23.079
once and to talk about it and
just it's great. It's such a great

719
00:53:23.079 --> 00:53:28.320
reference and it sets you up with
like a great looking site that's just all

720
00:53:28.679 --> 00:53:34.360
the NILA's CSS, and it uses
like the Beam methodology, which is uh,

721
00:53:34.599 --> 00:53:37.119
you know, some people are saying
it's dated, but it's solid and

722
00:53:37.159 --> 00:53:44.920
it works well, super easy to
integrate within rails and yeah, it's just

723
00:53:44.960 --> 00:53:50.360
so much fun to play with Turbo
and trial the Turbo streams and get stuff

724
00:53:50.400 --> 00:53:54.960
updating live on the page, all
of just rails views. It's no JavaScript.

725
00:53:55.920 --> 00:54:00.039
I love it. So I've got
a couple of picks here. The

726
00:54:00.039 --> 00:54:02.800
first one is a game called Atiwa. I know I'm saying that wrong.

727
00:54:02.840 --> 00:54:10.679
I'm sure I'm saying that wrong.
It is a board game where you basically

728
00:54:10.760 --> 00:54:16.320
are breeding bats. And so what
it is is you start with a village

729
00:54:17.039 --> 00:54:21.199
and you can put different things on
the village. You can put trees,

730
00:54:21.239 --> 00:54:25.559
you can put families, you can
put wild animals, you can put goats

731
00:54:27.239 --> 00:54:30.440
and bats. And what you're trying
to do is you're trying to expand your

732
00:54:30.519 --> 00:54:38.440
village and raise more bats. And
so when you get a family, they're

733
00:54:38.480 --> 00:54:42.400
untrained. Once you train them,
then you can give them a bat to

734
00:54:42.440 --> 00:54:47.320
work with. And then, yeah, it's fairly involved game. It's mostly

735
00:54:47.360 --> 00:54:52.039
a worker placement and then you're managing
your own little economy on your own.

736
00:54:53.119 --> 00:54:57.159
It's a little bit more involved game. Board game geek actually waits at a

737
00:54:57.199 --> 00:55:00.360
two point seven to two. So
I keep telling people, like the average

738
00:55:01.440 --> 00:55:06.079
gamer, you know, if you're
a casual gamer, two is you know,

739
00:55:06.199 --> 00:55:10.639
kind of your sweet spot. If
you want something that's mildly challenging to

740
00:55:12.079 --> 00:55:15.559
follow along with, but not so
much that you have to really think hard

741
00:55:15.559 --> 00:55:17.760
about it. A Tea is a
thinker game. It's it's but it's so

742
00:55:17.920 --> 00:55:25.480
fun. Played it last night with
my buddies. We let my my friend

743
00:55:25.519 --> 00:55:31.199
Mike picked the game because today's the
first anniversary of when their baby passed away,

744
00:55:31.719 --> 00:55:34.920
and so we're just like, dude, whatever you want. That's what

745
00:55:35.000 --> 00:55:37.719
he wanted to play. But it's
a fun game. It's an awesome game.

746
00:55:37.360 --> 00:55:45.320
So I'm gonna pick a tea and
let me just get another link here

747
00:55:45.320 --> 00:55:49.400
to Amazon. This is an affiliate
link, so I do get, you

748
00:55:49.440 --> 00:55:53.400
know, the three percent or whatever
for referring it through them, But anyway,

749
00:55:55.199 --> 00:55:59.679
I really enjoyed it. Another thing
that I'm gonna pick. And I've

750
00:55:59.679 --> 00:56:04.320
just been on a kick the last
three or four days listening to Toby Keith

751
00:56:04.440 --> 00:56:09.760
music because he passed away three days
ago, and I grew up kind of

752
00:56:09.760 --> 00:56:15.719
as a teenager listening to his music, and in college I really got into

753
00:56:15.800 --> 00:56:20.000
his stuff, and so I really
enjoyed It's kind of irreverent country rock,

754
00:56:20.400 --> 00:56:24.280
this is the way I kind of
describe it. But yeah, he's had

755
00:56:24.320 --> 00:56:30.039
a whole bunch of just terrific songs, and I've really really enjoyed his music

756
00:56:30.079 --> 00:56:37.599
over the years, so you know, yeah, I'll miss him making new

757
00:56:37.800 --> 00:56:43.639
more of it, so anyway,
so Toby Keith and then yeah, I

758
00:56:43.639 --> 00:56:47.480
should have pages up for Rails Composers
soon to go check that out at Railscomposer

759
00:56:47.519 --> 00:56:54.320
dot com and the Ruby Dev Summit. I think we're two weeks ahead,

760
00:56:54.360 --> 00:56:58.480
so I think this episode will come
out after the Summit's already been out for

761
00:56:58.559 --> 00:57:00.719
free. You want a copy,
just go. You can still go to

762
00:57:00.840 --> 00:57:06.880
Ruby Dev Summit, enter your email
address and then it will take you to

763
00:57:06.920 --> 00:57:10.599
a page where you can sign up
for Ruby Clips and or Ruby Bits and

764
00:57:10.719 --> 00:57:14.599
Rails Clips. I get them mixed
up all the time, Ruby Bits and

765
00:57:14.880 --> 00:57:17.320
Rails Clips, So you'll get a
video a day or video a week for

766
00:57:17.360 --> 00:57:23.719
each series, and you can get
it for half off the second video series,

767
00:57:24.119 --> 00:57:29.119
so it's basically twenty nine dollars instead
of instead of nineteen for each one.

768
00:57:29.920 --> 00:57:37.159
And so yeah, go check that
out. And then yeah, the

769
00:57:37.199 --> 00:57:40.400
other the other one that I'm really
getting into these days is Tailwind tailwind AI

770
00:57:40.760 --> 00:57:46.519
or UI in particular. So Tailwind
UI is basically you can pay for it

771
00:57:46.519 --> 00:57:52.960
and then you get templates for different
components or layouts in with Tailwind. Now

772
00:57:53.159 --> 00:57:59.519
the layouts are all react so that
you know you can get a next JS

773
00:57:59.559 --> 00:58:02.920
app, and what I found is
that it's not terribly difficult to convert it

774
00:58:02.960 --> 00:58:09.960
from next jas components or react components
into rails View components. And so that's

775
00:58:09.960 --> 00:58:13.400
what I've been doing, is I've
just been pulling it over. The only

776
00:58:13.440 --> 00:58:17.559
thing that I've run into is that
they use the headless library for the animations,

777
00:58:17.639 --> 00:58:21.679
right, so if you click the
button and it drops down the menu

778
00:58:21.840 --> 00:58:25.480
things like that, they use Headless. But I haven't found anything in there

779
00:58:25.480 --> 00:58:30.159
that wasn't terribly hard to implement with
stimulus, So I've just been putting stimulus

780
00:58:30.159 --> 00:58:32.679
on it, so then if you
click it, it does the couple of

781
00:58:32.679 --> 00:58:37.280
transformations and off you go to the
races. So anyway, I've been pretty

782
00:58:37.280 --> 00:58:40.639
happy with that. The first couple
of rails Clips videos actually cover how I've

783
00:58:40.679 --> 00:58:45.880
handled a couple of those before I
get into the nuts and bolts of Okay,

784
00:58:45.880 --> 00:58:47.519
now I'm atting users, now,
I'm atting permissions, now I'm atting

785
00:58:47.920 --> 00:58:53.320
at whatever rights sprite. So if
you're looking at that and going, well,

786
00:58:53.360 --> 00:58:59.400
I like the idea behind tailwhen UI
and I've you know, I've grabbed

787
00:58:59.400 --> 00:59:04.119
some of the components, but I
either picked up just the HTML version that

788
00:59:04.159 --> 00:59:08.920
doesn't have the JavaScript to animate it, or I have this React component that

789
00:59:08.960 --> 00:59:13.679
I don't really want to pull React
into my app to use. Then yeah,

790
00:59:13.719 --> 00:59:17.440
i'll walk you through how to convert
them. So anyway, those are

791
00:59:17.440 --> 00:59:21.239
my picks. But yeah, I'm
really digging tailing you. I am not

792
00:59:21.320 --> 00:59:22.760
a fan of trying to figure out
how to make it look good on my

793
00:59:22.840 --> 00:59:27.840
own. One other thing that I
found, incidentally that I thought was funny

794
00:59:27.880 --> 00:59:32.360
is I think it's the salient layout. If you go to go rails their

795
00:59:32.440 --> 00:59:37.519
main page, it's it's salient,
and I'm wondering if they're running next JAS.

796
00:59:37.639 --> 00:59:40.920
I'm wondering if Chris is running next
JS there instead of Rails, or

797
00:59:40.960 --> 00:59:45.519
if he converted it. But I've
seen a couple of other people running it

798
00:59:45.519 --> 00:59:51.199
to people within the Ruby community who
I know generally use Rails, So anyway,

799
00:59:51.440 --> 00:59:57.199
I'm not the only one using it. But yeah, I think that's

800
00:59:57.239 --> 00:59:59.679
all I've got, So we'll go
ahead and wrap it up. Thanks for

801
00:59:59.679 --> 01:00:02.880
coming, Valentino. Looking forward to
seeing more of your projects. Thanks for

802
01:00:02.960 --> 01:00:07.800
having men. This is great.
Yeah, I'm looking forward to apprenticeships,

803
01:00:07.920 --> 01:00:14.719
you know, like, let's do
it. Yeah, all right, you

804
01:00:14.760 --> 01:00:20.079
know, the thought bought had the
apprenticeship program for so long, you know,

805
01:00:20.360 --> 01:00:23.039
and I think they still have.
But it's it's paid, uh you

806
01:00:23.039 --> 01:00:27.039
know, so there may be a
little bit difference there. But I feel

807
01:00:27.119 --> 01:00:30.320
like, you know, a pay
to play kind of situation. Uh,

808
01:00:30.440 --> 01:00:36.119
you know, I don't know.
It's just a way, Honestly, if

809
01:00:36.159 --> 01:00:40.199
I just had a way to just
you know, have a list for people

810
01:00:40.239 --> 01:00:45.000
to work on that are also interested
in mentorship, like you know, what

811
01:00:45.199 --> 01:00:50.519
a great way, right, I
feel like, yeah, some birds.

812
01:00:51.119 --> 01:00:53.280
Yeah, I do have to say, you know, and we're still live,

813
01:00:53.719 --> 01:00:57.960
but I do have to say that. The only other hang up I

814
01:00:58.079 --> 01:01:02.159
have is that technically, unless you
sign a contract or something, you own

815
01:01:02.199 --> 01:01:07.159
any code you write, and so
we might have to have some kind of

816
01:01:07.199 --> 01:01:12.159
agreement that says you know that.
And what I would do is I would

817
01:01:12.199 --> 01:01:15.880
just have the mentor opt into it, right, And so they say I

818
01:01:15.360 --> 01:01:19.599
need my apprentices to opt into this. That says any work that I do

819
01:01:20.280 --> 01:01:27.480
on or related to my project becomes
property of myself or my company. And

820
01:01:27.519 --> 01:01:30.719
that way, there's just no hang
up. If you have somebody work on

821
01:01:30.760 --> 01:01:34.639
something, it's like, yeah,
you know, you're the one that ultimately

822
01:01:34.679 --> 01:01:38.960
has say on how it's licensed,
use whatever. But then you can pull

823
01:01:39.280 --> 01:01:45.599
people in on private repos for you
know, company owned projects too and not

824
01:01:45.639 --> 01:01:49.519
be worried about Okay, they're going
to come back and sue me because they

825
01:01:49.559 --> 01:01:54.119
own ten percent stake now in this
code base. Yeah, I mean,

826
01:01:54.320 --> 01:01:58.800
hey, I have projects where I
don't mind. Yeah, if it's on

827
01:01:58.920 --> 01:02:06.000
it, well, if it's open, let's start step one. Yeah,

828
01:02:06.039 --> 01:02:09.039
let's start step one. You know, don't projects that don't involve licensing,

829
01:02:09.599 --> 01:02:13.960
right, you know, yeats,
let's get that step. We'll get there

830
01:02:14.039 --> 01:02:16.039
when we get there kind of thing, you know. Yeah, And then

831
01:02:16.639 --> 01:02:20.840
here's some projects we want it to
be made. You just don't have the

832
01:02:20.880 --> 01:02:22.480
time. Do you want to work
on it? And you know, get

833
01:02:22.480 --> 01:02:28.679
some mentorship like I got plenty of
those still. Yeah. Well, and

834
01:02:28.760 --> 01:02:32.679
if anybody knows a good attorney that
does those kinds of contributor agreements, something

835
01:02:32.840 --> 01:02:37.960
we just put together and then just
have on the website that people sign as

836
01:02:38.039 --> 01:02:42.519
part of the deal. Right,
And so then it's hey, I need

837
01:02:42.559 --> 01:02:45.039
people to assign this right, and
so then it's I agree and wave all

838
01:02:45.119 --> 01:02:49.960
rights to specifically the work on this
project. Right. We'll make it very

839
01:02:50.079 --> 01:02:52.840
narrowly focused but yeah, that then
people can just get help wherever they want,

840
01:02:53.039 --> 01:02:55.599
and they can open up more opportunities
to people on the other end.

841
01:02:57.000 --> 01:03:00.599
And I mean, yeah, you're
right. Some of the apprenticeship programs I've

842
01:03:00.599 --> 01:03:05.239
seen them where they yeah, they're
paying the apprentices to work on actual apps,

843
01:03:05.719 --> 01:03:07.840
but there just aren't enough of those
opportunities for everybody coming out of a

844
01:03:07.880 --> 01:03:13.639
boot camp or making your career change. And it would be terrific to have

845
01:03:13.760 --> 01:03:16.360
people be able to come in and
really take advantage of that. And then

846
01:03:16.519 --> 01:03:22.119
after six months working on my project
or your project or somebody else's project,

847
01:03:22.679 --> 01:03:25.880
they go out there and they have
they have that on their resume. Well,

848
01:03:25.920 --> 01:03:29.239
for the last six months I've been
working on this job board, or

849
01:03:29.239 --> 01:03:32.079
the last six months I've been working
on this internal app, and you know,

850
01:03:32.320 --> 01:03:36.239
here's my reference, right, And
then the reference is somebody in the

851
01:03:36.280 --> 01:03:40.639
community who can say, yeah,
they did a great job. Yeah.

852
01:03:40.760 --> 01:03:47.760
I mean you know who is it? A man the Ruby friend program,

853
01:03:47.840 --> 01:03:54.400
right, Uh huh, that's such
a great I don't think it was Brian

854
01:03:54.440 --> 01:04:00.599
Hogan. I think it was He's
Ruby mentor. I think, oh no,

855
01:04:00.760 --> 01:04:09.159
there was one participated in a while
ago. Yeah, he orchestrated the

856
01:04:09.159 --> 01:04:15.880
whole thing himself, just like via
email. Oh man, I'm so bad

857
01:04:15.920 --> 01:04:23.119
with names and k yeah Andy krawl
yep. And it was great, you

858
01:04:23.159 --> 01:04:27.320
know, like he just are you
interested? Yes? Okay, he put

859
01:04:27.480 --> 01:04:30.599
put you on the list, and
are you interested in the mentorship? Yes,

860
01:04:30.760 --> 01:04:33.320
put you on the list, and
then you know, random sample pair

861
01:04:33.400 --> 01:04:40.079
people up and boom like okay,
here go meet, here's some guidelines,

862
01:04:40.920 --> 01:04:45.400
you know, be respectful, like
you know, and it worked out that

863
01:04:45.760 --> 01:04:51.119
it's still going, you know,
and I feel like that combined with projects

864
01:04:51.119 --> 01:04:57.199
that people have, right, yeah, like you can actually make stuff out

865
01:04:57.199 --> 01:05:00.960
of it, you know, like, well in in a lot of ways,

866
01:05:01.719 --> 01:05:04.400
I know people who are willing to
be mentors, but then they're like,

867
01:05:04.480 --> 01:05:09.239
I don't have time, and so
this gives them some incentive because it's,

868
01:05:09.679 --> 01:05:12.239
hey, this is ultimately going to
save you at least some of the

869
01:05:12.559 --> 01:05:15.440
time back, right, because you
don't have to go and do the work.

870
01:05:15.639 --> 01:05:17.599
Yeah you have to review the code
and yeah you have to you know,

871
01:05:17.679 --> 01:05:21.840
spend time helping this person learn stuff. But the other end of it

872
01:05:21.880 --> 01:05:27.000
is is that yeah, you know, they spent twelve hours doing something that

873
01:05:27.039 --> 01:05:31.199
would take you two hours, but
you you know, net spent an hour

874
01:05:31.280 --> 01:05:38.519
with them, and so you earned
an hour back, right, And I

875
01:05:38.519 --> 01:05:41.920
mean to be honest, like,
if somebody is interested in getting into open

876
01:05:41.960 --> 01:05:45.280
source, right, like they just
haven't found out how Like this is part

877
01:05:45.280 --> 01:05:49.880
of open source, right, like
taking a contribution from somebody, reviewing it

878
01:05:50.039 --> 01:05:55.880
and getting emerged in and managing that
process Like it's honestly a great way to

879
01:05:56.000 --> 01:05:58.679
like set somebody up for that,
right, Like if you have an interest

880
01:05:58.719 --> 01:06:04.760
in open source apprenticeship program mentorship apprenticeship, like it is very similar to open

881
01:06:04.760 --> 01:06:10.480
source, you know, yeah and
winning combo, let's let's get it done.

882
01:06:11.039 --> 01:06:15.320
Yeah, well there's no reason why
open source projects couldn't submit to this

883
01:06:15.400 --> 01:06:20.599
too, right exactly? Yep,
all right, good deal. Oh yet

884
01:06:20.639 --> 01:06:24.800
another thing for me to do.
But this one sounds pretty rewarding at least,

885
01:06:25.880 --> 01:06:29.519
right at least I mean we got
to get you know, all these

886
01:06:29.559 --> 01:06:32.960
newcomers into the you know, into
the unity, Like yeah, you know

887
01:06:33.039 --> 01:06:38.199
that that is definitely like still a
barrier to entry, is like how do

888
01:06:38.239 --> 01:06:41.519
you get people up to speed and
feel uncomfortable talking to people? Right?

889
01:06:41.639 --> 01:06:45.519
Like, you know that that barrier
is still there and doesn't have to be

890
01:06:45.559 --> 01:06:47.599
and you shouldn't need to spend money
on a conference to get it, you

891
01:06:47.639 --> 01:06:51.719
know. Yeah. Well, the
other thing is is that I talked to

892
01:06:51.760 --> 01:06:56.320
some people, and they do a
good enough job selling themselves to where they

893
01:06:56.320 --> 01:06:59.920
can go from I've never worked at
a company that did any kind of program,

894
01:07:00.000 --> 01:07:03.800
I mean before to get somebody to
hire them because they can demonstrate one

895
01:07:03.800 --> 01:07:08.159
way or the other that they're worth
taking a chance on. And then there

896
01:07:08.159 --> 01:07:10.480
are a whole bunch of other people
that just aren't so lucky, and so

897
01:07:10.559 --> 01:07:15.039
what they wind up doing is effectively
they wind up doing this, except you

898
01:07:15.079 --> 01:07:17.639
know, they have their own project, and they don't really have good mentorship,

899
01:07:18.079 --> 01:07:20.719
they don't have a way of building
their network, and so they're kind

900
01:07:20.719 --> 01:07:25.079
of just stuck there until they can
convince somebody that, hey, look,

901
01:07:25.079 --> 01:07:27.239
this is all the stuff I did
on my own, this is stuff I'm

902
01:07:27.280 --> 01:07:30.800
learning on my own, and then
get somebody to take a chance on them

903
01:07:30.800 --> 01:07:33.239
once they have a pile of things
to shove in their face and say I

904
01:07:33.280 --> 01:07:39.000
can do this stuff. Yeah.
Yeah, you know, even like from

905
01:07:39.039 --> 01:07:42.880
somebody that's trying to like change languages, like this doesn't know Ruby but wants

906
01:07:42.920 --> 01:07:45.400
to know Ruby, Like yeah,
I feel like This is another great opportunity,

907
01:07:45.440 --> 01:07:49.480
you know, like how do you
pick up speed? Right, like

908
01:07:53.840 --> 01:07:59.840
react on so many projects? Right? Yeah, No, I agree with

909
01:07:59.840 --> 01:08:01.760
you. Yeah, we'll have to
talk about it offline and see what we

910
01:08:01.800 --> 01:08:05.079
can come up with, and maybe
it'd be fun to do another episode about

911
01:08:05.079 --> 01:08:12.639
it once we kind of recap.
Yeah yeah, but I'm totally down figuring

912
01:08:12.679 --> 01:08:15.479
out how to make this happen.
Let's do it all right, all right,

913
01:08:15.479 --> 01:08:18.720
I'm gonna wrap this up until next
time, folks, max out

