Charles Max_Wood:
Hey, welcome to another episode of the Ruby Rogues Podcast. This week on our panel we have John Epperson. We also have Dave Kimura.
Dave_Kimura
Hey everyone.
Charles Max_Wood:
And I'm Charles Max Wood from Top End Devs. And this week we're gonna talk a little bit about, actually Dave, you brought this up. Do you wanna just kinda give us an intro here?
Dave_Kimura
Yeah, sure. So in recent news, you may have heard that Heroku has stopped offering their free tier for hosting. And I think that affects a lot of people in a lot of different ways from the junior developer or just someone who is really trying to get their resume together. And they want to have live sites so that a potential employer can go and look at their resume and see their application that they've built to see if it's potentially applicable to that job. But then you also have just the small time hobby projects where someone maybe isn't generating any revenue for a project, but they want to have access to this application most of the time. And so with the free tier going away, you have a lot of these potential user cases that are now left without a solution or are they left without a solution. So what are some of the alternatives out there that gives a Heroku platform as a service field?
Charles Max_Wood:
Yeah, it's interesting because I initially looked at some of this and I think I saw some people in the JavaScript community kind of pushing people to go to Netlify or Versel or something like that. But those don't really, like if you're running a dynamic backend like Sinatra or Rails or something like that, they really aren't options, right? If you're running a Jekyll site, then yeah, you can do that or GitHub pages or something. For the rest of it, I think there are some interesting options and I haven't tried them all. I don't know what all the options are. But yeah, I figured we can just jump in and talk and see what's out there. I'm curious what options you all have used and played with. I know of a couple, but yeah.
Dave_Kimura
So I have tried out render which is a recent product that
Charles Max_Wood:
Mm-hmm.
Dave_Kimura
of that look and feel of Heroku without some of the features, which I'm sure they'll come down the road, like the plugins being able to just quickly add in a feature or some kind of service that you need. So they seem to be pretty good. I've tried around with Digital Ocean App Platform. I was actually going to partner with them and do an episode training on deploying a application to App Platform, but I did run into a lot of issues where you were using ES build instead of Webpacker. And because of that, their build packs weren't set up correctly to handle those. And I've been checking their documentation periodically and haven't seen any updates that it's now fixed. So I have to give them another shot, but as of right now, I wouldn't recommend solution. You're not going to get a free tier with them, really.
Charles Max_Wood:
Yeah, I think their free tier is for like static sites and stuff.
Dave_Kimura
Mm-hmm.
Charles Max_Wood:
It's, it's fairly limited. I was using their app platform set up for top end devs when I first kicked it off. And it was, they sponsored, you know, the, the shows and, um, you know, and, and wanted to, and it looked great. So I tried it and I ran it for a while. And then after a while, um, top end devs just started dropping out randomly. and I couldn't figure out why, so I moved it over to a VPS and haven't had any problems with it since, but yeah, you know, you can get a VPS on DigitalOcean for a few dollars a month. So I know that's not free, but that will work for you. I'm not sure. Yeah, we should. What is the deal with render? Do you know as far as like what it will and won't do?
Dave_Kimura
I don't know about the limitations of its capabilities, but I have deployed sample applications. I actually recorded a Drifter Ruby episode. I think it's under the Pro Plans, so
Charles Max_Wood:
Mm-hmm.
Dave_Kimura
it's not a free one. But it was a pretty good experience, honestly. I didn't have any issues with it, and it seemed to be a good solution. Another one that I haven't tried out yet that seems to be a new up-and-comer, just like render, is fly.io. I think that's
Charles Max_Wood:
Uh
Dave_Kimura
the name
Charles Max_Wood:
huh.
Dave_Kimura
of it.
Charles Max_Wood:
Yep. I know some people at fly.io, but again, I haven't really looked. I'm looking at their free tier and it looks like, um, it's got, it'll get spun down after 15 minutes of inactivity. Uh, you're limited to 750 hours of free running time per month. And that's across all free web services in the account. Um, and then yeah, there are some other things here. they can restart at any time. You can't scale beyond a single instance. Yeah, it's fine if you have kind of a portfolio app that you're not expecting heavy usage on, yeah. No persistent disks, no web shell access, reserved ports, 400 free build hours per month shared with static sites. So yeah, I mean, if you're just looking for something and they have free PostgresQL.
Dave_Kimura
And that's on render, correct?
Charles Max_Wood:
That's on render.
Dave_Kimura
Yep.
Charles Max_Wood:
So it looks like, yeah, if you're just trying to put something out there so somebody can come and see what you put together and what the functionality is, and they can play with it, and you're not trying to monetize it or, you know, see any kind of heavy usage, yeah, it looks like this is an option that you can use. But yeah, it looks like all of the limits are account-wide. So if you have a wide range of portfolio apps, then I could see that you might suck up that 750 hours, but I would imagine you'd have to have a bunch of them or have
Dave_Kimura
Yeah.
Charles Max_Wood:
something that people are hitting fairly frequently.
Dave_Kimura
which I would think that they would not get hit too frequently if
Charles Max_Wood:
Yeah.
Dave_Kimura
it is a resume application. And
Charles Max_Wood:
Right.
Dave_Kimura
just a word of caution about fly.io, I am looking at their pricing docs, and it looks like you can do a shared, a free tier, but it only has 256 megabytes of the memory space. And if you're trying to deploy a Rails application, especially doing some kind of bundle anything that's computational heavy during the provisioning, then you could eat through that really fast and you could find that your application won't deploy. So I do
Charles Max_Wood:
Yeah.
Dave_Kimura
like that Render does start out their free tier at 512 megabytes of RAM. So just a word of caution that that could be an issue.
Charles Max_Wood:
I've had 512 megabytes be an issue too, but it depends on how heavily you're using your setup. I had a crap ton of stuff that Webpacker was
Dave_Kimura
Mm-hmm.
Charles Max_Wood:
fussing with. And if it's a smallish app, I would imagine that's not as much of a problem.
John_Epperson:
I mean, a lot of people who are deploying webpacker apps and things like that to Heroku will run into problems or have run into problems in the past or whatever. And some of those people end up just
Charles Max_Wood:
Mm-hmm.
John_Epperson:
manually compiling their assets and pushing it up. There's workarounds for that. But yeah, if you have
Dave_Kimura
Mm-hmm.
John_Epperson:
256
Charles Max_Wood:
Yeah.
John_Epperson:
is pretty low, that'll get hit with gems sometimes.
Charles Max_Wood:
Yeah. Yep.
Dave_Kimura
No, a
Charles Max_Wood:
Um,
Dave_Kimura
fun alternative. If
Charles Max_Wood:
okay.
Dave_Kimura
you are into self-hosting and you don't have to have a server or expensive machine or anything like that, you could do this with a. Five to ten dollar VPS or you could do it with a old machine that you have lying around. It's just install Ubuntu Linux on their run Docker or a single node Docker swarm and portainer on top of that. And I found doing that, especially with their latest version. webhooks that will allow for auto deployment triggers. And so that's actually something that I've set up in a set of Rails templates that whenever I create a new Rails application it's going to have all this Docker, Docker compose files for my local development environment but then also for a production environment. And all I have to do is then to deploy this to just copy and paste this Docker compose YAML file over into my instance of And it'll automatically provision the database, Redis, any sidekick workers, the Rails application, and get it up and running from two minutes from the time you create that actual project. So, if you're looking for a rather turnkey solution with maybe a little bit of one-time setup for deploying multiple applications, that's been a really good experience, in my opinion.
Charles Max_Wood:
Interesting. I'm also Dave, you host some stuff like at home, right? Don't you have some servers at home that you run? So isn't that an option as well? If you have an extra machine sitting around, you could just kind of route web traffic through your router to some machine at home if you really wanted to.
Dave_Kimura
Yeah, and that is what I do for a lot of the applications. So I'll have some applications that I've created just for personal use, but I still want to be able to access it outside of my home. And so with that, I am using the Portainer and Docker Swarm setup.
Charles Max_Wood:
Uh
Dave_Kimura
And
Charles Max_Wood:
huh.
Dave_Kimura
with that, it's been so nice because I will want to tink around with something sometimes and just being able to get that up and running real fast name has been really nice and without having to worry about something like Heroku or anything like that.
Charles Max_Wood:
Yeah.
John_Epperson:
would
Charles Max_Wood:
And a lot
John_Epperson:
know.
Charles Max_Wood:
of your ISPs, they don't rotate your IP address all that often. And so you should be okay to point stuff there.
Dave_Kimura
Yeah, I've had AT&T internet, their fiber for over five years now, and I still have the exact same IP address. And I'm not paying for a static. It is a sticky dynamic.
Charles Max_Wood:
Yeah.
Dave_Kimura
So it doesn't change often, but it's not guaranteed to be the same.
Charles Max_Wood:
Right. I'm on Comcast and it's basically the same kind of deal.
John_Epperson:
I would definitely caution people that are just getting into things or something. I always look at that as being on the low end of the medium skill level thing, not because it's super hard
Charles Max_Wood:
Mm-hmm.
John_Epperson:
to get something set up at home, because there's like kick-ups and hang-ups that you just have to think about. For example, your IP address changing, noticing it and fixing it. There's a few things involved. It's not too bad. But if you're like, it's not something that I typically recommend to juniors because they already have like a lot of things to learn and this just adds to the pile of things to learn. But if you're like already established and you're like, yeah, I just want to put something up. I think it's like great because it's not too big for you to like take on and learn if you've never done before. If you got a
Charles Max_Wood:
Yeah.
John_Epperson:
spare box and stuff. There is another thing out there that is sort of like the free tier What do you call it? handrails all the way kind of thing but I mean, I definitely am kind of like hoping that like so I had somebody that I Work with that used render recently and they had an okay experience. So I'm kind of hoping that render like ticks off, you know, for example I thought the DigitalOcean stuff was gonna be good, but it sounds like maybe not so much. But if those handrail things are feeling kind of sparse, another thing that you can try is AWS Elastic Beanstalk. But there's some cautionary things on here too, which primarily goes with Beanstalk is pretty, it kind of sucks to get started. work with their system and things like that. I shouldn't say sucks. It sucks compared to Hiroku. But if you get past that, they do have free tier kind of stuff. It does do a lot of like the hand holding stuff that Hiroku did or whatever. So depending how sparse things get, that might be a thing. But it's definitely not my first recommendation for people. There's just too many have worked with it. I just recently helped somebody move off of beanstalk and that was hard enough. So, um.
Dave_Kimura
I will say that Beanstalk does require a certain level of understanding the networking side of things in order to get it up and running properly, but AWS does have another application or service called AppRunner, which does give you more of that Heroku feel. It's more like their ECS, the Elastic Container Service, but it's been more simplified where you are using not a shared instance, but a container instance. And you don't actually get a EC2 instance or a virtual machine created when you launch an application on AppRunner. It's running on their own services instead of something that's provisioned under your account. So
John_Epperson:
Alright.
Dave_Kimura
you do have that as an option as well. And I think that they may have some pricing tiers year free service kind of thing. So that may be worth checking out to. I haven't looked at it in some time now, but I did record an episode on app runners specifically like a year or so ago.
John_Epperson:
Yeah, so with AppRunner, right, you have to make your containers sort of fit their model, right? That was something that I had some trouble when I was working with somebody on. And the issue was that they had followed some tutorial out there on getting their Docker container up and running, and it didn't match Amazon's expectations. So anyway, just take up some things that you're gonna have to care about there.
Dave_Kimura
Yeah, I don't know if I experienced that. I did. And when I was playing around with it, I did set up my own registry on AWS and I was able to push up my built images there. And then that seemed to work. I think if you're trying to use a different registry or something, then that could add definitely some level of hiccups. But overall, it seemed to be pretty pretty well done.
John_Epperson:
Awesome.
Dave_Kimura
You know I'm
John_Epperson:
Awesome.
Dave_Kimura
just looking back my original notes on app runner and nothing in the Docker file seems to be out of place or You know specific to the app runner
John_Epperson:
Oh yeah, so
Charles Max_Wood:
Yep.
John_Epperson:
you only had like a single Docker file or whatever going on? So
Dave_Kimura
Yeah.
John_Epperson:
I think in this instance, this was an issue where, like, yeah, so somebody was trying to get their Docker compose stuff like married to AppRunner.
Dave_Kimura
Gotcha.
John_Epperson:
But okay, fair enough.
Dave_Kimura
Yeah, that would be a bit more complicated for sure.
Charles Max_Wood:
Yeah, a few other things I want to throw out. So I have played with kind of the big cloud services like Azure or what is it? Google cloud platforms. And a lot of them either offer a kind of a free tier for that or they'll offer like a certain amount of compute. You know, they'll give you a credit when you sign up if you apply. if your server on their setup is, you know. I don't know, a couple dollars a month and they give you $100 credit. I remember Azure in particular, you could get $100 credit to start out with. And they may actually have a free tier for, you know, some of your stuff. So that may be an option too. Now they do a lot of stuff kind of like AWS. And so you may run into some of the same kinds of, wow, there's a lot here that I don't get, but if you're looking for a place to stick stuff, that might be an option too.
Dave_Kimura
Yeah, but you know, I'll kind of revert back to the doctor swarm deal.
Charles Max_Wood:
Yeah.
Dave_Kimura
I found that provisioning a doctor swarm instance, even a single node, and then getting retainer up and running on there is so much more simple than dealing with any kind of service that AWS has to offer. Digital Ocean VM that you can get that up and running really quick. So, you know, I think if we're going for a Heroku-ish ease of deployment, not so much the provisioning side of things, then that's going to be like by far the easiest way to spin up multiple applications really quickly.
John_Epperson:
So.
Dave_Kimura
Or using something like Render that has it.
John_Epperson:
I feel like if we hit up most of the hand-holding things, it might be really good to bite off some of this, because I think there's this space where basically, you're talking about, so I can get a VM up and going, and then I need to put my app on it. And it isn't, now that I've done this a million times, it actually really isn't that hard, and I would agree with you. But for the person who really doesn't that off, right? Like they're just coming into this because they're a junior or something like that. That's a huge hurdle for them. And I definitely feel like tooling and things like that, like maybe we should talk about some of that to help them like figure that stuff out, right? Because a lot of people really struggle with that first step. And if you're doing Rails stuff, right, there's a bunch of, there's a lot of tools that you can use and a lot of tutorials out there Towards them. There's also some things that do a little bit more So I didn't know if we you guys want to talk about that. I have some that I can talk about, too
Dave_Kimura
Yeah, and you know, the funny kind of thing about this is even if you are using render, I think for the most part, you still have to have some level of knowledge either about their specific platform and the way to do things or you have to. No, Docker and
Charles Max_Wood:
Uh-huh.
Dave_Kimura
apparently, you know, Docker is not as well versed to everybody. people develop just on their host machine. And so, um, you know, I definitely sympathize with that because I remember whenever I started out with Docker, I was like, yeah, I don't like this. I'm just going to develop on my host machine. And it wasn't until like a few years later, did I have to start working on older applications as well as new applications and started running into version conflicts of either the Ruby or other services. I look at Docker again and be like, oh, OK, yeah, this is the right solution. I need to actually just spend the time and learn it. So I'm not actually familiar with much tooling out there to easily deploy without having to know a bit of knowledge about the specific environment or technology like Docker.
John_Epperson:
Yeah, so if you go without Docker, you can still do the old Capistrano and Mina or whatever. And I think there's something else as well that's newer that operates in that space, which is just a script deployment kind of thing.
Charles Max_Wood:
Yep.
John_Epperson:
But you're going to have
Charles Max_Wood:
I've
John_Epperson:
to.
Charles Max_Wood:
done Capistrano forever.
John_Epperson:
Yeah, if you do those things though, you do have to install your box with all the things that you need,
Charles Max_Wood:
Mm-hmm.
John_Epperson:
right? Like that's one of the things that you're hoping to like skip over when you use something like Heroku. So if you, you know, but if free is very important to you and, you know, free or cheap, I should say, because I guess you're going to have to host this box somewhere, then, you know, those are options. right, and set up Helm or something like that, right? And make sure that you have Kubernetes installed. But then you're definitely talking about a couple boxes. Technically, you can do Kubernetes on one box, but most people don't do that. And there's not a lot of good tutorials on that. You can
Charles Max_Wood:
Well,
John_Epperson:
do
Charles Max_Wood:
and a
John_Epperson:
ShipLane
Charles Max_Wood:
lot of these...
John_Epperson:
and Kube.
Dave_Kimura
I'm not sure if I'm going to be able to do this.
John_Epperson:
Good, good.
Charles Max_Wood:
Yeah,
Dave_Kimura
I'm not sure if I'm going to be able to do this.
Charles Max_Wood:
well, a lot of the platforms
Dave_Kimura
I'm not sure if I'm going to be able to do this.
Charles Max_Wood:
out there like DigitalOcean or Google Cloud Platform or Azure or what have you, they offer Kubernetes for you. You have to configure it and run it, but you don't have to do the install and all of that garbage.
John_Epperson:
Yeah, these things do overlap, right? Like you can
Charles Max_Wood:
Yeah.
John_Epperson:
use some sort of Kubernetes or container service, right? To host your Docker container that you made. You can, I mean, this is also where Shiplane operates. It's also where Quby operates too, right? Quby
Charles Max_Wood:
Mm-hmm.
John_Epperson:
though is assuming that you have a Kubernetes, you know, like service out there or whatever. But like
Charles Max_Wood:
Right.
John_Epperson:
these are all options too. a little bit more effort and knowledge to get into than the old Heroku slash I guess now we're gonna send everybody to render but yeah I'm just assuming that I don't know I got my Ruby
Charles Max_Wood:
It depends
John_Epperson:
Weekly
Charles Max_Wood:
on
John_Epperson:
this
Charles Max_Wood:
what you
John_Epperson:
morning
Charles Max_Wood:
want, right?
John_Epperson:
I got Ruby Weekly this morning and I was like oh this is interesting I'll read this article later and then enchant not exactly but
Dave_Kimura
Aroku.
Charles Max_Wood:
Heroku's gone.
John_Epperson:
that's yes kubernetes is gone everyone you heard it here first no heroku um yes my bad so I yeah I honestly it's kind of new news for me so
Charles Max_Wood:
Well, one other thing that I think is interesting about this, you know, to kind of change gears a little, is that Heroku kind of, I mean, that was kind of how they got big, was that it was easy and you could
Dave_Kimura
Mm-hmm.
Charles Max_Wood:
get started playing with it for free. And I mean, I don't know, you know, I don't, anyway, they cited like fraud and abuse and things like that as some of the reasons why they got rid of the free tier I've heard some people sound a little skeptical about that. I don't know. Yeah, as to how much that played into it versus, hey, we're not getting paid to run all this infrastructure. Yeah. Oh, interesting.
John_Epperson:
Compared to just dropping the free tier period, yeah.
Charles Max_Wood:
Yep. I don't know. I do know that I heard some people sounding a little skeptical that that was the real reason for it. But it makes sense, right? I mean, what you're saying, I could totally see people doing. But, you know, one way or the other, at the end of the day, it's not an option anymore. Uh-huh. Yeah, and there are a few other systems out there that do some of the same stuff like OpenShift. That's a little more robust, I think, but still, you know, where it's an open source infrastructure, deploy this to your machines kind of runtime thing. The other thing that I want to just kind of grab real quick is that you can set your machine up so that, because one of the things that people really liked about Heroku was the Git Push deployment. You can set up your machines to do Git Push deployment too. You just do the deploy key, blah, blah, blah. Right? And then you just push it in. Yeah, when it gets pushed up, you just have a gethook on the other end that will run your build.
John_Epperson:
Yeah, there's a lot of free GitHub actions out there that'll do things, you know. So
Charles Max_Wood:
Yeah.
John_Epperson:
you can, you know, chain some of those together.
Charles Max_Wood:
Yep. Yeah, you could do it through GitHub actions too. I didn't even think of that. I've just seen people set it up where they, they do a get push to, you know, get at production server.com. You know, it pushes it in builds it. And if it builds it with an out, without an error, then it will, you know, our sinker copy the files over and then redeploy or restart the web server.
John_Epperson:
Yeah, I mean, you can go ahead.
Charles Max_Wood:
Right.
John_Epperson:
I do something rather similar and I think a lot of companies probably do something similar without kind of realizing it. So, maybe not, I mean, most places have like some sort of deploy script, at least most of the places that I've worked at. And it's really common for people to use Capostrano even if you aren't, you know, uploading your stuff, you know, directly or whatever and not running in Docker. taken to doing is just hooking into the Capistrano tasks and basically turning Deploy into my script or whatever. That way
Charles Max_Wood:
Mm-hmm.
John_Epperson:
I stick with the BundleExecCap, you know, my environment, deploy, and then
Charles Max_Wood:
Right.
John_Epperson:
it just runs my script instead. I did that with Shiplane too. Shiplane just hooks into that and on top of what Dave is talking about. And I'm not putting in the bin folder, I'm putting it in the lib tasks folder instead. So it's not that different. I think a lot of places do something like that. Or rake task. I've been places that just did rake tasks. That was also a thing. Which is fine. There was one other thing that I was thinking of in this. So when you get to this place too, there's also a couple of things that you have to think about, which is like, and Dave, you've probably run into this since I know that you have switched from, I know that you've switched to doing a lot of Docker deployments so that you've probably run into this pain, and I think that you have to, talked about it, but that's sort of like when you deploy something that's not in Docker containers, right? So when I just push something up to a server, there's sort of like a unique moment or a, you know, explicit moment in time kind of thing going on. So it's a great time for you to like run migrations and everything. And I feel
Charles Max_Wood:
Mm-hmm.
John_Epperson:
like, you know, a lot of people just hook into that. But when you kind of switch over to like Docker containers and things like this, where stuff is like have a new problem that you probably didn't run into before, which is it might not be a good time to run migrations because, you know, or at least your migrations have to change because now you can't just assume that the app is gonna be down while your migrations are running. And I feel like that's kind of a thing that like, when you run on Heroku and some of these services, you're just automatically getting it, right? Because they kind of like stop your app or, you know, do other things you know, this discrete moment in time happens, you run your migrations and that's great. But if you don't run on one of these platforms that works like that, you're gonna have to like, think about stuff like that, about whether your migration is gonna break a running app or not. Yeah, and that's true. I may be pushing into
Charles Max_Wood:
Yeah.
John_Epperson:
like some of the more advanced topics, not unintentionally here too.
Charles Max_Wood:
Yeah. Yep, absolutely. And it's, it's definitely, um, I think you are getting a little advanced maybe, but at the same time. How do I put it? I don't know that you're necessarily wrong in talking about the particular ins and outs, because yeah, you're gonna run into it eventually. It's just on your real simple stuff, that's not being heavily used or anything. This is probably not something you're gonna run into. But one thing that I have found is that if I build like some little thing that does some little thing, and we start using it, all of a sudden that sucker starts to grow and then some of these issues can become issues. And so if we have a methodology for managing some of those areas to make it more robust, I think that does a lot for what we're putting together. So yeah, I don't know. I kind of come down in Don't worry about it. Then, if this is a production app, then yeah, this is something you're probably going to want to think about.
John_Epperson:
I think that's a good point too, right? So... Yes, every single time that you basically say, hmm, I'm going to make this tool to make my life easier, or my team's life easier, it almost always becomes like a core integral part of your team very fast. And yeah, it is likely to grow. Everyone's going to want to know how to use it because it made your life easier. Or they're really going to hate it and push for their own solution if you have a team that isn't all that unified or whatever. But generally, it's the other one. and everything. And for that, I mean, I guess that's the difference between like, hey, I'm a junior and I'm just putting this app out here for my resume, or this is a toy app that I'm making on the side, you know, and somebody that's trying to decide on the right tool for their team. Like, I feel like you should take a decision like the right tool for your team a little bit more, you know, with a little bit more gravita, I guess, right?
Charles Max_Wood:
Uh huh.
John_Epperson:
you and maybe you should pick it more carefully than just, you know, hey I don't know this stuff so I'm just gonna pick a service, right? Like that's a great way to end up with you married to a service that you don't understand and that may or may not fit your needs later. You have to be cautious about it at least if you're gonna pick something like that.
Charles Max_Wood:
Yeah. Oh, okay.
John_Epperson:
Oh. Is MySQL
Charles Max_Wood:
Yeah, I
John_Epperson:
free
Charles Max_Wood:
missed it.
John_Epperson:
or is it any database? Postgres.
Charles Max_Wood:
Posted Postgres. Mmm. Yeah.
John_Epperson:
Thanks for watching!
Charles Max_Wood:
Right. Yep.
John_Epperson:
that Postgres is gonna run you seven bucks a month. Holy crap. gets up there quick.
Charles Max_Wood:
No.
John_Epperson:
Yep.
Charles Max_Wood:
Mm-hmm. Yep.
John_Epperson:
Yeah, there's always been a problem. Oh, my apologies. There always has been a problem when trying to decide between that free tier and the cheap tier, right? There's always been like a little bit of overlap and some things make sense and some things don't, so.
Charles Max_Wood:
Yep. Well, and you'll learn something too, right? So, and that's one thing that I found too, is that as I've talked to people, depending on how they come into programming, they have various or widely varied experience with the command line, Linux, setups, all this stuff, right? Web servers. Yeah, you know, even if it's hard and it's frustrating, you're gonna pick up some stuff that you'll be able to use going forward.
John_Epperson:
And I do think that it's probably kind of a, it's just a de facto good recommendation for the, I'm already a programmer, I'm just doing a side app, right? And I have a box
Charles Max_Wood:
Yeah.
John_Epperson:
at home, like, okay, great, you have your solution right there, right?
Charles Max_Wood:
Yep.
John_Epperson:
And for the
Charles Max_Wood:
The other thing I'll go ahead. Sorry.
John_Epperson:
No, it's okay. I think we have a delay, but I think for the person that has familiarity with VPSes or VMs and stuff, you can just have them go get their digital Ocean box and do the same thing.
Charles Max_Wood:
Yep. One last thing that I'm just going to throw out there is if you have, um, if you have something that you want to show off, right? Cause deploying it at home and seeing how it works and all that stuff is, is a great way to go. If you, this is something you want like a potential employer or somebody else to look at, um, like figuring out Docker and figuring out how to tell somebody to, you know, Docker compose up or, you know, something like that where all they have to do is grab the, you know, they can clone it to their machine and then run the Docker command to build the container. Those are also useful skills. And I don't think it's too big an ask to ask somebody, hey, if you want to see it run, you know, just do a Docker compose up and, you know, set up your Docker file and stuff it migrates and seeds the database and gives them something to work from from there. Yeah. Yeah. Yeah. true.
John_Epperson:
Yeah, I think in general Docker skills are not mandatory yet, but they're very, very good. And I mean, that's not to say that Docker is necessarily going to always be the winner. We could come in with something, but containers for sure are sticking around. So, and
Charles Max_Wood:
Yep.
John_Epperson:
I don't think you're wasting your time learning Docker because in all likelihood, if we get a replacement, it'll probably be mostly compatible with the Docker at this point just because of how loopy Equotis Docker is.
Charles Max_Wood:
Yep, I agree.
John_Epperson:
Nice. is based off of, yeah. I mean, there's value to both, right? And there's value to being able to throw something away and start over very quickly. But yeah, I mean, being able to persist is also important, too. Either way, get those skills. The Docker
Charles Max_Wood:
Yep.
John_Epperson:
skills will be helpful to you.
Charles Max_Wood:
Yeah. Yeah.
John_Epperson:
Yes, I have worked on multiple teams, getting them from a, hey, we have this thing and you have to, you know, do the onboarding steps, but then you're gonna have to pair with somebody, you know, for a little while to get things up and running and oh, you've got to create these things in your app, right? And then everyone's like terrified to like get rid of their app. And I've worked to like move teams to a place where they, you know, can destroy their container. And yeah, it's... you should do it. It's a lot of work. I don't want to say that in a scary way. It's work, and people are scared of it for good reason, but you should do it. It's totally worth it to be able to blow away your environment and recreate it.
Charles Max_Wood:
Mm-hmm.
John_Epperson:
Yep. It's very much, yeah, yeah, yeah. So I'm totally agreeing with you, right?
Charles Max_Wood:
Yep.
John_Epperson:
Like it's, if you are at the point where you're creating that VM, you are also very much at risk that your development environment has special things that your production environment does not have. And you have no way of knowing. Like if you're so scared that you can't destroy your environment and recreate it, you don't, you can't know.
Charles Max_Wood:
Yep. All right, well, we're kind of getting to the point where I've got to start looking at taking off because I've got a meeting coming up and I've got to drive over to high school. Anything else you all want to add to this before we... Wrap it up.
John_Epperson:
I think we beat up the horse pretty good.
Charles Max_Wood:
Cool.
John_Epperson:
Nice.
Charles Max_Wood:
All right, well. I'm gonna go ahead and move us on to pics then. Dave, do you have some pics for us? Mm-hmm. Mm-hmm. Uh-huh. Cool. Yeah, I've got a bunch of lights in here. What's funny is, is that... We haven't been posting the video, but there's a green screen behind me actually, and I've been setting some of that up. During the day, if I just have my room light on, that's enough because I'm facing the window. But yeah, at night I have some of those issues, right? Where it puts stuff in shadow that I don't want in shadow, or it'll light stuff up that I don't really want lit up. and kind of figure that stuff out. So I'll have to take your tip. Ha ha ha. Yeah. Mm-hmm. Nice. Yeah, good to know. I have a ton of gaffer tape from when I built my podcast booth. I have a portable podcasting booth that I built. And so, yeah, the gaffer tape was what I used to kind of clean up some of the edges and stuff because the felt didn't cut cleanly everywhere. Anyway, very cool. John, do you have some picks for us?
John_Epperson:
So last week I got my standing desk. I have wanted a standing desk for about 10 years and they were... I also have a lot of stuff that I want on my desk so I couldn't just go get a cheaper one because they wouldn't be able to
Charles Max_Wood:
Mm-hmm.
John_Epperson:
hold enough. I have a problem with stuff that I feel like is not durable. I just am like, it's got to be durable.
Charles Max_Wood:
Right.
John_Epperson:
10 to 20 years and so I just I'm that way and Saying just for a long time. We're very expensive and now they've definitely come down It cost me about 1200 bucks to get mine So I'm very excited happy with it so far, but I can't go recommending a desk that I've only had for a week but Something that I know for sure. I can't get buyers remorse about as I was like organizing all my cables and everything The thing that I wanted to recommend here are these grommets that I bought to basically like give me extra USB power support spots and give me one of them is like a power cord thing so I can plug my laptop into that instead of having my cord like hang down over my desk and then when I move my laptop my cord falls down below my desk and then I have to pick it up the next time I bring my laptop over which is annoying to me so
Charles Max_Wood:
Right.
John_Epperson:
having it stay on the top of my desk is great so you know I just I'll post like an example one of the grommets Yeah, so like desk grommets are totally awesome I'll fix that link. Thanks Dave So that's That's one thing and then the other yeah, and then just in general, I mean standing desks are awesome So I don't know PSA. It's awesome That's what I got this week
Charles Max_Wood:
Nice. trying to envision what they are.
John_Epperson:
I'll show that link.
Charles Max_Wood:
Oh yeah.
John_Epperson:
Yeah,
Charles Max_Wood:
Oh,
John_Epperson:
I
Charles Max_Wood:
I
John_Epperson:
have
Charles Max_Wood:
gotcha.
John_Epperson:
a USB one. I'll link the USB one too, if I can find it in my history.
Charles Max_Wood:
Oh, I see, yeah.
John_Epperson:
Yeah,
Charles Max_Wood:
Yeah, I have
John_Epperson:
that's
Charles Max_Wood:
desk
John_Epperson:
actually
Charles Max_Wood:
grommets
John_Epperson:
where I got it.
Charles Max_Wood:
that came in my desk, but you're saying that you can get them that you can
John_Epperson:
Yeah,
Charles Max_Wood:
plug your
John_Epperson:
I
Charles Max_Wood:
computer
John_Epperson:
had some
Charles Max_Wood:
into
John_Epperson:
that came
Charles Max_Wood:
and
John_Epperson:
in
Charles Max_Wood:
stuff.
John_Epperson:
my desk too, but I added some. I added these specifically or whatever. So,
Charles Max_Wood:
Ah.
John_Epperson:
and there's this one, which is a USB hub. So.
Charles Max_Wood:
Nice.
John_Epperson:
Yep. I mean, there's some this one specifically. Look, I mean, it's it's a gromit. Definitely. So far, I haven't found any that like, you know, have changed my life, but it is very helpful. And like it's so how should I put it? It it's not that expensive. And it gives you like it takes care of like small stuff. Like I'm not looking at this USB hub to like run my mouse, you know, in it or something like that. Right.
Charles Max_Wood:
Right.
John_Epperson:
But it is great for like peripheral. that need power or peripherals that I want to be connected that I don't care you know if they have like USB delay you know kind of things going on
Charles Max_Wood:
Nice.
John_Epperson:
Yeah, because yeah, there you go.
Charles Max_Wood:
No, that makes total sense. Cause what you're talking about, I mean, I have a power strip sitting on the top of my desk. And yeah, that would just eliminate a whole bunch of stuff. The thing that I've done too, and I'll throw this in as a pick. So on Amazon, I bought, and it was like 12 bucks for a hundred of them, but it's these Velcro cable ties. and they've got a
John_Epperson:
I
Charles Max_Wood:
little,
John_Epperson:
might have these.
Charles Max_Wood:
they have a little like hole in them and so you just pull one end through the other and you just wrap it around your chords and then yeah, then you can just wrap it all the way around the chords
John_Epperson:
Like that.
Charles Max_Wood:
to get I'll put a link in here. But yeah, it just wraps all the way around the chords then and you can manage
John_Epperson:
Yes,
Charles Max_Wood:
your stuff.
John_Epperson:
very
Charles Max_Wood:
Yeah,
John_Epperson:
similar.
Charles Max_Wood:
yeah.
John_Epperson:
I have those
Charles Max_Wood:
So
John_Epperson:
too.
Charles Max_Wood:
yeah, I've got, the ones I got, they just come in a big, basically a roll of them. And so you just peel them off one at a time. Very
John_Epperson:
Yep.
Charles Max_Wood:
nice. And
John_Epperson:
I actually have
Charles Max_Wood:
yeah.
John_Epperson:
the same ones that you have from a previous purchase and I just kind of ran out and so I bought these new ones, but yeah.
Charles Max_Wood:
Yep. But it keeps all the cords where I want them and stuff like that. So that's been really nice. Um, I have been setting up, like I said, a green screen and stuff so that I can do kind of, uh, you know, talk in front of my camera. Um, and I have a DSLR, uh, Canon camera or Nikon it's Canon, I think. Um, but yeah, so I, yeah, anyway, I can just stand up and record stuff and do the like Battlestar Galactica or Star Wars or something behind me. Anyway,
John_Epperson:
Yeah.
Charles Max_Wood:
it's awesome and I'm looking forward to putting a whole lot more of that stuff out. Especially since I'm starting to ramp up the coaching. I basically do a weekly group call with people who want to take their career to the next level. That's at tophendevs.com slash coaching, by the way. I've changed it from the one hour coaching call a half hour basically onboarding call just to make sure that I can help you out. So we'll talk. I will give you pointers. You know it's not a pressure sale or anything but if you're looking for something like that you know then we'll we'll talk about you know what it will take for you to come and be on every week while we talk through whatever that is. But yeah I want to be putting content out that just demonstrates to people hey look here's you know here's something you can do today right here's something you can do basis or you know if I'm recording a course or something for top end devs I can have the the video I can move the you know in-screen video of me around and have something interesting behind me but yeah that that's been terrific I have some lights they're the newer with three ease it's NEEWER lights and those are pretty nice the ones that I got they have kind of these shades that go on The only complaint I have with the shades is that they don't fit through the U frame that they sit in. And so if I have to tilt it at all, then it pushes that flap up and it's kind of counterproductive. TV background. I saw you do that and I was seriously tempted to just go, but I looked at the price of one of those giant TVs and yeah, that's not in the budget right now. So, yeah. Yeah. Anyway, so yeah, so that's something that I'm playing with. But yeah, I usually pick a board game, but I didn't really prepare for that this week and I can't think of one off the top of my head that I wanna put out there. So I'm gonna skip that, but we do have Rails Remote Comp coming up. So check that out. And then I picked up this show a while back that I've been watching. It's been on TV for like 20 something seasons. My father-in-law got me watching it and I guess there's basically no end of episodes that I can watch so I'm not even through the first season yet but I've been enjoying it so I'm gonna pick that
John_Epperson:
guys.
Charles Max_Wood:
All right, well, I'm going to go ahead and wrap us up. Thanks for coming, guys.
John_Epperson:
Yeah.
Charles Max_Wood:
Till next time, folks, Max out.
John_Epperson:
Take care.