php[architect] logo

Want to check out an issue? Sign up to receive a special offer.

Machine Learning with Liam Wiltshire

In this interview, Eric and John talk to Liam Wiltshire about his Machine Learning articles (Part two here) in the April and May 2020 issues of the magazine.

Topics Covered

  • How he transitioned from music into building web sites.
  • Speaking at PHP conferences.
  • Using machine learning with PHP and why he wrote this series.
  • Assessing the quality of your input data.
  • Ethical considerations when using machine learning.
  • Laravel and Liam’s contributions to the PHP community



[00:00:00] spk_0: Welcome to the official podcast of PHP Architect. Join us to listen to the latest news and tech talk from our conferences, the magazine and wider PHP community.

[00:00:14] EVJ: Hello, this is Eric Van Johnson, One of your hose of the PHP podcast. The official podcasts of php[architect] magazine. As we mentioned, we’re changing the format of the podcast. Now the interview has become a separate podcasts, and that’s where you are today. This interview is for the May 2020 issue of PHP Architect magazine, Volume 19 Issue five. Unsupervised Learning. In this interview, we talked to Liam Wiltshire. Liam is a UK based developer in CTO. He is also a father, a musician. A well established conference speaker. In this month’s PHP Architect magazine, Liam continued his series on hands on machine learning with PHP, Part two. It’s a very exciting topic, and Liam is a very exciting person to speak to. We hope you enjoy this new format. For the foreseeable future. We will be releasing two podcasts a month. One podcast will reveal the magazine, and the second podcast will be for the interview. Without further ado, let’s talk to Liam Liam. Welcome to the show.

[00:01:17] LW: Hey, guys, Thanks for having me.

[00:01:19] EVJ: I’m so happy to have you in studio. So excited just to be speaking to you. You’ve been writing a serious for a PHP architect about machine learning with PHP. Super excited about that topic. Super interesting read. I see super a lot, obviously. But before we go down that path and talking a little more about that, I’m very curious to find out about your origin story. How do you go from being a music teacher to writing articles about PHP and machine learning?

[00:01:47] LW: I didn’t realize you guys going to do any research? Jeez, Um, yes. So, I mean, I started off. As you’ve said throughout my kind of youth, I was a musician. So yeah, I played jazz mainly, which was kind of cool. Um, played jazz and played in bands and that sort of thing, and I’d always decided I was going to be a music teacher. That was that was my life plan. Um, went off to a music college, t go and study and whatever. And I, kind of through gaming, had always kind of been interested in computers on through back in the days when he used to play Unreal Tournament. And I was in clans. So had built websites for kind of my plan and things like that when I was doing that sort of thing and then realized while is it you need that I didn’t want a proper job as I didn’t want to work in a bar or work in a supermarket or whatever. I realize that the things I’ve been doing for clans and for friends and whatever I could actually do and make some money at well, as at uni studying toe have my proper job. That didn’t obviously quite go to plan. I realized after a couple of years that you need that Perhaps music and being a teacher wasn’t what I wanted to do. Um, and someone offered me a job is a vote for time developer, and it was that right? So I can spend another year at uni and rack up more debt or someone’s going to pay me money. So I took the money. To be perfectly honest, that’s always started. But yes, I did that. And then that was Yeah, my first job. It was it was kind of art that I’ve been in that role for six months or so, I guess. And then I was there and I was the only developer. Then the work that we wanted needed more bodies. So I kind of became head of department by default.

[00:03:37] EVJ: Never really look back.

[00:03:38] LW: I guess so. I don’t know it. I often kind of go have have ended up doing what I’m doing on. I’ve been super lucky with, you know, being in this industry and, you know, being outgoing. Talk a conference issue. I’ve spoken a pitch protect before. I’ve spoken various places and you get toe meat and hang out with some really cool people. So I’m glad things worked out the way they did. I certainly can’t complain, but yeah, it’s been a been an unusual journey.

[00:04:07] EVJ: Yeah, it’s Ah, PHP has taken you around the world, right? You spoke in Vancouver? php[tek] and [php]world. I mean, you’re quite the Globetrotter.

[00:04:18] LW: Yeah, and I think that’s like like said it is really You know, I am super lucky to be able to do to do this on. And as you said, you know, I’ve seen Simpson beautiful parts of the world that I probably I probably never would have visited Atlanta had it not been for the Tech, for example on you know, I’ve been systems really cool places and places that, you know, I wouldn’t have otherwise. Oh, thought to do so. I did. Ah. Did PHP medicine a couple years ago. And to get there actually flew into Chicago and had a night in Chicago and then took the bus up to Madison on actually Really, like Chicago is a place I’ve never been there before. Ended up going back from my honeymoon. So, you know, it’s funny how these things gonna work did the kind of cool thing for my honeymoon. So we started it started in Chicago on I’m a big, stateless fans. We drove to Pittsburgh. Kind of. Things were a long way apart in the U. S. I think Dr on the same road for hours. Just keep going. Uh, yeah, I went and spent a few nights in Pittsburgh as well and then drove up in tow calendar and went to Toronto as well. So that was kind of cool. Yeah. These places that I’ve never thought necessarily to go to Chicago, for example, it would never have been on my on my bucket list until I went and ended up there on my way to a conference. Now, when I need to spend some more time here, so yeah, it’s really it’s really cool and definitely kind of very lucky with some the opportunities, That hat

[00:05:48] EVJ: Now, you you mentioned leaving university to go work for a company. You still with

[00:05:52] LW: that same company of, you know, so that that was the first company I was at on. But they’re still going. I spent a few years there on. Then again, it was kind of my first proper job if you like. I then wanted to go off and do some other things. I contacted for about about a year, realized I hated chasing people for money, so went back into her full time employment instead on then, you know, and I have done everything from, you know, the in house kind of work on working on the same piece of software every day. The agency work where we were training out magenta sites. Not anymore, too. Then again, you know, kind of going back in house, but in a very different thing. And where I am now, it’s very much about. We’re kind of struggling the gaming industry on kind of fintech on de comments as well. So it is quite unusual that, you know, I now do as well is doing with the interesting kind of technological things I get to go to kind of gaming conferences and things and and see what’s new in the gaming world as well. So yes, it’s it is pretty neat.

[00:06:56] EVJ: I was going to mention when you said that you kind of got into development because of gaming and how you come full circle where you’re still in gaming.

[00:07:08] LW: Yeah, definitely. It’s a bit different now, Remember, you said back in the Unreal Tournament days when you know our clan meet ups were on IRC on Yeah, it was the cutting edge. When there was, you had a postscript. That meant you could have organized matchups and things. And there’s about as far as it went. S O. Yes, it’s a very different world. Now you know things like Minecraft and that really awesome things that people doing around that. And you know, I love the other games, like wresting arcane things and, you know, the communities that build up around them is well, I thinks really, really quite cool as well.

JC: It’s amazing how you could take Ah, hobby like gaming and turn it into a career for me. When I was younger, it was cataloguing my baseball cards on a computer that led me to my first job and then, ultimately, as a developer.

LW: Yeah, I find that very much the same that I think I learned very much the best when, when I have a reason to do it, I’m terrible. That just going. I want to learn X Y said for no real reason. It’s just interesting whatever on, then, trying to learn my way that way, I I don’t tend to succeed by doing that very much more. If I get right, I have a reason to do this thing. You know, when I was starting out building a website for my plan, your luck with the machine learning stuff, we were having issues with kind of fraud. No, I was doing well. I wonder if we could start using some by data to help combat that sort of thing. It’s about having a re for me, but personally having a reason to learn something and then going into it with kind of an end goal in mind.

[00:08:42] EVJ: That’s probably a great segue way into what you’ve been writing about machine learning. Um, first off as a PHP developer, thank you for showing me there’s a way to do machine learning with PHP because I obviously when machine learning was introduced and I was looking at a lot of the tutorial is, um, you know how to how to code with it. It was definitely one of those topics that I thought this will never fit in the PHP world. And now, looking back after, especially after reading your articles, I don’t remember why I thought that. I think I think it was just kind of included on the, you know, with machine learning came out. But But you really kind of open that door for me Anyways, I do appreciate that.

[00:09:29] LW:  That that’s great. I’m glad too.

[00:09:31] EVJ:  Do you currently use machine learning in, like, real world scenarios?

[00:09:36] LW: Yes. So I mean, I think the first thing kind of go back to the original point. I think half the problem is that the Internet as as as an entity tells us that it can’t be done in PHP. You know, if you go and search for machine learning tutorial, for example A. With the examples in python like you can go through pages and pages And likewise, if you kind of Google, other search engines are available, Machine learning languages, it will say, Yeah, you should use Python. We should use our or you should use Java  I think you know, you get into that mindset that everything’s telling you all it should be invited. Python have done a lot to kind of build up that image because they’re saying, Well, this is that a niche that we can be in? Um, we can kind of cornered that market if you like. So I think a lot of the time that is the case on do very much. I’m glad you said what you said, because the whole reason that I wrote the article is because actually it does work in PHP. It works perfectly well. And, certainly, if it’s something that perhaps you don’t know if you’re going to use, you know you, might you? It might be for work purpose. You might sort sort of say, Hey, I’ve got this idea that actually might be able to use this data and someone goes Well, okay, yeah, Let’s come up with a proof of concept. If you already know Python you already know Java or whatever great. But if you don’t or it’s not your date state language, is it worth trying to learn a new language and a new tour set just to perhaps do some experiments in a proof of concept? Probably not So being outside. Well, actually, all this stuff will be done just as well in PHP. Yes. I mean, if you’re going into the minutia of Well, yeah, I want the ultimate performance and it’s been the most efficient way possible. You know, you might then progress onto Python or R whateverelses down the road. But actually, you know, we have used some of this stuff in production. You probably don’t want to run it in real time. You don’t nestle want someone completing a form or something, a payment and then it waiting for a real time response on whether that’s OK or not, You probably wanted to be in a, you know, a new event bus somewhere that just kind of works through and then flags them after you after the fact. Uh, but yeah, I mean, there is. There was no reason This stuff can’t be used in a lot of the experiments we’ve done. We’ve kind of discarded. But there are certainly things that we’ve gone. Actually what this is really useful. It’s It’s kind of helping identify patterns in data that we’ve noticed. So definitely, you know, brilliant for doing kind of some experiments and proof of concept, particularly, as you know, is my case it is ight my primary day today language, but actually yes, it works perfectly well in production setting as well.

JC: You said you went into this for fraud reasons?

LW: Yes. Assuming within e commerce.

JC: Now, was it trying to find something to use machine learning on or was how am I going to fight fraud, which came first?

LW: It’s very much the fraud thing. So as I mentioned we were in the gaming industry and we do effectively payment processing. I’m in. Over the last decade, we’ve processed about 25 million payments. Also we also see our fair share of people then disputing that on PayPal because Paypal makes it very easy to dispute pigments. Unlike wise kind of transient things on some of those might be for legitimate reasons. Definitely some of them will be. Well, I didn’t get this thing that I ordered Or, you know, it wasn’t what was described when I when I first went through the Web store, whatever house, but a lot of them will be And we’ve had people who admit to this go “well, I disputed it because I broke the rules and got banned from their server.” This that well, if you broke the rules and got banned from their server, Yeah, what did you expect to happen? Kind of thing. And it is those ones where the people will do it with every intention of disputing it that we’re going. We wondered if there was a pattern is there’s no way that we could have known it. And this was the point we didn’t necessary Want toe, invest the time learning hamster in python and using Tesseract or whatever else. Yeah, because we didn’t know if it was going to work. It was a thing of going Well, we’ve got this data. Let’s see if there are patterns So let’s do it in a way that is comfortable to us kind of right off the bat.

JC: Now. What kind of data were you feeding into it? Just transaction data or like full on customer data with the transactions to figure that out.

LW: So a bit of ah mix primarily is transaction data. So some of the things up, you know, could be quite obvious. So, for example. Let’s say someone uses a payment method like there’s a method in Europe called Ideal. Ah, it’s particularly used in kind of the Netherlands and Central Europe. Now, if someone’s using ideal on their based in Australia, for example, that’s an indicator, potentially, that something’s not quite right. And perhaps that they stolen details or, you know, it could be something potentially unusual about that. So it’s pretty predominantly transaction data. One of things that we lent is that the amount of data you put in on kind of the scope of that dates could be quite important. So when we first started, we were throwing all the data. Every piece of data we could find was basically going into this algorithm. We were just returning gibberish that the values were completely useless and actually trimming it down to your relevant data sets. So if we’ve got a player who purchases regularly, for example, looking for patterns within their purchases. So if if a payment that player a makes doesn’t fit their normal behavior, then that’s probably suspicious, even though it might look normal for a different player. Likewise, the different servers that we support you have, they sell different products, so one server might have products where the average values $5. Also, another one might have products where the average values $50. Now on that big server, someone making $50 purchase quite normal. on the smallest over someone making a $50 purchase. You’re going, Where are they really buying 10 items? That that seems unusual. So about really looking at the scope of the data and actually giving it a context that makes sense was saying that we found was better than just throwing all of the data at. That’s fascinating.

[00:15:49] EVJ: One of things you touched on in the article, and it’s a conversation we’ve had several times in the past on our podcast is the the integrity of the data you’re feeding the algorithm. Yeah, and you touch on that as well? About how, If you’re feeding it bad data, you’re going to teach it bad results?

LW Yeah, definitely.

EVJ: Do you have any wool of thumb of how to make sure you’re feeding a quote unquote good data?

[00:16:21] LW: I mean, it is difficult, and it depends why your datas bad. A lot of it is So, for example, with with with Tebex, you know, obviously the vast majority of payments are argued that they’re not fraudulent. There’s no charge backs, you know otherwise. But that wouldn’t be a good place to be. But the vast, vast 99.9 whatever percent of payments are all absolutely fine. And so with, such a a small percentage being bows. There’s charge backs for those disputes immediately. If you feed all your data in your programming, your bias into the system because it’s going to assume that payments are inherently good, you know, if only half a percent of all your payments are whatever data it is, if you’ve got two categories your category in category B. If 99.5% of all your data is category A, your algorithm can just say a all the time and arguably is 99.5% accurate. It’s completely useless, but it’s technically roght. So that’s one big thing is certainly looking at, you know, if you’ve got a balanced dataset set, how you how you approach that. Equally, you know, if you’re putting in lots and lots of dimensions of the different bits of data. So you know again, if you look at houses, for example, you might have the number of bedrooms and over bathrooms, the floor space, the yard space, whatever. If you put lots and lots and lots of dimensions in, then the importance of any one of those dimensions awfully becomes diluted. So you could have one dimension that slightly out, which, if you’ve only got three dimensions, is a big shift. But if you’ve got 50 dimensions, it will probably be unnoticed. Now, depending on your data, that might be absolutely fine. But it might mean that, actually, that’s one of your key dimensions and any that variance on that should be flagged, and it won’t be so. There isn’t really rule of thumb. Um, I think a lot of it is a so it’s a developer and running, not a data scientist. I mean, I failed math at school, so, um but but said his Ah, thank you for the greatest. All right? Yeah. Uh, it was very much a trial and error and come again while this didn’t work, so Okay, well, let’s pull that data out on try this data, Let’s get rid this dimension. Let’s merge dimensions together on that kind of iterative  process, which was much easier doing it in the language. We understood going back to the whole PH Pbit. Everything but yes. Oh, that’s that’s what we did. And it’s interesting something that I’ve been kind of doing some reading about. And I know we kind of had a brief discussion about it. Previously is some of the that bad data can actually also have kind of ethical implications as well. So, I mean, you imagine you had a machine learning algorithm that predicted Who would be good as an executive now, historically on, and you incorrectly, most executives were old white men. Let’s be honest that that’s been the case, but if therefore, if you pump all the data of all the executives into a machine learning algorithm, it’s going to say that all white men are the templates of follow. That’s not necessarily right. But that’s what it would do because you’ve taught it a bias. It might well be advice you’ve taught it intentionally, but you’ve just thrown that data in there and and that’s what’s going to come up. So you have to kind of be mindful of, you know, dimensions that you know, as a as a as a human don’t matter. Get rid of them. Don’t don’t bother. Put them in at all. If you know your data data is biased in one way or another, you have to try and kind of level that bias out on there are. There are techniques to do that on. Do some of those we do discuss in the article. But that is something that it is important to be mindful off because there have been plenty of examples. Um, you know, like in recruitment or a criminal sentencing and things like that were actually biases from old data have been caused uneven results in use.

JC: But that means that that also assumes, you know, your data that you’re putting into it. If you’re if you’re putting in 1000 dimensions and you’re not looking at each piece of data you’re putting in. You may not realize you’re putting it in there.

LW: Yeah, on there are techniques around that as well. So this isn’t in the article, but you can do kind of dimension reduction. So there are actually algorithms to go, “Well these dimensions are related.” So, for example, a few local wines, for example, certain wines that that the dryness of the wine is going to be related to this to the type of grape. To a degree. Now you could have dryness, and grape is two different dimensions in your data set. But actually there are algorithms that look at that and go while these two basically moving in correlation with each other, so you can then reduce those to a single dimension or likewise, saying with chocolate, you know the amount of the amount of milk in the amount of sugar will change the bitterness of the chocolate, right? Andi, you again. You know there are analogue rhythm will tell you Well, actually, you can smash those together on because they kind of move us one effectively anyway. And so that’s one technique of reducing the data even if you don’t necessarily know it in depth. There are techniques, toe kind of approach, that as well.

[00:21:42] JC: I’m fascinated with the payment processing piece on, and obviously I’m sure there’s limits to what you can share. But I’m curious that being your core business, do with A with the results? First, you’re feeding in new transaction data into a system that’s going to give you back, assuming a percentage likelihood of being good or bad.

[00:21:42] LW:  Yeah.

JC: Do you then use that to automatically take action? Or is it Then let’s use a human to take action on it.

LW: Yes, exactly. This And this is that thing that that I was saying Oh, I guess kind of related about Yeah, using an algorithm to make automated decisions. World seems like a brilliant idea to start with isn’t necessarily the best way. And we certainly wouldn’t kind of ever make a decision, just just based on that data, you know, it is very much a case of, well, okay, he gets flagged, and then the person can then decide what they want to do with it. They might go well actually I know this person. And yes, it’s out there normal pattern, but we know why they’re doing it. We’re running it sale, for example on. Then they’ll go. So that’s absolutely fine. They might get well, actually, yeah, we know this isn’t This is out of character for that person or you’re looking their historical data. That doesn’t make sense. And then they might either reach out to them to try and make sure it is a legitimate or just decide to actually your refund that payment straight away. So we certainly, you know, we don’t make automated decisions on this stuff on again. Actually, you know that there are more and more lots If you make ultimate decisions with this stuff, you have to be very careful because legally now there are lots of things coming in around that particular in Europe with GDPR automated decision making. There’s a a whole range of things you have to be aware off between kind of the consent and providing information alignment to challenge the decision and things that are great for consumers. Don’t get me wrong because you’re all too often as we said before, and you’re unconscious. Biases can really screw certain people over and so definitely it’s undoubtedly a good thing. But for those reasons, we kind of go no, It’s an information tool for us rather than a take action on this thing and so little that’s a good idea.

[00:23:42] EVJ: So you touched a little bit on ethics with data in him in putting data. Are there any other, like real ethical concerns you have around machine learning that you feel should be addressed?

[00:23:57] LW: Yeah. I mean, I think a lot of it comes down to up until kind of very recently, machine learning and kind of artificial intelligence more generally has been pretty much like a wild West sort of situation, has not really been any guidance on, and people have done all sorts of your ultimately pretty bad things with it, put it mildly. And I think a lot of those things we are now starting to come around to the fact that actually some of the decisions that perhaps we’re being automated on the front decisions we alternate and that has to be in a human touch. I think that’s that’s the thing for me is actually you know, where possible yes, use kind of machine learning and artificial intelligence to assist a situation. But don’t make it be the gatekeeper. Have someone who maybe not every every kind of decision that’s made, you know, someone like Clouflare  used artificial intelligence machine learning in some of their their kind of rate limiting and on their Web firewalls and things like that. Now that you got, he can’t possibly check every single on those decisions manually. But there should be that continuous Well, actually, let’s let’s keep reviewing the data. Let’s keep reviewing the decisions that been made on as humans make sure they are the right decision. And I know in the US, you’ve got some laws starting to touch on some of that kind of thing I think you guys tend to call them is algorithmic accountability laws. I know there’s one in New York that hasn’t gone so well. I think you know,  it’s a good idea but perhaps the implementation is not great. I know. Uh, a bill was brought to the Senate last year. I don’t think it went any further. Um, I pretty much think it. It’s still being bounded around in in the back. The back channels of power, I’m sure, but I know there are you even kind of lawmakers as well as companies, we’re starting to realize. Well, actually, we need to put some, you know, thought into how these decisions are being made and actually making sure that we’re not allowing runaway algorithms toe potentially ruin people’s lives, which would get good.

[00:26:02] JC: I like that. You know more about our government than I do.

LW: I did research, too

JC: Now I have one more question around. Using machine learning show at scale. Are you feeding the data into your script every single time or do does it basically save some sort of state where you can just add new data into it to get faster results?

[00:26:17] LW:  Sure. So this is one of those things you know, once you put your training day to end, you definitely don’t want to have to be retraining every time because that that would be horrible and slept. Um, now, the way, the way we’ve we’ve done things like this is actually having a long running processes. It does save the state as well. So the data that gets set fed in this process when we store a state, but rather than because still really in that state takes a little bit of time. If you want to do it multiple, thousands of times a second or whatever. So having a long running demon effectively, that we can just go Hey, give me a decision on this. You mean decision on this? The state is still obviously active and fresh it it’s it memory. So we do that. But yes. I mean, once you’ve done the learning from from the training data set, you can then store that and then load that rather having to go through the training every time.

[00:27:17] KC: All right. Something I definitely want to look into.

WCJ: I think this is just so fascinating.

[00:27:23] LW: It is saying that I found interesting because, you know, obviously, for you know, that the source of experiments would be running at work and, you know, kind of flagging payments, that sort of thing. It’s only a very small set subset of machine learning is the sort of thing we’re looking at now. You know what were then? What I’ve been done is because that’s been interesting. I’ve then gone on and done well, actually, You know, for example, could I use it to predict the values of houses? And again, it’s still that thing. As I mentioned getting, I have to have a goal so it might be made up. It might not be, ah particular. I’ve not turned valuing houses into a business or anything. perhaps I should. I have not done that, but but equally. I kind of set myself a challenge and say, Well, if I’ve got houses that I know how many rooms they’ve got that said, the floor size that the yard size, that’s what can I then use that to them, predict the values of other houses? If I plucked the data? And also I knew that the techniques and the tools I’ve been using to that point weren’t going to have to do that, Um, but that there would be other algorithms and the ways of doing that and dismiss it into those, And sure enough, I made it work. But to find out how you have to read the article

[00:28:27] EVJ: ,You use that as an example because as we’re having this conversation, the first thing that popped in my head was that my wife and I have been playing around with the idea of moving and going through listings on Zillow, which is Ah, real estate website here in the U. S. And a Zwiers. Why didn’t happen? You’re picking features you want, but each, like my wife and I, we each have our characteristics of a place we want to move to. And we might have different weights on things like I really want a poll. But, you know, I’ve also make garden. But, Matt, as much as I want to pull Yeah, and I was just thinking, Hey, I had to check and make this some machine learning. They just put in all those characteristics the different weights it just handed hit Zillow and let me know of properties that would be interested in.

[00:29:16] LW: But But more than that, I mean and this is where your rather than you’re telling it what you think you want. What you should actually probably do is just tell it. Give it houses that you like the look off. They might now even be houses that are for sale. But you could say, you know, you find 100 houses, you’re like, I like that house now out of the house and these are the details. It will then tell you the house you actually what was mine will be the one you think is

[00:29:35] EVJ: this Jesus! Way to stop this Now! I got coding to do, everybody This is such an exciting aspect of her industry. It’s things like this that really just get me going. I love this sort of stuff. I’m so happy you took the time to write this article. I I really am resentful now that we don’t have conferences right now that I would love to see you speak on this somewhere. Anywhere I would go.

[00:30:13] LW: We’re supposed to be a php[tek] right now.We’re not It’s so sad

[00:30:15] EVJ:  Heartbreaking. That’s actually correct. We’re supposed to be. We were supposed to be in the It was a myth commitment this national day. Here we go. Yeah, well, maybe this is exciting on, and this is it.

[00:30:28] LW:  I think that, like you said, it is exciting and very much as long as a seven year a song. As we as developers and humans are kind of at the wheel as it were, there is so much cool stuff we can we can do with it from identifying houses we like from working out even things like, you know, what techniques are working well in schools, for example, that there are so many different things that we can learn new things about data that we don’t necessarily know. And that’s something that that again kind of it in, In part two of the article, it goes on to talk about, you know, identifying patterns you don’t yet know. We all think we understand us as people. We think we understand the dates we work with. But actually, one of the one of things I think is most interesting about about machine learning and particularly unsupervised learing is kind of the arm of it is the fact that it will teach you things that you never realised about your data. Okay, Well, actually, these things will related, and you’re like, I literally never thought of that before, So it’s that site sort of thing that you can make some really unknown. Surprising, definitely, but actually really cool discoveries about any data set.

[00:31:37] EVJ: Really, man, I got weekend projects for the next month in my head gee

LW: Sorry.

ECJ: Don’t be I appreciate it. And I’d love this, uh, him this. Okay, so we are running out along. I want to be respectful of your time, but I also wanna kind of put out this is not all you do. I mean, you’re you contribute toe open source packages. You look Thank you. You’re kind of a level person to Are you Are you a friend of Laraval framework or…

[00:32:06] LW: I I’m a fan of whatever tool allows me to do my job to be, to be perfectly honest, I was I had never touched level before until I joined the company I’m at now a zai mentioned kind of the rollers up before was ah, Magento A lot of what we were doing was kind of a Magento and that sort of thing. So I was kind of on the magento and still dabbling in cell F one kind of way, way longer than Richard. Um, and then kind of when I move, when I move to Tebex, which is where I am now, they were using verified already says that. Okay, fine. Well, guess I’ll let a lot of other on, and I think very much my view on open sources. I don’t maintain huge open source projects. I used to be a maintainer for, but now that’s been dealt with by some people far more equipped to deal with it than I ever was. So I’m kind of really pleased that those guys took over. But definitely I think it is one of those things where, you know, I have always been a case of if it’s something that’s bugging you. If it’s a niche that you need to scratch, then it’s probably a problem for someone else’s well on. That’s always been my my philosophy. So if I’ve ever had issues, you going back to my Magento days, there’s ah ah products importer that everyone used and there were features that it didn’t have that people just moaned about it. Is that well, if you moaning about it, fix the thing right, that that’s way it’s open source and I did so you know, I contributed a number of patches to some of those projects because they they were issues I had. If I had them, some that’s had them. So if I have solved it, then I may as well put that back into into the codebase so that it’s now result for everyone. Right, like wise with Laravel L you know one of the things that that kind of might My main package at the moment is ah ah, just in time relationship loader. So you normally for using our ends like eloquent or doctrine or whatever else you’ve got to be careful Toe eagle owed. You know any relationships you’re going to use because otherwise you get em. Plus what issues and DBA coming, shouting? I’m my own DBS. So I shouted myself. It’s a strange but you know, and that and that’s great And yes, imprint support. We should all kind of go right, these relationships we needs and let’s Eagle owed them. When we load that the culture new the reality is half the time You don’t know what relationships you’re gonna use The other half the time you’ve got some designer that’s gonna go and change the blade files to then load some other relationship in that you never thought off. And you know, you have no idea on so the idea behind this the kind of relationship loader, actually came from a talk I went to ah, Ruby talk. Weirdly, it was something that this this this this guy he was speaking had done in Ruby on day said Yes. So we have this problem and we couldn’t. I’d necessarily identify all the relationships we need to loads. We wrote this thing that then you on the fly. If it detected that this model was in a collection and it was about to load a relationship, it then leads it for the whole collection. What? We could definitely do that in PHP. And I’ve had a quick search No one had done it, certainly not for Laravel So I went and on my flight homes. This was from Vancouver. I wrote the first version of the package and then because it solved a problem for for us and for projects that I used it on workers. Well, it did have a massive impact. It massively reduced. The number of DB grooves were running. Says that right. Well, other people almost certainly having this problem. So let’s put it out there. And I mean, there are packages that have had way, way more in stores, But I think it’s had 13,000 also install, so it’s actually helping some people. So that’s that’s all good.

JC I’m sure once people hear about it will help. A whole lot more people don’t know. They just don’t know they want it.

[00:35:48] EVJ:  Well, I could said, I mean, this is just like it doing talking about this all day. I am just such a fan. I can’t state to you enough how much I appreciate you’re writing the article, How much I appreciate everything you’ve done for the community. I hope there’s more information and you that you’re willing to share at some point. And when you do, please let me know

[00:36:18] LW: I will do my best. I mean, it’s been really get a You know, it’s one of those things that with my work with having four kids as well, whatever else I don’t work in this. Yeah, full kids. I’m probably insane. I don’t know. Ah, I know with having four kids and I got roped into being a parent governor on our school board and things like that as well. So with everything that’s going on, I don’t always have the time to necessarily give back as much as I would love to, because this guarantees given me an awful lot. You know, a lot of the conferences up into the people I’ve met and being out chat with with people like yourselves and whatever. You wouldn’t necessarily get that in a lot of industries, So I d. I do try and give back as much as I can. And hopefully if if the one thing that people do go and read the article and then take away is well, actually I can go and start running some experiments and try some things out, then that’s really all, all on hoping for

[00:37:16] EVJ: Well, you know, there’s a publishing arm of PHP architect where they do books, and I don’t think there’s any PHP machine learning books out there. I’m just saying, if you need something else happened, you might want to talk to Oscar about that direction because I would definitely be first in line to buy one.

[00:37:34] LW: Ah, that could open a whole can of worms. Not sure what my wife would say. Yeah, I see. I see you in six months,

[00:37:42] EVJ: But think how much she’d appreciate you when you came back and then six months later, I got that big publishing credit to your your TV. Come on.

JC Residual income month after month.

[00:37:58] LW: I mean, first. I just need to get you to to sell it to its fine honey. honey, You four kids, you do such a great job with them. Let me go do this.

[00:38:05] EVJ: Yeah, we have real fast. Before we let you go tell us about the local user groups you’re part of?

[00:38:18] LW: Yes, sure. So the nice thing about the UK, I guess, is whether being such a small country, lots of user groups of local user groups that that, you know. So, to, you guys in the U S would be like, Oh, it’s just around the corner and it’s, like 70 miles away or something. I don’t know, but no. Certainly in. Nottingham where I’m based, You know, we’ve got the php minds user group. Now they do some really cool things that gets, um, really good speakers. Derick Rehans has come down a few times. Jane spoken there a few times. Rob Allen way. Get a nice little kind of mix of speakers on a whole range of topics. No. Ive unnecessarily just kind of PHP It can be kind of related things as well. That’s really cool. Certainly in Notingham. We’ve got a lot of Polly got user groups as well, kind of just general Web or digital kind of user groups. And that’s really nice, I think. As I mentioned before, Yeah, one of the things that I’m particularly proud off came from a Ruby talk. And actually, I think one of things that all tech communities are not necessarily too good at is learning from each other you know, were to quick, be too quick. Sometimes I guess to bash other languages like you writing dot net or whatever. And actually, there was some really cool things that all different languages and different frameworks. And, you know, CMS is whatever doing that we can all kind of use. I like that idea, and I can take it from there and I can take inspiration. So, you know, groups like second Wednesday, not Tuesday, you know, they do some reading it. They bring together lots of different ideas, from from your different languages and different ways of working and your front end and back end whatever else, and it’s really cool to kind of get that mix of of everyone working together and sharing those ideas.

[00:40:04] EVJ: Cool. Thanks, Liam. Thanks for taking the time to talk to us. We do Just totally appreciate. We appreciate you and everything you’ve done for the community. Thinks again, man.

[00:40:12] LW: Thank you, guys. It’s been it’s been really good. I mean, this this is actually been I don’t think I’ve ever done a podcast before. There’s been a lot of fun. So So thanks. Thanks

[00:40:21] EVJ: Your a natural. Thanks for listening to the PHP podcast interview for PHP Architect magazine. I really hope you enjoy this do format. Please let us know how you feel. If you have any suggestions for people you’d like to hear interviewed, feel free to mention us on Twitter at PHP Arch as PHP-A-R-C-H. Until next month.

Air date May 28, 2020
Hosted by Eric Van Johnson and John Congdon
Guest(s) Liam Wiltshire

Leave a comment

Use the form below to leave a comment: