April 21, 2022

Getting Lost in Git and Goodbye tsc

It’s been a while since Chuck and Robbie dove headfirst into trending tech topics without a guest to bounce their ideas off of. Today, they discuss the latest in TypeScript and Git, the evolution of JavaScript over the years, developer pet peeves, and what success means on a team, on the web, and on the field.


Key Takeaways

  • [01:09] - A whiskey review. 
  • [10:14] - What Chuck and Robbie think about introducing TypeScript to JavaScript natively. 
  • [17:10] - A rant on everything except Git. 
  • [23:60] - Why Robbie’s been having problems with Git.
  • [33:09] - What’s new from ES2022.
  • [34:44} - A football, capitalism, and bad vegan-themed whatnot. 



[13:40] - “I think [tsc going away] definitely moves JavaScript forward as this thing you can use more than just for the web. And we’ve been doing it for things other than the web forever, but I guess to the people that are outside the JavaScript community they look at it as this thing that’s mostly web, and it’s really evolving past that.” ~ @rwwagner90

[20:50] - “I just wish we could all agree that similar to any other language, not coding languages specifically, reading, writing, there should be punctuation.” ~ @rwwagner90

[23:12] - “[Opinions on languages] is such subjective overhead and us as consultants, when you find these differences from project to project, it’s just not a thing worth fighting for. And the reality is, as long as there’s consistency, all the answers are right and the logic is all that matters.” ~ @CharlesWthe3rd




Connect with our hosts


Subscribe and stay in touch


Top-Tier, Full-Stack Software Consultants

This show is brought to you by Ship Shape. Ship Shape’s software consultants solve complex software and app development problems with top-tier coding expertise, superior service, and speed. In a sea of choices, our senior-level development crew rises above the rest by delivering the best solutions for fintech, cybersecurity, and other fast-growing industries. Check us out at shipshape.io.


Robbie Wagner: [00:09] Hello, friends. It is 03:41 p.m. On Thursday, Eastern Time, and it felt like a good time for some whiskey. So going to do a little episode here. Pregame for a little happy hour we have going in a little bit. And I am Robbie Wagner, for those who have never listened to this before. And this is Charles William Carpenter III, my co-host, as always.
Chuck Carpenter: [00:36] I feel bad if this is your entry episode, dear listeners. So, yeah, we're doing a special one-off. It feels like it's been a while since we've spent some time just together. We've had a lot of guests recently, and it's time to just get back to our roots.
Robbie Wagner: [00:53] Yeah, we've had to plan things out, write outlines and questions, and care about what we're talking about. Way too much structure.
Chuck Carpenter: [01:02] Yeah. We've gotten away from the heart and soul of the show, so let's return to it. Let's drink some of this whiskey that we don't have to ship to various areas throughout the country because we already have it.
Robbie Wagner: [01:16] Yeah, it is The Senator.
Chuck Carpenter: [01:18] Yeah. Which sounds very serious. The most serious part of this bottle was getting the damn wax off. Oh, my God. To try and open it. So I hope it delivers because that was you can't really see, but I have a giant pocket knife, which is, like, some crazy novelty gift that it was my grandfather's. So it says Charles Carpenter on it. But it was like Charles the first.
Robbie Wagner: [01:41] I don't know if it's a perspective thing or is it, like, the size of your face?
Chuck Carpenter: [01:47] Yeah, no, it's huge. Here you go. Okay, I'll do it. Yeah, right. Okay.
Robbie Wagner: [01:52] And do you just, like, keep that I assume you don't carry that in your pocket.
Chuck Carpenter: [01:56] No, right. Yeah. No, I just keep it on my desk. It's more of like a threatening name plate or something. And I use it to open packages from time to time. So huge pocket dice. It's actually very sharp. It was like some novelty gift that my uncle got for my grandfather in the 70s from a Gatlinburg, some joke thing, because my grandfather was fine Southern gentleman, and most Southern gentlemen carry a pocket knife, so they got him this giant one. Anyway, utilize that to open this bottle. That's how serious it was.
Robbie Wagner: [02:30] Yeah. I was pulling on mine, and it would not go one direction, so I pulled it the other way, and then I kept pulling. And usually, if you have, like, a real wax-topped whiskey, there's kind of like a more thin thing that kind of goes around and just nicely opens up. This was the huge, like thick, like an inch thick. Almost ring of, like.
Chuck Carpenter: [02:52] Yeah.
Robbie Wagner: [02:54] It's a mess.
Chuck Carpenter: [02:55] Rubber or something. It's kind of strange. You could make tires out of this. They would go fine. So yeah. We got it, though. So we have Senator from Proof and Wood. It is a straight rye whiskey, single barrel. It's aged at least six years. So this is a company that does sourced whiskey. So they just got some NGP stuff out of Indiana. 95% rye, 5% malted barley. So it's a similar ratio for us recently.
Robbie Wagner: [03:23] It's the kind of ratio I like, but we'll see, I guess. Was it the last one we had, heirloom rye?
Chuck Carpenter: [03:32] Yeah.
Robbie Wagner: [03:33] We'll see if this feels different than the heirloom.
Chuck Carpenter:[03:36] Yeah, this was the Laws that we had in our last episode. That was heirloom rye, and they had a very different distinct flavor.
Robbie Wagner:[03:44] I'm smelling a lot of wood. Not really anything else. That's the wood of the Proof and Wood.
Chuck Carpenter: [03:51] Yeah. I just had a Diet Coke, but I'm smelling some soda, like cola, kind.
Robbie Wagner: [03:57] Of that's your own breath coming out.
Chuck Carpenter: [03:58] Yeah. My unshaven hazard mustache has maintained a little bit of diet Cola. That's the problem. I'll just taste it. Oh, yeah. This is more in the alley of traditional little cinnamon in there.
Robbie Wagner: [04:17] Yeah, a lot of spice.
Chuck Carpenter: [04:19] Little musty, lot of spices. Yeah. In this one. Oh, I don't think I said it. It's 110.36 proof. It's pretty solid in the burn department. So it does have that. I'm going to say it. I get a little apricot. Dried apricot, in the beginning, getting some of that. It's just me.
Robbie Wagner: [04:42] Alright, let's restart this episode.
Chuck Carpenter: [04:46] Terrible. Come up with other words.
Robbie Wagner: [04:48] I always have a really hard time picking the flavors apart. The one that I tasted a little of, which is odd, was like a little bit of butter. I don't know what that would come from, but a little bit of butteriness, kind of like you would have in like a chardonnay or something.
Chuck Carpenter: [05:04] Okay, that's interesting. I'm thinking, okay, maybe I'm going to switch. Like chai tea. That's what I'm getting in the beginning, I think. A little chai.
Robbie Wagner: [05:16] Yeah, I could see that.
Chuck Carpenter: [05:18] You didn't bulletproof your whiskey, did you? When people do that with their coffee and put like butter and MCT oil in there, no. So they get a boost.
Robbie Wagner: [05:28] Yeah. No, I only drink whiskey. It's the best keto diet.
Chuck Carpenter: [05:31] Yeah. It's vegan, I think. It is, yeah. Ketogenic, it's like low or no sugar.
Robbie Wagner: [05:37] I mean, couldn't it technically be paleo? Like if you just dropped a bunch of rye in the ground and the right things happened, it would make whiskey eventually, kind of.
Chuck Carpenter: [05:50] I don't know.
Robbie Wagner: [05:51] I mean, it wouldn't be aged, I guess, is the difference.
Chuck Carpenter: [05:54] Yeah. The whole thing is like, I don't know. Have you ever had White Dog before?
Robbie Wagner: [05:58] Just like white whiskey?
Chuck Carpenter: [05:59] Yeah. The unaged stuff.
Robbie Wagner: [06:01] Yeah, I think so. And it's okay.
Chuck Carpenter: [06:06] If gross is okay, then yes, it's okay. Yeah, I had some at a couple of places, but when you go to Buffalo Trace to do tastings, they'll start you out with White Dog, like, this is how it begins, and then get you into the rest. And I'm like, please, none of that has a strange corn flavor. It's just not appealing.
Robbie Wagner: [06:26] Yes. But you can put it out immediately. That's what's appealing.
Chuck Carpenter: [06:31] Yeah. There you go. Oh, yes. I see. When in your entrepreneurial endeavors, you may have.
Robbie Wagner: [06:37] Yes.
Chuck Carpenter: [06:38] Gone down that path.
Robbie Wagner: [06:40] So the thing that we were going to make because we were Williamson Wagner whiskey, like all w's, we were going to have Williamson Wagner white wheat whiskey. So it was going to be like wheat forward. I don't know if we were going to try to do a certain amount of corn or whatever. We didn't think that much about the mash bill, but it would have a good bit of wheat to where it would be a little different tasting. And then I don't know if you've seen these things or, like, I forget what the brand was. There's, like, some that are super legit that are like wood sticks with cutout pieces and cool looking shapes that are supposed to age, and they're supposed to age your stuff.
Chuck Carpenter: [07:20] Yeah.
Robbie Wagner: [07:21] Yeah. So we were going to partner with them and ship that with it. And it's like, choose your own amount of wood.
Chuck Carpenter: [07:27] Okay.
Robbie Wagner: [07:28] Which no one has done. I've never seen one, like, at the liquor store that comes with something like that. So I think that could be cool for people that like to experiment.
Chuck Carpenter: [07:28] That's true. It's a different marketing aspect. You got to bring all your distillation equipment out here to the desert because I'm pretty sure I can get away with it a lot easier than you in Virginia. We should try it out.
Robbie Wagner: [07:48] Well, the Williamson part of Williamson Wagner is a farmer with 410 acres or something, so he can get away with it more than I can.
Chuck Carpenter: [07:58] Right. Yeah. Interesting. Well, let's regress a little back to the immediate whiskey that we're having.
Robbie Wagner: [08:05] Yes.
Robbie Wagner: [08:06] How do you feel about it?
Robbie Wagner: [08:07] I like it. I'm a little upset that it's not more complex.
Chuck Carpenter: [08:12] Yeah. I would say it's kind of simple. It's fine. Tastes as good as some other things, but it's not great. The presentation was there in the name of The Senator. Made me feel like a lot was going to go on, but I don't feel like this is so much better than even just like a Wild Turkey rye or something.
Robbie Wagner: [08:34] Yeah. Well, it's just trying to be diplomatic. Stay in the middle of the road. True to the senator name.
Chuck Carpenter: [08:40] Yeah. And just like a senator, it's taking more of your money, which that cost plays into my rating. So I'm feeling like this is, like, in the middle of the road. It's a four or five for me. It's not necessarily as bad. It's just not great. And it costs a lot more. And it was annoying to open.
Robbie Wagner: [09:00] Yeah. The price point in the opening drops it for me. I would give it like a four and a half.
Chuck Carpenter: [09:05] I'm just going straightforward. Yeah.
Robbie Wagner: [09:07] That doesn't mean I don't like it. I think this would be a great one, which we'll see here in a little bit. I'll put it with some ice after this and have for a happy hour, and I'm sure with that in mind and not needing to be as complex and just sipping on it, that's probably pretty good.
Chuck Carpenter: [09:23] Yeah, I'm sure I'll finish this bottle, but I just won't buy another.
Robbie Wagner: [09:28] Right, well, at this point, I never need to buy another bottle of whiskey because I have so many.
Chuck Carpenter: [09:34] Yeah, you're done buying.
Robbie Wagner: [09:35] Yeah, I need to take some home, though, because the problem is I want to have a glass of whiskey, and all the good stuff is here, and I have to drink something terrible at home. I have a whiskey podcast. This is not acceptable.
Chuck Carpenter: [09:49] Yeah, that doesn't make any sense. I take them home all the time. Like I had a friend over last night and shared some of the Laws. I was like, oh yeah, I did the podcast today, this is blah, blah, blah.
Robbie Wagner: [10:00] Did they like the heirloom?
Chuck Carpenter: [10:02] Yeah, they thought it was interesting, different, and I planned to share with other whiskey friends. I think that most people have the response that we had about it.
Robbie Wagner: [10:13] Yeah.
Chuck Carpenter: [10:13] Let's talk about technology a little.
Robbie Wagner: [10:15] Okay.
Chuck Carpenter: [10:17] I love technology.
Robbie Wagner: [10:19] What do you want to start with? TypeScript or?
Robbie Wagner: [10:22] Git TypeScript?
Chuck Carpenter: [10:24] Because I feel like this is something that you have had a love-hate with in the past but have embraced more in the future. And the introduction of types to JavaScript natively. So no longer requiring this compilation to get things to normal JavaScript with types PSC going away. I mean, that could be pretty cool.
Robbie Wagner: [10:47] Yeah, I don't think there's anything bad about this proposal because you're going to still be able to write normal JavaScript without types. It's optional. The thing that would make it bad would be if you had, well, I guess, even TypeScript. You can write it without the types, and it's valid. Quote unquote TypeScript. But it's just, yeah, anyway, being able to opt out, I think, makes that fine, and think having types without needing extra stuff could be really nice. Like you could write, type everything out and put it in something like CodePen and enforce the types theoretically without needing something to compile it and do stuff.
Chuck Carpenter: [11:33] Yeah, I mean, it has to support retroactively, so you can't really force that. But I mean, like JavaScript has done this a few different times where you would opt into strict mode, and then okay, things are fine. So it gives you the ability to incrementally do it. Yeah, I guess the days of the wild west are going away. There's a sheriff in town.
Robbie Wagner: [11:56] Yeah, see, that's getting rid of the spirit of the language, I feel like. And maybe it's because I started with PHP, which was like, similarly, do whatever you want. Like, oh, hey, this is a string. No, it's a number. No, it's a whatever. Like, set it to anything. It doesn't matter.
Chuck Carpenter: [12:11] Yeah, that's a value or don't? I don't know.
Robbie Wagner: [12:14] Yeah, that's totally fine. So that was kind of fun. Like, I guess in a speed perspective, you can be like, I want to make this quick prototype so I can just throw it all together. I don't have to be clean about it. I don't have to think about is this going to always be a number or not. Or maybe sometimes it's a letter or whatever, and you don't have to then go back and change all your types and think it out. You can just be like, oh, it's now a letter.
Chuck Carpenter: [12:39] Yeah. I guess in the sense of, like, having to think about data structure upfront, right, is good and bad. Like you said, you can just get like quick and dirty and get stuff done, you know? I guess it's like the difference, though, between JavaScript being considered a DOM manipulation language versus a true application language. Right. Like, I'm going to write real stuff with this.
Robbie Wagner: [13:05] Yeah, I mean, I think that is an important distinction of, like, if I don't use types and I'm writing like a web dashboard that's like, click some stuff, like maybe save some data, do some forms, whatever, the stakes are pretty low. You'll probably have some kind of error logging like Sentry or something that, like, oh, I messed this up. All right, I'll go fix it. Now, if you're using JavaScript to run your rocket ship, you probably want some types to make sure nobody fucked that up, and it's like your rocket ship's not going to crash. So yeah, I think that definitely moves JavaScript forward as this thing you can use more than just for the web, and we've been doing it for things other than the web forever. But I guess to the people that are outside the JavaScript community, they kind of look at it as this thing that's like mostly web, and it's really evolving past that.
Chuck Carpenter: [14:02] Right. Yeah, it's interesting. I think it takes a little wind out of the sales. Deno announced a couple of weeks ago or something where they can run native TypeScript without the compilation step or something. I don't know. It's like some big thing like, oh, you don't have to wait. You just run this without compiling it out. Guess what might be coming anyway?
Robbie Wagner: [14:24] Maybe JavaScript is going to be written in Deno now instead of what is it? C++ or C sharp or whatever it's written in.
Chuck Carpenter: [14:34] Right. No. Yeah. I don't know, but maybe it'll get converted to Rust. Yeah, that's the next hot tool to get remade in Rust.
Robbie Wagner: [14:45] Yeah, I could see that it would be tough maybe because there's so many people that have worked on JavaScript for so long getting the same level of contributions from those folks, but it would open it up to a lot more people that are like any language with C in it. No, thank you.
Chuck Carpenter: [15:04] Yeah, I'm in that list. I guess that's kind of there's two folds here. There's one is talking about open source, and sometimes people sort of age out of contributing over time too. Yeah, so that's an interesting point. So how do you get people interested and more involved over time? I mean, bring in a sexy tool. I wonder, though. So the other side of things is like best tool for the job discussion. Is there a job Rust is not the best tool for or not a good tool for, I wonder? It seems to just be like a jack of all trades at this point, but.
Robbie Wagner: [15:40] I think from developer experience perspective, it's not the best tool for everything. I think in the output it gives you. It could be argued it is the best tool for everything. But I don't necessarily want to write big web dashboard in Rust. Like I know, it can compile the WASM and run on the web and do whatever. And I don't know much about Rust, to be honest, so maybe I'm wrong. Maybe it is easy to do that with Rust, but I feel like from someone who's used JavaScript frameworks for a decade or more, it feels like you're missing some things for like building web applications, I guess.
Chuck Carpenter: [16:22] Yeah, that could be kind of the leap difficulty there because it does seem like a lot of people are using it to build like CLI apps and stuff. So it's not really being taken to fruition to the browser quite yet.
Robbie Wagner: [16:37] Yeah, I think it's like the sexy new Java for enterprisey type apps that don't run in the browser.
Chuck Carpenter: [16:47] Right. Fintech calculations.
Robbie Wagner: [16:51] Yes.
Robbie Wagner: [16:52] Maybe like crazy algorithms, like predictive engines and stuff like that. I guess maybe I could see that. Yeah.
Robbie Wagner: [17:00] I don't know. One day I'll actually try something in it.
Chuck Carpenter: [17:04] Let's rewrite Git in Rust because we're going to talk about Git next, and seems like a good segue there.
Robbie Wagner: [17:09] I don't understand enough about Git to ever attempt to I would have a very naive, like, okay, there's these two files, and it's changed in two places. It doesn't match. You got to pick one. I don't know how to merge.
Chuck Carpenter: [17:26] Yeah.
Robbie Wagner: [17:27] It does a lot of smart stuff.
Chuck Carpenter: [17:28] It does do a lot of smart stuff. Didn't Linus write it? The Linux guy? I think so.
Chuck Carpenter: [17:34] Linus Torvald or.
Robbie Wagner: [17:36] Something like that, yeah. Creator. I'm going to live. This is like live coding, but it's live googling. I'm pretty sure Linus wrote it. Yeah, he wrote it. Git creator Linus Torvalds. Yeah. So like, basically, for his own needs for Linux from there.
Robbie Wagner: [17:54] On a somewhat tangential note, I've heard some people say Linux is L-eye-nux because it's like Linus.
Chuck Carpenter: [18:04] It could be.
Robbie Wagner: [18:06] Yeah. I don't know if one has been endorsed as actually correct, but so many people say Linux, and I'm just like when I hear someone say L-eye-nux, I'm like, I want to punch you in the face.
Chuck Carpenter: [18:17] Why can't we call him Lih-nus?.
Robbie Wagner: [18:19] We could.
Chuck Carpenter: [18:21] Lih-nus Torvald.
Robbie Wagner: [18:22] Who knows?
Chuck Carpenter: [18:22] Yeah.
Robbie Wagner: [18:23] No, It's just a random tangent there, but back to the meat of what we were talking about.
Chuck Carpenter: [18:28] Yeah, rewrite Git in. That also means that we would have the capabilities of potentially writing an OS and I'm not sure write an OS in Node. Ready, set, go.
Robbie Wagner: [18:40] You can write an OS in anything, theoretically. But the problem is the lower-level native stuff that I wouldn't even know what to do there.
Chuck Carpenter: [18:52] Right. Essentially the connection. Yeah. Because I know that for Arduino projects, you can actually run those with Node code. So you can do Arduino stuff and send signals to switches or whatever.
Robbie Wagner: [19:08] Yeah.
Chuck Carpenter: [19:09] But how that would go in terms of, like, interpreting keyboard inputs and crazy stuff like WiFi signal.
Robbie Wagner: [19:19] Yeah, I think I've talked about this maybe before on a podcast, but one of our college projects was we had to build a terminal, and we wrote it in C, and it was much harder than I mean, not that it sounds easy, but it was very difficult.
Chuck Carpenter: [19:37] Yeah, well, I mean, as we learned from Zack, you can do it in Rust.
Robbie Wagner: [19:41] Yeah, I mean, I think that's part of the problem, but I guess there hasn't been that long since I was in school, I guess. But there weren't any sexy languages then. It was like you're using Java or C, and you're happy with that. There's not as many frameworks. Maybe there was, like, Spring for Java.
Chuck Carpenter: [20:01] Right.
Robbie Wagner: [20:02] So, yeah, now you just have so many better tools that you have so many options of whatever you prefer.
Chuck Carpenter: [20:09] Yeah. It was a longstanding discussion in terms of formal education institutions, being able to keep up with, like, what's actually happening in the industry I haven't looked at for a while. I remember it was a big deal that lots of CS programs were using, like, Java or C, and I think it was Stanford. I want to say it was Stanford was doing it with Python, and I went through some of their online CS stuff in Python because I knew a little bit of it, and I was like, oh, cool, so I can, like, do this and not be starting from zero. I don't think Python's gross, but you know, I liked CoffeeScript back in the day, too.
Robbie Wagner: [20:50] I just wish we could all agree that similar to any other language, like not coding languages specifically, like reading, writing, there should be punctuation, not just nothing. Like, maybe I'll indent it, maybe I'll do whatever I want, and you'll just have to try to read it. Or you could just have a brace there that tells you that I'm done here, and this is the next thing. Why not?
Chuck Carpenter: [21:16] You can enforce Prettier formatting styles, so your team could be like, this is the way that we, like, with onSave it, it saves stuff and formats it and stuff. So there is that kind of stuff in the language, so that's a good thing. But I think what we're coming down to is the lack of braces versus indentation and then the semicolons, right?
Robbie Wagner: [21:36] Yeah, that's fine in JavaScript because of, like you said, prettier. If a project doesn't want to use semicolons, I can just throw them wherever I want, and then I auto-format, and they go away.
Chuck Carpenter: [21:49] And then they go away, and I don't have to actually see it. They just run a command.
Robbie Wagner: [21:53] Yeah, but the opposite is not true in Python. You can do some formatting, but if I don't hit space enough times and the thing is in the wrong spot, it's not going to run the same way.
Chuck Carpenter: [22:05] Right.
Robbie Wagner: [22:05] And I never, ever hit the spacebar when I am coding. I just put it all in one gross block and then auto-format.
Chuck Carpenter: [22:16] Oh, I see. You are a true engineer who lets the tools take care of the majority of the work. Okay, what do you need from me? Here's the input from my keyboard. Whatever, as fast as possible. Now, computer, do the work.
Robbie Wagner: [22:30] Yeah, and ask me again in a year. And I might have a different opinion because I remember whenever Prettier came out, I think it's maybe been five years now. It's been a while, but the first year or two it was out, some of the teams I was on were looking at it and thinking about using it, and I was like, no, this is terrible. I want to be able to do the formatting the way I want, and I don't like their opinions, and they're stupid. And then I've just come to realize that having an opinion at all is just so much overhead for no reason. You can just choose someone else's opinions, and then you just write the code, and it formats itself. You don't need your own opinions.
Chuck Carpenter: [23:10] Right. I mean, it's like such subjective overhead. And then us as consultants, when you find these differences from project to project, it's just not a thing worth right fighting for. And the reality is, as long as there's consistency, all the answers are right, and the logic is all that matters. And that's it.
Robbie Wagner: [23:32] The only thing that is definitively wrong is four spaces.
Chuck Carpenter: [23:38] Tabs versus spaces. Tabs versus spaces. So it's two spaces and spaces, not tabs.
Robbie Wagner: [23:44] It's never tabs. I've never encountered someone who preferred tabs.
Chuck Carpenter: [23:47] I have.
Robbie Wagner: [23:47] I know it's this really big argument, and maybe it's more so not in web development or something. I don't know who has ever hit tab. I feel like it seems like an old-school argument.
Chuck Carpenter: [24:00] Yeah, totally. But I feel like, I mean, I hit the tab key, but the tab key just adds two spaces because my setting is two spaces. So tab will actually do that. You don't have to hit the spacebar. But I feel like, I don't know, maybe it's like an overlap difference, whatever. I feel like when I first started at Mariana, Tim was the senior engineer and he had kind of set some of the standards, and they basically were like all the opposite of anything I'd ever done or experienced. So I feel like he was the purveyor of no semicolons and would go on long-winded diatribes about why that was a good idea. And I feel like he did tabs, too, or something. And again, my desire to argue with him over every small thing wasn't there.
Robbie Wagner: [24:46] Yeah.
Chuck Carpenter: [24:46] So I think he rage quit, and then we changed stuff.
Robbie Wagner: [24:51] I agree that you should be able to choose whatever style you want for your team. And I think I've mentioned this before, so sorry for anyone who's listening to all the episodes and if I ranted on this a bunch, but the one time that you don't do that is when the tool you're using is Ember, and they have a defined style that all of the blueprints when you go to update use. So if you don't use that same style and you go to update, you'll have a ton of conflicts, and it won't auto-update stuff. And that's not worth you being like, oh yeah, I like the spacing this way.
Chuck Carpenter: [25:24] No, right, exactly. I like this. And then that's really what it comes down to. There's no argument that shows any particular choice in any of those matters that changes performance or output or whatever. We're not like debating faster loops. So it's all random.
Robbie Wagner: [25:43] Yeah, loops are faster going backwards, remember that?
Chuck Carpenter: [25:47] Nice.
Robbie Wagner: [25:48] Did you ever do that?
Chuck Carpenter: [25:49] No, but that's interesting.
Robbie Wagner: [25:51] For some reason, starting at, I think this may have predated for each and stuff, but starting at array dot length and going backwards instead of starting at zero and plus plusing was slightly faster. It was like a performance hack you could do back in the day.
Chuck Carpenter: [26:09] I had no idea. I never learned that.
Robbie Wagner: [26:13] The more, you know.
Chuck Carpenter: [26:14] Doom, doom doom? Yeah, but the star thing. Yeah. That's very interesting. So, I mean, we've gone a way off track from Git or Get tips, and that's okay, I'm fine with that. Yeah, this can go anywhere it wants to.
Robbie Wagner: [26:29] But let's talk about Git because that's a thing that I have always struggled with, and we've had some issues with this recently. I guess I haven't hit them for a while because I've kind of only worked on my own stuff, like, not necessarily been the only engineer on the project, but I haven't collaborated on a branch as often as maybe I used to in my earlier career.
Chuck Carpenter: [26:51] I heard rumors of this. Some of the issues you discovered.
Robbie Wagner: [26:55] Yeah, I'm not going to give specifics or name names or call anyone out, and I'm just as much at fault as anyone else.
Chuck Carpenter: [27:02] Certainly. Yeah.
Robbie Wagner: [27:03] But the problems basically boil down to, like I'm used to rebasing and doing Git push force. Just like I'm the only one working on it, I'm going to force it up. We're cool. And when someone else is working on it, especially if they also go to rebase, say there's changes in the main branch, and you're like, oh, let me rebase with that, and I'm going to push it up. If I force push and they like also rebates, don't force push, like actually change a couple more files or something like do some more work and then try to push up and you basically get to this point where there's so many conflicts back and forth that are not actually conflicts that maybe someone with tons of GIt knowledge knows how to reconcile that. But I just go, no, let's just make a new branch and go back to whatever commit we can agree was like we were good at, and then we'll just copy the three new commits, like cherry-pick them or manually copy the files or whatever.
Chuck Carpenter: [28:03] Yeah. I feel like you guys have gone way too far down the rabbit hole when I learned about this, and I was like, well, there are some things well, first of all, always force with lease. Right?
Robbie Wagner: [28:15] Except when that doesn't work.
Chuck Carpenter: [28:16] Yeah, well, I mean, it doesn't work because someone else has pushed some other commits up, and you're not gonna, you know, like, oh crap, my force would kill their work. So what do we do? Okay, now we need to like so it gives you that flag of something else has happened. Okay, let's figure that out. Yeah, I think it's the re re re for your global config. So anytime you do get pool, it's always a default rebate. That's nice. Just easy setup. What else? I don't know. That's two things. Yeah. Okay. So anyway, I think what you're getting at is that this is just basically agreeing upon a collaboration style.
Robbie Wagner: [28:59] Yeah.
Chuck Carpenter: [28:59] Essentially, if you're not like forking repos and doing it from personal fork and you're working in the same repo in the same branch, then you have to kind of agree on collaboration style.
Robbie Wagner: [29:10] Yeah. And you have to be more cognizant of that. You can't just even pushing, normal pushing, if you're not pushing every day and you go a week and implement all the same stuff that the other person implemented and push it up. And so now you've got all this stuff that differs because you both did it and didn't. I guess it all boils down to better communication.
Chuck Carpenter: [29:35] There you go.
Robbie Wagner: [29:36] But yeah, it's just a frustrating thing when all that stuff happens, and you're like, I just don't know enough Git. The main takeaway is you should use force at least, and then everything else is communication.
Chuck Carpenter: [29:51] Yeah. Because there's no Git foo that gets you past some of that stuff, and then when you kind of gets you past. Gits, you past basically where you don't know, like you've lost track of history. So the Git history is just like I don't know, I did these things. You did these things. Which one is really the right one? I don't know. Kind of we lost this, this, and this. Along the way. So your escape hatch of burn it down and start a new one is probably a good one.
Robbie Wagner: [30:21] Yeah, yeah, it gets tricky sometimes.
Chuck Carpenter: [30:26] Yeah. Interactive rebates, trying to find the right hash, trying to drop certain commits or redundant commits with a different hash. Blah, blah, blah. Yeah. At a certain point, it's like, that's probably not worth it. Yeah. I can just Copypasta my work.
Robbie Wagner: [30:39] Yeah. I don't know how people learn Git, if it's taught in boot camps much, or like I don't know if we were really taught it in school, because I know we kind of just started using it because someone was using it, and we were like, oh, this is cool to be able to have version control. And it might have been subversion, actually, at that point. Like, Git wasn't as pervasive.
Chuck Carpenter:[31:02] Yeah, I mean, I learned version control through subversion, and I think I had some GUI app that did most of the stuff at that point, and then I don't know. Yeah, I just learned it on the job. And then trying to do stuff and then googling how to do stuff, and then doing stuff, and then losing some stuff and learning the hard way, really.
Robbie Wagner: [31:24] Yeah.
Chuck Carpenter: [31:24] Make some mistakes.
Robbie Wagner: [31:25] There's nothing like force pushing and deleting half your work.
Chuck Carpenter: [31:29] No, that's not what I wanted. Isn't there a way out?
Robbie Wagner: [31:34] Yeah.
Chuck Carpenter: [31:35] So that's one of the times I learned to love Apple Time Machine because you do something like that, but then you can go back in time on your file structure and copy some stuff back, and then you're like, yes, pro tip. Yeah, pro tip. I've got some version control for my version control.
Robbie Wagner: [31:56] Yeah, we used to just use Dropbox with no version control, and that didn't go well because people would, like, just delete entire files that you had worked on, and there was no history.
Chuck Carpenter: [32:06] All right, of course. Yeah. I can remember FTP, like, site changes up to the server Cyberduck or some whatever ridiculous thing and then just placing a file. Do you want to overwrite this? Yeah, absolutely. Oh, did you change something there too? Oh, shit. I don't see it yet. I don't know, just F10 or whatever it was for, like, forced refresh.
Robbie Wagner: [32:30] I don't think I ever used an FTP with a team. I'm familiar with pushing the files up, but I never overwrote anyone's stuff other than my own if I worked on two machines and edited some stuff or something.
Chuck Carpenter: [32:42] Yeah, so the only thing that made that a little bit smarter, I think, like Dreamweaver, you'd connect to a server, and then basically, if you were checking a file out, you could click to check a file out, so then someone else would not be able to access that file if they were also using Dreamweaver connected to the server. And so they were still a little bit, like, smart something there. Right. But outside of that, it was just cowboy craziness.
Robbie Wagner: [33:07] Yeah. So, completely off-topic, but something that I think is pretty fun. Have you seen some of the new things coming in like? I guess what is it? Yes, 2022, I guess, like they just them by the years now. Right?
Chuck Carpenter: [33:25] Right. No, I haven't. Yeah.
Robbie Wagner: [33:28] I don't know a ton about any of them, but I think the one that is my favorite, just arbitrarily, is they now have string dot cooked. Have you seen that?
Chuck Carpenter: [33:39] String what? Cooked?
Robbie Wagner: [33:40] Cooked. Because there's a string dot raw, and this is the opposite of string dot raw. So they called it string dot cooked.
Chuck Carpenter: [33:46] That's silly. That's funny. I didn't see that. I haven't read any proposals or whatever recently.
Robbie Wagner: [33:54] Yeah, I honestly don't know what it does. I think that it's like, kind of similar to how Ember does when you're testing, and you do, like, HBS and give it a template, and it renders it I think you can do a template string and say this is Markdown, and then cook it and it renders Markdown or something like that.
Chuck Carpenter: [34:12] That's cool.
Robbie Wagner: [34:13] Yeah.
Chuck Carpenter: [34:13] String dot cook proposal. Okay. String dot raw, consumes, and string dot cooked would be okay. So, yeah, it takes, like, character. Okay. So there's like you can have some character designations in there, and it will.
Robbie Wagner: [34:31] Yeah.
Chuck Carpenter: [34:32] That's kind of cool. Motivation. I don't know. I don't have any motivation.
Robbie Wagner: [34:39] Yeah. But I guess that's enough tech for now, probably.
Chuck Carpenter: [34:43] I'm ready to transition to whatnot? Gibberish. Yeah. As you can tell with my hat, it's been an interesting week for the football.
Robbie Wagner: [34:54] How does your hat convey that?
Chuck Carpenter: [34:56] I just need to talk to somebody about it because it has a man kicking a ball on it for Manchester United.
Robbie Wagner: [35:02] But he's always kicking that ball, regardless of how the weekend football went.
Chuck Carpenter: [35:07] Yeah, well, this team did not do so well against the blue one in the same city. It was a very embarrassing, terrible time to be a Manchester United fan. So that was rough for me. On Sunday. Sometimes ruins my entire day. So probably accounting for some additional drinking this week. So yesterday there was a big Champions League match. I'm just going to tell you about all these things, and you don't care, but I need a sounding board.
Robbie Wagner: [35:35] Sure.
Chuck Carpenter: [35:35] My wife's tired of hearing about it.
Robbie Wagner: [35:37] We have a few Irish listeners. They care about this sort of thing.
Chuck Carpenter: [35:41] Yeah, the football. Yeah. So yesterday was a Champion League, which is essentially like top European teams from each league throughout Europe. They go through this big tournament, so now it's like in the knockout stages. So they'll play two games, one home, one away for each other. So this was PSG, Paris Saint-Germain, and Real Madrid.
Robbie Wagner: [36:06] Real Madrid? As opposed to fake Madrid.
Chuck Carpenter: [36:08] Yeah.
Robbie Wagner: [36:09] I always just love that because it's like, I guess there's supposed to be like an accent over it or something, but usually in the text, it's just Real Madrid.
Chuck Carpenter: [36:16] Well, they speak Spanish there. So they don't pronounce it real. They pronounce it ree-al. And it is Spanish for royal since it was the king's team. Yeah. So they played yesterday. PSG goes in one, nothing over the aggregates. They're expected kind of to win because they have some of the greatest players in the world. Messi now plays there. Neymar, Brazilian player, and then they have this, I guess, not a kid anymore. He's like 24. Kylian Mbappé, who's touted as probably the best player in the world currently, and.
Robbie Wagner: [36:50] Certainly has one of the best names for a player.
Chuck Carpenter: [36:53] Yeah, Kylian.
Robbie Wagner: [36:55] And the last name, I don't even know what you said, but it sounded cool.
Chuck Carpenter: [36:57] Mbappe. So it's Mbappe, b-a-p-p-e. Mbap.
Robbie Wagner: [37:05] Mmmbop, bop bop bop pop.
Chuck Carpenter: [37:05] Yeah, exactly. That's exactly what I thought, too, when I heard it. But anyway, so they were supposed to go in, and even though they were at Madrid, it was like they had the advantage. They scored an early goal. Oh no. We're winning to nothing. The 35-year-old Madrid striker, Karim Benzema, and he's French, so put that together. Benzema. Benzema. Is that French? I don't know.
Robbie Wagner: [37:30] Doesn't sound very French.
Chuck Carpenter: [37:32] Scores a hat trick in 20 minutes and knocks out PSG. It was just crazy. They're 36. 37 year old central midfielder was a big part of it. So it's like this aging team is kind of supposed to be like they're the old news. Here's the new news. Paris is moving on. And that all happened.
Robbie Wagner: [37:52] It was similar to Tom Brady switching teams and smacking down and being like, hey, I'm still going to win a Super Bowl because I'm old and doesn't matter.
Chuck Carpenter: [38:00] It doesn't matter. It is interesting, I guess, in football, real, like American egg ball games in those terms, like, quarterback is the only one that can kind of age through the sport. Right. Everybody else is just getting crushed. Yeah.
Robbie Wagner: [38:14] If you have a good line protecting you, then, yeah, you're okay. But if you don't, you got to be fast and agile, and you're not doing that at he's, like, what, 42, 43 now or something, right?
Chuck Carpenter: [38:26] Yeah. So is he like the oldest? Because Brett Farmer only like 40, right. When he retired, I believe he was.
Robbie Wagner: [38:32] The oldest, I think, on purpose, like, he got to the oldest and retired.
Chuck Carpenter: [38:35] I was like, cool. I'm done.
Robbie Wagner: [38:37] I don't know if he's officially retired, but I think he announced I don't know if he's doing another season or not. I'm not sure.
Chuck Carpenter: [38:42] Yeah, I don't know if he's either. So funny thing, Manchester United, Tampa Bay Buccaneers, same owners. The Glazers. Glazer family owns both of them. I don't think they own any other teams, but it's an interesting thing in American sports lately because they've started to diversify and own multiple sports teams. So what is it? LA Rams is Stan Kroenke. He owns Arsenal Football Club, the ownership group that owns the Red Sox. Boston Red Sox. They also own Liverpool. Oh, the nation state what is it, the UAE, that family or whatever the nation state essentially owns.
Robbie Wagner: [39:29] They have a little bit of money.
Chuck Carpenter: [39:30] Yeah, they own, like, a number of soccer teams this point. So they own, like, New York FC in the MLS. They own Manchester City, which is the blue that I mentioned earlier. They own another one. Is it in Spain or they own another team, too?
Robbie Wagner: [39:48] I think the differentiate or not, differentiating factor. I don't know what the word I'm looking for is. The common thread here is if you're rich enough to own a sports team, you're probably a billionaire, and there are only so many of those. So they're going to own multiple sports teams.
Chuck Carpenter: [40:05] Right. Yeah, because your barrier to entry is pretty high. And then at that point, you can just do all you want. And here in the states, you can make municipalities fund your stadium, and then you still get a slice of all the business, like refreshments and everything else. Yeah, it's crazy. Also, the NFL is a nonprofit.
Robbie Wagner: [40:28] What?
Chuck Carpenter: [40:29] Yeah, the organization itself is a nonprofit.
Robbie Wagner: [40:33] I guess if you say that a fair salary for, like, the guy in charge is $50 million or whatever, then, yeah, they're a nonprofit.
Chuck Carpenter: [40:42] Exactly. So the owners are not like a nonprofit. They actually pay to be part of the organization or whatever. But yeah, it's a farce. Professional sports in general, is kind of a farce in that way. Like, all these leagues. I don't know. But I guess even to my favorite sport, I think FIFA is a nonprofit, and they are not nonprofit. They are very profit. They're massive sponsors and all that.
Robbie Wagner:[41:09] I think less than profits. What I would look for, for an organization that's doing the right thing is like being a B corporation. That's kind of like the new cool thing. I don't know how much you know about that.
Chuck Carpenter: [41:23] But I don't know anything about that. Why don't you enlighten us?
Robbie Wagner: [41:27] Well, I don't know a ton, but what I know of it is, like, it's the certification you have to apply for, and you have to be benefiting the world in some way to be able to get it or something. Like, you can't just be profit hungry company. It doesn't mean you can't make profits. But, for example, one B corporation is Lemonade, the insurance company.
Chuck Carpenter: [41:51] Oh, interesting.
Robbie Wagner: [41:52] So you pay them premiums or whatever every month, and all money that they don't use for paying out for claims they give to charity or like, whatever. So that's how they are. B corporation. And then another one is like, we get this fancy egg brand now that's like reconsider pastures or something like that.
Chuck Carpenter: [42:16] Okay.
Robbie Wagner:[42:16] Have you seen those?
Chuck Carpenter: [42:18] No, but yeah, I'm just laughing because you always end up like, oh, I need this thing. What's the most brand-new fancy version of that thing?
Robbie Wagner: [42:27] Oh yeah.
Chuck Carpenter: [42:27] You always just always finding these things. You're like, oh, I need a coffee maker. What's some crazy machine that is from startup that cost $1,000? I don't know. That's what we'll do.
Robbie Wagner: [42:39] Yeah, it's more exciting that way. But these eggs, they use, like, regenerative farming, and they let the chickens just go wherever they want. They go past free range, and they're just literally like wild chickens. They go find their own food. They don't feed them.
Chuck Carpenter: [42:56] Wow.
Robbie Wagner: [42:56] And they say it makes the eggs taste different because if you feed them a bunch of corn or feed or whatever, yeah. Then it's like the same egg you're used to. And these eggs are like more deep, amber color when you crack them. So there's something to that.
Chuck Carpenter: [43:10] I guess you've piqued my interest in that sense.
Robbie Wagner: [43:13] Yeah. It's also double or triple a normal thing of eggs in cost.
Chuck Carpenter: [43:18] But all these things are that way. And maybe you'll just eat less eggs. Right. Like, how many three-egg omelets you have in these days?
Robbie Wagner: [43:24] Well, we're actually having a lot because Kaitlyn doesn't eat meat and needs a lot of protein for the baby. We have a lot of eggs, a lot of Fairlife milk for the protein in that, and stuff like that.
Chuck Carpenter: [43:38] I've got an issue here. I've got an issue with this. Vegetarians who eat eggs are eating babies, but it's undeveloped babies because they've been unfertilized. Right. There's this argument about the whole, like, oh, I'm vegetarian, and I get eggs because they're in the dairy section or something. I don't know. Does she eat caviar?
Robbie Wagner: [44:01] No, but I think that's a.
Chuck Carpenter: [44:02] Would she eat caviar?
Robbie Wagner: [44:04] So I have this discussion with vegetarians all the time. We talked to Jared some about it. It's like, for me, if I were to be a vegetarian, the thing that would be my differentiating factor would be if it can feel pain, then I wouldn't eat it. So it's like a thing that has no brain, like a muscle or a clam or whatever, should theoretically be okay to eat, but then a crab would not. You know what I mean?
Chuck Carpenter: [44:29] Okay.
Robbie Wagner: [44:30] So that I think you can make an argument that an egg is just as advanced as, like, a muscle. Why would you say the muscle is more of an organism than the egg? You know?
Chuck Carpenter: [44:41] Yeah.
Robbie Wagner: [44:42] Scientists may have answers to this, but I think they're fairly similar. They were somewhat alive ish.
Chuck Carpenter: [44:48] Yeah. I don't know. That would be an interesting data point, because to me, it feels like if you're cutting out meat and you're, like, kind of cutting out all associated bits of meat, but then yeah. I don't know. You make a pretty good point. And if I could have oysters and mussels, I might be on board. Yeah. Not going to be vegan, but I would get on board with some of that. I want some cheese.
Robbie Wagner: [45:14] Yeah, no, scallops would be enough for me. Scallops are my favorite.
Chuck Carpenter: [45:19] I like them a lot. They actually used to be one of my goto dinners that I would make and made it. So for my wife, I don't know, it was probably like our second or third date, or something made her scallops, because it was like, when I go, come over, I'll make you dinner, and made her scallops, I was like, yeah, do these really well. And then she doesn't like scallops, so never did that again. And then, really, I never make them anymore, but I sometimes will get them out for dinner because, hey, I can't get this at home. Going down that path.
Robbie Wagner: [45:50] Yeah, the problem with getting them out is, like, you get four or six, and it's like $30. And you could get a bag of scallops from Whole Foods for, like, $30.
Chuck Carpenter: [46:00] Right.
Robbie Wagner: [46:01] So I'm just like this is like yes, they are a finicky thing to cook, so you're paying a little bit for that expertise and whatnot, but I've frequently gotten a giant bag of them and just made them for days in a row.
Chuck Carpenter: [46:14] Nice. Yeah. I have no qualms with eating the same thing on repeat. I like this. Back in the days when I was a single man, it was very easy. Like, okay, I got this thing. Looks like there's a lot of it. I guess I'm going to eat it for a few days in a row, and that's fine.
Robbie Wagner: [46:30] Yeah, I'm the same. Like, I have to eat something every day for, like, a long time for me to not want it anymore.
Chuck Carpenter: [46:38] Yeah, I ate mostly grilled chicken for ten days straight. Let me tell you. That might qualify. Yeah, I don't know.
Robbie Wagner: [46:47] That is the one thing. Okay, I could eat the same thing. As long as it is flavorful and good, I'm not going to eat something bland for multiple days in a row.
Chuck Carpenter: [46:57] Oh, you could use sauce and stuff, particularly hot sauce, with this. But like, after a little while, like a month ago, I did this, like, caloric restriction, low fat, like, mostly protein diet and intending to maintain as much muscle as possible and just lose weight. It was like, 10 pounds in ten days was pretty significant. And that's actually held true since, even though I'm not on that diet. So, hey, there's something to that. But I was definitely sick of grilled chicken at a certain point. Yeah, no mas.
Robbie Wagner: [47:30] Yeah, it's really tough. Not just for diets and restrictive stuff like that, but if you're trying to bodybuild or not even that level, but just build a little muscle mass. You are supposed to have so much protein, like a gram per pound of body weight or whatever. And the only way to do that is to eat a ton of chicken because you could, I guess, get it from steak or something else, but then you would just kill yourself from all of the steak.
Chuck Carpenter: [47:57] It's just higher fat content. So you want to do it, you want to do it lean, unless you want to put more fat too, along with that, right?
Robbie Wagner: [48:03] Yeah, because I used to do that for a little while, I lifted pretty hard and then quickly injured my shoulder and got fat. But when I was lifting hard, I would get like the big ten packs of chicken breast or whatever and have it like a couple meals a day of, like, a chicken breast or two and then protein shake or two a day. And, like, it's so much protein you have to have.
Chuck Carpenter: [48:30] Yeah, it's a lot low fat cottage cheese in the morning and do that some. Cans of tuna. I ate so much tuna. It's like, when I was poor, but also trying to, like, work out and be fit. And I would eat, like, ramen and tuna on the regular.
Robbie Wagner: [48:45] Chicken of the sea. Right. Still chicken.
Chuck Carpenter: [48:47] Yeah. Says chicken. I know it's tuna but says chicken. Remember that famous Jessica Simpson line?
Robbie Wagner: [48:53] Oh, I kind of do vaguely remember.
Chuck Carpenter: [48:55] That, but yeah, no, I don't remember.
Robbie Wagner: [48:58] A lot because my brain can only hold so much JavaScript knowledge that I have to take everything else out.
Chuck Carpenter: [49:04] Yeah, there's also all this whiskey involved. All right, are we ready to take a break before we go drink some more?
Robbie Wagner: [49:14] Yeah, I think we're probably good here, but I will mention at the end here just in case we don't get to record another one. This could be my last one before Caitlin gives birth.
Chuck Carpenter: [49:24] Oh, my God. Are you going to die?
Robbie Wagner: [49:25] No.
Chuck Carpenter: [49:27] Okay.
Robbie Wagner: [49:28] No. So our official due date is March 21, but things can be wherever. I've found out recently that most people go later rather than earlier, so we might still be able to do another episode or two, but in case we don't, if you don't hear from us for a while, for whatever reason, that's why.
Chuck Carpenter: [49:48] Yeah. No one's dead. Yes. Thanks for listening to Whiskey Web and Whatnot this podcast is brought to you Ship Shape, and produced by Podcast Royale. If you like this episode, consider sharing it with a friend or two and leave us a rating and maybe a review. As long as it's good.
Robbie Wagner: [50:09] You can subscribe to future episodes on Apple, Spotify, or wherever you get your podcasts. For more info about Ship Shape and this show, check out our website at shipshape.io.