Whiskey Web and Whatnot: Web Development, Neat

A whiskey fueled fireside chat with your favorite web developers.

9: Uncle Nearest 1856, JSON:API vs GraphQL, Traveling, Mexico, and Middleburg

In this episode we try the Uncle Nearest 1856 100 proof premium whiskey, discuss the pros and cons of JSON:API vs GraphQL, and give updates on our lives post-vaccination, the new office space in Middleburg, and the latest news in the Ship Shape world.

Show Notes

In this episode we try the Uncle Nearest 1856 100 proof premium whiskey, discuss the pros and cons of JSON:API vs GraphQL, and give updates on our lives post-vaccination, the new office space in Middleburg, and the latest news in the Ship Shape world.

Episode Transcript

Robbie Wagner: [00:35] Hey, everybody. Been a few weeks since we’ve chatted with you guys. We have been busy doing lots of various things. We’re going to have a guest next week, Robert Jackson from the Ember Core team. So definitely check that one out. It’s myself, Robbie Wagner, and my co-host, Charles W. Carpenter III. As always, and today we have a by-request from Nick. One of the non-rye whiskeys that we had on hand was one we’ve actually been wanting to try for a while that Chuck knows. I think some of the history on. I know I saw it on the news some, but maybe take it away and give people a little intro into what we’re trying today, Chuck.

Chuck Carpenter: [01:22] Yeah. So we decided to try one of the offerings from the Uncle Nearest Distillery. I’m assuming that’s the distillery name, but it is their product name. And it’s an interesting story. There’s been a lot of marketing out there and whatnot, and I think some pretty good vibes and feedback in the whiskey community as well. This is their 1856, and the interesting story behind Uncle Nearest is that he taught Jack Daniels. This was like one of the more popular mash bills in the area. And there was a technique in terms of flavoring it slightly with mapled charcoal. He showed Jack Daniels how this process worked and was the first master distiller at Jack Daniels Distillery in Tennessee. It’s like two-fold thing. So he was a black man, and that wasn’t very evident or like really just wasn’t available information in the Jack Daniels history. A documentary came out about it, and the family dug into that and got a lot of information there and actually started a distillery with their original family mash bill. So seemed pretty cool. And then the fun fact about Jack Daniels, not all Tennessee whiskey, but Jack Daniels, in particular, is exactly bourbon until they do this maple filtering.

Robbie Wagner: [02:58] Yeah. And it wasn’t just that there wasn’t as much information about exactly who Uncle Nearest was, but it was like they had zero information at all. Like they were just saying, Jack Daniels was the one who did it.

Chuck Carpenter: [03:14] Yeah. They were leaning into that company started by and Master Distilled by Jack Daniels. Yeah, absolutely. My understanding of it, and I didn’t deep dive or anything like that, so don’t over fact check me on this, but is that there was no information whatsoever. This came out. The family had done studies. There was a documentary and all of this and then that he, indeed, was the first master distiller. He was there for quite some time, in fact. And a young Jack learned that aspect of the business from him.

Robbie Wagner: [03:49] Right, yeah. I looked at their website a little bit. They apparently won some awards in 2020. Spirit brand of the year from wine enthusiasts. Double gold at San Francisco Spirits competition, that kind of stuff. So should be some pretty good stuff, I think.

Chuck Carpenter: [04:07] Yeah. And they have a couple of different offerings. And so, yeah, I just picked this one because you had already bought it.

Robbie Wagner: [04:17] Well.

Chuck Carpenter: [04:18] I would have tried any of them.

Robbie Wagner: [04:19] The only two they had at the Virginia ABC store were this 100-proof one or the small batch 93-proof. But from their website, it looks like they have a barrel proof and maybe one other one.

Chuck Carpenter: [04:36] Yeah, I think I’ve seen three at the Total Wine and was interested because sometimes Total Wine will have open bottles and let you do tastings and stuff. And I’ve just kind of been waiting to see if that was ever going to come to fruition. And then, instead, you picked one up, and we had the ability to do it for the show, so why not?

Robbie Wagner: [04:55] Yeah. All right, let’s pour this.

Chuck Carpenter: [04:58] Yes. And then while we oh, yes, we have to do the there you go. Right at the mic. And then hold on. Oh, there you go.

Robbie Wagner: [05:10] Yeah. There we go.

Chuck Carpenter: [05:12] Yeah. I’m going to transition into sound effects. The future of Ship Shape is sound effects. Foley. It’s called a Foley artist, by the way. Fun fact.

Robbie Wagner: [05:21] Foley?

Chuck Carpenter: [05:22] Yes. I don’t know why it’s called that, but I learned that because I know you like these facts, these tidbits. I went to film school for a year.

Robbie Wagner: [05:32] Yeah, I think we covered that in another podcast or maybe post podcast, I’m not sure.

Chuck Carpenter: [05:37] Yeah, it’s hard to say. My life blends together a little bit. So as normal, I’ll be having this taste in a proper whiskey glass. Glencairn-like Norland, and he will ruin it with ice right away.

Robbie Wagner: [05:54] Hey, you like what you like?

Chuck Carpenter: [05:59] Also, while you take that moment there, I’m going to dive in. I tried to find mash bills of the whiskeys that we try beforehand, and this one wasn’t very evident in most sites, including their own. But there is one. I don’t know if they’re making a wild guess or they actually got the information later on saying that it is 84% corn, 8% rye, and 8% malted barley, which is very high corn for a normal bourbon. So we’ll see how that affects taste.

Robbie Wagner: [06:34] Yeah, I mean, it’s hard to not think about comparing it to a Jack Daniels with all the history. And my first impressions are that I’ve never really liked Jack Daniels as a first fact to know. And then I think this is better because it’s got a little more complexity. Like, it has a similar finish to a Jack Daniels, I would say. But it’s like, in the middle, it’s got a little bit of spiciness, like a little more like the ryes I like. Let me give it another taste.

Chuck Carpenter: [07:07] Yeah, I would agree with that. It’s interesting because on the smell, and I will preface that with the anytime I leave Phoenix for a few days and come back and there are these massive humidity changes, my olfactory senses are sometimes thrown off. So it could be that. But I am getting a little smokiness in the smell.

Robbie Wagner: [07:28] Yeah, there’s a little smokiness.

Chuck Carpenter: [07:30] Okay. And I would say, yeah, in the realm of maple charcoal filtered whiskeys, of which there are not that many, this is less sweetness. So for a high corn, it’s actually pretty surprising to me that it has less sweetness. This is more in the family of, like, Dickel Tennessee whiskeys to me. So it gets a little of that spice in the mids.

Robbie Wagner: [07:55] Yeah. It starts to try to taste a little bit sweet and more Jack Danielsy. And then it immediately gives you that spice and smoke and doesn’t have the same feel. So I would say it’s pretty good. I don’t know, what can I complain about? I think there’s actually a little too much wood on the finish. Just a slight bit too much. So I would give it maybe six or seven tentacles, I think.

Chuck Carpenter: [08:25] Yeah, I’m trying to think about that. A little bit of sweetness, but it’s not bothersome, actually. And I do like that there’s a range here. There’s some complexity to it. Yeah. I’m really in a similar range where it’s like, well, here, let me say this. It’s pretty decent. I would have it again, and given that, you know what? Yeah, I know. Okay. In its finish, it has a little bit of, like, an orange rind for me, like, a little bit of that slight bitter, but like citrus. But bitter citrus.

Robbie Wagner: [09:11] Yeah, a little bit.

Chuck Carpenter: [09:13] Yeah. I think what puts this in the like, I wonder what the age is of it. And it’s aged in charred oak barrels, we don’t get to know because I reckon whiskey.

Robbie Wagner: [09:24] Seven years is, like, their minimum, and then their single barrel is like eleven. Or am I making that up? Let’s see.

Chuck Carpenter: [09:32] Okay.

Robbie Wagner: [09:33] An eleven-year-old single barrel product and a seven-year-old small batch offering.

Chuck Carpenter: [09:40] I’m going to go seven. Seven tentacles. I’m giving it a seven. It’s pretty good.

Robbie Wagner: [09:43] Yeah. I’ll round up the seven. I was on the fence, but I don’t know. It’s not perfect, but it’s pretty good. Seven sounds good.

Chuck Carpenter: [09:52] I feel like the more I have it, the more I am like, yes, I could drink this through the night. I can buy this for $60, and I don’t recall what it costs, but.

Robbie Wagner: [10:05] I think it’s less than that.

Chuck Carpenter: [10:06] Yeah, I do. I actually think it is less than that. But I know there’s things their offerings are between 40 and 60, if I recall offhand. So that’s why I was like, okay, I want to taste this in some way before kind of really leaning in. And let’s just say if this was $50 a bottle, I wouldn’t feel bad about that. I would feel like, yeah, this is a tasty product for that. And I, in fact, would rather have this than Jack Daniels.

Robbie Wagner: [10:29] Yeah. I would rather have almost any whiskey than Jack Daniels. Some people love it. I don’t know. People like different things.

Chuck Carpenter: [10:38] Yeah, but Jack and Coke is the thing, so let’s take this sweet thing and mix it with another sweet thing.

Robbie Wagner: [10:43] Okay, so that’s different. I’ll have a lot of whiskeys and Coke, but what whiskey am I going to sip on is not the same thing.

Chuck Carpenter: [10:50] Too much Jim Beam and Coke in college, and I’m not sure I can do a whiskey and Coke. I haven’t approached it in quite some time because I actually drink whiskeys that taste good on their own now.

Robbie Wagner: [11:01] Yeah, Jim Beam is also pretty sweet. And I don’t know. We used to mix it with Koolaid, which is not recommended.

Chuck Carpenter: [11:09] No. I can recall chasing a decent amount of very terrible liquor with things like Mountain Dew or like Hawaiian Punch or just anything you could find that didn’t taste like terrible vodka or whiskey.

Robbie Wagner: [11:29] One of my roommates in college would mix several different liquors. Like, he would get out, we would have, like, a blue raspberry liquor, like a normal vodka, a whiskey, maybe some gin, all these different things. And he would mix all those and put some soda in it or something. I was like, that has to taste, like, the worst thing ever.

Chuck Carpenter: [11:50] Yeah, it really is like an efficiency model, I guess, because you’re just saying, I need all these things in order to get drunk, but I don’t want to taste them. So I’m going to put this other very strong, non-related thing over top of it and just hope it works out. Spoiler alert for anyone who’s listening, which I can’t imagine who hasn’t gone down this path or knows better. It doesn’t taste good.

Robbie Wagner: [12:18] Yeah, would not recommend.

Chuck Carpenter: [12:20] Yeah, would not recommend. That would be negative four tentacles. If it’s in a plastic if you’re getting hard liquor in a plastic container, no, step away. Don’t do it. Just go buy cheap beer. Better.

Robbie Wagner: [12:40] Yeah. I mean, on the other hand, if you can get your hands on grain alcohol and put a lot of that with everything you’ve got in your house in a big bucket, it’s usually pretty good.

Chuck Carpenter: [12:53] Okay, so I am from Kentucky, as I probably mentioned before. So I’ve had some moonshine here and there a couple of times. And I know what you’re referencing, although I don’t think we ever made it with straight-up moonshine. You’d get a little moonshine, and then you just had to kind of drink a little of that just to see if you could survive. But you can do it with Everclear, too, and you mix it with a bunch of fruit and juice and whatever else. I’ve heard it called creek juice before.

Robbie Wagner: [13:24] We called it jungle juice.

Chuck Carpenter: [13:26] Jungle Jjuice was the other one. So I was just going to leave you an opening there. Yeah, because you’re from Virginia. That’s the south. It was the epicenter of the south. At one point, we have a similar experience in those ways sometimes.

Robbie Wagner: [13:43] Yeah, you could get Everclear either in West Virginia or South Carolina, so we would go down to the beach and just stock up on Everclear in South Carolina and then bring it back. And it’s also fun to throw in fires and just explodes on impact. It’s pretty cool.

Chuck Carpenter: [14:03] Maybe you’ll be surprised to learn that within this decade, or even maybe within the last five years, I have purchased Everclear and used it to make limoncello a couple of times.

Robbie Wagner: [14:14] Actually. We did that for our wedding.

Chuck Carpenter: [14:17] Oh, nice. There you go. Yeah. Love it. I like limoncello. I do think it needs a strong alcohol flavor to counter the sugars and sour and just all of those, like, amaras that are fruit based. It’s kind of fun. And I like Nocino quite a bit.

Robbie Wagner: [14:36] It’s really hard to make a limoncello in America, though, because they got the giant lemons over in Italy, and you have to peel 1000 lemons here to make a batch.

Chuck Carpenter: [14:48] Yeah, I can’t remember how many I would typically do. So I would essentially be shooting for, like, one or two 750s and probably end up with, like, two dozen lemons or something like that. But citrus here in Phoenix is really good. So, I mean, this kind of, like, Southern California has a great climate for citrus, and there’s tons of citrus, especially, like, in my neighborhood now. There used to be a number of orchards here originally, and so there’s still, like, some lingering citrus in the neighborhoods. So your neighbors will always be, like, putting out grapefruits and oranges and lemons. We have some very interesting Meyer lemons. Actually, that would probably be pretty good for that.

Robbie Wagner: [15:32] Yeah, I think we’re going to experiment with some in pots that we can either bring inside or get, like, a little greenhouse or something because it’ll definitely freeze here. So we can’t grow but so much, but going to give it a try.

Chuck Carpenter: [15:45] Yeah, I want to try avocado.

Robbie Wagner: [15:48] Yeah, Katelyn wants to do that too because she has avocado toast, like, every day.

Chuck Carpenter: [15:54] So why not try to grow some and at least. Partially eat those. Yeah. Okay, so that worked out.

Robbie Wagner: [16:05] Yeah. So GraphQL, how do you feel about that?

Chuck Carpenter: [16:10] Well, I have a lot of experience with it in the last couple of years, so I can definitely see some pretty good use cases for it outside of, like, consistency and predictability. In your request and response areas, there is this way to distribute schema across microservices and then, like, stitch that together or federate it if you’re in the Apollo realm of technologies and then have one schema to rule them all. So if you’re following some other specs that requires you to present your schema upfront as part of all of that, then the GraphQL method kind of gives you that on top of some of the other things. Yeah, I think it’s good. I think that it doesn’t have a ubiquitous use case necessarily, but obviously, everybody’s talking about it, and so they’re just going to start using it across the board.

Robbie Wagner: [17:16] Yeah, I’ve used both it and, well, I guess not both. Like several different types of APIs. Right. So in the Ember world, you have JSON API, which was kind of the precursor, I would say, almost to GraphQL. It had some similar ideas about let’s only include the things you actually want. So you can set up an includes for different relationships and pull those in, and you don’t have to have every single field all the time and stuff like that. But I think the one thing I would say across the board is both of them are better than a generic. Like, oh, we have this Rest API, and it has no standards, and any field can be anywhere. IDs are in random spots like data is arbitrarily nested, and you get everything. You can’t control it. I think both solve those problems.

Chuck Carpenter: [18:13] Yeah, I would agree with that. Rest spec was the win over things like soap back in the day, where you could have some layer of predictability in terms of what you were going to. I mean, basically, it was just something around crud operations. Okay, I’m going to get some things. I’m going to get a thing. I’m going to put a new thing. I’m going to those kinds of things. And then JSON API is a nice layer on top of that to say, like, okay, right. But the shape of everything is always different, and so I have to always write something to parse that on the client side. Once I’m making my requests, right, I get a thing for you. You decided it looks like this. Now I got to create a wholly custom thing. Can we just agree on what that is together? So JSON API was, like, really great for that. And I mean, it still is very great for that. It was definitely very hot in the space, and people were providing, because a lot of this is really about popularity gets attention, attention gets continued tools, and whatnot. And as front-end development changes, you’re looking for packages. You’re looking for tools to make this work for you. And my obvious recent use case is that I was working on an API for our swatch product. So hopefully, that goes somewhere. And if you are a swatch user and listening to our podcast, we want to add some persistence that is not localized to your app and your one machine. We’re thinking, like, it would be cool if you could create an account and synchronize your swatches, which has a little double meaning in Entendre. That’s my Parker Lewis Can’t Lose reference there. And I’ll come back to that in a moment. Synchronize swatches across all your machines. You have an account. You get a new machine. Sign up. Your swatches come on board. So we were working on API for that purpose. Our electron app uses ember. Ember’s usual happy friend is Ember Data. But we’re using a different flavor there for a few different reasons, but it’s still very JSON API-friendly, which is cool.

Robbie Wagner: [20:39] Ember orbit. Orbit JS you can use.

Chuck Carpenter: [20:40] Yeah, a little shoutout.

Robbie Wagner: [20:41] In other things. Yeah, shout out to Dan Gebhardt, who is the wizard of all data things and will be helping us shortly figure out what we’re doing with that.

Chuck Carpenter: [20:53] In case you get a chance to listen to this before Friday, Dan not sure, but I hope you are wearing a hat with stars and crescent moons. So yes, a JSON API friendly packages and data persistence models. But I was working on this API and doing it in serverless, and yeah, so trying to support serverless TypeScript things. But then JSON API is sort of the forgotten stepchild over a couple of years. I mean, there’s a lot of great things out there for it, but if you kind of divert from this obvious ecosystem, then things become more challenging, and it would have been a lot faster from, like, an intake serialization and deserialization standpoint in order to put it into databases to not be JSON API. Right. That’s not a friendly thing for this last couple of years. And GraphQL would have been very easy. But it’s one of those things where you just kind of decide where you’re going to put in the work.

Robbie Wagner: [22:05] Yeah. And I think the problem is, like, JSON API had a lot of good ideas, and they had a lot of steam for like six months to a year, and then basically no one worked on it. So I think Dan is actually working on it and.

Chuck Carpenter: [22:22] Yehuda still contributes in a way, right?

Robbie Wagner: [22:24] Yeah, Yehuda is I don’t know how much he contributes or is just like help with the thought leadership and stuff, but yeah, he’s around. But basically, there are things you need with an API, like pagination, right, which does not exist in JSON API. So it’s just like you can do your normal things like find all of this type of thing cool. I’ve got this query to get it all, but if I want to paginate it or I need some special meta or different things, you’ve got to do like really custom serializers and adapters and all that to make all that work, which is fine, and there are some decent examples to do that but I would imagine hopefully GraphQL supports those things.

Chuck Carpenter: [23:07] It does, yeah, I was going to say, and there you go. So some things like that. It’s really nice. And a couple of things. So one of the design patterns that’s well supported is called the viewer pattern. So it’s like I am the person who is logged in. Now show me the cascade of things that is available to me that’s essentially sort of like everything that can be included. But then you have field-level inclusion. You have field-level caching toggles too there, which is also kind of nice because we all know caching is really difficult, especially from a data perspective. I think that’s maybe an area where GraphQL starts to really win. But then again, you have to scale to a degree that caching is a problem.

Robbie Wagner: [23:55] So do you flag, like, which fields you want to be cached versus not?

Chuck Carpenter: [24:00] You can, you can do that. So you can do a few different things. You can actually do it in the schema at the field level, or you can do it in the resolvers so at the request level. And you can do it globally too. So when you spin up your GraphQL server, you can just say cache controls on this is the cache control mechanism I’m using, and then here’s my default setting. And then you can start to pull levers at various levels down or the inverse, you can say caches, here’s my cache controller, but everything is cache zero unless I start to tell you to cache things.

Robbie Wagner: [24:35] Yeah, I think there’s some things with Ember data that kind of do that. Like if you request a record with a certain ID and it doesn’t think that it may have updated, it will just use the one from the store, but it’s a little bit unclear how to pull the right levers to make that do what you want. And when should it force update versus not? So a lot of times in Ember apps, you’ll be hitting a model hook, and your data doesn’t change, but you know it should. So you’ve got a force call. Like, say you have a thing that has a has many, right? You’re like, this book has many pages, and the pages aren’t updating, so you have to manually call, dot reload on it to force it to call and reload everything. And that’s kind of not advertised in the docs or anything. So there is that disconnect where with GraphQL you’re configuring the same sort of thing, both server side and client side, whereas, with JSON API, you set up your API, but then your front end has all these different flavors of things that may or may not do the spec correctly.

Chuck Carpenter: [25:44] Right. But think about it this way. It’s a hard problem. So there’s two hardest things in software engineering, right, are naming things and cache. Because there’s all these different levels that you can do that in GraphQL, you can do it on the server side and so recently implemented for a client a Redis caching keystore and that says anytime that a query comes in that looks like this, it triggers this key. I already have the response. I don’t need to go ask the service for that. And that’s pretty powerful to a degree, right? So, yeah, you could do it within the client, and that gives benefit to that particular client. But if you do it on the server layer for things like this, like, oh yeah, I have a product, its description never changes or doesn’t change very often. So I’m willing to let that description stay persistent for a month or something like that. And once the first person hits it, I get that for quite some time before another person has to trigger that refresh. And if it is that important my change, well, I can go into there and manage that key store.

Robbie Wagner: [26:53] Right. Yeah. I don’t think there’s anything like that for JSON API.

Chuck Carpenter: [27:00] Yeah, I think that they’re more like it’s not built into that particular spec. You would be making decisions, from what I recall, and working with some of those. You’d be making those decisions as an additional service layer.

Robbie Wagner: [27:15] Yeah, I mean, we should probably have a guest sometime who is an expert, and they can refute everything I’ve said. But from my understanding, it’s missing a lot of these things.

Chuck Carpenter: [27:26] Yeah. So, Yehuda, I know you’re listening. If you’ve got some spare time.

Robbie Wagner: [27:34] Yehuda is not listening.

Chuck Carpenter: [27:35] In case you’re not in a current Twitter fight. Yeah, come on, and let’s talk about these things because I do think JSON API is a great product. I think that if you’re doing a normal rest crud API and you don’t have the use case or skill set or desire to utilize GraphQL, you absolutely should be using JSON API. And even if you do have some of those things, you should be asking yourself the question like, am I using GraphQL? Because it is another layer of learning things, complexity, and all those kinds of things. And JSON API is just giving you like you’re just agreeing to standards, and expectations are known between the teams working within this application. And that’s a great thing. That’s a huge thing.

Robbie Wagner: [28:25] Yeah.

Chuck Carpenter: [28:27] Conversely, there’s this testing, I want to loosely say testing library, ideology, foundation, website, whatever it’s called, pact. P-a-c-t. So it has its own kind of standard that you create. Say you create an API, and then you’ve run it against this pact engine, and it creates the contract there. And then that contract is shared between, say, your API team and your front-end application team, and both are doing tests against it. And if anybody is doing something that doesn’t pass the pact or changes the pact, there are flags thrown up, and then great, you work on that and whatever. Okay, now we know we’re going to generate a new pact, and now we just make sure that API changes don’t happen that are going to go upstream and just weren’t tested or whatever else. If you just break the pact, that’s all you need to know. You don’t need to test against the other application, and hope they have integration tests that cover your use case. You’re now just both opted into this mutually exclusive thing.

Robbie Wagner: [29:41] Yeah, I mean, I know a lot of times when I’m starting a new feature, you work with the back-end folks, and you spec out what the API should look like, and you both kind of build for a week or two or something and come back together. And usually, during that time, if you’re not communicating super well, one or the other of you deviates from what you agreed upon. And then I’ve spent two weeks building a thing, and it’s like, well, the API has these ten different fields, and we change the names of all their relationships, and okay, well, that’s going to be like weeks more of work for me to fix that because you didn’t let me know. So if you had that pact thing, that would let you know ahead of time.

Chuck Carpenter: [30:19] Yeah, you can basically develop against the pact. I do think that that’s also like an advocation to simulation layers. I think that there’s something to be said for what can be accomplished in a quick simulation layer. I mean, we have friends and colleagues who advocate for that, like our friends at Front Side or our friends making those things, such as Sam working on Mirage JS. I know I bothered him a bunch in the past on different things, integrating that into React apps for clients. And it does, it does, like, let a lot of that come up. You agree on a schema, apply it to a quick library like that that can let you start building features while they build this agreed-upon schema and spec. And if they askew from it, well, then great, things aren’t working, let’s go back. But it doesn’t like, oh, we’ve delivered your feature. Oh, crap, there’s a bunch of bugs that we didn’t account for.

Robbie Wagner: [31:18] Yeah, I mean, having some visibility into the fact that the other side changed is really all you need because your tests may be passing, but if they have no knowledge of the changes on the other side.

Chuck Carpenter: [31:33] Your tets make a lot of assumptions of an agreement that may not have been met.

Robbie Wagner: [00:31:37.230] - Right.

Chuck Carpenter: [31:39] Yeah, it’s interesting. You need to find ways to melt the boundaries, actually, because I always hate the sides, either the front side or the backside or the blah, blah. I don’t know. We’re all trying to deliver a thing because, guess what? Your customers don’t care. Your product owners don’t care. Business stakeholders, they don’t care. They don’t care who has what part of the problem.

Robbie Wagner: [32:06] Yes, it’s got to work.

Chuck Carpenter: [32:10] Amen.

Robbie Wagner: [32:14] Speaking of work, I’ve been doing the most work into different things that I’ve not had a lot of experience in recently with all of the stuff with for those that don’t know, we just bought an office building. And I’ve been like, this whole process is ripe for disruption because I’ve been doing this back and forth with the lenders and the real estate agents and the title company. All this stuff that when you buy a house as a consumer, it’s kind of all handled for you. Like, you choose a real estate company, and your agent, because they’re getting this commission, kind of handle everything for you that they go-between. They make sure everyone’s on track, and everything’s going smooth. None of that happens on the commercial side. You have 15 people emailing you, being like, hey, I’ve been waiting for two weeks. Where’s this document? Like, oh, well, if you had called this other guy, he has that document. No one talks to each other, and it’s terrible. If we had the time and the budget, I would build thesamethingisbetter.com, which is a great app for the commercial side. And it used to be an Ember app and is not anymore, I think. Unfortunately.

Chuck Carpenter: [33:33] Demand and hiring screams again is what I think is happening there.

Robbie Wagner: [33:39] Yeah, actually, the guy that I don’t know if he’s, I guess he’s CTO or CEO or something, he like, came from maybe, I don’t know, I don’t know. One of the technical guys I talked to on Twitter and he came from Spotify. Like, he’s a big, I guess, technical person that people know. I don’t know of him because I’m kind of siloed to the Ember community a lot of the times, but I talked with him a while, and yeah, he was like. Unfortunately, we’re moving to React because of a lot of different reasons. And some of that could be like we were just talking about with the JSON API stuff. Like, if you don’t want to use JSON API and you’re using Ember Data, kind of screwed.

Chuck Carpenter: [34:19] Right. So here’s an offhand business idea. Start an accelerator that uses Ember. The thing is, a lot of these programs, code schools and accelerators, and all that kind of stuff, they all use React, right? Because it’s the one size fits all, in a way, or at least that’s the assumption.

Robbie Wagner: [34:45] Yeah, I mean, I just have so much free time, like teaching a class sounds like something I would definitely want to do.

Chuck Carpenter: [34:53] I put that out there in the world and not just for you. The Ember core team starts one.

Robbie Wagner: [35:02] Yeah, I think there’s an appetite. People don’t necessarily know it, but everyone is all learning React, all in on React. No one really even learns JavaScript fundamentals, honestly. They just start learning React. And, like, I can build a React app. Let’s do it. What happens if React goes away? Like, frameworks go away eventually, right?

Chuck Carpenter: [35:23] Yeah, that’s 100% true, and you’re screwed. Right? There was a time in my career where I was more like web designer, but implementing some stuff on sites and all that kind of stuff and interactivity in that way and not just doing like the simple HTML CSS thing. And my flavor of things was jQuery. Like, most of the things I had to get done was jQuery. And then I do some vanilla JavaScript for things around forms or whatever else. And then when I was pre, I guess it would have been Backbone. Like, Backbone really exploded things in ways to tie together spaghetti code applications into an actual framework. And it blew my mind. It was just like, wow, this is confusing and difficult. That’s when I think I really had to face JavaScript fundamentals and not just like DOM manipulation.

Robbie Wagner: [36:28] Right. So were you doing design a whole web page, convert it to slices in Photoshop and then ship those as images?

Chuck Carpenter: [36:37] Did that. Definitely did that.

Robbie Wagner: [36:41] I did a lot of that.

Chuck Carpenter: [36:41] When I first got in, we were doing tables with images aligned in the tables. And then, even when you’re doing CSS layouts, you’re doing images aligned in the actual elements and sized elements and crazy stuff. So it’s ridiculous having these images so you could have rounded corners on your buttons.

Robbie Wagner: [37:07] Yeah. It’s kind of crazy to think about all those hacks that we used to do, and I don’t know if screen readers were really a thing then, but imagining any kind of accessibility, they would just be like, nope, no website here.

Chuck Carpenter: [37:22] Yeah, I’m out. I only access government websites because they’re the only ones that care about me. Really. Yeah. It’s crazy. And then, when you think about why, what did you really get out of it? And then it was just considered more like brochureware, like the visual difference. And our brochure helps us sell products. I’m not sure if that’s true. I think that’s why Google did so well. Not giving a shit about all those flashy random buttons. They were like, we have this thing, you can come here, and it works really well, and who cares that it’s simple and doesn’t look like much.

Robbie Wagner: [38:01] We have an input box and a button. We haven’t styled them. Enjoy.

Chuck Carpenter: [38:08] Exactly. But find what you want.

Robbie Wagner: [38:10] Yeah.

Chuck Carpenter: [38:15] That’s an interesting oh, yeah. So you are, I guess, a property manager. That was the short version of that story. Now you’ve become a property manager. We decided to buy a building. You will be joining the ranks of the rural residents to moving outside of the DMV area.

Robbie Wagner: [38:38] Well, close enough.

Chuck Carpenter: [38:41] I mean, it’s in V still, but it’s out there. It’s more rural. That’s all i’ll reveal for your privacy.

Chuck Carpenter: [38:48] Well, I mean we can give out the.

Chuck Carpenter: [38:49] And so an office building made a lot of sense for us.

Robbie Wagner: [38:51] You can give out the office info. Like, we’ll probably put that on the site at some point.

Chuck Carpenter: [38:55] That’s true. Yeah.

Robbie Wagner: [38:56] We won’t say where I’m going to live, but we’re moving to Middleburg.

Chuck Carpenter: [39:01] I’ll be tweeting Robbie’s new address soon.

Robbie Wagner: [39:05] You don’t have a Twitter, do you?

Chuck Carpenter: [39:07] Well, no, I don’t. Yeah, it’s not mentioned before. I don’t social media, except for LinkedIn and marginally that. For better or worse.

Robbie Wagner: [39:18] We’ve got a new office with, like, we’re only using part of the space, and we have several people still renting it out. Also moving my home there, my wife and I are moving there.

Chuck Carpenter: [39:32] Into the office. I’m going to charge them crazy rent.

Robbie Wagner: [39:36] It’s just really different speed out there. Right. I had to sign up for all the different things with the town, like taxes and property taxes and sewer and water and all that stuff. And it’s like, okay, print out this form and bring cash to this office, and I’m like.

Chuck Carpenter: [39:55] Wow.

Robbie Wagner: [39:55] What? I can’t just go online and be like, hook up my stuff.

Chuck Carpenter: [40:00] I can’t even just call someone to do it and then give you a credit card or like a routing number.

Robbie Wagner: [40:06] But it’s kind of silly because they require that. And then you get there in person, right, and you hand them this handwritten form, and they’re like, oh, cool, now we have to type this into the system. Why don’t you just have an online thing to collect the data for you?

Chuck Carpenter: [40:25] Yeah, I was going to say become the mayor and then outsource all of that work to your own company. That’s politics.

Robbie Wagner: [40:35] Yeah, but I mean, on the flip side, everyone there is super nice. Like, everyone in closer to DC is just super busy, angry all the time, and everyone there.

Chuck Carpenter: [40:46] They’re heads down. Yeah, I would agree with that. When I had moved to DC originally, it was like a nice change of pace for where I wanted to be at the time, which was coming from Phoenix, the West Coast. I wanted to get real heads down and career-focused, and everybody’s in that headspace there, and it just felt good because it was the norm. It wasn’t like, oh, you’re buckling down and getting serious. It was like, yeah, no, you’re just living life, and this is what we do here.

Robbie Wagner: [41:15] Yeah. I mean, not that I’m not like that. You know that I work all day, every day.

Chuck Carpenter: [41:24] Right. No. Yeah. Work to live or live to work. And I think that so I’m back on the West Coast now, and I work hard when I work hard, and I family hard when I family hard, and yeah, I just appreciate the ability to do both of those things.

Robbie Wagner: [41:43] Yeah, we’re definitely going to be doing more of that, especially since I have a real office, right? If I’m there, I’m working hard, and then the second I get home, I need to throw my phone in a drawer and not respond to stuff until I’m going to check it at some point, I can’t just not respond. But Katelyn gets on me a lot about working way too much. So we’re going to try to fix that. And as we try to start a family, we’ll be more and more doing that, and I’ll be mowing my tons of acreage that I don’t have here.

Chuck Carpenter: [42:19] Very different life. You’ll be doing our next podcast from your John Deere tractor.

Robbie Wagner: [42:25] With my, like, 10 Mbps internet.

Chuck Carpenter: [42:31] Starlink, man, if Elon doesn’t basically tank all his companies. Starlink.

Robbie Wagner: [42:37] Oh, I’ve I’ve got my reservation in already, even though we haven’t bought the house yet. But I’m hoping, actually, and we’ll have to see if we can put your previous career experience to use here, that we can figure out a way to beam the internet from the office to my house.

Chuck Carpenter: [42:53] What’s the distance?

Robbie Wagner: [42:56] Well, I was looking at the different antennas and satellites, and stuff, and I think they say they go some go like 20 km, some go like 50, some go 60, something like that. And the house is maybe 9 km or something. I don’t know the mileage because I was looking it up on their tool, it was all in kilometers, but it’s within the range, and I was able to spin the satellite thing towards the building, and it connected. So I think it should work.

Chuck Carpenter: [43:29] Yeah, it’s a point-to-point connection. You basically probably want to double whatever their range is because there’s degradation over distance. So it’s like if it says, oh, it’s 10 km, and you’re 9 km, that’s not going to give you full throughput. You also have to bear in mind height and barriers in between. But you can mount a pole, give you a little bit of additional height, but then you have weather. There’s a lot of things there to consider. It’d be kind of fun to try.

Robbie Wagner: [44:07] Assuming we’re not serving other people. Right. It’s just to send me stuff. Do we have to register with anyone as like we’re putting out these airwaves?

Chuck Carpenter: [44:16] I don’t even think you have to register your spectrum. Regardless. I think it’s like an open spectrum for these particular reasons. They don’t start selling off the spectrum and trying to close it down unless XYZ thing happens. I’m fairly certain. I’ll double-check that. It’s been a while, but yeah, you really just more have to consider the radio waves shoot out to a distance, and they start to lose like trajectory, they start to lose throughput how many trees are in the way, all kinds of crazy things. So height is nice. If you can go up and shoot down, that gives you a bunch more you want to power up. Yeah, it’ll be fun. We can do a little project there. Put up a pole, put an antenna on it, put antenna on yours, see what happens.

Robbie Wagner: [45:08] Yeah, I mean, worst case, we have some nice equipment to resell to someone if they’re interested.

Chuck Carpenter: [45:14] Yeah, and bear in mind that I did this like 20 years ago, so I’m hopeful that technologies have improved anyway.

Robbie Wagner: [45:22] Yeah, I mean, it seems like there’s a lot of different options, so I think something might work.

Chuck Carpenter: [45:27] Yeah. So I want to regress a little bit to one of your previous statements which was about wanting to or having the ability to throw your phone in a drawer and disconnect a little bit. And I coincidentally have recently been able to do a little bit of that. So my wife and I have decided to be vaccinated. And once we did, we felt like it was a little more comfortable to safely travel some and took a long weekend in Mexico. So here in Phoenix, there’s like fairly close places, like 4 hours away. It’s Puerto Penasco. Us locals call it Rocky Point. You get to the Sea of Cortez. You get some really beautiful clear water. It’s pretty warm, actually. It’s kind of nice. Unlike going to California, where it’s like cold year-round, almost great seafood, especially like shrimp and a few different fish and whatnot. Yeah, that was kind of a fun thing. It was like crazy because it’s been now over a year in this quarantine during the pandemic, and just really being careful and taking our time. And for us, we’re just deciding to just minimize contact. It’s just because we have the ability to and then now go out, go travel, get a little sun.

Robbie Wagner: [47:05] Yeah, Katelyn has full immunity kicks in Friday, so we’re a little behind the curve, but we’ve still been doing a couple of things. Like we’ve been going to a couple of restaurants and just sitting outside. We would do that maybe once every few months before because we didn’t want to risk it too much. But now that the CDC has said basically anyone vaccinated doesn’t have to have mass, we can just kind of do whatever we want. And everyone else is also jumping on that train, it seems like, because there’s this new bar that’s over the water in Alexandria called Barca. And we were like, oh, cool, let’s book a dinner there and go sit out on the pier. They’re booked for dinner through August. Everyone is like, hey, this is cool. Let’s book it.

Chuck Carpenter: [47:57] Yeah, that’s a tough problem to have, but yeah, that’s funny. So, like cultural variance there. So going to Rocky Point, and we were really lucky. We have some friends who have other friends that had a condo down there. So we went, brought both of our families go to this condo, beautiful beachside, high-rise condo. It’s like this kind of like golf resort. And, of course, most people on the resort are just no masks. All good to go. We have a lot of space, and it’s kind of very open air and taking the kids to the beach. My son loves the beach. He’s been a couple of times. Second time my daughter’s been to the beach. She’s only two.

Robbie Wagner: [48:48] What do they like to beach? Building like sand castles and forts and stuff. Just hanging out?

Chuck Carpenter: [48:53] Yeah, exactly. Like dig in sand, run into the water a little bit, and run away when the small waves come at you. This particular one like the tide that they had, I guess. I don’t know a lot about tide, actually. So I don’t know if it’s like time of year thing or whatnot, but I think that tracks. So they really enjoyed, like, oh, we go out there in the morning a little bit, and the tide is way back, and you go into the tide pools, and then you find hermit crabs and all those kind of fun things. Yeah, it was nice to be disconnected. I was very disconnected. They were disconnected from, like, oh, watch TV shows or my toys. I’m here. I’m just like playing in nature, and I have a bucket and a shovel. Let’s see what happens. And then we went into town a little bit. We want to get groceries. And I always like to explore a little bit more like a traveler, not just vacationing, and yeah, it’s a little bit different, actually, in town. Everybody wears masks and went to a couple of stores, and they take your temperature and make sure you use antibacterial.

Chuck Carpenter: [50:06] Yeah.

Robbie Wagner: [50:11] It’s even more than here.

Chuck Carpenter: [50:11] I only went to probably a handful of stores, and almost all of them took our temperature and had us use antibacterial, like hand sanitizer. I was like, oh, wow. Okay. There you go.

Robbie Wagner: [50:23] Yeah, I mean, on some level, I’m kind of about just doing all of this stuff every flu season.

Chuck Carpenter: [50:29] Yeah, right.

Robbie Wagner: [50:30] We’ve made it so, like, taboo in America, and a lot of Asian cultures or people come over and are wearing a mask just because they want to be safe, and we’re like, why are you doing that? And if we destigmatize some of that, we could really stop a lot of diseases if we just did this more often.

Chuck Carpenter: [50:49] Yeah, I guess you survived the flu a bunch, but also, it’s miserable if you could not be sick for that time frame, not feel that way, and just be inconvenienced, which isn’t even that inconvenient. Right. I don’t want to sit in my house for years, but I also don’t think it’s a big deal to wear a mask or for someone to take my temperature really quick or for me to use and or for me to use hand sanitizer. It was a ten-second experience, and then we were in and finding what we need to find, make the purchase, whatever, and then leave and take off your mask. It really wasn’t a big deal.

Robbie Wagner: [51:36] Yeah, I don’t want to get too political about it, but let’s just say I’ve been to a lot of places down in Franklin County near the lake, where it’s a different world, and I just will never understand why people can’t take the 2 seconds to protect themselves and others, but we won’t get into it too much.

Chuck Carpenter: [51:58] I think you did a little bit. I would just say, like, there’s no cause for a strong reaction from any opinion, right? That’s it. No one is stripping freedoms, and no one is trying to murder you. I don’t know, like, let’s just meet in the middle, do a few simple things, and live our lives. And statistically, it covers the majority.

Robbie Wagner: [52:24] Yup.

Chuck Carpenter: [52:27] On that note.

Robbie Wagner: [52:30] Yeah, I think that’s a good time to wrap up. We had happy hour before this, had a few drinks, so I’m about done and ready to relax.

Chuck Carpenter:[52:41] At least in a recorded circumstance. Well, everybody look forward to our next podcast featuring engineering Superman.

Robbie Wagner: [52:53] The incomparable.

Chuck Carpenter: [52:53] Yeah. Nobody understands Robert Jackson. RJ blue. He works on a lot of things. He contributes a lot of code. He makes some snarky jokes at conferences from time to time.

Robbie Wagner: [53:07] He is the self-proclaimed Ember janitor.

Chuck Carpenter: [53:12] I like that.

Robbie Wagner: [53:12] And he follows that up by, like, anyone that thinks that’s degrading does not understand what a janitor is.

Chuck Carpenter: [53:18] Oh, I like it. Okay, so we have some things to dig into there. This will be our second Ember guest. And I haven’t been in the Ember space for a little while, so it’s always a little bit fun to sort of dig in there a little bit and not just get into the deep stuff of, oh, here are features that are coming.

Chuck Carpenter: [53:40] Yeah. And we have, I honestly forget what it is, but we have some kind of like craft whiskey. So like, for the whiskey lovers, that’ll be a good one too.

Chuck Carpenter: [53:52] So there you go, stay tuned. Same bat time, same bat channel, but not really because we obviously inconsistently publish.

Robbie Wagner: [54:03] Yes, it’s random days, but thanks, everybody, for listening. And if you liked it, please subscribe. Also, follow up. We are going to be doing a Ember inspector hackathon. Should have mentioned that at the beginning for folks who don’t listen all the way through, but more info from that will be coming on our Twitter. So follow us at Ship Shape code on Twitter, and you can get the details on that. We’ve got several cash prizes, $5000 for 1st, $2500 for second, and $1000 for third, I think. So check that out. Hope to see you there.