Advent of Code, Economic Development

Show Notes

In this episode, Colin and CJ discuss their experience with Advent of Code challenges. They use it as a virtual meetup for their local developer group and the value of solving problems in new languages.

They also talk about live streaming using Twitch's built-in Stream Together feature and alternatives like Meld Studio for multi-person streaming setups.

Other topics include potentially writing code with voice in the future, resources for learning Ruby like Avdi Grimm's Graceful Dev, and managing home maintenance through preventative care rather than reactively.

Advent of Code- The coding challenges we discussed
Jonathan Paulson's YouTube - Videos solving Advent of Code challenges
Bash Bunny on Twitch - Learning Zig with Advent of Code
Stream Together on Twitch - Built-in multi-person streaming
Meld Studio - Alternative to OBS for Mac streaming
Screencasting Course - The course about recording screencasts
Whale Quench Talk - Emily's talk about coding with voice
Graceful Dev - Avdi Grimm's site with Ruby resources
City Authentic: How the Attention Economy Builds Urban America by David Banks
How to Outsmart Your Brain
Replit mobile

Full Transcripts

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. All audio, artwork, episode descriptions and notes are property of CJ Avilla, Colin Loretz, for Build and Learn, and published with permission by Transistor, Inc. Broadcast by