Mostly Technical

Ian & Aaron return after a mini break to talk about Aaron's new twin babies, Ian's MySQL 8 upgrade woes, the origin story of Eloquent, and a lot more.

Sponsored by LaraJobs & Screencasting.com.

Sent questions or feedback to mostlytechnicalpodcast@gmail.com

  • (00:00) - One Week Ago Today
  • (14:32) - Ian’s MySQL 8 Upgrade Woes 🤒
  • (26:38) - Capital R Real Business
  • (45:50) - Some Brief Thoughts on Postgres
  • (50:59) - My Goal Is To Make Cool Things
  • (01:02:26) - Aaron’s Not Static Static Setup
  • (01:14:24) - Eloquent’s Origin Story
  • (01:19:41) - Laravel Pulse
  • (01:27:01) - Authentication Grab Bag
  • (01:34:51) - Shoes Inside The House
  • (01:40:13) - What’s Your Workout Routine?

Links:

Creators & Guests

Host
Aaron Francis
Educator at @PlanetScale. Into Laravel, MySQL, and building things. Building https://helloquery.com/
Host
Ian Landsman
Founder HelpSpot, LaraJobs, and Laracon Online.
Producer
Dave Hicking
@UserScape Product Manager. Previously at @TightenCo, @BeineckeLibrary, & @uconnlibrary. 1/2 of @CRSPodcast (I'm @doc_beats). 1/3 of @cheese_weather.

What is Mostly Technical?

Hosted by Ian Landsman and Aaron Francis, Mostly Technical is a lively discussion on Laravel, business, and an eclectic mix of related topics.

Intro:

You're listening to Mostly Technical, which is brought to you by Lara Jobs, the official Laravel job board, and Screencasting .com, where you can learn how to create high quality screencasts Faster than ever. Now, Ian and Aaron.

Ian:

Welcome back.

Aaron:

How do I look? Well rested?

Ian:

You actually look pretty good. I mean, This whole thing is crazy. You just had babies. It's 10 o'clock at night where I am. We normally record at 9 AM.

Ian:

We're we're all messed up here. But,

Aaron:

y'all buckle up. Definitely.

Ian:

Oh, man. Alright. Well, I mean, we gotta hear about these babies.

Aaron:

Yeah.

Ian:

Give us the scoop.

Aaron:

They're great. They're freaking awesome. Yeah. So we, we had them 1 week ago today. So we have 2 7 day old babies in the house,

Ian:

if you can

Aaron:

believe that. That is just not that's not very many days. So they're great. They're healthy. Everybody's happy.

Aaron:

Their names are Isaac in Virginia, so boy and a girl. And Isaac was, like, 5 pounds something, which for the non parents is pretty small, but he's already gaining weight, so that's great. He's healthy and happy. Virginia was huge. She was, like, 7 pounds, 10 ounces, like a full 2 pounds bigger than him.

Ian:

I like that's really unusual all with the

Aaron:

It is. Yeah. It really is. She was She actually

Ian:

out of the way.

Aaron:

I yeah. She ate all his food. She spent, Weirdly, she spent 1 night in the NICU, and he was just like he was fine. He was just chilling, but she had, like, A bunch of fluid in her lungs. Mhmm.

Aaron:

And so they they she'd spent a night on a CPAP machine, and then that was it. It was, like, I was freaking out, man, because they're, like, oh, we gotta take her down to the NICU. And I was, like, what does this mean? And they put CPAP on her, and the next the next morning, they brought her up, and we're, like, she's fine now. That was brutal.

Aaron:

But, yeah, beyond that, you know, it's great. We came home on Saturday, and so we've been home for Sunday, Monday, Tuesday, Wednesday. This is our 4th day home.

Ian:

Wow.

Aaron:

It's crazy. Man, it's just It's crazy. It's a lot of kids.

Ian:

It's a lot of have you ventured out into the world yet?

Aaron:

Yeah. So I've ventured out I've ventured out a couple So we haven't ventured out

Ian:

all I mean 4 Yeah. That's what I mean.

Aaron:

All the kids. We've only we've only yesterday, we went on a walk, all 4 Nice. And and our au pair, Jasmine, and it felt like it felt like my in law we took a picture, and my in law said it looked like a parade, and I said I would have accepted a circus as well because that's what it that's what it

Ian:

feels like around here. 7 people.

Aaron:

That's what I'm talking about right there. Been people. Yes.

Ian:

A lot

Aaron:

of people. So many people. Yeah. So it's been great. I mean, the the newborns are, like, I told Jennifer I told my wife, like, what were we having such a hard time with the 1st time around?

Aaron:

Because when the kids go to school Yeah. When the kids go like, the big kids go to school, they're 2a half. They're not very big. When the big kids go to school, air quotes, we just, like we feed some babies, And then we put them back on their little their little boppy things, their little beds, you know, all snugged up in their their little wraps.

Ian:

Swaddle them. And

Aaron:

Yeah. And they Fully sleep for, like, 2,

Ian:

two

Aaron:

and a half hours until it's until it's time to eat again. And so, literally, I'm like, I'm watching Grand Designs. I'm tinkering on, you know, my website, writing blog posts, and, like, Jennifer's napping. It's like, What was so hard about this? But I

Ian:

do yeah. Just knowing every I think the 2nd kid and beyond is so much easier just at least in the sense of, like, you just know everything. Like, you know what you're supposed to do. So there's, like, no overhead of, like, how do we do this thing? Or we're scared about this stuff, whatever.

Ian:

You know the steps. And even if you're tired or whatever else, like, There's not all the those questions at this point. You know? Yes. You got your breakdown.

Aaron:

There's so much less, like, are they dying right now?

Ian:

Right. Way less now. That's what I said before.

Aaron:

They They just kinda lay there.

Ian:

They're super tough. They're fine.

Aaron:

They're super tough. Yeah. Yeah. And these 2 so our 1st set, boy girl, Simon and Amelia, came out of the womb. Amelia was like, I'm in charge, and Simon was like, that's fine.

Aaron:

You do that. I don't care. With these 2, they're both super chill so far, and we'll see, you know, we'll see if it holds. Like, They haven't even reached their, you know, full, like, 40 weeks yet because I think they came out at, like, 38 weeks or something. So they're still kinda just, like, You know, incubating.

Aaron:

They're still sleepy. Right.

Ian:

Right.

Aaron:

But out of the womb, Amelia was like, I run the house, and these 2 are just totally different. So, Hopefully, we got 2 chill babies. We'll see.

Ian:

Wow. Yeah. That'd be great. That'd be great.

Aaron:

We need some chill babies, man.

Ian:

Nothing better than a chill baby. I never had a full chill baby. I had, like, a half a chill baby out of the 3, but no full chill babies. So

Aaron:

We we have 1, but, You know, we just we didn't get to savor it because he came out with a non chill baby next to him. So yeah.

Ian:

How's the The all the, assistants and au pairs and Oh, man.

Ian:

We got

Aaron:

a we got a full down Abbey staff over here. It's crazy. It's great. I mean, we, like I said before, we lucked out with our au pair in that she's just like the best au pair that has ever That's

Ian:

awesome. Yeah.

Aaron:

It has continued to be. You know, when we were in the hospital, the big kids went to my in law's house for, like, 5 or 6 days, and the au pair, stayed here, like, slept at our house still, but went over there every day, to do her hours over there. And our in laws afterwards were like, hey. So, Can we just keep Jasmine full time? Like, can can we hire her?

Aaron:

And I was like, I know. That's what I'm talking about. So that was that was great, and she just, you know, she's very, very good with the kids and flexible now that we have new kids. She's like, She's just the best. And then, you know, the night nurse.

Aaron:

So we have a night nurse every night for 2 weeks straight.

Ian:

Smart.

Aaron:

And so I am I am sleeping through the night, like, fully Wow. Which I know is crazy. And Jennifer is sleeping through the night Save for, you know, the 30 or 45 minutes when she's feeding 1 of the twins.

Ian:

Mhmm.

Aaron:

So the night nurse comes in, brings 1 of the twins, Jennifer feeds that Twin and the night nurse feeds the other twin, and then 3 hours later, she brings in, you know, they alternate. So it's great. Feel, you know, super rested. I'm, you know, I'm glad I'm on paternity leave because I'm doing a lot more with the big Kids. Like, I'm I'm getting them up out of bed, ready for breakfast, off to school, you know, ready for dinner, baths, put them to bed, and Jennifer's popping in to say hello, but, you know Yeah.

Aaron:

The full, like, full team effort though. Change, yeah, it'll change when The night nurse goes down to, like, every other night, and that's gonna be a lot more tiring. But for now, it's it's really great. The hard part is the bigger kids.

Ian:

Yeah. Oh, for sure. I think so in some ways because they there's always need stuff and, like, the little ones are little whatever. They're still little. The the the bigger ones are running around and doing things.

Ian:

They gotta be places to make and all that stuff.

Aaron:

Feeling a lot of feelings about, you know

Ian:

Right. Oh,

Aaron:

yeah. Mom and dad being busy slash mom Being in the back with the little babies, it's okay. I think it's going okay. I think The headstrong girl, Emilia, is having she's having a little bit harder time and is acting out a little bit.

Ian:

Yeah.

Aaron:

And that's been real that's been really hard for me because Our little son is just so, like, sweet and shy and, you know, kind, and she kinda, like, pushes him around. And so There's been a little bit of acting out, and I'm like, oh gosh, like, this is really difficult. So that that part has been, you know, and the brunt of that is falling On me solo right now, well, it gets me and Jasmine, but, you know, Jennifer's primarily caring for the little ones, and I'm primarily caring for the big ones. And so Yeah. Yeah.

Aaron:

I mean, that whole dynamic of, like Yeah. There are new babies, and I'm not the baby anymore. Fortunately, they were never the solo baby. You know, they were always a twin. Right?

Aaron:

So the Tonys had to compete. You never really had. Yeah. Right. Yeah.

Aaron:

But it's good. I think, You know, one of the I did take the big kids to Barnes and Noble the other day, which is like a staple because they've got a little kid's corner. Yep. And I drove the minivan, And the minivan is now set up to hold all 4 children, and I took a picture, and it's like Two car seats in the middle, 2 car seats in the very back with the big kids in the very back. And now my 4 Runner's got the car seats for the little ones, and Jasmine's VW has Car seats for the big ones, and it's just like, what are we doing?

Aaron:

What is going on here? This is insane.

Ian:

Yeah. That's that's pretty insane. That's So you're right. It's a So I mean, we were always at the capacity for the real world. We always feel like it's 5 kit like, nothing you know, you can't get a booth at a restaurant.

Ian:

You Like, whatever. You're trying to, like, be on an airplane, but, like, it's only got 4 across, and then what do you do with the 5th person? Like, you know, whatever. There's all these spots where 5 is too many, But you're now at the point where, like, you're like, even cars are gonna stop fitting. Like, you're just gonna be way down.

Aaron:

It. Yes.

Ian:

If you

Ian:

go more than this, forget it. Like, it's gonna be No way. You're gonna have to Have a compound and just never leave

Aaron:

No way.

Ian:

Anymore. That's it.

Aaron:

No way. We're not. We're not. We we blew we blew past the reasonable line, and we're Right.

Ian:

It's slowly stopping there.

Aaron:

Trust trust me. We're not we're not doing that.

Ian:

6? Are we gonna go for 6?

Aaron:

Come on. I would there's, like, a, Let's see. There's Jennifer would kill me, but there's, like, a if I could guarantee it would be another set of twins, I'm, like, 30% on board.

Ian:

Just for the

Aaron:

But if it was a single if it was a singleton, just for the Story, man. The story would be right there. Singleton, 0%. 0% because I don't want any more kids.

Ian:

Right.

Aaron:

I love a good story. I don't want any more kids, I definitely don't want, like, a 5th one to be left out.

Ian:

Or once you get triplets or something, that Oh, gosh. Nightmare scenario there.

Aaron:

No way. So, yeah, we're done. I'll see to it that that we're done.

Ian:

You're gonna be busy for a while anyway. So Yeah. You're covered. So Hello? I know you're getting all this rest at night.

Ian:

You're did this night nurse for a couple weeks, so genius. I wish I had known you and thought of this Because I just feel like that's always we always just got so behind at the beginning. It's like we're just wrecked the first, like, couple weeks. And then we're just behind the 8 ball, Like, for the next 3 years because we're just, like, wrecked right from day 1, and we never catch up, and we're just exhausted the whole time, and it's just a mess.

Aaron:

Yep.

Ian:

Like coming out the gate strong, like you're rested and your mind's around it. You're like, you got your processes in place and your people and everything. And it's like, Yeah. It's like, okay. So once she goes away, obviously, you're gonna be more tired or whatever, but it's like, you're ready.

Ian:

Things are moving. You got some

Aaron:

And we're doing this amazing. I mean, We're doing, like, 6 weeks or every other night

Ian:

or so.

Ian:

Do you know every other night, you got some good sleep at least,

Aaron:

which is fun? And it helps with, like, sleep training the kid like, the babies. Mhmm. Because it puts them on this super regular schedule Where someone like an adult who is awake and cognizant is, like, running the show versus, you know, me and Jennifer were

Ian:

like, Oh, gosh.

Aaron:

What time is it? I gotta

Ian:

I'll shoot

Aaron:

you 30 minutes late. Yeah. So, like, having, you know, this, you know, registered nurse who's, You know, whatever age, but has been doing this for 20 or 30 years who just Right. Is crushing it. It's like, oh, thank thank you for, like, Managing us, the adults, as well.

Aaron:

Right? Yeah. Yeah.

Ian:

Wow. Well, it sounds great. Everything's going well. Kids are good. Stuff's happening.

Ian:

You're rest Driving. Yeah. Driving.

Aaron:

Best days of my life. Yeah.

Ian:

Exactly. That's crazy. And you're still on the like, your grind years too. We're we're recording a podcast. It's the 1st

Aaron:

week because

Ian:

that twist

Aaron:

The show must go on. Yeah. Listen. You go to you go to Vegas, and suddenly, we can't we can't record a podcast. I have a 1000000 children.

Aaron:

It's like, let's go. We gotta record the pod.

Ian:

Yeah. You're you're, you're on top of it. What can I say? I'm still catching up on my sleep. That's why.

Ian:

I'm like, I'm I'm so far behind.

Aaron:

I know. You're right. You're right.

Ian:

You're right. To me.

Aaron:

Well, we're doing it we're doing it at 9 PM because the night nurse got here at 9 PM, which means, like, I'm fully right now, I would, you know, traditionally be in bed, but it's like, alright. I I'm free. I can do something. Yeah. Exactly.

Aaron:

This is awesome. Not needed out there.

Ian:

Yeah. So, yeah, I'm at the office, which is in town. So I'm in town, which is fine. I actually came in to work at, like, noon. I was like, oh, I'm just gonna, like, work through till, the pod.

Ian:

So And you

Aaron:

got yourself you got yourself a nighttime drink over there?

Ian:

We got some the Belvane. Look at that. There we go. It's by

Aaron:

the way.

Ian:

This stuff is very good. Highly recommended. The Belvane, 14 rum casks. Very good stuff. Very good stuff.

Ian:

I'm ready.

Ian:

I'm ready

Ian:

for the taste.

Aaron:

Yes. To the kids. I'm ready for the, for the takes to increase in hot It says the drinks go on.

Ian:

I know. I should've been drinking this whole time leading up to this, then I could've just Yeah. That's true. I was

Ian:

too worried.

Ian:

I'd be like, oh, I'm gonna be too exhausted. So I just

Aaron:

When we do a holiday when we do, like, a holiday episode, like a crossover with somebody, we need to we need to have some nighttime drinks and just go for, like, 3 hours and see see what comes out.

Ian:

Yeah. Oh, I like that.

Aaron:

Be fun. Right?

Ian:

We even maybe even that one's streamed or something. It's like, hey. Come join us.

Aaron:

Like, I would be a lot of Fun.

Ian:

Yeah. That one could just be, like, a live episode where, yeah, some other cruise with us and people we can be on Twitter chatting with them or Whatever. Would be flat.

Aaron:

Yeah. We should do that. So, like, one of those days in, like, dead week, so, like, December 22nd or or something where nobody's doing anything. Everybody's like, I'm basically checked out from work.

Ian:

Everybody's out of town.

Aaron:

Hang on the pod. Yeah. That'd be fun.

Ian:

We'll do that. I like that. That's a good idea. Oh, man. So alright.

Ian:

I don't know. Should we do should we do some actual Stuff then? Are we?

Aaron:

Yeah. Just some content. What are we here? We gotta we gotta do the content, content, content. God, let's go.

Ian:

So that's so this is also, so I went to Vegas when we don't need to cover that too much, but, while just before I left and while I was there, our database had this big implosion. And so this is also part of why we couldn't pod that day. I've been dealing with the stupid database stuff. Right. So I don't know.

Ian:

You're you're the database man. Maybe you'll have some insights for me, but I I can lay out my tales of woe.

Aaron:

Yeah. I wanna hear. From from what I saw on Twitter, you upgraded from 57 MySQL 57 8, and 57 is officially end of life. Right?

Ian:

Or short So that's very shortly or is Yeah. Like, within the next week or something, that kind of thing.

Aaron:

So you upgraded 57 to 8 and then just got totally hosed. I mean, the

Ian:

Don't do nobody should do this. Just stay on 57. Let's just do that.

Aaron:

Tweet got some some numbers, so maybe, you know, maybe it was worth it in the end.

Ian:

Yeah. It's worth it for the podcast. I don't know

Aaron:

about it.

Ian:

My sleep is suffering, but the podcast is

Aaron:

I saw the chart, explained the chart, and explained, like, what actually happened in the app. Was it was it trouble?

Ian:

Yeah. So it's like well right. So we upgraded and we figured it'd be fine. Even upgrading was a bit of a nightmare cause we're on RDS, AWS, RDS, And which is a very good service. We've been very, very happy with it, but the not the best support wise.

Ian:

Right? So like AWS managing is not managed support service. Yeah. It is managed. It's managed.

Ian:

Yeah. But

Ian:

then if

Ian:

you need anything, it's not managed. They're not gonna help you with that. Right? So, like, okay. So we had the the our database has been running forever.

Ian:

Like, I don't even 8 years or something like that. So, whatever. There was something we were trying to use their new blue green, deployment Scheme, which lets you, like, kinda instantly flip over to a new server on a new version and stuff like that. It's all magical. Great.

Ian:

So but we couldn't. It was failing When try to flip over because there's some table that had some stuff in it, whatever that is, and it was a table we couldn't access. It was like some kind of system table that we couldn't even do what needed to be done. So Oh. So we had to go through, like, the many layers of AWS Support to get to the team that could actually touch your server, that could actually do the thing.

Ian:

So they did the thing. Great. Fine. Did the blue green deployment? Fine.

Ian:

Everything's great. And then like a day or two later, it starts acting funky, blah, blah. We go in there like, so I never think about the because it's been so perfectly reliable, right? Like it just absorbs. We have hundreds and hundreds of customers over terabyte of data.

Ian:

It's fine. So I mean, looked at it in forever, so it's it's acting weird. I go in and look whatever the CPU's all crazy. I post that chart that I tweeted out. But really, it wasn't actually the CPU.

Ian:

That was sort of a fake a head fake. Really what's happening is that it's it's running out of memory, Then it's swapping, and then everything goes crazy once you start swapping. So Yeah. Yeah. So we've we've come up with a few tricks To keep it from swapping, which is basically to the best one.

Ian:

Do we add flush tables on, like, a script to run every hour, which is fine, but doesn't do that much. The best one is to change the value of the inodb buffer pool, just changing it all, so I go back and forth between 2 different numbers, and then that causes some internal Flushing more significant flushing of the buffer pool and memory.

Aaron:

Not just change it. You're you're, like, toggling it back back and forth. I mean,

Ian:

I'm just toggling it back and forth so that it kicks off this internal process that clears a bunch of memory. So that happens, like, once a day. Dude. So once a day, I do that. Obviously, this is not sustainable, but this is just to keep another thing like kosher.

Ian:

There is some there has been some improvements because we had to we reran, analyze table on all the tables.

Aaron:

Mhmm.

Ian:

And so I think there was some, like, query execution Stuff between 5, 7, and 8, stats are wrong and stuff like that, so is making bad execution plans. So that has helped, but Over 24 hours, it will still start to tend down. You know, the freeable memory just trends down. So, Yeah. So I've given up on AWS support.

Ian:

I just hired Percona, but, you know, gotta get on their schedule. Those guys are really good. We used them once before, and they didn't know their stuff. They were like, this is all we've done all summer. Like, we have just done a 1,000,000, 5.7 to 8 upgrades because It's not too good in so many words.

Aaron:

Yeah.

Ian:

So yeah. So that's where I'm at. So I don't know. If people have ideas, I'd be happy to hear them before I totally paid many 1,000 of dollars, but at the same time, I would pay Yeah. I would pay $20,000 right now to just have this fixed.

Ian:

So I'm fine paying them good.

Aaron:

But This is This is this is I'm off the clock. This you should pay way, way less and just move to planet scale. I don't understand Why you want to continue to manage this yourself?

Ian:

Well, there's 2 different things there. 1 is that I I don't know what the actual cost is gonna be. I'm assuming it's actually quite a bit less than $20,000, but

Aaron:

Let's see.

Ian:

Moving services in the middle of everything. So there's a couple of reasons why I don't love that idea. Because just 1, you're in the middle of stuff going wrong, and then, like, You're throwing a new service migration in there, which just feels like not maybe the safest route to go. And then, you know, and then we're sort of in this phase where I'm, like, working on the new help spot and stuff like that. It's gonna be all different, which we haven't talked about too much on here, but so I don't really wanna get into, like, a whole bunch of, like, rearchitecting of how things work and things like that.

Ian:

Obviously, plant scale in general. Presumably, I could just flop over.

Aaron:

Yeah.

Ian:

I don't know how it works with, like we have a whole bunch of, like, security groups and all that stuff. We can

Ian:

this plan

Ian:

is called go inside of a private security group or I it doesn't I don't think it's that kind of thing. Right? It doesn't deploy into your, private network on AWS. That's not how much

Aaron:

you pay us.

Ian:

Okay. Yeah. Yeah. See, we're back up to 20,000. It's only 20,000.

Ian:

No one

Aaron:

don't worry about that. No. No. No. You can just Flop over.

Aaron:

That's actually that's our that's our tagline. You can flop over.

Ian:

Just flop over. Yeah.

Aaron:

I mean, you can do zero downtime migrations. We'll hook up your RDS and, like, you just all in. Bin logs and stuff, and so you can, like, do zero downtime. And I think it works both ways. Like, you could flip over to us, and we'll write back to RDS in case you need to fail back to RDS.

Ian:

Right.

Aaron:

We can and do put it inside of people's AWS accounts. Of course, that costs a lot more, but you still get to use the PlanetScale platform, but maintain the infrastructure. Yeah.

Ian:

I just see a.

Aaron:

But yes, like the 57 to 8 thing, you know, we just kind of handled that for everybody.

Ian:

That is nice.

Aaron:

Well, I

Ian:

don't know. So here's like, what are your thoughts on? So to me, it doesn't seem like it's queries. Okay. Because here's the thing.

Ian:

Yeah. Before This all happened. Like the memory was like literally a straight line. Like there was the freeable memory was just a straight line, no variation. And the CPU's always at like 10 to 15%.

Ian:

Right. And since this has happened, the CPU is always at, you know, it's still at, like, 10 to 15%. The Connections are like a straight line. Like, we always have, like, 600 connections. We do have a weird schema, which I was wondering if that's part of it because we have, like, We have database per tenant, so there's a bunch of databases, and so there's a bunch of tables.

Ian:

So there's So you wouldn't even 1,000,000 of tables. Yeah. Oh, really? Oh, it doesn't it doesn't handle multi, database?

Aaron:

Our pricing doesn't.

Ian:

Okay. There you go. Yeah. So we plan to get them on the offer.

Aaron:

We, Yeah. We price per I don't remember what it's called, but it's schema or database

Ian:

schema. Okay.

Aaron:

Yeah.

Ian:

Alright. So yeah. So with that, that's not gonna work because we have hundreds and hundreds of those. So so I don't know. It's weird.

Ian:

So I would feel like if it's like, well, I have the slow Query logged down to 10 seconds. I mean, there's the occasional 12 second, 15 second, but it's almost always like a full text search on a full text index. Right. So, you know, I don't know. Like, I don't feel like a 22nd query once in a while should, like, cause the memory to run out.

Ian:

Like, you know what I mean? It's, like, very weird. So I don't know if it's, like, some setting. That's kind of my inclination, but

Aaron:

This is a little bit below the level of my expertise. Right.

Ian:

We're down in the guts now here.

Aaron:

Yeah. Which is why I work so well at, like, a managed services company because, like, I can teach people how to do better queries and not teach them, like, Here's how you manage the database because, like, I actually it turns out I don't know. Right.

Ian:

The real DBI stuff.

Aaron:

Yeah. Exactly. Yeah. I had a I'm just like, You know, if a application developer knew something about databases, that's me. Right?

Aaron:

The MySQL eight has not been without its bumps, I will say there have been there have been some bad point releases that have really, like, kinda host kinda host some people on performance.

Ian:

Are you guys at like 8.zero.whatever? Or I because I think like the 8.12 or whatever. There's other point releases at full point releases out now. I didn't know if, what do you you know what you guys were on? Like, Paul?

Ian:

I thought there was. I thought, like, 8.1 at least was out. Maybe I'm wrong.

Aaron:

I think we're at, like, maybe it's like 0.35 or

Ian:

Yeah. Okay. Oh, that's alright. So that's what that's what I was wondering.

Ian:

But oh,

Ian:

there is yeah. There's there is an 8.1, but it might not be,

Aaron:

Yeah. I haven't seen anything talk about

Ian:

that. Okay.

Aaron:

Yeah. But yeah. So we run we run, like, point Point upgrades. This is this is all shaky, so nobody quote me on this. And don't send this to my boss, Holly, because it is kinda shaky.

Aaron:

We run point upgrades on on all the databases. Like, we keep you up to date, basically. And so there are stats somewhere, and I'll see them fly through some channels of, like, how many databases have rolled to 0.34 to 0.35, that sort of thing. Right. And, of course, you know, Vitesse is managing most all of that, like, That orchestration kind of stuff.

Aaron:

But, yeah, we we keep we keep people up to date on on the point releases, and that's how we see regressions so quickly because we'll see you know, we'll bump, you know, a 1000 or 10000 databases from Yeah. From 30 to 31 and be like, oh, stuff got noisy here.

Ian:

Right.

Aaron:

So

Ian:

Yeah. I don't know. We'll see.

Aaron:

I mean not great.

Ian:

Maybe it is a weird I mean, there are tons of queries, and there are tons of weird queries. So it's possible. There's, like I know some people said, like, group buys are not It's good now, and so that's got worse.

Aaron:

So Yeah. Big source JSON documents, I think, also got worse.

Ian:

Yeah. We don't even use JSON, so it's not Or not much anyway. Definitely no queries. It would just be, like, returning it if we use it at all. We have we have serialized PHP In text college

Aaron:

Yeah. Yeah.

Ian:

Because it's old school. It's old school.

Aaron:

There's not a lot of documentation about that. Yeah.

Ian:

Free JSON, but that wouldn't hurt database because that's all stuff that comes up with the app player. So, like Yeah. I don't know. So could there be, like, a query PHP. That, Like, causes a huge memory, like, usage,

Aaron:

but doesn't take

Ian:

CPU and time. Like, I don't know. It's so weird to be like, Yeah. Like, a huge sort that uses 5 gigabytes of memory

Aaron:

that Shoves it all into memory.

Ian:

Use CPU though and doesn't cause the next instance to file And then doesn't release when it's done, so then I was like, well, maybe there's, like it's something dying at a weird point where, like, The memory is not free or whatever. Like bad. Very weird. I don't know. It's very, very weird.

Ian:

So Yeah. We're gonna see. Hopefully, The, DBA guys can they seemed quite confident in fixing it, so we'll see how it goes. But,

Aaron:

That's how they sell you $20,000 And

Ian:

you see, when you come to them desperate, you're like, I'm You're

Aaron:

not buying 20,000 for me. I told you. I don't know what's going on.

Ian:

Exactly. So I don't know. So then I had next I just wanted to cover this too because I always, at this point, whenever he gets to database stuff, I hate I I love databases. Like, databases are one of my things I'm quite interested in. Then I really enjoy databases, but when there's database problems, it's like the kind of thing that's like, maybe I should go get a bodega.

Ian:

Maybe I should just do something else. Right? Cause like the database, the, all the customers, the stress, you understand that some plant scale gets this right. They get it. So Then I get into, like, Dynamo DB mode.

Ian:

That's where I go. I go Dynamo DB and I'm like, if I just shove everything Dynamo DB, it's infinitely scalable. It's literally you couldn't possibly shove and you could never hurt this thing. It's it's infinite. It's actually infinite.

Ian:

And then I go down that path, But there's all the then I have, like, 40

Aaron:

system of, like

Ian:

that's all the stuff that has to hang off of it so you can, like, run a report or, like, all that ever. Like, now you have these 20 systems that are all connected to it to Actually make an application, which that's the point that's terrible. Mhmm. But the data part, I'm like, oh, man. It's even like old school.

Ian:

Like, screw all those tables and shit. Just shove everything in 1 table. Denormalize everything. Like, that's me. I love that.

Ian:

I love that stuff. Yeah. Let's denormalize it.

Aaron:

No. Let's

Ian:

put let's shove it all into weird stuff. I love that.

Aaron:

Alex Debris is has gotten to you. Don't let his don't let his smiley and happy persona trick you into going no sequel. With the tiny caveat I don't know anything about NoSQL, but the tiny caveat that all you have to do is figure out your access patterns up Front, before you do anything else I mean, now that you're 20 years in, you you I could do that. You'd be fine. You would be fine.

Aaron:

But every everyone else is like, oh, no. You don't yeah. You can you you just need to know what queries you're gonna run. And I'm like, when when does anyone ever know what queries they're gonna run at the beginning? Nobody knows.

Ian:

So I've been reading I didn't know anything about this guy, but I found him randomly

Ian:

He's awesome.

Ian:

On Twitter. Yeah. He seems like a great guy. I bought his book. He's a genius.

Ian:

It's, like, 400 pages of, like, DynamoDB. I I tweeted at him. I'm like, listen. This is, like, the only resource I've ever seen about DynamoDB that has, like, Front to back, soup to nuts, this is the whole picture because it's always like here's an article or here's a thing. Obviously, AWS Docs are useless.

Ian:

Like, there's no place to just see, like, the whole picture. Right? So great book. If you're just even interested in it, Highly recommended. Well, Dave, you could link his book in the show notes.

Aaron:

Yes. And follow

Ian:

him on Twitter

Aaron:

too because he's he's extremely smart.

Ian:

Start following him. Yeah. So very, very interesting book and I feel like it lays it out really well. But yeah. So I'm like the whole time I'm reading it, I'm like, well, On the one hand, this is perfect for me because I know our data patterns, like, super well.

Ian:

Right? And then on the flip side, I'm like, how does anybody else use this thing? Because unless you have been building this app for, like, 20 years, like,

Aaron:

what you're talking about? Yeah.

Ian:

How the

Ian:

hell do you know all your data? You just found it.

Aaron:

Idea. Yeah.

Ian:

I mean, Maybe if I'm just like an Internet of things and I have a light bulb and, like, the light bulb only ever sends me, like, you know, data logs or, like, You know, whatever. It was on. It was off. Like, it's very straightforward. Maybe.

Ian:

But, like, a real application that's like a b to b SaaS type app with, like, know, what you would normally have, like, 90 tables or whatever to build, and, like, I don't know.

Ian:

How do

Ian:

I know my data access patterns It's officially funny. What I have

Aaron:

to do.

Ian:

And and this

Aaron:

I just I need to read his book because I truly don't understand

Ian:

Yeah. You should sequel. You should get a lot of discount.

Aaron:

I just I just don't, like, I just don't understand no tables, no joins, no I'm like, what?

Ian:

Sounds glorious, honestly.

Aaron:

What is it then? Truly, what is it? And I just I haven't, you know, I haven't come up with an answer.

Ian:

Yeah. I mean, it's just an infinitely scalable place to dump piles of data, which is kinda awesome. Like, I just love that idea.

Aaron:

If you don't wanna if don't wanna migrate to another provider that is, like, a hosted MySQL provider, you do not wanna migrate to DynamoDB.

Ian:

I could never migrate to it per se.

Aaron:

It's gonna be couldn't be.

Ian:

Yeah. No. No. This wouldn't be a migration. This would be more of, like, The, you know, future super version of HubSpot, which is like, we architected, could possibly use that.

Ian:

Right? But it is still like, It's so far away. It's like and it's also like it's it just requires a bigger team than we have, I think, too because it's just like you just need these other systems, And then those other so now we've gone from, like, yeah. We gotta make sure, like, this one key system's up to, like now there's 5 key systems and, like, making sure that all works, and dependent on AWS for those systems and the support's terrible AWS and all that stuff?

Aaron:

If you had a multi tenancy in a single schema, you would be perfect For PlanetScale because we could shard I mean, we were we we can do a 1000000 queries a second. Like, we don't have any problem with that. We've done that, but the multiple schemas, We just don't have a we don't have a pricing solution for that, which is a real pity because we price, like, per database. You know?

Ian:

Alright. That's not gonna work For sure.

Aaron:

Not gonna worry. Can't pay can't pay 39 times 600.

Ian:

Right.

Ian:

Just the email. This is old school because it's like, you know, we, it was an on premise app became a cloud app. So, like, you could rearchitect the whole thing to have tenant IDs and whatever, or you could build individual databases. So that's what we did. And I actually really like the individual database.

Ian:

There are a lot of upsides to the individual database. Like, I feel like people just auto don't do that, and they're just like, yeah, You know, tenant IDs in in the tables, but it's but it is super nice, to have that at times where it's like somebody wants to export. It's like, yeah, that that's Nothing. It's easy. Boom.

Ian:

1 computer you want.

Aaron:

The whole database, you're you're through the super admin. You could look at.

Ian:

We got, like, a crazy heavy setup on a separate server. Like, we could do that. And

Ian:

Yeah.

Aaron:

So there

Ian:

is some cool stuff with it, and just also

Aaron:

things like you'll never

Ian:

Yeah. You'll never have a clear error.

Aaron:

Yeah.

Ian:

Right. Like, there's no query I could write that will expose another customer's data. Just literally impossible. So that's super nice. Tell me

Aaron:

trade it for you trade it for op like, demos of Opcity. Like, you gotta run a migration across 600 Yep. Databases and make sure everybody got it before or during the code release for 600.

Ian:

Yeah. It's a whole process. Yeah. So for us, it wasn't too bad because again, we since coming from on premise, like, well, each of our customers actually gets their own server. So we have they each have their own front server, like a very tiny AWS, like, t three, whatever.

Ian:

But, so they're already like it's like we can already roll out releases per customer and which is also kinda nice about our current architecture.

Aaron:

That's kinda nice.

Ian:

Versus pure SaaS where it's like, well, we're just rolling out, and everybody gets it. And if there's a problem, everybody gets it and all that kind of stuff, and, yeah, having to make sure you Hot migrate, whatever, all those things.

Ian:

Yeah.

Ian:

So, yeah, we have databases in different states and things, which is kinda cool at times. But, yeah, their it's perplexity is annoying.

Aaron:

I love hearing about this because you're, like, running a you're running a a real business. Like, capital r real real business. Real.

Ian:

So it's not

Aaron:

it's not just like it's It's not just like, hey. Why don't we switch from, you know, Netlify to Vercel today? You're like Right. F that. I got 600 databases and, You know, 600 t three servers sitting in front of them.

Aaron:

Like, I'm running a real business here, man.

Ian:

I got it.

Ian:

And I just

Ian:

serialized PHP in a freaking column.

Aaron:

Alright? I wouldn't lower the lead with that, but, yeah, we know that is the mark of, like, I've seen some things. I've been running this business for a long

Ian:

This is how we had to do it back in the day. We didn't have your nice little JSON. It was like, well, I could put it in XML, which is super annoying. It has its own weird and, like, also no good XML parser. I could put it in XML theoretically, but, like, not actually a nice way to get it there or a nice way to get it out, or I can just see it last week.

Aaron:

But I never thought I'd get hit with the we didn't have JSON in my day.

Ian:

We did not have JSON in my day.

Aaron:

We didn't have Jason in

Ian:

my day. Crazy, man. I know. It's so crazy.

Aaron:

Oh, bad. Stuff still in there.

Ian:

It's what not like I mean, lot yeah. Whatever. There's tons of parts we've updated in different ways, but there are still some parts that have some stuff like that. And it's like, yeah, whatever. It works.

Aaron:

Man, the first time I felt Super old in web development was when somebody said, where do you host your front end? I was like, where do I host my front end? My front end lives in the browser. The client has my front end. What do you mean where I host my front end?

Ian:

With my back end altogether on the same server.

Aaron:

I send the front end to the client. I don't understand the question. That's Yeah. But didn't have JSON back in the day. That's a different, yeah, Different era.

Ian:

Whole different world back then. So it is fun wild. Playing with this newer stuff I've been messing with and being like, yeah. We got JSON. We got we can query the JSON.

Ian:

We can do all kinds of stuff. I don't know why databases don't make it nice to query the JSON. There's still, like, a little disconnect between, like, everybody's got these JSON columns, but then they don't.

Aaron:

Wonky syntaxes and stuff?

Ian:

Yeah. And or even just doing at scale. It's like, yeah, you can query into the JSON, but they're always like, you really shouldn't query into the JSON. Like, No. Or you gotta build a computed column

Aaron:

or whatever. Yeah. You do have to do that. Yeah. I'm

Ian:

saying, like, it's a whole thing. And a computed column is kind of a BS because, like, then you're because here's the thing. This is all

Aaron:

one of these for computed columns.

Ian:

I don't know. Compute it. My favorite. I mean, I love it. I'd love a computed column.

Ian:

Right? It's fine. But here's the thing. It's also, like, fake because for a real use cases, it's useless. Because, like, we

Aaron:

have real use cases, it's useless.

Ian:

Because here's the so here's our use case, right, where it's totally useless. So one of the problems we have

Aaron:

Just for the record, this is one use case, but here

Ian:

it is. Very common use It's in real business applications that you won't find with these people building their little JavaScripty things, but real real businesses have this problem, Which is

Aaron:

that Okay.

Ian:

We have big customers

Aaron:

Yeah.

Ian:

Who want a lot of custom fields.

Aaron:

Yeah. They do.

Ian:

And MySQL has a limit on how many columns you can have in a table, and it's based on, like, the width of the thing, whatever. Yep. So it ends up being in practice, like, 250 or something like that, generally speaking. Depends on the width of the columns. Ball.

Aaron:

Right. Row size, I think. But yeah.

Ian:

Yeah. So right. The rows can only be so wide. So, like, depending on how wide you make the columns, whatever. So, so okay.

Ian:

So, oh, yeah. I'll use JSON and I'll use computed columns. But you can't because a computed column is just a real column. So you have the same exact limit with a computed column as a real column. Same exact limit.

Aaron:

Back up. Back up. Back up. You just you you explained some problem, and then you're like, JSON, and you said it doesn't work. So what if what what what was

Ian:

the middle that there were trade offs.

Aaron:

But what is the middle so you put all of these custom fields into a JSON column

Ian:

Right. You put just Blow

Aaron:

up a big blob.

Ian:

And what are you doing do at some point?

Aaron:

What are you doing with the computed columns? You're trying to then parse it back out into Into computed collogs?

Ian:

Well, that's what you would have to do. Right? Uh-oh. That's not what you have to do, but that is a alright. So if you want to efficiently search with an index Inside JSON, what's the solution?

Aaron:

You put a computed column.

Ian:

Yes. Exactly. So you have 200 separate fields Or 400

Aaron:

Why why are you no. No. No. No. No.

Aaron:

No. This is Alright.

Ian:

Give me the structure. Give me the structure, baby. We're learning. No. No.

Ian:

No. I'm excited.

Aaron:

This is nonsense. So dummy. You you drop a big blob into JSON. Right? So you got your whatever.

Aaron:

You got your 50 is it 200? Maybe it's 200 fields you drop into JSON. Right? Presumably, you've got a few Hot columns or hot fields that people search on. Right?

Aaron:

So we'll say, like, category, I don't know what you do, but category t shirts. Right? It doesn't matter. You're you're e com now. So category, size, you know, price, whatever.

Aaron:

If those are the 80, 90% use case, those become first of all, those maybe become top level columns, But, like, you know, manufacturer and material and all those other things that nobody ever searches on, you don't need to search on. You can still You can still search on the JSON blob without breaking it out into an index column. That's fine. Also, you don't have to create The column, you can just put a functional index on it. So you could, like you you don't need to have the column

Ian:

in your area. Limit. Indexes are 64. There's less the smaller limits.

Aaron:

Yeah. It does have its own limits, but you don't have to, like, break them out, and you could put 1 on, you know, size and Category and whatever as it computed. So there there are ways around it. But if you're shoving it all in JSON and then recreating columns out of it.

Ian:

Okay. I think that's not Here's what I'm gonna tell you. So so here so here is you're you're I'm gonna I'm gonna bust out the real audio. This is the real deal.

Aaron:

Tell me.

Ian:

Tell me.

Ian:

Here's where here's where you are Yes. Incorrect.

Aaron:

Wow. Well, here's where I don't have all the information.

Ian:

Let's start there. So here here is the here is the thing. So HelpSpot. Right? We have h HR department's using it.

Aaron:

K.

Ian:

We have ecommerce retailers using it. We have software companies using it. See. Right? We have manufacturers using

Ian:

Yep.

Ian:

Yep. Yep. They are adding custom field for their own uses. I have no idea what they're doing. Right?

Ian:

They're just like custom field to store an address, custom field to store, plan type or whatever. Right? Okay. Fine. So the only way to then do this is I have to then ask them in some form or another, Will this be a column that you're using a lot and need to search?

Ian:

Right. It starts to get complicated in terms of like, yes. If I have a predefined use case, I can define those indexes or maybe there's I make things into real columns. Right? Whatever.

Ian:

Mhmm. But when the customers and the users are just out there doing it on their own, They don't know that a filter means that they're going to have to query an index and blah blah blah. So, yes, could we then architect some type of, like, we're tracking what Fields are getting filtered on and things like that potentially, but now okay. So that here's just 2nd No. Definitely.

Ian:

But so here's the thing. In our current architecture, That could work. So our current architecture builds columns. That's what it does. Great.

Ian:

Real columns, which has tons of awesome benefits because you have, like, the data type. It's got indexes. It's it's sore. It can all those things. It's just better.

Ian:

Right? Yes. So if you're building a pure SaaS app though with a multitenant in a single database, You're again back to a situation where, like, people are building custom fields, all different uses. I mean, now I would need thousands of index. Right?

Ian:

I can't it's impossible. I can't index that many things. So then you have, like, Do you do, like, the EAV type situation? Do you just do you know, my current thinking on it is more like I'm gonna find other things to sort of Use as indexes, like Right. Date ranges, and then, like, let the

Aaron:

database churn

Ian:

through the JSON in the smaller dataset, right, or whatever.

Aaron:

Mhmm. Mhmm. But

Ian:

it's very messy. The custom fields are one of these things that are just a disaster kind of when you hit real people doing real stuff with it, and there's sort of, like, a lot of different use cases. Like, if you have a a more defined use case, it's easier, but, like, if you have this people all over the place doing all different things, It's hard to narrow down how to how to do that, so I don't know. I don't know if you have other other ideas there. But Okay.

Aaron:

So this is good. This is good.

Ian:

This is we're deep in database land.

Aaron:

This is good content. So I I think okay. This so that is actually that is a good, I don't know what the word rejoinder is. I don't know what

Ian:

that word is. I like this guy.

Ian:

I don't

Ian:

I hope we're I hope we're making up words here now. I love it. A rejoinder.

Aaron:

Need to do good idea. Define A rebuttal. Rejoinder. Rebattle's what I was looking for.

Ian:

I hope we just invented a word here. Great.

Aaron:

A rejoinder is a reply, Especially a sharper or witty one. Holy cow. Rejoinder. That was a rejoinder.

Ian:

Ladies and gentlemen, this is a man who just had twins And I didn't days ago.

Aaron:

Arrived rejoinder. That's amazing.

Ian:

Oh, I was just trying to I thought you'd be

Aaron:

you're Yeah.

Ian:

You're just pulling this out.

Aaron:

Oh, that's that's the show, ladies and gentlemen. That's it.

Ian:

I know. I know. We should just end right there. Mhmm. Totally.

Aaron:

Wow. Well, Ian, good rejoinder, I must say, on the, on the custom schemas thing.

Ian:

So I

Aaron:

think the interesting part is what you'd say, like, you know, 1 row let's say 1 row is, You know, storing something about, ecomm, and the next row is a different tenant, so it's storing, like, HR data. And so the JSON BLOBs are totally different. So how do you define Right. How do you find what the hot attributes that you're gonna index are? That is interesting, and I don't have a good solution to that.

Aaron:

However Mhmm. I wonder if you could get away with like, you would still have to know that for tenant 1, you know, the the hot attribute is, like, plan type, and for tenant 2, it's like T shirt size or whatever. You would still need to know that, and you'd have to either ask that or infer it based on their usage, which I think would be interesting. But I wonder if you could store the attribute name alongside the JSON and create, basically, like a, Kinda like a obscured or abstract column. It's basically like search value 1.

Aaron:

And for some people, that pulls 1 key out of the JSON, and for other people, it pulls a sec or, like, a 3rd key out of the JSON. I would have to look into that because if that's possible, that would Make very a very interesting video for PlanetScale.

Ian:

Mhmm. Well, there we go. That's a good job. Okay. Yeah.

Ian:

Yeah. Yeah.

Aaron:

I mean, I appreciate that.

Ian:

Are, like, a bunch of different I mean, obviously, there's like I mean, I've you know, this is an area I've gone pretty deep on. So there's like the EAV tables, which are interesting because you get a lot of the sorting and different benefits, but are

Aaron:

actually pretty copied

Ian:

the query. Yeah. There's a lot of weird querying that has to go on. Yeah. And then there's, like, dump dump everything in JSON, and then there's, you know, building columns.

Ian:

Then there's, like, obviously, in a multi tenant single database, you can't really build Dynamic columns like we do currently, but you could do the like, hey, there's there's 50 custom fields. That's what you get. And there Right. These are 50 field 50 actual columns in the database or whatever. I think in modern apps, you don't I you see that all the time back in the day.

Ian:

You don't really see that anymore. I think things are fast enough. My inclination is that things are fast enough now that as long as you have a reasonable Something you can index on even if it's a date range that gets you within some kind of ballpark that for all, but the maybe mega huge customers that think that's probably gonna be fine, that's sort of and, you know, with some decent caching of queries and things like that, that you can get pretty far, but That's the way I've been approaching it. I mean, the JSON is great because it's so flexible. It's, like, yes.

Ian:

And you can have infinite custom fields, and you can they can be whatever you want. They can be all kinds of weird shapes. They could or JSON themselves maybe if you wanna have, like, an address that understands the different lines of the address or something, like, whatever. You got all the different cool things, which is awesome. So I think there's some good trade offs there, which is why for new stuff, I'm leaning most likely doing just the JSON blob, but It is does have its own conundrums, which is where it gets me into, like, dump everything in DynamoDB, baby.

Ian:

Just dump it in there. It's a big empty bucket. Infinite. No bottom.

Aaron:

I hate to say it, but Postgres has a better index type for JSON than my CPU. So I think it's good. Yeah. So we have similar columns, so they have JSONB, we have JSON, but we only have indexes via generated columns, Or you can put an index over a JSON array, which I understand ceases to be valuable at some point, but Postgres has a A gin, g I n, general inverted something. Oh.

Ian:

I think I've seen

Ian:

it a

Aaron:

little bit. Basically, like, you put an index on the blob, and it kind of Figures out, like, so it's not a B tree. It's not a full text. It's some other, like, structure. And they kind of figure out, like, yeah, well, you know, we'll speed up your queries with This gin index, but we just What's your

Ian:

thought on Postgres?

Aaron:

Man, I don't have a lot of thoughts, and this is, like, This is one of the things I've been kind of struggling with, and I put it on the list at the very bottom. We can get there or not, but, like, I don't I just don't have a lot of thoughts on things I don't use a whole lot, and I don't use a lot of things. Right. And it's kinda hard because people are, like, You know, I'll make a video on my personal channel, and people are like, hey. Can you cover Symphony?

Aaron:

I'm like, no. I can't. Yes. I like, what's your opinion on Laravel versus Next. Js?

Aaron:

I'm like, don't know, man. Laravel's probably better, but I don't use it. And on PlanetScale, they're like, make a video about MySQL versus Postgres. I'm like, I've never used Postgres.

Ian:

I don't

Aaron:

know anything about it. Right. So I don't know. I think From what I understand, Postgres is much harder to operate in scale at, like, the operational level, but that doesn't matter to to a lot of people. Right.

Aaron:

And so I think a lot of, like, DBAs and DevOps and sysadmins and those kind of people prefer the scalability and, like, I don't know if it's reliability or, like, simplicity of MySQL versus Postgres. And there's something like, there's some weird thing about the the internals of the way that Postgres works that makes it difficult Mhmm. For it to either scale or shard or be horizontal or something. And I just don't know. So

Ian:

No hot takes there then.

Aaron:

No. No hot takes. I'm like, I don't know. If you use it, it's fine.

Ian:

Yeah. I always feel like on paper, it's Better like, you're like, oh, it does it. Yeah. Like, it has this fancy gin index. Right?

Ian:

And that looks cool. Like, there's all this paper benefits I feel like, but then yeah. I don't know. I used it once for a production system, which was a gigantic mistake. Cause I was like, Oh, this is the new hotness.

Ian:

Let's use this thing. This is like 10 years ago, whatever, on a thing, Taylor bill, actually Taylor of Laravel And

Aaron:

Heard of him.

Ian:

What whatever. It was like, well, use Postgres, blah blah blah. So first of all, the query language is a little bit different, which I don't care for. I'm on my SQL SQL server query language guy. I'm not a Oracle Postgres guy, so that's a little weird to me, but whatever.

Ian:

Fine. But yeah. And, you know, and it went down, and I'd had this guy, like, on contract who's, like, a postgres guy ostensibly. Yep. And he was like he he said he had all set up, so if there's any issue, we could restore blah blah.

Ian:

So I was like, okay. Well, we need to restore because shit's down. It's all broken, And customers are mad, and he's like, oh, man. And it took him, like, 12 hours or something. You know, it was like a whole production.

Ian:

I was like, you know what? Like, this is just I can't be using these tools. This is

Ian:

a kind

Ian:

of DynamoDB thing too. Like, I know MySQL. I know SQL Server. If something goes wrong, I Get in there, and I could do some shit if I have to myself, and which is sort of a bad attitude. There's the whole bootstrapper thing.

Ian:

That's a whole other thing we could talk about someday, but, like, Ultimately, I feel comfortable that I could get in there and at least hack around and half ass fix something if I absolutely had to. Whereas, like, this whole post Chris, I have no idea about it. I'm just gonna be googling random shit and have no idea where to even start, if there's a problem. So that's what's a tag anyway for that.

Aaron:

Feel. And I'm the same. I grew up I grew up on MySQL, like, literally, since I was, like, you know, 10, 11, 12. That's what I've been using. It's just like, I I know it.

Aaron:

I Like it. It's been around for a 1000 years. It's kinda how I feel about PHP. It's like, yeah. It's good.

Aaron:

I like it. It works. I know it. I like it. It works.

Aaron:

It's been around, which means it'll be around, and it does the job that I want it to do. So

Ian:

Yep. Yeah. There we go.

Aaron:

I like it. I'm

Ian:

I'm led

Aaron:

to believe that there are great things about it, but, yeah, it works.

Ian:

Right. The who has the time and energy and effort to, like, go and that that is one thing that, like, customers and things like that clarify for you to some degree because it's like, yeah, there's just no time, like, To go over there and, like, the risk and time and everything, and, like, that's something you might do. Like, I'm sort of getting started on it now for, like, the first time in 20 years. Right? It's like the kind of thing, like, you can't just be doing that every year.

Ian:

It's like, well, I'm gonna go try Postgres now. Like, you know, no. Like, you have 8,000 other things to do. Like, you're not gonna try Postgres now. You're just gonna do what you need to do to ship the next batch of features or whatever you're doing.

Ian:

So yeah. I think we should talk about the thing you put at the bottom because that's interesting.

Aaron:

Yeah. That leads that leads right in right into this. Yeah. I've just been having this thought recently and realizing that, like I think it's always been true, but, like, Crystalizing and realizing that my, like, goal, the thing that I'm aiming towards is not to be a great engineer, And it's not to be a great software developer. And what you said there at the very end is, like, a 100% how I feel.

Aaron:

Like, You don't have time to do it because you're work at like, you're working towards some other goal, in your case, like, serving customers. And I think my goal is to just, like, Make stuff, and it always has been ever since I was ever since I was very young. I've just loved making things, and software just happens to be, like, the The mechanism by which I make stuff. And it's Right. Weird because I see, like, I see on Twitter and, I, we'll just say Twitter.

Aaron:

See on Twitter all these people arguing about, like, the most technically pure way to do something. And I look at it, and I'm like, y'all, I don't care about that at all. And then, you know, I'll make a video either on either channel, and people will be arguing in the comments about Whether something is like a capital g good idea, and I'm like, I don't know. It works. Like, what's the problem?

Aaron:

It works. And, you know, people like spending hours and hours and hours customizing their text editor, and I'm, like, I just I open PHPStorm, and, like, I get to work. And I don't know. I feel a little I feel a little, I don't know. Like, silly or embarrassed sometimes where I'm, like, yep.

Aaron:

Whatever. I just you know, sometimes I hide stuff in PHP storm because it's annoying, but literally, that's the extent of, like, my customization of my, you know, VIM or whatever. I've never used Vim in my life. I use

Ian:

Vim is ridiculous. Forget it.

Aaron:

And I use I I use a I use a Git GUI, and I don't feel

Ian:

bad about it. Get GUI. No. It's like, well,

Aaron:

I don't care. And so Give me the gooey. That that's the thing that's crystallized, and I feel like there's a good tweet in there somewhere, that'll that'll get that'll get, like, That message, like, really sharp. But, like, my goal is just I'm my goal is not to be a soft like, a great software engineer. My goal is to make cool things.

Aaron:

So Yeah. That that's been I've been ruminating on that.

Ian:

There's only so much time. Like, that's the thing. There's only so much time, and, like, You have to figure out what you want to spend your time on, and you can't be helping customers achieve their goals And be the greatest Laravel PHP developer in the world. Like these are just conflicting goals. You can't do them both.

Ian:

There are, you know, very ultra rare exceptions to some degree of people who are just, mostly people who just absorb the programming side really quickly and well. So it's like, oh, I read this thing once and they forever remember it, and they're, like, super excellent pro like, they just have sponge in the information, but still, you only have so much time, and you have to pick what you wanna do with it. And, like yeah. And and that's where, like, people working in huge companies, like, that's great for them. Like, it's like, I'm responsible for this class or this little section, and I'm the world's foremost expert in this thing.

Ian:

And Yes. I don't have to worry about anything else. Like, nobody's calling me. Nobody wants a new feature. Like, I just keep this little thing running or even, you know, moderate sized thing, but I'm the expert in it, and that's it.

Ian:

But, yeah, if you're more entrepreneurial, that's not always a trade off you can make there. It's like, yeah, I can't be the best at lots of I can't be the best at anything. Like, I'm not the best at anything, period.

Aaron:

I'm not the best I'm not the best video editor. I'm not the best database person. I'm not best Laravel person. I'm the best open source person. I but I do a lot of those things pretty well, and, like, that's what I, Like, that's what I want to be doing.

Aaron:

That amalgamation of, you know, 6 different things is what I want to be doing. Think I just feel self conscious sometimes when I see people talking about, like, see people embedded, let's say, in, like, a, you know, a Facebook or Netflix or something, talking about, You know, all of the things they go through to be the best software engineer that they can be, and I'm like, oh, that ain't me. That is just that is just not me. I've got too much other stuff I wanna be doing.

Ian:

Well, you know, it's funny too because there was, I was listening to This morning, the Caleb and Daniel released a no plans to merge. I'm a sorry to listen

Aaron:

to it. Yeah.

Ian:

Right. So I was listening to that today, And, they talked about us and this show a little bit, and one of the things they talked about was that they were surprised how much I code. And I know. I feel like this is one of these things where it's like, you know what? I I'm not an excellent programmer, but I do know a lot about The problem space of my particular little area, and, and I've seen a lot of things when it comes to, like, what users actually do with software and things like that.

Ian:

And so, Yeah. I'm, like, building the software because, like, that's what got me into this to begin with. It's like I like building software because I enjoy it. I enjoy The artistic elements to it, I enjoy, like, connecting what users wanna do with what the technology allows, and I'm not always doing that in, yeah, the the What the Twittersphere would, you know, give their huge thumbs up to. Right?

Ian:

But also, it's sort of awesome because now that's less important than ever in a lot of ways because, like, Laravel is gonna keep me from doing anything, not anything super stupid, but there's a lot of guardrails in place already, right, around, like, what I can do and how I should do it, And so there is a lot of help there that I didn't have 20 years ago when I first did it that it was just wild west. It's like, oh, yeah. Now it's

Aaron:

just like how the PHP class it ended up in the database. Exactly. Yeah. So,

Ian:

there's all this good stuff now, and it's like, oh, yeah. It's like fun to be in there and doing it, and so, like, I can make that decision of like, yeah, you know what? Like I could hire somebody to like do this, but there is an element at the foundational level of an application that Embedding the other things I know that are not programming related, but that if they're not in at the foundation impact all the rest of the whole application that me doing right now is is very useful for. And at some point, I don't need to be the person who dots every I and crosses every t, but At a certain point early on here, it does make a lot of sense for me to be doing it since I know how to do it, and mostly, I just like doing it. So,

Aaron:

that's fun.

Ian:

Yeah. So fun. Yeah. It's fun.

Aaron:

Yeah. I I think there is, like I think there is a big, like, The ethos of Laravel feels more aligned to how I feel, and the ethos of, let's say, like Next. Js feels very, like, Not focused on how fast can we ship something of value, but how technically interesting can we do a certain Task. Right? Laravel feels like, hey.

Aaron:

We these things, they're kind of facades. They're kind of static accessors. Like, Doesn't really matter. It's gonna make it fast, easy, and testable, and I don't care what you call it. Like, it doesn't who who cares?

Aaron:

Just, like, keep going. They're like, oh, the user the user model can save itself? Yeah. Yeah. It doesn't matter.

Aaron:

Just, like, just keep going. It doesn't matter. Just go faster. And I feel like with, you know, other frameworks I don't want to pick specifically on next, but other frameworks, it's like, well, technically, You have to do it this way. It's like, I don't I just don't care.

Ian:

Yeah. I know. We we're always kicking the JavaScript people on here, but I just feel like to me, like, it's like Vercel. Like, Vercel Sell is the poster child first to me because, yes, they're just, I mean, they're ostensive. I mean, for literally like a year and a half, I didn't know what they did.

Ian:

Like, I didn't

Aaron:

know the company solving? Yes.

Ian:

Know what the company did. They're just always, like, shipping design stuff and JavaScript things. I'm like, I don't know what you actually do. So, okay, there are some kind of hosting thing for Next, I guess, or whatever. Fine.

Ian:

Like, that's as far as I've gotten. They host front end stuff. Great. And they still already showed the other side. End.

Ian:

So there's, like, all this money in that world. They are back to where do you open for them? Money. So much money. I just feel like there's so many people that are, like, have all this time to, like, ultra optimize on, like, this weird shit.

Ian:

And it's like, In

Ian:

the

Ian:

end, you know, when all the money runs out Yes. It's just gonna be back to, like, what did you do for the customers? What did you ship that People found valuable and were willing to pay money for, and then all this stuff will go away just like it always does, like, every cycle where, like, whatever whatever the hot thing is Ruby at one point or whatever, like, this whatever hot thing, all the money is in there, and everybody's arguing about what the best way to do whatever is. And then it all goes away eventually, and only the people outstanding are people who, you know, did something that people found actually valuable and not just

Aaron:

sort of Like Shopify. Did you see their Black Friday numbers on Ruby?

Ian:

It's crazy.

Aaron:

They're on rails in my sequel, and they did Right. Like, Unbelievable numbers. It's like, y'all, this all this boring stuff still works. Right. Yeah.

Aaron:

Well, that's it. That was super interesting, and

Ian:

they have, like, a mix of 5.7 and 8 different MySQL clusters and, like, all kinds of stuff going on. It's, like, amazing how far you can push stuff if you know, when if you ship something valuable enough, then it's like, yeah, whatever. We can just solve this problem with money. Like, we just hire all the good engineers, and, like, they just somehow make MySQL scales to 8 gazillion transactions a second Well,

Aaron:

HubSpot HubSpot's also on MySQL, and they're using Vitess. They host So, you know, they they run their own stuff. They don't have any affiliation with us, but they're Mhmm. They're running I think I just did an interview with them before I left, for for PlanetScale. And they've got, I think, a team of 5 engineers, and they're running, you know, hundreds and hundreds and hundreds of databases.

Aaron:

And it's, like, That's pretty awesome. I feel like there's a like, the image I have in my head is, like, what is the, like, what is the thing on the horizon? Because I feel like The thing that I am, like, headed towards is building something cool, and along the way, I'm, like, becoming a better developer. Right? But the thing that I am not heading towards Mhmm.

Aaron:

I'm not heading towards, like Right. Become a 10 x engineer or whatever. If that happens along the way, fantastic. Bully for me. But, like, I'm my my focus on the horizon is Build things and along the way, pick up skills.

Ian:

Yep. Yeah. I I'm the same way. Definitely. It's like yeah.

Ian:

The the Programming skills are in service of Yes. The other goal. Right? Like, whatever the the main goal is. Yeah.

Ian:

And I think it's sorta interesting because we're in this weird time. Like, on the one hand, it's like there's all these guardrails and things are easier because you have these frameworks that makes them easier. Then on the other hand, like, everything's also way more complicated. Like in the old days, there was like a database and a web server, and that's it. Like, there was there wasn't even anything else you could do.

Ian:

And now there's like, well, should I put my, you know, search engine on do I use the built in right SQL one, or should I Have a nice search, or should I go to a Milly search, or should I do this thing? And the other thing, like, every every single component is like a this whole decision tree of, like, do I wanna outsource this or Hosted myself or build it myself or, like, whatever. There's all this stuff, customer expectations of how fast things are and all that.

Aaron:

Yeah. It's all it's all gotten more complicated. Yeah.

Ian:

It's so much more complicated too, but oh, man. So I don't know. But you're it's, yeah. It's I don't know. There's a lot.

Ian:

Yeah. We could go on a long time with just that. But Yeah. What else we have? What else we got going on here?

Aaron:

Alright. You wanna go to, my static site? You wanna go to Laravel Pulse? 3, what about

Ian:

I haven't looked at pulse too much, but I'm excited about it.

Aaron:

I think pulse is gonna be cool. Alright. You wanna go to static site first?

Ian:

We should go to your static site.

Aaron:

Okay. So I have a bone to pick with you know, sometimes you put

Ian:

these cards

Aaron:

you put these cards in, and I'm like, Hey, man. So so the card says, what's up with Aaron's crazy? What's up with Aaron's Crazy.

Ian:

A little crazy.

Aaron:

Static static site setup. So static. If we well, if we can go to the tape, I'm gonna I'm gonna rewind. We're gonna go to the tape where we talked about static site generators, and we were both like, ridiculous. Right.

Aaron:

Nobody needs them. Just use Laravel.

Ian:

Totally good.

Aaron:

And then I I come out with this great video about how I'm just using Laravel, and this card pops up It says Aron has a crazy static site in it. So what what do you mean it's crazy? It's just Laravel.

Ian:

Do you. But see, it's not. Right? Because I mean, now maybe I'm just misunderstanding what you're doing.

Aaron:

Okay. Let me give the rundown.

Ian:

Let me

Ian:

You give the rundown of what your setup is, and I'll say why it's crazy.

Aaron:

Okay. So my site, is a Laravel site full, like, not Jigsaw, not it's just

Ian:

Laravel. Pure.

Aaron:

Just a little. It's just pure Laravel. The way that I keep track of the content. So on my side, I've got a bunch of, like, Articles that I have written on my site and elsewhere, and videos that I've published on my channel and PlanetScale channel, and Basically, the crux of the site is a big list of things that I have done, and you can click out and read them, watch them, whatever. All of that is stored in a SQLite database.

Aaron:

The reason it's in a SQLite database is because I can just ship the entire site wherever I want. Where I want right now happens to be Laravel Vapor, but if I wanted to ship that to Fly. Io later or, Digital Ocean Box, you know, I could do that because it's all just, you know, self contained. So to get Static site speeds, I have Cloudflare, which you love. Active the best serve.

Ian:

Oh, man. It's up 5% today. Let's go.

Ian:

Yeah.

Ian:

Let's go,

Aaron:

you. Check it every freaking day. Cloudflare, baby. Gosh. So to get the static site speeds, I have this rule in Cloudflare that's just brute force cash

Ian:

I'm with you. Everything. With all the way. Around. Cash every

Aaron:

And then and then and forever. And then okay. So we're on we're on the straight and narrow so far. SQLite, boring as could be. Laravel

Ian:

alignment.

Aaron:

Cloudflare active investor. I love it. Okay. So not crazy yet. Nope.

Aaron:

And so when I deploy, I make a API call to Cloudflare that says blow everything up. I'm coming, baby. Right. So it just it just kills the cache. Yep.

Aaron:

And then the next time somebody requests it, it'll hit vapor. It'll run through Cloudflare, it'll cache. Yep. What is crazy about that?

Ian:

All not crazy. But that That is all it is. No. But you're leaving out a Step in the video, you had this whole other step where you do some local stuff, and then you push the local stuff to the server. But you don't need to do that stuff.

Aaron:

What are you talking about?

Ian:

Am I just am I just wrong on this? I thought you do some local

Aaron:

stuff. Sink down. Like, I I call the YouTube API and see, like, What are the new videos? How many views do they have? Yeah.

Ian:

But can't you just do all of it on the website? Like, why do you have to pull everything down and republish it up, and you could just do that on the new live website? We couldn't set up the song there?

Aaron:

So you can't write to SQLite in Vapor because the Vapor file system is ephemeral, and it's just gonna get blown away. Yeah. And so what I do locally

Ian:

a problem here.

Aaron:

Vapor's not a problem. How dare you?

Ian:

Problem. It's a local problem.

Aaron:

It's it's not a problem. In GitHub actions

Ian:

whole step that you you have a whole series of local steps, which to me is against the spirit of what we're talking about. They don't even have to

Aaron:

they don't even have to be local. I run them in GitHub actions. So when I when I push when I push to GitHub when I push to GitHub, it runs this action. It's like, hey. Has Aaron published any new videos?

Aaron:

Let's put those on the website. So part of this is, like, gathering digital detritus from all across the Internet and putting it somewhere.

Ian:

Couldn't you just do that with a cron? But, again, see, I think there's like a vapor. It's because you're insisting on being on vapor that you you can't just have a cron job in the command that does this.

Aaron:

Okay. Okay. Well, if I'm on if I'm on fly.io and then I blow the box away and rebuild it, Then the SQLite database is gone. It's SQLite. It's not vapor.

Ian:

I'm just saying I think that I think this is you've overcomplicated it to me. Just put it on

Aaron:

under complicated it.

Ian:

Just put it on DigitalOcean. Just put it on a server, and then you wouldn't have to do all those steps. You just eliminate 10 steps if you just have it on the server.

Aaron:

No. Yeah. But manage then I have to manage a server, and I have to manage a

Ian:

man in a SQL a SQL database. No. You can still use SQLite. Then then you could actually use SQLite because you can write to it on that server.

Aaron:

You can just do

Ian:

everything you're talking about doing on the server. Yes. Yes. Yes.

Aaron:

No. This is crazy. This is my system is less complicated.

Ian:

No. It's way more complicated.

Aaron:

Why is it more complicated?

Ian:

Because you should never have the push.

Ian:

Why would

Ian:

you ever push the move

Aaron:

to push?

Ian:

Unless you were changing the website. If you're, like, changing the design or whatever, fine. But, like, otherwise, you shouldn't if you just put it on a droplet

Ian:

Yeah.

Ian:

You could have a command that sucks in your new YouTube videos, whatever what whatever as Mhmm. When it finds something new, it clears the cache. Mhmm. And that's it. And you don't ever have to push anything from local ever.

Ian:

You're pushing a bunch of stuff from local, you don't ever have to do that. If it was just on a regular server, you wouldn't have to do that. You know?

Aaron:

I have to do that. Hoist it by your own batar. Hoist it by your own batar. I don't have to do that. I don't have to.

Aaron:

You have to now. No. No. Get Get You have

Ian:

to get

Aaron:

actually does it for me. Only on collections? No. It's on a schedule.

Ian:

Oh, okay. It's on a schedule. You said every time it pushes. You said when it

Aaron:

pushes it It happens then too.

Ian:

Alright. I don't know. This is very complicated.

Aaron:

It runs at

Ian:

midnight. This story is less complicated than a pure Laravel app This is so a SQL like database and a command. It's not. It's not less complicated than that. It just is.

Ian:

It can't be. It can't be.

Aaron:

It's so much less complicated than that. It is. It's a SQLite database, and I just put stuff in it, and then I can just ship it wherever I want. That's so much less complicated.

Ian:

No. But you can still use SQLite. It's just on the server. You don't need this whole local step. You could write.

Ian:

You could publish on the server. Right? You could just have it be all on the server. You don't need a local anything.

Aaron:

What is the problem with the local something, though?

Ian:

Say it's like an extra thing that I don't think you need. It's like a whole extra series of steps that are unnecessary just so it could be on a Serverless platform, but what do you care if you're both

Aaron:

in place making serverless? Because I don't I don't have I don't have any complaints. I don't have to do anything. It's Serverless.

Ian:

I'm good with vapor friend for, like, an actual application. There's a great use case for,

Aaron:

majority of the applications. I'm gonna call I'm gonna say actual was pejorative Schul, what's pejorative

Ian:

in the end of the day? Dotcom? Like, I don't know if it needs

Aaron:

99 99

Ian:

9 99% uptime. Like It

Aaron:

costs 1 every 3 years.

Ian:

Go Down for 3 hours? Like, it's not a big deal.

Aaron:

No. No. You're not playing? This is this is new. This is a generational

Ian:

thing. We've been so on the same We saw the same page this whole time.

Aaron:

Yeah. I don't know, man. I find it so Easy. And here's the thing, I don't ever think about syncing content locally. Like, I don't ever think about pulling the YouTube and the transistors.

Aaron:

Like, I have Our podcast feed, I've got both YouTube channels. I don't ever think about, like, pulling that down locally. I just am, like, writing my little articles, make my little CSS tweaks, Commit, push, and then the GitHub action's like, oh, wow. I'm here. Might as well pull down all the new content, update the view counts on YouTube, and then then we'll push it out.

Ian:

I guess I just think in the purest form of the Laravel as as static site with Cloudflare, The purest form of that is a truly pure Laravel app. If you have something that needs to happen on the schedule, it has a command and a cron, And that's what gets pushed up one time unless you're, like, making structural changes, and then that's it. And then Cloudflare does its thing. You can have whatever. You can refresh the cache if something changes, and there's no other steps necessary.

Ian:

There's like the the the minimalist version is just pure Laravel On a server and Cloudflare. That's all you actually need to do. I guess that's what I'm saying.

Aaron:

I could I could see that. I could see that as long as we're on the same page about SQLite being a nice, like

Ian:

Yeah. I'm fine with SQLite, But SQLite works on the server just fine. You can write to it on the server.

Aaron:

It does, but you can't you can't, like, By getting SQL like being a file.

Ian:

Do it on vapor because it's ephemeral. But on a server, you could do it.

Aaron:

You right. On a server, you could go in and get all the content and dump it down and bring it home if you needed to, like, back it up or, you know, Switch provider or whatever.

Ian:

Just turn on the backups for a dollar a month or whatever.

Aaron:

But I like I like the site being self contained, both like Presentation and data. I like that all being in a single

Ian:

Like, it's in the Git repo? Okay. So you're on the GitHub repo. Because even with I was just thinking with even with vapor, you can connect the EFS file system stuff, and you could put your SQLite database on that. And then you would have your I could.

Ian:

That is true. I mean, now we're getting more complicated. I think this is getting away from this. It was crazy. Yeah.

Ian:

It's crazy.

Aaron:

For an actual

Ian:

for an actual website, maybe.

Aaron:

Yeah. Right. So it may be. Yeah.

Ian:

Right. Yeah. But, so, yeah, I do I got the get aspect's sort of interesting there.

Aaron:

This self contained unit is is, It's aesthetically pleasing to me. It's, like, this is my this is my bundle of my website, content included.

Ian:

You could have Git running on the server, And you could have it What

Aaron:

do I do? Get on the repo. I don't want

Ian:

I'm saying if you wanna push it back into the repo

Aaron:

I don't want it to.

Ian:

If you

Aaron:

were, like if

Ian:

you were, like

Aaron:

it's still complicated.

Ian:

Important to you. I'm just saying.

Aaron:

It's not. I just like I just like having it all as, like, a bundled unit. It's like a it's

Ian:

more more of your

Aaron:

psychosis This is a who's on first situation is what this is. It makes perfect sense.

Ian:

This is the

Aaron:

first time I've ever used sequelite. It's great. We have.

Ian:

I've never really used it. I wanna I wanna try to use it for something. Well, I've

Aaron:

got a great video I don't know how to I don't know how to run your site off of it. I mean,

Ian:

you could even get into, like, you don't even need SQLite. You could just have, like, files. And what's it? What do you need to

Ian:

do that

Ian:

for? Like, you don't really

Aaron:

need to do it. Sushi. I tried sushi, which is Caleb's thing.

Ian:

Mhmm.

Aaron:

And it's great. It's great for a single, Like a single model, but then once you start, it broke down for me a little bit when I started, like, pulling stuff down from APIs, Like, the transistor API, the YouTube, and all that. Like, it started to break down a little bit in terms of, like, this isn't actually you can do it. It's just not super built for that. Right.

Aaron:

So that's when the, like, the crazy synchronized commands came in where I would just pull it down and write it to a SQLite database because that's what Sushi does anyway.

Ian:

Mhmm. You could put it into JSON files or XML file. You could leave it as RSS feed. I mean, there are there are options out there. If you wanna go totally

Aaron:

I've chosen the best one. Yeah.

Ian:

I know. This database seems a little bit of extra complexity, but it's not terrible. I know this

Aaron:

is a story. Eloquent, then I get to use nice. Yeah. Yeah. So I can just say, like, Oh, you clicked the videos tab, you know, content where type equal equals videos.

Aaron:

Like, I'm just using plain old eloquent, which is nice.

Ian:

You'll appreciate this since you are a man who's built an advanced eloquent tool at one

Aaron:

point. Tell me.

Ian:

But just Eloquent, doesn't it just, like, blow your fucking mind? Like, there's just times where, like, this that I can have things where, like, I could just return the query builder, And then somewhere totally else can do something with that query and add to it, and then something else, like, runs the query. And, like, this sounds complicated, but actually makes total sense in an actual use case here, and it's just, like, pass

Aaron:

this query builders into query builders for sub queries. And Yes. Yes.

Ian:

It is all crazy.

Aaron:

Is unbelievably good. I'm I'm maybe Just based on time spent with Eloquent, I'm I've gotta be up there in terms of

Ian:

Right.

Aaron:

Like, Top few percentage of people that have really gone super deep into Eloquent because of the filter builder, and at every Level at every layer. It is very good. It is very good.

Ian:

There I'm gonna go into the archive here for the for the fans of the podcast here. So Taylor, when he worked at user escape very, very early eloquent was totally different. It was all built different. I guess this was lateral three And whatever. We were hitting stuff with it, whatever.

Ian:

I I'd it's so long ago now that I don't even really remember the details, but He was like, this is all shit. It's terrible. Right? Mhmm. He literally went off, and he went off, and we were watching breaking bad at the time.

Ian:

He went off and, like, into this, like, He was just in this, like, fugue state or something where he's just, like, big brain. His his brain expanded, and he came back out, Like, a day later, maybe it was 2 days later.

Aaron:

I'm picturing Moses coming down with

Ian:

the cameras. That's what it was like. That's literally what it was like. And he was like, I cracked it. He's like and it was just, like, all built and done.

Ian:

It was like the eloquent you have today, like, the core, obviously, is a 1000000 other functions now, but, like, The chorus was is what it is now, and he just, like, had totally reinvented it. And we were all just like, woah. Like, this is crazy. Like, was it was the most insane thing I ever seen. I don't even think he he I think he he was like I don't even know how I did it.

Ian:

I don't remember anything. Like, it just, like, Flowed out of them, but, yeah. God god

Aaron:

rode with his own finger.

Ian:

It's it's like a Tupac lyric along that line. God's got his hand on his brain type of thing. Yeah.

Aaron:

Yeah. It's good. It's

Ian:

It's so good.

Aaron:

Really good. And that's why, like, That's another one of those, like, gaps I have in my knowledge when people are, like, complaining about ORMs. I'm like, Paul. Mhmm. Maybe your ORM just sucks.

Aaron:

Like, ours is really, really good.

Ian:

And it's still and then even it makes it very easy when you do have to drop down into a raw statement or something. If you need to big time. Get in and do something super special because you have a weird scenario, like, fine. You can do that, And it'll still do all the niceties around the raw element you need or whatever. Oh, and you can just use the straight DB builder, which works just like Eloquent.

Ian:

The base Builder.

Aaron:

The base builder's great.

Ian:

Builder. Like, you could just I do that a lot with just writing straight queries. So there's, like Yeah. Oh, that that whole subsystem there is so good.

Aaron:

I remember so when yeah. When Colleen and I were working on the Ruby version of Refine, which is that filter builder. I remember I remember, like, working with her. We would pair a lot, and we would work together, and I would try to Blaine, like, how something worked on the Laravel side so she could reinvent it on the Ruby the rails active record side, and it was just worse. And she would even comment, like, oh, that is that's really, like, easy for y'all.

Aaron:

Like, I gotta do all these I gotta jump through all these hoops and, Like, add these extra nodes that I'm then later gonna have to remove because I don't really have that affordance here. And I remember thinking, you know, ours is Ours is pretty slick. Yeah.

Ian:

Yeah. It really is.

Aaron:

So I've seen I've seen a lot of rails' active record, and it's good, but it's it is it's not it's not as good.

Ian:

Eloquent is so good. I feel like there's so much other stuff in the ecosystem now that, like, now like, Eloquent used to be, like, the big thing, and now it's sort of like I feel like people don't talk about it as much because it's, like, whatever it was. There's pulse, and there's all this other stuff. Right? There's all this huge ecosystem.

Ian:

Right. Right. Yeah. There's all kinds of stuff, But eloquent just itself is just so when you just work with it, it's just so nice. Just, like, even stuff like syncing, you know, with when you have, like many to many table or whatever.

Aaron:

Like, just

Ian:

stuff like that. Like, the pivots and, like, accessing another column on a pivot. Like, all this stuff is, like, there and thought out and, like, Just so clean to work with. And when you just look at the code, it makes sense. Somebody else can follow it.

Ian:

Like, it's a

Aaron:

hot sauce.

Ian:

Just love it.

Aaron:

Yes. Go if you haven't drilled down, dear listener, go, like, don't go around down there. It's, Yeah. It's very good. And the traits for the relationships are wild.

Aaron:

Like Yes. How all of that how all the, you know, 1 to 1, 1 to many, all that stuff

Ian:

is, Works. I don't know how it works inside. I I I don't know. I don't go

Ian:

in there.

Ian:

I just enjoy it on the surface. I'm like, this is great. I don't wanna know how it works. I just love that it works. It's so good.

Aaron:

You'll you'll be happy. There's no disappointment down there. If you go down there and look, you'll be, like, I am glad I met my heroes. This is wonderful down here.

Ian:

Oh, man. Alright. What else should we hit? We're we're out hour 20 here. Are we going are we going deeper?

Aaron:

Just let me hit Laravel Pulse here for a second.

Ian:

Yeah. Let's do it. Have you gone Laravel?

Aaron:

A little bit. I talked with Jess and Tim a little bit on, how they're doing some of the query stuff. And I think, also, Jess went into what what did you call it? A fugue state?

Ian:

Yeah. A fugue state.

Aaron:

Yeah. That's a new one. Also, Rehat rejoinder and fugue. I think just after we talked went into a fugue state and, like, reworked a bunch of the stuff because They're storing a lot of data, a lot of, like, time series data, which, you know, relational databases can struggle with sometimes. But Laravel Pulses, you know, this Dashboard, high level overview card based system for, like, keeping track of stats and stuff on your on your application.

Aaron:

And I reached out to Jess and Tim, and I was like, hey. I wanna write 1, you know, for MySQL in a DB rose red because it's like it approximates, You know, planet scale insights, but it's worse. And so, like, I want people to know that, like, this is a way you can look at, Like, how your database or, actually, how your queries are either missing indexes or, you know, running too much or whatever, with the idea that that will then lead to, like, oh, we should get the better version, which is plain skill insights. And so Jess helped me write a card for MySQL, InnoDB status, and it's just like it's another it feels to me like another, like another nova where they provided This unbelievable scaffolding and infrastructure, and you can now come in and be, like, I wanna write a little card for this thing. It's like, I'll look in here, and I'll listen to this, and I'll put out this.

Aaron:

And now it's beautiful. And it's gonna be, I think, even easier than Nova because it's all LiveWire, and so you don't have to, like, Have your view assets get bundled and packaged and shipped and Right. You know, I've done a ton of Nova as well, and it's like, that's that's a little bit difficult to to customize because of the front end asset story. So I don't know when Pulse is coming out. You know, I think they have Been furiously reworking some of the roll ups to get, like, the the stats working correctly, but it's gonna be really good.

Aaron:

And I've got think I have some secret ideas on things

Ian:

to do. Wait. Did you build this did you build this card already? Have you built with it yet?

Aaron:

Or no? Jess Just built it, and then we had a call to go over how it how it was all built. So I have Okay. Repo. I didn't build it, but she used it as the first, like, How would a third party Mhmm.

Aaron:

Part be built? And I think it,

Ian:

you know,

Aaron:

revealed a few rough edges. Mhmm. But Then after that, we spent, like, 2 hours talking about queries and stuff, and, they're just everyone at Laravel is just Smart.

Ian:

Yeah. I know.

Aaron:

They're just so smart. Like, I was talking to Jess, and I was like, have you thought about this? She's like, yeah. I thought about this, but what about this, this, and this? I was like, wow.

Aaron:

That's a really good point. So no. I haven't built it yet, but I have beyond the MySQL, you know, Res Red, whatever. I've I think I have some ideas for things that could be cool for polls, and

Ian:

I I don't wanna get scooped, so I'm not gonna say them yet, but Are these commercial commercial ideas, open source ideas?

Aaron:

Think so. I don't think so. I think it's gonna be primarily open source, Primarily, like, content, but could be I don't know. I I just don't wanna get scooped. But Yeah.

Aaron:

Stay tuned. I think it'll be I think it'll be really interesting, and I think I think it's, it's a good meta framework for certain, like, time series data stuff. So Is it

Ian:

going to be, like you, I assume it's going to be usable for just all kinds of dashboard ish type things. Is that seem accurate? Not just this sort of server statistics, even though that is what it's gonna come out of the box with. Yeah. So I mean, I've always wanted a good dashboard type thing, but it's just never like, I know I used that was there grasshopper or some, I don't know.

Ian:

There's 1, there's a couple of them out there that are like these dashboard type things, but they never really stuck. And Right. I don't know. But if it's just, like, part of the app and then Right. You can do other stuff in there, like, that seems pretty cool.

Ian:

Like, it's all in that spot and, All the trickiest stuff to wire up in some sense is like already there. Because like it's on the server,

Aaron:

we can

Ian:

serve stuff and then, okay, now I can just call APIs for like Whatever. Stripe or whatever other other stuff I wanna just pull in for other cards on the dashboard.

Aaron:

And all the timing functions are handled for you and, like, the, You know, the display is all handled for you and, like, you're not building out.

Ian:

It's not storing individual row entries, I assume. It's like It's, like, incrementing.

Aaron:

That is some of the wizardry that I think Jess has been working on the past Yeah. Week or two is, like, How do you store enough unaggregated data to be interesting, but not too much that it is a Right.

Ian:

Bottleneck and, like Right. It wrecks your server because they're storing every every query or

Aaron:

whatever it is. We went super into, like, window functions and rolling up and stuff, and I think I think she has found a novel approach that I have yet to see, but from what I understand, it's incredibly smart, which surprises nobody.

Ian:

Well, I'm excited I'm excited for it.

Aaron:

I think it's a I think it's a big one for for Laravel Inc.

Ian:

This is one of the things I'll I'll definitely be digging around in that code because I think, This is one of the things for HubSpot in the future here that, like, we've always just queried the database for reports. Just like pure and Yeah. But the databases Can be huge, and so, like, then those queries are obviously terrible because it's, like, database doesn't really like to do that in in the traditional relational database. So, it's like, yeah. Do you like have reporting tables that do some type of aggregation or something like that?

Ian:

So you can Or because I'm I am a fan of the real time report. I do that's another downside of DynamoDB. It's like you're pretty much stuck. There are some real time solutions, but You're kind of mostly stuck with, like, things that are not really real time, and I do prefer to have real time reporting. Yeah.

Ian:

So, yeah, Yeah. I'll be interested to see what they come up with. If they have something cool in there I can crib from, that would be Yep. Pretty awesome, or maybe things make their way back into Eloquent and Laravel that with these sort of things. Who knows?

Ian:

Or another

Aaron:

And I forget I forget that we have non Laravel listeners whom we love dearly. So, pulse.laravel.com Shows you the the overview. It's a dashboard. It says vital signs in real time, and it's gonna be a free open source package. And The cards that they highlight are, like, CPU percentage, and it's a little spark chart and memory and storage and, like, How heavy, like, how backed up are your queues, and how many cache hits have you had, and misses, and stuff like that.

Aaron:

And so they're pitching it as like a lightweight APM, application performance monitor, something like that.

Ian:

Something like that.

Aaron:

God. What did Taylor say on the Laravel podcast? He's like, I think of it as a family doctor. He's like, I think of it as a family doctor. And if you see a problem, you need

Ian:

to go. For us.

Aaron:

Oh, he's the best. Yeah. I know. It's like if you see a problem, you need to go to your specialist. So he's like, we don't have all the stuff that, for example, a century would have, but, like, This is it's all aggregating.

Ian:

If you see

Aaron:

something, go dig in somewhere else. So

Ian:

Yeah. I thought it was kinda interesting too. Did you see, DHH, talking about you know, they're doing the once whatever some kind of software or whatever. We don't have to go back and do all But he he released he tweeted Yes. About authentication concern.

Ian:

Yes. An authentication concern that's gonna ship with this one thing they're shipping. Yeah.

Ian:

And I

Ian:

was like, you know, this is like they're getting they realized that Laravel is, like, so far ahead of them In some of these ways, we're, like, Laravel just ships, like, 5 different types of authentication. You want, like, it's totally done for you. You want it's kinda done for you. Want it's not really done for you? You want it's, like, almost not at all done for you, but just a little bit like it's got everything.

Ian:

And it's like, oh, and a lot of other stuff you announced at Rails, World conf 2, I think, was along these lines of, like, flushing out the ecosystem where there's no competition out there.

Aaron:

I read those tea leaves differently. When he tweeted that Authentication concern, I read that is a dig to the, authentication Startups, not to Laravel, but to, like, the clerk dot devs of the world. It's like, outsource your authentication to us only, you know, $24 a user, and you're like, wait. Hang on. Back up.

Aaron:

So that is a shame.

Ian:

Maybe that's true. Maybe my Laravel bias, blinded me. I took that.

Aaron:

But it might be anti JavaScript bias. It blinded me.

Ian:

It does. It does also come I think it'll depend on what it actually is. Like, if you could only get authentication concern when you buy the product, well, then, obviously, that's not, like, a a Laravel type thing because Laravel shipped you all this stuff for free. So, but if it is, no. Like, this is a thing that you Get for free separate from the product part, that anybody can just use

Aaron:

now. Yeah. I think it's more of like a a secondary or tertiary benefit of buying whatever

Ian:

Maybe so. In this case, then it's much more like what you're saying, which That's a whole other thing we haven't talked about. I I went very deep, not just me. I actually hired Chris Fedow to go deep on these authentication Startup.

Aaron:

As a service? Yeah.

Ian:

As a service. Because I'm like, you know what? It's always a pain in the ass to build. I mean, Laravel gives you a lot, but we need, like, SAML, we need active directory. We need more than what that will get.

Ian:

Okay? So there's more than that. So it's like, it's always a pain in the ass to build these things. It's a security thing. This is like, you know, People are trying to hack me and all this stuff.

Ian:

It's like, well, a company that just does this is sort of interesting. If it's not an insane amount of money, You know, whatever. It's like less dev time. It's gonna be more secure potentially and whatever. Let let me see.

Ian:

This is all the hotness. Right? Everybody's doing this. Mhmm. Oh, man.

Ian:

I went to Auth0. I was like, alright. Auth0.

Aaron:

Tell me if it

Ian:

should be. This should be like these are they're owned by the Okta, whatever. Like

Aaron:

Yeah. Okta.

Ian:

1st of all, I like, their business is insane. The whole business is totally insane. Let's just start there. None of these none of these services even dealt with multitenancy until, like, very recently. Like, all of them are, like, we just released our multitenant thing.

Ian:

And I'm, like, who's even using this for multi tech. Oh my god. Applications with just 1 group of authenticated users, like, is that really who's using? I don't know. So the whole thing is bizarre to be with.

Ian:

Their pricing

Aaron:

Tell me.

Ian:

Is completely insane. It was like so so so they had this multitenant, Ostensibly. Uh-huh. I'm like, okay. I need the SAML.

Ian:

That's, like, basically why I want this is for, like, the SAML thing. Okay. Well, How many you gonna have? I was like, well, just in the customers we have now, we're probably gonna have, like, 60, 70, 80, a 100. I like, a a good size number of customers who need this.

Ian:

Yeah. Oh, well, that that's right there. You have to go on our maximum tier. I was like, how can my little company that

Aaron:

already on the maximum tier.

Ian:

1,000,000 in revenue. We're on the maximum tier. I'm like, wait a minute. So okay. We're at the maximum tier.

Aaron:

Your couple million, by the way. They're about to take all of that.

Ian:

So okay. So they're and then they're like, because that is per user on top of so it's

Aaron:

gonna be like

Ian:

the base price for a 1,000 active users was, like, $40,000 a year. And I was like, are you guys insane? I was like, nobody's paying this. I refuse to believe it. Like, no.

Ian:

You know? Blah blah blah blah. And I'm like, Listen, that's just not it doesn't make any sense. Like, who's paying $40,000 a year for, like, A 1000 users. Like, that's the whole thing is insane.

Ian:

So then I looked at some of these other ones, but, like, You know, whatever. There's, like, the clerk one has reasonable pricing, but, like, you know, the whole thing. They're in the Vercel circle of, like Oh, big time. Logos are this Just the other resell companies. I'm like, I don't know.

Ian:

Like, this company's gonna go out of business, and then my authentication's gonna go away, and that's a huge problem. Users table. See you. Yeah. So that's a bummer.

Ian:

So then I'm like, I forget it. We're just gonna have to just build it ourselves. Like, we always do and nobody else does, but it's like, love the idea of it. I do love the idea of it, but it's I I I don't understand who's buying it. I don't I don't know if you have any insights here, but I I don't understand.

Aaron:

No. I I have any in any insights Exactly. It's $14,000 or something like that. Yeah.

Ian:

Yeah. It's crazy. And then that was a higher price

Aaron:

than I could've than I could've even imagined. Yeah. And the one that does sounds like cognito?

Ian:

Or Yeah. Cognito, and it's much more reasonably the pricing's fine.

Aaron:

I'm sure. Yeah. But Probably very bare bones

Ian:

2. Insane. When that does every you know, it's like every Amazon thing. It does everything. But, like, to get it to do everything, you know, is like Yeah.

Ian:

A big gigantic project that's way bigger than, like, building it yourself and whatnot. So yeah. And it had some weird edge cases. We did he Fedelebern went very deep incognito, most of all of them, because it was like, the pricing is fine, but it has these weird limits, In different spots that were gonna be a problem where you might have to have multiple accounts to get around some of these limits because there's, like, some actual hard limits in certain spots, and I'm just like, Whatever. This is a it's already getting so complicated that, obviously, you're

Aaron:

just gonna know yourself.

Ian:

Yeah. So But yeah. So that was my little adventure down the path of posting the authentic dollars. I I literally couldn't believe it. Like, I was like, I cannot that that's accurate.

Ian:

I was like, you should double check this. He's like, no. That's the price. Blah blah blah blah. I'm like

Aaron:

I mean, OpenAI is using Crazy. Auth0. Right? So, like, I think they need a

Ian:

lot $1,000,000,000. So you know?

Aaron:

Yeah. I think a lot of these big companies are using it, but I just yeah. It just Continues Yeah.

Ian:

So cool. Right? So I guess it it's one of those things where, like, if you're a huge company and you have lots of money, well, okay, it's like $40,000 base, then you're gonna pay probably too much per user, but it's still only a few cents per active user a month. So whatever, if your bill is Half $1,000,000 a year or $1,000,000 a year, $4,000,000 a year, but you don't ever have to think about authentication and you know it's done really well, Fine. Like, you know, so this is a little bit of that kinda case, like, for OpenAI, maybe it makes sense.

Ian:

For UserScape and HelpSpot, Like, it probably doesn't make any sense.

Aaron:

Not not so much. Yeah.

Ian:

So whatever. But it's at the same time, like, it's very weird. Like, why even sell? Like, just go the full, like, we don't sell to you. Like, we're not for you.

Ian:

We don't sell to you. Don't waste our time.

Aaron:

I mean,

Ian:

that's does weird.

Aaron:

You got is the soft we don't sell to you.

Ian:

I mean, essentially, yes. Well, it took some guys' time for an hour. You know? Like, I don't know. It's, like, just Well, he gets

Aaron:

to put a number up on his Board that's, like,

Ian:

I did

Aaron:

initial discovery call this week. Don't fire me. I'm making my quota, whatever. Yeah.

Ian:

Yeah. It's bizarre. Whole world, I don't know. Yeah.

Aaron:

So DHH is gonna ship authentication concern. There

Ian:

you go. I guess we'll see if that's Interesting. I'll be curious if that's

Aaron:

we'll see if that's the product or just a view source benefit of it.

Ian:

Yeah. I'll be curious to see what they actually ship, we'll see. I I

Aaron:

don't really

Ian:

know. I don't know. We got a couple other things here. We're we're already this far. I feel like we should knock a few of these out.

Aaron:

We're this far. What do you got? I I picked the last few. What do you got?

Ian:

We we talked about shoes inside the house. Is that that's just old on here. Right? I know when we was I don't

Aaron:

know if we Did talk about shoes inside the house and You

Ian:

can't wear shoes inside the house, like Yeah. Maybe I have

Aaron:

to to wear shoes inside the house.

Ian:

Yeah. Inside the house is insane. Like, you can't wear shoes in the house. Your shoes are stepping on dog poop and all those things. Now you got all kids running around.

Aaron:

This on Twitter. I simply do not step on dog poop. I think

Ian:

that's my strategy. Don't ever walk at grass?

Ian:

Is that

Aaron:

what you're telling me?

Ian:

You don't ever walk at grass? Are you microanalyzing the grass in front of you as you walk? You're stumbling a dog shit. I guarantee you.

Aaron:

No. Well, it's Welcome to

Ian:

the sidewalk.

Aaron:

I don't live in New York City. There's not human fecal matter out on every sidewalk. Okay?

Ian:

I hope Lara Khan's in Dallas, because I'm gonna be looking with an eagle eye, let me tell you.

Aaron:

I actually really hope it's in Dallas Yeah.

Ian:

That'll be fun. You have to show us all around.

Aaron:

Be very helpful if it were in Dallas.

Ian:

But I don't know. She was inside the house. I feel like you take your shoes off. I mean, we have a Party where people over. We're not like, everybody take their shoes all

Ian:

the way.

Aaron:

Yeah. Whatever. We're fine.

Ian:

We're not those who are all the way to that, but, like, day in, day out, I take my shoes off. I got my slippers right there. Boom. I'm in the slippers. You gotta have the slippers.

Ian:

I'm

Aaron:

not That that that's maybe the that's maybe the problem. Maybe I don't have the right maybe I don't have the right equipment, but I wear shoes inside the house all day. Every day,

Ian:

I have Release your feet, baby. Release your feet.

Aaron:

I feel so secure when I have And a pair of old Nikes on inside the house.

Ian:

LL Bean slippers, baby. Just spend the money. It's, like, gonna be $75 or whatever.

Aaron:

I think I had

Ian:

so nice.

Aaron:

I Add them at one point, but it just felt, you know, it felt I'm not getting dressed up, but it felt a little slovenly to, like, walk around with slippers on all day. It felt a little it felt a little, well, like I'd given up a little bit.

Ian:

Slippers, man. Just give in. Just cave. It's so warm and fuzzy in the winter. It's so good.

Aaron:

You wear slippers, like, with shorts around the house?

Ian:

You're damn right. I do. Slipper. I I come into my mudroom from the garage. I take my sneakers off.

Ian:

My slippers are right there. Boom. My feet are in the slippers. My feet do not leave the slippers to bed. I take the slippers off.

Ian:

I go to bed.

Aaron:

I know.

Ian:

Yeah. So it's it's like I'm wearing shoes in a sense, But they're not covered in dogs. Yeah. But you kept the No. Feet teeth.

Aaron:

It's just it's just a nice slimmer. The problem with your the dog population in your area, but I

Ian:

just wait till your kids you have 4 kids. You realize, well, a mess your house is gonna be. All these kids running around with their muddy, filthy shoes. Some take those shoes off. Beautiful.

Aaron:

Yeah. Different rules for adults, So I can do whatever I want because I own the house. The kid the kids might have to take their shoes off.

Ian:

That's not gonna work. I'll tell you that right now.

Aaron:

I know the kids are. There's not going to be. There's not

Ian:

going to be 8

Aaron:

pairs of slippers at the back door. I know that's

Ian:

not the kids tend to go without slippers, although my middle kids now into the slippers, he's got some slippers. The other ones generally don't wear slippers, but

Aaron:

This shocks me.

Ian:

They got the young feet. They don't need slippers. You know, they're all

Aaron:

They don't need slippers. Yeah.

Ian:

They don't

Ian:

need that reinforcement. I need the reinforcement, and I need the warmth since it's cold up here.

Aaron:

This is crazy. I feel like I feel like I'm on the I'm on the I'm in the minority here. I think a lot of people are like, don't wear shoes in the house. I just like wearing shoes.

Ian:

I mean, I grew up always wearing shoes in the house. I have to say I always wear shoes in the house, but I know once I got my own house, so I was like, nah. My wife's, like, very cleanly, and she's, like, super into organization. She doesn't wanna shoot in the house, and I was like, oh, I won't wanna shoot in the house There in the truck.

Aaron:

Here here is here's a hot a hot take I have on on shoe related, conversation. A a man's toes should never be seen in the workplace. Oh, in the workplace? And unless unless a man is about to fall into a body of water, His toes should never be seen, especially not in the workplace.

Ian:

I'm with you on that. I'm with you on that. Male toes are disgusting. That's

Aaron:

Why? These are toes

Ian:

are are usually very nice. Male toes are

Aaron:

Neutral. Yes. A man's toes?

Ian:

You know, very few man toes are are worth it.

Aaron:

Wearing flip flops into an office, no respect.

Ian:

No respect.

Aaron:

I don't wanna see your toes. Men's in general.

Ian:

Like This

Aaron:

isn't a 4th July pool party.

Ian:

Yeah. Men should be covered up in general. Even if you're buff, I almost feel like you're men. Like, the male body is just not aesthetically pleasing, Well, like, the female body is aesthetically pleasing. Just like I'm not talking about sexuality here even.

Ian:

I'm just saying, like, the shapes and the curves.

Aaron:

You're just saying that we're grotesque?

Ian:

I'm saying men are grotesque. Like, just there's no the shape makes no sense. Like, it's we're just utilitarian. Like, let's just face it. Right?

Ian:

We're just there to to deliver.

Aaron:

We're just there to lift heavy things.

Ian:

Yeah. But, like, But the female body is, like, all sculpted and nice and, like, that's so Yeah. I'm like, that would

Aaron:

be off, Man.

Ian:

It's it's

Aaron:

a bit late here, Mark. Isn't it? It's too late. Alright.

Ian:

Alright. We're this one's been on

Ian:

the list

Ian:

for a while. We're just gonna we're gonna go back to another

Aaron:

one. Tell me. Tell me. Tell me.

Ian:

Workout routine. What's your workout routine? This is related related to your disgusting body.

Ian:

Do you

Ian:

have No.

Aaron:

My grotesque body has no workout.

Ian:

Nothing? You're not you're not doing anything?

Aaron:

Nothing. I mean, nothing right now. Yeah. Okay. They're just Yeah.

Aaron:

It's bad. It's not great. I I need something, but I don't have

Ian:

Did you ever go to the gym? I've never ever been a gym guy? Never a gym guy?

Aaron:

Never been a gym rat. I think based on family, like, physical structure, I could get really big, like, really buff because I have a, you know, a few brothers, and my dad have all, at one point, been, like, big gym guys.

Ian:

Solid. Okay.

Aaron:

So my time is coming at some point, but, You know, the stars haven't lined up yet. I actually my brother is a trainer, and I he lives in Galveston, and I told him, you ever have, like, a month off, like, I don't know what you do. If you ever have a month off, come up to Dallas, and we'll do 2 a days, and I'll get really buff, and it'll make great content. Duh. That sounds great.

Ian:

This is the time. Your your aunt's about it doesn't work.

Aaron:

I I pitched it, like, 6 weeks ago, and he was like, yeah. That Dun's fun.

Ian:

Dude, if you come out of this having 2 a 2nd set of twins, more well rested and buff, that'll be freaking silly.

Aaron:

Yeah. I know.

Ian:

That'll be insane.

Aaron:

I know. I wanna do it just for the story of, like, oh, wow. That guy, he got strong on paternity leave. I'd be like, oh, that's so great. But I don't know.

Aaron:

Sounds Sounds like a lot

Ian:

of work you were doing. She's always she's

Aaron:

she's always

Ian:

tweeting about how buff she is, and she's lifting heavy things and, like, she's doing

Ian:

all that

Ian:

kind of stuff.

Aaron:

Destroy me. Yeah. Yeah. She That's like my

Ian:

wife's my wife's there's a lot of people

Aaron:

playing a scale that lift. I don't get it. Yeah.

Ian:

I'm not really there to lift it. We have, I used to go to the gym on off. I've been back and forth. I've never been like buff buff, but I mean, I don't know. Now we have like a gym in our basement because we realized we could never actually get to the gym.

Ian:

So we have, like, a the Peloton tread and the Peloton bike and weights and whatever. We don't have, like, the rack and everything, but and my wife uses it religiously every day, 6 days a week, And Sunday's off. That's weird. Wow. I I will go through

Aaron:

That is religious.

Ian:

Like Sunday's off. That's weird. Lately, I've been using it Fairly often again, but I my problem is, like, I'll use it and I'll have results and it's all good. And then, like, I'll go on a trip or I'll get sick Or what something happens that interrupts it, and then I'm off it for, like, 3 months. You're Either on or

Aaron:

off the wagon, whichever one is bad.

Ian:

Whichever one I am, it's like it goes 3 to 6 months. I just don't do it. Like, I out of the habit instantly, and that's it. Because I don't really love it to begin with, so it's, like, easy to, like once I break the every morning going down there, it just stops. So I've been good lately about being back on it, but, we'll see.

Ian:

Hopefully, it sticks. I'm trying to get I'm trying to keep it in shape here, but I don't care about being, like, Buff, but I'm trying to just keep the heart rate up. You know, sitting all day Yeah. It's not ideal.

Aaron:

Yeah. I think I think I need some I need some exercise for, like, You know, longevity, but I kinda wanna be buff at some point in my life.

Ian:

I

Ian:

wouldn't mind me buff, but I think give it a time. I don't see it happening unless I, like, the business or something. I'm like, where would I get the time to be buff by the way?

Aaron:

That's that's how I feel, and I can't sell to kids. Like, I'm so happy.

Ian:

Yeah. Long time to be buff for a while. Right? Yeah. That's like buff.

Aaron:

Of all the things that have gone by the wayside, I feel like being buff is probably one of them.

Ian:

Well, because one of the things you realize when you work out consistently for a long time is, like, the the level from, like, you you're in good shape, But, like, you don't necessarily look aesthetically amazing, but, like, you're you know, you can lift a good amount of weight. The difference between that and being buff is, like, A giant freaking chasm. Like, because, like, you just have to do so much more to get the buff than just to, like, sort of Lift a reasonable amount of weight. Like, you'll be lifted a reasonable weight, and your muscle looks exactly the same. And you're like, what the hell?

Ian:

Why don't I look like all beefy? Like, I

Aaron:

don't know. Yeah.

Ian:

Yeah. Yeah.

Ian:

I'm still

Ian:

a grotesque mom. What the hell? No. Because you have to lift an insane amount to get to, like, actually looking beefy, And you have to lose a bunch of fat. You have to, like, really super watch what you eat.

Ian:

Like, there's that whole aspect to it too, so there's a lot to it. But

Aaron:

Yeah. Well, I'll just keep on this path then.

Ian:

There we go. More twinkies.

Aaron:

Reassess. Yeah. Yeah. Yeah. Exactly.

Aaron:

We're getting all this we're getting all this meal train food. Is meal train a thing in the North? It's like Oh,

Ian:

I don't

Aaron:

remember this. A baby, a friend sets up a meal train, and they all sign up

Ian:

for it. I don't

Aaron:

think we called that, but yeah. So everybody's, like you know, everybody's bringing us these meals, and it's like, oh, we also know, we baked a bunch of cookies, and, oh, here's some, you know, here's some energy balls. It's just like, you know, peanut butter and chocolate chips, and it's like, I'll just have a couple of those. Like, what what am I doing? I'm not doing any work, but I'm just sitting around eating energy balls all day.

Aaron:

So That's the opposite of

Ian:

getting buff on maternity leave. I know.

Aaron:

I can't come I can't come back I can't come back, big maternity leave. Yeah. It's not great.

Ian:

Yeah. Oh, man. Alright. Let's wrap it. It's almost midnight.

Ian:

I think we've we've given the people

Aaron:

Yeah. We Well, he always skirted the line there. We should probably end end while we're still ahead.

Ian:

Yeah. For sure. Alright. Well, thank you all for listening. Mostlytechnical.com, Mostlytechnical pod.

Ian:

Nobody emailed this. I checked. Email us mostly technical podcast at gmail.com. So any feedback on the 15 topics we talked about this week, send that over. Otherwise, good to be back on the air.

Ian:

We will try to get back at some point next week, I assume. Assuming everything's chill with the babies, and then, we'll just Be playing it by ear a little bit here, but, yeah, we'll should be semiregular at least, going forward. So and and hopefully, a Holiday stream on the horizon if you can get that organized.

Aaron:

So Yes. If y'all want to hear that, let us know because that would

Ian:

be fun. Yeah. That'll let us know you got to the end of 2 hour podcast too, which is Yeah. Exactly. Alright.

Ian:

Have a good one.

Aaron:

Alright.