Charles Max_Wood:
Hey there and welcome to another episode of Ruby Robes. I almost said JavaScript Jabber. That's been a long week. Today I'm here with Zach Schroeder. Zach, do you wanna say hi?
Zach:
Hello everyone, sorry I'm kind of in the dark right here, but I just don't have a good operating set up for Lighting my face. I don't think anyone's missing out
Charles Max_Wood:
Right. Yeah, so we're just gonna chat here for the next hour, I think. You had some things that you brought up that I thought were interesting topics that I don't know that we've really gone into depth with or depth on in the show. So yeah, so we'll just kind of move through some of these topics. I think some of these are things that people are talking about these days anyway. what three days out from New Year's or something like that so anyway one of the things you brought up is kind of the trends in front-ended JavaScript and I'm curious what you're seeing I mean I get a little bit of a different view on that just because I'm doing the JavaScript Jabber podcast I'm talking to people over there about all kinds of things but yeah I'm curious what you're seeing from where you're working and stuff these days
Zach:
Sure, absolutely. Yeah. So honestly, in a lot of my personal projects and stuff, I've kind of regressed to just doing as pure of regular JavaScript as I can, only
Charles Max_Wood:
Mm-hmm.
Zach:
because, and I imagine that other people feel this way too, I find it so hard to stay on top of the latest JavaScript technologies, frameworks, that kind of stuff. Recently, I did. There's a guy who makes, I wish I his name now, videos on YouTube kind of covering like, well, what I would do, you know, if I was making a modern stack JavaScript app in 2022,
Charles Max_Wood:
Uh-huh.
Zach:
kind of, and, you know, it's a little tongue in cheek, but you can end up pulling in, you know, four, five, six libraries, frameworks, things for doing different kinds of stuff. And, you know, what, what I guess my question for you and for, you know, other people out there is like, one, how do you stay on top of all the new stuff coming out? Do find something you like and stick with it. It seems like there's always a little niche where one framework will do something slightly better than another.
Charles Max_Wood:
Right.
Zach:
And then on the other side of that, do you end up kind of with like a little bit of exhaustion as far as trying to stay on top of all this where you know you end up kind of like, I just oh that's great you know something new came out of you know exciting like that kind of stuff you know.
Charles Max_Wood:
Right, so... I have two answers to this, just from different points of view. One of them is that, at least on my end, I'm trying new things because I'm constantly looking for things to have on the shows or to prepare for a show when we get somebody on. One thing that's been really interesting lately with the front end in particular though is that what you're talking about moving away from the big monolithic frameworks and into and kind of tightly control what your JavaScript does. I'm seeing a lot more people move in that direction. Most recently, we had Mishko Hevery. And if you know who he is, he's the guy that created Angular.
Zach:
Okay.
Charles Max_Wood:
But he's moved on. He's working for a company called Builder now, and he's building a new framework called QUIC. And so QUIC is all about putting JavaScript where you need it. It solves a lot of the problems that he said were just impossible to solve with Angular in its current state. So yeah, you add the JavaScript where you need it. It works for server-side rendering, but you can resume the JavaScript or execute the JavaScript on the client when it comes up. And so it's relatively simple. The one that we've talked about most on the show is stimulus, which is kind of in the same vein, right? Where you just create a controller class in JavaScript, and then you wrap whatever elements you want, and then you give it behaviors, right?
Zach:
Mm-hmm.
Charles Max_Wood:
You tell it, if you click this, do this. If you do these other things on it, do this, right? And then you can set targets so that when you do something, it, right?
Zach:
Right.
Charles Max_Wood:
Or pulls the value off the value. So anyway, so I'm seeing a lot of people move that way. What I found is that some folks, they really do want kind of the application level experience in their app. And that's where they're reaching for Angular, React, or Vue. And then, yeah, you have people that are coming more into the area of, hey, look, And so, you know, I'm going to have it do this, right? Maybe do some Ajax or, you know,
Zach:
Mm-hmm.
Charles Max_Wood:
pulling turbo or turbo links as it used to be called. Right? So you pull in some of that other stuff and make it all work. And
Zach:
Yeah.
Charles Max_Wood:
so I'm seeing a lot more people come at it that way and
Zach:
Sort of a
Charles Max_Wood:
use
Zach:
piecemeal
Charles Max_Wood:
those.
Zach:
approach, yeah.
Charles Max_Wood:
Yeah. What DHH calls JavaScript Sprinkles.
Zach:
Right. Well, yeah,
Charles Max_Wood:
And
Zach:
it's funny that you mentioned stimulus because I just pulled up, not exactly the same, but I just pulled up, I had been wanting to try Hotwire, which
Charles Max_Wood:
Mm-hmm.
Zach:
I think you can build into the same suite. I haven't yet, but that was a funny synchronicity. So I was wondering, so the creator of Angular, did he just feel like, what, maybe it got too big, or did another company take over management? I find that it sort of maybe has an interesting story under it.
Charles Max_Wood:
Yeah, I don't know that we really got into that story. He... I think he was just interested in kind of creating this new way of doing things on the web. And yeah, like the way that they avoid hydration and the way that they push work to the, to worker threads and stuff like that in there. Some of those things were just exceptionally difficult, if not impossible, to put in Angular as it stood. And he kind of saw the writing on the wall as people are going to want these features in the next version of whatever they're using. And so he left. I got I may have that wrong but that was the impression I got with that and we're kind of seeing that push with like I said some of these other ones we recently on JavaScript Jabber had Fred Scott who built Astro Which is another one of these lightweight frameworks, right? Just gives you kind of the bare-bones stuff that you want and Yeah, so it kind of It kind of feels a little bit like going back to where things were with like jQuery, right? Where it was just, hey, these, you have these kinds of interactions you can put together on elements and,
Zach:
Mm-hmm.
Charles Max_Wood:
and stuff like that. Um, you know, maybe in a different architecture and without, cause jQuery was monolithic too, let's face it. But it didn't, it didn't necessarily have to take over your entire front end. Like Angular and Vue and React tend to do.
Zach:
Right.
Charles Max_Wood:
difference is so people are looking at it and going, I can have this tiny bit of functionality and I can maintain it as a tiny bit of functionality and I don't have to create this massive set of functionality and features to manage the whole dang page and to manage some kind of global front-end data store thing that I have to go and you know make sure that it's all in the right state at the
Zach:
Right, exactly. And
Charles Max_Wood:
But yeah,
Zach:
that's
Charles Max_Wood:
if you're
Zach:
something.
Charles Max_Wood:
building the full application experience and you've got multiple targets to update and stuff like that, maybe there is a right place for that, right? I'm not saying there's not, but for most of the stuff that I'm building, yeah, it's like, oh, I need this to just act a little different, excuse me. So one of the examples is on top end devs. If you purchase something from us, like you purchase a course or a conference ticket, class, and it has a polymorphic relationship to whatever you bought. The idea being, if I want to assign you a purchase right so something goes wrong and I need to manually add your purchase in, I select what type it is, course or conference, and then it will go and do an end run to the server and say, what are all the courses and bring those in and set up the next select box so I can select the right thing.
Zach:
Right.
Charles Max_Wood:
And so, you know, it's tiny bit of functionality. I don't need anything fancy and I don't need it managing the entire page.
Zach:
Yeah, yeah, the weight of the framework and this applies to Ruby frameworks for web stuff and for gems and everything. It's like, you get to a point where it's like, okay, this has some functionality I want, but it's also going to bring in all this extra stuff that I don't need and could I find this same functionality or roll it myself without bringing
Charles Max_Wood:
Right.
Zach:
that in? So yeah, JavaScript frameworks, Ruby stuff, Yeah, that's kind of how I tend to think about it too. I actually really haven't been keeping up. I mentioned that when I've been doing web apps recently, I just use Sinatra for the back end. Still works really well. And it tends to follow my thought process, which is just spinning up
Charles Max_Wood:
Mm-hmm.
Zach:
a lot of quick little access points and stuff like that. I really haven't kept up in the last couple of years now that I'm not doing it for work with Rails. I just pulled up the website and it seems like they're still full steam ahead. Last release was in
Charles Max_Wood:
Oh
Zach:
September.
Charles Max_Wood:
yeah.
Zach:
I was wondering, not that you can say that much about language usage and framework usage and stuff like that, but it makes me wonder if Rails is still sort of maintaining the market dominance that they held in terms of large scale Ruby based applications.
Charles Max_Wood:
I think, I think yes and no. Um, and this is a conversation that I have just about you Ruby usage in general with a lot of people. Cause they're like, well, looking at Ruby, like the market share isn't, you know, it's shrinking, right? Well, realistically though, there are more people coming into dev than ever before. And so as far as, you know, adoption and stuff like that, Ruby's holding its own. It's just, you know, you, you have a lot more people coming in through boot camps that are teaching them other languages like Python or JavaScript. And
Zach:
you
Charles Max_Wood:
so, it's the same with Rails, I feel. I've been talking to a lot of people lately who have been moving over toward Hanami.
Zach:
I haven't heard of that.
Charles Max_Wood:
Yeah, it's a little bit different framework. It's... Let's see, it's a little bit better or more widely used in like European markets, not in the US
Zach:
Okay.
Charles Max_Wood:
And
Zach:
I just pulled it
Charles Max_Wood:
it's
Zach:
up here.
Charles Max_Wood:
really interesting. One thing I want to do, because I have to admit, I have looked at it. I have not
Zach:
Mm-hmm.
Charles Max_Wood:
used it. We've done some shows on it. And what I want to do is, and they just barely released Hanami 2, which solved a whole bunch of, I wouldn't say there were like problems so much as just things that were inconsistent or things that were harder to use. They made it easier to use. I think it got a pretty healthy performance boost. And so, yeah, it's pretty awesome. But yeah, if I'm hearing about any framework out there, as much as Rails, it's Hanami.
Zach:
Nice.
Charles Max_Wood:
And yeah, they're, I'm trying to remember, so they use ROM for their CRM. And so it's a little bit more kind of functional setup than like Rails, which is, you know, you do it through inheritance and you have all that other stuff going. So,
Zach:
Mm-hmm.
Charles Max_Wood:
But Rails is definitely holding its own. The difference I feel, at least between Rails and something like Sinatra, is that Rails kind of has ready-made places for most of your code to go. In my case, it runs fast enough.
Zach:
Right.
Charles Max_Wood:
But recently I've been reading Clean Architecture by Uncle Bob.
Zach:
Okay.
Charles Max_Wood:
He the chapters we just covered were actually doing a book club you can go join the book club at top and devs dot com slash book club
Zach:
Thanks.
Charles Max_Wood:
were about halfway through the book and we. Anyway so the latest chapter he talked about deferring as many decisions as possible.
Zach:
Mm-hmm.
Charles Max_Wood:
And so just kind of thinking about that and how that all works that's one thing i really like about something like sinatra right. like that's kind of the really low level, hey, this serves web stuff, right?
Zach:
Okay.
Charles Max_Wood:
And so I really dig that in the sense that I can defer decisions. I don't have to pick a database. I don't have to pick
Zach:
Mm-hmm.
Charles Max_Wood:
an ORM. I don't have to pick nothing, right? I can just serve pages.
Zach:
Yeah.
Charles Max_Wood:
And so then if I wanted to build something on top of Sinatra, like the example they used who's also a cool guy. They built a wiki, right, that was built on top of Fit, which was built by Ward Cunningham, I think. Anyway, so Fit was this testing thing and they built this wiki on top of it that you could put your test cases in, which is really cool. It's called fitness.
Zach:
Thanks for watching!
Charles Max_Wood:
But the first thing they did is translated their wiki markup to HTML, right? And so they didn't have to solve any of the other issues, right? And so
Zach:
Mm-hmm.
Charles Max_Wood:
if I was going to put something like that into an app, I could just drop it on Sinatra and say, serve the HTML, right?
Zach:
Mm-hmm.
Charles Max_Wood:
And then I can pick the database when I get around to persistence, or I can pick a JavaScript front-end tool or framework when I get around to, hey, I want these features in it that need it.
Zach:
Thanks for watching!
Charles Max_Wood:
liking that approach to architecture, Rails makes a lot of those decisions for you up front.
Zach:
Mm-hmm.
Charles Max_Wood:
The flip side is if you're comfortable with the framework and you don't want to ever have to make those decisions, it's a nice tool to use.
Zach:
Yeah.
Charles Max_Wood:
But yeah, as far as the market goes, I think Rails is still the dominant way to build web apps in Ruby. I see stuff in, like I said, typically it's Hanami, but Hanami is still like a Sinatra.
Zach:
Right.
Charles Max_Wood:
I see people spin stuff up on a Sinatra or other rack-based system fairly frequently when they know they just want something small, fast, and internal, that
Zach:
Mm-hmm.
Charles Max_Wood:
they don't have to worry about any hot shot from the internet coming in and messing with.
Zach:
Right, exactly. Well, yeah, and in terms of sort of a bad poll but the recruiter emails and stuff that I get seems like a lot of big companies are still holding onto their Rails apps.
Charles Max_Wood:
Mm-hmm.
Zach:
I get a lot of those.
Charles Max_Wood:
If they're
Zach:
But.
Charles Max_Wood:
well put together, they're pretty easy to maintain. The problem that I see most of those companies run into is they run, run, run, run, run, run, and then they get to the point where all of their decisions have added up to a huge amount of weight that you have to deal with as you add more features.
Zach:
Yeah.
Charles Max_Wood:
And so if they're
Zach:
Been there,
Charles Max_Wood:
making good
Zach:
yeah.
Charles Max_Wood:
decisions and giving people opportunities to remove tech debt as they go, then they tend to do okay.
Zach:
Yeah, I won't mention the company, but one of my first jobs out of school was on a very large monolithic Ruby on Rails
Charles Max_Wood:
Mm-hmm.
Zach:
app. And it was very much like that. You know, you're following, you know, hundreds of lines through the stack trace trying to figure out
Charles Max_Wood:
Right.
Zach:
which version of this thing has,
Charles Max_Wood:
Uh
Zach:
you
Charles Max_Wood:
huh.
Zach:
know, has the monkey patch
Charles Max_Wood:
Yep.
Zach:
in it or whatever. So.
Charles Max_Wood:
Yep. Oh yeah. And that's always fun too is they monkey patch something and then you're really just going. Okay, so this isn't the string class that I
Zach:
Yeah,
Charles Max_Wood:
thought I had, right?
Zach:
just like standing up and screaming, who changed string, you know, trying to find. The,
Charles Max_Wood:
Yeah,
Zach:
you know,
Charles Max_Wood:
please don't do that. People, please don't do that.
Zach:
I actually did find a reason again, personal project, no one else was looking at it, but reason to do that recently, I forget what it was, but I put something into string. Anyway, I still find Ruby to be like the most enjoyable language to write. I've dabbled in Python mostly for microcontroller stuff,
Charles Max_Wood:
Mm-hmm.
Zach:
But whenever I'm starting up anything, and I'm a habitual project starter and like
Charles Max_Wood:
Right.
Zach:
almost never project finisher, you know, I always just jump to Ruby because it's so comfortable and, you know, succinct. And even though mostly what I'm doing is, well, except for that little gem I made, I ended up doing quite a, you know, it's 100% just pure Ruby down to basically, you know, when you're generating sound, you have a sample rate, you're plugging in just a float or an integer for each individual sample. So you can write your sine wave function in Ruby, plug in your samples into a, basically like a giant array and export it. And I'll use that little wave file gem. And that was really fun because I didn't have to worry about JavaScript or deploying to the web or anything like that. It's just
Charles Max_Wood:
Right.
Zach:
like, oh, just get to change some Ruby here. And actually, honestly, was my favorite project I've ever done because one, I basically sort of like finished the first version of it,
Charles Max_Wood:
Mm-hmm.
Zach:
and two, is the first project I've ever done where someone actually commented on it, brought up an issue, and helped me fix an issue, and that was a really cool feeling. You know, outside of work, I've never really done that with anyone, so.
Charles Max_Wood:
Yep, yeah I hear that. I see, I mean some of the other advantages I see to Rails are that they have the front end build systems, right? So you've got sprockets or import maps or webpack are kind of built in
Zach:
Mm-hmm.
Charles Max_Wood:
and that handles a lot for you and it does a lot of the best practice stuff that gets your performance,
Zach:
Right.
Charles Max_Wood:
you know, it gets your bundle size down and stuff like that. I'm convinced that I always need that.
Zach:
Mm-hmm.
Charles Max_Wood:
So...
Zach:
Yeah, well, I've had this conversation
Charles Max_Wood:
And sometimes it's complicated
Zach:
with friends before,
Charles Max_Wood:
setting it
Zach:
yeah.
Charles Max_Wood:
up.
Zach:
Yeah, where it's like, always be wary of pre-optimization, which, if you know what
Charles Max_Wood:
Right.
Zach:
you're doing, especially with webpacking stuff, I don't want to be negative, but I just, webpacking, I have never gotten along. Never found
Charles Max_Wood:
Yeah.
Zach:
a nice flow with that, and talking to friends while working on stuff, and being like, well, is this going and then ultimately thinking like, well, it doesn't really matter, does it? Because
Charles Max_Wood:
Yeah.
Zach:
you're not even close to the stage where you have to worry about whether it's fast or too slow
Charles Max_Wood:
Yep.
Zach:
or anything like that.
Charles Max_Wood:
Yep, absolutely.
Zach:
But
Charles Max_Wood:
But
Zach:
regardless,
Charles Max_Wood:
yeah, it's,
Zach:
I mean, whether
Charles Max_Wood:
yeah.
Zach:
you start projects or actually finish projects or whatever, I'm always a big proponent of just doing something, especially for coders outside of work, even if it's just solving, what do they call those? So it's like Euler problems using a new language
Charles Max_Wood:
Yeah.
Zach:
or something, or, because it's kind of hard to come up with ideas, because for me, it's always like, oh, wouldn't it be cool if there was a, oh, that already exists, okay, et cetera.
Charles Max_Wood:
Yeah.
Zach:
But whenever I talk to people about coding or like I've spoken at RubyConf a couple of times, it's like, regardless of what you think of this thing I'm presenting, it's like I highly encourage people just do something, find something interesting because it can be really easy, especially if you're working in coding to get kind of like numb to it, a little burnt out maybe. So whether you're finishing things or not, just like, you know, try to have a little project going on the side that you can get excited about and look forward
Charles Max_Wood:
Yep.
Zach:
to.
Charles Max_Wood:
Yeah, that's one of the things that I recommend to people as well. And I've been getting into coaching and things like that quite a bit. Um, get some of this on top end devs membership. Um, but yeah, be learning something new every day and be committing code every day. And I highly recommend people when they're committing code every day is to pick up some side project and go with it. Um, and the other thing is with that side project, and you've kind of alluded to this. to have multiple side projects going, you kind of move from one thing to the other to the other, is a lot of times people will go, okay, well, you know, I'm going to go, you know, they get on Google and they look up what's a good side project, right? And it's like, build a budget app or build a Twitter clone.
Zach:
Mm-hmm
Charles Max_Wood:
And people get into it and then they're just like, it's just not exciting,
Zach:
Boring,
Charles Max_Wood:
right?
Zach:
yeah.
Charles Max_Wood:
Go do something that's exciting, right? I mean, what else do you want? You know, do you want a Right? Do you want
Zach:
Mm-hmm.
Charles Max_Wood:
a website where you can post a portfolio of pictures of your kids? Do you want, you know, maybe you are this financial guru. Right? So build something that tracks the stock market. Right?
Zach:
Yeah.
Charles Max_Wood:
Do something really interesting. Right? I
Zach:
Mm-hmm.
Charles Max_Wood:
mean, if the Twitter clone is just like, I am going to show Mastodon how it ought to be done. Fine. Go for it. Right? But at the end of the day, you know, go find that project that lights you up.
Zach:
Mm-hmm.
Charles Max_Wood:
And yeah, that's kind of point 2B of the top end devs method, is have a side project. The other thing is that it really shows up well on your resume if you have a semi-complex, well-maintained side project that can show people how you work and what you can do.
Zach:
Mm-hmm. Yeah, being able to talk through it design decisions
Charles Max_Wood:
Yeah,
Zach:
coding decisions that kind of
Charles Max_Wood:
yeah,
Zach:
stuff
Charles Max_Wood:
yeah, what do you know about X? Well, in my side project, I was trying to solve this problem and I tried these three different ways and it turned out what you talked about was the right way to do it, and here's why. Here are the trade-offs, here's why I made the decisions, here's my experience with it. That goes over way better than, well, I can cite you chapter and verse of what's on Wikipedia explaining what the algorithm means.
Zach:
Exactly, yeah. Well, and another big thing with that is that, even if you work in Ruby, you work in Rails, I think a lot of business decisions end up, at least I've seen in my career, end up being the same kind of work over and over
Charles Max_Wood:
Uh
Zach:
again.
Charles Max_Wood:
huh. Yeah.
Zach:
And it's easy to become an expert on shifting a button around or that
Charles Max_Wood:
Mm-hmm.
Zach:
kind of thing, or, okay, I have to do a migration in order to add this line to the database or whatever, being able to really like explore a language or explore different ways of thinking is always good
Charles Max_Wood:
Yeah,
Zach:
as well.
Charles Max_Wood:
I agree. And like you said, I mean, it's not just shifting a button around. But I mean, what I find is like 90% of the work that I'm doing in Rails is crud.
Zach:
Mm-hmm.
Charles Max_Wood:
It really is, right?
Zach:
Yeah.
Charles Max_Wood:
And I kind of include like validations and stuff in there, right?
Zach:
Mm-hmm.
Charles Max_Wood:
And the database migrations and crap. The rest of it, you know, that's the interesting stuff where it's like, hey, we don't even know how to do this, or hey,
Zach:
Right.
Charles Max_Wood:
we're going to go pick up a gem that you've never worked with I have to go explore. That's the fun part for me.
Zach:
Mm-hmm.
Charles Max_Wood:
And so, like I'm working a contract now and we've been working on these API integrations and you know, it was interesting for about a month.
Zach:
Mm-hmm.
Charles Max_Wood:
And then once I kind of had that together and now it's just okay, I just have to figure out how to map these fields to those fields. You know, it's boring. You know, I'm
Zach:
Right.
Charles Max_Wood:
bored. And yeah, so having something to work on where you can go explore this stuff is like, hey, I'm going to go build this. I'm going to build it in Nami.
Zach:
Right.
Charles Max_Wood:
and I'm going to build it, I'm going to go completely off the rails and go build it and go.
Zach:
Pun
Charles Max_Wood:
Right?
Zach:
intended,
Charles Max_Wood:
Or
Zach:
yeah.
Charles Max_Wood:
rust or whatever, right?
Zach:
Mm-hmm.
Charles Max_Wood:
Now, if it's something that you're going to... So, this is always the double-edged sword for me, is that a lot of times I'll build a side project and then I'll start thinking about how to actually launch it and monetize it and run it as a business. And so, if I'm in a whole bunch of different technologies, that starts to become painful.
Zach:
Mm-hmm.
Charles Max_Wood:
I mean, you know, go for it. I was coaching a guy the other day and he's been doing front end in Angular. And before that he was doing Vue.js. And he's like, I really want to get into Rust. I think it was Rust, it might've been Go. I was like, then start a Go project, right?
Zach:
Mm-hmm.
Charles Max_Wood:
He's like, well, I'm not really an expert. And, you know, and started expressing in some imposter syndrome. I said, dude is just to learn on, right?
Zach:
Yeah.
Charles Max_Wood:
And Go try, you know, when they tell you don't do this. I said, try it, figure out why they're telling
Zach:
Thanks for watching!
Charles Max_Wood:
you don't. Don't, you know, bad
Zach:
Uh
Charles Max_Wood:
idea,
Zach:
huh.
Charles Max_Wood:
right? Because you'll learn something and then from there, now you've got this thing where you can show people and so if your next job really is gonna be Go on the backend and Angular or Vue on the front end, you can go in and you can say, well, I've been working in Angular for the last four years and now I can, you know, and here's my Go project, right? They will care a whole lot less that you haven't been doing Go at work.
Zach:
Yeah, especially if the passion is there. Yeah, and you
Charles Max_Wood:
Yeah.
Zach:
sort of like develop the skills. That was one thing I always appreciated about the Ruby community and, you know, just how kind of like open and welcoming it's intended to be. I mean, not saying
Charles Max_Wood:
Right.
Zach:
that's the same everywhere all the time, but all the way, you know, up to mats and down.
Charles Max_Wood:
Mm-hmm.
Zach:
Whereas some of these other languages, especially ones that run, and I don't mean to start controversy, Linux sort of stuff, you know, or that same
Charles Max_Wood:
Yeah.
Zach:
kind of community. It can be really tough when you don't know what you're doing to go to a forum, ask a question, here I am talking about forums, what year is it, you know, jump on to
Charles Max_Wood:
Ha ha ha!
Zach:
whatever, Twitter, ask
Charles Max_Wood:
Yeah.
Zach:
a question, and be like, well, if you don't know this, you need to go back and read the manual again or whatever. I always appreciated
Charles Max_Wood:
Yep.
Zach:
about the and welcoming to people of all
Charles Max_Wood:
Right.
Zach:
skill levels and backgrounds and all that kind of stuff.
Charles Max_Wood:
Yeah, the only exception I've seen to any of that is that I have seen some people basically be ostracized from parts of the community. And it's
Zach:
Mmm.
Charles Max_Wood:
happened a lot less in Ruby. I've seen it much more in some of the other communities I'm involved in because of their political points of view.
Zach:
Oh
Charles Max_Wood:
And
Zach:
yeah.
Charles Max_Wood:
it's just because of the way that people are acting around that stuff these days. And to be honest, I still don't understand it. I wish that we could all just be like, hey, look, we're a technical community. something with merit, you know, we'll hear it out.
Zach:
Mm-hmm.
Charles Max_Wood:
And if you're not, then we'll point it out, right?
Zach:
Well, yeah.
Charles Max_Wood:
And then we'll work through it. And if you need help getting where wherever you want to go with your career or your learning journey or anything else, then let's help you.
Zach:
Yeah, totally. I totally agree with that. And sometimes you kind of wonder how, you know, those kinds of conversations start in the first place.
Charles Max_Wood:
Right.
Zach:
But then, yeah, you do wish that you could kind of just leave that aside, especially because what
Charles Max_Wood:
It has
Zach:
I've found
Charles Max_Wood:
no bearing
Zach:
is, especially
Charles Max_Wood:
on what we
Zach:
going,
Charles Max_Wood:
do.
Zach:
well, exactly, you know, and going to RubyConf and stuff like that, you strike up, you know, I don't ask people about their political beliefs or anything like that. You're just making friends.
Charles Max_Wood:
Nope.
Zach:
You're talking about programming. kind of thing, but there's a disconnect where it's like on the internet especially, you know,
Charles Max_Wood:
Mm-hmm.
Zach:
where people collect like on Twitter, it's like, I have to make statements, I have to be, you know, you know, that kind of stuff. I have
Charles Max_Wood:
Right.
Zach:
to have good takes to post and stuff like that. Even in
Charles Max_Wood:
Yeah.
Zach:
the programming realms, and it does to me as well seem unnecessary. And it's unfortunate, you know, when people have to either, you know, leave a community
Charles Max_Wood:
Mm-hmm.
Zach:
for silly reasons.
Charles Max_Wood:
Yep. So we've kind of talked our way over to social media,
Zach:
Mm-hmm.
Charles Max_Wood:
and I think this is an interesting area to get into. Now, I don't really want to comment too much on Elon Musk because I think some of the stuff he's done has been fine and some of the stuff he's done has been stupid. But it's been really interesting just to see how many people, for whatever reason, have moved off of Twitter and onto Mastodon. And then it's also been interesting to me, and I'm saying this a little bit tongue in cheek, but it really, I'm seeing a lot of people doing it. is I've seen the people saying they're leaving Twitter and then don't and they go to Mastodon. And so they're doing both.
Zach:
Right, cross-posting and stuff, yeah.
Charles Max_Wood:
Yeah, I mean, I'd been thinking about setting up a Mastodon server for top end devs for a while. And I finally just did it. There's an image you can pull on DigitalOcean and you just deploy it as a droplet and it runs your Mastodon for you.
Zach:
Oh,
Charles Max_Wood:
I need
Zach:
got
Charles Max_Wood:
to figure
Zach:
it,
Charles Max_Wood:
out
Zach:
okay.
Charles Max_Wood:
how to upgrade it though I think, and they're on 4.0 plus.
Zach:
Mm-hmm.
Charles Max_Wood:
Now, so I'd like to upgrade it, but.
Zach:
Yeah, I'll be honest. I know so little about Mastodon, and the recent hubbub has not sparked me to do any research into it or anything. My understanding is that there are individual communities that sort of operate their own server or their own instance
Charles Max_Wood:
Yes.
Zach:
of this thing, and then the instances can talk to each other.
Charles Max_Wood:
Yeah, they federate. You can block other instances, right? So if somebody decides they don't like people, or the administrators on your server,
Zach:
Mm-hmm.
Charles Max_Wood:
they can block those servers and they won't, you know, they won't show up on that server, right? Because
Zach:
Right.
Charles Max_Wood:
I still load Mastodon off of my own server and stuff like that. But
Zach:
Mm-hmm.
Charles Max_Wood:
to be perfectly honest, most people just turn it on and let it fly. And so all you really have to know is which server do I want to be on,
Zach:
Right.
Charles Max_Wood:
right?
Zach:
You have to like pick a
Charles Max_Wood:
And
Zach:
home or whatever.
Charles Max_Wood:
yeah, basically, and then you can post from there. Some of them are somewhat topical. So there's like a web perf.social and a ruby.social and stuff
Zach:
Okay.
Charles Max_Wood:
like that. And so the nice thing about that setup is that like on a ruby.social, you would imagine most of the posts are gonna be Ruby related.
Zach:
Mm.
Charles Max_Wood:
Now I don't think they enforce that,
Zach:
Right. So,
Charles Max_Wood:
right? Cause the admins could, they could enforce it and kick you off for posting non Ruby stuff.
Zach:
Mm-hmm.
Charles Max_Wood:
mastodon instances doing that kind of thing. I've seen mastodon instances that got popular and had to kick people for abusive behavior but that's different.
Zach:
Right.
Charles Max_Wood:
But
Zach:
It's funny the names it's sort of like almost a callback to like IRC stuff, right? Having
Charles Max_Wood:
Yeah.
Zach:
you know your news channel name and stuff like that.
Charles Max_Wood:
Yep. So yeah, so, but then you can look at the local posts is what I was driving at.
Zach:
Mm-hmm,
Charles Max_Wood:
So you
Zach:
okay.
Charles Max_Wood:
can look at federated posts, which is the whole internet, or you can look at local posts.
Zach:
Cut.
Charles Max_Wood:
And so, you know, if your local posts are all topical to whatever the server's about, then you're likely to get a lot of good stuff on that. So,
Zach:
Mm-hmm.
Charles Max_Wood:
you know, for that, I don't know how actively that really pans out on Ruby.social,
Zach:
Yeah.
Charles Max_Wood:
you know, I'm planning on adding accounts for each of our shows and then having those populate off of the RSS feeds and other stuff.
Zach:
Right.
Charles Max_Wood:
But
Zach:
And it almost
Charles Max_Wood:
yeah.
Zach:
like that brings up an interesting, well, at least in my mind, I'm thinking right now. So let's say, you know, you have a digital ocean instance, or you're running your own server
Charles Max_Wood:
Mm-hmm.
Zach:
or whatever. It's almost like trying to take, you know, the big thing with Twitter is like, how are they going to make money? You know, there's, you know, they're
Charles Max_Wood:
Mm-hmm.
Zach:
losing all this money. Are they going to start charging for this and that? The other thing, I guess one way to address having a large scale service that is not monolithic is defraying the cost of people So
Charles Max_Wood:
Right.
Zach:
if you're running your instance and paying 100 bucks a year or whatever, that's a certain number of users that are accessing it through you basically.
Charles Max_Wood:
Mm-hmm.
Zach:
Which is interesting. I've kind of wondered about that in terms of
Charles Max_Wood:
Yeah.
Zach:
what company, especially a social media company, makes money off of their social media or whatever. I was always told, well, if you're not paying for it, then you're the product kind of thing.
Charles Max_Wood:
Right? Yeah. And to a certain extent, that's true. I mean, Facebook, Facebook makes money. They're profitable off of Facebook ads and stuff.
Zach:
Mm-hmm.
Charles Max_Wood:
And it's because companies can make a fair bit of money by advertising products you want to you.
Zach:
Right.
Charles Max_Wood:
And so, um, yeah, that, that works out. One, one thing that's interesting though, about specifically the Twitter slash mastodon debate is, um, so one of the things that Elon Musk has been doing he's been dropping documents from internal Twitter about
Zach:
Mm-hmm.
Charles Max_Wood:
some of the censoring and stuff that they were doing.
Zach:
Yeah.
Charles Max_Wood:
And to the extent that it was just Twitter or Twitter employees doing it, I mean I don't like it, but you know that was completely within the purview of Twitter's right to do what they want.
Zach:
Mm-hmm.
Charles Max_Wood:
But there's been a good amount of evidence come out that Twitter. They were actually directing Twitter on some of the people that they censored and some of the topics that they censored.
Zach:
Uh huh.
Charles Max_Wood:
That's deeply concerning.
Zach:
Yeah, well, you know, we were we were always told that that wasn't happening and wasn't supposed
Charles Max_Wood:
Right.
Zach:
to happen,
Charles Max_Wood:
And
Zach:
right?
Charles Max_Wood:
it turns out that it was happening and that it can, it, I don't think it's continued to happen because I think Twitter for the most part, you know, has quit doing some of that stuff. I think to a certain extent, they have to do some censorship, right? We're not going to let kid porn on here anymore, which was another big, you know, tranche of files. They, you know, stuff like that, you know, I mean, there was some pretty nasty stuff going on there, but, um, if you decentralize it, then if the the server that I'm on decide they don't like my political leanings or the types of things that I am saying, right?
Zach:
Mm-hmm.
Charles Max_Wood:
They, they object morally to it or whatever, and they remove me. The nice thing is, is that I can then go find another home. Right.
Zach:
Right.
Charles Max_Wood:
And so if I'm, you know, and I'm not posting anything that's abusive or whatever, right? And
Zach:
Mm.
Charles Max_Wood:
so if they just decide they don't like me for whatever reason, right. Um, they don't like the way I look or the way I talk or anything, right. kick me off because they own the server and that's totally within their rights.
Zach:
Mm-hmm.
Charles Max_Wood:
But then I can go and I can start my own or run my own or be in my own spot and it'll federate everywhere. Then yeah, the people who don't want to get my stuff can just block me.
Zach:
Right.
Charles Max_Wood:
So I'm not left out in the cold due to political or other things coming in. Government actors have to go now and play on viewpoint censored as opposed to Um, this other stuff, but I, we've kind of gone on a tangent a little bit. I think the main discussion as far as the Ruby community goes is that we're kind of in this weird place where a lot of stuff is still on Twitter, but not everything.
Zach:
Mm-hmm. Mm-hmm.
Charles Max_Wood:
And so it's okay. How do I, you know, how do I use social media the way that I've used it in the past to connect with people and to get help.
Zach:
Yeah, you know what's funny about that is that I've never, and this is, you know, I'm not that old, but sort of like growing up,
Charles Max_Wood:
You look like you're younger than me.
Zach:
so I turned 34 this year. So I was using the internet in the 90s before, you know, late 90s before social media sort of existed, and I just feel like I've never gotten the hang of it. Even when trying to talk to people who share common interests, rubies, or, anything like that. I just never, it always felt to me like I was just talking to myself, you know,
Charles Max_Wood:
Yeah.
Zach:
and it's like, well, I can do that. I do that all the time without posting it on the internet. Maybe I need to take some like classes on how to engage, but you know, with people.
Charles Max_Wood:
It depends on what you want.
Zach:
I feel
Charles Max_Wood:
So
Zach:
like
Charles Max_Wood:
my
Zach:
I've been
Charles Max_Wood:
experience,
Zach:
left behind. Yeah.
Charles Max_Wood:
yeah, so you said you turned 34.
Zach:
Ha ha.
Charles Max_Wood:
So I turned 43 a couple of weeks ago
Zach:
Okay,
Charles Max_Wood:
and
Zach:
well you don't
Charles Max_Wood:
thanks.
Zach:
look it. I would have guessed we would be like right in that same zone.
Charles Max_Wood:
No, I'm 43. But my deal is, so I've been involved in podcasting since 2008, and social media is one of the ways that we get the word out about things and operate. So for us, it's more of a megaphone and less of a way to connect.
Zach:
Mm-hmm.
Charles Max_Wood:
And social media tends to work fairly well that way. The problem that I have connecting, connecting with people over social media is that it's not real time and it's really hard to get a read
Zach:
Mm-hmm.
Charles Max_Wood:
on where people are at right so like if you go look at their timeline and it's all you know I hate you know pick your person Trump Biden
Zach:
Sure.
Charles Max_Wood:
right it's all I hate that guy right
Zach:
Ah.
Charles Max_Wood:
then what you're gonna you know you can kind of get a read on hey you know if they're talking positively say they hate all the time, it's probably sarcasm.
Zach:
Mm-hmm.
Charles Max_Wood:
But I mean, beyond that, it's just really hard to know. And then to get really deep or personal conversations, which is where I wanna be, is
Zach:
Mm-hmm.
Charles Max_Wood:
where are you at? What are you about? What do you care about? How can I help you out? Those happen much more naturally if I'm actually on a call.
Zach:
Mm-hmm.
Charles Max_Wood:
And I've thought about setting up like a Twitter, what are they, Twitter spaces?
Zach:
places. Yeah.
Charles Max_Wood:
and people can basically call in. Like
Zach:
Uh-huh.
Charles Max_Wood:
I would do that, that's helpful. But the rest of those conversations, what I find is that a lot of times, I just wind up in a misunderstanding with somebody and then I have to clear the air on a call anyway, right?
Zach:
Mm-hmm.
Charles Max_Wood:
It's like, oh, you meant that. Oh, well, I meant this. Oh, okay,
Zach:
Right.
Charles Max_Wood:
so what we care about is this thing that it turns out we didn't even realize the other was talking about.
Zach:
Mm-hmm.
Charles Max_Wood:
And so social media is great out there, seeing how people react, letting people know about things that they ought to know about like events or podcast episodes or stuff like that,
Zach:
Yeah.
Charles Max_Wood:
not great for those personal connections. And so that's why I invite people, hey, come get on a coaching call with me. You just have to fill out the coaching application on top end devs, right? And you get a free call, you get a free coaching call.
Zach:
Mm-hmm.
Charles Max_Wood:
But, or things like that, or I'm trying to figure out and just set a time every week or three times every week where I do a Twitter space and just bring people in and talk to them because that's where I feel like that connection is. And so to the extent that you can get that kind of feedback and that kind of positive interaction, that's where I feel like the real power is. And then the next best thing is kind of the Instagram reels, the TikToks, the... you know, things like that where you effectively post a video where you go into more depth, right?
Zach:
Mm-hmm.
Charles Max_Wood:
Because I'm sorry, I'm not the guy that types an essay into Facebook. I just, I don't.
Zach:
Right, yeah.
Charles Max_Wood:
Right? And so, um, occasionally I'll respond to something and I'll give a longer response. But if you get, if you see more than two of those on my Facebook timeline in a year, it's, it's, it's pretty rare. So, but I can, you know, I can sit in front of a video in front of And so
Zach:
Mm-hmm.
Charles Max_Wood:
that's where I feel like the real power in the social media is is hey Let me show you how to do a thing right and so I do a tutorial video or hey Let me talk through this issue that I see on people's resume right and so I can give you a hint about something that may be keeping you from getting interviews or You know stuff like that that that stuff. I'm perfectly good doing but yeah, otherwise, I'm just posting memes because I think they're funny
Zach:
Yeah.
Charles Max_Wood:
and I mostly do that on Facebook because I have people just kind of let it float by if they don't agree with it because some of them are
Zach:
Mm-hmm.
Charles Max_Wood:
political
Zach:
Mm-hmm.
Charles Max_Wood:
let's face it I think they're funny and so I post them but yeah
Zach:
Thanks for watching!
Charles Max_Wood:
then people react and I ignore them
Zach:
Yeah, that's the biggest thing, right? Cause it, and you feel like you need to respond to the response and cause sometimes
Charles Max_Wood:
Not
Zach:
it's
Charles Max_Wood:
anymore.
Zach:
hard to just set down
Charles Max_Wood:
It
Zach:
the
Charles Max_Wood:
doesn't
Zach:
mouse.
Charles Max_Wood:
do any good. They
Zach:
Yeah.
Charles Max_Wood:
get mad. I respond. They get mad again. I respond. Nobody's minds changed. They just hate
Zach:
Mm-hmm.
Charles Max_Wood:
me now. What's the point?
Zach:
Well, exactly, yeah. And it's sort of the same thing with like, I mean, I've never used TikTok. I'm scared of it. I don't think I ever will. It just seems like one of those things where I find it hard enough, YouTube managed to hook me in a couple of times, like showing me streams of their shorts or whatever. And it's like,
Charles Max_Wood:
Right.
Zach:
I cannot be trusted with something like this. I would
Charles Max_Wood:
Yeah.
Zach:
lose so much time and...
Charles Max_Wood:
Yeah. And see my approach to it is, and I'm just getting into it now. Right. Um, you know, I, I, we have social media accounts where we post like images with links to the episodes and stuff, but I'm just getting into it now where I'm going to start putting up reels and they're just going to be, uh, clips out of the, uh, catapult your code career
Zach:
Mm.
Charles Max_Wood:
podcasts that I'm launching at the beginning of next year. So like next week,
Zach:
Nice.
Charles Max_Wood:
um, I actually have a contest up work, but on 99 designs. But anyway, so it's just going to be clips and it's just going to be, hey, if you're doing this on your resume, blah, blah, blah, right? Or, you know, so-and-so said that they kept getting interviews and they weren't getting offers, right? And so we did a mock interview and it turned out they were doing this one thing, right? And so I can talk about that for 30 seconds. I can post it as a reel. So I'll just have my editor clip that, you know, and then just stick it on my phone and push it to Instagram, TikTok, Facebook, Twitter, and YouTube as
Zach:
Mm-hmm.
Charles Max_Wood:
a short and just kind of make that go. And like the Instagram and TikTok, they want kind of the portrait phone orientation. I think YouTube shorts, they don't.
Zach:
Right.
Charles Max_Wood:
And so they'll just edit them to the right size and
Zach:
Uh huh.
Charles Max_Wood:
make it all good to go. And then I can just download it to my phone and then push it up. Facebook reels and Instagram reels you have to do from a mobile device, a phone or a tablet.
Zach:
Yeah, that's funny. I had that experience recently with someone taking a group picture. And you know, it's just the silly thing of like, we'll just, you know, turn the phone to landscape mode. And they're like, well, no, because it wouldn't look as good on Instagram or whatever.
Charles Max_Wood:
That's right.
Zach:
So
Charles Max_Wood:
Yep.
Zach:
we have to fit into the horizontal or the vertical frame rather. So I thought that
Charles Max_Wood:
Yep.
Zach:
was funny.
Charles Max_Wood:
Yeah, I've done plenty of cleanup that way. I've also, I use Canva pretty heavily.
Zach:
Right.
Charles Max_Wood:
And by I, I mean my team uses Canva pretty heavily.
Zach:
Mm-hmm.
Charles Max_Wood:
So they, you know, all of the, like with the album art and the host picture and stuff, that all goes into a template in Canva and then they post it. And so Canva will resize stuff to the right size for you,
Zach:
Oh,
Charles Max_Wood:
for
Zach:
that's
Charles Max_Wood:
the
Zach:
good.
Charles Max_Wood:
images.
Zach:
Yeah.
Charles Max_Wood:
And that's pretty nice. And you can add text and all the fun stuff to it.
Zach:
Yeah, I've heard a lot about that, but I haven't. I haven't tried it before.
Charles Max_Wood:
I think they have a free tier, so you might be able to get in and try it without having to pay for it.
Zach:
need to start making some banners or flyers or something like
Charles Max_Wood:
Yeah.
Zach:
that. Do you remember way back in the day where like not just sort of the nostalgia for like coding up your HTML, you know, web page or whatever, but also just everyone kind of sucked at designs.
Charles Max_Wood:
Mm-hmm.
Zach:
So it's like it was it was very democratic in the way that you could knock something up and like paint or whatever. And,
Charles Max_Wood:
Right.
Zach:
you know, since everybody was kind of on the same level, feel the same way about video games too, but you know, I kind of, I kind of miss that because people do get really hyper specifically good at, you know, Instagram stuff or, or,
Charles Max_Wood:
Mm-hmm.
Zach:
you know, all this kind of stuff. And it's like, man, anything I'm going to make, it's just going to look terrible in comparison. But
Charles Max_Wood:
Yeah. Well, and that's, I don't know. I mean, some of the stuff I wind up doing myself and some of the stuff I hand off to somebody else, right?
Zach:
Yeah.
Charles Max_Wood:
And it just depends on what level you want to operate at. But yeah, I see people and they post this amazing looking stuff to Instagram and I'm pretty sure they cleaned it up on their own.
Zach:
Mm-hmm. Yeah. Well, we can,
Charles Max_Wood:
but.
Zach:
you know, we can bring that full circle back to code too. I run into that problem a lot where, you know, you mentioned imposter syndrome when you're talking about something before. That and just generally just having like, it's like, man, this guy is so much better than me at this and my friend is so much better than me at that. And it's sort of like this negative inertia where you just never get started because you
Charles Max_Wood:
Yeah.
Zach:
sort of like sabotage yourself. Of course, I never learned the lesson, basically like if you don't do it and learn and ask questions you're always gonna everything you do
Charles Max_Wood:
Yeah.
Zach:
is gonna be exactly like that it's like of course you're not as good at coding as the person who's been doing it for 20 years you know that's it's experience
Charles Max_Wood:
Yeah.
Zach:
based and it's pattern recognition but i still
Charles Max_Wood:
No, it's so true. So true. And I tell people to start ugly all the time.
Zach:
Mm-hmm. That being said, in terms of stuff I'd like to try in the near future, besides going back to update that little music gem that I made, I recently saw, and I'm sure you've heard of it, it's probably been around for a long time, but I don't get that much coding news. Have you ever tried or seen F sharp, which is functional running in like.NET?
Charles Max_Wood:
Yep.
Zach:
at work or at home or anything like that, but I was looking at F sharp and I thought that looked kind of fun to
Charles Max_Wood:
Yep.
Zach:
try to mess around with.
Charles Max_Wood:
Yeah, it's some cool stuff. I haven't done a ton with it. My experience mostly comes down to, so pre-COVID, Microsoft was putting on in-person conferences, big ones,
Zach:
Mm-hmm.
Charles Max_Wood:
right? They had Microsoft Build, Microsoft Ignite, Microsoft Connect. And I got to be friends with the guys that were organizing the, hey, we're gonna bring podcasters out to interview people.
Zach:
Thanks.
Charles Max_Wood:
I got exposed to a whole bunch of the Microsoft ecosystem. It's cool looking stuff for sure. It's definitely not anywhere on my to do or to learn list where I'm
Zach:
Right.
Charles Max_Wood:
ever gonna get to it. But yeah.
Zach:
That and what's the other thing they have it's like dotnet Maui where you can you can
Charles Max_Wood:
Mm-hmm.
Zach:
multi-deploy like iOS Android
Charles Max_Wood:
Yep.
Zach:
Windows I guess there's no Windows phone anymore, but
Charles Max_Wood:
Yeah, it came, a lot of that came out of Xamarin. They acquired
Zach:
Okay.
Charles Max_Wood:
Xamarin
Zach:
Oh
Charles Max_Wood:
and Xamarin
Zach:
right, and they were
Charles Max_Wood:
had
Zach:
already
Charles Max_Wood:
all
Zach:
doing...
Charles Max_Wood:
of that running on Mono and Mono was also maintained by Xamarin. And so when Microsoft acquired Xamarin, they basically made Mono like, they merged it with.NET Core and open sourced the whole thing.
Zach:
Nice. It seems like they've
Charles Max_Wood:
So, yeah.
Zach:
made some cool decisions in the last, what, like five years or so, Microsoft, in terms of
Charles Max_Wood:
Yeah,
Zach:
kind of charting
Charles Max_Wood:
so...
Zach:
a direction, getting into open source, that kind of thing.
Charles Max_Wood:
Yeah, they hired Satya Nadella as
Zach:
Mm-hmm.
Charles Max_Wood:
the CEO, and he pushed through a whole bunch of open source initiatives. It's been really cool, and I think Microsoft has benefited greatly from it as well.
Zach:
And for them that's more of like a community building kind of thing,
Charles Max_Wood:
Mm-hmm.
Zach:
right? Because whatever money
Charles Max_Wood:
Yeah.
Zach:
they're spending on doing that development is just to bring, just to get people to positively associate with with Microsoft
Charles Max_Wood:
Yeah.
Zach:
and that kind of thing.
Charles Max_Wood:
Yeah. And that was one of the big strides that they made was that a lot of people were kind of turned off by the windows only closed source, do it our way or no way type of work. And a lot of, so in a past life, like 20 years ago, I worked for Brigham Young University. I worked in their operation center and then as a sys admin while I was finishing my degree there. Yeah, a lot of the stuff that they had there, they were just kind of locked into Windows for whatever services they were running on it. And yeah, it was expensive and it was painful. And so they alleviated a lot of that and also allowed a lot of it to move to Linux and stuff, and still be.NET.
Zach:
Mm-hmm.
Charles Max_Wood:
And then just having that compatibility with Active Directory and Windows saved that. lot of people back to Windows because it was, hey, there's pain here, but I have options, right? They're not trying to lock me into this.
Zach:
Exactly, yeah. And if you can work on that while maintaining your Linux chops or whatever, if you're working in systems and that kind of thing, then even if
Charles Max_Wood:
Yeah.
Zach:
you don't necessarily want to work with Microsoft products, you can at least do both as opposed to, I can only do Microsoft
Charles Max_Wood:
Right.
Zach:
at work or whatever. But yeah, I'll be honest, I really love coding and stuff like that, accident because I'm actually pretty computer illiterate in terms
Charles Max_Wood:
Mm-hmm.
Zach:
of like IT stuff. I, you know, even at work it's like I'm the guy who's like, this, you know, this button doesn't work or whatever, you know, or I can't get this setting to change or that kind of stuff because
Charles Max_Wood:
Right.
Zach:
I sometimes I feel, you know, like a meme almost because I know so so little about operating systems and that kind of stuff where it's just like, That should just work for me so I can write code as opposed to, you know, learning the whole system top to bottom.
Charles Max_Wood:
Yep. So I have one other area that I'd like to discuss with you, and I think we're
Zach:
Sure.
Charles Max_Wood:
going to move into PICS. And this is also just talking about kind of the directions that people, that the technologies go in and, you know, adoption and things like that, because Microsoft did that fairly well. I worry that Ruby isn't doing this in some areas that I think are growing and changing. And I worry that I don't know where that leaves us, right? AI, blockchain, machine learning. There's one other area I was looking at. I think IoT has kind of dropped off its radar and I think IoT
Zach:
Yeah.
Charles Max_Wood:
is going to be another big area. And so I'm wondering, you know, where do we go from here as far as that stuff goes? Like I found, just doing a quick Google search right now, I found this data science with Ruby, but basically what it is, is it's got stuff so that
Zach:
Yeah.
Charles Max_Wood:
you can run your crap, write your stuff in Ruby, and then run it in
Zach:
through the Python
Charles Max_Wood:
Python.
Zach:
libraries. Yeah,
Charles Max_Wood:
Yeah.
Zach:
that's an interesting
Charles Max_Wood:
So
Zach:
way to do it.
Charles Max_Wood:
I don't know. I feel like this is one area.
Zach:
you
Charles Max_Wood:
Everybody got really wrapped up around concurrency for a while, and I think that
Zach:
Mm-hmm.
Charles Max_Wood:
was an important step forward to build in some allowance for that. and data science areas in particular.
Zach:
Yeah, yeah.
Charles Max_Wood:
Maybe blockchain is another one that's kind of math heavy. So, a lot of people do that in Python as well.
Zach:
And it seems like, at least from my experience, and so, you know, I got my first job in Ruby and with Rails in 2011. And so it really hasn't been, you know, that long. I mean, you know, Ruby was really on the, and Rails was really on the upswing then. But to me, it always seems like it's been very much community driven, and there were a lot of big personalities that also happened to be like really good generating an audience, getting people involved and that kind of thing. And then maybe these days, a lot of those people now having moved further in their careers or having other interests and stuff like that, of course, there's always people trying to do stuff, but maybe it would be a good idea for the core group to kind of like create these initiatives then, because yeah, as much as maybe it's not fair, And maybe you might disagree. I feel like programming especially, like modern stuff is very, not fad, but trend driven.
Charles Max_Wood:
Mm-hmm.
Zach:
And having like a really nice data science library for Ruby that could compete with, you know, MATLAB or
Charles Max_Wood:
Right.
Zach:
whatever it is in Python would be a huge boon to the community. But unless you have like that champion the community at large,
Charles Max_Wood:
Right.
Zach:
it would almost be nice for... Now, I forget, is Heroku still kind of like, I don't know, involved with the core team of Ruby
Charles Max_Wood:
Yeah.
Zach:
development?
Charles Max_Wood:
Yeah.
Zach:
I
Charles Max_Wood:
I
Zach:
haven't...
Charles Max_Wood:
think Matt still works for Heroku slash Salesforce.
Zach:
It would, and that might be a path forward, you know, just be like, these are a couple initiatives, it's gonna bring in a lot of support. And then once you get those people into the community, then they can help with open source. But yeah, man, especially seeing how the internet, I was about to use a phrase that I, you know, you use buzzwords and it bothers me when I do it, but it made the internet blow up with, you know, the chat bots, the latest like
Charles Max_Wood:
Yeah,
Zach:
GPT
Charles Max_Wood:
the chat GPT.
Zach:
stuff.
Charles Max_Wood:
Yeah.
Zach:
I mean, people love that. that would be a great draw if you had a library that, even if it was through extensions to C or whatever, you could add that to your Ruby projects. That would be, I think, a big draw and something really cool to play with. But
Charles Max_Wood:
Yeah.
Zach:
without the big community sort of like driving personalities, it maybe is a little harder to get those things off the ground than it might've been five or 10 years ago. go.
Charles Max_Wood:
Yep.
Zach:
But yeah, I haven't tried it. But apparently, some of those programs can write code for you, which I've seen screenshots. You never know if screenshots are. But apparently, one of these things can like you can tell it what you generally want to build. And it can make it and then talk you through what each part does or something like that, which sounds pretty cool to at least to play with or whatever. But I don't know. for the future of ML or programming jobs or whatever.
Charles Max_Wood:
Cool. Yeah. I just, you know, with Heroku, that was another thing. I, I just had to log in cause I had a. I have the, I'm using the Ruby, Ruby central CFP app
Zach:
Mm.
Charles Max_Wood:
for the online conferences and I got on and realized that it was down and they, uh, it looks like they deleted my database because they got rid of the free plan for the database. And
Zach:
Oh no.
Charles Max_Wood:
so,
Zach:
That's the best strategy,
Charles Max_Wood:
um.
Zach:
right? Just nuke it. Nuke them all.
Charles Max_Wood:
Well, I logged in and there was a big warning flag on there, so it's probably been that way for a little while, but...
Zach:
Oh yeah.
Charles Max_Wood:
Um, I've kind of attempted to just move it off onto a DigitalOcean setup and...
Zach:
Yeah, I
Charles Max_Wood:
Then
Zach:
know
Charles Max_Wood:
I don't have to worry about it.
Zach:
they work with a lot of languages, but I've loved using Heroku when I have in the past where they're just
Charles Max_Wood:
Yeah,
Zach:
like.
Charles Max_Wood:
it's definitely super easy, so.
Zach:
I mentioned that like stuff, you know, the more computer side of stuff. I mean, I've set up web servers running just like on EC2 or whatever.
Charles Max_Wood:
Uh-huh.
Zach:
But it's always like pulling teeth for me, you know, getting the like NGINX set up and then making sure the data, everything's running properly and talking to each other and stuff like that.
Charles Max_Wood:
Yeah.
Zach:
I even got to use Heroku like work wise once, which was great because, you know, the money for more dinos and stuff like that was part of the expenditures. And it was really nice to use that because you could just pop in, see if there was anything wrong. We got to spin a couple of extra dinos up or database connections or whatever. Really nice service.
Charles Max_Wood:
Yeah, I mean that's one thing that I've really liked with what I've done on them. I mean they used to be free to a certain degree, a certain extent, but it's nice because I don't have
Zach:
you
Charles Max_Wood:
to go fuss with all the ops stuff, right? It just mostly
Zach:
Yeah.
Charles Max_Wood:
runs. So. Anyway...
Zach:
Yeah, definitely not much of a DevOps person. Once again, I know I could learn it. I would have to sit down and
Charles Max_Wood:
Yeah.
Zach:
be astute and learn the stuff that I don't know. But of course, it's much easier to just say, oh, I don't understand that or whatever.
Charles Max_Wood:
Yeah, there's
Zach:
Don't
Charles Max_Wood:
a
Zach:
do
Charles Max_Wood:
lot
Zach:
that.
Charles Max_Wood:
of that. So I got my start in my technology career working in a data center.
Zach:
Mm-hmm.
Charles Max_Wood:
And so, you know, I had to learn how to SSH into the machines and, you know, work on the command lines. And some of them were using bash and some were using fish and some were using K shell and Z shell.
Zach:
Mm-hmm.
Charles Max_Wood:
And so, you know, I'm fairly proficient with a lot of the command line tools and with the,
Zach:
you
Charles Max_Wood:
with a lot of the ops and DevOps stuff just by nature of doing that and then being a sysadmin
Zach:
Yeah.
Charles Max_Wood:
you know in various capacities
Zach:
Yeah.
Charles Max_Wood:
and so it's not something that I've ever shied away from but I will tell you that it is something that has always served me well moving from job to job because I can easily navigate through and set up whatever it is that we need right
Zach:
Right.
Charles Max_Wood:
and in a lot of the places I work I wasn't the ops guy right I wasn't setting up the servers and stuff.
Zach:
Mm-hmm.
Charles Max_Wood:
But if we needed a CI-CD server, I could throw together a Jenkins server that lived in our office pretty easily. And I
Zach:
Right.
Charles Max_Wood:
could, you know, I could set up a staging environment pretty easily. You know, I have to say I've neglected some of the Kubernetes and stuff like that at this point, but that's something that I plan on learning and teaching
Zach:
Yeah.
Charles Max_Wood:
in top-end devs. And you know, skills, they will enable you to do all kinds of things for
Zach:
you
Charles Max_Wood:
the projects you're working on, whether they're personal or not. If you can do those things, you become infinitely more valuable to the team because you
Zach:
Mm-hmm.
Charles Max_Wood:
can explain to them what's going on and you can create resources for them that they can't create themselves.
Zach:
Yeah, very good points all around. Yeah, and become like one of the people that, one of the
Charles Max_Wood:
Yeah.
Zach:
people that other people go to to get problems solved and that kind of thing.
Charles Max_Wood:
Right?
Zach:
Definitely.
Charles Max_Wood:
I, the other, the other areas like this that you can go into, because if, if ops isn't your thing, don't do it. Right. But you should do something. So it could be, you know, Visual Studio code inside, outside, backward, forward and sideways, right?
Zach:
Mm-hmm.
Charles Max_Wood:
And so you can help somebody get it set up and run the way you want. Maybe you don't want to learn Kubernetes, but you can get your head around a Docker compose file and set up local running, or, you know, you get to the better than anybody on the planet. You know,
Zach:
Right.
Charles Max_Wood:
just those kinds of things because then it's, I'm trying to do this thing and I just can't figure it out. Oh, well your database does it. Here's how you put it together. Right?
Zach:
Mm-hmm.
Charles Max_Wood:
And so anyway, that, that, I'll give advice all day, but
Zach:
Sure, yeah. No, I mean, it's
Charles Max_Wood:
yeah.
Zach:
good advice, especially for people who are, you know, in the career hunt or thinking about
Charles Max_Wood:
Mm-hmm.
Zach:
stuff in the future,
Charles Max_Wood:
Yeah.
Zach:
what they want to do, you know, in a year or two years or five years or whatever.
Charles Max_Wood:
Yep.
Zach:
I mean, that's very solid advice.
Charles Max_Wood:
Yep. All right, well, we've been talking for over an hour, so I'm gonna go ahead and roll this out. I got a guy at work that wants to chat at 1.30, so we
Zach:
Okay,
Charles Max_Wood:
gotta start
Zach:
yeah,
Charles Max_Wood:
wrapping
Zach:
sure.
Charles Max_Wood:
up. But yeah, it was a good deal. One thing that we added to the shows, or at least the shows that I'm on,
Zach:
Mm-hmm.
Charles Max_Wood:
so Adventures in Angular, Lucas wanted to, I was doing self-promo with some of my
Zach:
you
Charles Max_Wood:
picks, and he was like, can I do that too? And he's like, why don't we make it a segment? So this we did. hey, here's what I'm working on, right? So topendevs.com, we're still doing the book club. Bob Martin's been coming to those. So if you like Uncle Bob, you wanna hear from him about clean architecture, we're doing that through the end of January, and then we're gonna move into some other book. I'm still figuring that out. The one that I got requests for from all the other folks that have been doing the book club call And so we might do that. I haven't been able to get a hold of Eric, so I don't know if he will be on those calls, but we can still read them and talk about them.
Zach:
Nice.
Charles Max_Wood:
And the only reason I hesitate there is because it's another architecture book, and I might want to space it out. So we'll see. But, you know, we might do something else. Well, yeah. The other one that I'm kind of leaning toward, and I know Bruce, and so he might be willing to come do it, is seven languages in seven weeks. fun. And so we just talk through, you know, we do the different languages every week.
Zach:
Mm-hmm.
Charles Max_Wood:
But yeah, we'll see. And then I'm putting together the meetups for next month. And then I was also putting together careers, virtual conference for next month. But I think I'm going to slide that back because the CFP thing isn't working. And I don't have all my speakers lined up, I was going to go in and start picking them. And I was like, this suckers down and no
Zach:
Yeah.
Charles Max_Wood:
Anyway, but yeah, that's the stuff I've got going on. And yeah, the other thing is, is if you want to get my resume, you can go to topendevs.com slash resume, and it'll email you a copy and then send you a couple of emails that explain pieces of it. And then I'm gonna be getting my, like I said, catapulting your code career podcast and course up over the course of the next few weeks. So keep an eye out for that.
Zach:
Nice.
Charles Max_Wood:
What are you working on, Zach? What should people know about the year working on?
Zach:
Oh, before that, I just wanted to comment. It sounds like you have, I mean, this whole operation is so slick. Sounds like you're just constantly, you know, on it.
Charles Max_Wood:
It keeps me busy, that's for dang
Zach:
Kudos
Charles Max_Wood:
sure, but
Zach:
to you, yeah.
Charles Max_Wood:
I feel
Zach:
I imagine
Charles Max_Wood:
like I'm helping
Zach:
you're
Charles Max_Wood:
people.
Zach:
probably,
Charles Max_Wood:
That's what matters.
Zach:
well yeah, yeah that's good. I imagine you're probably working more than the usual 40 per week with all the stuff you have going on.
Charles Max_Wood:
Yeah. I mean, some of that's just down to, I've got this contract that I've been working, um, to, to make up since I just launched the products a month ago. And so, um, yeah, but I'm hoping to get to the point where I can just work on the stuff that's going to help people get the career and lifestyle they want and not have to go, you know, hawk hours for money.
Zach:
Yeah, I had a guy who I worked with some years ago and that was his whole big thing. He's like, as long as you're just trading your time for money, you know, some people are fine doing that, but
Charles Max_Wood:
Mm-hmm.
Zach:
otherwise you got to figure out some way to, you know, move beyond that in terms of what you're doing on a day-to-day basis.
Charles Max_Wood:
Yeah, that's sound business advice, but for me, I have to be doing something that I firmly believe is doing good
Zach:
Mm-hmm.
Charles Max_Wood:
in the world, and this is it for me.
Zach:
Honestly, yeah, I mean with all the stuff that you guys offer it really seems like you're doing it
Charles Max_Wood:
Thanks.
Zach:
Yeah, I don't, I mean besides my little personal projects, I was wondering if I could just, I read through this book about once a year
Charles Max_Wood:
Uh huh.
Zach:
and my son tore the cover off so it just looks like pages, but the book is called Micro-Surf's. Have you ever read it? M-I-C-R-O-S-E-R-F-S and it's by an author named Douglas Copeland and since we were talking about And basically, like, if you have nostalgia for the 90s, or if you never experienced the 90s in terms of software and stuff like that, this book is a fictional book set amongst Microsoft employees in the 90s. And it's jam packed full of references to how, you know, stuff of the time. Still talking about floppy disks and talking about, you know, that kind of
Charles Max_Wood:
hahahaha
Zach:
stuff. The characters have conversations about what the internet's gonna mean for everyone. And it gets like pretty metaphysical but highly recommend reading it. Microsurfs is the name of the book. It's been out for a really long time, but
Charles Max_Wood:
Right.
Zach:
like I said, I go back and read it about once a year. I have like five books that I read, and I just read them over and over again. So that's like the one sort of like technology tangential thing that I'm doing right now, besides you know my little hobby typing and stuff like that.
Charles Max_Wood:
Awesome. All right, well, you've kind of veered us into picks, which is awesome. So I'll just throw out some picks myself.
Zach:
Sure.
Charles Max_Wood:
So I'm gonna pick, I always pick a board game
Zach:
Nice.
Charles Max_Wood:
as one of my picks or a card game. My daughter got a card game called Uno All Wilds.
Zach:
Okay.
Charles Max_Wood:
So if you've played Uno, it's basically
Zach:
Uh.
Charles Max_Wood:
Uno, except every card is a wild, right? So you can never not play,
Zach:
Right,
Charles Max_Wood:
but
Zach:
okay.
Charles Max_Wood:
it's, how do I put it? They have like draw twos and stuff that are the wilds, right?
Zach:
Mm-hmm.
Charles Max_Wood:
So, you know, so you can skip and reverse and draw two and all that stuff. Looking it up on BoardGameGeek, because I always tell people what the score is. So, Uno All Wilds has a weight of one. So that's one out of five, meaning that it's pretty simple.
Zach:
Okay.
Charles Max_Wood:
I don't think I've seen anything less than one.
Zach:
you
Charles Max_Wood:
So
Zach:
And that's a rating
Charles Max_Wood:
anyway,
Zach:
of complexity.
Charles Max_Wood:
yeah, it's the complexity rating. So I've picked other games on here that are four plus, right?
Zach:
Oh.
Charles Max_Wood:
going on in that game right and it's gonna take you a while to play it I mean
Zach:
You need
Charles Max_Wood:
those
Zach:
to have
Charles Max_Wood:
are
Zach:
your
Charles Max_Wood:
fun
Zach:
lower manual.
Charles Max_Wood:
games you know those those are super fun games but those are the games you have to play through twice just to say oh the first time we played it we did this wrong and the second time we played it we did this other thing wrong
Zach:
Mm-hmm.
Charles Max_Wood:
so uno all wilds I'm going to pick that as a board game and then I'm trying to think what else I'm going to pick. So... I did join a group and this is for entrepreneurs. And I'm looking at putting together an entrepreneurial, I really wanna do an entrepreneurial like code, coders that do entrepreneurial stuff, right? Whether it's courses or freelancing or running a SaaS business or something.
Zach:
Mm-hmm.
Charles Max_Wood:
But yeah, the group that I'm in that talks a lot about this stuff is called Total Life Freedom. And it's run by a guy I've known years, his name's Vincent. And they just do calls like we do for top end devs, where we have two calls every week for members and then the book club and the other meetups we do. Um, but in he's the one that I've patterned my membership off of. But if you're looking at getting into, um, into entrepreneurship, his group's awesome and he also has a book. I had to just get him on one of the shows and just talk through his book. But, uh, anyway, um, I'm going to pick total life freedom because it's just it's been great and I know he has room for more people to join over there so anyway I'm going to pick that and then The last pick that I have, I've been using DigitalOcean for a really long time, and I really like their setup. I have to say that I ran things on their app platform, and eventually it just turned out to be too much of a hassle, so I just moved it on to its own server.
Zach:
Mm.
Charles Max_Wood:
But their stuff is pretty easy to use, and so I'm gonna pick DigitalOcean. Do you have anything else you want to pick, Zach? Besides the book?
Zach:
Uh, mentioned my book here. Um, what else have I been doing? Mostly just, uh, life stuff really in the last couple of weeks and traveling
Charles Max_Wood:
Yeah.
Zach:
a lot for the holidays and stuff like that.
Charles Max_Wood:
Yeah.
Zach:
Um, one thing I picked up recently and it's really short, um, but a game I played on the Switch and it's been out for a while now. But here I'll type it in, um, to the thing. It's a game made by an indie developer. Um, called Macbat 64. I think a number of years ago now, but he also released it on Switch and especially if you like Banjo-Kazooie or like that throwback kind of N64 collect-a-thon
Charles Max_Wood:
Uh huh.
Zach:
gameplay The whole game only takes like maybe an hour to play through so it's perfect if you have no time at all but it's just super cute and and really well done and probably the game of the few that I've picked up this year that I could say like I enjoyed that from beginning to end. And you know, that doesn't happen all that often. So those two things. And the other thing I've been doing recently, I found myself in a slump in terms of exercise. Normally I'm running more, but this has been, you know, cold and it's dark outside and stuff, which shout out to the winter solstice. We're on the upswing now, but I've been trying
Charles Max_Wood:
Yeah,
Zach:
to just go for
Charles Max_Wood:
more
Zach:
longer
Charles Max_Wood:
light.
Zach:
walks. Yeah. to less of a chance of getting hit by a car than if you run or bike at night or whatever. And the other thing I try to do is make it sort of like a little bit more meditative. So I don't bring music or podcasts or anything with me. It's just like the sounds of whatever you're near and your own thoughts
Charles Max_Wood:
Mm-hmm.
Zach:
and trying to do like 30 to 60 minutes during the day just to try to get some of kind of stuff. So walking I guess would be my third pick. There you
Charles Max_Wood:
Awesome.
Zach:
go.
Charles Max_Wood:
Yeah, I've been getting into some of that myself, but I'll talk about, I'll do that in picks next week, I'll pick the stuff that I'm doing to train for an Ironman.
Zach:
Oh, you're training for Iron Man.
Charles Max_Wood:
Yeah.
Zach:
Ah, how's it going?
Charles Max_Wood:
All right.
Zach:
I mean, well.
Charles Max_Wood:
Yeah, I mean, I just got back into it, so I'm mostly tired and sore, but
Zach:
Yeah,
Charles Max_Wood:
that's kind
Zach:
well,
Charles Max_Wood:
of the way it always starts, so.
Zach:
I see we're running up against the time. Well, best of luck with the training, man. I hope it goes well.
Charles Max_Wood:
Yep. Yep, me too. But mostly I'm just trying not to get injured before I have to race.
Zach:
I hear that that's like one of the big things with the endurance
Charles Max_Wood:
Yep.
Zach:
stuff is just like trying to stay healthy before you
Charles Max_Wood:
Yep.
Zach:
actually get to the competition.
Charles Max_Wood:
Yep. Yep. So anyway, we're gonna have to wrap it up here because I'm
Zach:
Sure.
Charles Max_Wood:
at a hard stop, but thanks
Zach:
Yep.
Charles Max_Wood:
for coming, Zach.
Zach:
I really appreciate the opportunity. It's always fun. And it was a great conversation today and happy to come back again in the future if you need to shoot the bull with someone.
Charles Max_Wood:
All right, sounds good. We'll
Zach:
All right, thanks.
Charles Max_Wood:
talk to y'all later. Until next time, Max out.
Zach:
Bye.