· 37:38
CJ: Welcome to build and learn.
My name is CJ.
Colin: And I'm Colin, and
today we are chatting about our
favorite season, Advent of Code,
CJ: Yes.
Tis the season.
Hacking left and right.
Great idea.
setting up, we've got this little
channel in Slack where people
can go and discuss their advent
of code problems and solutions.
Colin: Yeah, I think we talked
about it last time, but I've been
feeling a little burnt out about
the dev meetup that we have locally.
And so I set up Advent of Code as
our December meetup, which honestly
is more engagement than we've had in
even some of the in person meetings.
admin of code is a little challenging
because it does take it like a
significant amount of time to do.
but I don't think, to get value out
of it, you don't have to do them all.
And, you're doing videos for
all of these, which is amazing.
I've learned a lot just watching yours.
For me, it's a little challenging because
once I see how you do it, it's hard
to think about any other way to do it.
So I've been trying to see
how far I can get without it.
Look at some hints and things, on Reddit
and other places before I watch your
videos, but it's been super helpful.
CJ: Yeah, I like that approach.
I also try to do that like
first try to solve it myself.
There's definitely some problems
that require dynamic programming or
require like crazy graph traversal
or some high level mathematics that I
don't know and have never seen before.
And in those cases, I will often
just try to take a stab at it myself.
And if that doesn't work, then I'll
try to look for hints on Reddit.
And without like spoilers, and if
that does still doesn't work, then
I'll watch and there's like tons
of videos on YouTube of different
people taking different approaches.
There's this one guy, Jonathan Paulson.
Who I think right now is like number
two on the leaderboard for 2023.
And he live streams, like the
second it comes out, he'll
live stream, his like solution.
So you can watch the countdown
timer go down, like three, two, one,
he clicks on it and he solves it.
Doesn't talk or anything.
Just like blasts through
it as fast as possible.
And then we'll go back
and explain his approach.
so I love watching his videos.
And yeah, there's, it's like amazing
opportunity to learn new languages or new
language features and things like that.
it's
Colin: Nice.
Yeah, I'm using this as an opportunity to
learn Python and when I watch your videos,
I like want to reach for a lot of the
niceties of Ruby and like all these little
helper methods and things like I was
trying to like multiply, an array and it's
I know how to do this in Ruby, but now let
me go find out how I have to do this in,
in Python and it's like basically like a
reduced function that you had to write.
but it's just not as simple as, and it's
also Ruby's so much in my brain still.
but yeah, it's a good way
to learn new languages.
I've been watching, Bash Bunny on
Twitch, learning Zig with, with this.
And that is all I know about
Zig is just a little bit that
I've watched from her streams.
So definitely fun to watch.
CJ: Reddit solutions too.
People will use like JQ or they'll
use Google sheets or they'll use,
some wild technology or language
that I never even would have thought
could solve some of these problems.
And there, some of them
are very elegant solutions,
Colin: off the COBOL and Perl
CJ: Yeah, totally.
There's a lot of Perl,
surprisingly, solutions.
I would bet that Python is the number
one followed probably by JavaScript.
And then, lots and lots
of different languages.
So
Colin: Yeah, I joined the Python
discord server, which I think is
I'm not sure if it's the official
one, but it's the biggest one.
and there's like an admin of code section
that they added so that people can have
conversations there and, people, we're
only on day seven and I'll say that I
think where am I'm on day five and I
was able to solve the sample, but then
the input is like, It's using ranges
and the sample was like pretty tame, but
then the input is like in the billions.
And so my solution does not
work, or at least it might take
many years to finish before.
CJ: Yeah.
Colin: So I need to go back and update it
to just like dynamically calculate if it's
in the range instead of, I think I was, I
generated all the tables, which would take
a very long time to do in the billions.
CJ: That was my instinct too,
for solving that problem.
The first time I looked at it, I was
like, Oh yeah, you can just generate.
hashes and then, yeah, look
through them or whatever.
And, yeah, it's interesting how
Eric throws those curve balls
when he's creating all these
different challenges to make it.
More interesting, right?
Like the part two is always Oh gosh,
that's so hairy or gnarly or whatever.
and also depending on how you
solve part one, sometimes the
refactoring can be like a tiny
little change to make part two work.
And other times it's Oh wow.
That like part one does
nothing for me anymore.
Like I need to completely rethink
all of my data structures, all
my algorithms to make this work.
So
Colin: which I think encourages
good coding practices and reusable
code so that you don't have to like,
burn it all down and start over.
But, I think for some first couple days,
I wasn't using any functions at all.
Now I'm like starting to put
things in functions and call
them and get used to that.
So maybe I'll have to introduce
some classes before we're done.
CJ: nice.
Yeah, totally.
Have you, so what is your
experience with Python?
in the past, is this the first
kind of deep dive into it or
have you used it just for fun?
Okay.
Nice.
Colin: Yeah, I've never used it.
Somehow I got away with never writing
a line of Python until I think when I
joined discord, I played around with
one PR that it was like a pretty easy
one liner or something, but, I'm needing
to get into our Python code more,
so it's just good for me to know it.
And so this has been a
good learning time for it.
I realized that.
Like I do have a pretty strong
computer science foundation.
So it's more of how do I do the thing
I do in other languages in Python and
not having to re rebuild and relearn.
Cause I have some friends who are learning
computer science with Python right now.
And, so they're also learning how to
think in, single dimensional arrays,
multi dimensional arrays, how to think
about where you're at and then like
context of variables and things like
that too, It those things we take for
granted the longer we do this versus
when you're learning, you're like,
I put some equals zero up here, but
it's yeah, that's getting reset to
zero every time this loop happens.
So you're some constantly
is getting blown away.
yeah, so
CJ: Yeah, definitely.
Colin: for it.
CJ: Totally.
Yeah.
I like to tell people that like every new
language that you learn becomes a little
easier than the last one that you learned.
And the first one is always so hard.
Like the very first one that
you learn is just so much work
to wrap your head around stuff.
Oh
Colin: spoken languages.
CJ: my gosh, that would be awesome.
Yeah.
Yeah.
Colin: So yeah, I guess to follow the
last episode, we talked a little bit
about YouTube and streaming and so
just ripped the bandaid off and did a
stream with advent of code for one of
the challenges with my friend Aaron and
CJ: Awesome.
Colin: It was interesting.
we talked about getting on stream and
then it took us like 45 minutes because
we were doing a stream together.
ShE'd been all set up for solo streams,
but we use the new Twitch stream
together feature, which is pretty cool.
and what's nice about it is when she
goes live, it tells my followers that
Colin's going live on Aaron's stream.
And then it streams both of our
cameras into an overlay that you
can put into your stream software.
So You don't have to have
all those like other tools.
I literally have it written down
on a little card in front of me.
This is something that I was wanting to
build a long time ago and Twitch just
has it built in now, which is cool.
And also one of those like platform
risk type things where Twitch
knows what they, want to have to
make their streamers successful.
And having that hook in there where
it's like, it actually shows on
the UI Colin Aaron are streaming.
so they've done a really good job with
that, but, OBS just was not cutting it.
So I had her switch over to meld
studio, which is honestly, I can't
go back to OBS after using it.
it's designed for the Mac.
It uses the m1, m2, m3 chips.
so it's just like a
much better experience.
And they tell you as you're
streaming, this is not production
grade, do not use this yet.
but we haven't had any issues and it
took us minutes to get all set up with,
from downloading it and setting it up to
hitting stream, which was really nice.
CJ: Does, okay, so meld is an one
for one alternative to OBS in terms
of getting your own camera screen
inputs and like all these other
Colin: images, sources, all those things.
Yeah.
CJ: And then your meld input is
directly into Twitch and then
Twitch is like muxing your input
and her input, like on that side?
Or are you both like meld?
Is there some
Colin: So it's a little
bit stranger than that.
It's another, so you go to the
stream together website and they
give you a URL that you put in as
a source into your mail or OBS.
So it is a, they're putting you and
your guests into a browser and then
it can have a transparent background
so that if you set that as your full
frame, you can move the guests around.
They have their Twitch IDs in there.
We just did the video and the
audio through the browser because
then we don't have any syncing
issues, which you'll run into.
And then you can also screen share
into that UI because the issue we were
running into is that we were just sharing
our faces and I couldn't see her code.
Without watching her stream, which
was slightly delayed and then I
would get ads which also sucked.
So we need to figure that out so I
need to either pay for twitch or she
needs to turn off ads or however that
works But yeah, it's pretty slick.
So it's built in as like Just a UI
component in your stream software.
CJ: Got it.
And is mailed paid, or
what does that look like?
Colin: I imagine they're going to need to
be at some point, but right now it's free.
it's super slick.
Like it looks like, a
very modern, what is that?
project man linear like flashy.
we'll include a link to it.
Not sponsored,
CJ: Yeah.
Colin: but maybe if we keep the
streaming thing up meld, we should check.
CJ: Yeah.
We, so in the past I've used
StreamYard, that was like my go
to, at Stripe for live streams.
And I, when working with Aaron,
from automate all the things,
he uses OBS with OBS Ninja to
do like the multi person set up.
And I know that he's got it really
fine tuned, but it's also taken
a lot of trial and error to get
audio syncing things fixed and
Colin: Yeah, I think it's
similar to OBS Ninja.
It's just Twitch is
basically eating their lunch.
if you're doing Twitch.
It's gonna do this.
What's cool is that you could,
actually you can use stream together
without going live on Twitch.
Like you could use it in like a
work stream if you were streaming.
Like I could stream to
Discord for instance.
I don't think we have stream keys
in Discord, but I could use the
output of MELD Studio or OBS as my
camera input, and trick it there.
but actually I'll have to go look because
it would be cool if we had support
for that streaming format of, stream
keys and things like that in Discord.
CJ: Got it.
Colin: So it is amazing because there's
a bunch of, Hey, so you want a YouTube in
2024 or you want to stream in 2024, but
there's not a lot of good videos that get
into this stuff that we've all figured out
over time, like how to have a good mic is
out there, but how do you get your friends
in a stream together, things like that.
And Twitch is obviously
making those things easier.
The other one is that Twitch
added like custom alerts.
So very similarly, you can
set up your own alerts.
with your own graphics and your
own triggers and then drop those
into OBS as browser sources.
And so when you get a follower and
that like CJ followed Colin, like
that happens in your OBS without
having to use any external tools,
which used to be super painful.
You had to do stream labs and
all this other stuff to do
CJ: right.
Yeah.
Sweet.
Sound like it's getting easier.
Colin: becoming a Twitch fan boy,
CJ: sweet.
Awesome.
And when you stream like that,
is it available after the fact?
Like I wanted to go watch it.
Colin: Is like if you're not a
partner with Twitch, it's seven days.
If you're a partner, it's 30
and then a lot of streamers send
it over to YouTube afterwards.
CJ: Let's see.
We talked about Advent of Code a little
bit, but, I don't know, anything else you
Colin: No, I
CJ: to add there?
Colin: I think we're gonna just keep
chunking along and try to get caught up
CJ: Yeah..
Colin: or something.
CJ: The one thing I wanted to add about
that, that has really surprised me is,
Advent of, the challenges come out,
I think, at midnight Eastern time.
And I live in Eastern time, so
I'm not up at midnight doing these
challenges, but one of the first
things I do is I go on my phone and
I check what's the problem for today.
And so as I'm like trying to wake
up for the day and get, get my
head in the game, I have been on
my phone using the replit app.
To write like early solutions or let me
just see if I can solve like part one
right now, like while I'm in bed and
holy moly, the replica app is killer.
if you want to write code on
mobile, the replica app has so
many little like quick buttons for
the things that you would want.
So if you want to toggle comments or you
want to indent or you want to, move the
cursor left, and whatever, they've come
up with a really interesting UX where
you can move this little dot around.
Plus because they have ghostwriter,
it's like you have a copilot right
there and you can just like swipe
and it'll like auto complete the
stuff that you wanted to write.
so I have been having
just like tons of fun.
Hacking directly from my phone,
which is just mind blowing.
Colin: you use Vim on your phone?
CJ: I do not know.
yeah.
that would be cool though.
Colin: that would be cool
CJ: don't know.
Yeah, I feel like I, I don't know.
I want to try, like voice coding.
I'll drop a link to this talk, but,
Emily, One of my former coworkers
from App Academy, she gave a talk
called whale quench and it's all about
like writing code with your voice.
Using like dragon dictation and a couple
other things to, yeah, just write code
with your voice instead of having to type.
And I think we're getting
much, much closer to that being
like a very serious reality.
Colin: I think we've said this on this
podcast multiple times, but there's
those scenes in Avengers movies of
Tony dictating to Jarvis and he's
trying to figure out time travel and
it's just nope, don't change that
input, change that, run it again.
And especially Advent of Code, like
if you could do Advent of Code purely
by voice, I feel like that's maybe
next year's challenge, is do it
on a live stream, do it all voice.
use 11 labs, use, all these different
transcription things that are out
there and just see what you can do,
especially when you feed it with AI.
I think the challenge is you don't
want to give the problem to the AI
because it'll just do it for you.
But making sure that the only input
is your voice and then you also have
to describe what you want to do in a
proper way, which I think you learn
a lot when you're trying to describe
what your brain is doing out loud.
CJ: Yeah.
One of the ideas I've had recently is
to build a Vim plugin where you, you
hold down a key or something, and then
you just start talking and it'll make a
comment in whatever language you're in
and it'll just dictate the into a comment.
And then when you stop
dictation, you hit enter.
That'll get sent off to co pilot,
which we'll try to figure out the
right snippet to fill in that spot.
I think that'd be a pretty fun
little thing to play around with
Colin: what else are you building?
CJ: Oh yeah.
Kraftwerk is expanding.
We're expanding to other markets.
And that means that our application
needs to handle projects for people
that are not just in Charlotte.
So maybe they're going
to be in, another city.
And that other city will have a
whole different set of support
staff and resources and they might
support different types of projects.
They might have different pricing models.
They might have different marketing
things, different Google business pages.
One common challenge, like with any
app that's going to go through multi
region support like this, or even
sometimes if you start with users and
then you need to go to accounts where
you have an account with multiple users.
You end up with an account switcher
type thing where Oh, am I looking
at my work account or my personal
account for one password or for
your Google suite or whatever?
So now we will have to have the concept
of which market are you looking at?
Is this, are we looking
at the entire business?
Are we looking at a specific city?
And then if you have a User can that
customer buy projects in multiple cities?
So now you have Oh gosh, you can't
necessarily tie a customer to a
specific city, but you do want a
project to be tied to a specific city
because likely the painters are only
in one city, but, maybe you have a
support staff that work across cities.
That's been, yeah, it's a project
for December is like going through
and adding market to all of the
applicable things and trying to figure
out how to split out, that concept.
Colin: Nice.
So you'll probably have a market drop
down for admin and like professionals,
but then the users just like Airbnb.
I don't necessarily set a specific locale.
But when I'm looking for a
place, I go search in that place.
And yeah, that's interesting.
CJ: yeah, exactly.
Like a customer will
probably go to the craftwork.
com slash.
Reno or something, and that would
pull up all of the services that
are offered by Kraftwerk in Reno.
And then you could book and the calculator
would reflect the prices in Reno and
your message would be sent to the sales
rep in Reno and the reporting would
go to the general manager in Reno.
and you as a customer would think, oh,
I'm just interacting with Kraft Fork.
But behind the scenes we would need to
break out how are these quotes routed
and where do the notifications go?
Which Slack channel and which Slack
organization and all this different stuff.
Colin: Yeah, this might be an
interesting conversation to chat about
craftwork in general, but the thing
that I've been finding myself wanting,
especially in this giant building,
like this is a 6, 000 square foot
building, and I need to manage all these
individual things that have to be done.
You have to face the same in any
house and things, but the idea of
as a user, adding my properties.
And those properties have maybe
lawns, sprinklers, gutters,
paint, whatever, right?
And being able to be like,
Hey, it's probably time to have
these things like HVAC, right?
Servicing time.
It's almost like this, like
operating system for a building.
Cause I find what it's just yeah,
we fix things when it breaks
rather than looking at them all.
like going to the doctor and
being more preventative, right?
There's not a lot of preventative
stuff with either cars,
houses, things like that.
And I find this wanting to do
this for my house and my vehicle.
It's it's time to get an oil change.
It's time to do this.
It's time to get your house painted.
Which could be interesting for you
guys to know that this user has these
properties in these markets and they
also have a property or maybe there's
a user who created an account and
put a property in a market you don't
support yet so that they can know notify
me when Craftwork is in my market.
CJ: Yep.
Colin: That'd be pretty cool.
CJ: Yeah, if you want to know when we're
in your market, you can go sign up for
the waitlist, but that's totally something
that I think we want to build is you
can log in and see the inventory of your
properties and know Oh, what color is on
the wall in my, powder room or whatever.
And then it's Oh, yeah, your
powder room was painted in 2024.
And it was painted this color by this,
and this painter or something, and you
can, here's the, a little button to
reorder some touch up paint or here's,
yeah, breakdown what comes to mind is
HOA is they have this thing that they
do in order to try to predict HOA dues
over a long period, they go through, I
think it's called like a capital reserve
plan or something like this, where you
have to figure out like, Oh, if we want
to seal all the blacktop in this giant.
Neighborhood, it's going to cost
10 grand and if we want to repaint
all of the condos in this complex,
it's going to cost 400 grand.
And if we want to redo the, the pool, it's
going to cost 500 grand or whatever they
take that and they try to figure out how
often those things need to be replaced.
And then you can build out
like an amortization schedule.
That's okay.
Every year, this is roughly how much it's
going to cost to maintain the entire HOA.
And then you can back
out into fees from that.
So you're not like surprised by Oh shoot,
like the entire HOA needs a new roof now.
And, now we've got to figure out
how to whatever, collect a one
time emergency payment to pay for
X that wasn't planned for before.
But yeah, I totally would love
to see something like that.
I wonder if it makes sense at like the
individual homeowner level, as much
as it makes sense as like a landlord
who's managing or like property manager
who's managing multiple properties.
But yeah, in your case, you've got like
a huge building that's Similar in that
in many ways in that, things are going
to need to be replaced every so often.
And a lot of those are big ticket.
And so how do you like schedule that
out so that it's either, the financial
impact isn't really big or like you
can stay on top of the preventative
maintenance, Oh, you get an alert that
says you got to change the filters
in the water system, or you get a,
pour more salt into the whatever.
Colin: Water softener.
Yeah.
CJ: Yeah.
The water softener.
Colin: Yep.
Yeah, it's funny.
I've watched a lot of DIY
like TikTok, not TikTok, but
Instagram and YouTube and things.
And there was a house inspector and he
believes that you should repaint your
entire house inside every eight years
and all these painters and contractors
really having a fit in the comments.
And the reason wasn't that
your paint, your walls are like
needing paint in eight years.
The other way he described it was
do one room per year and for most
houses, eight years is going to mean
that the whole house is returned
over every eight years, right?
The kitchen, the living
room, whatever it might be.
And the reason that you do that
is that painting a room means
pulling everything away from the
walls, cleaning things, looking at
things, figuring out what's broken.
And you're room by room assessing and
maintaining this thing that you have.
And that you're, when you do an
inspection, like your asset value is
going to be higher than if you don't, and
you're just going to have less issues.
And when I think room by room,
it's way more manageable than
the entire building, right?
It's cost wise, but also
just, It's just mental load.
It's just easier to take care of
it that way and obviously things
surprise you and there's leaks
and all sorts of other things.
But, yeah,
CJ: I like that one room every
year sounds manageable right now.
What seems intimidating to me
is like painting the outside.
Cause that one feels like you
can't really do one wall at a time.
Like maybe
Colin: all at once.
CJ: Yeah, it's a, yeah,
that's a one and done.
It's also one of those things where I
wish right when we moved in, when the
house was empty, that we did two things.
One of them was paint all the walls.
And the other one was to refinish the
wood floors, because in order to like
work on the wood floors at all, we have
to move everything out right like you
have to basically move out of the floor
that you're in, and then get the wood,
the woodwork done and then move back in.
I don't know how often you're supposed
to refinish your floors But that feels
like a big lift to get everything
out and everything back in so
Colin: that's another one where if
you watch videos for refinishing wood
floors, it doesn't look that hard,
but probably pay someone to do it.
CJ: oh for sure.
Yeah.
Yeah
Colin: I've thought about it
and I'm like, I don't know.
This looks like it could go wrong, but
so those are the things we're building.
what are you working on?
what are you learning this week?
CJ: we went to the library this
weekend and I picked up this book
called how to outsmart your brain It
was just like on the new nonfiction
shelf and it is phenomenal.
It's really good and I Was telling
Nicole that before I take the next
college class I want to reread this
because there's so many really tactical
tips and tricks for how to absorb
as much as possible from a course or
a lecture or even conference talks.
Really.
It talks about a lot of different
cognitive biases that we have.
And then also how the brain
makes connections between ideas
and concepts and how oftentimes
podcasts or lectures are, linear.
But they will often have some structure
that you need to recreate in your own
head to absorb as much as possible from
the content that was being presented
because we talk very linearly, but we're
often trying to get across one big point
that has maybe three to seven sub points.
and yeah, just a lot of tips and tricks
in there that I thought were really cool.
it looks like you're also, you also
got a book you're working through here.
Colin: Yeah, I'm reading the City
Authentic, which is a book about kind
of urbanism and there's this trend that
I think every city can probably relate
to about how they try to attract people
to come to their city and this idea
of attention economy, but as cities.
And, that there's, they're talking about a
lot of the pitfalls that cities run into.
I'm still pretty early in the book, but
most of my reading list is like this new
urbanism, new organization of cities.
This book was written during the pandemic.
So it's also more of a take on it.
It was seeing the remote work
trend more than it was before.
And there's a lot of books in this
category of Richard Florida is the
creative city and things like that, where
even Richard Florida wrote a book in
2017 with everything I wrote is now wrong
and not the state of the world anymore.
which was what a lot of economic
development authorities and
cities are still reading that.
from that book, right?
And so there's been a lot of
books since then and I'm really
tempted to get this book.
There's another one called The Naked City.
There's a bunch of books from strong towns
and I'm tempted to create like a package
of books and just like anonymously send
them to all of our city council people.
And like Economic Development Authority,
like I guess it doesn't have to be
anonymous, but yeah, I don't know if
they'll be threatened by it or if they'll
be like, wow, we should read these.
CJ: I know that, Edon in particular was
very interested in bringing companies
and bringing businesses and attracting
folks to Reno, what part did the
Reno collective play in that process?
And were you collaborating with
them or yeah, like you obviously
want members to come that are
going to work from the collective.
Colin: that one's tricky because, so
most economic development authorities
are or like they have a key metric
of, square footage and number of
jobs, which is slightly at odds with
knowledge work because you do not need,
a warehouse and a huge army of employees.
But if that's what their goal
is, they'll say that they want
startups and things like that.
But to be honest, that's
not their main goal.
I think a lot of them realize that
you need a mix of all of those things
like in Reno and in Nevada General,
we're trying to diversify away from
gaming and so innovation of all types,
but every city has an Innovation plan
an innovation district, you know all
these different things and he brings
that up in this book, too Where every
city is doing the same things and so
they're all being like look at me.
Look at me.
We're now That's place for startups.
And now with the remote work, it's
you might not want to be in New
York, but now you want to be in this
like small rural town in New York
that also has fiber or whatever.
but you're still going to see
concentrations of workers in places
like LA and New York and Chicago,
because they're cities and there's
so much stuff in those cities
for people to do outside of work.
And so you have this attention
economy of culture being the
reason why people move to places.
and technically, and you probably
have seen that you moved recently,
but we are moving less than ever.
And it used to be, you would move out
of town because it got too expensive
and you'd go somewhere cheaper.
And then you have a list of things you
want to look at to see which cities
check all the boxes, but we just
aren't moving as often as we used to.
And so what do you do in cities
where You know, some of those
people aren't going to leave.
I think it focuses on a town called
Troy in New York and While they've
seen some increase in population,
it's like pales in comparison to
the increase of people moving to
New York City and like big metros.
but the thing that stood out the
most so far is when you try to build
like the cool area of town, like
usually it's built by the locals.
It's very authentic.
It's, you know, uh,
third wave coffee shop.
It's a cool bookstore.
It's a cool record store,
all these different things.
Well, almost always that gets
press and news, which then starts
to create real estate speculation.
The thing that was authentic and made
the name for the city or for that
area becomes, chain restaurants and
the very thing that it was trying to
counter in the first place and then
it becomes yet another urban, core.
And then it starts all over again with
the authentic, bookstore that's not
in the expensive part of town, right?
Because you can't be in the
expensive area when you're starting.
And so it's just this vicious cycle and
like, how do we break that a little bit?
So still reading it, we'll see where
it goes, but this is the kind of stuff
I think about when I'm not coding.
CJ: were in a, if you were in a
situation where you could move.
Or you could try to make your town, the
awesome, authentic, unassuming town that
you want it to be, then what moves would
you make and how would you invest your
time and your efforts and your energy?
recently we went to a
town in New Hampshire.
I'm not going to name it
actually, because it was awesome.
It was so cool.
It was like quaint and had this exactly
like you said, had a sick, like bookstore
that had this giant selection of used
books and then we went to, like a
vegan restaurant that was amazing.
It was like, really good lunch spot
that had options for all of us.
they had a Yarn store for nicole and she
picked up like some knitting stuff and
there was like a little apothecary spot.
And so like I don't know it
Colin: of a store is
CJ: Yeah, it was very, very witchy kind
of cool hipster town out in the middle
of, in the middle of New Hampshire.
That was very awesome.
Colin: Yeah, you gotta
protect those things.
CJ: yes.
So when I was first learning Ruby
I would listen to Ruby rogues.
And one of the hosts of
Ruby rogues was Avdi Grim.
And he's got a new site called
graceful dev or graceful.
dev, where a lot of the content
is the old ruby tapas, but there's
also a bunch of like little course
paths that you can go through.
I think the intention of setting
up graceful dev was to organize
all of ruby tapas into these paths.
Because.
Ruby tapas were all meant to be these
like short bite sized tiny little
videos about Ruby That would work
independent, but, people were craving
a more organized way to go through it.
And so I've been going through
some of the, the paths on there.
And I haven't watched any of
these stuff for a long time.
So now I'm having a great time.
Like He goes through some really obscure
language features and, some really
cool approaches to writing code with
Ruby that I, yeah, I'm learning a ton
from, so thought if you're, yeah, if
you're a Rubyist and you want to more
screencasts, if there aren't enough
already, then, yeah, go check it out.
Graceful.
Colin: cool.
The return of Avdi.
that's exciting.
CJ: Yeah.
And you, I think, did we
mention screencasting.
com in the last one?
Colin: We mentioned that, that it existed.
but I did buy it.
I think it's worth it at any price, but
I did fall for the Black Friday deal.
So thank you, Aaron.
and I have it.
I've started listening to it.
I'm really excited to just see like the
shortcuts for the tooling that they, like
the software that, that he uses to record.
Cause he tries to record in a
way, I think very similar to you.
where you don't have to edit too
much and just like shortcuts and
scripts to reset your desktop, record,
lots of takes that can be stitched
together and things like that.
At least that's, I think how he does it.
Cause I've seen some like jump
cuts and stuff in his videos.
And it's you just drop it.
And for the most part, the frame
looks the same, so it doesn't matter.
CJ: Sweet.
Colin: your, cinematic
production value out of it.
So yeah, we'll see how it
CJ: I'm really keen to hear how that
goes does he cover live streaming
at all or is it all pre recorded
Colin: think it's mostly prerecorded.
He doesn't do a lot of he, maybe he
does a little bit of live stream stuff,
live streaming I think also helps
to develop this muscle cause you.
Don't get to cut or go back, which is
I think why I've hesitated to just turn
it on and do it with screencasting.
You can always make yourself look good.
You can always take things out.
You can always reshoot.
but I think live stream is good for
me to just get over the no one cares.
Obviously a point where yes, you will
eventually if you're like primogen
or one of these people, like you're
going to have hecklers and things,
but it's also a little bit of
primogens like brand at this point.
So we have this like streaming
heckler programming group out there.
CJ: Yeah.
Colin: So
CJ: Yeah, it's definitely a good
way to, share your process too.
Cause I think sometimes people in
screencasts, me too, I'll have something
pretty polished by the time I record.
And so you won't see the errors or the the
approaches that were thrown away, like the
drafts that didn't make it into the final.
version.
So I try to leave like errors and things
in and talk about how I approach things,
but I, you don't get the same in a pre
record video as you do from a live stream.
So
Colin: Yeah.
some of these advent of code
ones, if I was making a video,
it'd be a very long video.
So we're like, Oh, we're
throwing stuff away.
I noticed that because you
already solve them before you
screencast them, which is nice.
and you still get a lot of the
thought process, which goes on.
And, if you record it shortly after
doing it, you don't really lose too much.
but then we benefit from a shorter video.
CJ: Yeah, exactly.
And usually I'll solve it and then I'll.
Go look at solutions.
And then I will also, I've been
recently, I've been taking my code
and giving to chat GPT and being
like, give me feedback on this.
Like, how can I make this better?
And, sometimes it's Oh, did
you know about this method?
Or did you try naming the
variables this way or whatever?
I'm like, Oh, wow.
That's, those are like really helpful.
So then I try to incorporate all
that so that the advice comes
out a little bit more pro than
just me hacking on something.
Colin: Yeah, I need to do that with
my Python because this is I'm using
like a blunt hammer with Python.
I'm like, this is the only methods I know.
So we're going to use these and
it'll be good to know, hey, you
can write this in a better way.
CJ: Yeah.
I remember when I learned Python,
someone told me that with Ruby,
it's like finger painting.
You can be really creative and there's
lots of different ways to do stuff.
And, you can be really, you can almost
express your, like your personality
through the code you write and Python
is just like laying bricks, there's just
like a for loop and then there's list
comprehensions and there's functions
and there's classes and there's like
a handful of language features, but
really it is just There is basically
one way to do things in the language.
And you just, once you learn that
way, you just do it that way.
Whereas like the enumerable module in
Ruby probably has 50 different methods
now or something, wild that let you do,
Colin: I think that the syntactical sugar
of Ruby is so apparent when I look at
your videos compared to my solutions,
I'm still usually following the same
train of thought, but then I'm like, I
guess I got to use this one tool in my
toolbox, but I'm still getting used to,
doing Ifs and blocks have to have colons
at the end, and there's no ending of
it because it's all indentation based.
Because I'm like writing my end or
creating like braces and I'm like, no,
this is the wrong language for that.
going between Ruby, Python,
and JavaScript, those are
very different for sure.
CJ: Totally.
Colin: Awesome.
we went from having not a lot to talk
about to having a lot to talk about,
CJ: yeah.
As always, you can head
over to buildandlearn.
dev to check out links to all
the resources and things we
mentioned in the show notes.
Colin: Awesome.
Thanks everybody.
We'll see you next time.
CJ: Bye friends.
Listen to Build and Learn using one of many popular podcasting apps or directories.