Episode

Mostly Technical · Feb 21, 2024

What's The Good Word?

Show notes

Ian & Aaron discuss the joy of Diet Coke, Ian's deep dive into DTOs, Inertia vs. Livewire, & more.

Sponsored by LaraJobs & Screencasting.com.

Sent questions or feedback to mostlytechnicalpodcast@gmail.com.

Transcript
00:01

Ian

Lou. Hello. Good sir.

00:04

Aaron

What's going on?

00:07

Ian

Oh, the usual, you know, this is the only, this is I think the only time in the past, like 3 or 4 weeks that I get on the computer is to talk to you. That's it.

00:19

Aaron

That's crazy. That's awesome. Yeah. I'm glad I

00:22

Ian

keep you

00:23

Aaron

in the loop.

00:23

Ian

Yeah. It is so weird. I spent a lot of time, you know, on my phone, of course, but I like rarely ever do anything on the computer right now in my efforts to to rest. And it's just it feels so weird.

00:39

Aaron

Yeah, it's it's hard to be off the computer. Like, it's just so natural instinct to go to it. So it's kind of, amazing that you've managed to stay off it in your effort to rest.

00:51

Ian

The bad thing is there are things that I feel like I can only do on my computer, which is like, you know, process emails and respond to people. And so I'm just having, you know, just not really doing that, which is not great. But I'm like, I'll do that when I get on my computer. And then all week, I don't get on my computer. So

01:07

Aaron

I think it's understandable.

01:08

Ian

Waiting on a response from me. Sorry about that.

01:12

Aaron

You you got a lot going on.

01:14

Ian

I got a lot going on.

01:15

Aaron

There was a picture on the on Twitter the other day of you with 2 babies crashed out. So they were in that zone.

01:24

Ian

Yeah. That they were both they were both crying. Sunday afternoon, They were both crying.

01:29

Aaron

Both crying.

01:29

Ian

Jennifer was napping. The big kids were napping. And so I just, like, I had to scoop them both up. So you pick 1 up, take them to the other baby's crib, and then you kind of like scoop them both up together, kind of like press them into each other and scoop them up. And then you sit down in the chair and, yeah, fell asleep.

01:49

So still firmly in it for sure.

01:53

Aaron

Were they, still crying when you fell asleep or you managed to get them to stops? No.

01:56

Ian

I managed to

01:56

Aaron

stop crying.

01:57

Ian

To stop crying. Yeah. The rocking and the holding managed to get them to stop crying. So, you know, you don't want to train them to, like, only fall asleep when you hold them.

02:06

Aaron

But

02:07

Ian

some days it's like, y'all just gotta y'all need to nap.

02:11

Aaron

I know. We went through a bunch of different phases that we were, like, on the let them cried out with the oldest for a while. Mhmm. I don't think that was the best advice we got in the end. Like, by the third one, we were like, nah, that's stupid.

02:25

Like, let's just, like, keep this kid happy because I mean, it's like I don't know. I just don't know if it really works in the way of the promise of it all. Like, in reality, like, the baby wants you because, like, the baby needs you and Yeah. Like, pretending the baby doesn't need you, I don't know if that really works out so well, really. So

02:43

Ian

So the best thing the best thing we ever did, and if anyone is about to have a kid, you should do this too, is a course called taking care of babies. And the woman's name is Cara, c a r a. So it's taking care of babies. And it, like, it is it is a lifesaver. It just teaches you basically, like, how to soothe the baby, how to help them learn how to fall back asleep on their own, like a system for, when you go in, like, what you should do and how long you should suit them and that sort of thing.

03:16

It's just amazing. So taking care of babies, look it up. It's it's wonderful. And I found out somebody messaged me because I talked about it on Twitter, and some guy messaged me and was like, hey, thanks for your lyric on talk. I really appreciated it.

03:30

By the way, I'm a Laravel dev and my I work at a place called Taking Care of Babies. And so if you need free access and I was like, no. I I used to take care I already bought it. It's amazing. This is wild.

03:43

Aaron

It's unbelievable.

03:44

Ian

I know. I was it's super small world. The the Laravel dev messaged me on LinkedIn about it, so thought that was kinda cool.

03:51

Aaron

Man, I love small world stuff. That's, like, some of my favorite, like, just things in the whole world, the small world stuff.

03:56

Ian

Like, I

03:57

Aaron

haven't had one of those moments in quite some time. I need a small world moment to hit me here

04:01

Ian

soon. Somebody reach out to Ian with a small world moment. He's he's in desperate need.

04:06

Aaron

Just artificially run into me somewhere.

04:08

Ian

Yeah.

04:09

Aaron

By the Poughkeepsie and bump into me by accident. Yeah. Exactly. But I'm really not we're we're doing alright. Good.

04:17

That's what I like to hear. Yeah. You're surviving. You got 4 kids.

04:22

Ian

4 kids.

04:23

Aaron

So many kids. Rough for a little while.

04:25

Ian

Everyone's a little bit sick right now, myself included. So yeah. Just keeps the the hits just keep coming, man.

04:35

Aaron

Oh, man. Well

04:37

Ian

Alright. So I got I got a fun one at the top before we get into before we get into real topics.

04:42

Aaron

Okay.

04:43

Ian

Good. Do it. So I was thinking, I we always, you know, we always start the show with, like, hey, how's it going? Hey. How's it going?

04:51

There's a greeting there's a greeting that I don't use as much anymore, but I used to use it all the time. And half the time, it would, like, really confuse people, and half the time, it was totally fine. And the greeting is, what's the good word?

05:06

Aaron

Okay.

05:06

Ian

Have you ever used this have you ever used this as a greeting? No. That's it. That's the whole greeting. I

05:12

Aaron

was like, that's it. Something upbringing thing there or something like

05:16

Ian

Somebody walks in and you say, what's a good word? And, you know, some people treat it as, like, what's what's going on? Or, like, how's how's

05:23

Aaron

it going?

05:24

Ian

I did have I did have some friends that would just look at me and say, I don't know how to respond

05:29

Aaron

to that. So I think in New York, I have you, but I've definitely heard, like, what's the word?

05:37

Ian

What's the word? Okay.

05:38

Aaron

What's the word? The good has, like, a whole different connotation to me. No.

05:42

Ian

No. No.

05:43

Aaron

Yeah. That's

05:43

Ian

totally that's totally the same thing.

05:44

Aaron

Okay. Then that happens.

05:46

Ian

I'm not the word, and how do you respond? When somebody said what what's the word? How do you respond?

05:50

Aaron

I mean, I think it's a similar because it's just like it is like I treat it like what's going on. Like, you know, what's the word on the street. Like that's how it would really be. Like what's the word on the street? You know, what are you hearing out there?

06:01

What's, you know, what's going on in the streets? So now people don't go in the streets, but in the seventies, like, you went in the streets. Yeah. So it's like a very seventies phrase to me of, like, you know, you're out there in

06:11

Ian

the street. Yeah. Vibe.

06:12

Aaron

It does have a good vibe.

06:14

Ian

The other one the other one, and this I learned from my grandpa, he would always when we would go over there, he would always say, what do you say, little a? Because I was the youngest. You know, my name's Aaron. He would always say, what do you say, little a? And I never, like you know, what do you say?

06:29

I don't know. My response was always, I say it, grandpa, And that was it. What do you say? Little a. I say it, grandpa.

06:36

And so I, you know, that's that's often a greeting I will use as well. Somebody walk in and say, hey, what do you say? Like, what what do you mean? What do I say? What do you say?

06:47

That's a great one.

06:48

Aaron

I think that there's a line in, heat. I don't know if you're watching movie heat.

06:52

Ian

Yeah. One time.

06:53

Aaron

Heat. No. You gotta watch it, like, at least another a 100 times. Great movie. One of my favorites, top 5.

06:58

But there is a line where Al Pacino is like I think he says, like, he's like, what do you say? What do you say? Or something like that at one point. So, yeah, I'm I'm down with what do you say. Those I I am also down with the whole idea of, like, when I'm a grandpa just saying crazy shit to the kid Oh,

07:13

Ian

yeah. Totally.

07:14

Aaron

Crab babies, like, and because what do you have to say to them anyway? Like, I don't I can't relate to you, so I'm just gonna say weird shit to you. Like, now I understand why weird they should have weird shit to us because it's like Yes. I could barely relate to my own kids. Like, the next generation album, we have no idea what

07:27

Ian

to do. Chance. Yeah.

07:28

Aaron

Right? And so it's just like, I'm just gonna say crazy shit and give them $5 and, like,

07:32

Ian

do weird

07:32

Aaron

stuff like that.

07:33

Ian

Say, what do you say? Little a. Like, yeah. Yeah. So I still it's endearing.

07:37

I still remember it.

07:38

Aaron

Yeah. Exactly. That's the kind of stuff you remember.

07:41

Ian

There is a show there's a show that we used to watch a lot called The Prophet, and it was with Marcus Lemonis, and it was like a business show. And one time, he walked into a a business, and he said, what's the good word? And I freaked out. I freaked out. I paused, and I rewound it.

07:57

I recorded it on Snapchat, sent all my friends. It's like, look. This is normal. People say this.

08:03

Aaron

Wow.

08:04

Ian

I know. Is that crazy?

08:05

Aaron

Area as you? Maybe he's from Texas. Are you from are you actually from Texas?

08:08

Ian

I am from Texas. Yeah. I don't think he is. I think he's

08:11

Aaron

Mhmm. I think he's picked it up somewhere.

08:13

Ian

Yeah. The northeast, I think. But, yeah, I I was like, that's the first person I've actually there's proof. What's the good word is real?

08:21

Aaron

Not just your own made up weird thing.

08:23

Ian

No. Not just my own my own made up stuff. So there you go. There's my random there's my random top of the show.

08:31

Aaron

I like it. I think one of the it's like one of those, we didn't we just take, like, one of those tests recently where it was like, I think it was you and me doing this. Maybe it was another person, but, whereas, like, you know, you, like, get a read a bunch of questions and, like, you know, they figure out where you're from based on your answers to, like, do

08:48

Ian

you know the phrasing or whatever? Yeah.

08:50

Aaron

Yeah. Yeah. Yeah. Stuff like that. Like, I'll add what's a good word in there.

08:54

So I would like to see a map

08:54

Ian

of I just don't know. I just don't know how to triangulate it. I I don't know if anyone else on

08:59

Aaron

a personal level. You're gonna have we need the experts on this one. But

09:02

Ian

Yeah. I know. It's not me. Sounds fun, though. Sounds like a blast.

09:06

Aaron

Wish Yeah. Wish I

09:06

Ian

could have been there. Yeah.

09:08

Aaron

Yeah. I should dig it up.

09:09

Ian

I think

09:09

Aaron

it was, like, from New York Times quiz thing or something. It was one of those sites that was, like Yeah. And answer 20 questions. And

09:17

Ian

those always go around at Thanksgiving when they're like, what do you call the the stuff inside the turkey? And it's like stuffing cornbread dressing. Exactly. What's

09:26

Aaron

Those things. Yeah. Yeah. Yeah. Alright.

09:29

We got a little feedback.

09:31

Ian

Oh, right.

09:32

Aaron

Thomas Weber sent us an email. Loves the podcast. Thank you, Thomas.

09:37

Ian

Thank you.

09:38

Aaron

But it's 2 questions. So what kind of methodology and tools do you use in your respective work for software development? So how do you plan which features or aspects the team works on, sprints and cycles, and, like, Trello based camp or similar. So I don't know. What do you do you have, like, your go to tools when you're building something?

10:02

Ian

Yeah. So I'm not in a I'm not in that kind of position at PlanetScale anymore. But I was, you know, for many, many years at the property tax company, and we relied heavily on base camp. Mhmm. And, I mean, that that's basically it.

10:19

We were all in Slack. There were maybe only including me, 4 or 5 developers, so it wasn't a very big team. And I was the one that, like, took all of the requirements from the business and, like, translated them into actual, you know, solutions that we would build. Because the the CEO would love to come with me come to me with solutions. And I'm like, what is the problem you're trying to solve here?

10:44

I'm like, oh, there's this is no. There's a 10 times easier way to do that. So we used we used base camp and found it extremely easy to use and helpful. Personally, I don't really keep track of that stuff. I don't have any really big ongoing projects right now, where I need active development.

11:06

But I have used Trello in the past, but, you know, we use Trello for this podcast, and it's perfect for that. And then my other tools are just PHP storm heard all the standard right down the middle Laravel stuff. I'm not a big, like, I think we've talked about this before. I'm not a big, like, you know, customize my setup dot files, neo. I'm pretty vanilla.

11:28

I'm pretty, like, right down the middle. Just kinda get stuff done. So Yeah. You've got a big team. What what's your setup?

11:34

Aaron

I mean, I don't actually have a big team, but I have a team, but, Yeah, so I mean we've done all different things. I don't even have a structure I like right now to be honest with you like we've done Trello which was fine, but something's always often about Trello. Like, for what we use at 4th grade, there's, like, 2 columns, and I can deal with it, and it's fine. But when you get into, like, there's a bunch of columns and storing lots of stuff, and it's I don't know. Like, Dave, the producer of this podcast, he he loves the Trello.

12:01

But for me, I find that I wanna like it more than I actually like it.

12:05

Ian

Mhmm.

12:06

Aaron

But and then right now, I'm in linear, but I'm not really using it. Like, I've logged some stuff in linear for the kind of big next gen help spot stuff. It's more a place I dump some ideas because, like, maybe I wanna use this, but then I don't think I wanna use it. So there's just ideas there there.

12:23

Ian

Cool.

12:24

Aaron

It is cool. I don't know. Then they had that database issue recently and they didn't have backups. So I'm like, how do you not backups to this big tool? So that was weird.

12:33

Ian

Yeah.

12:35

Aaron

So and then, like, what the core thing right now, I use just GitHub issues, like Yeah. Write it up and GitHub issues, and then, like, you can close it out from there and all that stuff. But I don't know. I'm also in the in terms of the big project I'm actually on right now. I'm still kind of in the I don't like I'm a, like, we we have the 2 types of writers.

12:54

Right? You have the, like, the outliner and the gardener or whatever. I'm the gardener when it comes to software. Like, I can't preplan a big project. Like, how interesting I need to like feel it out.

13:05

I need to see the UI. I need to like rip it all out, do it again. This is not the efficient way to do things for sure, but just like how I like to operate. So I'm not quite there yet. We're getting there.

13:16

As when it gets a little bit farther along, I'll be ready to like, be like, okay, like I got delayed land and now I could probably like structure more of it and outline more of it and put things. Whether it's in GitHub Issues or Trello or some other tool, like, I could write up, like, what each thing is supposed to do. But at the earlier stages, I can't really do that. Where where does

13:39

Ian

this outline outline Gardener thing come from? I like this.

13:43

Aaron

This is, like, a really known thing. Actually, if you look it up, it's like, bro, like novel writers. There's, like, the outliners. Like, so one of my favorite writers, Brandon Sanderson, he's a fantasy writer and he, is a huge outliner. So he's like, everything's outlined.

13:57

And then he's just like, you know, so all the major plot beats and everything that happens and it's all structured. And then he just, you know, he's obviously, like, writing the actual sort of interactions and, you know,

14:12

Ian

just dialogue

14:13

Aaron

with the actual words dialogue and whatnot. Yes. There you go. But but he knows everything that's gonna happen. Basically, I'm sure there's whatever as he gets in there.

14:21

I think he does change stuff, but he's got got it very planned out and you have like, the Gardner, like George R Martin, if you're familiar with game of Thrones, like he's also a fantasy writer and he writes, the Gardner style where he's, like, just kinda going out there. And I think he does, of course, have, you know, some rough outline of where things are going, but he's also, like, goes with it when he gets taken another direction and things like that.

14:45

Ian

So cool. I like that.

14:46

Aaron

Yeah. It's kind of a useful thing to think about yourself in different ways. Like, and to me, software is very much like being a novelist or any type of artistic pursuit. I find it very artistically oriented. So, yeah.

15:03

I have one other question here. Touching on the subject of once. So I guess it's more for me. How do you handle on prem installations of your customers at HubSpot? How is it implemented at technical architectural level, and what percentage of customers are on prem and, tricks and experiences of that?

15:21

So, yeah. So HubSpot is the on prem version of HubSpot is kind of a standard PHP app. You just download it, install it. There's a little installer that runs. It's not quite as fancy as the once app, where there's, like, a one command to install it.

15:39

That is something kind of interesting time wise. I don't really have the time to kinda get into that right now, but we have thought about some things along those lines. I hope so.

15:48

Ian

Download it? Do you download a a zip of, like, the whole project?

15:52

Aaron

Yeah. Like, well, yeah, you actually download, like, a zip of the files, and then you put them in a spot, and then there's instructions. And it's kind of a little more older school than, than all automated. But also because, you know, once as we talked about is, like, taking a ultra narrow focus

16:09

Ian

Right.

16:11

Aaron

Where HubSpot isn't that. So, like, HubSpot can run on Windows, or it can run on Linux, or it can run on and it can run on, you know, MySQL, or it can run on Microsoft SQL Server. So there's, like, just more setup and involved in that than, you know, and some of it could be automated. But also sometimes people need to install the components, which some of that especially on Windows, like, can't be as automated, or if they have to do stuff in IIS and whatever. So we actually did for a long time have a Windows installer that would automate a lot of that stuff for people.

16:43

But in the, like, actually just in the last year or so, we got rid of that because it's actually more hassle than it's worth. And then

16:48

Ian

you can pull this out. Far outside of anything I've ever done

16:51

Aaron

to build a windows

16:52

Ian

installer for PHP.

16:53

Aaron

That's sort of grim. Wild. But for a while, it was fine because, like, the Windows people didn't know anything about PHP. And so it was like, we'll handle the PHP Right. Stuff for you, so you don't really have to think about that.

17:06

But now, like, window you know, Microsoft has embraced PHP more, and so the there's more experience out there in general with it. And so it's like and it's just gotten easier to install in general. So it's like, let's just, like, do the old school. It's like a list of stuff you have to do. If you don't have these things set up, like, you have to set them up, but then you do, and you manage it because you're an IT server administrator, and that's what you do, which is also one of the problems we had.

17:30

Like, when it was just in our installer and we're, like, configuring your IS and installing PHP. You know, if there's, like, a security release of PHP, like, now we have to, like, make sure we're, like, instantly have a new installer and things like that. Or people just wanna make a change to the configuration, but now it's not clear how they would do that because, like, we've set it up. So this way, they can just set it up

17:49

Ian

Come out.

17:49

Aaron

And they can control it on their end, and they can do whatever they want. Or if they wanna not upgrade PHP, and they wanna run an older version for a while, then they can, like, whatever. They're fully in control. So that's where that kinda works, for us. But it helps a lot is, you know, very enterprise y, and it's, at this point, the on premise version is only gonna be for people, as we talked about many times, who have real IT administrators and want to do that for some actual reason.

18:16

So again, like asking them to do a couple steps there is not unreasonable. There's it's never a reason, like, why somebody does or doesn't buy help swap. Mhmm. Yeah. And, percentage of on prem for us is like, I don't know, percentage of new sales is, you know, maybe like 20% or less than 20%, probably less at this point.

18:38

Overall, it's higher just because we have customers who've been on prem for a long time, but it's still probably now more like 30% and stuff like that. So, thanks, Thomas, for the feedback. We do read all your emails. See that? So Yes.

18:53

Email us.

18:54

Ian

We the 2 of us do. Definitely.

18:57

Aaron

Well, Justin told us our tool to Yeah. Organize this

19:01

Ian

So other other feedback I forgot about, Ben Ornstein, friend of the pod, replied on Twitter and said, this is the worst idea I've ever heard about our amazing idea that we gave away to the people.

19:14

Aaron

What's up with that? We're giving, like, free

19:15

Ian

cookies, man. Benevolent gators giving away bread and circuses, and he's like, this is a terrible idea.

19:22

Aaron

He didn't like our idea.

19:23

Ian

He hated it.

19:24

Aaron

He did.

19:25

Ian

So he had some, you know, he had some good points. Yeah. And he's a smart guy, so I'm inclined to to believe him. But, yeah, there were some there were some there was some feedback about the idea, which is like project management built into transistor, basically. What what was his main what was his main beef?

19:45

Do you remember?

19:46

Aaron

I think it was just like that. He didn't think it was something people would pay for. It was kinda like the main beef. And I don't actually disagree. I mean, to me, it's more like the type of thing.

19:54

It's like the Steve Jobs ism of, like, is it a feature or is it a product? Like, I don't think

19:58

Ian

Yeah.

19:58

Aaron

I mean, I was coming from the, like, I want this in transistor

20:01

Ian

Mhmm.

20:01

Aaron

Aspect even if I didn't I might not have actually said that. But, but, yeah, I did a freestanding app again, like everybody's bars are different too. Like, you know, in America, where we're thinking of is, like, can I make this into, like, a $1,000,000 a year business? Right? Like, that's kinda like a bar you're trying to get to, or or maybe it's, like, half a1000000 or whatever.

20:22

Like, enough where I could hire someone maybe and, like, things like that. Like, can I get to a certain self sustaining level? But, you know, there's other countries where that you don't need that much money. And so there are there are some variables in there, but, but I like it more as a feature of some other type of product, like

20:38

Ian

Yeah.

20:38

Aaron

You know, where you podcast host, and you're kinda locked in there, which is always a great business feature. And then but, hey. There's other things we need to run this podcast besides just hosting, and maybe they could do some of those things. But I don't know if it's actually Yeah. Whatever.

20:51

Obviously, they're the experts. I've given this 10 seconds of thought, but I do think it would be handy to have some more features

20:57

Ian

where You get what you pay for here on the pod. So, yeah, the ideas the ideas are worth what you pay for.

21:03

Aaron

I don't know if you should just run out and build things we say you should build. Like, we might tell you to build something, but you shouldn't necessarily do it. It's like how we play doctors on here too. Like, we might tell you some doctor things, but you shouldn't necessarily go out and inject yourself with something that they were injected.

21:15

Ian

Probably shouldn't listen to us at all. Don't don't do don't do anything we say honestly.

21:20

Aaron

Let's turn this off right now. Like, that shouldn't be your best bet.

21:22

Ian

If you start telling your friends what's the good word, like, I'm not responsible for that. If if they make money, that is not my fault, honestly.

21:30

Aaron

An outcast freak after this listening to the show. Like, that's that's on you.

21:35

Ian

The other, the other person that chimed in was Arvid Call, and he was like, oh, this makes sense to add into pod line. And I was like, yeah, that makes a lot of sense because he's doing the call in thing. But, like, I don't I don't wanna do a call in. Like, I don't I don't wanna do a call in thing for this show because then you gotta figure out how to splice him the audio and, like, give me, like, like you said, an inbox to manage it, and it's it makes a lot of sense for him to be like, you can call in or you can email in. And while we're here, let's do some other features, but who knows who knows what he's up to?

22:07

Aaron

Yeah. I think there's been a few of those podcast call in things.

22:10

Ian

Mhmm.

22:10

Aaron

I don't know. It's kinda weird though. I guess, I guess for randos, the call in is kinda interesting versus, like, in Riverside, like, we could send a link to somebody and have them join us as we've done, but I guess Yeah. Like, a true call in show is a little bit different.

22:24

Ian

Yeah. Starts for the rest of us has call in questions.

22:27

Aaron

Yeah. Calling questions. Like, oh, it's like they just they they listen to it. It's recorded, I think.

22:33

Ian

Yeah. It's like a voice mail.

22:34

Aaron

Yeah. Yeah. Okay. See, that business seems a little that's like a very narrow scope thing.

22:41

Ian

Yeah. I

22:42

Aaron

agree. I like his other thing, which is, like, the podcast Super cool. Yeah, AI, you know, looking for your brand, mentioning the other ones and Yeah. Yeah, pod scan. Like, that that seems to me like that's got some potential there.

22:53

Ian

So, for for the edification of the listener, Arvid is working on he started with pod line, which is this, like, call in show, and then he's, like, kinda half pivoted to pod scan, maybe pod scan dotfm. Who knows, Dave? You can find that for the show notes. Good luck. And this one, like, ingests every single podcast that is published and transcribes it and allows you to scan for, like, brand mentions or competitor mentions or your name or something like that, like, minutes after the podcast is released, and it'll, like, send you an email.

23:28

So there are tools like this, you know, for Reddit and for Hacker News and stuff, but this is the first I've heard of it for podcasting, which is really interesting. And it sounds like a ton of data, but he's making it work.

23:39

Aaron

Don't you think this is to me always this is one of my very first businesses that I started and half built and never finished. But I love these idea of businesses that are like data. Like, there's some pile

23:52

Ian

of data.

23:52

Aaron

There's a pile of government data. There's a website. There's

23:55

Ian

a bunch

23:56

Aaron

of podcasts. Right? Yes. It's like somebody's done all the hard work, and I could just put this thin veneer over top

24:01

Ian

of

24:02

Aaron

it and make it into something useful and awesome. Like

24:05

Ian

Government data is a freaking gold mine. So I don't I don't want to I don't want to make it reductive. But Geo Codeo, which is a friend of the Laravel community, Michelle and Matthias Hanson, Geocodio, this is very reductive, is just a layer over public data. Like, it's a geocoding service, and they do a ton of work, of course, but it's just a layer over public data.

24:31

Aaron

Cleaning and, like, organize that in multiple countries and all that stuff. It's like but that's all the the the terrible part. Right? Like, they're doing the terrible part. Like Exactly.

24:39

Ian

You can

24:39

Aaron

go to the USPS website and run, address lookup,

24:43

Ian

but then station. Yes.

24:44

Aaron

Right. But now there's all these other terrible parts of it that they handle. Yeah.

24:48

Ian

And they combine, like, congressional districts and stuff like that. Yeah. When when we so back at the property tax company, we would buy data from one of these providers. Because in Texas, there are 254 counties, and we would buy normalized data. Each county is responsible for releasing their own property and property tax data, and it's all different.

25:11

Of course. Of course, it's all different. It all sucks. And so there was a company there were actually 2 or 3 companies that would sit on top of all of that and take the the public dumps that you can just download from DCAD, which is Dallas County Central Appraisal District, and they would normalize them and resell them to us for, like, 500 to a $1,000 a county. Yep.

25:30

And one of them Oh,

25:31

Aaron

a county? Wow.

25:33

Ian

A county. We would pay them Wow. You know, we have 5 or 10 major counties, and we would we would pay them $10,000 twice a year. Mhmm. Wow.

25:40

And one of these companies just, you know, in the past few years got bought by Ryan, LLC, which is a a big state and local, accounting firm. So they just, like Mhmm. They sold out, and they made it. But, yeah, there's freaking and it's just it's just so, like, it's so tempting to be like, I'm gonna download this, you know, 6 gigabyte CSV and turn it into something usable. Yep.

26:04

There's a guy there's actually a guy oh, shoot. What is his name? I forget. There's a guy in tiny seed that does this for, like, like, foreclosures, and he, like, sells the the foreclosure data, to somebody, and I forget who. But, yeah, this is such a great, like, archetype.

26:20

Aaron

So it's yeah. Just always. Yeah. Tingles me. I'm like, oh, that's a business where it's just like there's all this data out there and I'm just gonna do something with it.

26:27

And it is hard because, like, if you don't if it's not if the data is too good already, like, that's, like, not a very defensible business. And then Yep. So you need something hard enough, but at the same time, if it's too hard, now you're just collecting data, and that's a whole

26:39

Ian

terrible thing.

26:40

Aaron

You wanna use the raw data, but, like like, GeoCody is, like, a perfect example. Like, they there's a lot of raw data, but it's all kinda crappy, so they unclapify it. And that's a lot of work, and so now that's valuable. Yep. So, yeah, that's that's all

26:54

Ian

And often, you you end up selling to normies. Most of the time, you sell to, like, normal businesses. Like, who wants to buy property tax data? Mostly Right. You know, real estate agents and banks and insurance people and stuff like that.

27:06

Aaron

Well, we have a thing I mean, we do this ourselves. It's very it's interesting. So all our, like, back office systems that run the store for HelpSpot are, like, predate Stripe and all this stuff, and they've been updated. And, actually, Eric, who, still works a little parts of lateral news, Eric, still manages our back office store that just got rebuilt last year again, for the, like, the 3rd or 4th iteration. But so we have to collect sales tax in like 3 or 4 states, whatever it is.

27:34

And we just download a county sales tax. We we buy a, you know, aggregation of all the sales tax rates in every county and some cities in the country. And we just feed that into this back office system, and that's how we do sales tax. And so every year, I feel like probably supposed to do it more than every year, but every year or so, I just buy this again and update it with the latest sales tax info. Yeah.

28:01

And it is, like, interesting because it's like, well, I pay these people, like, 3 or $400 or whatever. It's like, yeah, Stripe does that now. But Stripe wants, like, you know, a half a percent. So now it's, like, way more than $400. So For sure.

28:13

Am I gonna pay Stripe? Like, for the convenience, is the convenience worth 1,000 of dollars here? I don't know. So, like, on the old school set up for now.

28:23

Ian

I did. I did one of these. I tried one of these businesses. Also, it was, licensing data. So for like electricians and plumbers and dentists and CPAs, all of that data, at least in Texas, is publicly available.

28:39

And it tells you when the license needs to be renewed. For some of them, it tells you, if the continuing education has been completed or not. And so I, you know, ingested it all and made it all searchable and cleaned it all up. And then I started like, I did the whole thing. I, like, cold emailed a bunch of plumbing companies and was like, Hey, I've got all of, you know, I can monitor your licenses for you so you don't get in legal trouble.

29:05

And I think I got like 2 customers at $50 a month, and it was like a freaking slog. And and then I just was like, this is this is not worth it. But

29:17

Aaron

it's so tempting. Yeah, it is. I thought, like, I do love this business.

29:21

Ian

It was fun. It would just like every night it would check the the Texas website, download it, parse it, send an email, and I was like, that's it. That's the whole business. I don't even need a website.

29:31

Aaron

Yeah. Just runs itself. Now if you could have automated the, like, outreach part and really got that, then it doesn't matter. Like, even if you're just adding a couple a month, though, who who cares? Like, over time, it just builds up.

29:41

But, yeah, it's hard to reach those kind of businesses. Like, they're not they're not used to deal with.

29:48

Ian

And some of them were just like, yeah. We don't really care. Like, the license is expired, and we don't really care. I'm like, what?

29:54

Aaron

Do too.

29:54

Ian

That's not great.

29:55

Aaron

Every couple years, we just, like, figure out who's expired and Exactly. Deal with it.

30:00

Ian

It's like, oh, dang it. This isn't gonna work.

30:02

Aaron

Yep. Oh, man. Alright. What do I wanna do here?

30:06

Ian

Alright. What's next?

30:07

Aaron

For real topics. I guess, let's just do this one one quick one. Laracon US tickets, on sale now. So On sale now? Laracon US tickets.

30:18

Hopefully, I will be there. My oldest might be going to college. In which case, I won't be there. But, I'm glad

30:24

Ian

you did.

30:25

Aaron

That would be a travesty. I bought tickets. Gap year

30:28

Ian

or something? Make them do a gap year.

30:29

Aaron

Go take yourself to college. Whatever. Yeah.

30:32

Ian

It's cool.

30:32

Aaron

It's $200 to buy a ticket.

30:34

Ian

Walk around Europe or something. Whatever people do in gap years. What do I know?

30:37

Aaron

You should do a gap year.

30:39

Ian

So what's the likelihood? Not of a gap year of you being there.

30:43

Aaron

I think it's high, but Okay. You know, it's August 27th 28th. The few of the schools he's applied to last year did have their birthdays, their drop off days on those dates. So we'll see. But obviously, it's all it changes every year because it's like when the weekend falls and whatever.

31:00

Right. Sometimes they just randomly change it. So and there's huge, huge variance. Like, some of the schools were, like, August 15th, and some of the schools are, like, September, you know, 4th or whatever. So it's not, like, standardized or anything.

31:12

So but my plan is to be there. The user escape crew will be there for sure, and I'll be there 90% to be there. Even if I could just fly in fine, like, if I if it's not on the 1st day, I could always fly in and make the 2nd day.

31:25

Ian

Yeah.

31:26

Aaron

We will see. Oh.

31:27

Ian

I hope you make it.

31:29

Aaron

I hope so too. Alright. Caleb, Porzio just released some bleed videos as part of the, LiveWire, kind of training video series, which I love. Definitely, you should all go buy that. It's super good.

31:43

If you're gonna do LiveWire, just, like, mandatory purchase because it's gonna save you so much time. But, but yeah, just recently when it's not not really Livewire at all, it's just about bleed. But, I think it's super useful. Because again, I think there is refusing live wire deeply, like blade and live wire. There's a lot you have to kind of understand there.

32:04

Yeah. Yeah. That of how they overlap and where you should use 1 and the other. And, the vast majority of the time, like we think you need a live wire component, like very often just use a blade component. Mhmm.

32:15

And that's what you should do because it just makes the mental model of everything much simpler if you're not thinking about, like, you have 20 nested Livewire components and the data they're passing around and all that stuff, even though that stuff has gotten much better in live wire 3. So it is much better if you have to do that, but you should generally avoid doing that if you can. So I think that's obviously why he's doing this is, like, to really highlight how you use components well and, to avoid needing to use them, use Livewire components instead of just a regular old vanilla blade component. But, yeah, there's already some cool things there, and, I've only watched You

32:52

Ian

already watched them?

32:53

Aaron

I watched, like, half of it. Yeah. What? This morning, I watched, like, half

32:56

Ian

of it.

32:56

Aaron

But,

32:57

Ian

released it today.

32:58

Aaron

Yeah. Yeah. I'm right on it.

33:00

Ian

Oh, man. We got

33:01

Aaron

a super fan over here. Big business thing and just sitting

33:04

Ian

out smoking

33:05

Aaron

cigars. No. I mean

33:06

Ian

cigars wearing a top hat. That's amazing.

33:09

Aaron

Oh, I'd love a top hat, man. Top hat is high on my list of things I would really enjoy. Get a top hat. What's not happening? Me and my son, my oldest son, who over the weekend, we watched a a documentary from PBS on the building of the Eiffel Tower.

33:23

And at one point, there was this old photo in there and everybody had a top hat. It was and they're all, like, basically the same hot top hat except I mean, it's like a 100 people. They all top hats. You know, men, obviously. And one guy's a bowler hat, and one guy has a top hat that's like tan or white.

33:41

But everybody else just has a black top hat. It is awesome.

33:45

Ian

Alright. So here's the deal. You fly out to Lyricon. We do a live recording of the mostly technical podcasts on stage, and we'll both wear top hats and smoke cigars.

33:55

Aaron

Top hats. Wow. What if we get away with it's Texas. We could probably get away with smoking cigars.

34:00

Ian

Texas, we can do whatever we want. We can do it each other's face on stage, and it would be fine.

34:05

Aaron

Oh, it's Texas, baby. Whoo.

34:07

Ian

That's right. Excited.

34:10

Aaron

Alright. That's a deal. I like that plan. Top hats. Top hats for the, for the pod.

34:16

Ian

So the videos are good. I think that's that's what happened.

34:19

Aaron

Videos are good. Sidetracked.

34:20

Ian

Yeah. The videos are good.

34:22

Aaron

Nothing much else to say really there, but videos are good. I love it. And then the next series he's doing is the one on SPAs, which I'm super excited for because everything I'm building is a live buyer SPA. And I'm sure, you know, I'm there there are a few little quirks I already found and you gotta deal with, which is not too bad, but I'm sure he'll have some big insights there from the inside. So I'm very, like,

34:44

Ian

super excited. Him out, man.

34:46

Aaron

He is. Yeah. He's working working hard. Stuff's happening over there in LiveWire Land. So, yeah, that's really cool.

34:52

I need to send an email about it too, which is nice. Like, I feel like he's in the zone. He's like making the content, letting people know about it. Marketing guy. Marketing.

34:59

Good.

35:01

Ian

Yeah. I think Good job, Kayla.

35:02

Aaron

Email newsletter. I don't I don't I've tried, like, 5 times to build up an email list, but it just doesn't stick for me. I don't know. You you'll be honest?

35:10

Ian

No. I mean, yes. But I don't think I've ever sent an email. Yeah. So, but, yeah, I feel I feel that way too.

35:18

I feel like, you know, with the platform wars and the algorithms, email is still the last safe haven. And I just feel like I really need to do that as I embrace my, you know, my creator era. But no, I haven't I haven't quite cracked that nut yet, but I think I think I'm I think I'm gonna put some energy towards that because it does seem like the the right thing to do.

35:43

Aaron

Yeah. I feel like you especially have some stuff I feel like you could hang it off of. Although you have number of things, which is also then that that is always one of my problems. Like, that's kinda tricky because, like, if you have a number of things, that's sort of weird too. It's not just like the ultra focused.

35:56

I'm only talking about this and Right. We're all in on this one topic, and everybody's on board, and the train's going this way. It's like, I don't have to do this stuff. I do the other thing. And Yeah.

36:07

Yeah. It's the me newsletter, which then that's kinda like what the podcast is. So I don't know. It's like I would like to have some, I don't know. It's like about help spots.

36:14

Like, b to b apps, not like a great thing to build out around below.

36:18

Ian

That doesn't move me. Yeah.

36:19

Aaron

Yeah. Exactly. Like, you're not signed up for that. So might have. I don't know.

36:23

So another thing I will never properly accomplish. I'm sorry.

36:27

Ian

Yeah. You've got a lot you've got a lot you've accomplished.

36:30

Aaron

Yeah. More to do.

36:31

Ian

Alright. Let's go from there to, inertia versus LiveWire. So Mhmm. Taylor recently tweeted again, just as a just as a reminder was his text, and then it was a quote tweet of himself, which is just total power move, quote, tweet of himself that was like reminder, it's not inertia versus LiveWire. And like, they're not enemies.

36:55

They're friends. Right. So, to set the stage, LiveWire is, you know, live view, rails, turbo, HTMX, that's that kind of technology. Inertia is for more JavaScript centric. You can have an SPA without having to go full SPA, and you still have back end routes that sends data to the front end SPA.

37:17

So you would pair it with something like Vue or React. So that's that's the context. My question my first question for you is, did something happen recently where Taylor felt like he needed to remind everyone?

37:28

Aaron

I was wondering that when I saw that tweet. I don't I I mean, I don't I I get I would guess yes. Right? Because he's tweeting it. So presume so presumably, yes.

37:37

But I'd have to say, I didn't, like, really see anything in particular where I'm just like, oh, like people are throwing down in the streets over, inertia or live wire or anything like that. So I haven't seen anything, but I'm not always a 100% on top of that stuff. So, yeah. But it is a good reminder regardless that they kind of work together. Yeah.

37:58

I mean, the inertia is fine. Like, I don't like it nearly as much as LiveWire, but, but if you're if you're all the I'd see. I think it is full SPA. It's still full SPA. If you're using inertia, you are all in on SPA.

38:09

It's just that, like, it's simpler. So you have the connector and it knows some stuff about Laravel. But even even though it's Laravel agnostic, I think. It is.

38:19

Ian

But yeah. But it's our protocol. Yeah.

38:21

Aaron

Yeah. For the different frameworks. So, so, yeah, if you're in JavaScript land and then, you want to go that route, which I mean has its benefits as we've talked about before. I mean, the the component story, especially of, that end of the world is far superior to Livewire still. So, but there are some stuff out there.

38:42

I was just playing the other day with the Mary UI,

38:45

Ian

which is

38:45

Aaron

kind of an interesting little Livewire, component library and has some cool stuff. It's, like, still definitely, like, in heavy development, and it is one of these challenges, all these component libraries have, which is, like, how much do you, like, design it or not design it? And if it is designed, like, how do you customize that and all those things? Are are they individual components you can just suck in 2 of them? Or is it you gotta take the whole thing because there's, interconnectedness and stuff like that.

39:14

So there was a couple little quirks to it, but it is kinda interesting if you're in that world. And then, I, you know, I don't I don't think it's like a super top secret that, like, Caleb's working on some component stuff also. So, so I think all that story over the next year is gonna get a lot better in LiveWire, as well.

39:32

Ian

Thanks, Sam.

39:34

Aaron

Sam. I would like to see people do more commercial components too, hopefully, as it builds out. Because, like, even if you have, like, an official library of components from Caleb and you have some open source ones and whatever, like, there's still just gonna be weird stuff that is more complicated than normal people wanna build. Yeah.

39:51

Ian

For sure.

39:52

Aaron

So having some more of those, like, as it expands into heavier use cases and where people are willing to pay money for solutions, I'd like to see more of that. I think, like, Belo has one.

40:04

Ian

I think he does. Yeah.

40:05

Aaron

Yeah. Well, it does a couple things along those lines. Like, it does, like, a command k type menu. Uh-huh. Yep.

40:11

Things like that. Far. Where maybe he was, like, almost a little ahead of the curve. So I think hopefully, he stays with that because I think if, like like, the curve is gonna catch up to him on Mhmm. On that, and then, could could be good.

40:24

Ian

Yeah. I want Filo to get rich. He's a good guy. Yeah. Okay.

40:29

So here's my here's my take. I used to be Yeah. I used to be big Inertia. Mhmm. And now I'm big Livewire.

40:38

Aaron

Got him. We got him in.

40:40

Ian

You got me. It's just it's easier in my opinion. Yep. It's I don't know. It's less it's less complicated, and I know that I know that the, so inertia has been, like, somewhat adopted by Laravel, you know, LLC, the company.

41:02

Right. I don't know if there's inertia.laravel.com. Like, there's livewire.laravel.com. I think

41:09

Aaron

it's still its own

41:11

Ian

Inertiajs.com? JS

41:12

Aaron

site. Yeah. Yeah.

41:14

Ian

It's all in there. JS. Here's here's my here's my take on inertia. I think inertia is awesome. If if you wanna stay in JavaScript land, like, if you need a linear style app where everything is, like, a JavaScript component Right.

41:31

You're gonna use inertia for that. I wish I wish inertia was a little bit more Laravel specific. Yeah. Because the, you know, the party line is inertia is complete. Like, inertia is complete.

41:46

We're not working on it. We don't need to work on it because inertia is complete. But then you go and you look at the issues, and it's like, I've opened a few issues about, like, inertia with, Vue JS. And it's like, I mean, it is complete, but there are still things, like, I don't think modals I don't think modals exist in inertia.

42:03

Aaron

Yeah. That you can't do modals, or not. It it's tricky anyway.

42:07

Ian

Yeah. Like, modal routes don't exist. And that was promised, you know, years ago. And there's another one about, like, named slots. I was when I was building something, I was trying to use named slots with inertia, and it's like, ah, we don't support that.

42:21

And so I feel a little bit like, oh, man. This is, you know, while respecting that the protocol is is feature complete, I feel a little bit like, oh, this is kinda it's over. Like, I wanna see somebody push it on the view side or the Laravel side or something. I don't I can't speak to, like, the rails or the react side, what they've got going on there. But But I just felt like the Laravel view story was a little bit, stagnating.

42:47

Aaron

I do feel like,

42:48

Ian

hey. Should should I help that out? Is that mean

42:50

Aaron

I mean, that's the I started using it. I've the next generation HubSpot was an inertia app, and then, like, it's like, nah. It's just not like this. It's just too many of those, like, problems. And then it's hard to, like, build such a foundational element on something that you know is never gonna be worked on again.

43:07

Yeah. So, like, it's hard. Like, I feel like there's just I mean, there are issues, open issues in the repo. Right? And, like, so presumably, even if half of them are bogus, like, half of them are probably not bogus.

43:17

And I'm gonna hit those things someday, and I'm gonna know that there is no fix ever coming. Right.

43:24

Ian

Yeah.

43:25

Aaron

And, yes, I can fork it, whatever, blah, blah, blah. But, like I'm

43:27

Ian

not doing that. That.

43:30

Aaron

Deeply core thing too. It's like for that? Yeah. So, I mean, and then the whole rest of the ecosystem, like it's like, I think it's an unfortunate place for it to have that set up because it's like Vue, there's stuff going on. In React, there's tons of stuff going on.

43:43

In Laravel, there's tons of stuff going on. So, like, on the front and the back, it's like, oh, man. It's like full steam ahead. But then the thing that talks between them

43:50

Ian

Right.

43:51

Aaron

Is never gonna get updated ever again. And it's like Right. Oh, man. Like, I don't know. Like, is that how realistic is that?

43:57

Like, is that it doesn't seem realistic to me that that's possible. So, I mean, again, like, maybe it won't be possible, and then they'll be like, yeah. We're gonna fix it and make it better and put some resources into it. And I know Laravel's, like, expanding here lately, and so maybe they'll have more people to even do that. But still, it does feel like a bit of a weird spot to depend on something that you know is at least the stated position is they're not gonna work on anymore.

44:18

So Right. To me, definitely, like, a pretty big downside. And then, yeah, I do find LiveWire much simpler overall. There are definitely some gotchas, but I mean, that's true with all this stuff. So it's hard to be like, that's not like a huge ding on it.

44:32

And I I also think it's gonna be an area I think we talked about before, but where it's gonna get better over the coming year where, like, there'll be more dev tools around it and more Yes. You know, Caleb wants to do some stuff where maybe it's a little easier to see exactly what's going on without having to try to, like, manually, like, look at the messages going back and forth and Right. Figure out what's up, in that way, visualize it a bit more. So I think especially when we're doing that

44:56

Ian

stuff livewire is just is just cooking, man. Yeah. That that was the big turning point for me. It was LiveWire 3.

45:03

Aaron

3 is huge. Yep.

45:04

Ian

3 is huge.

45:05

Aaron

Yeah. And so much stuff change. And like all this stuff when you do have to do weird stuff, like how the livewire components talk to each other and be nested and stuff, like all that stuff got a lot better. All the networking ever got a lot better, you know, for, like, these real world uses where you actually do have a lot of data. It is a big app.

45:21

And, it's not just like you know, I think it started out a little more like, hey, 1 you have this one widget on your screen that's, like Right. Needs to do something reactive, and so just use LiveWire and you drop it in there. It's just that one thing and it's simple. But when you have, like, the whole app is those things, like, obviously it's much more complicated. So, yeah, so I think that's really, they put a ton of work into improving that and Yeah.

45:44

Of course, especially. And, so, yeah, I think it's, like, really paid off. And the SPA mode, I mean, if you haven't tried SPA mode or you haven't tried LiveWire since they added that, it's actually humongous change, that really kind of revolutionized it. I mean, it is just as fast as React now. It's like instant crazy.

46:01

And Wild. Our boy DHH, he's stealing stuff from LiveWire. I know. They just added to turbo. They're like, oh, let's let's do this mode where when you hover and it goes and gets it.

46:13

I don't even use the hover mode currently in the live wire, setup, but but yeah. So, yeah, LiveWire. Great.

46:22

Ian

Well I'm not a hater. Sorry, Taylor. I'm not a versus. I'm not a hater.

46:26

Aaron

No. No. I don't hate inertia, but I think it's just, you know, what you like. I mean, obviously, I think both of us are not, like, super JavaScript oriented people to be in with. So that's also, like, inertia is obviously forcing you down the, like, yes, the entire front of your application is going to be JavaScript.

46:41

Like, that's what it is. So, so I think that's also we are it's not it's our default state to prefer LiveWire, I think, especially now that we got you in there a little bit.

46:50

Ian

Yeah. You got me. It's crazy.

46:52

Aaron

I I can't wait now. We get these babies settled down. We get all the other stuff settled down. We get you some time to do some real hacking when you can get back on the computer then then we're gonna have some hot Livewire takes, some feisty Over

47:05

Ian

for you all. It's over.

47:07

Aaron

When he gets back in the ring, forget about it. You're all a joke.

47:10

Ian

Right.

47:11

Aaron

Oh, man. Alright. What else? We wanna do this? D DTOs?

47:16

I don't know. Is this gonna be too is this too heavy for you?

47:19

Ian

Yeah. I don't have much on DTOs. Do you have a lot on DTOs?

47:23

Aaron

I mean, I I've been in them a lot lately, so I have a little bit a little bit

47:27

Ian

on Alright. Tell tell me We could save that. Your DTOs. No. Tell me.

47:31

What what are we what are we at right now? We're

47:33

Aaron

Well, it's it's sort of interesting because it's coming around a little bit too because, the other thing Caleb talked about today, I think I think he put a video out on it or maybe just talked about newsletter. I didn't get that far with it. But he's talking about, basically, he added DTOs to LiveWire with what he calls them the form objects.

47:54

Ian

Give us give us that 101 on on DTOs for the uninitiated.

47:58

Aaron

So it's a data transfer object, and so it's basically just a way to have this object that's like a plain p p object in theory, although there's the the spot c one is a little different than that. But, where it lets, so you just have a way to like transfer data around your app in a safer and cleaner, way. So like whether it's coming in from a form that turns into one of these DTOs and then your internal code. Expects the DTO and then can operate off that data. And the DTO maybe transforms the data if it needs to.

48:32

It validates the data, things like that. So you kinda have this layer between the users and your internal code. Or and then it also works the other direction, where you have stuff internally, like maybe a API. Right? And you wanna send something out of the app, like you're gonna transform your eloquent model into a DTO, and then you're going to have a nicer, easily JSON able, object that you can send back out.

49:00

So instead of

49:02

Ian

passing around arrays with all these magic keys that you just kinda have to, like, as the developer, just, like, know that these keys are going to exist or not. You pass the magic array into a DTO. The DTO validates bunch of stuff and turns them into, like, class properties that then your IDE can, like, actually use and get auto complete and that kind of stuff.

49:24

Aaron

Yeah. You get that kind of stuff too. Yep. The things I really like about it, it is a different way of thinking, and it has tripped me up a little bit from just like, oh, because obviously Laravel do a bunch bunch of stuff for you. Like, you can just return the model and, like, it'll do something reasonable with it and stuff like that.

49:41

But I do really like, that you always know exactly what's in the DTO. So, like, I'm never gonna send something out of the app that I don't want to be exposed because like, there just simply is no password in the DTO. Like, I don't have to worry about it if I like remember the guarded or billable or whatever way you wanna handle that stuff. Like doesn't matter because I'm never sending anything out of the app from the model directly. It's always gonna be turned to a DTO first, and then that's clean.

50:09

And then the reverse too, like, I'm never being sent something in where somebody's gonna send in something tricky or pass something I don't expect that gets past my security because it's always going to be a detail first. So I know what I'm getting in and I will only ever contain those things. And then

50:26

Ian

also push all the push all the unknowns to the boundary, and then once it's in your app, you're you're safe.

50:31

Aaron

Right. Exactly. Okay. And then the other part that's super annoying to me in app development is just, like, validation rules because it's like you have all these different places. Like, you can use form request, but then sometimes you have to validate things other places and like the form request doesn't really.

50:48

I don't know. Maybe there's some way to hockey make it work there, but it's not, like, designed to work there. Right? And so it's like, well, maybe I'll put the validation rules, like, in the models. And then I guess that's okay, but that's kinda weird in its own way and, like Yep.

51:01

So this also gives, like, the nice place for the validation rules. It's like the DTO is has all the validation rules, And so it's validating everything. And then I'm using this in all different places. So everywhere I would need validation, like, the DTO is handling it. So I I find that super nice because, like, just the one spot to look for validation rules always instead of having it in multiple spots or coming up with weird convoluted, things like that.

51:28

So, yeah, so the what I've been using is Laravel beta, which is the spot c. I haven't said that name wrong, but I think it's spot c package. Spot c. And, which is really awesome package. It is sort of insane, because it just is,

51:45

Ian

a lot of magic.

51:47

Aaron

Does a lot of tons of magic. There's tons of like, it does way more than what I just described. Yeah. Like, it can make type TypeScript definitions for

51:56

Ian

your if you're into that.

51:58

Aaron

If you're inside of this course.

52:00

Ian

Sick freak.

52:01

Aaron

Which is like, again, like, once you have to find the data coming in and out of your app, like, you can do other magical sort of things because it's like, well, now I have this information very structured, and I I can create types of definitions or I can, you know, transform it in different ways and things like that. So it does a lot, because it does so much like the docs are a little bit tricky. It's a little, it's some heavy reading when you read. It's definitely one you wanna read front to back. You want the Aaron model.

52:29

You gotta don't just need the 2 pages you think you need because, like, the you need more than the 2 pages. So it's a little bit of heavy lifting there, but, like, once you're in there, it is very nice, and it does do a lot of things for you that you will ultimately want to do. So, yeah, it's pretty cool. I don't know. I just wanted to mostly bring it up.

52:48

There are some tricky bits when you're using it for, like, forms and with LiveWire, which it does handle with LiveWire, but it's like you get past IDs for things, but then you have to kind of transform those into the actual items and whatever. It's gonna be too hard to talk about on a podcast, but, there there it does takes a little bit of work on your mental model and some trickery. Trickery is not the right word, but just there's some steps you have to take to make it work, I think, for for you. A little bit of time in there, but so far, I'm really digging it. So I wanted to give a shout out to the DTOs and, like, a feels like such a real programming thing.

53:24

So I don't get a lot

53:25

Ian

of shit doing

53:26

Aaron

real programming with power

53:28

Ian

You're mega brain.

53:29

Aaron

Things like that.

53:29

Ian

Yeah.

53:29

Aaron

Yeah. I I don't I don't know. Patterns. Like, I couldn't name you another pattern probably, but, there we go. I got a pattern, and I kinda Got

53:36

Ian

a pattern. So Get your program card. Yeah. You're you're you're you're big proper programmer these days, and I'm I'm here for it. I get

53:44

Aaron

no idea. Yeah.

53:45

Ian

It's like, this this DTO thing is interesting. It's like a whole another it's like a whole another entity. You know, you've got models, you've got controllers, you've got, you know, migrations, and now you've got DTOs.

53:58

Aaron

Yeah. It's

53:59

Ian

like, it's interesting. It's not something I I have done a lot of.

54:03

Aaron

It is this weird world now too where, like, I don't really have controllers, in a sense because I'm using Livewire full page components. And so it all just gets passed into Livewire. So it's like it is obviously, like, sort of a controller, but it's not like I have a controller where I'm then calling stuff directly in the control. I'm doing stuff in the Livewire component. So there is, like, this bit of a weird world there.

54:26

And, yeah, this is also partially because I got again, like, I do know this domain really well. It's like I know the security stuff around it pretty well. So it's like pretty straightforward in theory to kind of model it. Although it is it is does get interesting when you have, like, the the bigger data objects where it's, like, a more central part of your app. And, like, there's these other data objects that make up your bigger data object and how that all works together.

54:49

Ian

Just turtles all the way down. Yeah. A little bit turtles all

54:51

Aaron

the way down, but then it's, like, kinda awesome because, like, well, this here's the thing where I know every piece in this has been validated. I know every piece in this is in the format that, and a safe format to send back to the user. So it is super awesome that way, to just have that there, just to use in that way. And then when you're using it with these front end frameworks, whether even with LiveWire, it's like, I don't wanna pass stuff back in the LiveWire, calls that would expose things I don't wanna expose. And so it's like, yep.

55:22

I just, like, pass the DTO around. It's got all the data. I know it's all safe and nice and wrapped up. So Yep. Pretty cool.

55:29

Ian

I think everybody runs into this at some point when you have, like, a a model or an action or a request or something where the user can initiate it from a form. The user can initiate it from an API request. You can run it from a job or the CLI command, or the user can bulk import it. And you're like, alright. This this thing this thing can enter my application or separate places.

55:53

Yep. Where am I gonna put the validation for all of this? And you end up making up I think I've done a poor man's DTO and made made up stuff like that Right. Because it's like Right. I gotta centralize it.

56:04

I can't have the importer using its own set of validation rules versus

56:08

Aaron

the You know you're gonna mess that up, like, at

56:09

Ian

some point. You know? Like, that's a deep

56:11

Aaron

bug in the future. So you you hate that when you do those things that's like, I know for sure this is gonna be a bug in a year. Like And I'm

56:18

Ian

just not gonna remember this thing.

56:20

Aaron

Ahead, baby. I just gotta do it, though.

56:24

Ian

I am I am actively writing legacy code right now.

56:27

Aaron

Exactly. Exactly. That is what's crazy with, like, how I'm approaching this like next generation help spot stuff. Cause it's like, I'm just super taking my time and it's just gonna take forever and I'm just okay with that. And it's like, I'm gonna figure out DTOs.

56:40

I'm I'm just gonna spend the time to do it, and that's just gonna be

56:43

Ian

the way

56:44

Aaron

it is. Awesome. And it'll be fine or it won't be, but it'll probably be fine. And, if you can do it that way. Yeah.

56:49

Probably be fine. We still have customers buying the current HubSpot. So it's not like a mega rush, and there's 8,000,000 competitors already. So we're not gonna beat anybody to anything. Like, it's just gonna do in our vision.

57:00

Ian

Life of leisure.

57:01

Aaron

Doesn't feel quite like life of leisure, but, yeah, I'm trying to prove you like a

57:05

Ian

life of leisure.

57:06

Aaron

I'm trying to make because, like, my instinct is to, like, of course, like, anybody be like, I wanna get this out. I don't wanna work on it forever. You get bored of working on it. You get annoyed at working on whatever. It's It's like, just chill.

57:16

It's gonna be alright. I gotta get this light on me.

57:20

Ian

I know. You gotta control your environment, man.

57:22

Aaron

I know. I didn't put I didn't think the sun was gonna be it's weird. Alright. Anyway, what else you got?

57:31

Ian

I got I got one more. I got, I got nontechnical. Good. I am on I am on 2 cups max of half calf coffee.

57:41

Aaron

Oh, he's going. And I gave up

57:44

Ian

I gave up Diet Cokes weeks ago.

57:46

Aaron

You gotta give up the thought. Yeah. That's that's just good. It's gone. That's just horrible.

57:50

That's terrible for you just in every way. So that's good.

57:53

Ian

The tiny the tiny light of joy in my life has gone out since giving up that. So it's I don't

57:57

Aaron

feel like that when you give these things up. Yeah. That's true.

58:00

Ian

Yeah. It's just so man, Diet Cokes, they're so cold, and they're so bubbly. Jeez. They're just great.

58:06

Aaron

Tried, seltzer?

58:08

Ian

Yeah. I like seltzer.

58:09

Aaron

You can do seltzer as a replacement. Squeeze some juice in it. Keep it cold.

58:14

Ian

Oh, that's the lamest thing I've ever heard. Squeeze some juice in

58:18

Aaron

it. Woah. Oh, my gosh. Diet Coke is especially bad. Diet version.

58:23

Come on. If you have a Coke

58:25

Ian

Diet Coke is great. Diet Coke is the best the best soda possible.

58:30

Aaron

I I don't know about that.

58:31

Ian

Unless you unless you have a functioning pancreas, in which case, Doctor Pepper. Ice cold Doctor Pepper. In fact, the pure cane sugar. So it's like the Mexican Coke, but the Doctor Pepper version. I mean,

58:43

Aaron

I haven't had Doctor Pepper in 20 years. I should I should get a Doctor Pepper.

58:49

Ian

It is the freaking best.

58:52

Aaron

I was just reading this very no. Go ahead.

58:55

Ian

So, anyway, diet Cokes are gone, have been for a few weeks. I had been cutting off coffee around, you know, noon or 1, but but I was still having, you know, a giant latte A lot of coffee. Yeah. Along with, you know, 2 or 3 cups of half caf. We brew half caf at home just because we like to drink coffee.

59:15

Yeah. So now I'm now I've cut out the latte altogether. It's a decaf latte fully. If I get one, it's fully decaf, and I'm limited to to 2 2 cups of half calf here at the house. Because the sleep, man, the sleep is not great.

59:30

Aaron

Sleep is so key.

59:31

Ian

Everything's not great. I'm waking up I'm waking up 2 or 3 times a night just, like, wide awake.

59:38

Aaron

Yeah. I mean, you gotta watch that stuff, man. The sleep, the other thing would be sleep apnea too if you wanna go down that Yeah. Path. But I would definitely start with the caffeine cut now.

59:48

I wanna have sleep apnea,

59:50

Ian

so I'm not gonna look into it.

59:51

Aaron

Alright. No. One more thing.

59:53

Ian

Yeah. But, But,

59:53

Aaron

yeah, that's the thing. If you the sleep is like the foundation of everything. As soon as the sleep goes, everything else is shit. Like, that's just the way it is because, like, even the things you have, you're so much less resilient to them because, like, when you're tired, you just get overwhelmed so much easier and all that stuff. And then obviously, this stuff is actually worse because you're tired and things don't function in your body properly when you're, you know, when you have, like, that deep tire.

1:00:14

And you don't even necessarily know it. It's like you think you're operating fine until, like, you really realize, no. I'm not actually operating fine.

1:00:21

Ian

I don't think I'm operating fine. I've come home from, like, wherever I've been and or I've been at home already and, like, crashed from 1 o'clock to, like, 3:30 most days. I'm just like, I cannot keep my eyes open. It's Yeah.

1:00:36

Aaron

It's terrible. 2 hour naps. You know that it's probably not possible sleeping bad.

1:00:41

Ian

It's not

1:00:42

Aaron

I mean, you obviously have other factors, but, but still, like, you you saw the night nurse? Is the night nurse still there or

1:00:49

Ian

no? Ian, this is the last week.

1:00:51

Aaron

Oh, so yeah. That's

1:00:53

Ian

like We don't have her tonight, but then we have her Wednesday, Thursday, Friday, and that's it.

1:00:57

Aaron

Yeah. That's a bummer. It's a bummer. I was gonna say it'd be good to optimize those nights if you're getting full nights at least no nights, but you won't actually have her.

1:01:06

Ian

Yeah. Turns turns

1:01:07

Aaron

out I

1:01:07

Ian

ran ran out of money, and so can't can't pay her,

1:01:10

Aaron

you know, $1,000,000 every night to come over to the house. Yeah. Yeah.

1:01:15

Ian

She has another family coming up too, actually. So that's that's the real reason.

1:01:22

Aaron

Well, how's it going so far with that? Have you noticed any changes or not yet?

1:01:26

Ian

No. Not yet. And I started, you know, a few days ago.

1:01:29

Aaron

Yeah. I think so, but

1:01:31

Ian

gotten there. I think, you know, I think, honestly, the goal is to go full decaf at some point.

1:01:37

Aaron

Yeah. I mean, I don't know if we talked about this, but, you know, the decaf has calf. Like, I hate to tell you that, but.

1:01:42

Ian

Yeah. What's that? It's supposed to it's in the name.

1:01:45

Aaron

It's all lies, man. The decaf has calf. No. The decaf is full of calf. Like, it's less caff than full caffeen, but there's still a permanent caffeine.

1:01:55

Ian

Caff does a decaf have? If a decaf could have caff.

1:01:59

Aaron

No. It's got more than you would want. It also just depends, like, how they're doing it. It was, like, the different ways. The one that's, like, less toxic to remove the caffeine, let's do more caffeine if I recall, you know, obviously, the one that's like kind of more toxic does do a better job removing caffeine.

1:02:16

Ian

What what do you mean toxic? Are they using, like, mercury to remove it, or what's going on here?

1:02:20

Aaron

It's, like, really, actually, horrible stuff to remove the caffeine from coffee. If you, you know, you probably don't wanna look into that if you're thinking about drinking decaf coffee. But right now. Benzene, I think they use. Something like that.

1:02:32

Ian

Isn't that like an industrial cleaner?

1:02:34

Aaron

Yeah. That's that's it. That's the stuff.

1:02:36

Ian

Hey. Hey. If it's good if it's good enough for, if it's good enough for manufacturing equipment, it's good enough for me.

1:02:43

Aaron

It's good enough for my liver.

1:02:45

Ian

Okay. How much caffeine is in decaf coffee? Decaffeination. This is this is from Google Snippets, so I have a 0% confidence in this.

1:02:56

Aaron

Sure.

1:02:56

Ian

Decaffeination removes about 97% of the caffeine and coffee beans. A typical cup of decaf has about 2 milligrams of caffeine compared to regular, which has 95.

1:03:11

Aaron

Yeah. So still some, but also depends again, like, you know, where you get it. Are they testing? Yeah. This is like they test it once and, like, who know the process?

1:03:19

You know? I don't know. All that stuff

1:03:21

Ian

very fuzzy. Is is it more for me? Sacred, decaf coffee, that's the fact

1:03:25

Aaron

that you gave it up. I gave I gave up I had to give it up all decaf, caff, the whole thing for it to, like for my sleep to get. Right. But that's not true of everybody. I mean, there's definitely people who drink lots of caffeine and they sleep fine or whatever.

1:03:37

But, Yeah, I I think it's also one of those things where like combined with stress and stuff like that, it it's extra bad, you know, because it's like, you get a little awake. You're not you're you're not sleeping as deeply to begin with because the caffeine just takes that off a little bit. And then if you're super stressed, like, when you do, you know, get woken up, you, like, then stay awake

1:03:56

Ian

or you're

1:03:56

Aaron

thinking about stuff or whatever. Like Yeah. So it kind of builds there too. But, yeah, caffeine, man. It's bad stuff.

1:04:04

I try to tell everybody nobody listens to me, though.

1:04:06

Ian

But Man, everywhere you turn, everywhere you turn, they're trying to catch

1:04:10

Aaron

up. Anything. You can't have

1:04:11

Ian

anything anymore. You can't have anything.

1:04:13

Aaron

I know.

1:04:13

Ian

When I was a kid when I was a kid, I used to drink, like, 6 sodas

1:04:16

Aaron

you want.

1:04:17

Ian

Run-in a circle for an hour and then fall asleep

1:04:19

Aaron

for, like, 12 hours.

1:04:19

Ian

Like, yeah.

1:04:20

Aaron

Sleep right there.

1:04:21

Ian

Do whatever you want.

1:04:22

Aaron

I know. It's terrible. This is all all part of the horribleness of discovering that, like, you're the same person as a kid that you are as an adult, but, like, the adult body you're in now is, like, doesn't perform the way the kid body did. So now it's like that's like the

1:04:37

Ian

the the

1:04:38

Aaron

asymmetry there. Yeah. It's a disaster. It's not good. Like, when you were 10, you were invincible.

1:04:44

Ian

I was invincible. One time one time, I fell off the roof, and I was totally fine.

1:04:49

Aaron

Oh my gosh.

1:04:50

Ian

I was I was invincible. I was out on the roof. Just

1:04:53

Aaron

bounced up.

1:04:54

Ian

Yeah. I did. I walked in the back door. It was like, hey, guys. I fell off the roof.

1:04:58

I was, I we had a 2 story house, and I lived, you know, my room is on the 2nd story, and I saw icicles out the window. So I climbed out the window, obviously, with a hockey stick, obviously. That. And I was, like, scooting along under the eave where it wasn't iced, and I was hitting I was hitting the icicles and watching them slide down the frozen roof and hearing them land on

1:05:17

Aaron

Sounds awesome.

1:05:18

Ian

Below. It's totally awesome. I I can't do that today. It was totally awesome. And I got one foot outside of the the safe zone and slipped on the ice.

1:05:27

So I'm sliding down the ice in in my underwear holding a hockey stick, and I'm like, I'm about I'm about to fall on the porch upon which the ice

1:05:37

Aaron

Holy shit. Shattering.

1:05:39

Ian

And I think, you know what? The porch isn't that big. I bet if I just push off at the end, I could clear the porch. And so I I reached the end of the 1st story roof, and I push off, and I go Oh my god. Move right over the porch into the grass, do a little tuck and roll, and literally walk in the back door where my parents are sitting on a Saturday morning in my underwear, and I'm like, hey, guys.

1:06:01

I just fell off the roof. I'm gonna go put some clothes on.

1:06:05

Aaron

This is the craziest story I've ever heard. That's unbelievable.

1:06:08

Ian

That is awesome.

1:06:11

Aaron

You're indestructible. You're super cute.

1:06:14

Ian

I was. I was. Now now if you look at me sideways, I'll die.

1:06:19

Aaron

Just the, like, speed of thought there. Your mind can't work that quick now. Like, how how fast your mind works there? You know? Yeah.

1:06:26

Ian

You

1:06:26

Aaron

probably you probably, like, had, like, 30 minutes of time. It was, like, all slow motion. You're like, okay.

1:06:31

Ian

I was in full for sure.

1:06:33

Aaron

Yeah. Bullet time. I'm just gonna give a nice solid push as I leave. I'm gonna fly through the air. It's gonna be no problem.

1:06:38

Like, now you'd already be on you'd be on the concrete broken

1:06:41

Ian

before you even

1:06:42

Aaron

thought that I'm sliding.

1:06:43

Ian

Yeah. Yes.

1:06:44

Aaron

Oh, I'm sliding. Cool. I'm dead. I'm dead. Percent.

1:06:47

Yeah. Yeah. Woah. Wow.

1:06:51

Ian

Not not what we used to be.

1:06:53

Aaron

Man, you were brave. I used to just, throw a baseball at the, bicycles and watch football, but, I never got off down the road.

1:07:00

Ian

Kid thing in the world. Like, there's some high schools. I'm gonna get a hockey stick and knock them off.

1:07:06

Aaron

Just think you have 4 kids who are gonna

1:07:08

Ian

be that way.

1:07:08

Aaron

Is that you have to have to, be worried about climbing out on your roof. Yeah.

1:07:13

Ian

Yeah. 4 kids that are gonna fall off the roof

1:07:15

Aaron

and walk in and be like,

1:07:16

Ian

hey, dad. I just fell off the roof. Oh my god. What?

1:07:19

Aaron

That's what you did as a kid.

1:07:23

Ian

So yeah.

1:07:24

Aaron

That's a good close look.

1:07:25

Ian

Got. Yeah.

1:07:26

Aaron

I think that's it. I don't think we could top that. We gotta we gotta leave them there. Oh, man. Alright.

1:07:31

Thanks, everybody. Mostly technical.com. Make sure you subscribe, like, go to the YouTube. You can see this light on my face for the whole episode. Very cool.

1:07:41

Mostly tech pod. Give us feedback on Twitter there as well as mostly technical podcast atgmail.com for, feedback via email, and I slash we, the royal we, will read them. Have a good week.

1:07:57

Ian

Later.

Details
Show
Mostly Technical
Date
Feb 21, 2024
Role
Host
All podcasts
Podcasts
Newsletter

Every week: the best things I've found and what I've been thinking about.