WEBVTT

NOTE
This file was generated by Descript 

00:00:04.696 --> 00:00:05.750
CJ: Welcome to build and learn.

00:00:05.750 --> 00:00:06.630
My name is CJ.

00:00:06.693 --> 00:00:09.333
Colin: And I'm Colin, and
today we are chatting about our

00:00:09.333 --> 00:00:12.433
favorite season, Advent of Code,

00:00:12.763 --> 00:00:13.383
CJ: Yes.

00:00:14.403 --> 00:00:15.603
Tis the season.

00:00:16.193 --> 00:00:17.443
Hacking left and right.

00:00:17.993 --> 00:00:18.983
Great idea.

00:00:19.083 --> 00:00:22.993
setting up, we've got this little
channel in Slack where people

00:00:22.993 --> 00:00:28.043
can go and discuss their advent
of code problems and solutions.

00:00:28.773 --> 00:00:31.833
Colin: Yeah, I think we talked
about it last time, but I've been

00:00:31.833 --> 00:00:35.173
feeling a little burnt out about
the dev meetup that we have locally.

00:00:35.173 --> 00:00:40.983
And so I set up Advent of Code as
our December meetup, which honestly

00:00:40.983 --> 00:00:45.673
is more engagement than we've had in
even some of the in person meetings.

00:00:45.723 --> 00:00:48.303
admin of code is a little challenging
because it does take it like a

00:00:48.333 --> 00:00:50.273
significant amount of time to do.

00:00:50.723 --> 00:00:53.643
but I don't think, to get value out
of it, you don't have to do them all.

00:00:54.083 --> 00:00:57.943
And, you're doing videos for
all of these, which is amazing.

00:00:58.403 --> 00:01:00.393
I've learned a lot just watching yours.

00:01:01.443 --> 00:01:04.493
For me, it's a little challenging because
once I see how you do it, it's hard

00:01:04.633 --> 00:01:06.593
to think about any other way to do it.

00:01:06.623 --> 00:01:09.723
So I've been trying to see
how far I can get without it.

00:01:09.958 --> 00:01:14.978
Look at some hints and things, on Reddit
and other places before I watch your

00:01:14.978 --> 00:01:17.438
videos, but it's been super helpful.

00:01:18.303 --> 00:01:19.833
CJ: Yeah, I like that approach.

00:01:19.893 --> 00:01:25.033
I also try to do that like
first try to solve it myself.

00:01:25.143 --> 00:01:29.153
There's definitely some problems
that require dynamic programming or

00:01:29.153 --> 00:01:34.393
require like crazy graph traversal
or some high level mathematics that I

00:01:34.403 --> 00:01:36.123
don't know and have never seen before.

00:01:36.503 --> 00:01:40.033
And in those cases, I will often
just try to take a stab at it myself.

00:01:40.393 --> 00:01:43.843
And if that doesn't work, then I'll
try to look for hints on Reddit.

00:01:44.618 --> 00:01:48.208
And without like spoilers, and if
that does still doesn't work, then

00:01:48.208 --> 00:01:52.108
I'll watch and there's like tons
of videos on YouTube of different

00:01:52.108 --> 00:01:53.868
people taking different approaches.

00:01:53.978 --> 00:01:56.068
There's this one guy, Jonathan Paulson.

00:01:56.673 --> 00:01:59.743
Who I think right now is like number
two on the leaderboard for 2023.

00:02:00.213 --> 00:02:04.933
And he live streams, like the
second it comes out, he'll

00:02:04.933 --> 00:02:06.763
live stream, his like solution.

00:02:06.773 --> 00:02:09.713
So you can watch the countdown
timer go down, like three, two, one,

00:02:09.713 --> 00:02:11.173
he clicks on it and he solves it.

00:02:11.483 --> 00:02:12.623
Doesn't talk or anything.

00:02:12.623 --> 00:02:14.733
Just like blasts through
it as fast as possible.

00:02:14.753 --> 00:02:17.373
And then we'll go back
and explain his approach.

00:02:17.753 --> 00:02:19.893
so I love watching his videos.

00:02:20.043 --> 00:02:25.153
And yeah, there's, it's like amazing
opportunity to learn new languages or new

00:02:25.153 --> 00:02:26.533
language features and things like that.

00:02:26.593 --> 00:02:26.998
it's

00:02:27.168 --> 00:02:27.568
Colin: Nice.

00:02:27.958 --> 00:02:33.938
Yeah, I'm using this as an opportunity to
learn Python and when I watch your videos,

00:02:33.978 --> 00:02:39.458
I like want to reach for a lot of the
niceties of Ruby and like all these little

00:02:39.458 --> 00:02:45.458
helper methods and things like I was
trying to like multiply, an array and it's

00:02:45.458 --> 00:02:50.148
I know how to do this in Ruby, but now let
me go find out how I have to do this in,

00:02:50.158 --> 00:02:55.268
in Python and it's like basically like a
reduced function that you had to write.

00:02:55.513 --> 00:03:00.023
but it's just not as simple as, and it's
also Ruby's so much in my brain still.

00:03:00.073 --> 00:03:01.873
but yeah, it's a good way
to learn new languages.

00:03:01.873 --> 00:03:08.403
I've been watching, Bash Bunny on
Twitch, learning Zig with, with this.

00:03:08.843 --> 00:03:12.033
And that is all I know about
Zig is just a little bit that

00:03:12.033 --> 00:03:13.203
I've watched from her streams.

00:03:13.203 --> 00:03:16.073
So definitely fun to watch.

00:03:16.473 --> 00:03:19.253
CJ: Reddit solutions too.

00:03:19.253 --> 00:03:23.393
People will use like JQ or they'll
use Google sheets or they'll use,

00:03:23.763 --> 00:03:27.793
some wild technology or language
that I never even would have thought

00:03:27.823 --> 00:03:29.283
could solve some of these problems.

00:03:29.313 --> 00:03:32.833
And there, some of them
are very elegant solutions,

00:03:32.893 --> 00:03:34.703
Colin: off the COBOL and Perl

00:03:34.758 --> 00:03:36.878
CJ: Yeah, totally.

00:03:37.148 --> 00:03:39.398
There's a lot of Perl,
surprisingly, solutions.

00:03:39.858 --> 00:03:44.388
I would bet that Python is the number
one followed probably by JavaScript.

00:03:44.418 --> 00:03:47.448
And then, lots and lots
of different languages.

00:03:47.458 --> 00:03:47.758
So

00:03:48.278 --> 00:03:50.798
Colin: Yeah, I joined the Python
discord server, which I think is

00:03:50.848 --> 00:03:53.928
I'm not sure if it's the official
one, but it's the biggest one.

00:03:54.358 --> 00:03:58.088
and there's like an admin of code section
that they added so that people can have

00:03:58.098 --> 00:04:03.098
conversations there and, people, we're
only on day seven and I'll say that I

00:04:03.098 --> 00:04:07.958
think where am I'm on day five and I
was able to solve the sample, but then

00:04:07.958 --> 00:04:12.933
the input is like, It's using ranges
and the sample was like pretty tame, but

00:04:12.933 --> 00:04:14.753
then the input is like in the billions.

00:04:15.173 --> 00:04:19.853
And so my solution does not
work, or at least it might take

00:04:19.853 --> 00:04:21.333
many years to finish before.

00:04:22.078 --> 00:04:22.438
CJ: Yeah.

00:04:22.873 --> 00:04:26.693
Colin: So I need to go back and update it
to just like dynamically calculate if it's

00:04:26.693 --> 00:04:31.943
in the range instead of, I think I was, I
generated all the tables, which would take

00:04:31.943 --> 00:04:33.773
a very long time to do in the billions.

00:04:34.258 --> 00:04:36.678
CJ: That was my instinct too,
for solving that problem.

00:04:36.950 --> 00:04:40.280
The first time I looked at it, I was
like, Oh yeah, you can just generate.

00:04:40.625 --> 00:04:42.845
hashes  and then, yeah, look
through them or whatever.

00:04:42.945 --> 00:04:50.455
And, yeah, it's interesting how
Eric throws those curve balls

00:04:50.485 --> 00:04:53.045
when he's creating all these
different challenges to make it.

00:04:54.460 --> 00:04:55.520
More interesting, right?

00:04:55.520 --> 00:04:59.250
Like the part two is always Oh gosh,
that's so hairy or gnarly or whatever.

00:04:59.280 --> 00:05:02.360
and also depending on how you
solve part one, sometimes the

00:05:02.360 --> 00:05:05.490
refactoring can be like a tiny
little change to make part two work.

00:05:05.730 --> 00:05:06.870
And other times it's Oh wow.

00:05:06.870 --> 00:05:09.150
That like part one does
nothing for me anymore.

00:05:09.150 --> 00:05:11.560
Like I need to completely rethink
all of my data structures, all

00:05:11.560 --> 00:05:12.920
my algorithms to make this work.

00:05:13.420 --> 00:05:13.800
So

00:05:14.765 --> 00:05:19.165
Colin: which I think encourages
good coding practices and reusable

00:05:19.165 --> 00:05:22.585
code so that you don't have to like,
burn it all down and start over.

00:05:22.635 --> 00:05:26.385
But, I think for some first couple days,
I wasn't using any functions at all.

00:05:26.395 --> 00:05:28.885
Now I'm like starting to put
things in functions and call

00:05:28.885 --> 00:05:30.805
them and get used to that.

00:05:30.835 --> 00:05:33.685
So maybe I'll have to introduce
some classes before we're done.

00:05:34.500 --> 00:05:34.970
CJ: nice.

00:05:35.250 --> 00:05:36.180
Yeah, totally.

00:05:36.800 --> 00:05:39.110
Have you, so what is your
experience with Python?

00:05:39.500 --> 00:05:43.010
in the past, is this the first
kind of deep dive into it or

00:05:43.020 --> 00:05:44.920
have you used it just for fun?

00:05:44.980 --> 00:05:45.450
Okay.

00:05:45.560 --> 00:05:46.080
Nice.

00:05:46.310 --> 00:05:48.160
Colin: Yeah, I've never used it.

00:05:48.190 --> 00:05:52.570
Somehow I got away with never writing
a line of Python until I think when I

00:05:52.680 --> 00:05:57.270
joined discord, I played around with
one PR that it was like a pretty easy

00:05:57.270 --> 00:06:01.520
one liner or something, but, I'm needing
to get into our Python code more,

00:06:01.520 --> 00:06:03.480
so it's just good for me to know it.

00:06:03.480 --> 00:06:06.060
And so this has been a
good learning time for it.

00:06:06.120 --> 00:06:07.460
I realized that.

00:06:07.710 --> 00:06:10.970
Like I do have a pretty strong
computer science foundation.

00:06:10.970 --> 00:06:16.480
So it's more of how do I do the thing
I do in other languages in Python and

00:06:16.480 --> 00:06:18.880
not having to re rebuild and relearn.

00:06:18.890 --> 00:06:22.100
Cause I have some friends who are learning
computer science with Python right now.

00:06:22.640 --> 00:06:28.260
And, so they're also learning how to
think in, single dimensional arrays,

00:06:28.270 --> 00:06:31.380
multi dimensional arrays, how to think
about where you're at and then like

00:06:31.380 --> 00:06:36.160
context of variables and things like
that too, It those things we take for

00:06:36.160 --> 00:06:39.280
granted the longer we do this versus
when you're learning, you're like,

00:06:39.280 --> 00:06:43.120
I put some equals zero up here, but
it's yeah, that's getting reset to

00:06:43.120 --> 00:06:44.780
zero every time this loop happens.

00:06:45.290 --> 00:06:47.880
So you're some constantly
is getting blown away.

00:06:48.500 --> 00:06:49.290
yeah, so

00:06:49.325 --> 00:06:50.775
CJ: Yeah, definitely.

00:06:51.290 --> 00:06:51.590
Colin: for it.

00:06:52.385 --> 00:06:52.935
CJ: Totally.

00:06:53.105 --> 00:06:53.345
Yeah.

00:06:53.365 --> 00:06:58.325
I like to tell people that like every new
language that you learn becomes a little

00:06:58.355 --> 00:07:00.545
easier than the last one that you learned.

00:07:00.555 --> 00:07:01.885
And the first one is always so hard.

00:07:02.395 --> 00:07:05.085
Like the very first one that
you learn is just so much work

00:07:05.085 --> 00:07:06.225
to wrap your head around stuff.

00:07:06.245 --> 00:07:07.525
Oh

00:07:07.540 --> 00:07:08.610
Colin: spoken languages.

00:07:09.185 --> 00:07:10.485
CJ: my gosh, that would be awesome.

00:07:10.485 --> 00:07:10.765
Yeah.

00:07:12.085 --> 00:07:12.475
Yeah.

00:07:12.850 --> 00:07:15.820
Colin: So yeah, I guess to follow the
last episode, we talked a little bit

00:07:15.820 --> 00:07:19.750
about YouTube and streaming and so
just ripped the bandaid off and did a

00:07:19.750 --> 00:07:23.660
stream with advent of code for one of
the challenges with my friend Aaron and

00:07:24.255 --> 00:07:24.565
CJ: Awesome.

00:07:25.600 --> 00:07:26.320
Colin: It was interesting.

00:07:26.370 --> 00:07:30.240
we talked about getting on stream and
then it took us like 45 minutes because

00:07:30.240 --> 00:07:32.200
we were doing  a stream together.

00:07:32.930 --> 00:07:36.740
ShE'd been all set up for solo streams,
but we use the new Twitch stream

00:07:36.740 --> 00:07:38.420
together feature, which is pretty cool.

00:07:38.820 --> 00:07:44.170
and what's nice about it is when she
goes live, it tells my followers that

00:07:44.170 --> 00:07:45.950
Colin's going live on Aaron's stream.

00:07:46.530 --> 00:07:50.320
And then it streams both of our
cameras into an overlay that you

00:07:50.320 --> 00:07:52.560
can put into your stream software.

00:07:52.560 --> 00:07:56.245
So You don't have to have
all those like other tools.

00:07:56.295 --> 00:07:58.785
I literally have it written down
on a little card in front of me.

00:07:59.105 --> 00:08:03.355
This is something that I was wanting to
build a long time ago and Twitch just

00:08:03.365 --> 00:08:05.325
has it built in now, which is cool.

00:08:05.405 --> 00:08:09.185
And also one of those like platform
risk type things where Twitch

00:08:09.185 --> 00:08:12.905
knows what they, want to have to
make their streamers successful.

00:08:13.345 --> 00:08:16.745
And having that hook in there where
it's like, it actually shows on

00:08:16.745 --> 00:08:20.065
the UI Colin Aaron are streaming.

00:08:20.065 --> 00:08:25.235
so they've done a really good job with
that, but, OBS just was not cutting it.

00:08:25.245 --> 00:08:29.905
So I had her switch over to meld
studio, which is honestly, I can't

00:08:29.905 --> 00:08:31.395
go back to OBS after using it.

00:08:31.395 --> 00:08:32.915
it's designed for the Mac.

00:08:33.375 --> 00:08:36.115
It uses the m1, m2, m3 chips.

00:08:36.495 --> 00:08:38.645
so it's just like a
much better experience.

00:08:38.645 --> 00:08:41.265
And they tell you as you're
streaming, this is not production

00:08:41.265 --> 00:08:43.035
grade, do not use this yet.

00:08:43.495 --> 00:08:49.135
but we haven't had any issues and it
took us minutes to get all set up with,

00:08:49.185 --> 00:08:52.865
from downloading it and setting it up to
hitting stream, which was really nice.

00:08:53.500 --> 00:08:56.730
CJ: Does, okay, so meld is an one
for one alternative to OBS in terms

00:08:56.730 --> 00:09:01.620
of getting your own camera screen
inputs and like all these other

00:09:01.655 --> 00:09:04.135
Colin: images, sources, all those things.

00:09:04.135 --> 00:09:04.425
Yeah.

00:09:05.000 --> 00:09:10.050
CJ: And then your meld input is
directly into Twitch and then

00:09:10.070 --> 00:09:15.740
Twitch is like muxing your input
and her input, like on that side?

00:09:15.740 --> 00:09:17.630
Or are you both like meld?

00:09:17.710 --> 00:09:18.160
Is there some

00:09:18.485 --> 00:09:21.255
Colin: So it's a little
bit stranger than that.

00:09:21.335 --> 00:09:24.065
It's another, so you go to the
stream together website and they

00:09:24.065 --> 00:09:28.205
give you a URL that you put in as
a source into your mail or OBS.

00:09:28.695 --> 00:09:34.415
So it is a, they're putting you and
your guests into a browser and then

00:09:34.755 --> 00:09:38.865
it can have a transparent background
so that if you set that as your full

00:09:39.005 --> 00:09:41.705
frame, you can move the guests around.

00:09:41.715 --> 00:09:43.545
They have their Twitch IDs in there.

00:09:44.037 --> 00:09:47.447
We just did the video and the
audio through the browser because

00:09:47.777 --> 00:09:50.487
then we don't have any syncing
issues, which you'll run into.

00:09:50.757 --> 00:09:54.667
And then you can also screen share
into that UI because the issue we were

00:09:54.667 --> 00:09:59.227
running into is that we were just sharing
our faces and I couldn't see her code.

00:10:00.505 --> 00:10:03.715
Without watching her stream, which
was slightly delayed and then I

00:10:03.715 --> 00:10:05.835
would get ads which also sucked.

00:10:05.845 --> 00:10:09.575
So we need to figure that out so I
need to either pay for twitch or she

00:10:09.575 --> 00:10:13.245
needs to turn off ads or however that
works But yeah, it's pretty slick.

00:10:13.245 --> 00:10:18.175
So it's built in as like Just a UI
component in your stream software.

00:10:18.895 --> 00:10:19.285
CJ: Got it.

00:10:19.285 --> 00:10:21.655
And is mailed paid, or
what does that look like?

00:10:22.145 --> 00:10:25.425
Colin: I imagine they're going to need to
be at some point, but right now it's free.

00:10:25.625 --> 00:10:26.835
it's super slick.

00:10:26.845 --> 00:10:30.275
Like it looks like, a
very modern, what is that?

00:10:30.305 --> 00:10:32.620
project man linear like flashy.

00:10:32.660 --> 00:10:33.720
we'll include a link to it.

00:10:34.090 --> 00:10:34.970
Not sponsored,

00:10:35.405 --> 00:10:35.785
CJ: Yeah.

00:10:35.860 --> 00:10:38.570
Colin: but maybe if we keep the
streaming thing up meld, we should check.

00:10:39.215 --> 00:10:39.705
CJ: Yeah.

00:10:39.905 --> 00:10:44.275
We, so in the past I've used
StreamYard, that was like my go

00:10:44.275 --> 00:10:46.275
to, at Stripe for live streams.

00:10:46.865 --> 00:10:51.155
And I, when working with Aaron,
from automate all the things,

00:10:51.625 --> 00:10:56.415
he uses OBS with OBS Ninja to
do like the multi person set up.

00:10:56.435 --> 00:10:59.325
And I know that he's got it really
fine tuned, but it's also taken

00:10:59.345 --> 00:11:03.035
a lot of trial and error to get
audio syncing things fixed and

00:11:03.590 --> 00:11:05.340
Colin: Yeah, I think it's
similar to OBS Ninja.

00:11:05.340 --> 00:11:08.110
It's just Twitch is
basically eating their lunch.

00:11:08.110 --> 00:11:09.190
if you're doing Twitch.

00:11:09.765 --> 00:11:10.785
It's gonna do this.

00:11:10.985 --> 00:11:14.525
What's cool is that you could,
actually you can use stream together

00:11:14.555 --> 00:11:16.035
without going live on Twitch.

00:11:16.065 --> 00:11:19.875
Like you could use it in like a
work stream if you were streaming.

00:11:19.875 --> 00:11:22.215
Like I could stream to
Discord for instance.

00:11:22.495 --> 00:11:28.645
I don't think we have stream keys
in Discord, but I could use the

00:11:28.685 --> 00:11:34.340
output of MELD Studio or OBS as my
camera input, and trick it there.

00:11:34.380 --> 00:11:37.500
but actually I'll have to go look because
it would be cool if we had support

00:11:37.510 --> 00:11:42.040
for that streaming format of, stream
keys and things like that in Discord.

00:11:42.485 --> 00:11:42.925
CJ: Got it.

00:11:43.490 --> 00:11:49.395
Colin: So it is amazing because  there's
a bunch of, Hey, so you want a YouTube in

00:11:49.395 --> 00:11:53.630
2024 or you want to stream in 2024, but
there's not a lot of good videos that get

00:11:53.630 --> 00:11:58.940
into this stuff that we've all figured out
over time, like how to have a good mic is

00:11:59.120 --> 00:12:04.180
out there, but how do you get your friends
in a stream together, things like that.

00:12:04.250 --> 00:12:06.640
And Twitch is obviously
making those things easier.

00:12:06.940 --> 00:12:09.990
The other one is that Twitch
added like custom alerts.

00:12:10.340 --> 00:12:13.140
So very similarly, you can
set up your own alerts.

00:12:13.420 --> 00:12:16.610
with your own graphics and your
own triggers and then drop those

00:12:16.610 --> 00:12:19.120
into OBS as browser sources.

00:12:19.530 --> 00:12:25.230
And so when you get a follower and
that like CJ followed Colin, like

00:12:25.230 --> 00:12:28.900
that happens in your OBS without
having to use any external tools,

00:12:29.100 --> 00:12:31.110
which used to be super painful.

00:12:31.130 --> 00:12:33.800
You had to do stream labs and
all this other stuff to do

00:12:33.840 --> 00:12:34.170
CJ: right.

00:12:34.700 --> 00:12:35.100
Yeah.

00:12:36.180 --> 00:12:36.770
Sweet.

00:12:37.120 --> 00:12:38.320
Sound like it's getting easier.

00:12:38.580 --> 00:12:39.960
Colin: becoming a Twitch fan boy,

00:12:39.960 --> 00:12:40.530
CJ: sweet.

00:12:40.860 --> 00:12:41.250
Awesome.

00:12:41.640 --> 00:12:44.450
And when you stream like that,
is it available after the fact?

00:12:44.450 --> 00:12:45.960
Like I wanted to go watch it.

00:12:46.190 --> 00:12:49.735
Colin: Is like if you're not a
partner with Twitch, it's seven days.

00:12:50.275 --> 00:12:53.365
If you're a partner, it's 30
and then a lot of streamers send

00:12:53.365 --> 00:12:55.045
it over to YouTube afterwards.

00:12:55.215 --> 00:12:55.705
CJ: Let's see.

00:12:55.745 --> 00:12:59.335
We talked about Advent of Code a little
bit, but, I don't know, anything else you

00:13:00.605 --> 00:13:00.875
Colin: No, I

00:13:00.885 --> 00:13:01.485
CJ: to add there?

00:13:01.835 --> 00:13:04.505
Colin: I think we're gonna just keep
chunking along and try to get caught up

00:13:05.065 --> 00:13:05.435
CJ: Yeah..

00:13:05.695 --> 00:13:06.175
Colin: or something.

00:13:06.340 --> 00:13:09.880
CJ: The one thing I wanted to add about
that, that has really surprised me is,

00:13:10.570 --> 00:13:14.800
Advent of, the challenges come out,
I think, at midnight Eastern time.

00:13:15.300 --> 00:13:19.550
And I live in Eastern time, so
I'm not up at midnight doing these

00:13:19.550 --> 00:13:22.520
challenges, but one of the first
things I do is I go on my phone and

00:13:22.520 --> 00:13:23.990
I check what's the problem for today.

00:13:24.860 --> 00:13:27.980
And so as I'm like trying to wake
up for the day and get, get my

00:13:27.980 --> 00:13:31.620
head in the game, I have been on
my phone using the replit app.

00:13:32.855 --> 00:13:37.355
To write like early solutions or let me
just see if I can solve like part one

00:13:37.355 --> 00:13:42.445
right now, like while I'm in bed and
holy moly, the replica app is killer.

00:13:42.485 --> 00:13:46.325
if you want to write code on
mobile, the replica app has so

00:13:46.325 --> 00:13:49.775
many little like quick buttons for
the things that you would want.

00:13:50.165 --> 00:13:54.645
So if you want to toggle comments or you
want to indent or you want to, move the

00:13:54.645 --> 00:13:57.435
cursor left, and whatever, they've come
up with a really interesting UX where

00:13:57.435 --> 00:13:59.315
you can move this little dot around.

00:13:59.825 --> 00:14:03.285
Plus because they have ghostwriter,
it's like you have a copilot right

00:14:03.285 --> 00:14:05.825
there and you can just like swipe
and it'll like auto complete the

00:14:05.825 --> 00:14:06.865
stuff that you wanted to write.

00:14:07.425 --> 00:14:09.945
so I have been having
just like tons of fun.

00:14:10.780 --> 00:14:13.370
Hacking directly from my phone,
which is just mind blowing.

00:14:13.960 --> 00:14:15.550
Colin: you use Vim on your phone?

00:14:16.420 --> 00:14:17.580
CJ: I do not know.

00:14:18.380 --> 00:14:18.840
yeah.

00:14:18.890 --> 00:14:19.800
that would be cool though.

00:14:19.800 --> 00:14:20.850
Colin: that would be cool

00:14:20.960 --> 00:14:21.480
CJ: don't know.

00:14:22.130 --> 00:14:23.860
Yeah, I feel like I, I don't know.

00:14:23.880 --> 00:14:26.100
I want to try, like voice coding.

00:14:26.210 --> 00:14:31.063
I'll drop a link to this talk, but,
Emily, One of my former coworkers

00:14:31.063 --> 00:14:35.523
from App Academy, she gave a talk
called whale quench and it's all about

00:14:35.583 --> 00:14:38.303
like writing code with your voice.

00:14:38.403 --> 00:14:43.843
Using like dragon dictation and a couple
other things to, yeah, just write code

00:14:43.843 --> 00:14:45.223
with your voice instead of having to type.

00:14:45.683 --> 00:14:48.213
And I think we're getting
much, much closer to that being

00:14:48.373 --> 00:14:49.983
like a very serious reality.

00:14:50.153 --> 00:14:52.513
Colin: I think we've said this on this
podcast multiple times, but there's

00:14:52.523 --> 00:14:57.153
those scenes in Avengers movies of
Tony dictating to Jarvis and he's

00:14:57.153 --> 00:15:00.253
trying to figure out time travel and
it's just nope, don't change that

00:15:00.253 --> 00:15:01.893
input, change that, run it again.

00:15:01.903 --> 00:15:05.333
And especially Advent of Code, like
if you could do Advent of Code purely

00:15:05.333 --> 00:15:09.378
by voice, I feel like that's maybe
next year's challenge, is do it

00:15:09.378 --> 00:15:11.818
on a live stream, do it all voice.

00:15:12.083 --> 00:15:16.963
use 11 labs, use, all these different
transcription things that are out

00:15:16.963 --> 00:15:21.463
there and just see what you can do,
especially when you feed it with AI.

00:15:21.473 --> 00:15:25.223
I think the challenge is you don't
want to give the problem to the AI

00:15:25.223 --> 00:15:26.443
because it'll just do it for you.

00:15:26.453 --> 00:15:31.413
But making sure that the only input
is your voice and then you also have

00:15:31.413 --> 00:15:35.403
to describe what you want to do in a
proper way, which I think you learn

00:15:35.403 --> 00:15:38.983
a lot when you're trying to describe
what your brain is doing out loud.

00:15:39.332 --> 00:15:39.562
CJ: Yeah.

00:15:39.562 --> 00:15:44.932
One of the ideas I've had recently is
to build a Vim plugin where you, you

00:15:44.932 --> 00:15:47.812
hold down a key or something, and then
you just start talking and it'll make a

00:15:47.812 --> 00:15:53.132
comment in whatever language you're in
and it'll just dictate the into a comment.

00:15:53.182 --> 00:15:55.542
And then when you stop
dictation, you hit enter.

00:15:55.892 --> 00:15:58.972
That'll get sent off to co pilot,
which we'll try to figure out the

00:15:58.972 --> 00:16:00.772
right snippet to fill in that spot.

00:16:01.192 --> 00:16:03.952
I think that'd be a pretty fun
little thing to play around with

00:16:04.925 --> 00:16:05.815
Colin: what else are you building?

00:16:06.490 --> 00:16:06.840
CJ: Oh yeah.

00:16:06.890 --> 00:16:08.480
Kraftwerk is expanding.

00:16:08.480 --> 00:16:10.290
We're expanding to other markets.

00:16:10.830 --> 00:16:16.510
And that means that our application
needs to handle projects for people

00:16:16.510 --> 00:16:17.660
that are not just in Charlotte.

00:16:17.730 --> 00:16:21.210
So maybe they're going
to be in, another city.

00:16:21.380 --> 00:16:24.300
And that other city will have a
whole different set of support

00:16:24.300 --> 00:16:28.900
staff and resources and they might
support different types of projects.

00:16:28.910 --> 00:16:30.290
They might have different pricing models.

00:16:30.290 --> 00:16:34.640
They might have different marketing
things, different Google business pages.

00:16:34.690 --> 00:16:39.540
One common challenge, like with any
app that's going to go through multi

00:16:39.550 --> 00:16:43.353
region support like this, or even
sometimes if you start with users and

00:16:43.353 --> 00:16:47.893
then you need to go to accounts where
you have an account with multiple users.

00:16:48.073 --> 00:16:50.863
You end up with an account switcher
type thing where Oh, am I looking

00:16:50.863 --> 00:16:54.853
at my work account or my personal
account for one password or for

00:16:54.853 --> 00:16:56.493
your Google suite or whatever?

00:16:56.923 --> 00:17:00.693
So now we will have to have the concept
of which market are you looking at?

00:17:00.743 --> 00:17:02.973
Is this, are we looking
at the entire business?

00:17:02.973 --> 00:17:05.613
Are we looking at a specific city?

00:17:05.803 --> 00:17:13.568
And then if you have a User can that
customer  buy projects in multiple cities?

00:17:13.578 --> 00:17:17.178
So now you have Oh gosh, you can't
necessarily tie a customer to a

00:17:17.178 --> 00:17:20.438
specific city, but you do want a
project to be tied to a specific city

00:17:20.438 --> 00:17:24.548
because likely the painters are only
in one city, but, maybe you have a

00:17:24.558 --> 00:17:26.358
support staff that work across cities.

00:17:26.418 --> 00:17:29.588
That's been, yeah, it's a project
for December is like going through

00:17:29.588 --> 00:17:33.878
and adding market to all of the
applicable things and trying to figure

00:17:33.878 --> 00:17:36.058
out how to split out, that concept.

00:17:36.888 --> 00:17:37.158
Colin: Nice.

00:17:37.178 --> 00:17:42.358
So you'll probably have a market drop
down for admin and like professionals,

00:17:42.358 --> 00:17:45.158
but then the users just like Airbnb.

00:17:45.158 --> 00:17:47.098
I don't necessarily set a specific locale.

00:17:47.098 --> 00:17:50.708
But when I'm looking for a
place, I go search in that place.

00:17:50.708 --> 00:17:53.058
And yeah, that's interesting.

00:17:53.458 --> 00:17:54.138
CJ: yeah, exactly.

00:17:54.138 --> 00:17:55.948
Like a customer will
probably go to the craftwork.

00:17:55.948 --> 00:17:56.918
com slash.

00:17:57.293 --> 00:18:01.263
Reno or something, and that would
pull up all of the services that

00:18:01.263 --> 00:18:02.703
are offered by Kraftwerk in Reno.

00:18:03.063 --> 00:18:07.453
And then you could book and the calculator
would reflect the prices in Reno and

00:18:07.453 --> 00:18:11.643
your message would be sent to the sales
rep in Reno and the reporting would

00:18:11.643 --> 00:18:13.403
go to the general manager in Reno.

00:18:13.718 --> 00:18:16.958
and you as a customer would think, oh,
I'm just interacting with Kraft Fork.

00:18:17.018 --> 00:18:20.748
But behind the scenes we would need to
break out how are these quotes routed

00:18:20.748 --> 00:18:22.668
and where do the notifications go?

00:18:22.668 --> 00:18:26.598
Which Slack channel and which Slack
organization and all this different stuff.

00:18:26.648 --> 00:18:29.738
Colin: Yeah, this might be an
interesting conversation to chat about

00:18:29.738 --> 00:18:33.808
craftwork in general, but the thing
that I've been finding myself wanting,

00:18:33.828 --> 00:18:37.248
especially in this giant building,
like this is a 6, 000 square foot

00:18:37.248 --> 00:18:43.278
building, and I need to manage all these
individual things that have to be done.

00:18:43.538 --> 00:18:46.678
You have to face the same in any
house and things, but the idea of

00:18:46.728 --> 00:18:49.328
as a user, adding my properties.

00:18:49.833 --> 00:18:55.163
And those properties have maybe
lawns, sprinklers, gutters,

00:18:55.213 --> 00:18:57.563
paint, whatever, right?

00:18:57.573 --> 00:19:00.433
And being able to be like,
Hey, it's probably time to have

00:19:00.433 --> 00:19:01.933
these things like HVAC, right?

00:19:01.933 --> 00:19:03.063
Servicing time.

00:19:03.453 --> 00:19:06.063
It's almost like this, like
operating system for a building.

00:19:06.073 --> 00:19:08.903
Cause I find what it's just yeah,
we fix things when it breaks

00:19:08.953 --> 00:19:11.033
rather than looking at them all.

00:19:11.468 --> 00:19:14.698
like going to the doctor and
being more preventative, right?

00:19:14.748 --> 00:19:17.458
There's not a lot of preventative
stuff with either cars,

00:19:17.468 --> 00:19:18.628
houses, things like that.

00:19:18.658 --> 00:19:22.618
And I find this wanting to do
this for my house and my vehicle.

00:19:22.688 --> 00:19:24.168
It's it's time to get an oil change.

00:19:24.178 --> 00:19:25.118
It's time to do this.

00:19:25.498 --> 00:19:26.803
It's time to get your house painted.

00:19:27.253 --> 00:19:30.663
Which could be interesting for you
guys to know that this user has these

00:19:30.683 --> 00:19:34.733
properties in these markets and they
also have a property or maybe there's

00:19:34.733 --> 00:19:38.243
a user who created an account and
put a property in a market you don't

00:19:38.243 --> 00:19:42.873
support yet so that they can know notify
me when Craftwork is in my market.

00:19:43.708 --> 00:19:43.928
CJ: Yep.

00:19:43.993 --> 00:19:44.773
Colin: That'd be pretty cool.

00:19:45.203 --> 00:19:47.413
CJ: Yeah, if you want to know when we're
in your market, you can go sign up for

00:19:47.413 --> 00:19:52.443
the waitlist, but that's totally something
that I think we want to build is you

00:19:52.463 --> 00:19:56.413
can log in and see the inventory of your
properties and know Oh, what color is on

00:19:56.413 --> 00:19:59.033
the wall in my, powder room or whatever.

00:19:59.393 --> 00:20:02.693
And then it's Oh, yeah, your
powder room was painted in 2024.

00:20:02.743 --> 00:20:07.428
And it was painted this color by this,
and this painter or something, and you

00:20:07.428 --> 00:20:11.118
can, here's the, a little button to
reorder some touch up paint or here's,

00:20:11.158 --> 00:20:15.488
yeah, breakdown what comes to mind is
HOA is they have this thing that they

00:20:15.488 --> 00:20:21.038
do in order to try to predict HOA dues
over a long period, they go through, I

00:20:21.038 --> 00:20:23.958
think it's called like a capital reserve
plan or something like this, where you

00:20:23.958 --> 00:20:31.038
have to figure out like, Oh, if we want
to seal all the blacktop in this giant.

00:20:31.718 --> 00:20:35.308
Neighborhood, it's going to cost
10 grand and if we want to repaint

00:20:35.318 --> 00:20:39.068
all of the condos in this complex,
it's going to cost 400 grand.

00:20:39.068 --> 00:20:43.098
And if we want to redo the, the pool, it's
going to cost 500 grand or whatever they

00:20:43.098 --> 00:20:46.748
take that and they try to figure out how
often those things need to be replaced.

00:20:47.118 --> 00:20:49.988
And then you can build out
like an amortization schedule.

00:20:49.988 --> 00:20:50.718
That's okay.

00:20:51.228 --> 00:20:56.088
Every year, this is roughly how much it's
going to cost to maintain the entire HOA.

00:20:56.438 --> 00:20:58.858
And then you can back
out into fees from that.

00:20:58.858 --> 00:21:02.878
So you're not like surprised by Oh shoot,
like the entire HOA needs a new roof now.

00:21:03.318 --> 00:21:09.338
And, now we've got to figure out
how to whatever, collect a one

00:21:09.338 --> 00:21:13.458
time emergency payment to pay for
X that wasn't planned for before.

00:21:13.898 --> 00:21:16.028
But yeah, I totally would love
to see something like that.

00:21:16.268 --> 00:21:24.128
I wonder if it makes sense at like the
individual homeowner level, as much

00:21:24.128 --> 00:21:28.008
as it makes sense as like a landlord
who's managing or like property manager

00:21:28.008 --> 00:21:29.318
who's managing multiple properties.

00:21:29.328 --> 00:21:34.943
But yeah, in your case, you've got like
a huge building that's Similar in that

00:21:34.963 --> 00:21:38.743
in many ways in that, things are going
to need to be replaced every so often.

00:21:38.743 --> 00:21:40.123
And a lot of those are big ticket.

00:21:40.133 --> 00:21:44.563
And so how do you like schedule that
out so that it's either, the financial

00:21:44.563 --> 00:21:49.083
impact isn't really big or like you
can stay on top of the preventative

00:21:49.083 --> 00:21:52.173
maintenance, Oh, you get an alert that
says you got to change the filters

00:21:52.173 --> 00:21:56.983
in the water system, or you get a,
pour more salt into the whatever.

00:21:57.138 --> 00:21:57.988
Colin: Water softener.

00:21:57.988 --> 00:21:58.258
Yeah.

00:21:58.333 --> 00:21:58.573
CJ: Yeah.

00:21:58.573 --> 00:21:59.343
The water softener.

00:21:59.948 --> 00:22:00.308
Colin: Yep.

00:22:00.728 --> 00:22:01.468
Yeah, it's funny.

00:22:01.468 --> 00:22:04.878
I've watched a lot of DIY
like TikTok, not TikTok, but

00:22:04.888 --> 00:22:06.768
Instagram and YouTube and things.

00:22:06.768 --> 00:22:10.688
And there was a house inspector and he
believes that you should repaint your

00:22:10.688 --> 00:22:15.708
entire house  inside every eight years
and all these painters and contractors

00:22:15.708 --> 00:22:17.298
really having a fit in the comments.

00:22:17.668 --> 00:22:20.578
And the reason wasn't that
your paint, your walls are like

00:22:20.598 --> 00:22:21.988
needing paint in eight years.

00:22:22.468 --> 00:22:26.818
The other way he described it was
do one room per year and for most

00:22:26.818 --> 00:22:31.618
houses, eight years is going to mean
that the whole house is returned

00:22:31.618 --> 00:22:33.488
over every eight years, right?

00:22:33.498 --> 00:22:35.158
The kitchen, the living
room, whatever it might be.

00:22:35.853 --> 00:22:39.623
And the reason that you do that
is that painting a room means

00:22:39.663 --> 00:22:43.323
pulling everything away from the
walls, cleaning things, looking at

00:22:43.323 --> 00:22:44.683
things, figuring out what's broken.

00:22:44.683 --> 00:22:48.373
And you're room by room assessing and
maintaining this thing that you have.

00:22:48.373 --> 00:22:52.253
And that you're, when you do an
inspection, like your asset value is

00:22:52.253 --> 00:22:55.983
going to be higher than if you don't, and
you're just going to have less issues.

00:22:55.983 --> 00:22:59.443
And when I think room by room,
it's way more manageable than

00:22:59.443 --> 00:23:00.593
the entire building, right?

00:23:00.593 --> 00:23:03.293
It's cost wise, but also
just, It's just mental load.

00:23:03.363 --> 00:23:06.873
It's just easier to take care of
it that way and obviously things

00:23:06.873 --> 00:23:09.833
surprise you and there's leaks
and all sorts of other things.

00:23:09.863 --> 00:23:10.793
But, yeah,

00:23:11.443 --> 00:23:16.913
CJ: I like that one room every
year sounds manageable right now.

00:23:16.923 --> 00:23:19.263
What seems intimidating to me
is like painting the outside.

00:23:19.263 --> 00:23:22.333
Cause that one feels like you
can't really do one wall at a time.

00:23:22.783 --> 00:23:23.273
Like maybe

00:23:23.333 --> 00:23:24.013
Colin: all at once.

00:23:24.283 --> 00:23:26.453
CJ: Yeah, it's a, yeah,
that's a one and done.

00:23:26.713 --> 00:23:31.233
It's also one of those things where I
wish right when we moved in, when the

00:23:31.233 --> 00:23:33.643
house was empty, that we did two things.

00:23:33.943 --> 00:23:35.593
One of them was paint all the walls.

00:23:36.068 --> 00:23:41.848
And the other one was to refinish the
wood floors, because in order to like

00:23:41.868 --> 00:23:45.618
work on the wood floors at all, we have
to move everything out right like you

00:23:45.618 --> 00:23:50.548
have to basically move out of the floor
that you're in, and then get the wood,

00:23:51.098 --> 00:23:53.278
the woodwork done and then move back in.

00:23:53.308 --> 00:23:56.548
I don't know how often you're supposed
to refinish your floors But that feels

00:23:57.268 --> 00:24:00.728
like a big lift to get everything
out and everything back in so

00:24:01.358 --> 00:24:04.498
Colin: that's another one where if
you watch videos for refinishing wood

00:24:04.498 --> 00:24:08.118
floors, it doesn't look that hard,
but probably pay someone to do it.

00:24:08.678 --> 00:24:09.328
CJ: oh for sure.

00:24:09.348 --> 00:24:09.638
Yeah.

00:24:10.438 --> 00:24:10.708
Yeah

00:24:10.708 --> 00:24:12.548
Colin: I've thought about it
and I'm like, I don't know.

00:24:12.608 --> 00:24:15.608
This looks like it could go wrong, but
so those are the things we're building.

00:24:15.808 --> 00:24:16.878
what are you working on?

00:24:16.978 --> 00:24:18.288
what are you learning this week?

00:24:19.108 --> 00:24:23.068
CJ: we went to the library this
weekend and I picked up this book

00:24:23.118 --> 00:24:26.148
called how to outsmart your brain It
was just like on the new nonfiction

00:24:26.148 --> 00:24:28.498
shelf and it is phenomenal.

00:24:28.568 --> 00:24:34.148
It's really good and I Was telling
Nicole that before I take the next

00:24:35.248 --> 00:24:41.198
college class I want to reread this
because there's so many really tactical

00:24:41.218 --> 00:24:47.348
tips and tricks for how to absorb
as much as possible from a course or

00:24:47.348 --> 00:24:49.678
a lecture or even conference talks.

00:24:49.698 --> 00:24:50.148
Really.

00:24:50.948 --> 00:24:54.038
It talks about a lot of different
cognitive biases that we have.

00:24:54.038 --> 00:24:57.978
And then also how the brain
makes connections between ideas

00:24:57.978 --> 00:25:03.778
and concepts and how oftentimes
podcasts or lectures are, linear.

00:25:04.208 --> 00:25:10.638
But they will often have some structure
that you need to recreate in your own

00:25:10.648 --> 00:25:14.298
head to absorb as much as possible from
the content that was being presented

00:25:14.298 --> 00:25:19.128
because we talk very linearly, but we're
often trying to get across one big point

00:25:19.138 --> 00:25:21.658
that has maybe three to seven sub points.

00:25:21.658 --> 00:25:25.588
and yeah, just a lot of tips and tricks
in there that I thought were really cool.

00:25:25.638 --> 00:25:28.578
it looks like you're also, you also
got a book you're working through here.

00:25:29.343 --> 00:25:35.253
Colin: Yeah, I'm reading the City
Authentic, which is a book about kind

00:25:35.253 --> 00:25:39.413
of urbanism and there's this trend that
I think every city can probably relate

00:25:39.413 --> 00:25:44.773
to about how they try to attract people
to come to their city and this idea

00:25:44.773 --> 00:25:46.763
of attention economy, but as cities.

00:25:46.963 --> 00:25:51.913
And, that there's, they're talking about a
lot of the pitfalls that cities run into.

00:25:51.913 --> 00:25:57.023
I'm still pretty early in the book, but
most of my reading list is like this new

00:25:57.043 --> 00:25:59.463
urbanism, new organization of cities.

00:25:59.723 --> 00:26:02.193
This book was written during the pandemic.

00:26:02.193 --> 00:26:05.193
So it's also more of a take on it.

00:26:05.303 --> 00:26:09.903
It was seeing the remote work
trend more than it was before.

00:26:10.253 --> 00:26:13.103
And there's a lot of books in this
category of Richard Florida is the

00:26:13.103 --> 00:26:16.853
creative city and things like that, where
even Richard Florida wrote a book in

00:26:16.853 --> 00:26:22.143
2017 with everything I wrote is now wrong
and not the state of the world anymore.

00:26:22.483 --> 00:26:24.993
which was what a lot of economic
development authorities and

00:26:24.993 --> 00:26:26.513
cities are still reading that.

00:26:27.363 --> 00:26:28.943
from that book, right?

00:26:28.973 --> 00:26:32.013
And so there's been a lot of
books since then and I'm really

00:26:32.013 --> 00:26:33.203
tempted to get this book.

00:26:33.223 --> 00:26:34.943
There's another one called The Naked City.

00:26:35.293 --> 00:26:39.403
There's a bunch of books from strong towns
and I'm tempted to create like a package

00:26:39.403 --> 00:26:43.223
of books and just like anonymously send
them to all of our city council people.

00:26:45.103 --> 00:26:48.413
And like Economic Development Authority,
like I guess it doesn't have to be

00:26:48.413 --> 00:26:52.683
anonymous, but yeah, I don't know if
they'll be threatened by it or if they'll

00:26:52.683 --> 00:26:54.123
be like, wow, we should read these.

00:26:54.672 --> 00:26:59.842
CJ: I know that, Edon in particular was
very interested in bringing companies

00:26:59.842 --> 00:27:05.222
and bringing businesses and attracting
folks to Reno, what part did the

00:27:05.222 --> 00:27:07.292
Reno collective play in that process?

00:27:07.322 --> 00:27:11.332
And were you collaborating with
them or yeah, like you obviously

00:27:11.332 --> 00:27:14.442
want members to come that are
going to work from the collective.

00:27:15.212 --> 00:27:18.612
Colin: that one's tricky because, so
most economic development authorities

00:27:18.732 --> 00:27:25.002
are or like they have a key metric
of, square footage and number of

00:27:25.002 --> 00:27:30.892
jobs, which is slightly at odds with
knowledge work because you do not need,

00:27:31.502 --> 00:27:35.222
a warehouse and a huge army of employees.

00:27:35.822 --> 00:27:38.972
But  if that's what their goal
is,  they'll say that they want

00:27:39.152 --> 00:27:41.112
startups and things like that.

00:27:41.122 --> 00:27:43.322
But to be honest, that's
not their main goal.

00:27:43.722 --> 00:27:46.752
I think a lot of them realize that
you need a mix of all of those things

00:27:46.762 --> 00:27:50.492
like in Reno and in Nevada General,
we're trying to diversify away from

00:27:50.492 --> 00:27:57.122
gaming and so innovation of all types,
but every city has an Innovation plan

00:27:57.142 --> 00:28:00.492
an innovation district, you know all
these different things and he brings

00:28:00.492 --> 00:28:05.622
that up in this book, too Where every
city is doing the same things and so

00:28:05.622 --> 00:28:06.812
they're all being like look at me.

00:28:06.812 --> 00:28:07.372
Look at me.

00:28:07.462 --> 00:28:09.967
We're now That's place for startups.

00:28:09.967 --> 00:28:12.517
And now with the remote work, it's
you might not want to be in New

00:28:12.517 --> 00:28:17.347
York, but now you want to be in this
like small rural town in New York

00:28:17.347 --> 00:28:19.127
that also has fiber or whatever.

00:28:19.807 --> 00:28:22.957
but you're still going to see
concentrations of workers in places

00:28:22.957 --> 00:28:26.787
like LA and New York and Chicago,
because they're cities and there's

00:28:26.787 --> 00:28:30.037
so much stuff in those cities
for people to do outside of work.

00:28:30.407 --> 00:28:33.217
And so you have this attention
economy of culture being the

00:28:33.217 --> 00:28:34.787
reason why people move to places.

00:28:35.167 --> 00:28:38.597
and technically, and you probably
have seen that you moved recently,

00:28:38.597 --> 00:28:41.207
but we are moving less than ever.

00:28:41.277 --> 00:28:44.497
And it used to be, you would move out
of town because it got too expensive

00:28:44.497 --> 00:28:45.867
and you'd go somewhere cheaper.

00:28:46.247 --> 00:28:49.707
And then you have a list of things you
want to look at to see which cities

00:28:49.707 --> 00:28:53.547
check all the boxes, but we just
aren't moving as often as we used to.

00:28:53.547 --> 00:28:57.582
And so what do you do in cities
where You know, some of those

00:28:57.582 --> 00:28:58.982
people aren't going to leave.

00:28:59.052 --> 00:29:05.252
I think it focuses on a town called
Troy in New York and While they've

00:29:05.252 --> 00:29:09.682
seen some increase in population,
it's like pales in comparison to

00:29:09.682 --> 00:29:13.622
the increase of people moving to
New York City and like big metros.

00:29:14.112 --> 00:29:17.732
but the thing that stood out the
most so far is when you try to build

00:29:17.732 --> 00:29:22.752
like the cool area of town, like
usually it's built by the locals.

00:29:22.762 --> 00:29:23.962
It's very authentic.

00:29:23.962 --> 00:29:27.227
It's, you know, uh,
third wave coffee shop.

00:29:27.237 --> 00:29:28.327
It's a cool bookstore.

00:29:28.327 --> 00:29:30.607
It's a cool record store,
all these different things.

00:29:30.997 --> 00:29:36.207
Well, almost always that gets
press and news, which then starts

00:29:36.207 --> 00:29:38.717
to create real estate speculation.

00:29:38.887 --> 00:29:42.597
The thing that was authentic and made
the name for the city or for that

00:29:42.617 --> 00:29:49.017
area becomes, chain restaurants and
the very thing that it was trying to

00:29:49.067 --> 00:29:53.187
counter in the first place and then
it becomes yet another urban, core.

00:29:53.547 --> 00:29:57.747
And then it starts all over again with
the authentic, bookstore that's not

00:29:57.837 --> 00:29:59.997
in the expensive part of town, right?

00:29:59.997 --> 00:30:03.297
Because you can't be in the
expensive area when you're starting.

00:30:03.347 --> 00:30:07.247
And so it's just this vicious cycle and
like, how do we break that a little bit?

00:30:07.257 --> 00:30:11.737
So still reading it, we'll see where
it goes, but this is the kind of stuff

00:30:11.737 --> 00:30:12.937
I think about when I'm not coding.

00:30:21.347 --> 00:30:25.477
CJ: were in a, if you were in a
situation where you could move.

00:30:26.047 --> 00:30:32.837
Or you could try to make your town, the
awesome, authentic, unassuming town that

00:30:32.837 --> 00:30:36.547
you want it to be, then what moves would
you make and how would you invest your

00:30:36.547 --> 00:30:38.197
time and your efforts and your energy?

00:30:38.247 --> 00:30:42.012
recently we went to a
town in New Hampshire.

00:30:42.412 --> 00:30:45.302
I'm not going to name it
actually, because it was awesome.

00:30:45.362 --> 00:30:46.702
It was so cool.

00:30:46.702 --> 00:30:53.022
It was like quaint and had this exactly
like you said, had a sick, like bookstore

00:30:53.022 --> 00:30:57.772
that had this giant selection of used
books and then we went to, like a

00:30:57.832 --> 00:31:01.172
vegan restaurant that was amazing.

00:31:01.232 --> 00:31:04.782
It was like, really good lunch spot
that had options for all of us.

00:31:04.782 --> 00:31:10.242
they had a Yarn store for nicole and she
picked up like some knitting stuff and

00:31:10.242 --> 00:31:12.072
there was like a little  apothecary spot.

00:31:12.082 --> 00:31:13.292
And so like I don't know it

00:31:13.392 --> 00:31:14.072
Colin: of a store is

00:31:14.262 --> 00:31:19.132
CJ: Yeah, it was very, very witchy kind
of cool hipster town out in the middle

00:31:19.132 --> 00:31:20.512
of, in the middle of New Hampshire.

00:31:20.512 --> 00:31:21.582
That was very awesome.

00:31:22.182 --> 00:31:23.922
Colin: Yeah, you gotta
protect those things.

00:31:24.262 --> 00:31:24.742
CJ: yes.

00:31:25.555 --> 00:31:29.515
So when I was first learning Ruby
I would listen to Ruby rogues.

00:31:29.605 --> 00:31:33.545
And one of the hosts of
Ruby rogues was Avdi Grim.

00:31:34.145 --> 00:31:37.855
And he's got a new site called
graceful dev or graceful.

00:31:37.855 --> 00:31:41.485
dev, where a lot of the content
is the old ruby tapas, but there's

00:31:41.485 --> 00:31:44.405
also a bunch of like little course
paths that you can go through.

00:31:44.955 --> 00:31:49.115
I think the intention of setting
up graceful dev was to organize

00:31:49.115 --> 00:31:51.475
all of ruby tapas into these paths.

00:31:51.845 --> 00:31:52.485
Because.

00:31:53.025 --> 00:31:56.855
Ruby tapas were all meant to be these
like short bite sized tiny little

00:31:57.545 --> 00:32:03.910
videos about Ruby That would work
independent, but, people were craving

00:32:04.320 --> 00:32:06.380
a more organized way to go through it.

00:32:06.400 --> 00:32:09.650
And so I've been going through
some of the, the paths on there.

00:32:09.650 --> 00:32:12.870
And I haven't watched any of
these stuff for a long time.

00:32:12.870 --> 00:32:14.680
So now I'm having a great time.

00:32:14.680 --> 00:32:20.020
Like He goes through some really obscure
language features and, some really

00:32:20.020 --> 00:32:24.490
cool approaches to writing code with
Ruby that I, yeah, I'm learning a ton

00:32:24.490 --> 00:32:29.470
from, so thought if you're, yeah, if
you're a Rubyist and you want to more

00:32:29.470 --> 00:32:33.930
screencasts, if there aren't enough
already, then, yeah, go check it out.

00:32:34.230 --> 00:32:34.670
Graceful.

00:32:34.735 --> 00:32:35.035
Colin: cool.

00:32:35.345 --> 00:32:36.435
The return of Avdi.

00:32:36.495 --> 00:32:37.255
that's exciting.

00:32:37.650 --> 00:32:38.040
CJ: Yeah.

00:32:38.790 --> 00:32:41.440
And you, I think, did we
mention screencasting.

00:32:41.440 --> 00:32:42.450
com in the last one?

00:32:42.945 --> 00:32:46.690
Colin: We mentioned that, that it existed.

00:32:46.810 --> 00:32:48.240
but I did buy it.

00:32:48.480 --> 00:32:52.590
I think it's worth it at any price, but
I did fall for the Black Friday deal.

00:32:52.590 --> 00:32:54.000
So thank you, Aaron.

00:32:55.710 --> 00:32:56.420
and I have it.

00:32:56.420 --> 00:32:57.910
I've started listening to it.

00:32:58.190 --> 00:33:02.240
I'm really excited to just see like the
shortcuts for the tooling that they, like

00:33:02.270 --> 00:33:05.170
the software that, that he uses to record.

00:33:05.520 --> 00:33:08.930
Cause he tries to record in a
way, I think very similar to you.

00:33:09.425 --> 00:33:14.545
where you don't have to edit too
much and just like shortcuts and

00:33:14.845 --> 00:33:19.655
scripts to reset your desktop, record,
lots of takes that can be stitched

00:33:19.655 --> 00:33:20.715
together and things like that.

00:33:20.785 --> 00:33:22.245
At least that's, I think how he does it.

00:33:22.245 --> 00:33:25.385
Cause I've seen some like jump
cuts and stuff in his videos.

00:33:25.415 --> 00:33:26.435
And it's you just drop it.

00:33:26.445 --> 00:33:30.165
And for the most part, the frame
looks the same, so it doesn't matter.

00:33:31.185 --> 00:33:31.645
CJ: Sweet.

00:33:31.865 --> 00:33:34.145
Colin: your, cinematic
production value out of it.

00:33:34.175 --> 00:33:36.905
So yeah, we'll see how it

00:33:36.955 --> 00:33:40.335
CJ: I'm really keen to hear how that
goes does he cover live streaming

00:33:40.335 --> 00:33:41.865
at all or is it all pre recorded

00:33:42.455 --> 00:33:43.815
Colin: think it's mostly prerecorded.

00:33:43.815 --> 00:33:48.055
He doesn't do a lot of he, maybe he
does a little bit of live stream stuff,

00:33:48.145 --> 00:33:51.555
live streaming I think also helps
to develop this muscle cause you.

00:33:51.780 --> 00:33:57.590
Don't get to cut or go back, which is
I think why I've hesitated to just turn

00:33:57.590 --> 00:34:00.090
it on and do it with screencasting.

00:34:00.100 --> 00:34:01.300
You can always make yourself look good.

00:34:01.310 --> 00:34:02.530
You can always take things out.

00:34:02.530 --> 00:34:03.520
You can always reshoot.

00:34:04.020 --> 00:34:09.100
but I think live stream is good for
me to just get over the no one cares.

00:34:09.455 --> 00:34:13.185
Obviously a point where yes, you will
eventually if you're like primogen

00:34:13.185 --> 00:34:15.645
or one of these people, like you're
going to have hecklers and things,

00:34:15.645 --> 00:34:19.345
but it's also a little bit of
primogens like brand at this point.

00:34:19.345 --> 00:34:25.245
So we have this like streaming
heckler programming group out there.

00:34:25.985 --> 00:34:26.395
CJ: Yeah.

00:34:27.025 --> 00:34:27.465
Colin: So

00:34:28.435 --> 00:34:33.505
CJ: Yeah, it's definitely a good
way to, share your process too.

00:34:33.535 --> 00:34:38.975
Cause I think sometimes people in
screencasts, me too, I'll have something

00:34:38.975 --> 00:34:40.715
pretty polished by the time I record.

00:34:41.235 --> 00:34:46.915
And so you won't see the errors or the the
approaches that were thrown away, like the

00:34:46.915 --> 00:34:48.795
drafts that didn't make it into the final.

00:34:49.165 --> 00:34:49.765
version.

00:34:49.795 --> 00:34:53.935
So I try to leave like errors and things
in and talk about how I approach things,

00:34:53.935 --> 00:34:57.915
but I, you don't get the same in a pre
record video as you do from a live stream.

00:34:57.915 --> 00:34:58.235
So

00:34:58.665 --> 00:34:58.995
Colin: Yeah.

00:34:59.005 --> 00:35:01.615
some of these advent of code
ones, if I was making a video,

00:35:01.615 --> 00:35:02.955
it'd be a very long video.

00:35:03.325 --> 00:35:06.185
So we're like, Oh, we're
throwing stuff away.

00:35:06.185 --> 00:35:08.775
I noticed that because you
already solve them before you

00:35:08.785 --> 00:35:10.965
screencast them, which is nice.

00:35:11.015 --> 00:35:14.605
and you still get a lot of the
thought process, which goes on.

00:35:14.605 --> 00:35:19.335
And, if you record it shortly after
doing it, you don't really lose too much.

00:35:19.755 --> 00:35:21.505
but then we benefit from a shorter video.

00:35:22.245 --> 00:35:23.085
CJ: Yeah, exactly.

00:35:23.085 --> 00:35:25.035
And usually I'll solve it and then I'll.

00:35:25.395 --> 00:35:26.565
Go look at solutions.

00:35:27.255 --> 00:35:31.005
And then I will also, I've been
recently, I've been taking my code

00:35:31.045 --> 00:35:34.185
and giving to chat GPT and being
like, give me feedback on this.

00:35:34.185 --> 00:35:35.315
Like, how can I make this better?

00:35:35.825 --> 00:35:38.445
And, sometimes it's Oh, did
you know about this method?

00:35:38.445 --> 00:35:41.445
Or did you try naming the
variables this way or whatever?

00:35:41.445 --> 00:35:42.075
I'm like, Oh, wow.

00:35:42.075 --> 00:35:43.395
That's, those are like really helpful.

00:35:43.435 --> 00:35:46.955
So then I try to incorporate all
that so that the advice comes

00:35:46.955 --> 00:35:49.525
out a little bit more pro than
just me hacking on something.

00:35:49.755 --> 00:35:52.905
Colin: Yeah, I need to do that with
my Python because this is I'm using

00:35:52.915 --> 00:35:54.775
like a blunt hammer with Python.

00:35:54.785 --> 00:35:57.135
I'm like, this is the only methods I know.

00:35:57.135 --> 00:36:00.125
So we're going to use these and
it'll be good to know, hey, you

00:36:00.125 --> 00:36:01.455
can write this in a better way.

00:36:03.380 --> 00:36:03.650
CJ: Yeah.

00:36:03.650 --> 00:36:07.500
I remember when I learned Python,
someone told me that with Ruby,

00:36:07.500 --> 00:36:08.500
it's like finger painting.

00:36:08.510 --> 00:36:11.460
You can be really creative and there's
lots of different ways to do stuff.

00:36:11.460 --> 00:36:15.600
And, you can be really, you can almost
express your, like your personality

00:36:15.600 --> 00:36:19.630
through the code you write and Python
is just like laying bricks, there's just

00:36:19.630 --> 00:36:24.060
like a for loop and then there's list
comprehensions and there's functions

00:36:24.080 --> 00:36:27.140
and there's classes and there's like
a handful of language features, but

00:36:27.140 --> 00:36:31.060
really it is just There is basically
one way to do things in the language.

00:36:31.070 --> 00:36:33.260
And you just, once you learn that
way, you just do it that way.

00:36:33.260 --> 00:36:38.080
Whereas like the enumerable  module in
Ruby probably has 50 different methods

00:36:38.080 --> 00:36:40.020
now or something, wild that let you do,

00:36:40.020 --> 00:36:44.500
Colin: I think that the syntactical sugar
of Ruby is so apparent when I look at

00:36:44.500 --> 00:36:48.460
your videos compared to my solutions,
I'm still usually following the same

00:36:48.460 --> 00:36:52.460
train of thought, but then I'm like, I
guess I got to use this one tool in my

00:36:52.460 --> 00:36:58.130
toolbox, but I'm still getting used to,
doing Ifs and blocks have to have colons

00:36:58.130 --> 00:37:01.940
at the end, and there's no ending of
it because it's all indentation based.

00:37:02.300 --> 00:37:06.210
Because I'm like writing my end or
creating like braces and I'm like, no,

00:37:06.280 --> 00:37:07.630
this is the wrong language for that.

00:37:08.560 --> 00:37:11.090
going between Ruby, Python,
and JavaScript, those are

00:37:11.090 --> 00:37:13.090
very different for sure.

00:37:14.105 --> 00:37:14.535
CJ: Totally.

00:37:15.690 --> 00:37:16.160
Colin: Awesome.

00:37:16.270 --> 00:37:19.510
we went from having not a lot to talk
about to having a lot to talk about,

00:37:20.130 --> 00:37:20.480
CJ: yeah.

00:37:20.740 --> 00:37:22.730
As always, you can head
over to buildandlearn.

00:37:22.730 --> 00:37:25.560
dev to check out links to all
the resources and things we

00:37:25.560 --> 00:37:26.860
mentioned in the show notes.

00:37:27.605 --> 00:37:28.085
Colin: Awesome.

00:37:28.085 --> 00:37:28.835
Thanks everybody.

00:37:28.835 --> 00:37:29.625
We'll see you next time.

00:37:30.560 --> 00:37:31.040
CJ: Bye friends.