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/
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
[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: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: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: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.