Coding Blocks - Docker Licensing, Career and Coding Questions

Episode Date: September 13, 2021

Some things just require discussion, such as Docker's new licensing, while Joe is full of it, Allen *WILL* fault them, and Michael goes on the record....

Transcript
Discussion (0)
Starting point is 00:00:00 You're listening to Coding Blocks, episode 167. Subscribe to us on iTunes, Spotify, Stitcher, wherever you like to find podcasts. We hope we're there. And hey, if you can, leave us a review. We really do appreciate it. We really like it. It always puts a smile on our face, even though I've threatened you with DJ voices. And apparently some of you are crazy and you like those and you let us know in your reviews that you do like
Starting point is 00:00:28 the DJ voices anyways. So maybe my threat backfired. Maybe my threat was an empty promise or empty threat. I don't know anymore. I'm, I'm confused. Uh, yeah,
Starting point is 00:00:39 me too. Um, so if you visit us at cutting blocks.net, you can find show notes, examples, discussion, and more, and you can send your feedback questions and rants to comments at codingblocks.net you can find show notes examples discussion and more and you can send your feedback
Starting point is 00:00:46 questions and rants to comments at codingblocks.net and follow us on twitter at codingblocks or head to www.codingblocks.net
Starting point is 00:00:54 and find all our social links there at the top of the page with that I'm Alan Underwood oh geez I'm Joe Zach
Starting point is 00:01:02 and I think it's internet one and I'm Michael Outlaw zero and I'm Joe Zach and I think it's internet one and I'm Michael Outlaw zero this episode is sponsored by Datadog the monitoring and security platform for end to end visibility into your Java applications
Starting point is 00:01:18 and shortcut because you shouldn't have to project manage your project management. Okay. So, uh, as we like to do, uh,
Starting point is 00:01:29 we like to say thank you to everyone who left us a review. So, um, I'm going to try these and I hope it goes well. Uh, Oh, maybe I'm not trying. I'm stealing the second one.
Starting point is 00:01:41 Okay. Okay. So, uh, let's see from iTunes. We have Badri Ravi. I'm stealing the second one. Okay. Okay. So, uh, let's see from iTunes. We have Badri Ravi and I'll let you take audible. Okay.
Starting point is 00:01:53 Audible. We have dysrhythmic and we have Brent and dysrhythmic rules. One of the ones who wrote in was like, Oh yeah, this is all about the DJ voices, right? Like, so, so they're here to stay,
Starting point is 00:02:03 man. That's two episodes in a row we've gotten reviews that say more more also i still love your name just for the heck just letting you know see the problem that i have with this is that i don't mind like being like on the joke part of that where like i would do a late night dj voice but I hate hearing you guys do it. Like it makes my ears bleed a little bit when I hear it. Well, I also feel like I don't do a good job of it. So it just comes off weird.
Starting point is 00:02:32 Uh, I kind of, I don't know. That's probably why I like it. Uh, it really feels like a Saturday night live sweaty, uh, you know,
Starting point is 00:02:40 impersonation when I hear you do it. If I'm being honest. Uh, that's awesome. All right. So what do we have coming up in October there, Jay-Z? All right. Atlanta Code Camp. It is $10, but you get free lunch. You used to get free shirts. I don't know if that's going on this year, but it's a superior, excellent, awesome event all day. Lots of good stuff going on there.
Starting point is 00:03:04 And we're going to be there. We're planning on having a booth. And we will, I don't know, hang out. Are we? I mean, we keep saying that. Oh, yeah. I guess I need to get on that. Yeah.
Starting point is 00:03:14 That's not bad. I thought we had a booth. Well, maybe we'll have a hammock out front. Who knows? But we'll be there. We'll have a booth soon. Yeah. Okay.
Starting point is 00:03:24 So. I mean, I imagine if they're listening and they're like well they keep saying they're going to if they would remind me that i'd get on it right so yeah we'll be there and we'll be giving some talks and whatnot now now i do have a question about that can you say that something's ten dollars and then you get a free lunch? I don't know that that's accurate. I'm just. Yeah, but you're getting so much more for that $10 that I think that the lunch you could consider free. I don't know. Would you just consider it like a percentage of the $10?
Starting point is 00:03:55 I mean, for your $10, you have the opportunity to meet the one and only Joe Zack. And I feel like that's got to be worth it, right? That's worth the price of admission. The lunch is not bad, but I would not pay. It's not worth a full $10. I'll say, the lunch is fantastic, but
Starting point is 00:04:19 I would not pay $10 for this lunch under normal circumstances. It's like, they have vegetarian options. Sometimes they have sandwiches. Sometimes they don't. Sometimes they might have pizza or something, you know, just depending. And it's all, it's great. It really is.
Starting point is 00:04:33 But when you think about everything that goes into that conference, and there's even like donuts and breakfast in the morning, it wouldn't pay for two things of coffee. It may not even pay for one thing of coffee at this event. So the price is really nominal. Just like make sure people show up and they don't order a bunch of extra lunches, which can happen. Totally true. It is worth the $10. So if you are in the Atlanta area and you will be here around October 9th, you should come join us.
Starting point is 00:04:59 All right. So this is, we're doing another talk because we're all brain dead. These microservices, man, these darn microservices. Every time we go back and look at them, we're like, oh, it hurts. So we will get back to the microservices thing here soon. But there was some interesting news that came out. So everybody has heard us just spew love for Docker, right? And containers in general. So Docker just made an announcement the other day, as a matter of fact, that may have an impact on
Starting point is 00:05:36 your usage of it, whether or not you work for a company or whether you just do things personally. So I have a link here for the blog posts that they put out on their updated subscriptions. But the gist of it is, if you are just a person using this, you can continue to use it for free. Life is good. Just keep going on about your way, right? If you are somebody that works for a business with less than 250 people or less than $10 million in revenue a year, you're also probably okay. You can just use it. If you go above that 250 users or above that $10 million in revenue a year, you got to start paying for this stuff. So go ahead. It's not 250 users. It was 250 employees.
Starting point is 00:06:23 Employees. Oh, good call. That's a 250 users. It was 250 employees. Employees. Oh, good call. That's a big distinction. Huge difference. Yes. My bad. Um, yeah. So more than 250 employees in your business. So what that means is you're going to have to start paying to use Docker desktop.
Starting point is 00:06:38 Um, so, which is a tool that I know the three of us use heavily. Um, so, oh,, you don't use it? Nope. You don't use Docker Desktop? Nope. How do you run Docker? Do you have to get and install it? Well, you're doing Minikube now, but you have used Docker Desktop quite a bit.
Starting point is 00:06:58 And Minikube for Kubernetes. Well, I use Docker Desktop on Windows, but I'm doing everything through Minikube. How do you do your Docker builds? How do I do my Docker builds? I'm using the Minikube Docker instance. You can use it. So Minikube has a Docker daemon built into it that you can. There's actually a command.
Starting point is 00:07:18 I think if you type in Docker or if you type in Minikube docker env or something like that it'll actually spit out a command that you can run that will make it to where all your docker commands flow through minikube just like it was the docker runtime it's an eval command i don't remember off the top of my head because i always just uh eval dollar sign dot the minikube docker dash env yes minikube docker dash env spit out the command minikube docker dash env would be in parentheses so eval dollar and then the other thing yep so it'll spit out the command for you you can just copy and paste it and run it and it'll allow you to do it so you know be aware that the docker is updating their subscription and the terms for using the tools and all that kind of stuff which you know one hand, it kind of stinks on the other hand, good for them, right? Like,
Starting point is 00:08:09 I will say, like, a lot of us have used a lot of Docker over the years. And, and depending on what the subscription model is, and all that, if it's $5 per developer or something like that, and again, I don't know if it's per employer or whatever. I mean, that's not terrible, especially given the amount of use and the amount of time saving that you might get out of it. But be aware of it. And Minikube is a fantastic alternative. And something that a lot of people don't know
Starting point is 00:08:37 that this might be worth inspecting too or just digging into a little bit further is Docker, If I remember right, when you do a build on Docker, it actually creates images that are in OCI. So open container, um, what does I mean? I can't even remember, uh, initiative, the open container initiative. So it does it in an OCI compliant way. So there are other tool sets out there for creating and running these images that are OCI, you know, available. So just be aware that Docker is not the only game in town. It is the most popular, uh, and, and it's very polished at this point too. So, you know,
Starting point is 00:09:25 again, news coming from them, you have to, this has to be done by January, 2022, right? Like you have to update your subscription model or whatever. So, you know, now that I think about it, I'm questioning myself on what I was saying because I think to even install the CLI though, you had to use, you had to use Docker desktop to install the CLI, though, you had to use Docker Desktop to install the CLI, even though I don't technically use the Docker Desktop UI or anything like that. And like I said, I do bind it to the, you know, I use the daemon from Minikube.
Starting point is 00:10:02 Yeah, we'll have to do some digging into that to find out but it that's a pretty big announcement coming from them yeah it's pretty man that's imagine how many companies are doing that like it's almost it almost makes you think like i i really i really questioned the timing, honestly, because what was it like, um, a few months back now, maybe six or so. Do you remember there was a big, uh, like, I don't know, hoopla or whatever. Like it was a, it was being misrepresented about Kubernetes switching, you know, like, Oh, Kubernetes is dropping Docker. It was like, you know, there was a whole bunch of misinformation going around like that. And it wasn't that Kubernetes was dropping Docker. It was that Kubernetes was going to
Starting point is 00:10:52 the standard open container, was moving to the open container standard and not necessarily caring that it was specifically Docker, right? And so now I'm like, well, if Docker is going to force this kind of thing to, you know, for companies to pay this, kind of just going to like force the hand of people who are already in like a Kubernetes world, for example, to like, oh, well, I guess we'll look at this other thing then, because maybe we don't need Docker, like specifically Docker. It's such a shame because Docker has had such a transformational product.
Starting point is 00:11:29 But they just didn't have the way to monetize it. So, you know, they sold off their services. They got bought, you know, they got bought by Mirantis or whatever. Like there's not, you know, a whole lot left for the company to make money on. And it's so important. It's so big. They're still supporting all this stuff. It's used by so many people.
Starting point is 00:11:44 And the money is just not. It's like flowing all around them, but not to them. It's crazy important. It's so big. They're still supporting all this stuff. It's used by so many people and the money is just not, it's like flowing all around them, but not to them. It's crazy. Yeah. And that's why, that's why I don't, I don't hate on them for making this decision.
Starting point is 00:11:54 Right. Like I, I think that companies should be able to make a living. Like you make a product, you build like that's a polished product, right? Like, you know,
Starting point is 00:12:04 Docker desktop in general has just, there's a polished product, right? Like, you know, Docker desktop in general has just, there's a lot built into it. So I, I, I'm not mad at them for doing it and I hope it works out. Right. Oh, but I will say there's probably going to be some other things that pop up around this because people are gonna be like, no, you know, I'm not, if you got 250 employees, let's say, I think on the low end in that document, they said that it was $5 per user per month, right? Yeah. So on the low end, you're at five times 250.
Starting point is 00:12:32 You're already at $1,250 a month on a cost that you didn't expect or didn't anticipate, right? Well, hold on now because that's also another thing, too, that's weird about this. It's if you had fewer than 250 employees, then fine, you get to use their free version. But if you have 250 or more, then it's cost per user. So you have 251 users, just to make a clear distinction of the numbers there. You have 251 employees in your company, but you only have one person using Docker desktop. You pay $5 for that one user license. That's what it sounded like to me too, right? The people that are actually using it. So what you said, the distinction between the number of employees in the company versus number of users, maybe you don't have to pay that much.
Starting point is 00:13:19 Yeah. It's well, yeah. But my point is, is that it's, it's, it that you're basing the cost off of, yes, okay, fine, I have 251 employees in my company, and now I have to pay you a license because I have 250 or more employees. And even though only one person is going to use it, that one person has to pay for that one user. Yeah. I'm taking it to an extreme to just illustrate the things, but that's where the boundaries are, right? So it's not like somebody like a large enterprise like a Google or an Apple or an IBM or whatever. It's not that they have to pay $5 for every employee in the company, regardless of their using it. It's only for those that are actually using it. Right. The user. So it may be cheap. It may not be bad, right? Unless you're a software
Starting point is 00:14:07 development company where everybody's a software developer, right? So like imagine the Amazons of the world that are probably using this kind of stuff, right? Like that's, that's a hefty song. Amazon, Microsoft, Google. I mean, yeah, those, those seems like those companies seem like they'd be hit pretty hard by it. Yeah. Yeah. But it's not terrible pricing. So if you are a business, so if you're, you know, an Amazon or something, you're not going to, you know, theoretically on license, you're not going to be paying that $5. You can be paying $21 a user per month, which even if that sounds high, that's how much GitHub enterprise costs. And with all this stuff, if you get it to a google size you
Starting point is 00:14:46 pick up the phone and you're going to get a much better rate than that you might get like seven dollars you might get ten dollars you know who knows per user and we think about even per year it's like two hundred dollars a year per like say for me for my company paying 240 a year so i can use docker like that's so worth it. That's the cost of a JetBrains license for a single product. That's the price of a lot of other things that I pay for. I just paid $100 for K9's
Starting point is 00:15:13 Pro license. That's half of what Docker is asking me. I use Docker a lot. It's very important, not only on my day-to-day life, but also just important to the business. It seems like a no-brainer to pay it to me i hope it works out for them but yeah like you said it might just encourage you know diversity so i mean you're not wrong i just hate change i guess i mean here's here's the ultimate question if it were up to you
Starting point is 00:15:42 would you pay yours like if it if you had to pay $5 a month for Docker, would you pay it? Me personally, you mean? Yeah, you personally. For like personal use, you mean? If you, yeah, I guess personal use. Like would you pay it to do your development stuff? Not even considering the size of the company or anything like, is it worth it to you to pay $5 a month for Docker desktop use?
Starting point is 00:16:10 I guess, Hmm. I, is it worth it? Yes. Uh, I mean, there's still,
Starting point is 00:16:16 there's so much incredible value out of Docker, but it does make me question though. Like, you know, it, it, it's like the same thing as like a GitHub account, you know, you know, like, you know, it's like the same thing as like a GitHub account, you know, you know, how could you survive without having a place to put your repos? Like, you know, and so that's
Starting point is 00:16:32 where I kind of view Docker and, you know, uh, you know, it's amazing that they let you use them as a container registry for free, you know, for personal use without a charge on it. Um, but I assume though you're asking about like not just for being able to store your own personal images, but also, uh, you know, for any polls as well for personal use. Right. Yeah. I mean, for me, I, I, I'd say absolutely. I'd pay $5 a month for it. I mean, I've gotten way more value out of it than that. I've heard all of the lore and rumors about Jay-Z's Steam library and I can't imagine
Starting point is 00:17:18 what that costs. If you had to pay $5 to pull Docker, yeah, sure. could pull a Docker, you know, if you had to pay like $5 to pull a Docker, yeah, sure. And those things generally make my life worse. This actually makes my life like better. So think about this, though. I think you're playing the games wrong, sir. Yeah, I know. What?
Starting point is 00:17:35 I'm so bad at them. What if Docker said $5 a month? Fine. VS Code said, hey, we're $10 a month now. OK. And GitHub said, no more private. Now you got to do $7 a month. Like, OK. Hey, we're $10 a month now. Okay. And get upset. No more private. Now you got to do $7 a month.
Starting point is 00:17:46 Okay. And then, you know, where's it like, what if all these companies that we've been using things for years suddenly all went subscription? You know, I mean, eventually we would find something else. And that's, that has been the way this has worked because what you're describing, Joe, is where we came from, right? All of the editors, you know, visual studio used that to pay a fortune if you wanted to get a copy of it. And then they eventually came out and said, okay, here's a community edition that was like really pared down.
Starting point is 00:18:12 And then eventually, you know, the community just moved away from that or like, Hey, you know, we'll, we'll use a visual studio code with a bunch of plugins or, or, Oh, we'll pay for rider or something else you know yeah yeah it's interesting though because uh it's it's hard like all those products that we just mentioned like those weren't built by single developers like a lot of these are built by gigantic you know multi-million dollar corporations are backed and staffed and they've got full-time people working on this stuff and so if you know if we did say like all the main tools
Starting point is 00:18:44 we use day to day did suddenly start growing subscription plans uh then it might be hard for small players to really get started you know like maybe to be startups maybe whatever but the startups they're only going to get investors if they can pay that money back so it's kind of like bait and switch it's like they're going to do the same thing like okay we're free we're open core but at some point we're coming for your wallet. I mean, that's kind of how a lot of companies have done, though, right? Like MySQL.
Starting point is 00:19:16 MySQL was one of the big ones that did that early on because at some point, everybody's got to make some money. Confluent, right? We love Kafka. They are trying to monetize. Elasticsearch did it, right? Elasticsearch went the whole thing of now you have the basic versus the different types of subscriptions. So, I mean, that's really what it boils down to, man. It's really hard to keep sinking developer dollars in something and not have some sort of stream of revenue, right? But with the Elastic route, though,
Starting point is 00:19:40 I mean, correct me if I'm wrong, but their monetization was like, hey, we're going to like, here's all these add-on features, but the only way you can get them is to pay for it. Right. So, like, they were providing, like, new value that you didn't already have. Right? You want our machine learning algorithms to be able to, like, you know, build charts off of your existing index, that's a feature you've got to pay for. You just want to search?
Starting point is 00:20:09 Fine, you don't have to pay for that. Yeah, they tried to go the plug-in. The only problem with the Elastic route, though, and I think we could all see this, is they left out some pretty major things in their base ones, right? Like security or authorization. Yeah, but they fixed that though, right? They did eventually fix that.
Starting point is 00:20:27 They ended up going around changing that. But that's not how it started. We didn't come and challenge them on it. Right. Yeah, they got a black eye in the market because the default wasn't really security aware or friendly. Yeah. So it is interesting.
Starting point is 00:20:43 I mean, I think things will balance out over time, but you know, like I said, hopefully, hopefully good comes out of it. Hopefully Docker makes a little bit of money and everybody actually benefits from it in some other way. So I don't know. We'll see. So that, that brings up, so I guess it doesn't directly lead into my next thing, but I was curious about this. So I, my wife, she's like, you should go get a master's. And I'm like, man, um, yeah, I don't really want to, um, but I always have things bouncing around in the back of my head. Right. Like, uh, I know Jay-Z, you and I had talked about at the beginning of the year, I think we were both looking at doing the CKD, you know, Kubernetes certification for a Kubernetes certified developer, right? I think is what it was.
Starting point is 00:21:36 And I'm always thinking about things like there's a couple other ones that are just sort of been bouncing around in my head. One is the Azure Architect certification. Another one is the AWS architecture. And then GCP because we spent so much time on that. I'm like, hey, maybe I should go get that kind of certification. And the problem is every time I look at any of these, it's a serious amount of time you've got to put into it. And it's not just studying. It's also having to play with all the tools so that you get familiar with it because you can study it. But if you don't run the commands and you don't see what's
Starting point is 00:22:12 happening, it doesn't matter. Right. So I was curious, like, do either one of you, do either one of you ever think about potentially either going back to school and, and finishing up something or getting a master's or whatever, or, or getting a separate certification? And if so, what is the driving force?
Starting point is 00:22:35 I'm pretty sure we've talked about this before though. We have, but, but we've been around for eight years. So things change, right? So do they A little bit. I mean, I don't think I have changed on this topic, but maybe I have.
Starting point is 00:22:53 Certifications, I just felt like I've just seen the bad side of them from like people who got certifications like, you know, long ago that then couldn't, you know, get their way around the system at all. And it was like, wait a minute, but you're supposed to have the certificate. I don't have the certification. You do.
Starting point is 00:23:15 Well, how do I, how, why am I the one telling you how to do this? You know, type of situations that I think that like it has put such a, uh, uh, uh,
Starting point is 00:23:26 you know, it's just tainted my view of them forever that I just don't put a lot of, uh, value in them. And so as a result, I don't go chasing after them either. So to be clear, you're kind of talking about the ones that were happening 15,
Starting point is 00:23:42 20 years ago when everybody was getting, um, MCSE certified or whatever, right? I mean, I'm younger than that, so I don't know what you guys were doing way back then. But yeah, let's use that example. Okay, yeah. But yeah, I think you're talking about like, I remember MCSE and MCSD were like the hot things and it's like you'd listen to the radio and they're like hey come take this this training course and get your mcse and be making six figures and but
Starting point is 00:24:11 and and like you said people come out of that they wouldn't even know how to set up a network right so yeah so so it it really like just left such a bad opinion based on the things that I saw at the time that I've never gone out and chased it. That's not to say that the current ones like the certified Kubernetes, uh, YAML developer or, uh, an Azure,
Starting point is 00:24:36 uh, architect or whatever. I have not to say that those aren't, uh, that those are at that, that same level. You know, I mean,
Starting point is 00:24:44 I would certainly hope that we've gotten better, but it's still like, I just, it's forever burned into my brain that, you know, to associate it like that. And so therefore I don't go chasing after it. Now a degree from a college or university, I would put a lot more weight into that than I would a certification because, I mean, you could focus on something for a short period of time and get a certification. Like if you wanted to get a Kubernetes certification or, you know, Azure or AWS or Google Cloud, you know, architect type certification, I mean, you know, architect type certification.
Starting point is 00:25:27 I mean, you could probably spend a quarter of a year and, you know, do what you had to do to get that, right? You're not going to get a degree or, you know, what be it regardless of level from a college or university in that short amount of time. Right. So there's, so as a result, there's more invested time, which then, uh, you know,
Starting point is 00:25:53 you, you, you're going to come out of it stronger in the end as a result of that, you know? Okay. So, so you sound like you lean heavier towards if, if you were going to do something, you'd probably go more the collegiate route.
Starting point is 00:26:10 What would be the purpose? What would be the point, I guess, for you, like individually? Would it be like, so I'll lay it out here in terms of what I'm thinking, like where there's just wanting to get better at things. So no things, right? Like there's that, but there's also like a lot of jobs out there. If, if you have a bachelor's, you get paid certain amount. If you have a master's, then you can make a certain amount more and you can go up to a certain level. If you have a PhD, you can go up to a higher level and make even more. So there's the monetary things that could happen there. And then there might even be just, Hey, I want to network so that I meet more people in the field so that maybe my possibilities open up. Like, so those are kind of what I'm thinking. Like, so like for you
Starting point is 00:26:56 personally, what, what would be the thing that would drive you towards doing it? It would only be to, to, to get better and learn something any other anything else i feel like you're going at it for the wrong reasons and you're going to lose interest over time if you're doing it just because you want more money then i mean there are there are quicker schemes to making money than and that i feel like because the amount of time that it's going to take you your heart has to be in it more than just, you know, because you want more money, right? Like, I feel like that's a reason that would cause you to burn out or a career path, right? Like it could be a career path, but it sounds
Starting point is 00:27:35 like for you, it's just self self-improvement is really what it boils down to. I would think so. Yeah. What about you, Jay-Z? Yeah. so I think with both certifications and the college, the universities, they open doors if you don't already have those doors open. So if you come out with a computer science degree and you've got no work experience, that can kind of trade for that. Same with certifications. If you are a front-end developer and you want to get into back-end and you go get a java certificate then that's a step in that way so if you go into interview it's better to have that certification than not um but aside from that though the certifications they vary so wildly like the ccad uh the kubernetes one very valuable uh cloud certifications there's a lot of money in cloud security certifications networking like those are good ones to get what's the best javascript certification to get right now
Starting point is 00:28:28 oh is there one there's a thousand of them i just looked i've never heard of any of them you know so that's kind of my point is like for languages for java for c sharp for you know all that stuff like they're out there but they're just not very popular and i kind of feel like that way about uh degrees too so if you get an electrical engineering degree or math degree or computer science degree, those are going to trade really well for you compared to English, history, psychology, stuff like that, philosophy. I mean, like go after those if you want to, if you want a different kind of career path. But those aren't going to open doors to programming the same way that one of those other degrees I mentioned are. And,
Starting point is 00:29:09 you know, so it's definitely different. If I knew I was going to live for a hundred years more than maybe, you know, I just picked that number out of hat, but you know, I probably would go and go after a bachelor's, I would go finish my bachelor's and then go after a master's degree in something.
Starting point is 00:29:26 Because there's things that you can get an advanced degree on that are really hard to learn your own. They either require specialized equipment or like specialized mathematics or stuff that you can't just find a getting started guide on YouTube for like radiology, uh, physics, or, you know, I made that up, but, uh, um, astronomy or like these like really specialized domains,
Starting point is 00:29:50 which could be really interesting and really cool and really kind of push the whole human race forward in a lot of really interesting ways. But there's no dev to article on, you know, getting started with that in 10 minutes. And so I, you know, I think depending on what you,
Starting point is 00:30:03 what your goals are, uh, it can, you know, really change how valuable those things are for you but ultimately you know it's all opportunity cost too it's like if i were to go uh get a bachelor's and master's uh then that's that would be years of effort and focus that's taking away from other things i could do so if i was just about making money i would not go for that route unless I had no other doors open for me. So me, you know, personally right now,
Starting point is 00:30:30 my life, my age, where I am in the career, uh, education is not interesting to me and certifications are only interesting to me in that. It helps me kind of a focus for learning. So I did the GCP certification last year,
Starting point is 00:30:41 which is probably what you're thinking about when we talked about it. And I'm the same opinion then, like, uh, I what you were thinking about when we talked about it. And I'm of the same opinion then. Like, I like it because it gave me something to focus on. You know, it let me kind of pass the test and prove to myself that I could do it. And then I instantly forgot everything. So it's like all the bad you ever hear about certifications, you know. Well, that's the thing about school too, right? Like, I mean, in all honesty.
Starting point is 00:31:02 But I would still do the CCAT. Like, I would definitely entertain it. This is obviously a good one. Well, but that's kind of my point, though, with the amount of time that you spend working on something, though, right? If you only do something for three months, it's really easy for that to be forgotten because it was never established as muscle memory as much. Whereas if you work on something for like two or four years, that's going to become more ingrained into you. It's going to become part of your muscle memory that it would be a little bit harder to forget.
Starting point is 00:31:38 So I agree with that. Although, unless you're going for a doctorate, which typically is more focused, right? So you could work on something for multiple years in a doctorate, but I don't think you're going to get that in a master's, right? Like, because it's not much different on the subject. Well, that's kind of where I was going is like, even when we were getting our bachelors or, you know, when we were working on that stuff, like you have a course that you take
Starting point is 00:32:01 for, you know, three, three to six months then you're on to a different one, right? And you're typically changing gears. I don't know. I guess to your point, I agree that if you have a long-term gradual learning and just being entrenched in something, definitely it'll stick better. But I don't know that you get that with a master's. With a PhD, probably. And depending on the master's program that you're going after, right? Like if it's something highly targeted, like, um, machine learning type stuff, then maybe, maybe you're entrenched in it there, but I don't know that it's interesting. Here's where, um, as a, as a grown 21 year old,
Starting point is 00:32:45 um, why are you laughing at that? Uh, this is, this is where I have grown to appreciate going to college or university. Have you, you recall, have you ever heard of that thing? Like it's a,
Starting point is 00:32:58 like a fight or flight type of thing where like, um, when you're in like a life threatening emergency, like why, why do you remember every detail so vividly? And they say that it's like a fight or flight thing. Like your, your mind goes into like sensory overload to like, remember everything so that, uh, you know, if you're ever in that situation again, like, you know, you can be aware of it and, and, and, you know, it's like a, a self-preservation kind of mechanism that the brain does kind of thing, you know? And, and I kind of think of like, I now kind of think of like college and university as
Starting point is 00:33:35 being that same kind of sink or swim thing, because like every, you know, depending on if you're on a semester or quarter system, but you're going to get a short, a short period of time. So let's say it's a quarter based, uh, system for your particular university or whatever. So that, that short period of time, you're going to have to sink or swim. Like you're going to be in that fight or flight mode for, for a very short period of time on some new subject that, you know, you're just gonna be thrown in the deep end and have to like come out ahead.
Starting point is 00:34:03 Right. And so, so as a result of that, like things kind of get baked in more like you're, you know what I'm saying? Like you get, you become aware. And then guess what? You got to repeat it all over again on you, on another subject that's going to build upon the last one. Right. And again, you're going to be put in this like sink or swim, fight or flight type situation where like for a very, you know, for a short amount of time, you got to hyper focus on this one thing and come out ahead on it. And you're going to keep building on those building blocks, right? That is college in a nutshell. So that's interesting. I think that was never it for me because it was never like fight or flight. School was just such an all school from high school through college and everything. It was just prepare for the test, finish the test, move on. Like all that information is gone the next day.
Starting point is 00:34:57 That's sort of how I approach school. I think you take for granted so much that you learned in school. To say what you just did, man. That's like, you're taking so much for granted. But I guess that's what I'm saying. Like those, that slow-mo thing that you're talking about, and I know exactly what you're talking about. That just never was. It was like school was a task.
Starting point is 00:35:18 It was a punch list for me, which is interesting. So I guess, I mean, we all approach it differently too. But so Jay-Z, back to finishing up what you were saying. So you brought up the good of school, the good of certifications. Like, do you, like, what's your goal when you do it? I know you said that there's the task, you know, like you said, you learned the GCP thing. And, you know, hey, I was able to finish that, you know, good, awesome. Is it so that you get better at the things? Is it potentially something to put on your resume? Like, like what is it that drives you to finish those things?
Starting point is 00:35:53 I usually just want to learn, but for the most part, I wouldn't normally get a certification. That was just something where I was in a cloudy arena. It was like something I knew very little about. And so I didn't feel like I even knew enough about it to go after it like self-studied so it's like i wanted to use some sort of guide on it i found a guide and the guide was you know kind of tuned for the certification so it's kind of these things make sense and like once you study for a little bit it kind of gives you a nice finish line there to say well you know let me make sure that i actually did study this why not cover every chapter maybe i won't skip the things that i think i know already like let me make sure that I actually did study this. Why not cover every chapter? Maybe I won't skip the things that I think I know already. Like,
Starting point is 00:36:26 let me flush this stuff out. Let me, uh, you know, do the practice tests and stuff and let me see. So it was kind of a cool experience. Uh, and so,
Starting point is 00:36:33 you know, I don't regret doing it, but I'm, you know, I'm wouldn't go get that one again. Just hasn't done anything for me. You know, did you put it on your LinkedIn or anything?
Starting point is 00:36:42 Oh yeah. Yeah. Okay. So, so there was at the end of it, you're like, okay, I accomplished this. I'm going to put it up there. Yeah. Yeah.
Starting point is 00:36:50 That's interesting. I mean, from my perspective, I've definitely thought about getting a master's in that kind of stuff. And my biggest problem is kind of what Jay-Z hit at. It's the opportunity cost. For one, I don't know that I'd go into a computer science field. Maybe I would, maybe I wouldn't, but it's almost like if I'm going to go to a higher level of education, I want to broaden my horizons a little bit more. You know what I mean? So it's almost like I would probably go for, um, God, I can't even think of
Starting point is 00:37:24 what they're called right now. What is the MBA? I'd probably get something like an MBA, right? Just so that you get more of the broader business knowledge. And that's a different path than if you were to go hyper-focused on something like ML or AI or something like that. And I don't know if it would be monetarily driven to your point outlaw. Like, I don't know that, that I would go into it thinking that because the problem is maybe you don't make any more money doing it. Right. And maybe you don't end up changing career paths. Um, so that, that's a hard one. Now on the flip side, certifications to what you said, Jay-Z, like I'd have a hard time going and getting a certification in TypeScript.
Starting point is 00:38:05 Like it doesn't, unless I was just trying to do what you said, which was trying to take a test to see if I understood the stuff right at the end, that's really the only reason I would go after it. However, something more like Azure Cloud Architect or AWS Cloud Architect or GCP, something like that, like that can actually pay the bills, right? You get a certification in one of those things, there's not a ton of people out there who've done it because they're not easy to do. That can help monetarily, right?
Starting point is 00:38:35 And I think if I were to go after something like that, it would be twofold. I would want to understand the bits of Azure or AWS or GCP to know how these services and things tie together, right? Like there is a lot of value in understanding if you're on GCP, what's the difference between Bigtable and one of their other storage technologies, right? Or if you're in Azure or Cosmos DB versus something else or whatever. So those pay value in my daily thing. But then also I feel like that's something really big, right? Like if you come with the creds that you are certified in a cloud platform,
Starting point is 00:39:13 that seems like a pretty big deal. So that one would definitely be sort of more monetarily driven for me than I think than the school one would be. Yeah, that's a good point too. Like if you're billing yourself as a consultant for Kubernetes or consultant for AWS, you kind of need that. Yeah. Because like, you know, that's everyone you're competing with,
Starting point is 00:39:32 you know, someone that was like looking to hire you or bring you in, like they kind of might expect that of you. And so it's almost like just something you need to do to check that box. Yeah. And you do learn a lot. I mean, I started doing the Azure Architect when, man, I was days into it and had barely scratched the surface. And I learned a ton just going through all that information. So, yeah. Cool. All right. Well, so I had a quick one here that Jay-Z just reminded me of,
Starting point is 00:40:06 but he was talking about canines, mentioned pain for canines. And, you know, I was hard on it when it was first mentioned and everything. Again, I mentioned earlier I don't like change. But, you know, because when Jay-Z first introduced me to it, I don't know, maybe like in its particular, in that particular version or whatever, I don't, I don't even know the details, but I remember like I ran into some issues with it, but you know, since then I was like, I'm going to give this thing another try. And you know, I was, uh, you know, uh, going to give it its due. Right. And now it is like a daily, uh me. Like I am definitely a convert.
Starting point is 00:40:47 So I wanted to like, you know, since Jay-Z brought it up, I was like, hey, you know what? I should give it its fair shake to say like, you know, I can admit when I was wrong, you know? What's the saying? Like a big man can admit when he's wrong, right? So I can admit that I was wrong. And yeah, it's quite awesome. And I use it all the time. I don I don't know any cube cattle commands anymore though. So that's the sad part. Uh, but, but yeah, I do, I do use it like all the time now. So yeah,
Starting point is 00:41:18 I heavily rely. In fact, like my, my default, uh, operation now is, um, I think we'd mentioned before that my preference on Mac is for, instead of using the built-in terminal is to use I term, uh, I term two, because you can specifically split the width, have a single window that has two separate terminals in it or more, uh, same as you can do with like a Windows terminal, for example. And so in either Windows terminal or iTerm2, my default standard is I split it at least, you know, into two different terminals, one that is constantly running canines and then one that is something else. And then that way I can interact with my Kubernetes cluster as I need to. And I can always be kind of mindful of what its current state is
Starting point is 00:42:12 as I'm doing something like, oh, why can't I reach that? Oh, it's because that pod crashed and I need to go figure out why. It's so good. So very good. And I threw a link in the show notes here to a Getting started with canines tutorial that Jay-Z put together. So go check it out. I mean, it doesn't, it's got a few views on it, but I think it's one of those things that if you don't know what canines is, you don't even know to look for it. If you're working with Kubernetes, you should check this video out
Starting point is 00:42:42 because it may make your life just way better like so much better that's kind of someone disliked it oh really someone always dislikes i'm sorry is that me thanks i'm just kidding i'm just kidding i wouldn't do that so i mentioned that i uh i just paid for the pro license today for canines i haven't even tried it yet actually uh i just got the license uh but the reason i did is one i just want to support it because i love it i use it all the time talk about all the time and you know so part of me was just like i don't even care if i you know about these features but there was one on there that caught my eye and it was something that i
Starting point is 00:43:19 actually missed from lens if you use mirantis lens one thing you could do is you could pull up say a deployment and it would list the pods and services and other you know labels things like that and you could click on it and maybe you know click on a config map or a secret it would take you to that config map or secret or pod or deployment or service or label uh well that is one of the things that the pro version of canines gives you and that's something that i've missed from lens so if i pull up a pod now a lot of times like i'm trying to find a problem so i'll go in this busted pod i look at it okay the setting comes from this config map what do i do exit the pod i go to the config map hopefully i haven't gotten distracted and forgot the name of the stupid thing i was just going to go look that go look it up and then i come back wouldn't it be nice if i could just kind of drill in just kind of hit enter and go to that next
Starting point is 00:44:08 resource and then maybe come back so that's this the feature that i'm most excited about and i think that's really going to speed me up and it's already it's just a such a nice way to to work that i'm looking forward to it and i'm happy to spend money even if it doesn't work like I think it does. And you know, well, real quick. So you mentioned lens, which is really good, right? Like it's, it's super good. I think it's been a tip of the week, some episodes back. The beauty of canines is it's very similar to that whole lens experience, except you never have to use a mouse. You can click your way or use a keyboard shortcut to get to everything that you need, and that's really why I like it better than Lens. Okay, so one thing I want to say, it's super cute.
Starting point is 00:44:55 If you go to the caninecli.io, it's who let the pods out. Yeah. But I want to be clear, too, or at least make sure that we're talking about the same thing, because you're saying like a pro version, but I think is that what they refer to as the canines alpha? Yes. Okay. So it's the alpha dog. So canines alpha dot IO is the paid version that you're referring to. Yep. Yeah. It's's interesting i don't fully understand the distinction there's um there's a p1 tier which is 100 bucks a year and then
Starting point is 00:45:31 p2 which is 200 a year and it looked like it just kind of increased some numbers i didn't really understand it added support and stuff i guess it definitely looked like an enterprise kind of you know user thing so i was i stuck with 100 um but yeah'm excited about it. It does look like they've rewritten part of the core engine, so things are supposed to be just kind of faster and less buggy. But it is a fork, so it's got a divergent path from canines. So, you know,
Starting point is 00:45:56 whatever that means. But yeah, it's interesting. So let's see. What does it... So you get access to Kubernetes resources list, resources resource list limited to 20 entries, maintenance updates issues and fix, issue fixes
Starting point is 00:46:17 and improvements, Kubernetes release updates, documentation, basic support upgraded code base with performance issues. That's in the power one. That's the one you got, right? Yep. But there was one, there should be one other item there. And then there's power two, which I'm assuming is going to be all that, plus other stuff.
Starting point is 00:46:36 But it looks like it limits. So unlimited resource lists. Yeah, I don't understand resource lists. Maybe you can go grab a service and a pod and maybe you can like kind of group things but i don't know i actually have no clue what that means exclusive access to new features and enhancements uh let's see that's already said issue feature prioritization so i guess maybe if you like report an issue you can have your issue can be prioritized to be fixed. Maybe, maybe that's what those are referring to.
Starting point is 00:47:12 And then discounted promotional offers on license renewals and apparel. That's the, that looks to be like the differences between power one and power two. Hey, so I had somewhere else that I was looking at the differences between one and two. So I'm going to look for that because the one thing I was excited wasn't listed on that page, but I definitely saw what you're talking about. Dang it.
Starting point is 00:47:36 Yeah. Well, either way, good stuff. And I just wanted to, like, you know, be on the record to say, like, I was wrong. And, yeah, it's's awesome give it a try i haven't tried the alpha though so i can't is it do you notice this i guess the performance difference so i still haven't tried it oh you did say that never mind yeah so they call it um resource graph traversals canis alpha provides for easy traversal of Kubernetes resources and their dependencies. And there's actually a lot of
Starting point is 00:48:09 other features. It's on just the main page. Built-in benchmarking, role-based authentication, and access controls. Multi-resource views. It provides for an overview of your cluster resources with pulses and x-rays. We already had that. So, yeah.
Starting point is 00:48:25 So, I don't know. We'll find out. I'll find out. I'll let you know. Custom skins? Well, the regular canines had custom skins. We've talked about that. It's actually one of the tips is that you could have it specific to a cluster.
Starting point is 00:48:44 You could have a different coloring or a different skin for it. Don't feel bad about your purchase. You're just trying to support them for doing awesome work. I am not trying to make you feel bad about your... That wasn't my intent. Gosh, y'all. Don't listen to Alan. That's not what I was trying to do. I mean, it is money that could have gone to a mountain bike, but I mean, I'm just kidding. That was a joke. You don't have mountains in Florida. No, we got alligators.
Starting point is 00:49:12 So I was struggling to come up with an idea for something to talk about tonight. And so I actually went to, and here's a free tip for you. Dev.to publishes the most popular articles every year. So if you go to, I don't know, I'll look it up. It's like dev.to slash year. Best of the year. And I shouldn't say it's not really best. Yeah, I'll look it up.
Starting point is 00:49:37 It'll be in the show notes. You gotta go to the show notes for it. Or you can just Google for it. But it's basically the ones that were the most popular based on views or whatever. And number one for 2020 was this uh full stack developers roadmap and we looked at roadmaps before uh one if you remember a couple years ago or a year ago we looked at one that was like a front end one there was a back end one there was a devops one and it kind of showed how they connected a little bit it was really well done uh this is different i thought it was interesting because it combined front and back.
Starting point is 00:50:06 And just I've scrolled through a little bit, but I wanted to keep it fresh. There's definitely some things I disagree with here. And so, you know, I figured we'd not like not go crazy on it. But I just thought it'd be kind of interesting to see what one person thinks is the full stack
Starting point is 00:50:22 roadmap. And the first part, it starts with, and you'll see just how different this is from other ones that were very technology focused is the first couple of links are just how the internet works. Like what happens when you type google.com and into your browser window, DNS,
Starting point is 00:50:38 networking, routers, all that sort of stuff. IP addresses, HTTP two, things like that. So I thought that was really cool. Just route the gate. Like, Oh, that's good stuff. IP addresses, HTTP2, things like that. So I thought that was really cool. Just right out the gate, like, that's good
Starting point is 00:50:48 stuff. Yeah, their take on full stack goes deeper than most conversations of full stack. Totally. Yeah. And it's got a section here for advanced front end. So a couple links to HTML
Starting point is 00:51:04 and CSS, JavaScript. That's fine. It does have a section on for advanced front end so a couple links to HTML CSS JavaScript that's fine it does have a section on operating systems which is another one that's like something that you don't really see in other roadmaps so it talks about command line shells, memory, unix programming pipes, stuff like that bash scripting so I thought
Starting point is 00:51:19 hey now here's where I have the biggest problem so we'll try not to dwell on it the languages uh section for full stack developers uh they already mentioned javascript to front and if you look at the comments so many of the comments are then people saying you don't have javascript listed but it's in the advanced front-end section it's just not listed under languages it actually is though isn't it Oh, it's server-side JavaScript. Oh, I think they added
Starting point is 00:51:48 that after the comments because it does say it has an edit on it. So, okay, I did miss that. Good call. But yeah, the languages they have for full-stack developers are PHP, Ruby, Rust, Go, and JavaScript. Yeah.
Starting point is 00:52:04 Seems a little. Yeah. What's missing? Yeah. Java. Java. Huge. C sharp.
Starting point is 00:52:11 C sharp. Yep. Python. Python. Yeah. Yeah. Well, really like any of the compiled languages are missing, right? Like these are all languages.
Starting point is 00:52:20 Yeah. Yeah. It's got a rough term going there, but those are like pretty you know bleeding edge those aren't you know not nearly as common as like a c++ but i'm like ruby ruby's on there but python's not like whoa yeah it'd be hard to recommend learning ruby as as one of your first languages right now just not because ruby isn't awesome but just because it's, it's not got anywhere near the lion's share of the market now. Yeah. And this is only from a year ago.
Starting point is 00:52:50 So to, to not see Python or like Java too, it just seems like such a wide miss. It's like, like, and I don't, I'm not faulting this person. I'm not saying they're wrong.
Starting point is 00:52:59 This is their experience. They put this article together, you know, the goodness of their heart. And so, you know, thank you for doing this. You put it out there for us to judge.
Starting point is 00:53:07 Yeah, totally. You could just tell this is someone who thinks about programming as websites, which is fine. It was interesting to see that. Do they? Because they also didn't say CSS and HTML. Or even client-side JavaScript.
Starting point is 00:53:24 It's under the advanced front-end section. Oh, right. So they do have a link there. I didn't mention that. Okay. Yep. What else is necessary? Version control,
Starting point is 00:53:33 which is something that a lot of people maybe don't think about, but you spend a lot of time with it, especially if you goof something up, as you all know. If you don't have Outlaw around there to call on to help you out then yeah good luck and they mentioned subversion in here which i was kind of funny i don't know if
Starting point is 00:53:52 that's crazy you know so you got subversion but not java come on right i was thinking the same thing no and uh the back end um the back end roadmap that we looked at before was like Mongo and SQL Server and Oracle and things like that. Here it's like object relational mapping, asset compliance, NoSQL, indexes, normalization. So it's a good list. I like the take on it. Relational databases has its own big section. NoSQL API is something we talked about recently. They've got a big section on that.
Starting point is 00:54:25 GraphQL also highlighted. They do mention Hadoos. Hadoos? I don't know how you say that. Me either. And then we got cache. There's a section on caching, which I don't even know how you do that. Nobody does.
Starting point is 00:54:40 Nobody does. Security, big section. So, yeah, it's just interesting. There's a small section on CI, CD. So, I just thought it was kind of interesting to bring it up. So, big section. So yeah, it's just interesting. It's a small section on CI, CD. So I just thought it was kind of interesting to bring it up. So this is number one. And I looked at the others, and there was kind of like a mix of kind of odd birds, but I thought this one was really good.
Starting point is 00:54:57 I'm pretty sure the way caching works is you just hold on to stuff until you run out of space. Yeah. Then you just crash the system. We're familiar. We're familiar. Yeah, this is actually a really good list. I mean, like you said, little nitpicks aside, I mean, this is complete. Yep.
Starting point is 00:55:16 Oh, and I found the URL is dev.to slash top slash year. It tells you the top post for last year. You also do top week and see the top post for the last year. You also do top week and see the top post in last week. Day also works. There's another tip for you right there. Pretty cool. You said top
Starting point is 00:55:35 that slash year? Slash year. Okay. Top post for the year. Oh, really cool. Didn't know about that. That should have been a tip of the week. Yeah. I'm that. That should have been a tip of the week. Yeah. I'm pulling this. It was good stuff. There you have it.
Starting point is 00:55:50 Joe's full of it. That was the takeaway. Yeah. This episode of coding blocks is sponsored by data dog, the monitoring and security platform for end-to-end visibility into your Java applications. Datadog provides out-of-the-box customizable dashboards, actionable alerts, distributed tracing, and an always-on low-overhead Java code profiler for your production environment, all in one place.
Starting point is 00:56:20 With support for over 450 technologies and automatic instrumentation for popular frameworks, you can start monitoring your Java applications alongside the rest of your stack in minutes. And 450 is a lot. They probably got you covered on whatever you're doing. And remember, this is a free trial. So you can go and sign up and create dashboards and get started with those integrations today to see what things really look like for you and see how this is going to be awesome for you. Yeah, and you know, we're always going on about the Datadog blog because they always have amazing articles.
Starting point is 00:56:56 And of course, you know, specific to Java, I was going to mention, you know, because we were talking about Docker before, I was going to mention all the stuff they have on Docker. But since we're talking specifically about Java, as it relates to a data dog, of course, they've got a whole section of docs and all the common Java frameworks that they support,
Starting point is 00:57:14 you know, beautiful documentation on how to use their, how to use data dog to profile your Java applications. So I'll have a link there in the show notes for the Java documentation. But really, you can't go wrong. Like it's every technology that you're going to want to monitor, Datadog has you covered with their 400 and plus built-in integration. So start your free trial today
Starting point is 00:57:46 to start monitoring in real time. And listeners of this podcast will receive a free t-shirt once you install the agent and create one dashboard. Yep. So again, go start that trial with datadoghq.com slash coding blocks. Again, that's datadoghq.com slash coding blocks to get started today. Well, I'm kind of confused. I don't know where to go from here. I threaten you all with a review, you know, with DJ voices. If we don't get a review, we get a review. You say you love the DJ voices. Alan and Joe then don't respect the threat and instead still do the DJ voices. And we get more comments that you love the DJ voices. So here's the deal.
Starting point is 00:58:34 If we don't get another review, then they're not going to do another DJ voice. How about that for a threat? I flip it upside down. Oh, that hurts. Yeah. Why are we threatening the audience audience we love you on it
Starting point is 00:58:47 oh i guess i am being taken a hostile approach to this huh yeah i think outlaws damaged by the number of of late night dj voices you know it's just so i am man i just so am i just can we just take a moment and relax and just, you know, go outside and see a movie? Yes, we can. Yeah. All right. So I guess leave us a review. Let's just put it this way.
Starting point is 00:59:14 I would like a review. It really does mean a lot to us. It puts a smile on our face. Apparently, maybe you'll hear late night DJ voices or maybe you won't. I'm confused at this point. Um, even though it makes my ears bleed, I guess you take enjoyment in that. So, uh, yeah, if you want, if you want to, you know, inflict pain on me, then, uh, why I'm in a really dark mood.
Starting point is 00:59:41 You know, what's going to be sad is if like 50 new reviews come up they're all like we love the dj voices then the people are going to be like oh they want to they want to inflict pain on outlaw that would be hard uh yeah okay so i'll edit that out i'll edit that out i don't know that my sensibilities could take that right now uh you can go to www.codyblocks.net slash review and find some helpful links there on the page.
Starting point is 01:00:10 I'm going to quit my job. Why did the developer quit their job? I don't know. Because they didn't get a raise. Good. That was from Klaus. Thank you. Yep. Because they didn't get a raise. Oh, uh, good. That, that was from Klaus.
Starting point is 01:00:28 Uh, thank you. Yep. Thank you. All right. So a few episodes back, we asked which desktop OS do you prefer? And your choices were windows.
Starting point is 01:00:43 I like my OS named after things I don't look through anymore or Mac OS. I like my OS named after places I don't go to or Linux. I like to learn how to pronounce my distribution. All right. So this is what 67. Okay. So one 67, uh, to tuck goes trademarked, uh, pattern here, Jay Z. You are no Alan. You are up first.
Starting point is 01:01:10 Yeah. You're sorry. Trademark. I think, uh, we're going to go with windows here. Um, don't have any great reason.
Starting point is 01:01:17 Uh, and I'll go with 40%. Okay. Uh, I'm going to go with Windows at 33%. Okay. Undercutting me.
Starting point is 01:01:34 I'm going to win this one. I could give you a reason, too, Alan. You're like, I don't have a particularly good reason, but gaming would have been a fantastic reason to pick Windows. Great reason, yeah. gaming would have been a fantastic reason to pick windows. Great reason. Yeah. All right.
Starting point is 01:01:47 So Alan says windows for no reason at 40%. Uh, Jay Z says windows at 33% because he wants to win. And I think he likes to under cut Alan when he can. Uh, so I love it. I love it. We definitely have a can. So I love it. I love it. We definitely have a winner here. And I love it
Starting point is 01:02:10 when we have a super strong winner. It's like, for both reasons, you know what I'm saying? Not only was it the right pick, but they didn't go over. That's what is so awesome. So, yeah. Who was it? I'm sorry,
Starting point is 01:02:26 but yeah, you lost and he won. But, but who? Anxiety building. That was so great. It's so cool, but it works so good.
Starting point is 01:02:41 Yeah. No, Alan won. Sweet. It was probably like 60%, wasn it no it was 49 49 that's good yeah surprisingly linux beat out mac i i did not see that coming yeah oh me neither i really i honestly expected it to be windows mac than linux um so i am i am a little excited to see that Linux was second what was the percentage on that one? 31 oh that's pretty high
Starting point is 01:03:10 yeah that's nice now I want to know what distro they can't pronounce it they don't know yeah is it Ubuntu Ubuntu Ubuntu Ubuntu it Ubuntu, Ubuntu?
Starting point is 01:03:25 I don't know. Ubuntu? It's all about whichever one has the best-looking default wallpaper. Oh, is that it? That's what I want. I've never read how you can get good ones. Mint used to be good, right? Yep.
Starting point is 01:03:38 Yeah, so all right. How about for this episode's survey, we ask, how do you prefer to get on the network? Sock first. Sorry. Good on you, Sarah. You're a good man. You're a good man. Sock, internet, shoe.
Starting point is 01:04:02 That's right. Sock, internet, shoe. Or sock, sock, internet, internet, shoe, shoe. Right. Or internet, internet, sock, sock, shoe, shoe. Okay. All right. How do you prefer to get on the internet?
Starting point is 01:04:17 Wireless. I can't be tethered by cables. Or wired. I need all the bandwidth and low latency I can get. I'm really curious to know what you guys, don't say now, can't go taint the jury pool, but I'm curious to see how you guys are going to answer that one when we can talk about it. All right. Have you ever really been happy with your project management tool?
Starting point is 01:04:49 Yeah. Most are either too simple for a growing engineering team to manage everything or too complex for anyone to want to use them without constant prodding. Well, shortcut formerly known as clubhouse is different though, because it's worse. We know what you mean. It's better. Shortcut is a project management built specifically for software teams, and they're fast, intuitive, flexible, powerful, and many other nice, positive adjectives.
Starting point is 01:05:17 Hey, let's have a look at some of their highlights. Team-based workflows. Individual teams can use Shortcut shortcuts default workflows or customize them to match the way they work org wide goals and roadmaps the work in these workflows is automatically tied into larger company goals it takes one click to move from a roadmap to a team's work to individual updates and vice versa type vcs integrations Whether you use GitHub, GitLab, or Bitbucket, Shortcut ties directly to them so you can update progress from the command line. Keyboard-friendly interface. The rest of Shortcut is just as keyboard-friendly with their power bar, allowing you to do virtually
Starting point is 01:05:58 anything without touching your mouse. Throw that thing in the trash. Iterations planning. Set weekly priorities and then let Shortcut run the schedule for you with accompanying burned-down charts your mouse. Throw that thing in the trash. Iterations planning. Set weekly priorities and then let Shortcut run the schedule for you with accompanying burndown charts and other reporting. Give it a try at shortcut.com slash coding blocks. Again, that's shortcut.com slash coding blocks. Shortcut, formerly known as Clubhouse, because you shouldn't have to project manage your project management okay so i have one more here that was really interesting so i don't know about you guys when you're developing like do you go after any particular pattern so what i mean is we we've we've all been through so many topics since we started this show and even before, right?
Starting point is 01:06:47 Like reading books and all that kind of stuff. So there's tons of patterns out there, right? There's the MVC. There's the MVVM. There's service-oriented. There's all kinds of things, right? And I always find myself sort of stuck in the middle of a bunch of them because I'll be working on a project. I'm like,
Starting point is 01:07:08 Oh man, this would be great if this had like a domain driven design type aspect to it. Right? Like there's some business objects right here that did just seem like they're tailor-made for that kind of thing. And so then I'm like, well,
Starting point is 01:07:22 how do I cram that in here? Because this thing isn't set up to be fully DDD. Um, and I, and I'm constantly going through those types of things when I, when I'm developing and I try to follow decent patterns. Well, the other day I was sitting there and I've had this thought so many times is where does the business logic go? Depending on how your project set up, like you have, let's say like in this case, I had a repository and that repository had models that it filled in. Right. And, and I look at that and I'm like, that model shouldn't have the business logic in it.
Starting point is 01:08:04 And so I went and did a search just out of pure curiosity, like, hey, where should the business logic go? And I think I put something like, should it go on a service or something? And this Stack Overflow article came up. It was so good. Basically, the gist of it was when you're talking about a service, they actually they call it out in the Stack Overflow post just like this. Service is not a canonical or generic software term. In fact, the suffix service on a class name is not like it is a lot like the much maligned manager class. Right. It tells you almost nothing about what the object actually does. In reality, what a service ought to do is highly architecture specific.
Starting point is 01:08:53 And I love this because he breaks it down into just a ton of different bullet points here, right? He talks about MVP, MVC, MVVM, MV, RPC style, domain-driven design style, service-oriented architecture. The word service is so generic that it means something different in every one of those type of setups. And I just wonder, do you guys run into these thoughts in your head when you're looking at something? When I looked at it, I was like, there's no way I'm putting this business logic in a model. So I'm going to set up a service class to make this happen, to operate on the model, because I don't want to junk up this thing that's sort of a pure object that's coming from some sort of storage and put a bunch of logic on that, that other things don't care about, don't need, don't want, you know, do you guys get stuck in this headspace where you're constantly going, ah, maybe I'll put it there. No, maybe I'll put it there. Yeah. I mean, I definitely run into this,
Starting point is 01:09:57 especially when you're talking about like, you know, I've, I really liked the idea of having DTOs and data classes and having that be separate because different use cases require different things. And so the data kind of stays the same. So it makes sense to me. On the other hand, I've also read about anemic models. And I think we've had the terms for over the years where people argue that that's a bad idea. And that OO is all about combining the data and the behaviors together. And that's like those behaviors belong on the things, on the models of the real world.
Starting point is 01:10:26 So that makes sense to me. So I always feel torn. And I think, you know, we kind of talked about clean architecture a little bit. We kind of talked about having almost like, I don't want to say copies of the objects, but basically you have like these kind of these objects that live in that layer. And then when they go to another layer, they have another representation there that gets kind of serialized in or out. and so maybe that's kind of takes care of that problem i was having where the ui thinks about you know think about a video game like there's enemy class the ui you know
Starting point is 01:10:54 cares about what that looks like maybe there's business class that cares about their stats and how many hit points they have and then there's a website that cares about the table that it lives in the object id and stuff, where that data comes from, and how many times it's been killed or it's killed players or whatever. And those are three different contexts that care about different things about what's ultimately kind
Starting point is 01:11:16 of the same thing. But I think the argument there would be that there would be three separate classes, and you'd just have to kind of marshal across there to do a translation so that you could change one without affecting the other two and so i i mean ultimately i don't really know what the answer is but there's something that feels good to me about having the data separate even though you know i feel like someone's gonna yell me about it what about you outlaw i feel like uh it's kind of like try try try i always feel like i'm still doing it wrong
Starting point is 01:11:46 like it doesn't matter where we're like at the time that i'm writing the code i'll always feel like i think i'm doing the right thing you know i'm separating these things part right i think i like this and then afterwards i'm done you know and i'll come back to it like a year later i'm like oh my what is this oh god was i was I drinking at that time? Was I, maybe I had stopped drinking and that's what the problem, like I always look at it like weird, you know? And so I don't know, man, like I'm never going to be satisfied with it. So who cares? It's frustrating, right? Like, I mean, I guess I shared that because, I mean, you just heard from three different people. Like, collectively, we've been doing this stuff for a very long time, right?
Starting point is 01:12:33 And we still look at things and we go, I don't know. That doesn't feel right. Or maybe this does feel better. And it's not like there's one definitive pattern that we've ever just fallen out and we've just followed it for the rest of our careers. It just hadn't happened that way. Yeah, there's so many. I mean, I will say that we have worked together for a long time, so we've definitely
Starting point is 01:13:04 gotten into situations where a pattern gets established and we're like, okay, we'll continue to follow this pattern. There's a lot to be said for that, because even if you don't like an existing pattern, it's better than chaos. I don't know though. I mean, I always struggle with some of these concepts and I mean, I've talked about this before, you know, even in recent episodes where it's like all these things that we've read and, uh, you know, the different books that we've studied and whatnot.
Starting point is 01:13:38 And you know, sometimes they're, they're great ideas. And then sometimes the, the difficulty to implement some of them or to bring them into your, your, your particular world, you know, that reality might just be so much effort that it's like, you know, especially, you know, if it's a greenfield application, then it's a lot easier to start in a good pattern. But, you know, once something is established, it's a lot more difficult to change things over.
Starting point is 01:14:07 And so that's why sometimes I'm just like, okay, I'll just, you know, continue to follow whatever the, whatever our current pattern is of doing something. And on the next green field, you know,
Starting point is 01:14:18 sure. I'll try to do something that I will eventually not be happy with, but. You know, there are two things that I think that in terms of these types of patterns that have jumped out at me that I've noticed over the years. One is typically when you see an MVC, you'll have like your model, your view, your controller, right? And your controller is usually your endpoint, right?
Starting point is 01:14:44 Like some sort of API call. One thing that I've absolutely hated, and I kind of will just fail pull requests on it all the time now. If I see business logic in the endpoint layer at all, I'm like, no, you know, you get that thing out because you can't reuse that. If somebody needs that business object somewhere else unless they're willing to make an http call assuming this is some sort of rest in point they can't do it they can't use it so i'm not a fan of that right like move that logic somewhere else the other thing i've noticed is i really as much as i hated that book, I mean, truly hated that design-driven or data-driven. I knew you were going to this one.
Starting point is 01:15:30 Huh? I knew you were going to this one. Yep. DDD. Yeah. As much as I hated that book, and truly hated that book. It was the most boring read on the planet, but it was probably one of the most valuable books that we dug into. In my opinion, I really liked what they laid out in that, right? Like I'm always, when I get into a situation in an application,
Starting point is 01:15:56 I'm always looking at it going, man, it would really make sense to set up the aggregate route here, right? You're only interacting at this top level, right? Everything else happens under the scene. So you're not having to worry about managing 50,000 different objects. Your aggregate root takes care of it all and all the functionalities up there. But it's just such a bear to set all of it up that I always find that I'm in some sort of hodgepodge type world where it's sort of half implemented in the application I'm working in, but not fully because it's just too much to go after it.
Starting point is 01:16:32 Yeah, that's the one, you know, like looking through this list of that this author is talking about is or, you know, the commoner or answer or, or, uh, is talking about in this stack overflow thing. Um, that's, that's the one where like, I don't feel like I have actually been in a DDD type environment that I would really like to be in a, in a, for real, you know, code base like that. And to your point, like I would love to go back and restudy that subject, but from a different book. Yeah. Because it's,
Starting point is 01:17:15 it is, it's not an easy read. Uh, you know, so I don't know, maybe that says more about, maybe that says that I have like, you know,
Starting point is 01:17:26 a first grade reading level and, and that's why like I can't,. Maybe that says more about me. Maybe that says that I have a first-grade reading level, and that's why I can't. Maybe that was the problem. But yeah, I mean, it's dry. It's not, you know, it wasn't an entertaining read, you know, compared to some of the books we've read. But what he has, what was his name, Evans, Eric? Was it Eric Evans? Eric Evans, I think, yeah.
Starting point is 01:17:45 Yeah. What he gave to the world in that book is invaluable, but maybe there's an easier to... Maybe there's a DDD for dummies or for first graders, and I should read that one instead.
Starting point is 01:18:02 I feel like I'm being very pessimistic and hard on myself tonight. I'm in a really dark place, I guess. I don't know what's going on. Let's pull you out of the hole. No, honestly, it wasn't that none of us could understand the book, if I remember right. And it's been a while. It was just so wordy.
Starting point is 01:18:19 Just thick in the vocabulary. So everything kind of had to chew on each sentence a little bit. It was like reading a contract, like a legal document. It was just mental wear trying to get through that book. But some of what he revealed in his approach to software design was just beautiful in terms of application development. And it just, it was too hard to consume,
Starting point is 01:18:51 I think is really what it boiled down to. But so, so yeah, I mean, I wanted to bring that up because I was curious if it was just me that looks at stuff that, you know, I've been doing for 20 years and still going,
Starting point is 01:19:02 should I put that a different, like, should I put that a service? Should I put that a different, like, should I put that a service? Should I put it in the, nah, it shouldn't go in that data object. That doesn't make any sense. Nah, I'll put it in the service. I mean, I definitely try to keep like DTOs simple, you know, personally.
Starting point is 01:19:19 I just want to like transfer the information. I don't want to have a lot of logic. That's the one thing where like, I think my approach, okay, so Michael Outlaw's approach to object-oriented development today versus when he was in school or fresh out of school, you know, is different because at that time, like, I felt like we were kind of taught in school, like, hey, because you're in an object-oriented world then you're like okay well i'm just going to pass you back a simple dto because i don't want you to really be able to muck around with it like here it is and if you want a method to do something with it then you know here's another method that can take a DTO in and return one or, you know, you know what I'm saying? Does that make any sense?
Starting point is 01:20:30 Totally. So what you're saying is, and I was getting ready to ask you this because where you were leading with it is you treat, you use object oriented less for its polymorphic capabilities than for its contractual benefit. Yeah, the type system. Yeah, exactly. So we're not trying to make a square, a rectangle, or a rectangle a square or anything like that. We're saying, yo, we got a shape. Here's our interface. And with that shape, you can get the area of it.
Starting point is 01:21:03 Right? Like, it's different than when we were being taught where it was like, hey, you got to try and figure out how to cram everything to fit this particular thing. Now it's more like, yo, the contract. What's the functionality that this thing can do? And then let things fit into that, which goes back to, I think, our first episode, which was I as for interface, right? So is that how you think about it too? I do use interfaces. So I don't want you to not take that away. I don't want that to be the takeaway,
Starting point is 01:21:32 but I'm more thinking about it as like, you know, okay. So like reading through this, you know, just briefly looking at this answer on Stack Overflow, right? Like, you know, the service thing to me, I think of is like, that's going to be a collection of, you know, functionality. It's going to be a collection of methods that you can go to do stuff. It doesn't have state. I don't think of it as having state, but it might pass back some state and it might take in some state as part of like one of those methods, right? You know, you'll pass state into the method, then it'll return back a result,
Starting point is 01:22:03 which is state. And so that state going in and out is where i think of the dto's but i mean i don't know i i it's more composition over over the polymorphism i guess is what i'm getting at and i think jay-z you were touching on that a little bit too is yeah yeah that's pretty much where i'm at like well definitely if i was programming 10 years ago then i would have done things very differently like i would have bundled a lot more behavior into my optics and so we you know i mentioned the like a game earlier by the enemy class that represented a you know certain type of enemy or represented all enemies and you would subclass it then it would probably have had code that knew how to save itself to the database. And it would have had the code that knew how to render it on screen.
Starting point is 01:22:49 It would have had the code that knew all its abilities. And so I would have had all that stuff in one spot, which maybe sounds like not so nice or maybe sounds not so bad because, you know, you have everything that that class owns is all available right there. And I can change it and it doesn't affect any other code. But reality what happens is there's all these little separate subsystems. So maybe I'm changing how the rendering works
Starting point is 01:23:12 and now I've got to go into my player class and my enemy class and my object class and there's these cross-cutting concerns that I have kind of built in by making these things silos of all their features. And so that didn't feel right to me and so now I'm much more likely to kind of think about things in layers. So maybe I would have like a graphical interface and database interface
Starting point is 01:23:30 and whatever other business logic interface. And so I would split that stuff out now because I want to be able to go change the things that change together together. And so if I want to make a change to the rendering, I want to go to the rendering system. If I make a change to the database, I want to go to the database system and make those changes. And so I think about things more horizontally,
Starting point is 01:23:53 I think across the board. And so I do end up with a lot more classes that are smaller, but it's just easier for me to kind of recognize and keep the things that are similar together. So I don't have like SQL spread out throughout because you know each object knows how to get its data and marshal its own data which that was kind of old old joe style there and now i definitely don't do that so i mean i'm thinking even if like the i don't know have we ever talked about that uh the you know the quote db code generator like on here before, I don't know that we've ever talked about that on here, but you know,
Starting point is 01:24:27 I mean kind of to your point, Joe, like, okay, so if we have it, I'll back up for a second. You know, it's just a bit of code that I wrote where you could point it to a database and it would generate out a C sharp, a set of C sharp files and whatnot that mapped to that database so that you didn't directly know in your C sharp, for example, you don't directly know anything about the database, but yet everything would be typed in C sharp to match that database.
Starting point is 01:24:59 Right. So I guess kind of think it was like an ORM except I guess technically under the covers it's using dapper as it's micro ORM the point is is that like you know every call to that thing um you know was it OO yeah I mean it definitely used some OO features to be able to uh you know, map all of those, those routines together and, you know, how, you know, there were definitely interfaces for like the connection and, you know, things like that. But like literally it was more like, you know, just a collection of like, Hey, here's, you know, for example, your stored procedures in the database, right? Like all your stored procedures just listed as a method, right. And, and you would pass in the necessary state to execute, you know, so you might pass in the transaction and, and, and the connection, but,
Starting point is 01:25:55 um, well actually you didn't really know that you were, that that was happening. Cause that was all happening through dependency injection. But the point is, is that like, you know, I definitely have a different approach to the way I think about object oriented programming today than I did back then, where like, you know, let the state get passed in. And I don't really like objects that try to keep a bunch of state. They're hard to write tests for too. And I think that's a big part of what has changed me over the years is the more that I got into writing unit tests and whatnot, then the less I liked anything that had state in it because it was way more difficult and challenging to, uh, unit to write those unit tests for.
Starting point is 01:26:41 Yeah, that, that makes sense to me. I mean, that's, I've sort of grown, grown along those same lines to where I very much lean towards composition over inheritance. Like, you know, the earlier version of me also, I would have been like, okay, well, there's a person, then that person's going to have an employee subclass and a subclass of that class might be a manager. And then, you know, and you'd have these multiple levels of things. And that gets really hard to work with over time, right? It gets harder to bug. It gets hard to reason about.
Starting point is 01:27:16 And so now instead of that, you know, I might have a person object with everything on it. And then there will be certain attributes or things that you can plug into it that will show that it's a manager or something like it's it's building up objects as opposed to having multiple levels of inheritance and and i've found that to be easier to do over time and and easier to understand i think so yeah it's not very procedural it's like that's like when i was learning oh it was like that's not how you do it. You're supposed to – each object should have its own state and it should modify and it should have behaviors. And yeah, like the time has not been too kind to OO in that sense. I definitely think like functional slash procedural code is kind of one, the mind share there. Because I think – I don't think anyone has really – I don't think the zeitgeist has changed how we code that much but more that we kind of accept how we were coding all along
Starting point is 01:28:09 it's like some of those oo rules like you could find that you know the oo gurus and they'd write you know write books and books and articles on how uh you know how to kind of program things in no way and i feel like there's a long time there when people were just trying to do it and they were trying to find these rules like every framework there on the web would be like, okay, here's your DAO, here's your service, here's your beans, here's your whatever. And they were kind of taking these cues and trying to fit everything into these little boxes
Starting point is 01:28:34 and like everyone just got fed up of it. They got fed up of talking about it and they just kept doing things the same way except now we, you know, accept it more. And I think what you said is also a really important thing that that you learn as you do this longer it's the cross-cutting concerns that come back to bite you every single time right so your storage layer if you're building that into
Starting point is 01:28:57 every single class that you're doing then if your storage layer modifies even a little bit you have to modify every single class you had out there instead of having, you know, something that handled your storage and then didn't receive those objects that it needed to work with. So, yeah, man, it again, it's just funny. Like after having doing this stuff so long that you still sit there and you look at your like service class. Yeah, service. I'll put it in service. Put it in the controller? No, not the controller. It's just constantly back
Starting point is 01:29:32 and forth in your head. I did find humor. The humor isn't lost on me. They were saying that you said the thing that you said at the start where service is much like the manager. right you know like that that's kind of funny you know it's true though it is it truly is like you don't you know if i if i gave you a class named factory then you immediately have an
Starting point is 01:29:59 idea what it does right right but if if you gave me a class called service or manager, I'm like, oh, what does that mean? Isn't it crazy? And services use so much in programming. Like you hear the term all the time. I mean, we have a truckload of it in our code. Yep. Oh, man. So, all right. I'll go make a commit to remove that. All right. Well,
Starting point is 01:30:28 I got an easy one. Um, M one slash M one X Mac books. Like, should I just get it? Yes or no? Yes. All right.
Starting point is 01:30:38 Well, I hope you enjoyed this episode of coding blocks. Have you looked into it? Cause you want to do software dev on it right yeah and so that's kind of my concern is it's a different architecture and so you know like i understand the benefits of the chips and you know less power use and more you know it's tightly it's tightly integrated with the ram i guess so all that sounds great but it's a different architecture and so i hate like when i downloaded canines alpha today i had I had to choose Darwin 32-64 or Darwin, you know, whatever the risk.
Starting point is 01:31:10 And it just makes me nervous, you know, about the split. I think we've talked about this before, but I'm just, like, wanting to just do it. I think I'm just going to do it. I think I would. I would do it because it might be bumpy here at the start of it, right? I mean, what we're, we're,
Starting point is 01:31:26 are we a year into this now? Yeah. We're about to get the second generation of M chips. Yeah. I think the second generation is about when I do the jump. Well, I think so. Cause my,
Starting point is 01:31:37 my current laptop is tiring for second generation, but it's going to be the first real Mac book pro. Right. Right. I i mean there is a macbook pro the 13 but it was it wasn't really much of a change right and now the new ones they're going to come out with they're going to come out with i think you know the rumors are going to be a 14 and a 16 inch version and you know this would be the the real one in my mind yeah calling the 13-inch pro was weird because it like by default had like eight gigs of ram and stuff like if you're like a
Starting point is 01:32:12 developer well that's you know there's different kinds of developers like some you know so you can get away with that like if you're running like docker stuff at all eight is not enough like the docker is gonna want for that just right out the gate. Right. Yeah. Depending on what you're trying to run there for sure. Yeah. I think I would definitely be warmer on it when they come out with a 16
Starting point is 01:32:34 incher because Apple knows that they've got a developer community using their hardware. No question. And I think, I think that the company's doing the software behind this stuff it's gonna ramp up real quick if there's bugs or if there's any problems with it i think it'll get resolved pretty soon i just remember this this is apple that took away my headphone jack took away my escape key you know took away my keyboard they took away my maglev
Starting point is 01:33:02 it's like do they do they really know who I am anymore? Well, they do after a few years because they gave all that back eventually, right? But it took them like four years to get out of that cycle. Did you say the mag safe? Is that what you said? Yeah, the whatever. That's coming back. Yeah, so is the keyboard.
Starting point is 01:33:22 So ridiculous. Yeah, man. Yeah, the headphone jack keyboard. So ridiculous. Yeah, man. Yeah. The, the headphone jack, that was ridiculous. The escape key, all of it was just like,
Starting point is 01:33:30 I mean, they try things though. So, I mean, like how can you fault them? Like, well, I would be the alternative to just,
Starting point is 01:33:36 you know, well, I mean, we'll do it on this show. We will, sir, we will, we will definitely fault it.
Starting point is 01:33:41 But, but I mean, on the flip side though, you know, the alternative would be that they never tried anything ever, and then you would have Macs that still look like Macs from 20, 30 years ago. I don't think we want that. So, I mean, they try things, and some of them are just dumb ideas that fail.
Starting point is 01:33:58 Like this touch bar thing needs to die. Why is it still here? It's six years in. Why is that thing still here? Has it really been six years? I Why is that thing still here? Is it, has it really been six years? I think so. Yeah.
Starting point is 01:34:07 2015. Really? The, uh, the magic mouse, he had to charge upside down. Oh yeah. He couldn't charge it and use it at the same time.
Starting point is 01:34:15 And there's just been some things that were just like, what? Yeah. Isn't that still the current mouse though? The track? I believe so. Yeah. If you wanted that.
Starting point is 01:34:24 I don't look it up. Yeah, if you wanted that. I'm going to look it up. Yeah, man. I don't know. I don't fault companies for trying new things, but, man, don't get rid of the headphone jack. That's gone. That's a done thing.
Starting point is 01:34:38 It's back on the 2020. They got it. We don't talk about that anymore. I mean, they're trying to get rid of it. I just bought a couple dongles for headphones for a 35mm. They're trying to get everybody to the head cancel. That's what they're trying to do. You have to put some wireless things up in your grill. Yeah, you still have to...
Starting point is 01:34:57 The current Magic Mouse still charges on the bottom. Yeah. Nobody's mentioned that. Nobody thought of... Because you know what would happen because you don't make the developers use it you know what you know what would happen is every if they put the charge in the front then everybody would just put it there and it would be a wired mouse because it would always be charging like they would nobody would unplug it ever and they didn't want i'm sure i
Starting point is 01:35:23 guarantee you there was a conversation that went like this where they were like, well, we don't want it to be, to look like a wired mouse. And so we need to force them to not, you know, plug it in.
Starting point is 01:35:35 Yeah. I guarantee you that conversation happened. Yeah. Is that like they escaped you? It's like, we know that you want this, but there's better programs using them now. So you should just not, you should move on.
Starting point is 01:35:48 Yeah. You don't need the escape button anymore. It's so funny too. Like when you look at the 2020 MacBook Pro where they put it back, it's just that one button. Yeah. Yeah. Right. Well, there's the touch ID button.
Starting point is 01:36:01 I don't pay attention to that, but yeah, it's really funny. It's like, like okay you guys griped enough we'll put the one button back there yeah yeah it's just i like the function keys too though i do too i don't know that i get to argue about that anymore because now with the moonlander i gave away all of them yeah and i don't even have an option to bring them back unless i like get into a weird layer that i didn't get stuck in and like wait what happened i'm telling you man we need to what we need to do is we need to kickstarter our own thing and by saying this live somebody else is going to do it we need to make a keyboard that has some oleg keycaps on it so that you can actually see the buttons that you reprogram
Starting point is 01:36:39 on your keyboard oh basically like the stream deck but as a full you know yeah yeah with some really nice non-blue and there was one of those back like in 2007 yeah what was it i don't remember what it was called though but that dude like that was way too far ahead of its time like 2007 you know how much it would have cost to have had keycaps with screens on them back then man yeah that thing would have been a few thousand dollars it would be okay so so said another way if you could have a programmable keyboard so like this moon lander instead of the dashes you could have like little lcd screens so that when you program it to be whatever you want you could like have something meaningful on the key so that you could see like, Oh, I've now made this the backspace or whatever. Right.
Starting point is 01:37:27 Instead of like, I have to guess at 25 different dash keys. Like, wait, which one of these says the escape? I forgot what you want to. I did. And I'm always remapping it. So I've gotten better with it though. I will say this. I broke into the 70s finally in my words per minute with this. But a big part of that now is that I've given up playing any kind of video games. No more Overwatch. My favorite game
Starting point is 01:37:53 of choice now is to see what kind of word per minute high score I can get on typing games. And yeah, I play about 18 hours of that a day. That's awesome. Alright. Well's awesome. All right. Well, yeah. We love the dark themes, though, too, like in Visual Studio and Darkula in IntelliJ.
Starting point is 01:38:19 Right. But do you know why they spell the dark with a K and not a C? No. You can't see in the dark. Oh my gosh. That's awesome. Very good. I knew it was coming.
Starting point is 01:38:32 I didn't know what it was. Yeah, I tried. I tried. I gotta, I gotta get better at that. I guess you guys are like onto my tricks. We'll give you a good segue that time.
Starting point is 01:38:41 So yeah. Yeah. Oh yeah. Oh, I can blame you. Oh, well then by all means hey i'm trying to pull you out of that dark hole you're in yeah so i don't know what it is man i think i've just spent too much time down here in the basement yeah yeah uh yeah
Starting point is 01:38:55 that one's from mike rg so thank you mike rg nice um and with that i guess we'll wrap it up. I mean, I don't know. Uh, yeah. Oh, you can't skip my favorite part. Well, I was getting to that part, but this is the wrap up. Don't you think so? No. Oh, okay. Well this is, uh, yeah. So now it's time for Alan's favorite portion of the show. That is not the wrap up. I was kind of concerned, but okay. We'll have a bunch of links that we like and the resources we like, but now it's time for the tip of the week. All right. And
Starting point is 01:39:31 this one is from Morton Olsred, who I definitely did not know this tip when he sent it to me. He's at Canis1980 on Twitter. If you go to github.com, find yourself a repository and hit period. Have you go to github.com find yourself a repository and hit period.
Starting point is 01:39:48 Have you done this yet? No, I'm doing it right now. Yeah, I saw you tip and I was like, hold up. Just hit period. What happens? Nothing. I need... Wait, I might have hit the wrong key. Really?
Starting point is 01:40:03 Nothing's happening? You have to go to a file right like you're not just gonna be able to i went to a repo yeah you can't just go to like github.com sorry you have to go to repo yeah you're gonna have to go into a repo i was in a repo you're not gonna file you're not gonna file hey it doesn't work on mine okay well i'm working on mine either. Okay, well, I'm going to go to... Why does it not work? What do you got? Tip is dead. So you go to github.com slash coding blocks.
Starting point is 01:40:33 Okay, slash coding blocks. Right. Hold on. I wasn't in that one. Maybe that's... Coding blocks. And just pick the first repo there. Okay.
Starting point is 01:40:43 Okay, getting started with Scaffold. Okay. Hit period. Hit the period repo there. Okay. Getting started with Scaffold. Okay. Hit period. Hit the period. Nothing. Nothing. What? Yeah, nothing.
Starting point is 01:40:52 You have to install something? Maybe they've rolled out. Maybe this is a feature that's being feature flagged, and we aren't lucky. I don't understand. Are you both on OSX or macOS? No, I'm on Windows. I'm on Windows. What the heck?
Starting point is 01:41:06 But I could also be hitting a backslash key and not realize it or maybe hit delete key. Let me sign in. Was I not signed in? Alright, let me sign in. How are you not signed in? That's like my identity half the internet now. Well, I think I got
Starting point is 01:41:21 signed out just automatically maybe. I don't know you got yeah ah you have to be signed in guys oh okay there you go tip tip is now legit again man oh you can't even choose you want to describe what you see uh so so i, I was on whatever repo it was. And then I hit the dot, the period on the keyboard and it says, Hey, get started with visual studio code. You can choose your theme, which I'm going to go ahead and do some GitHub dark and then next section, next section. Oh, come on.
Starting point is 01:42:02 Just open up too many, too many things. Mark done. Do it do it oh it opened up visual studio code oh with the repo as your file system on the left and have you ever gone to find a file that you weren't quite sure of the name of and so you go to like that there's like a little tiny go-to file link in uh in g in GitHub that's kind of hard to find, and you can search for stuff. Yeah. This is VS Code.
Starting point is 01:42:30 You can do Control-P and start typing whatever file you need. So if you're looking for README, just start typing R-E-A-D-E-M-E. Yeah, so Control-P and then README. Yeah, and you can make edits right here too. Oh, dude, this is sick. Yeah, it's nice, and Codespaces right here, too. Oh, dude, this is sick. Yeah, it's nice. And Codespaces has got integration with other features. You can install extensions. Don't ask me how that works.
Starting point is 01:42:52 I guess it would just do it in your browser, and you... I don't know. You know what this reminds me of? Do you remember... This reminds me of a past sponsor, Coder.com. Yes. Yes. That's what this reminds me of because they had uh they
Starting point is 01:43:08 were doing a visual studio code in the browser and they were creating like a vm for you you know that that's what you were technically working in yep so if you were to install like extensions or whatever it was in that it was specific to that VM. Yeah, it keeps seeing more and more about people using virtual code spaces like that. I mean, that's what... I forget what it is. I just said it.
Starting point is 01:43:33 GitHub's version of it. Something is... Yeah, I forget. It was the code spaces or something like that. But yeah, it's like having a computer that's not on your computer. There's definitely some advantages there. And this is how you can get away with
Starting point is 01:43:48 using a Chromebook for so long. I mean, this is pretty awesome. Okay. It's a legit tip now. Control P. You can search. You can do regex. You can do all the stuff
Starting point is 01:44:02 that you're used to doing in your editor on online repositories. How many times have you gone and downloaded a repo? You've cloned the repo just so you could like kind of search it and open it in your tools. Totally looking at some open source project. Well, the one, the one thing that I don't see that you can do a local that you can do here is you can't bring up a terminal.
Starting point is 01:44:22 Yeah. So, which is super convenient when you want to be able to like, you know, uh, run stuff, you know, while,
Starting point is 01:44:32 while you're doing your code. But yeah, what I mean, aside from that one minor thing, maybe terminals are not available in the web editor. You need to continue an environment that can run it. Uh, interesting.
Starting point is 01:44:43 But I do think coder.com, if I remember right, I think they did have that. Oh, yeah, definitely. Yeah, there was like a, I forget how they did it. But yeah, you were able to have your complete development environment there. It was like just a virtual computer. Yeah, so this is some of the gloriousness that happens
Starting point is 01:45:00 because Microsoft bought GitHub, right? Like, this is pretty sweet. Okay, but if we're going to talk about that, then I feel like there's an elephant in the room because I'm going to go, okay, here you go. You ready? Here comes an unpopular opinion that needs to be said. Azure DevOps is greater than GitHub.
Starting point is 01:45:20 Amen, brother. It's out there now. It's out there in the world. And for anybody who wants to argue with me about that if you've never used azure devops then first of all then i'm i can't listen to your argument right that's not even a fair argument if you haven't used it but they're both owned by microsoft and there are so many more features that are in azure that I wish were in GitHub that are just so great.
Starting point is 01:45:48 Like one of my favorites that I know that we all miss the most is in Azure DevOps, you can set up branch policies that are far easier to do in Azure DevOps than they are in GitHub. And more complete too, by the way, in the things that you can do with it. But you can set up
Starting point is 01:46:09 because you have those branch policies, you can set up automatic merging of your pull request as long as your pull request meets the policies. Including, once it's done, it can remove your branch for you automatically too. And you can decide like how you want it to emerge. Like it's so much better.
Starting point is 01:46:30 Yeah, I agree. I agree. Well, this is a, this is a very good tip here. I like this one. Yeah, that's pretty cool. Must be logged in. Yeah, that was a, that was a, that was a tricky way to get us into it, Joe. Yeah. All right. Well, then for my tip of the week, I've got a few here that I wanted to share. So a friend of ours mentioned this and I wanted to share this because, you know, we like to support our hometown heroes.
Starting point is 01:47:04 And so this is a group based here out of Atlanta, a couple guys that started a podcast called The Perfect Album Side. And if you like music, I don't see how you could not enjoy giving this podcast a listen. I'll have links to it. It's on all the major platforms. But so I'll have some links to listen. I'll have links to it. It's on all the major platforms. But so I'll have some links to it. But, you know, there are there are titles like sports anthems. And so what what the the premise of the show is that the two guys, they will pick whatever their topic is going to be. So sports anthems, and then they'll, they'll each come pick six songs that they think best represent that particular topic. And then they'll bring
Starting point is 01:47:51 them together and discuss it. And then at the end, they will, uh, merge that all into like, okay, let's pick the best six of our collective 12th. Right. And so if there's any like overlaps, then clearly that automatically has to make the cut. But yeah, it's, you know, best TV theme songs or power ballads you know, things like that. It's, it's just so fun to listen to. And you know some of it, you're just going back and you're like, and they'll go into details about some of the songs too. So like one of them that I didn't,
Starting point is 01:48:31 I'd never, I didn't know this. I didn't ever heard about this, but I went back and looked for the video of it and it was amazing to watch it live. And was, they were talking about like the greatest, do you remember when,
Starting point is 01:48:44 do you remember when, uh, do you remember MTV? First of all, that used to be a thing. Yeah. MTV. And, and for those who've never heard of MTV,
Starting point is 01:48:53 they used to just play music on it. And it was so weird. But one of the, one of the episodes, and I think it's the first one is talking about like the, the MTV unplugged, like what were the best songs from MTV, the entire MTV unplugged,
Starting point is 01:49:11 you know, years, the series of it. Right. And so like immediately you like, uh, you know, songs might come to,
Starting point is 01:49:20 what was that? Man who sold the world. Yeah. Yeah. Uh, David Bowie cover by Nirirvana yeah um so so those types of things might come to mind right and one of the things that they were talking about during this that i had never realized is that um they were saying that for a while there there was this
Starting point is 01:49:39 uh i don't know theory among people that that paid attention to this sort of thing, that what happened was in the, I think it was the 1989 or something like that, MTV Music Awards, where they introduced Jon Bon Jovi and Richie Sambora out onto the stage to sing, and it blew away everybody's minds because everybody's expecting Bon Jovi, the band, to come out and each grabbed an acoustic guitar and Richie Sambora on a double neck acoustic. And they did acoustic covers of Living on a Prayer and One and Dead are Alive. that live performance at the, the, what did they call it? The MTV, MTV days, the, I don't even remember. But that, that MTV music awards,
Starting point is 01:50:53 that performance was so wildly popular that that was the catalyst that like introduced, like that was why we got MTV unplugged. But they actually mentioned in, in the podcast here, the perfect album side that like, apparently that was, you know,
Starting point is 01:51:11 just rumor. It was actually, you know, MTV claims that it was already in the works. MTV unplugged was already in the works, but you know, I mean, uh,
Starting point is 01:51:20 I'm going on and on about MTV unplugged, but really like the perfect album side, it's a great podcast. Uh, I've really enjoyed listening to it. I think you'll enjoy it too. I'm going on and on about MTV Unplugged, but really the perfect album side, it's a great podcast. I've really enjoyed listening to it. I think you'll enjoy it too. Yeah, so there's that. So back to things that are technical.
Starting point is 01:51:39 I never really, I think we've talked about Docker System Prune in the past, maybe, but there's a new option for it that was introduced with 1.28, the 1.28 version of the Docker API that includes a filter capability. And so with that, you can include a key value pair as your filter. So when you do a Docker system prune, you can, you know, filter on things, right? Namely, one of the things that you could filter on is you could say like until equal and say 70, 72 H, right? So you want to filter everything that's older than the 72 hours. So anything that goes beyond the past three days.
Starting point is 01:52:32 So, uh, a super handy way to clean up your environment, um, which, you know, we were talking about mini cube, uh, earlier is becomes especially helpful for those users because a mini cube runs everything inside of its own VM. And it's easy to not even be aware of how much space your Minikube VM might have consumed within it. And so, you know, if you want to like not blow away all your Docker cache, but just some of it, then this is a great option for that. And I'll include a link to the documentation for the Docker system prune. But yeah, this would be like a Docker system prune dash dash filter equals. And then in quotes, you would give your key value pair. So until equal 72H. Then the last one,
Starting point is 01:53:14 we've talked about the GitHub CLI before, right? And if you haven't already used the GitHub CLI, then you should definitely check it out. You can find the GitHub CLI at cli. github cli then you should definitely check it out you can find the github cli at cli.github.com but here's the cool shortcut so we've talked about um i think in the past when we first when i first mentioned the github cli that if you wanted to create a pr from the command line you could do something like gh space pr, PR space, create, um, to create it. And I also do like a dash dash fill when I do that. So that like, whatever my last, uh, comment was, it takes that
Starting point is 01:53:54 as the, um, uh, you know, the, the, the, the description, the description of the PR. Yeah. Thank you. Well, I stumbled onto this little trick that I didn't realize that it would do as, and this is the shortcut for it. Did you know that that one step will also push your branch for you to your origin? Not only will it push it and push it good, but see who gets that reference. But you could also do other things like, you know, fork the remote repo and then push that and push your fork. Like, so the point is, is that it's, you know, you can save yourself a step because my, uh, you know, standard operating procedure has always been, you know, I'll, I'll, uh, get commit, whatever my last thing is, get pull rebase, uh, you know, my origin.
Starting point is 01:55:01 Cause I don't share my history until I'm ready. Um, so that's the only reason why I can get away with the rebase. And then GHPR create the PR, but now I could actually like, oh, I'm sorry. There was also the step of where I pushed the remote up. I pushed my branch up to the origin and, but now I can save myself a step and just do the PR of the creation at the
Starting point is 01:55:23 same time. So I thought it was a pretty cool little thing. It was like a hidden little feature that I hadn't seen, uh, you know, mentioned. So that puts your salt and pepper back into your, uh, get hub CLI. That's good. Yeah. I see what you did there, sir.
Starting point is 01:55:38 I found your, I found your reference where you're talking about eighties music. So it was all right there. Right there. Yep. All right. So I've only got one this week, but I stumbled. Yeah. Okay.
Starting point is 01:55:51 Are you feeling all right? Do we need to call a doctor? So I think this one is good enough to qualify for many. So one of the things that I've been working on, we've stored actually Jay-Z and I have, have been stuck into this thing where it's like, we're using some GCS cloud storage, right? And that's great for your running application.
Starting point is 01:56:16 But if you need to run things locally, well, then it's like, how do I abstract away this file system garbage? Right? Like, all right. So I'm writing to GCS.
Starting point is 01:56:25 Well, what do I do if I'm doing local? And then what if you need to do AWS or Azure or anything like that? So then you start thinking, well, I don't know, man. I don't know. I don't know how much work I want to put into this. So I was looking around the other day, and I was looking for cloud abstraction libraries. And wouldn't you know it, there's an Apache project, looking around the other day and I was looking for like cloud abstraction libraries. And when you
Starting point is 01:56:45 know it, there's an Apache project out there and this one's called JClouds. And this thing is really cool. So what they've done is they've basically tried to go and create abstractions using Java libraries so that you can write your code and potentially run it on any one of these cloud platforms, AWS, CloudSigma, CloudStack, DigitalOcean, Docker, GCP, Azure, OpenStack, Packet, Profit, Rackspace. They have a bunch more. So what's cool is if you have a blob store that you're trying to write files to, you know, you'll have some configuration in there that will tell it whether or not it's GCS or Azure or whatever, you write your code one way, and then it just works on any cloud you stick it on that
Starting point is 01:57:37 this thing supports. And I was looking at this thing at some point and i want to say it was sort of like adapters is what you build in i believe this is the one um so really cool stuff um and they call it the java multi-cloud toolkit so if you are somebody that is having to make your code and we'll say java specifically code run across different clouds out there you You're probably already using tools like Terraform and things like that to deploy these things and configure them. This might be a good thing to make your application not be so difficult to write to work across these multiple platforms. So really cool stuff.
Starting point is 01:58:22 Very cool. Why does everything with Java start with a J though like why is it j clouds i guess if it was gonna be in c sharp that would be like clouds.net yeah probably but it's kind of annoying though it's like can we get a different naming standard just cloud just cloud yeah cloud clouds dot apache dot uh yeah there we go i guess if it's a if it's a java thing though maybe it should be Just cloud. Just cloud? Cloud. Clouds.apache. Yeah, there we go. I guess if it's a Java thing, maybe it should be like cloudsimple.
Starting point is 01:58:54 Cloudsimple. God, it always makes me cringe. I hate the apples. All right. Well, yeah, the C Sharp version would be iClouds. Or would that be the Apple version? That's the Apple version. Well, yeah, the C-sharp version would be iClouds. Or would that be the Apple version? That's the Apple version. Apple, yeah. Then you'd have a conflict with C-sharp, yeah.
Starting point is 01:59:11 Windows Cloud. Azure Cloud. Azure Cloud. Yes, A Cloud. All right. Well, as I mentioned before, in case if someone gave you a link and you're listening to this for the first time and you're not already subscribed, you can subscribe to us on all of the major podcast platforms. Um,
Starting point is 01:59:30 iTunes, Spotify, Stitcher, wherever you like to find your podcasts. Uh, and if you find a place that, uh, you like to get your podcasts and we're not there,
Starting point is 01:59:36 uh, let us know. We'll figure that out and get it sorted out. You can, uh, find some links for, to leave us a review, uh, at dub, w dub.odingblocks.net slash review.
Starting point is 01:59:50 And I guess either way you're going to hear a DJ voice, so it doesn't really matter if I say the, you know, like, if I try to help you out by, like, you know, saying that you won't hear one if you leave one, they'll probably say it anyway. So it won't matter. Totally. All right. So, Hey, while you're up there at coding blocks.net, make sure you check out the show notes. They're usually really good. Oh, they have usually, usually most time. Wow. That's harsh. No, they are being negative. They're copious and, and all inclusive. So definitely check those out. We have shown us examples, discussions, and much more. And you can send your feedback or questions to our Slack channel. If you're not there, go to codingblocks.net slash Slack. And make sure to follow us on Twitter at CodingBlocks.
Starting point is 02:00:39 And you can head over to codingblocks.net. Find all of our social links at the top of the page.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.