PHP Architect logo

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

PHP Alive and Kicking Episode 15: Below Deck with Frank Wallen

 

PHP Architect Social Media:

X: https://x.com/phparch
Mastodon: https://phparch.social/@phparch
Bluesky: https://bsky.app/profile/phparch.com
Discord: https://discord.phparch.com

Subscribe to our magazine: https://www.phparch.com/subscribe/

Streams:

Partner

This podcast is made a little better thanks to our partners

Displace

 

Infrastructure Management, Simplified
Automate Kubernetes deployments across any cloud provider or bare metal with a single command. Deploy, manage, and scale your infrastructure with ease.
https://displace.tech/

 

 

PHPScore

 

Put Your Technical Debt on Autopay with PHPScore

Honeybadger.io

Honeybadger helps you deploy with confidence and be your team’s DevOps hero by combining error, uptime, and performance monitoring in one simple platform. Check it out at honeybadger.io

 

Music Provided by Epidemic Sound

https://www.epidemicsound.com/

Listen

Transcript

PHP Alive and Kicking – Episode

Show: PHP Alive and Kicking

Transcript

[04:13] <v Mike>Hello and welcome to php alive and kicking brought to <v Mike>you by php architect and our partners at <v Mike>this place more about them later this is <v Mike>the podcast that explores the latest developments in php and what it's like <v Mike>to earn a living in php today i'm one of your hosts mike page and i'm a developer <v Mike>at php architect and my co-host is a long time contributor to our magazine and <v Mike>now fellow team member chris miller hi chris. <v Chris>Hey mike how you doing <v Mike>Not too bad not too bad yeah i'm. <v Chris>Here i'm alive not sure about awake this time <v Mike>Oh well hopefully we will do we've got a special uh edition uh this we have <v Mike>um for this and we are live so please head over to our discord uh channel sorry. <v Chris>Words words already got out
[05:08] <v Mike>Ah yes what who let who let the let the cat out of the bag who's leaked the fact that.
[05:16] <v Chris>I don't know but joe what thinks we've let the dogs eat
[05:23] <v Mike>Okay okay i feel sorry for our guests if that's if he's referring to our guests but hey well, <v Mike>anyway if you're over in youtube watching us <v Mike>head over to discord um where you can join in the <v Mike>chat ask questions um the discord isn't just <v Mike>for when we are live you can join in <v Mike>all week long cool conversations going on in there <v Mike>um all sorts of people in there we've got <v Mike>uh php core developers in there <v Mike>and we've got packaged um maintainers in <v Mike>there and so yeah it's great time uh youtube <v Mike>as i'm saying if you are watching us youtube please like <v Mike>and subscribe the channel it helps us a great deal and you <v Mike>also get notifications when we've got more videos out it's not just this podcast <v Mike>we have the the main podcast with eric and john and there's also the community <v Mike>corner with scott and uh some um i think he is does he still i think scott is
[06:19] <v Mike>still doing some tutorial videos as well which is great um.
[06:24] <v Mike>Chris is chuckling at something let's just ignore what's <v Mike>going on there uh we have a magazine as i said earlier we <v Mike>do produce a monthly magazine and we have a discount for you and that'll be <v Mike>up on the screen a live three will give you the first three months of a digital <v Mike>yearly subscription for free um some great content in there articles about php <v Mike>and surrounding technologies that we're using in this world. <v Mike>Not only do we do some development work and we have the magazine, <v Mike>we also run a conference called PHP Tech. <v Mike>Tickets are on sale for that for next year. <v Mike>Alongside that, we are running JS Tech. <v Mike>And we have Call for Papers is open right now. <v Mike>So please submit. Please submit your talks to come and talk at JS Tech. <v Mike>There is a link there for Session Eyes on the screen right now and it will also
[07:21] <v Mike>be in the show notes as well. <v Chris>And the good news is that as we learned today from john the net the call for <v Chris>papers is going to be open for another month or so <v Mike>Uh yes yeah extending call <v Mike>for papers you've got a bit longer to to come up with those ideas of <v Mike>what to put in uh we also have our store <v Mike>uh where you can get some t-shirts and <v Mike>hats cats mugs what all sorts <v Mike>of things in there store.phparch.com head <v Mike>over and check out the the merch there uh both me and <v Mike>chris is kind of although these weren't these are these are staff tops <v Mike>i don't think these are available to to general public but <v Mike>there's an array of different things you can get hold of in there <v Mike>it's a really cool t-shirts i still need to order that one thing <v Mike>that i like i haven't done that yet okay as i said this is a special episode
[08:10] <v Mike>we've already leaked what who's coming on uh this is a below decks and the name <v Mike>comes from a words if he's in if he's in the discord today yeah. <v Chris>So we have the man the myth the legend that is frank wallen hey frank how you doing hey <v Frank>Guys thanks for having me on <v Chris>I mean it was inevitable that we were going to get you on eventually oh
[08:40] <v Chris>eventually yeah so frank you've been listening to our podcast for a while so <v Chris>you know what the first question is how did you get into php
[08:53] <v Frank>Yeah, that's, boy, that was a long time ago. So I used to be in video game development. <v Frank>And at that time, I was just a project, basically a project manager, <v Frank>they called us producers at the time. <v Frank>And so I was helping move a lot of data, working with spreadsheets of these <v Frank>football teams, American football teams, things like that. <v Frank>So one of the issues that we had was Sony was our big parent company would provide us with bug lists. <v Frank>And we got that through, I don't know, it was like File Manager Pro or something. <v Frank>I can't remember what it was. We had to pull it down and it was just this big document. <v Frank>And then the guys would go around, print this thing out, clip off with scissors, <v Frank>you know, these bugs and then go hand them to the engineers. <v Frank>They're supposed to work on this bug. <v Frank>And I was like, you know, I haven't been a project manager for very long,
[09:55] <v Frank>but I was like, where's the tracking? <v Frank>How do we know what's going on? Who has what? You know, it was crazy. <v Frank>And so I started thinking about this going, how can we do this better? <v Frank>Is there systems out there? And there were, but they were very expensive. <v Frank>And I didn't think Sony was going to be open to, or at least our company was <v Frank>not going to be open to doing that. <v Frank>And then I saw, you know, you could just run your own web page, right? <v Frank>We had our own intranet, and so I saw that, hey, we could do this in PHP, <v Frank>and I was like, well, I know how to program, so let's pick it up and learn it. <v Frank>That was PHP, I think it was three and four. <v Frank>You know um so i started learning that to build a bug tracker which was a great <v Frank>way to learn how to program a php
[10:45] <v Frank>so <v Chris>Did you track your own books in the book tracker that <v Frank>You know but i was just thinking about that as i said it you <v Frank>know yeah yeah it's uh well there was a bug it was it was it was in you know <v Frank>massive email threads you know and everybody was constantly telling me what <v Frank>was wrong you know it was interesting um especially learning uh query language you know proper sql <v Frank>And um um that <v Frank>was just you know very con <v Frank>it was it was difficult to to figure it out because i <v Frank>was kind of on my own um and at <v Frank>one point the system was very slow and they <v Frank>were complaining about it and they even <v Frank>sent like their top senior programmer over <v Frank>and said we're going to walk through your code and see <v Frank>what's wrong and we walked through the code and <v Frank>he's like I don't know what's wrong you know
[11:41] <v Frank>and I was like all right thanks and then <v Frank>he left you know so I sat down and started looking <v Frank>some more and then it dawned on me that I'd had <v Frank>a join was basically flipped <v Frank>you know i was you i was looking <v Frank>at the largest table we had and joining <v Frank>to that you know and i should have been going with a more direct <v Frank>you know what's the minimal number of rows i can work with right and flip that <v Frank>around and suddenly that afternoon was flying and working great and um yeah <v Frank>it was a very fun experience and i didn't I kept continuing to program in PHP after that, <v Frank>but mostly for myself and little <v Frank>tools to help myself because nobody else seemed to be very interested. <v Frank>I was trying to put out things like Tiki Wiki, you know, get Wiki up there. <v Frank>But nobody was really interested in it. These guys were kind of epitome of cowboy programmers, I think.
[12:40] <v Frank>Yeah an <v Chris>Interesting first product to choose when your life was project management to <v Chris>build something that is used to terrify developers <v Frank>Yeah right it worked yeah it kept these guys going on their bugs because it <v Frank>tracked like even if somebody passed the bug off to like a subordinate it. <v Frank>Things could not be checked off, you know, unless that superior checked it off. <v Frank>So the subordinate could say, oh, yeah, I finished this bug. It's done. <v Frank>But the guy, his lead had to look at it and say, yes, it's done, <v Frank>you know, or to basically proceed. <v Frank>So, yeah, it was a really good experience. <v Chris>It really is a brilliant app to learn on because you are covering the whole <v Chris>stack there of how to handle database entries, how to handle moving things back <v Chris>and forward in a flow, how to… <v Chris>I don't think I could think of a better project to throw somebody into your
[13:40] <v Chris>first project. It was really good, <v Frank>Yeah. Any other languages I ever wanted to learn, I started off, <v Frank>of course, way back on the old TRS-80 computers, learning BASIC, <v Frank>and then I learned assembly language. <v Chris>Yay, I am not the only assembly language programmer. <v Frank>Yeah, no. In assembly, I thought, it was hard, But I felt so powerful at the time And it really…
[14:05] <v Frank>Cemented some concepts, I think, for me later, because it seemed like every <v Frank>language I learned was just kind of easy after that, you know, <v Frank>it was a matter of learning structure and flow, of course, you know, <v Frank>the little mid bits about, you know, how they function. <v Frank>But, you know, when I got to C, eventually C++, you know, references totally made sense to me. <v Frank>I was like, exactly, because that's what we worked with is just a pointer. <v Frank>You know, all I have is this address of where my data is and <v Frank>i better know its structure you know <v Frank>i'm going to make things really bad you know so um <v Frank>yeah it really helped so and then you know eventually <v Frank>uh yeah php just something i was always kind of messing with and making my own <v Frank>websites and fooling around with that stuff and you know eventually i got to
[14:53] <v Frank>the point where like i better have a new job you know because the game industry <v Frank>was so damn difficult um that's what i went with i <v Chris>Don't know why you find working 25 hours a day a bad thing <v Frank>Oh my god yeah luckily my kids remembered who i was
[15:13] <v Frank>they thought i was a hero you know because oh my dad's a video game developer <v Frank>i'm like oh you know i don't i <v Mike>Think i think you're a hero that sounds pretty cool to me. <v Frank>Yeah it was it was really cool yeah yeah the text and all that stuff really <v Frank>interesting and fascinating a lot of really smart people you know to work there <v Frank>I mean some of these guys were just brilliant with some of the low-level stuff they could do
[15:43] <v Frank>you know it wasn't just the c language it was like some of that was like they <v Frank>had to they're doing some assembly language you know on top of that to manage graphics you know i <v Chris>Think people forget that is where the industry once was that you didn't have <v Chris>like unity or the unreal engine or whatever it was literally okay we want to <v Chris>make a game and we currently have a blank screen that's where we're starting <v Frank>Right and I was that I was always a game I was trying to build in every language <v Frank>I was learning I was like what's the PHP I went with a bug tracker you know but yeah yeah I <v Chris>Mean it amazes me that theme park I don't know if you remember that but that <v Chris>was written entirely in assembly language
[16:30] <v Chris>It was like a hundred lines of code to write hello world. <v Frank>Right. It's like, yeah. Oh my God. Yeah. <v Frank>You had to, somebody really forced you to try to have some kind of organization <v Frank>or at least understanding, you know, breaking your code up somehow. <v Frank>Cause you could just, just overwrite everything you were doing. <v Mike>You know? <v Chris>Yeah. Yeah. And then remembering which, which address you put that bit of information <v Chris>in and, and remembering that not every computer had 16 bits <v Frank>Because no at <v Chris>That point 8-bit was the processor i was using <v Frank>Yeah yeah i mean i was yeah i was working on that trs80 <v Frank>it was a z80 chip and you know um once i started getting into like memory maps <v Frank>and like these larger you know bit memory i was like oh i'm getting lost now <v Frank>you know but um as long as it was in 16 bits i was fine you know So I learned
[17:23] <v Frank>binary and hexadecimal and, you know,
[17:28] <v Frank>assembly was just really great because it was just fast compared to, you know, on the TRS-80. <v Frank>TRS-80 was about twice as fast as the Apple, as I recall at that time, <v Frank>but Apple had the really nice color graphics, you know, and ZD, <v Frank>the TRS-80 didn't have that, but it was, yeah. <v Chris>You say color graphics, it was eight colors. <v Frank>Yeah as opposed to two you know but uh three if you were using if you were <v Chris>Using hash maps you could do gray <v Frank>Yeah right yeah i tried <v Frank>to do some of that stuff some people had done some pretty clever ways of using <v Frank>ascii characters to make explosions look cool and i <v Frank>hadn't gotten that far but i was just trying to draw a map <v Frank>on my screen and it was taking forever just <v Frank>watching it you know progressively draw and <v Frank>uh it drove me insane i was like how can i do this faster than
[18:19] <v Frank>there that i was learning oh assembly language is the way i was like <v Frank>all right great let's learn and then there was a cool way of hybridizing and <v Frank>actually injecting assembly into your basic language which <v Frank>is really cool uh made the list you know <v Frank>when you went to list your code it made it look obfuscated because you had <v Frank>all these crazy characters flying across the screen but you <v Frank>know it was and then it's and suddenly all of a sudden my maps are like instant <v Frank>you know instantly drawn on the screen and it was really really exciting um <v Frank>i guess that's the kind of stuff that what makes you a programmer is like when <v Frank>you have that result you're just so excited yeah having solved it you know the <v Chris>Little dance that we all do it's like that worked why yeah that didn't work why <v Frank>Yeah that was the worst part with assembly is like when something went wrong
[19:07] <v Frank>you're just like well i have no idea where it's happening you know in debugging <v Chris>It was very difficult <v Frank>Oh it was so difficult it was hex maps you just go look at your hex map and <v Frank>see what's going on and try to read the data it was terrible but good experience hmm <v Mike>Well on that uh cheerful note i think we should uh go and hear from our partners.
[19:36] <v Frank>Thank you to our partners over at Displace Technologies. Building PHP applications is your passion. <v Frank>Managing cloud infrastructure shouldn't be your headache. Displace is your partner <v Frank>in cloud infrastructure orchestration, <v Frank>giving solo developers and small teams the tools and automation to deploy enterprise-grade <v Frank>Kubernetes clusters without the enterprise-grade complexity or cost. <v Frank>Their CLI tool streamlines everything from local development to fully managed <v Frank>cloud deployments on AWS, Azure, Google Cloud Platform, and more. <v Frank>Skip the steep learning curve of Docker, Kubernetes, and Terraform. <v Frank>Let their automation free you to focus on your core business without losing <v Frank>control of your infrastructure. <v Frank>Get started at displace.tech, that's D-I-S-P-L-A-C-E dot T-E-C-H, <v Frank>and discover how the right tools can and eliminate the need for a full DevOps team.
[20:33] <v Mike>Thank you thank you displace so so frank you've started off doing uh game development <v Mike>you learned php to um track the bugs within the games how did you how did you end up at architect. <v Frank>Yeah so many years <v Frank>um so at <v Frank>one point um and it was before let's see <v Frank>um i was just working <v Frank>at these different game development studios and basically <v Frank>anytime a contract was done there's always <v Frank>the fear that the studio was done and that <v Frank>tended to be the case once a contract was done <v Frank>your job was basically done and you're <v Frank>freewheeling it and had to find work and um <v Frank>as you know as chris had mentioned earlier like you're <v Frank>trying to extract more hours out of the day than the day <v Frank>is long and you know you're you're you <v Frank>know you kind of suffer for it you know and i <v Frank>wanted to spend more time with my kids and you know
[21:33] <v Frank>stuff like that be more at home and uh <v Frank>once the final studio once the final contract was done i said i'm not going <v Frank>back and um i need to do something different and i thought i think my next best <v Frank>step honestly is just really go all in as a web developer you know um especially Actually after I was, <v Frank>you know, like, yeah, I went into that and started doing like just some stuff in WordPress, <v Frank>not that I'm a WordPress professional or anything like that. <v Frank>It was pretty challenging building like a shopping cart for lady who sold shoes, you know. <v Frank>And then one of the guys that I had worked with came to me and he says, <v Frank>hey, we got a contract with this company to do a game for their app on the phone. <v Frank>And we'd like we'd like you to help us do the programming on that because we <v Frank>can do HTML, you know, all that kind of stuff.
[22:30] <v Frank>And so we're going to we did it with JavaScript and the PHP, <v Frank>a simple PHP back end, because all we really were doing is just, you know, getting data. <v Frank>And no, it was not a proper API. I'm sure if I if I could find that code again <v Frank>and go look at it, I'd be terribly embarrassed. <v Frank>But it was a good learning experience for that. <v Frank>But so I just kept doing that and kept working and then got some different jobs <v Frank>doing PHP work through some temp service agencies, you know, stuff like that. <v Frank>Eventually I was working for a storage company. <v Frank>Um, working on their app, you know, their whole browser, the whole backend and, <v Frank>you know, rendering on the browser for storage, like reserving storage units and things like that. <v Frank>So we had to be going, you know, stay on top of the inventory and sending out notifications.
[23:26] <v Frank>I had to work, learn to work with Twilio to make calls to this, <v Frank>to the different offices to say, hey, you got a reservation, <v Frank>go check it out, you know, to go get your, close your sale, you know. <v Frank>So that was a, and that was a great experience going, because they had a, <v Frank>their app built originally on Symphony One, I think it was, or what version of it? <v Frank>Was it one? No, I had to look back. But I got to work on the upgrade, <v Frank>you know, actually building it out in a brand, you know, much newer <v Frank>version of symphony um so that <v Frank>was a really fun experience but then eventually they brought <v Frank>a guy on another pro well we <v Frank>had another programmer he left they brought another guy in who'd worked <v Frank>with them before and this guy was just uh he was classic web developer where <v Frank>you know you threw him at a task and he just did it any way that it was possible
[24:21] <v Frank>and and he got things done but he came to me one day and he was very frustrated <v Frank>that to build a query through <v Frank>you know the orm you know <v Frank>And he said, I can't tell what's going on. And I was like, well, <v Frank>it says table and select columns and join. <v Frank>And it's all very, it's there. It's just we're going to this RM. <v Frank>So for some proper safe binding and all that kind of stuff. But he kept writing <v Frank>raw queries all the time. <v Frank>And when I was like, hey, I don't want to work like this, you know, <v Frank>they were kind of said, well, you have to. And so I was grumping about it at <v Frank>the meetup, San Diego PHP meetup with John and Eric were running. <v Frank>And I'd already been doing some presentations there at these meetups, <v Frank>Pocket Met Symphony and things like that. <v Frank>They heard me grumping about that job and they said, are you looking for a job, Frank?
[25:22] <v Frank>I was like, well, as a matter of fact, if I could find something better, yes. <v Frank>And so they talked to me and interviewed with them and they brought me on to <v Frank>work with them threw me into the deep end of a legacy app and I eventually surfaced I'm still alive
[25:43] <v Frank>so <v Chris>You went from complaining about working with raw sql queries to working with raw sql <v Frank>Queries It's all over the place and accepting their existence. And yeah,
[25:57] <v Frank>yeah, we do. Yeah. So, <v Frank>but at least the, well, the legacy stuff, this other guy had been writing was <v Frank>just like, you know, just straight raw queries and, and ignoring the fact that <v Frank>we had this nice framework with a nice ORM, you know, <v Frank>you could have at least taken your raw queries and thrown it to that thing. <v Frank>But no, you know, at least in this, this one that I work in still, <v Frank>we still have, of course, there's plenty of code that's still legacy. <v Frank>That stuff just does generally kind of go through a database layer that they <v Frank>put together, you know, but it's, yeah, eventually we'll turn that stuff around. <v Frank>But, you know, that goes. <v Chris>I mean we joke about it but raw sql does have its place even with an orm there's <v Chris>there's times where it would actually be worse for the query to write it through
[26:49] <v Chris>the orm and through raw sql <v Frank>Absolutely i see that all especially well it depends on the and i don't want <v Frank>to be dissing uh really dissing frameworks and stuff like that but i you know <v Frank>i came from that time where <v Frank>if you were joining a bunch of tables together you know the idea was to make one query call <v Frank>and try to get as much of your data as possible. <v Frank>You know, so, you know, I know that there's some ORMs and they say, <v Frank>oh, yeah, you could just do this relationship and all that. <v Frank>But I know that I'm pulling that record, the main one, and then that relationship <v Frank>is generating another query to pull that data. <v Frank>And, you know, part of me is like, well, gosh, you know, because you could just <v Frank>build your query and your select and, yeah, namespace your selects, <v Frank>you know, your data that you're pulling and then, you know, hydrate your models
[27:37] <v Frank>after that and you can have all your data without making these extra calls. <v Frank>You know, that is kind of probably the most efficient way to do it, you know, but I get it. <v Frank>It's difficult for a lot of people to pull that off, especially when things <v Frank>change because, oh, my gosh, now you've got to go back and rewrite your query. <v Frank>That's the worst part, you know. It's not going to change, you know.
[28:01] <v Chris>Yes, we've all worked with code that's definitely not going to change.
[28:07] <v Mike>Yeah that's that's the nature of working in legacy code yeah yeah it's uh it's <v Mike>one of those things where you i i've learned over the the months year the sort <v Mike>of the year just over we're actually it's coming up to almost two years i've <v Mike>worked for architect now as we said just before that's that's, <v Mike>that's quite not scary but it's like mind-blowing that it's been that long um. <v Frank>It's great yeah <v Mike>But yeah you you have to be so careful what you touch it's almost like playing jenga. <v Frank>Yeah it's <v Mike>Amazing one yeah you want to try and move one block without everything toppling <v Mike>over and it's almost impossible you have to be so. <v Frank>Careful i've broken entire systems i've broken entire systems like that i'm <v Frank>like oh this function is horrible why are we doing this you know why are returning <v Frank>this value like this it should just be like this and oh then you discover like
[28:59] <v Frank>what else you really broke yeah you <v Chris>Change it you go oh that's why <v Frank>Yeah you know it's like you're supposed to return junk you have to you know <v Frank>so you go back and refactor those other systems to accept something different <v Frank>you know um but you know and i don't i i you know i worked at One job, <v Frank>it was at a company where, you know, basically porting NASCAR 07 over to the Wii and PS2. <v Frank>And there are these, you know, the menu, the front end menu was really run by flash. <v Frank>So they had that embedded in the engine. <v Frank>And so it wasn't just like one layer of Flash and then a layer of functions in your code. No, no, no. <v Frank>You had your C code, C++ code, and you had to build your communication layer <v Frank>that would talk to the communication layer for Flash. <v Frank>So you had these different levels like that. It was really difficult.
[30:06] <v Frank>And I was like, I just got to get this done. And, and so one time I took a function <v Frank>that was supposed to, you know, do one thing and I, I changed it. <v Frank>So it did more than that, you know, like it either returned to value or it did something else. <v Frank>And, you know, the other programmer was very upset with me for doing that. <v Frank>And I said, I totally get it, you know, and I'll fix it. And the other, <v Frank>and another guy who was basically the lead said, no, I think it's brilliant. Leave it alone. Yeah. <v Frank>Just leave it you know because we gotta we gotta we gotta ship you <v Frank>know and it's unlikely that the same <v Frank>engine is going to be used again they always wanted to do that but it was really <v Frank>hard well chris mentioned unity earlier so yeah there's things nowadays that <v Frank>are a little better you know you can reuse it's like frameworks right you want
[30:50] <v Frank>to use yeah you can just use this framework again you know saves a lot of effort i <v Chris>Think of the game engine's the one that that feels closest to programming to <v Chris>me is actually unreal engine it puts you at the point where you can do absolutely <v Chris>everything you want to do with drag and drop which is cool but if you don't <v Chris>want to do that flip it to code mode and you can do everything in code <v Frank>Yeah yeah <v Chris>And makes for fun <v Frank>Yeah it's it makes it can be harder but uh you're getting you know quote unquote <v Frank>closer to the metal right like you're Or, you know, with the with the drag and <v Frank>drop, it's going to do some kind of, you know, <v Frank>transpiling of that and converting the code over and then you have less efficient <v Frank>codeness, you know, really.
[31:39] <v Frank>It's better to try to make things more efficient, obviously, you know. <v Chris>So i i hear a rumor frank that you may be returning to your roots and you may <v Chris>be working on a game in php <v Frank>Yes i am i'm building this in php and it's gonna i want to use javascript
[32:00] <v Frank>also um it's it's i'm really kind of old school on this um this was boy is it <v Frank>the idea is it's going to be a turn-based game but not turn-based that you sit <v Frank>there you just click and you move If you're like a roguelike or something like <v Frank>that, or you're moving a guy around on a screen, no. <v Frank>I'm coming back from my old play-by-mail days when we used to play games by <v Frank>mail and not chess, although chess was like the first one back in Victorian <v Frank>ages. That was the first play-by-mail game. <v Frank>But these are some of these strategy games. <v Frank>The one that really inspired me was called Legend, and I believe it's still running. <v Frank>It is? Yeah, and so you would get these these turn sheets, you know, <v Frank>and depending on the size of the turn sheet is that affected the cost that what <v Frank>you're going to pay per turn for that game.
[32:56] <v Frank>So the bigger the turn sheet, the more expensive it was. So if you wanted to <v Frank>run like a kingdom, which had a big kingdom and it had, you know, <v Frank>i don't know fiefdoms and all this kind of stuff and characters and troops and <v Frank>stuff like that it was a big sheet and that was like i don't know twenty dollars <v Frank>a turn you know it's very expensive <v Frank>Um i kind of like but i really enjoyed that i would fill out a turn not that <v Frank>i ran the biggest level but i would do like a town and maybe have a group of <v Frank>heroes um fill out your turn <v Frank>send it off and then like you know a week later you'd get your results back <v Frank>and it would just be this stack from a dot matrix printer, you know, the results. <v Frank>And then I can just take days reading through this thing, you know, <v Frank>and making notes and making my plans for my next moves, you know,
[33:46] <v Frank>and I really enjoyed that. <v Frank>And I'm kind of thinking that maybe I can hit some little niche with this and <v Frank>just mostly for fun, build something like that. <v Frank>So I want this expansive kind of world that, <v Frank>Um that you know mmo games do it <v Frank>all the time you know but people play those <v Frank>games it's much more in an immediate um experience <v Frank>right like you're in the moment acting and moving <v Frank>and doing things like that this is a little more drawn out you know um and it <v Frank>was a lot of fun to in my experience was finding in some other games i'd played <v Frank>i didn't get a chance to do that in this little game called legends but there <v Frank>are some other ones where i actually had teamed up with another player and we <v Frank>coordinated together so we were writing letters and calling on the phone <v Frank>coordinating ourselves and i thought it was a fun experience obviously
[34:36] <v Frank>nowadays we don't have that we're not going to have that kind of experience <v Frank>again except the chatting part right because now it's so easy for us to chat <v Frank>with each other online and text even through the phone you know but i'm kind <v Frank>of hoping to do something like that i got this big grand idea of this world and <v Frank>You know it's going to be a lot of data i think <v Frank>and i want to have you <v Frank>know this turn by turn thing but i also want <v Frank>to have moments in there where you discover like almost <v Frank>like they would call them instances in the mmo world where <v Frank>you have something you can now play but this <v Frank>would actually be like maybe a javascript driven experience <v Frank>at that point and so that could actually be more like <v Frank>maybe it's actually like a little classic roguelike where you're <v Frank>making move by move and things are happening uh as
[35:29] <v Frank>you're moving or maybe it'll be real time you know because you can absolutely <v Frank>do that with these new javascript engines and game engines and drawing and it's <v Frank>amazing you know since one of the reasons i like javascript yeah yeah exactly <v Frank>yep that was one of them yeah 3ds yep <v Mike>So that sounds really really cool. <v Frank>Yeah if i can get around to it i still it's hard to find time and energy you know it's <v Chris>Kind of worrying that i'm now sitting there thinking well if you wanted to do <v Chris>procedural generation here's how you do it in php here's how you'd pass that <v Chris>procedural generation as json to your javascript so you could actually envisage <v Chris>it here's how you get all of the data out of that because the world doesn't <v Chris>even need to be stored because it's generated from a random key did you think i like this idea <v Frank>Yeah i yeah
[36:20] <v Frank>because yeah i was getting through all that i <v Frank>mean i was actually figuring out how am i going to generate the world and that's <v Frank>the thing is a lot of times you don't look at php as a game engine you know <v Frank>and it's it's it in this case it can work because you you can pass a turn uh <v Frank>you know i don't know hundreds and <v Frank>thousands of turns to it, and it should be able to just run through that and <v Frank>process things very happily, you know? <v Frank>And then generating maps, I could still do those fun algorithms, <v Frank>like, you know, as an example,
[36:56] <v Frank>like sound, <v Frank>I'm spacing on the algorithms now, but, you know, using Perlin, <v Frank>like a Perlin noise generator, <v Frank>things like that to generate maps and each point has a value, <v Frank>you know, so then you can use that kind of stuff to decide on how valuable a <v Frank>certain location can be, right? <v Frank>So that was a real fun, fun thing to work through, you know. <v Chris>Um so of course if you've got if you've got a random seed in there you can regenerate <v Chris>the same world without having to store it in a database <v Frank>Because yeah yeah number <v Chris>It's how minecraft does it yeah right <v Frank>That's the really and a lot of people don't seem to understand <v Frank>that i always try to let people know they go oh you know you get <v Frank>this randomness in the computer i'm like yeah that's that's kind <v Frank>of hard and people are like oh yeah well computers do it all the time like not
[37:51] <v Frank>really you know it's fake randomness you know because it's like you know basically <v Frank>the computer is built on a bunch of binary switches how random are those you <v Frank>know your light switch is on or off how random can you be with an on and off you <v Chris>Know we are heading to the point that can be both on and off simultaneously <v Frank>Yeah that's what we're getting to that's going to be fascinating i think that <v Frank>will be the third value right what <v Chris>Is what is the value of your your boolean variable true or false yes <v Frank>Yeah it's not boolean anymore at that point what are they going to call it i <v Frank>don't know truly truly trillion trillion i don't know we can't use that that's <v Frank>an app but yeah uh yeah it's going to be really fascinating and this and then the storage <v Frank>capacity of a system like that is just going to be massive i think you know
[38:47] <v Frank>because you can store so much information like that <v Frank>well each each <v Chris>Individual bit can then hold twice <v Chris>the value so one terabyte hard drive immediately becomes two terabytes <v Frank>Right yeah it'll be really amazing uh you know we'll see how processing goes <v Frank>because now you got to have you you need quantum processing to handle all that data you know but <v Chris>I'm looking forward to seeing seeing what quantum programming looks like
[39:15] <v Frank>Yeah i think the first thing we'll see is the is the password cracking you know <v Frank>you know probably some of the first applications <v Mike>So now you've just told the whole of YouTube and all our listeners what your <v Mike>game is you're going to have to make it before someone else does. <v Frank>I know I'm working I'm working on it I know there's others out there you know <v Frank>I'm just thinking you know like maybe I can hit this one niche and just have fun with this you know <v Mike>In all honesty there's this there's loads of games out there that are very similar <v Mike>yeah it's not so it's not going to stop people still producing the same sort of games um it's. <v Chris>Been working for the old scroll series for six games <v Frank>Right you know i mean i i just i've been i've loved games since i was a kid <v Frank>you know board games and and stuff i mean you can see behind me i've got my
[40:11] <v Frank>board games right up here and stuff like that, old tabletop games.
[40:18] <v Frank>So to me, it's just fun to try to build this game and balance it and add some <v Frank>layers to it, stuff like that, I'm hoping. <v Chris>So talking of games, do you know what the first thing I ever wrote in PHP was?
[40:39] <v Frank>No. <v Mike>Oh, this is testing to see if he does listen to the podcast. <v Chris>I've never said it on the podcast. <v Mike>Have you not? I thought you had. It must have been just in conversation. <v Chris>Do you remember the game Risk? <v Frank>Yeah, of course. Yeah. <v Chris>I rewrote Risk in PHP. <v Frank>Yep. That's great. It worked just fine. That's great. <v Chris>It was fun to build because I learned so much of how not to write front end.
[41:10] <v Frank>Right yeah that's the hard part is that map you know and you oh you got to try to <v Frank>finding pathfinding through maps like that where you have this non-con you know <v Frank>this non-polygonal shape you know or you know like where's the edges of this <v Frank>thing right and um you know finding edges and traveling through that's you know <v Frank>i like those kind of i do enjoy those kind of algorithms yeah <v Chris>I mean i i love finding writing group finding algorithms because they are incredibly <v Chris>complex to work out but when you've worked out the path that you want it's like <v Chris>oh well actually that's pretty easy and it's that moment where you go from this <v Chris>is really stupid and a really bad idea oh that's how it works it's fine <v Frank>Yeah i love it yeah yeah that's a yeah that that goes back to just like who <v Frank>can be a programmer or not you know i worked with a guy who was also a teacher
[42:08] <v Frank>and he said right away he could always tell who was going to survive as a programmer <v Frank>because you have one student coming in and they're just raving about <v Frank>the fact that this one comma out of place broke everything and they were just <v Frank>incensed they were just hugely angry and then the next guy comes in and he says <v Frank>i found it it was just this one comma that was out of place and it's working <v Frank>it's fantastic and the guy goes that's the programmer he's gonna make it he <v Mike>Certainly It certainly needs a bit of a thick skin. <v Frank>Yeah, and also the realization that, you know, you've got these higher-level <v Frank>languages, and they're just being compiled down and compiled down and compiled <v Frank>down into eventually assembly, right, in a machine language, <v Frank>because assembly gets compiled into machine language. <v Frank>And you start talking about those little bits out of place.
[42:57] <v Frank>It's huge. Yeah. You know? <v Chris>You try and explain to somebody that it's a single one out of place, <v Chris>and they just look at you blank. But I'm not even using numbers, right? <v Chris>Let's start from basics. This is a processor. <v Frank>Right. Right. Your letter A is not just a letter A. <v Frank>It's got a representational value somewhere, you know. Yes. Yeah. It's just really… <v Chris>Back in the zr80 days it was literally a representation of an eight by eight array <v Frank>Yeah yeah yeah that's what that's what you get in if you get boy if you want <v Frank>to talk to like graphics programmers man those guys will really blow you away <v Frank>with the math they have to do with the matrices and stuff like that it's crazy <v Frank>it's really challenging i i <v Chris>Was excited when i wrote a game engine in c and i could draw a triangle right <v Chris>i had spent nine months to get a triangle
[43:49] <v Frank>I i was <v Frank>uh like my first attempt it actually one day i decided i would try to draw a <v Frank>map just a hex map with php and so of course that meant using you know gd or <v Frank>i think it was gd you know the the extension for php you know graphics there's a couple of them <v Frank>to generate this image on disk, basically, and then, you know, send it to the browser. <v Frank>And that was kind of exciting, you know. <v Frank>Then, of course, my JavaScript that I had on that side had to recognize and <v Frank>know what the shapes were. <v Frank>So it was probably not the right way because that meant I had my algorithms <v Frank>in PHP and I had my algorithms in JavaScript. <v Frank>You know, and it's better just to have them in one place. <v Frank>You know, just let the JavaScript do it if you're going to be rendering it up <v Frank>there, you know, let it do it. But that was a lot of, yeah, that was pretty fun.
[44:42] <v Frank>Of course, now you have these new graphic, JavaScript graphics engines that <v Frank>will just do these polygons for you, no problem. <v Frank>They want to do 3D, and you're like, I don't even want to get into that. I don't want to do 3D, no. <v Frank>You know that's a lot of math <v Mike>Well talking about um talking about <v Mike>like the first things we ever wrote in in uh <v Mike>programming i i actually remember <v Mike>the first thing i wrote and i got so excited about it and it was hello world <v Mike>no well okay yeah that is the first thing that is the phone because that's the <v Mike>first thing anyone ever does in any any language because that's just like what we do <v Mike>But I was learning. <v Mike>I was on holiday, on the family holiday. <v Mike>And I was playing around with C Sharp, learning C Sharp. <v Mike>And I built this little terminal sort of program. You opened it up, just asked your name.
[45:43] <v Mike>You typed in your name. And it just printed out hello and then your name. <v Mike>And I was just so excited just by that. <v Frank>Yeah. <v Mike>And I was in my 30s when I did it. I was like, I've made something. <v Mike>I've made the computer do something. it was pretty cool c. <v Frank>Sharp wasn't too bad c sharp wasn't too bad i used that at sony to help me iterate <v Frank>like to dump create tools in no time so it was really really nice because it <v Frank>provided all the ui that we needed you know to do all that stuff well <v Mike>Funnily enough i i started off in c sharp well i started off learning uh reading <v Mike>about html because i needed to build a website for myself that I heard someone <v Mike>else was supposed to build and it never happened. <v Mike>And I won't go into too much detail. People can always go back to our first <v Mike>episode because I had to talk about it in that.
[46:34] <v Mike>But I started reading HTML and I thought, this HTML stuff seems really simple. <v Mike>It all makes sense. It just clicks. <v Mike>It's like, I understand how to do this. <v Mike>And how easy is it to actually make a game? <v Mike>Because I've had this game in the back of my head since I was in my teens, <v Mike>well, early 20s, I'd say, that I don't think is out there in the market. <v Mike>I won't say too much about it now because I don't want someone to steal the idea. <v Mike>But I wanted to build this game, and that's when I did the research of what <v Mike>language do I need to learn to build a game? <v Mike>And that's where I was starting off. And it was funny enough that I found an <v Mike>article that said, I'm going to tell you why you should learn C Sharp over C++. <v Mike>And then I expect you'll probably go and learn C++ anyway. <v Mike>And it was quite an interesting article trying to compare the two languages
[47:29] <v Mike>to, well, it was trying to say playing golf. <v Mike>You wouldn't go and buy Tiger Woods golf clubs. <v Mike>You'd go and get something that's a bit more forgiving, a bit easier for a beginner to use. <v Mike>And that's what C sharp is like the more beginner friendly so that's why I started <v Mike>learning it and then obviously when I was working at the school I was told I <v Mike>had to look after this intranet which is in PHP never heard of PHP at that point, <v Mike>and then just that's how I got into PHP but I still have in the back of my mind <v Mike>about this game and I'm now wondering whether to do it in PHP Right,
[48:07] <v Mike>I think I'm going to try and do it as a, I mean I mean, as we know, <v Mike>I don't need to do it as a web app. <v Mike>I could do it as a desktop app. I can do it as a mobile app. <v Chris>And once we convince Shane and Simon, we can do it as a fridge. <v Mike>He still wants to build his fridge that's. <v Frank>Awesome yeah but it'd have to be yeah but it still has to be laravel the laravel <v Frank>framework at least you got that <v Mike>It does at the moment um and it's <v Mike>likely to stay that way for a while yeah we <v Mike>understand from the interview we had with them um yeah <v Mike>they want to get everything right in laravel first and then they've got to figure <v Mike>out how to do some of it in the other ones and and it's going to have to be <v Mike>quite opinionated it will turn into more of a framework but by the sort of language <v Mike>and the things they were saying because there's certain things that have to
[48:59] <v Mike>be done in a certain way for it to work and laravel sits very well in that. <v Frank>That's the thing too about laravel is you know one of the things i do like about <v Frank>it is is when it comes to like rapid application development it's really great <v Frank>for that because i mean you can spin up that thing i you know i used to work <v Frank>with symphony most of the time and as i you know like way back, <v Frank>it was like, yeah, I can set this framework up and set it up and I can display <v Frank>a page, but it's going to take me a week to configure it. <v Frank>Just to configure like the firewall. <v Frank>And I mean, all the, oh, it was so much work. And, you know, <v Frank>now they've got they've improved that now. They've added a lot more scaffolding. <v Frank>So it's a lot easier now to just kind of get going in symphony, <v Frank>you know, but it's still, <v Frank>you know it takes still a little bit more work laravel just like out of the
[49:50] <v Frank>box goes but you know like you <v Frank>know for a poc or like you know rapid application you know it's fantastic <v Mike>I mean teaming teaming laravel <v Mike>up and putting boost in there getting clawed <v Mike>on there i literally within a in about an <v Mike>hour spun up a quick little app to track <v Mike>uh my reading progress because i started reading books <v Mike>um i'm getting into sort of fantasy reading <v Mike>and i wanted to track and monitor like <v Mike>how many pages on average am i reading a day because <v Mike>i wanted to set a target of pages read rather rather <v Mike>than books read i wanted to set pages but uh how <v Mike>many pages to read each day so i wanted something just to track that track <v Mike>my library track a wish list and those <v Mike>things like that and it literally i had it up and <v Mike>running i mean it's probably got all some there's some probably
[50:40] <v Mike>some issues with it i'm sure if we went and sat through the <v Mike>code there's a lot of work needs to be done to it as we know um and <v Mike>we talked we talked about this on the show quite a few times about <v Mike>how ai is really good as a tool but you've got to go back and recheck the work <v Mike>it won't always do the error check all the error checks that need to be in there <v Mike>and those types of things i'm sure that's all missing but at the moment it's <v Mike>just me using it just to track how many pages I read each day and what books I have in my library. <v Chris>And that's the key difference, isn't it? It's an app that has been built to <v Chris>make your life easier for a specific area. <v Chris>It's not an app you've built to go and put on the internet and contain people's <v Chris>real-world information. <v Chris>If a bank's vibe coding their mobile app then i want to have a conversation with them
[51:27] <v Frank>Oh no conversation i would just leave that bank i <v Mike>Think that leads on to a really cool question that i i was thinking about asking <v Mike>because i understand or if i remember frankly on one of our conversations you've <v Mike>done a bit of vibe coding is that. <v Frank>Yeah that was actually my goal that was my goal with my game i thought let's <v Frank>try to vibe code this thing because it'll be kind of a fun experiment right
[51:51] <v Mike>Talk us through that. Tell us what you found. Come on. Let's talk through this. <v Mike>I think this is a really interesting conversation. <v Frank>So I wonder, and I spent, I probably spent days, <v Frank>like days, just composing my context, just the prompt that I was going to give the AI, <v Frank>because I thought, I was thinking about this one, I need to tell it about the <v Frank>framework, the environment it's going to work in, what are my goals, <v Frank>what are we going to do here, <v Frank>how this is going to work, all these different, different little things I was building up. <v Frank>And it was, you know, several pages, you know, of this document. <v Frank>And then I, you know, dumped it in there and it proceeded to pump stuff out. <v Frank>And I was working with a friend, a friend of ours, Kenrick, as a matter of fact, <v Frank>and he was using Claude, you know, code.
[52:40] <v Frank>So he said, hey, let's throw it in Claude code. And it did a pretty good job, <v Frank>I thought, of kind of building out the initial structure and things like that. <v Frank>And um but then of course i'm not using <v Frank>cloud code and he was using a very expensive version which is <v Frank>i'm not going to i mean hundred dollars a month <v Frank>or i don't know what it was you know to give you a lot of tokens but one of <v Frank>my experiences i was finding is that maybe it's because it's a game that has <v Frank>some rules in it and some depth to it you know some data depth that I could <v Frank>run out of tokens kind of quickly, you know?
[53:19] <v Frank>And then sometimes it was just… <v Frank>And I still have this experience where it just takes off in a direction. <v Frank>It's like, oh, I'm going to try to figure out this problem. I'm going to do <v Frank>it this way, and I'm going to do it that way. And I'm like, what are you doing? <v Frank>Why are you doing it that way? I don't understand this. <v Frank>What do you mean you're using Python to generate my PHP code? <v Frank>What? I have an editor right here. Why are we not using the editor?
[53:45] <v Frank>It's like, what is this?
[53:49] <v Frank>Eventually, honestly, I had to give up on the Vibe coding thing because it was <v Frank>driving me crazy. because it was just taking off in directions and I had to roll those things back. <v Frank>And I'm not great sometimes at these micro commits, you know, <v Frank>like going to a point, I guess maybe because I get excited. <v Frank>I'm like, oh, this is going in a direction. Let's go. Let's go. <v Frank>Let's go. Instead of like stopping and maybe committing that and committing. <v Frank>So if it starts to go bananas, you know, I can just revert back a few steps <v Frank>because sometimes it's like, why are you getting the gasoline in a torch? <v Frank>What are you going to do to my code? You know, I mean, it's just crazy. <v Frank>My best experience with the AI is just really helping me with tests. <v Frank>That was really what was helping. And even then, like you're saying,
[54:35] <v Frank>you have to go back and reread it. Man, I'm watching that thing as it's building it. <v Frank>Every time I build something, I go look at it because it's adding stuff into <v Frank>the tests that it's like almost like cruft. <v Frank>It's like, why are you doing that? You know, there's no need to count how many <v Frank>records we have before you even insert any That what does that matter? <v Frank>You know, I can understand some cases Yeah, that that could matter if you're <v Frank>supposed to be starting with a clean slate and adding it you've only added that, you know, but <v Frank>It's just yeah, I haven't found that was one of the things I think it wasn't <v Frank>too long before I messaged Eric and said I <v Frank>I'm not worried about my job when it comes to AI, you know. <v Mike>Yeah, I mean, we've had that conversation on a couple of the, <v Mike>quite a few of the episodes, AI comes up.
[55:22] <v Mike>And my experience is, so with that reading blog app that I built, I did like you did. <v Mike>I did a massive long prompt of everything that I wanted in that.
[55:35] <v Mike>And I let it run. So I just did it, let it run. went off probably walked the <v Mike>dogs or something and came back none of it worked so so i then but then would have been. <v Chris>The most beautiful code you'd ever seen the code would be brilliant it just <v Chris>wouldn't do what you wanted it to <v Mike>Do no that's how brilliant. <v Frank>Is that i understand that <v Mike>So i then ended up going okay right this let's break this right down and and <v Mike>almost going down on to not kind of like the micro parts, but going, <v Mike>okay, I just want to be able to add a book to the database.
[56:14] <v Mike>So we worked on that and that wasn't, it wasn't just one prompt. <v Mike>It was a few other prompts. It took a little while, but we got there and it worked. <v Mike>And so although I've not got all the features in that app working the way I <v Mike>want to, and in fact, me and Chris were talking on Friday, I've got even more <v Mike>ideas to add into it, which will be really cool. <v Mike>I will still, I've just, I've learned you just do baby steps, little baby steps. <v Mike>Check that works. Once that works, move on to the next one. <v Frank>Yeah, smaller bytes. Yeah, Joe has even mentioned that.
[56:50] <v Mike>It was interesting. <v Chris>I would even go smaller than features because a feature could be, <v Chris>I want to store this in the database. Great. Yeah. <v Chris>What are we going to do to validate it? What are we going to do to take it from <v Chris>the user? What are we going to do to ensure that it's stored in a safe way with the correct indexes? <v Chris>What are we going to do to ensure that we can get this back out again? <v Chris>Right. Now I would go, I want to model for a user. <v Chris>And I'd focus on that. Now I want a database table that matches the model for <v Chris>the user because now it's got something to stick to. <v Chris>And it's keeping it small enough that it understands what it's doing. <v Chris>What actually happens behind the scenes is context loss. <v Chris>So if you give it this great huge thing, it's going to be super excited to do <v Chris>everything right. And about 30 seconds in, it's going to go,
[57:40] <v Chris>I have no idea what you were talking about because I've not got that many tokens. <v Frank>Yeah. <v Mike>Yeah, so, I mean, it depends on how big the feature is because there's another <v Mike>app that I've been working on, <v Mike>that I've decided, this is the first experience using AI because I wanted to <v Mike>use a JavaScript library to generate a chessboard and its pieces and then have <v Mike>all the rules of the game built in.
[58:10] <v Mike>There is a PHP package that does it, but I didn't want to have to keep calling <v Mike>back to the server to get all the information. <v Mike>I thought, if I can all be in JavaScript on the client, brilliant. I, <v Mike>and i i i i'm not a very good javascript developer <v Mike>by any means um i i'm quite open about <v Mike>that so i thought right let's get let's get claude to <v Mike>write this for me and it was and still not there yet there's <v Mike>still a few extra little bits but i had to break that whole feature <v Mike>down that i was trying to build into the tiniest little almost uh actions all <v Mike>the different actions like okay i need to be able to move the pieces and the <v Mike>pieces those moves are then recorded in an in in a string, <v Mike>because i know i need they need to that string needs to be <v Mike>then put into the database or it's got to <v Mike>be updated or have an auto save or and although sorry i'm that's taken me a
[59:08] <v Mike>long time to work on i keep going back to it every now and then um and then <v Mike>i'm just going to throw it across and so can you read that make sure it's it's <v Mike>not doing anything stupid because i because the JavaScript is not something <v Mike>I'm going to pick up very easily because I'm not, <v Mike>as I say, a JavaScript developer.
[59:26] <v Mike>I i will just like you said i'm not <v Mike>worried about ai taking jobs um <v Mike>see i don't hate on ai like a lot of <v Mike>developers do what was interesting with the <v Mike>conference that we went to on uh friday <v Mike>me and chris uh they they quite a <v Mike>few talks seem to try and bash ai but <v Mike>if it's used in the correct way i think it's <v Mike>a really really good tool really good tool <v Mike>and it is it's breaking <v Mike>things down slowly and we do have need to go back <v Mike>and check and put things in i mean this this thing to do <v Mike>with the um with the chessboard the buttons <v Mike>aren't where i want them to be i'm not going to sit and try and <v Mike>write a prompt to tell it where to move them i'm going to jump into into <v Mike>the the code and just change change the um the tailwind to get it in the right <v Mike>place do it yourself i'm going to do that myself but it's there it's done the
[01:00:22] <v Mike>bulk of it the functionality is behind the buttons kind of is working what how <v Mike>i want it to i then just need to make sure all the safety stuff is there and <v Mike>it's not doing anything stupid and just get it all in the right place yeah. <v Frank>Sometimes it's more work sometimes just to compose the prompt and just go do it yourself <v Mike>Yeah and i so i'm picking my battles i'm picking my battles what can i what <v Mike>i could change that faster than it would take me to write the prompt, so I'll just jump in. <v Mike>So the reading app, I'm using Filament within Laravel,
[01:00:55] <v Mike>which as a lot of people know, I'm a massive fan of Filament to bring up almost <v Mike>anything, but I think I'm building everything I ever built in Filament at the moment. <v Mike>But I can jump in and just change that, <v Mike>that array for the table like get rid of get rid i don't want that column there <v Mike>right delete that i can do that faster and i can write out now delete this column <v Mike>from that table on this view, <v Mike>right so you pick you pick your pick your battles what's what's uh what's joe on about now. <v Chris>So it's talking about tim making <v Chris>sure that it doesn't spend a ton of time running down the wrong path <v Mike>Because every. <v Chris>Second it's running the wrong way it's more tokens I have had it go so far off <v Chris>track it in an entire separate country <v Frank>I've had it happen with copilot where it's like oh you ran out of you know I
[01:01:48] <v Frank>don't think it uses tokens as it is the term it uses something else but it says <v Frank>you you've run out uh you can start over or tell it to continue and I'm like <v Chris>We'll obviously continue <v Frank>We'll continue you know but i guess you know but you got to realize that it <v Frank>may be have lost some of the context right like it's only you know i think of <v Frank>it as a programmer like you're telling me i got a context well i bet you there's <v Frank>a stack you know it's a stack of data it's got to walk back through or forward <v Frank>through whatever you know so and <v Chris>That stack can only be a given size dependent on what account you've got and varying other <v Frank>Things i Programmed on a 48K RAM machine. I know what limitations of memory are. <v Chris>Frank, you have no idea I was on a 16K machine. <v Frank>Well, I started on smaller. Luckily, you got up to 48K.
[01:02:36] <v Chris>I mean, if we really want to go back, the smallest machine I've ever programmed <v Chris>on is the ZX80 with its entire 1K. <v Frank>Yeah. Oh, my goodness. <v Chris>And most of the people listening are like, what the hell is a K? <v Frank>Yeah. Yeah. <v Mike>So another another thing that i've <v Mike>used ai for um and i think has done a <v Mike>fairly good job is actually <v Mike>doing a bit of research so when i <v Mike>decided i mean i don't talk about this <v Mike>a lot but when i decided i was going to start reading again a lot of people i <v Mike>do say that i'm that i'm dyslexic so <v Mike>reading is not something i do very quickly and i avoid it when i when i can <v Mike>but i have got a few books people have bought me over the years i'd like to <v Mike>read and i stumbled across i don't even know why but i stumbled across this <v Mike>um uh video of someone and i can't remember the names of it,
[01:03:34] <v Mike>you have to message me and i'll send you the link but there's a it was titled <v Mike>how i read five more books in a month than everyone else, <v Mike>And one of the tips he gave was don't count how many books you read in a month. <v Mike>Count how many pages you read. Have your targets how many pages per day, as I was saying before. <v Mike>And that kind of motivated me. Well, if I just read one page a day, I'm still reading. <v Mike>And reading is practice. And it's something that I do avoid. <v Mike>I mean, I'm not a bad reader, but I'm a bit of a slow reader. <v Mike>Um so when i then thought i've read what sort of books would i like and i think i was watching, <v Mike>i think it was equalizer the films <v Mike>there's three of them and he's throughout the films <v Mike>he's reading the top 100 books everyone should read or the he's got a list of <v Mike>100 books he's reading and that kind of spurred me on going okay what are those
[01:04:28] <v Mike>100 books and i looked at the i did a bit of research and i thought what what <v Mike>sort of books would i be into and i've decided fantasy I love the Lord of the Rings films. <v Mike>I've never read the books. <v Mike>However, I have just bought, you can't really see it, but it is behind me, <v Mike>just there, standing up. <v Mike>I've just bought The Hobbit, a version of The Hobbit, which is back there. <v Mike>And I thought, okay, fantasy, sort of medieval type fantasy with a bit of magic, <v Mike>sword, battle, big epic things, and like big worlds and things like that. <v Mike>That's what I really like. <v Mike>So I then just entered all that into ChatGPT. so <v Mike>can you find me like the top 10 fantasy <v Mike>series that fit into this description <v Mike>and i just go back to every now and then tweak <v Mike>things and it's given me a reading list not just a reading list
[01:05:18] <v Mike>but it said okay here's a good series to get you into fantasy it's not as heavy <v Mike>you don't have a lot of different points of views and really complicated magic <v Mike>systems so it's done all that research for me i could have kept googling all <v Mike>that and reading loads of articles <v Mike>watching loads of videos of everyone's and then collating all this, <v Mike>it's done it for me so I'm like okay brilliant now I've got a bit of a path <v Mike>and as I read stuff I can then kind of get an idea of what sort of type of sub-genre <v Mike>I want to go down I can then feed that in so that's another thing I find that <v Mike>AI has done really well for me So. <v Chris>That is very very true that AI is really
[01:06:01] <v Mike>I've just seen our discord just blow up film yeah that is oh fs ffs what are you doing to us. <v Chris>Well he's living up to his name <v Mike>Yes i nearly said that on air then,
[01:06:18] <v Mike>so <v Chris>Yes the ais can be exceptionally <v Chris>good at research but they are <v Chris>seriously stubborn if you tell them that they're wrong <v Chris>gemini is one of <v Chris>the greatest tools i've seen for researching something unless <v Chris>it's wrong example in our <v Chris>internal discord we had a conversation recently where <v Chris>a picture was shown of taylor and <v Chris>another person in a ferrari right i gave this to an ai it would refuse to believe <v Chris>that it was taylor it was the first employee at uber and it would not hear anything <v Chris>otherwise i even gave it a link to taylor's twitter and it said taylor is lying
[01:07:10] <v Frank>What is it mega
[01:07:15] <v Chris>It's just weird i mean why would gemini be <v Chris>so sure of itself when i'm giving it evidence to the country but then i think <v Chris>is that not like every developer ever that will believe that they're right and <v Chris>everybody else is wrong and is that actually bias creeping in from the way that <v Chris>it's been trained because on the internet that's how we all speak <v Frank>Right right because it's not really intelligent you know no it's just guessing <v Chris>The next word <v Frank>It's a data structure and an algorithm that's telling it how you find this information <v Frank>or how it's going to be constructed or of course it's deeper than that but yeah yeah <v Chris>Boil it down to its rawest level and it is just what is the next most likely word in this sentence <v Frank>Yeah and i <v Frank>have seen like when they've done some comparisons of you <v Frank>know like i think it was the amiga an old amiga chess
[01:08:08] <v Frank>app yes up against some ai <v Frank>and it was clobbering this <v Frank>brilliant ai it just the i had <v Frank>no chance the amiga was clobbering it <v Frank>in turn it just moves and one point i think they asked chat gpt hey do you think <v Frank>you could you know how are you at chess oh i'm fantastic at chess i have blah <v Frank>blah blah this many ability to look up this and that he says well how about <v Frank>if we pitch you against this amiga chess app this is oh i give up already i'm not gonna even try well <v Mike>Funny you say that we i remember there was a video of a um someone it's quite <v Mike>big in the chess world um of content creation in on youtube, <v Mike>and he analyzed i don't i don't think he actually did the game but he analyzed <v Mike>it of two AIs playing chess against. <v Frank>Each other. <v Mike>And this is not that long ago, 18 months ago, I think.
[01:09:04] <v Mike>And no word of a lie, these AIs were, one, not following the actual moves, <v Mike>So the pieces moved in different ways at this time. <v Mike>They were just putting pieces back on the board.
[01:09:23] <v Chris>Why not? <v Mike>Pieces just appearing on the board and making a move. It's like, <v Mike>hang on, that piece isn't actually there.
[01:09:32] <v Mike>So AI can't play chess. It can't handle chess at all. You need a proper chess. <v Frank>And why is that? I mean, that's like, it's not like I'm trying to say, <v Frank>you know, i don't know i mean you know there's no randomness with chess right <v Frank>other than us ourselves human beings making a mistake it's very straightforward <v Frank>it's very numeric it's like you know but <v Mike>There's chess engines out there that's the thing there are computers that can <v Mike>play chess so why can't ai yet. <v Chris>Because the two processes are different so an <v Frank>Llm is <v Chris>Designed to one make its user happy.
[01:10:14] <v Mike>Two that's why it loses it chess yes. <v Chris>Two to predict the most <v Chris>useful thing next yeah now <v Chris>you give it a chess game and it starts losing the most useful thing it can do <v Chris>is put the queen back on the board but a chess engine is a different process <v Chris>it's looking at the probability <v Chris>of the next set of moves in the rules an ai doesn't actually calculate anything it just predicts <v Mike>It does it so much yeah so the chess engine what <v Mike>it calculates each move so it goes a really quick so as you know by the time <v Mike>you get into the middle of a game there are so many options but it will it will <v Mike>it will analyze every single one of those options it's got some, <v Mike>predetermination inside it to score the position things like <v Mike>um the pawn structure you don't want i'm <v Mike>going to start talking a bit chess jargon so if i
[01:11:20] <v Mike>do go too far sorry uh but things like you don't want <v Mike>double pawns you don't want isolated pawns you don't want your knight on the <v Mike>edge of the board you want your bishops on nice long <v Mike>diagonals all those sorts it analyzes all <v Mike>that sort of stuff um and that is all <v Mike>programmed into it via via the person who's <v Mike>created the actual engine so it like <v Mike>sometime it will value so each <v Mike>piece has got value as well in the game so a queen <v Mike>is a nine the pawn is a one and everything in between um but things like knights <v Mike>and bishops they're both for three however they're slightly weighted in different <v Mike>points of the game in different in different positions so they work better in <v Mike>different different scenarios so if you've still got all the pieces on the board <v Mike>and knights are better because they can jump around.
[01:12:06] <v Mike>If you've got, if there's less peace on the board and you're coming to the end <v Mike>of the game, bishops are better. <v Mike>So that's all programmed in. <v Mike>So it will then go through and analyse each position and try and, <v Mike>and with that, and I can't say the words, <v Mike>with that analysis, it will then work out the next move, but it will go, <v Mike>it'll keep going and keep going and keep going deep, deep, deep, deep. <v Mike>And you might set it to do 30 moves deep and it'll get to 20 moves and it goes, <v Mike>well, this is the best move. <v Mike>It will then get to 25 moves. Actually, no, that is not the best move. <v Mike>This is the best move. And it changed because of something that's changed further down the line. <v Chris>So if you look at that, you're also looking at the exponential growth. <v Chris>So let's just say that at the point you are, you only have one possible move
[01:12:59] <v Chris>you can take to get you out of check. <v Chris>But you've done that. Matt, you might now have two, which branches to four, <v Chris>which branches to eight. <v Chris>At what point does it become 1,024? <v Mike>Very quickly. <v Chris>Yep. <v Mike>Because if you think… <v Chris>But that is 1,024 for every single one of them. You're soon looking at a couple <v Chris>of billion possibilities. Yes. <v Mike>When you look at the starting position, <v Mike>white's to start, But there are 18 possible moves to start the game.
[01:13:36] <v Mike>I think I've done the maths right. Yeah, it's 18 possible moves. <v Mike>No, it's not. It's not. It's 20 possible moves. Sorry. <v Mike>Because, yeah, 20 possible moves. I hadn't done the maths right. <v Chris>Pawns forward one, pawns forward two, and then you two knights. So it's got to be good. <v Mike>Yeah, each knight has got two separate correct squares it can go to. So it's 20. Yeah.
[01:13:58] <v Mike>And they but the second that's been done um obviously black then has 20 possible moves,
[01:14:07] <v Mike>and then once that me then that i'm not even gonna try and do any maths after <v Mike>that because it just grows so fast but. <v Chris>Then it will look at each of the first 20 with each of the second 20 on it so <v Chris>that's 200 400 moves then on the next level it will go out and it'll be like thousands of moves. <v Chris>You just get seriously complex. And then you've got to think in terms of the <v Chris>data structure that these engines have got to hold are effectively gigantic trees. <v Chris>And LLMs don't have the context for a gigantic tree, which is why they are terrible at chess. <v Mike>And thank you for bringing it back on subject. We've really gone off track here. <v Mike>No, it's fine. it's great to have these conversations and and we could i know <v Mike>we we you and me frank can sit and talk about this sort of stuff for hours and <v Mike>we we do some not not during work hours but we do talk about this obviously uh we get we don't.
[01:15:11] <v Chris>Do that in work hours <v Mike>We we we get we get yeah the conference <v Mike>we'll sit for hours and chat about stuff i mean that's one that <v Mike>i love it that's one of the difficult things i <v Mike>suppose working in a team where we're all remote um and <v Mike>even more so for like myself i mean things have got <v Mike>a little bit easier now with chris on the team and we're going <v Mike>to try and meet up a lot more because we're only <v Mike>about an hour drive away from each other um so we're going to try and meet up <v Mike>a bit more but it's that's the one thing i've had to mentally change is i i'm <v Mike>not seeing and talking to people like we would have a nice long conversation <v Mike>over throughout a whole day,
[01:15:54] <v Mike>we're we're yes john i'm sure.
[01:16:01] <v Frank>Um that's why i don't listen to the php arch uh podcast because i'm working at that time
[01:16:09] <v Mike>Um but i the going to the <v Mike>conference and i've done i've done it twice and i remember the <v Mike>first the last year when we when i came over for the first time <v Mike>and it was a bit bizarre because up <v Mike>until then i'd only really know i mean we've talked <v Mike>for work purposes and things <v Mike>and frank you helped me a lot with my onboarding and kind <v Mike>of took me under your wing which was very i <v Mike>was very great i'm very grateful for um but meeting <v Mike>you eric john and the rest of the team face <v Mike>to face especially after the long <v Mike>journey that i had to get over there and i <v Mike>literally dropped my bags off of the hotel eric had <v Mike>ordered me an uber from the hotel to get over to where you guys <v Mike>were eating and i walk into that room and i <v Mike>see you guys i see eric stands up and he's he's <v Mike>a towering guy i didn't realize how tall he was until i
[01:17:05] <v Mike>i'm i'm tall i'm i'm six two i'm like i'm looking up i don't normally have to <v Mike>look up at people i'm a small man and seeing and just seeing the rest of the <v Mike>team and then seeing everyone else that was there because it was a speaker's <v Mike>dinner so there There was Derek was there. There was all these. <v Mike>I'm like, I'm literally sitting in royalty and I'm jet lagged to the hill. <v Mike>I was just so tired. It was needed to eat. <v Mike>And, but it was nice. The week after, for the few days that we were all working <v Mike>together, I think we bonded so well very quickly. <v Mike>And I miss that. I do miss that sort of contact. So I love coming over to the conference. <v Mike>Yeah. And that helps. in this, <v Mike>It's not in an office every day to chat. I mean, we do chat almost every day. <v Mike>It's about something, and we might do it in the Slack or we'll have a phone
[01:17:59] <v Mike>call, but actually sitting physically in front of each other and chatting and <v Mike>laughing and joking and taking the mickey out of each other and going out for meals is great. <v Mike>And it's certainly something that other teams should do. Buy tickets, <v Mike>come to Tech, get them all together. <v Frank>Do it. Do it. Finally get yourselves together in a great environment. <v Mike>It's not just yeah it's not it's not just about <v Mike>learning it's the it's the community and i have said a <v Mike>number of times on this on this show i talked to <v Mike>people when i talked to people outside of it tech was <v Mike>like an extended family not just the team not <v Mike>just you and the rest of the guys um but <v Mike>everyone else has sort of just invited me in and then i mean there were there <v Mike>were a handful of people that come over from from the uk uh last year um but
[01:18:51] <v Mike>it was very welcoming it's the only one it's energizing. <v Frank>It really is energizing <v Mike>Yeah yeah it's energizing and it's the socializing afterward <v Mike>after at the end of the day each time um and <v Mike>just meeting new people and you never know what what comes out <v Mike>of it it's a bit like yourself um going to the meetups and now you're you're <v Mike>of architect because you're going to those meetups it's more powerful than sitting <v Mike>there with a building the most amazing portfolio website if. <v Chris>You don't know anybody to show that website to <v Mike>Yeah right and personality it's like personality as well we've talked about <v Mike>that on i think it was probably on the friday's episode with um with dan yeah <v Mike>with dan we talked i've talked a bit about personality, <v Mike>is important to make sure you will work and work. <v Frank>Together part of the chemistry of the team right yeah
[01:19:46] <v Mike>I think i think i think eric and john have done a really good job of of getting, <v Mike>a bunch of people together that can just vibe off each other and work and laugh <v Mike>and joke and i don't there's no bad apple actually no isn't the same guy and <v Mike>if you don't know which who's the bad apple it's normally you,
[01:20:08] <v Mike>so but we all work it's great and it's it's lovely that you've joined us we <v Mike>get a bit more the listeners get a bit of insight into to you and how you joined <v Mike>the team we plan to have other people from the team on the on the show periodically as well, <v Mike>this isn't going to be a one-off we'll be bringing other people on. <v Frank>Yeah it's been a lot of fun <v Mike>Yeah we're really running along um but we literally the three of us could sit <v Mike>here for ages and talking yeah oh yeah i'm hungry i need to go and get my dinner <v Mike>um frank you need to get back to work yeah,
[01:20:46] <v Mike>before eric and john come after you yeah i'll get in trouble for kicking away i mean yeah. <v Chris>They're both in the comments <v Mike>I know they're watching i know they're watching but uh yeah thanks a lot Frank <v Mike>for giving us some time I hope people enjoyed that little bit more of an insight into some of our team,
[01:21:05] <v Mike>don't forget tech tickets are on sale submit your talks for JSTech, <v Mike>Get those in. I don't… John is in the chat. <v Mike>I don't know if there has been an actual date set for the closing of Call for Talks. <v Frank>He said it was a month, <v Mike>Another month at least. Another month. So it was at the end of this month, <v Mike>so it looks like it's probably until the end of the year. <v Mike>Yeah. Yeah, until the end of December. I'm sure John will shout in a second <v Mike>at some point with an actual, Frank is the best. <v Frank>That must be a friend.
[01:21:46] <v Mike>Well so i haven't got my notes up hang on hang on what have i got to talk about so. <v Frank>We've got this store thing <v Mike>Oh yeah we've got the store that's normally the last one <v Mike>to talk about so you now throw me like he does every single <v Mike>time he sends me a list of questions and he <v Mike>never asks them in the same order so i just get lost and sit him in <v Mike>silence um so yeah we've got a store head over for the <v Mike>store um youtube get over to our youtube channel <v Mike>like subscribe and get those uh notifications <v Mike>coming in for when we are got other videos coming out <v Mike>as i said it's not just this podcast we've got the main one of <v Mike>eric and john which is on a thursday um and <v Mike>then we've got scott does community corner and some um tutorial videos as well <v Mike>so please um but it'd be great to see as many people come over to tech as possible
[01:22:32] <v Mike>and say if you're working in a remote team persuade your boss get everyone over. <v Chris>We are being corrected by our boss <v Frank>We just don't promote <v Mike>Oh it's the actual week so one more week not. <v Frank>A month for JS Tech
[01:22:49] <v Mike>Make sure you get your talks in Frank thank you very much for joining us thank <v Mike>you everyone for watching and listening and we'll see you at the next one bye Bye-bye. <v Mike>No, that's it.

Air date November 18, 2025
Hosted by Mike Page, Chris Miller
Guest(s) Frank Wallen

Our Partners

Collaborating with industry leaders to bring you the best PHP resources and expertise