North Meets South Web Podcast

Jake and Michael discuss another of Michael's podcasts, Ripples, setting up review sites on Laravel Forge with Ryan Chandler's Forge Previewer, and speaking and attending Laracon(s).

Show links

Creators & Guests

Host
Jake Bennett
Christ follower, software dev @wilbergroup using @laravelphp. Co-host of @northsouthaudio and @laravelnews with @michaeldyrynda
Host
Michael Dyrynda
Dad. @laravelphp Artisan. @LaraconAU organiser. Co-host of @northsouthaudio, @laravelnews, @ripplesfm. Opinions are mine.

What is North Meets South Web Podcast?

Jake Bennett and Michael Dyrynda conquer a 14.5 hour time difference to talk about life as web developers

Michael:

Hey. I'm Michael Dyrynda.

Jake:

And I'm Jake Bennett.

Michael:

And welcome to episode 151 of the North Meet South web podcast

Jake:

We did it. Okay. So we are trying this where we're uploading or we are playing the track the intro track live as we're recording here. So we'll see if it comes out right this time. Last time, it wasn't perfect, but, you know, it's it's less editing.

Jake:

Right? I mean, because you don't have to combine the tracks, all that good stuff, plus we get the, video recording. So that's good.

Michael:

That's good. I think the only the only podcast that I am actively editing now is Laravel News.

Jake:

Mhmm. And that requires editing because, you know, we futz around a lot. It's just like We

Michael:

futz around and we sometimes say things and get lost, and then we go hang on. Let's grab what we actually need to say, and then just put the the bit that makes us sound intelligent in the recording.

Jake:

Yes. Whereas It's so nice.

Michael:

This podcast and the other one that I'm doing now Ripples. With Greg Skerman Ripples, is just we record. Although, we had some technical difficulties doing that one with Stephen Rees-Carter last week where his Internet was being super flaky. And so his internet kept dropping out. And so we were talking to him and then he disappeared from the recording.

Michael:

And then we had to, like, skip what we said to him. And then I was, like, just pretend that we Greg and I spoke. So, you know, peeking behind the curtain here a little bit. But, it's it's, you know, certainly much easier than having to sort of edit everything and align the tracks and and things like that. So

Jake:

It is indeed. Yeah. So tell me about ripples. Like, so what's the main differentiator for you? What's the, what's the so podcast number 3, what's the Mhmm.

Jake:

What's the main differentiator for you between, between the different ones? Yeah.

Michael:

So, I mean, this one we kind of talk about work stuff. Right? And and technical stuff that we're working on. Ripples is kind of on the back of They're currently AU where I introduced this. I mean, I didn't introduce the concept of ripples.

Michael:

The ripple effect is, like, a long standing thing, but it was kind of tying together. I guess my story, my journey leading up to Laracon AU, it was recapping everything that had happened, you know, since the last Laracon AU because of COVID. It was tying in Aaron Francis's message about putting yourself out there and trying things and and all of that kind of stuff. And so Greg is living that at the moment, doing some consulting. So he's the director of technology at IC Plant here in Australia.

Michael:

And so he he's doing, on the back of his talk at Laracon AU last year, a lot of, coaching and mentoring and things like that around, you know, team leadership and being being part of a team and and all of that kind of stuff for for developers from the point of view of a, you know, a technical leader. So not anything around the technical, but it's like, how do I, you know, deal with certain situations in work? How do I deal with, you know, being a member of a team? How do I, you know, do this kind of stuff? How do and and how do I be a member of a high performing team?

Michael:

So he's doing that coaching. And and so his ripples story is kind of the journey of, you know, from putting himself out there at Laracon AU. Now having, you know, people reaching out to him on the back of seeing that talk, being at that talk, to to have that that mentoring 1 on 1 with him. So that that's his position. And then so it's a little bit also of less technical and more of the people side of things, which, you know, I've dipped in and out of over the years.

Michael:

But, you know, him as a as a leader of of software engineers He's really big on that. And then we kind of want to then bring in different members of the Laravel community who have lived that that rippling. So they've put themselves out there. I wanna get Aaron on at some stage. I wanna talk to, you know, Nunu and people like that that have, like, started by putting themselves out there.

Michael:

And at some point down the track, the good unexpected things that that Aaron spoke about at Laracon US last year have happened to them. You know, you don't know when or why or what is gonna happen unless you put yourself out there and, you know, you wait for that to come around. Luke Downing is a good example. You know, just quietly chipping away. And now Yeah.

Michael:

Yeah. Now he's working at Laracast. He's he's speaking at Laracon, like, all those kinds of people that have kind of just put themselves out there. There's so many of them in the community. Caleb, Daniel, Aaron, you know, came out of nowhere.

Michael:

All of all of those kinds of people. So that's kind of where we wanna get it to more of an interviewee type thing, where we kind of talk to people about those things. David Hemphill, you know, when he Indeed. Drive down drive down to Little Rock and and sort of you know, did the the the weekend long coding fest to to get the first version of Nova. Like, that is another tale of, you know, being persistent with that.

Michael:

Taylor initially not, you know, didn't get why we would have a CMS. And now Laravel Nova is a huge, you know, part of the community. So, you know, all those kinds of things, and not everything is of that grandiose scale of, you know, Laravel Nova. But everyone so many people in the community have got those kinds of stories. Joe Tannibal with his, Laravel prompt stuff.

Michael:

Jess Archer herself. Indeed. He's a huge

Jake:

Jess Archer is a good one.

Michael:

Yeah.

Jake:

Tim MacDonald.

Michael:

From Being an attendee. Yeah. Tim, same thing. You know, all all these people there in the community. James Brooks, just like being a pest and asking, you know, for a job, all of these things.

Michael:

There's there's so many success stories in our community. And, like, we know a lot of the the popular ones. But if you're you're a person who who's got your own success story, you know, how Laravel has made you successful, then, you know, we wanna have that conversation as well and see, you know, what what it is. Because the amount of times that you see on Twitter, people whose lives have been changed, people who have pulled themselves out of, you know, a bad career. That they were doing something they didn't enjoy, and now they're programming.

Michael:

And Laravel has kind of enabled that for them to have a huge shift in their life, in their quality of life, in what they can do, and how they can provide for their family. You know, there's a lot of it out there, and it's and it's nice to kind of bring it to life. So yeah.

Jake:

Yeah. That's great. I mean,

Michael:

that's I love that. That's the podcast podcast that we're doing. We make no, you know, we don't pretend like it was our idea. It was it's certainly Aaron, of of all people, was the champion of that in our community. So when when he's recovered from his paternity leave and his and his, you know, rheumatoid arthritis that he may or may not have, then we would love to have him on the show.

Michael:

So when when he's ready, we'll we'll get him on and chat about that. So, yeah, that's that's what that's all about.

Jake:

Love it. That's great. Yeah. There certainly is lots of those stories of people who have just found their way to breakthroughs in success, you know, overnight successes that took 10 years or whatever. You know?

Jake:

That's that's the thing.

Michael:

Exactly right.

Jake:

Yeah. Like, how'd you get so lucky? It's like, well, not really. It's just a lot of work. And so but when you find something that you love to do, you know, the great thing is, it's more of for the for a lot of these people, it wasn't so much like a I'm gonna grind and grind and grind and grind and grind until I find success.

Jake:

Although that is part of it for sure. That is there is definitely a point where you do hit that. But, you know, a lot of it is born out of a passion for the thing that they're doing too. Right? You only can Mhmm.

Jake:

You can only do that grind for so long before you run out of steam if it's not also something that you enjoy doing at the same time. So it's it's cool. I love it. That's a that's a great idea. Yeah.

Jake:

Honestly so speaking of that rheumatoid arthritis stuff, dude, I don't know. My hands have been killing me lately. So I've been, you know, I've been doing the new keyboard thing, which helps a lot. My left hand stopped hurting, and now my right hand is hurting. And I'm like, what in the world's going on?

Jake:

So I'm like, Aaron, do I have rheumatoid arthritis? What do I how do I go by diagnosing this? I don't think I do. I don't think I do. It kinda goes on and off.

Jake:

But my wife got me some, like, something like CBD lotion. Yeah. I'm like, so so that actually that actually worked pretty good. Yeah. I mean, it's yeah.

Jake:

It's surprisingly that

Michael:

CBD works for for all kinds of things.

Jake:

Yeah. Yeah. It really does. And so, and she was like, hey. Just so you know, she's like, I think it might you might be able to, like, test positive for a drug test if you use this.

Jake:

And I'm like, no. She's like, oh, I don't know. It said something on the box. I'm like, come on. Like, my work, you know, does random drug tests.

Jake:

I have this, you know, very rarely. But then I looked on the box. It's like, trace amounts of THC, maybe. It's like 0.01%. I'm like, yeah.

Jake:

No. I'm thinking fine. I think I'm fine.

Michael:

You'll be okay?

Jake:

Yeah. Exactly. I think I'll be alright. I think I'll be alright. So anyway, no.

Jake:

That's been that's been helpful. And then I did get a new mouse actually. I got, like, a, I've been using the magic mouse, and I was wondering if that wasn't part of it because, like, I pick up that mouse, like, I just picture with my thumb and You've got big hands. Right. Exactly.

Jake:

It's true. Yeah. And so, like, that mouse is just really small. And so I was wondering if my right hand was hurting because I was picking that thing up all the time. And so I got, like, a Logitech, like, MX3000 s or something out

Michael:

of those, something like that. Mhmm.

Jake:

And, yeah, I used it for the first time today. It's pretty good. And then one of the benefits of it was that at, my south office, I was using the touchpad. And Wilbert Power I was talking to Wilbert Powery. And he's, like, been using a magic trackpad for years, and he's like, dude, my wrist my wrist is destroyed.

Jake:

And he's, like, in his twenties. Right? He's like, my wrist is just absolutely destroyed. And so I was using that down there because the the desktop that I have down there is, like, bamboo, and so it doesn't the the mouse the magic mouse won't you won't track on that because the DPI isn't high enough. But this mouse has, like, 8,000 DPI.

Jake:

So you can use it on, like, clear glass, this thing. It can, like you know what I mean? It's that mouse will, like it's crazy. And so it has no problem tracking correctly. And, plus, there's some, other fun buttons on it and stuff that you can do.

Jake:

You know, they have, like, a horizontal scroller. You have, like, a backwards and forwards button, which actually in PHPStorm is kinda cool. It acts like what happens if you press, like, the bracket buttons, which, by the way, if you did not know this, if you're in PHPStorm and you press, like, command bracket, it'll take you to your last editing point. It'll jump you to the layout to your last edit point. So, like, if you're kind of jumping between methods or something or jump you know, you can jump forward and jump backwards using the left bracket, right bracket, and I use that all the time now.

Jake:

But just sort of instinctually today when I was using that mouse, I pressed the back button and it popped me back, like doing a bracket left colon or or sorry, command left bracket. I was like, no way. That's sweet. So anyway, just Okay. Discovering fun little tricks like that.

Jake:

Yeah. Yeah. It is it is pretty good. So, yeah, that's been that's been fun. The other thing I I recognized today actually is I was using Raycast and noticed that I was looking for, like, how do I get into focus mode?

Jake:

Like, you know, do not disturb focus mode, which I couldn't find a good way to do. But I remembered then there was this app app called Focus App and it's like at heyfocus.co or something like that. And I remember that, like, years years years years ago, we had given away licenses for that on Northwind South. You remember we used to do that? We used to, like, contact people who sold products and, like, give away a couple of them on the show.

Jake:

Yeah. Like, F-Bar. I still use f bar every day. Literally every day. Had do you ever have you used f bar in a long time?

Jake:

Oh, every day. Multiple times a day. You Yeah. You can use the full If I need the yeah. Yeah. Yeah. All the time.

Jake:

If I need to SSH to one of my servers, though, I just go click f bar, hop down to the server, and press SSH. And then then I'm in. No no worries. It's pretty sweet. That's mostly what I use it for, honestly, is for that.

Jake:

I'm sure I can set up a shortcut to do that, but it's really handy. Really handy to be able to do that, jump around to those different servers and keeps up to date with all the IP changes in forge and any new servers that are added. It just handles it. It's it's really nice. Mhmm.

Jake:

It's really nice. So

Michael:

I've been

Jake:

I mean, you know

Michael:

that I love the command line. So I've been using the the forge CLI. And,

Jake:

I was like, no. I haven't used that really.

Michael:

Yeah. Well, we we did the the whole thing at work where they went through everyone's computers and installed the new, you know, corporate spyware and security stuff for everyone. And, I I SSH into

Jake:

I gotta know what the corporate spyware is. I don't know. It's like semantics. It's like defender. What is it?

Michael:

Yeah. There's old it's like CrowdStrike. There's a whole bunch of different tools. Like, they're like, run this thing and installs, like, 7 or 8 different things that I was, but, yeah, I had I I SSH ed into a forge server because I was in the office, and I'm like, I haven't got my laptop here, but I needed to quickly update an ENV file for something. And IT pings me on Slack, like, 5 minutes later.

Michael:

They're like, could you run this command on your computer? I'm like, Yeah. They're like, I don't like the look of that. I'm like

Jake:

That's hilarious.

Michael:

It's because the way that the forge CLI works is it will set up a, I forget what it's called. But in SSH, you can set like a connection kind of socket. And so if you SSH into a server and then you SSH into that same server again, it will reuse the open connection rather than opening a new connection. And that apparently raised the ire of CrowdStrike because it thought that it could be used as some kind of like reverse backdoor or something. And I'm like, like, it's fine.

Michael:

I own the server. Here is the, like, here is the source code on GitHub showing you what this is doing, explaining why it's doing it. Like, you're like, oh, are we gonna have to look at this?

Jake:

That's hilarious.

Michael:

So,

Jake:

I love it.

Michael:

Yeah. Yeah. So all all kinds of fun and games. But, yeah. Yeah.

Michael:

Forge... I use the CLI

Michael:

It's

Jake:

not gotten that bad yet for us. It's not gotten that bad. I we do have, a couple antivirus things installed that, you know, that are running. But it's it's it's not the end of the world. It's fine.

Jake:

I I'm more I'm more don't like it on our actual production servers when we've got, like, you know, corporate spyware as you put it, watching all the resources, and it's like then you've got 3 of them running on there, and it's like, guys.

Michael:

Yeah. That's right.

Jake:

It's, like, eating up memory and, CPU cycles.

Michael:

They've got stuff they've got stuff monitoring our AWS account as well. So when Forge sets up a new server, it sets up if you don't tell it to use an existing security group, it will set up a new security group with some, like, default access rules. So it lets through port 22, port 80, port 443 for everything. Because, you know, it's a web server. It needs to be able to talk to the Internet, but everything else is closed by default.

Michael:

But it does allow UDP connections on port 0 through 65,535, and they're like, this is raising some flags. I'm like, I I can remove it. Like, it's fine. So it's it's just because it

Jake:

was the most frustrating thing. I mean yeah. I mean, that's actually really good. That's that's great that you guys are that on top of it. That they're watching that stuff and that they're getting those alerts.

Jake:

That's pretty cool. But then

Michael:

but I'm like, this is like a development server. It's not, you know, but best practice, etcetera, etcetera. So, like, please remove that raw asset. It's it's not like the server is publicly accessible to the world because Afford server, obviously, with the the number of servers that it has provisioned, the number of eyeballs that it has across it, and the kinds of companies that we know about that are using it, let alone the companies that we don't know about that are using it. It's like they're provisioned fairly securely by default.

Michael:

So they've got the firewall, IPW or whatever running on the server when it's provisioned, and it is the same thing. So the security group is only allowing port 22, port 443, port 80 on, IPv6 and IPv4. And the firewall is the same. So it denies by default. So they were they were actually pretty happy with the way that it was that the server was configured by default.

Michael:

But they say, you know, can we just like I said, we're only using this one server because we're using it to spin up review environments. So when we open a pull request, we go and set up a new site, set up a database, do all the deployment stuff so that we can review a PR. And then when the PR is closed, it would then go and destroy that site as well and delete database and all that kind of stuff.

Jake:

So But it doesn't provision a new server. It just provisions a new site on there. It's just a It's just

Michael:

a new site on the server.

Jake:

Staging server. Yep. Yeah. Yep. So That's really interesting.

Michael:

A bit of a a rigmarole to to get up and running. Ryan Chandler has got this forge previewer, which I can put a link to on the show notes,

Jake:

which doesn't like to work.

Michael:

So it's using, I think it's using the 4 gs SDK under the hood to just go on, like, make all these requests. So to go and spin all this stuff up and then it does but, you know, it's it's no different to setting up CI for the first time where you do it like a 1000000 times to get it right. And so I actually triggered the Let's Encrypt. It's like you cannot provision a certificate for this same same, site any more times today. Try again tomorrow.

Jake:

So it's like, oh Interesting.

Michael:

Guess I'll try that again tomorrow. Running into, like it only allows you to trigger commands. But commands can only run for 2 minutes. Where our deploy script, because it's like building the back end not building the back end, but it's like running migrations and seeders and all of this kind of stuff to get the base application going. And then it does all of the JavaScript stuff.

Michael:

So it's doing, the React field. It's doing the Inertia build. Like, this

Jake:

Oh, yeah. It's gonna take a while.

Michael:

That are happening there. So it's like timing out and then we so then we okay. How do we get this to run a recipe? Because a recipe can run for as long as you like, but it doesn't have the context of the site. So we have to put, like, when we deploy the site, we need to basically write some files.

Michael:

Like, we put the branch name into a file. We put the PR number into a file. We put, like, a few different bits of information into a file so that we can then go, Okay, I'm going to create a Recipe on the fly dynamically that will take all of these values and put them into the recipe so that we can run like this recipe, which will run for as long as it needs to run until the process finishes. So there's there's all kinds of, like, little workarounds that we've got going just to kind of get this stuff working. And it has been an interesting challenge, I will say.

Jake:

Yeah. The other thing you could do is if you wanted to, you could you could do the, GitHub compilation of your assets and then push them up to airdrop. I do think that's a pretty good option, honestly. That's worked really well

Michael:

for us. This is where we're gonna land. Yeah. Is the because we already do the build. So we we have all the steps in place to to do it.

Michael:

So we would build the assets in GitHub actions, and then upload the tarball to, you know, wherever, and then we can just slip that back out. But that at the moment happens based on tag name. And so, obviously, for a review environment, we don't have a tag yet because

Jake:

That's true.

Michael:

It's it's still work in progress. So we'll we'll find some way around it, but I'll pick that up again

Jake:

some other time. The the way that the airdrop one works is it will basically say it it looks at it's airdrop.php in the config file, and then there's a listing of the things that you watch that that are within a scope of, like, if anything within this changes, then basically recalculate a hash. Mhmm. So what it does is it basically says, give me a SHA, or a MD 5 of the different items inside of these directories or these different these different, files. You know, it could be files or directories.

Jake:

And then it sort of smashes them all together into 1 hash. And if that hash matches, then it doesn't do anything. It means that's the same as it was last time. Right? Or or it'll check the hash to see if it's if it's assets exist in a compiled state already in your storage location.

Jake:

If they do, it doesn't recompile. So instead of having, like, a tag tying those assets to, like, a tag, it basically just ties almost to, like, a it's it's not even a commit SHA. It's like a list of

Michael:

Is it SHA?

Jake:

It changed.

Michael:

Was right?

Jake:

Yeah. A SHA of the system at the time that the assets were compiled. So it works it works really good, actually. The only thing that I'm wanting to do on some of these though is and we just talked about this the other day, is we're using a lot of minutes up when we're still in a draft state. You know know what I mean?

Jake:

Like, it's still in a draft. It's not ready for review yet.

Michael:

We don't run any of our tests or anything like that when it's in draft.

Jake:

Yeah. And do you just check to see if is in draft? I think you could say is draft is true. Like, if is draft is true, then

Michael:

Something like that that you can put into the action that basically says, like, only run this if. And so if it's if it's in draft, we basically don't run our tests. We don't run.

Jake:

Yep. Yeah. Exactly. We don't do

Michael:

a build. We don't do something else. And it does. So we'll

Jake:

still do some

Michael:

some other checks. Like, we'll still do a subset of the checks, but not not full test way. And that Yeah.

Jake:

That's Yeah.

Michael:

Because that's like, I can't remember the

Jake:

last time I saw

Michael:

a Yeah. A minute's email coming through.

Jake:

No. I I don't actually either. It's just, it annoys me. I mean, like, I'm sitting sometimes.

Michael:

Like, we used to get that all the time. Yeah.

Jake:

Yeah. Your maybe your processes take a little bit longer than ours do, and so that's maybe why. Or maybe you guys have more more people actually pushing code and stuff. So, that's possible. So it's, I think, it's just annoying to me more than anything, that it's building when I know that it doesn't matter.

Jake:

Like, that build is gonna not have, you know, whatever.

Michael:

Yeah. Especially if you're doing, like, a WIP commit, making a change. We'll just have a pipeline that's another WIP commit

Jake:

to a You got it.

Michael:

To a draft PR. You don't wanna because then you're, like, start it and then that cancels and then it starts again. Exactly. All that process. So, yeah,

Jake:

definitely for

Michael:

the draft PRs, we we don't, don't run it.

Jake:

It. Yeah. Speaking of CI, this was an interesting tip I picked up today. You might have seen me posted on Twitter, but I had this this set of tests that were just flaky. If you ran a single test in that in that class, it wouldn't have a problem.

Jake:

It would just, you know, run through that test and no problem. But if you ran the entire class of tests, I think there's, like, 9 different tests in there, like 35 assertions, then one of them would randomly fail. And it wasn't ever you know, it was sometimes, it wasn't typically the same one. It would be like number test number 5 failed, test number 8 failed, test number 7 failed. And it was, like, there was data providers there too, and so sometimes it would oh, it was so annoying.

Jake:

So annoying. Yeah. And, you'd have to sit there and run it and run it and run it and run it and run it until, like, the 6th time it would fail. And you just hope that you stopped before you pressed run again so you could inspect what error it was and like, okay, what's the thing that might be happening here? What I ended up doing is I ended up just basically I was trying to be too specific in some of the tests.

Jake:

And so I think what was happening is there was some leftover data, from previous tests that was conflicting with existing you know what I mean? With new data that was getting pushed in. So basically, it was it was screwing up some of my assertions. Anyway, what I was trying to do was basically say, just run this until it fails. That's what I wanted it to do.

Jake:

I wanted something to just run until it failed. And so Wilbur Powrie sent me this, he's like, hey, dude. Try this. And so if I can remember it off the top of my head, I think it was you just run this in your in your terminal. So it was while PHP artisan test and then dash dash filter, and then you'd pass in the class name of the test that you wanted to do.

Jake:

So you're saying, run PHP artisan test and filter down to this list of the this list of tests. You say, while that and then you say sleep 1 and then done. And so it would just keep running them until it failed. So it's, like, basically, as long as it's come back comes back successful, sleep for 1, try again. Sleep for 1, try again.

Jake:

And then it would just keep doing that until it failed, which was so nice. And then also there was a little bit of a modification on it, which I did not put in there, which would allow you to see how many times it had ran before it failed. But that was so handy when I was trying to get it to fail, because sometimes you just want like, sometimes it takes you know, it doesn't fail except for once every 20 times. But when it fails, you you wanna be able to figure out why it failed. Yeah.

Jake:

So, that was really handy and was super helpful. I did get all those tests, fixed up, and so, hopefully it only took, like, 45 minutes, but it'll never fail again, hopefully. Fingers crossed.

Michael:

Hopefully.

Jake:

So yeah. Those were those were handy.

Michael:

I did see that tweet. There are someone else a little while ago tweeted a similar thing. I think it was Paul Redmond, actually, that that tweeted about it. PHPUnit does or used to or has deprecated. I'd like a dash dash retry flag.

Jake:

And the

Michael:

test itself test has a retry flag in there as well. So you can say just, like, run this a 100 times or whatever, which, you know, does the same thing under the hood. Probably slightly more efficiently in in Yeah. Course. I would I would imagine rather than, like, booting up the whole framework, running the test, tearing down the framework, sleeping, booting the whole thing, it would, like, keep the framework, you know, in in memory as as it does between tests a little bit more efficiently, so it'd probably be a bit quicker.

Michael:

But yeah, the idea is the same. Keep running this test until it fails, and then you can kind of inspect it. So glad to hear

Jake:

you at the

Michael:

end of it. I think flaky tests are the worst kind of things, especially the kind that, like, you know, when you when you're writing code and you and you run it, like, a 100 times as you're writing the code and you're doing the whole red brain refactor thing and then you push it. The first time you push it to CI and it fails, it's like, come on, man.

Jake:

Yeah. Yeah. It's so irritating. I know. Especially if it's only failing on, online.

Jake:

Like, it's only failing, like, in your in your, you know, your GitHub Yeah. CI or whatever. Right? That's that's the most The worst

Michael:

when it fails in CI because you can't easily debug it.

Jake:

Exactly. Exactly. Yeah. So there actually was 2 things I wanted to talk about. The first one I wanted to talk about was, Lyricon talk topics.

Jake:

I would love to discuss that with you. But the other one was, man, I literally just slipped my mind.

Michael:

We'll see

Jake:

if it comes back to me. It was specifically about, some of the CI stuff, but it doesn't matter. We can we can loop back to it. So they're kind of talking ideas. Yeah.

Jake:

So, you know, we bought all my tickets this morning, which is great. And then we're talking to you guys and I was like, I know. That's awesome. On day 1. So cool.

Michael:

Half of the tickets on day 1, which is crazy.

Jake:

Oh, yeah. That's incredible. I mean, that's that's really, really I'm so excited for Taylor. Like, that's gotta be a big relief. You know what I mean?

Jake:

I had Wilbur Powery actually ask. I think he's bought tickets, like, 3 times, and he's like, hopefully, the Visa gods are smiling smile on me this time and let me get a Visa so I can get to the US. He's been trying to get here for forever. So that'd be really cool if he was able to come, but he was like, do you think I'd be able to, like, get rid of it if I didn't if I wasn't able to come? I'm like, absolutely.

Jake:

There's always a waiting list. Every year, there's a waiting list of people trying to get there who didn't get tickets or who didn't, you know, to get them in time or whatever. So yeah. Absolutely. But I was I was talking to you guys today about, like, what would be some interesting, topics.

Jake:

So, again, I I'm debating on whether to do it or not just because I know what sort of commitment it is, but also I know that now that I've done it once, I know kind of what to expect. And so I'd I'd be interested in doing it again. So I kinda have one idea where I would be following up my state machines talk with this idea of state charts. However, I think in order to do that effectively, I would probably have to build a library Because it's one of those things where, great, I know this thing, but you still can't really use it because there's no there's no implementation of it inside other languages. There just isn't in PHP.

Jake:

This is the thing that we were looking at, like, ages ago. I mean, like last year at some point. Remember I was sending that and we were looking at it back and forth. I think it would require building something like that. And I also think it would require having that work really well in Livewire integrate well into Livewire.

Jake:

I think those would be the 2 things that I would have to make happen in order to be able to say, let me explain state charts and here's why they're valuable. And then tada, here's something that you can use to implement them today. I think that's what that would take. So that would be a lot of work, but I think it could be interesting. The other the other one that I was thinking about was using, creating like, it's sort of like a gateway pattern.

Jake:

So Adam Wathan talked about this back when he had, what was it? Test Driven Laravel, I think was the name of the course way back when. And he was he had Stripe, which was his, payment processor. Right? And so a lot of us, what we would have done back then is we just use Stripe.

Jake:

And then when we need to be in development mode or local mode, we just use our test tokens. Right? Which is great. But there's sometimes where you don't really want to give those test tokens to somebody either. You know, you don't want every developer on the team to have those test tokens.

Jake:

And so there are just certain areas of the application that they can't really access or can't test out or can't mess with. And so you kind of have to, like, delegate the workout only to people who you can trust with those specific things and, you know, etcetera. So Yeah. Instead, what Adam proposed was you have this, layer in front of that, service that is a gateway. Right?

Jake:

So you have a contract that you say, here are the methods that you can interact with with this gateway, and then you have a real version of it. Right? So you have a Stripe payment gateway, and then you also have a fake payment gateway. And the fake payment gateway essentially just gets swapped out in development and in your tests, and allows you to provide fake responses. The cool thing about that is even if you don't have the real API implemented yet, if you're the one who's gonna be building that other API, you could sort of spike it out and play around with it with this gateway pattern.

Jake:

And I was, again, talking with Wilbur Powery about this today, and he's like, I've worked at a bunch of different development shops, and you guys are the only ones that I've seen use this effectively. And so, I think that might be an interesting one to give a talk on. I don't know if I could fill up a whole 30 minutes with it. Maybe. Maybe.

Jake:

So Yeah. That's the second one. I don't know if I have a third one.

Michael:

Interesting one. And, like, borrowing an Adam Wathan concept

Jake:

Mhmm.

Michael:

And giving that talk at the same time that he's gonna be at that conference.

Jake:

Mhmm. That's ballsy.

Michael:

Place undue stress and pressure upon yourself. So think about that one.

Jake:

No. No. Adam's Adam's a cool guy. I would totally give him full credit. I mean, the cruddy by design shout out in my last talk.

Jake:

Like, you know, Adam Wathan's a legend. That's super exciting that he's gonna be there, though. That's really fun.

Michael:

I think that it sounds like he's not gonna give a talk though. It sounds more like a He's

Jake:

gonna be on a panel. Yeah. Yeah. Which is a while, like, I think it's been a while they've done the panels. Yeah.

Jake:

You guys did that at AU, but I don't think

Michael:

they've done Yeah. We had a we had a team panel. I think Europe Europe had a Laravel team. I think they're they're a bit of fun to kind of get some audience participation to kind of so that you're not just listening to talks for 2 days

Jake:

straight. Well

Michael:

If you do

Jake:

it well, it's really good. If you have the right people on the panel and you have the right person leading the discussion, they can be super interesting and really beneficial. Yeah. Mhmm. Agreed.

Jake:

And, in fact, I was at a conference in January where every almost every single talk was a panel. So they would have they would basically have a topic and so it wasn't just like a, hey, tell us what you know about whatever. It was it was directed around this specific thing. It was like, how is AI going to affect this area? Or how are you using chat box chatbots effectively to manage this area of your business or blah blah blah.

Jake:

Right? So it was, like, very much centered around a specific thing. But then they basically just said, hey. You guys are the experts. Figure out where you wanna go with this and figure out some questions.

Jake:

And then they just left it up to the people who were on the panel to, you know, preplan what they wanted to talk about and where they wanted to go with it. And they were all super interesting. And, yeah, like you said, there was a ton of audience I thought it was super beneficial.

Michael:

So Yeah. We, we controlled that a little bit for the AU. So there was a bunch of questions that I had put together ahead of the conference that I sent to all of the speakers and to all of the the teams so that they would have some prepared response.

Jake:

Which I think is the best way to do it. Yeah. You gotta yeah. You gotta give them fine, but

Michael:

of people. Yeah. And we kind of did that broadly for all of the Q and A. And that meant also that the Q and A was a little bit moderate in that we you know, if 3 or 4 people ask the same question, you know, we kind of make sure that we only ask that question once. If someone asked or said something that like, we don't get a lot of that in our community, but you don't want to run the risk of someone saying something daft, daft.

Michael:

And and just like putting this like, you don't ultimately, you don't want to put the speaker on the spot. And so by by moderating the questions a little bit and then, you know, saying, okay, these are the 2 that we're going to ask if you want to, you know and that way you can have that level of participation. The person know like, some people are just embarrassed to ask ask a question as well. And so, you know, it's nice to kind of give those people as well the opportunity to kind of ask something of the speaker without and then you don't have to worry about getting a microphone around to people so they can be heard, especially, you know, the size of venues, Europe and and US. Even like where we were with with 300, it gets a bit gnarly to to run a micro microphone around.

Jake:

For sure. I think

Michael:

we did for sure.

Jake:

I

Michael:

think that worked out really well. But, yeah. I like the panel. I like that it breaks things up a little bit. Hopefully, we can get some Laravel people to the conference this year.

Michael:

I think Driess might be out because he's got a baby.

Jake:

Oh, wait. He's out? Baby June. Oh, gotcha. Yeah.

Jake:

Yeah. Yeah.

Michael:

He's got a baby coming later this year. You know, babies babies are going around the community at the moment. So

Jake:

Yeah. Yep. A couple of years Yeah. If we could Couple of years behind the older guys.

Michael:

Yeah. I we I was talking to someone the other day, and I'm like, dude, I'm gonna be 37 this year. Like, I remember when I started work and, like, the oldest when I this was my first job, and the oldest people were, like, 31. It's like, are you guys really old? But now I'm 36 going on 37.

Michael:

And it's like and and, like, sometimes I

Jake:

know, dude.

Michael:

You you say something, and people look at you, like, I've never even heard of that. What is happening? I've become the the eldest statesperson in in the company. So I'm older. I'm older

Jake:

than my last 2 Right?

Michael:

Embrace the role. Yeah. I'm older than my last 2, like, bosses, CEOs.

Jake:

Wow. Dang. And I made this job, and

Michael:

I found out

Jake:

I took this job about it now.

Michael:

Like, and I still took like, so I found out beforehand. I took the job after. I'm like, I gotta stop working for people younger than me. This is no good.

Jake:

Mhmm. Mhmm. Yeah. That's funny. I've I've, dude, I've looked in the mirror a couple of times recently and be like, dude, where is that?

Jake:

Where is those? The my eye looks my eyes look so tired.

Michael:

Yeah. Yeah.

Jake:

I don't feel that tired. I just look that tired.

Michael:

Why? It's happening.

Jake:

It's a great day. It's

Michael:

I'm getting old.

Jake:

I just

Michael:

I get to, like, 4:30 in the afternoon, and I'm like, I can't do it anymore. I gotta I gotta sit. I can't can't do a thing. And then, like, I've fallen asleep on the couch.

Jake:

I I I like like, oh, dude. I've got that.

Michael:

855 the other day. I said to her, I'm going to bed. And she looks at me, and she looks at the clock, and she's like, what do you mean? I said, I'm tired.

Jake:

Old man Michael. Since this season.

Michael:

In my defense, I get up early and I go for a run-in the morning.

Jake:

So That's great. Yeah. Keep your ears that way. Yeah.

Michael:

But, yeah.

Jake:

Hey, we had, this is this is off topic, but we had, my son's basketball, like, award ceremony was yesterday. And they had a dads versus the boys, game. Oh, dude. It was great. It was

Michael:

always risky. It was great.

Jake:

It's always risky, but you know,

Michael:

I had to did you do kenbe?

Jake:

Oh, dude. It's just hilarious because, you know yeah. Exactly. I didn't block anybody. I didn't I didn't feel right doing that.

Jake:

And, but, like, I'm 63. Like, these kids are all, like, 7th and 8th graders. Right? So it's

Michael:

like I

Jake:

don't it's just you don't wanna be a jerk. You know? But we did smoke them, and, man, it felt good. It's not it's not hard to box out a 8th grader. Right?

Jake:

You know? It's just like every rebound, any layup. You gotta be careful. I did miss a layup though. It's it's embarrassing.

Michael:

Oh, you gotta you gotta be careful. These these young kids growing up now watching the game, like, you don't want one of them to pull a chair on you and you end up on your on your wallet. That's that would be embarrassing.

Jake:

Yep. Oh, hey. The one other thing I was gonna mention because

Michael:

been there. We've all been

Jake:

there. Yeah. Oh. Oh, exactly. Dude, it was bad.

Jake:

Well, to be fair, I did make a pretty good cut to the basket, but then I just couldn't finish it. So it wasn't like it was like a wide open layup. I made those, but anyway, dude, it's hilarious because Harrison, my son, is going through they're studying Australia right now. Mhmm. It's like Yes.

Michael:

You sent me a text.

Jake:

Oldest? Yeah. Like, Graham was doing this.

Michael:

I remember

Jake:

when I was doing

Michael:

it when when we first yeah. Yeah.

Jake:

Yeah. When we first started, it was, like, 6 years ago, you know. And he was going through Australia and, like, he was talking about all koalas or what. Harrison is doing it now. And so he was telling me today, he was like, daddy, I learned all about Australia today.

Jake:

I was like, really? He's like, yeah. Do you do you talk to a guy in Australia? I'm like, every week. I talk to him every week.

Jake:

He's like, really? I'm like, yeah. And he's like, so they say, good day, mate. And that means, hello, friend. And I'm like, oh, really?

Jake:

He's like, yep. Yep. That's what it means. I'm like, oh, that's cool. And then he was telling me about all the animals and platypus and how it has fur like a bear and a a mouth like a duck and all the stuff.

Jake:

And then he was telling me he said he said I'm gonna start with the most cute and end with the most deadly. I was like, okay. Sounds good. So he started with a koala and he ended with a box jellyfish, I think. And so that's pretty funny.

Jake:

What happened

Michael:

after that?

Jake:

He's telling me Yep. Yeah. He was telling me all about he's yeah. They're they're deadly, venomous, poisonous. I was like, okay.

Jake:

Okay. A rockfish or something like that too.

Michael:

I don't know.

Jake:

See, your foot will turn purple if you step on us. I'm like, oh boy. It's like, we should probably do not go to Australia. He's like, yeah. I don't know.

Jake:

But it was great. So, anyway, he's looking I told him. I said, if you send Michael a message and say hi to Eli and Liv, maybe they'll send you a message back from all the way from Australia. So he was really excited to get your message about the Outback that you've ever been there. And then we spent 30 minutes on my phone looking at a map and being, like, here's where we are, and here's where Michael is.

Jake:

And I zoomed right in on Adelaide. I'm, like, that's where he lives right there. And then we looked at the Outback. I was, like, there's nothing out there, dude. It's just just sand and little scrubbed.

Michael:

Yeah. Just sand.

Jake:

He's like, where are the kangaroos? I was like, I don't know, man. I I he he was looking for kangaroos on the map. I was like, I don't think

Michael:

you're gonna find any.

Jake:

You're not gonna find them there. Yeah. Yeah. That was funny though.

Michael:

Fun. Alright. Oh, well Let us wrap this one up. Buy your own Stellaricon US because those are on sale. And maybe by the time that you hear this, they'll be just about sold out, which is wild.

Jake:

It is. It is.

Michael:

Tickets to PHP Tek that you are speaking at. We know that you're speaking at at that one. So definitely check that out. We are very close to Laracon AU announcements. I sent off the signed venue contract on Sunday night.

Michael:

So that's all locked and loaded. Now it's,

Jake:

you know,

Michael:

just the announcement. I've got our 1st speaker announcement ready. I've got to put a video together. I just I enjoyed doing the content last year, and I don't know if anyone saw any of it, but I enjoyed doing it. So we're gonna do some video again this year.

Michael:

We're finalizing the branding at the moment. Organizing some bits and pieces. Got the I don't know if I talked about it here last time, but we've got 2 2 hotel vendors companies. I don't know what the word is but, like, 2 hotels and, like, 8 properties in the city that will be, offering some discounted accommodation to our lovely attendees.

Jake:

So I'm

Michael:

hoping to kind of get people together, get them some great deals, and and get them to really make the most of the Laracon experience. And I will link in the show notes also. Luke Downing, I mentioned earlier, is on the Laracasts team, and he overtook the Laracast snippet. This way, he can put out an episode talking about, why you should attend Laracon. So I'll put a link to that in the show notes.

Michael:

It's not just AU, but, like, all of them. It's it's just I don't think unless you've been, you understand Yeah. Just what you get Yep. Beyond just the talks.

Jake:

So it's definitely It's all the connections.

Michael:

Definitely listen to that.

Jake:

Yep. For sure.

Michael:

That is that is it. I've got no more to say at this time.

Jake:

Episode 151 folks. Find show notes for this at northmeetsouth. Audio/151. Hit us up on your pod sorry. Follow us on your pod catcher of choice.

Jake:

Hit us up on Twitter at Michael Dorinda or at Jacob Bennett or North South Audio. Till next time, folks. We'll see you later. Bye bye.

Michael:

Bye.