93: Did we make it too complicated?

93: Did we make it too complicated?

Released Friday, 28th April 2023
Good episode? Give it some love!
93: Did we make it too complicated?

93: Did we make it too complicated?

93: Did we make it too complicated?

93: Did we make it too complicated?

Friday, 28th April 2023
Good episode? Give it some love!
Rate Episode

Episode Transcript

Transcripts are displayed as originally observed. Some content, including advertisements may have changed.

Use Ctrl + F to search

0:00

Simon B:Hello and welcome to another episode of the All the Code Podcast. I am Simon B, a web developer and CTO based in the UK, and I am joined by the man that moves the goalposts right before the recording, my co-host, Simon G.Simon Grimm:Thanks, I still love your real fresh introductions. I wonder are you using ChachiPT at this point toSimon B:No,Simon Grimm:createSimon B:I made thatSimon Grimm:theSimon B:oneSimon Grimm:introductions?Simon B:up on theSimon Grimm:Okay.Simon B:spot. I hadn't even thought about what to say untilSimon Grimm:Okay.Simon B:I said who I was.Simon Grimm:Yep.Simon B:So that was when I came up with it. And I was like, what happened? Oh, yeah, we're recording an hour earlier. And when I joined the call. you were mid fighting with something with React Native and gettingSimon Grimm:Yes.Simon B:more frustrated and swearing at the screen. And I'm like, awesome. I also too like to invite people to watch me not successfully execute code, who are also completely unable to help. So yeah, so that's what I went with with move the goal posts, cause I felt like, oh, and also you used a weird symbol with me in WhatsApp to say that you were ready. And I said, so you said, can we record earlier? And I said, yeah, sure. And then out of nowhere I get...Simon Grimm:Yeah, it was out of nowhere. Probably with a bit more context it might have worked better.Simon B:No, I don'tSimon Grimm:Okay.Simon B:think so. So I just got a message which was the plus symbol. And I was like, is this a budget up vote or something? Like you up voting my comment or something? Cause it was weird, it was like 10 minutes after I sent you the thing saying, yeah, we're good or whatever. You were like, plus like, we do like a bump? Like you remember in the old bumping this topic?Simon Grimm:Please, if you're listening to this podcast or if you're watching it, let me know if you understand what a plus sign means.Simon B:I'veSimon Grimm:JustSimon B:no idea.Simon Grimm:leave a comment and let Simon know what a plus sign means. And if you know it, then we're friends. So do it.Simon B:So tell everyone what you think it means.Simon Grimm:It's basically just a ready check. So ISimon B:ThisSimon Grimm:couldSimon B:doesn'tSimon Grimm:have said,Simon B:help me.Simon Grimm:yeah, like the ready check me comes from the gaming world.Simon B:Ah,Simon Grimm:SoSimon B:it's a gaming thing.Simon Grimm:I haven't played too much World of Warcraft, but enough to know that for a big boss fight, when you're waiting with 10, 20 people, somebody, the leader usually asks, ready? And everyone will put a little plus in the chat. And so I'm adapting this. I use it with my best friend as well. Like it just means yes, readySimon B:Okay, interesting. ISimon Grimm:allSimon B:guess,Simon Grimm:the time.Simon B:is so, so you might, you say you haven't played much World of Warcraft, you've played infinitely more World of Warcraft than I have because I've never playedSimon Grimm:Definitely.Simon B:one. Is World of Warcraft the space one?Simon Grimm:What's wrong with you? What space?Simon B:I don't know, is it, is that the one with like, they do raids and they're spaceships and you buy spaceships and then one time there was a big mass extinction event in a battle and there was like $500 million worth of like real value just like disappeared?Simon Grimm:Isn't that Aliens vs Predator a film or something?Simon B:I don't know, what's WorldSimon Grimm:LikeSimon B:ofSimon Grimm:whatSimon B:Warcraft?Simon Grimm:are you... No, World of Warcraft, it's a world, it's a magical world of elves and trolls and the Horde and the Alliance and they're fighting each other and...Simon B:So it's not spacecrafts.Simon Grimm:I mean, they're flying things, butSimon B:But notSimon Grimm:ISimon B:inSimon Grimm:wouldn'tSimon B:space.Simon Grimm:say it.Simon B:Oh,Simon Grimm:Eh, notSimon B:right.Simon Grimm:really.Simon B:OK, what's the spacecraft one? I'm sure there was a big thisSimon Grimm:StarSimon B:isSimon Grimm:WarsSimon B:this isSimon Grimm:related?Simon B:a no, no, this is aSimon Grimm:Star Trek?Simon B:no, no, no, no. It was it wasn't like one of the film franchises. This is what they call a mempong massive multiplayerSimon Grimm:MassiveSimon B:online.Simon Grimm:MMORPG.Simon B:That's it. MMO. What I said, M-Porg, M-Porg, right? So there was another M-Porg. OK,Simon Grimm:Dictionary.Simon B:so there was another M-Porg from like 10 years, 10, 12 years ago, where it was like spacecraft?Simon Grimm:Was it a browser game?Simon B:Yeah it was a browser game.Simon Grimm:That was old game definitely, but that was when I was very young, so that was probably like more 15 years ago. ButSimon B:Yeah, true,Simon Grimm:yeah,Simon B:whichSimon Grimm:I don't know.Simon B:actually you say very young. I mean, I was 20 by that point. Anyway, so, right. So the topic of the topic of today's conversation is we will. We do have a topic, but we don't have much more than just this. I just want to kind of get Simon's thoughts. So this is bringing a few things together. So the topic is and it's probably just be the title of the episode. Did we make it too complicated? So where this comes from is you sent me the video. by the very talented and far better developer than I, Rich Harris, who is the guy behind Svelte. And then as I joined the podcast recording today expecting you to be ready to record because you'd sent me the plus symbol, you were actually fighting with file-based routing in React Native. And then you were about to ask me if I tried something else fancy and you were like, no, no, I know you haven't tried something else fancy because basically I don't try fancy things.Simon Grimm:Ha haSimon B:AndSimon Grimm:ha!Simon B:then over the last few days, I've been writing just horrific amounts of RXJS. And a little part of me was looking at this RXJS and I was like, I do really like RXJS. But really all I'm using RXJS for here is map, tap, switch map and forkSimon Grimm:Yeah.Simon B:join. And I'm like... I could have just done all of this with async away and maybe it would be more readable, but at the same time I personally really like the observable pattern and that kind of thing, and then I was like, did we make it too complicated? Did we make it too complicated? Is this too complicated now?Simon Grimm:So I think yes and no. A few weeks or like two weeks ago, I asked on Twitter a simple question. And usually when I ask a simple question, I get the most views. Just three days ago, I asked what's the best UI library for React Native. Boom. It's like the whole world is coming together in this tweet once again.Simon B:Well,Simon Grimm:Anyway, I...Simon B:it's obviously ManteanJSSimon Grimm:It's obviously nothing.Simon B:orSimon Grimm:Like,Simon B:Chakra. Okay, fine.Simon Grimm:nothing,Simon B:AsSimon Grimm:justSimon B:weSimon Grimm:nothing.Simon B:were. Did we doSimon Grimm:JustSimon B:a podcastSimon Grimm:no...Simon B:episode on this? We did a whole episode.Simon Grimm:About React Native UI library?Simon B:Oh, not React Native,Simon Grimm:No,Simon B:weSimon Grimm:weSimon B:didSimon Grimm:did aboutSimon B:React.Simon Grimm:React. Yeah, we did, but notSimon B:Oh,Simon Grimm:ReactSimon B:ISimon Grimm:Native.Simon B:remember you said about Native Base and is it Native Base? Anyway,Simon Grimm:Yeah,Simon B:sorry, carrySimon Grimm:it's...Simon B:on.Simon Grimm:Yeah, thank you. I completely lost what I wanted to say. So I asked about using a behavior subject with Angular, which is rxjs,Simon B:That's it.Simon Grimm:and I said, like, okay, I got these messages here in my service. Is it just fine to use a behavior subject and then subscribe to it? Because it's really that easy. I used that pattern in one of my courses. And then, of course, somebody who was a very talented Angular developer answered, that's horrible. You got so much performance problems with that. you definitely need share replay and cache and whatever kind of strange things he said. Otherwise my apps would be just like, theySimon B:garbage.Simon Grimm:would have terrible performance. Yeah, garbage. So he tried the usual gatekeeping thing, which just didn't work on me because I'm the basic guy like I'm completely all in for the easiest possible solution. And if at any point I see a performance problem, then I might add something else, but I don't start like share replay and... whatever kind of strange things he brought up. But the interesting thing was there were a few other people saying, why do we need this? Really? I never had performance problems. He kept on this, like, yeah, I've seen this time and again, it always happens and you definitely need this. So yes, I think we made it definitely too complicated. Some expert thinks probably we didn't make it complicated enough and they want the world to be even more complicated. But I completely agree. I also usually use tab. Switch map, map, filter. Yeah, that's what you said I think.Simon B:Yeah,Simon Grimm:Delay? Eh,Simon B:I'veSimon Grimm:onlySimon B:usedSimon Grimm:forSimon B:delaySimon Grimm:testing.Simon B:a couple of times. Oh, I've used from and of becauseSimon Grimm:Oh yeah,Simon B:ifSimon Grimm:promiseSimon B:you want to convertSimon Grimm:observable.Simon B:a promise into a... Although I do from memory, you really shouldn't use from to cast a promise into an observable because a promise is hot and an observable is cold, which from memory, I will need to fact check this. And if there's any RXJS experts listening, feel free toSimon Grimm:Oh,Simon B:correctSimon Grimm:I hopeSimon B:meSimon Grimm:heSimon B:if I'mSimon Grimm:isn't.Simon B:wrong. Um, is I believe a promise is hot, which means that when you create a promise, it's gone. It just gets fired out, right?Simon Grimm:Yeah.Simon B:Whereas an observable is cold. It doesn'tSimon Grimm:Yes.Simon B:get fired out until you subscribe to it.Simon Grimm:Yes.Simon B:But if you from a promise, it fires the promise off, but the observable, the result in the observable is that in a from, so therefore the from is cold. I think you are supposed to use a delay that will then not actually create the promise. until the whole observable pipeline is created. There's some more magic in there. And I thinkSimon Grimm:AndSimon B:if you're batting out like a lot of promises that is the more sensible way to do it. If the code is running in the front end, if the code is running in the backend, it basically doesn't matter because the only reason that code would be running in the backend is because it's been executed, right? Because the backend and the front end have different, I always think of them as having like, they're both event driven. But the front end is stateful. It can keep existing, right? Whereas the backend, I always think of it like, well, this is why, why cloud functions work is like request goes in. If you want entire backend can be cold started from nothing,Simon Grimm:Yeah.Simon B:right? Does stuff and then request responses sent and then entire backend is shut down and put back to sleep again. That isn't really how your front end app works, which is why. subscribing and leaving behaviour subjects and subjects like open and hanging can be more of a problem in the front end. Anyway, we got deep in the woods in the weeds there. I think we made it too complicated and it mustSimon Grimm:Yeah.Simon B:be really hard to come into web dev in 2023.Simon Grimm:Yeah, I definitely think in some areas we made it too complicated. Same is happening for me right now with React server components, to be honest. I'm just getting started with React and I understand the basics and suddenly everyone's talking about server components and I actually don't know if I need them orSimon B:CanSimon Grimm:wantSimon B:you clearSimon Grimm:them.Simon B:something up for me? So,Simon Grimm:No, I guess I can't.Simon B:we'll find out. So I have heard the term React Server Component, but I haven't Googled it and I've not looked at it and I don't know if I've used one, but I have used get server side props in Next.js. Is that not the same thing? Is that a React Server Component or is that not a React Server Component? Because Rich Harris talked about this in his video. What was the video you sent me the other day? I'm going to look back through. So we now have an official because I missed a message in last in a previous recording. We now have an official messaging app of the pod, which is Slack, because Riverside, what we record in, I miss messages in that all the time. So now we've decided that we use that right. So I've gone further back into the chat partner of the pod. You sent me. Rich Harris on frameworks, the web and the edge.Simon Grimm:Yeah, it's a great talk. It's a great talk.Simon B:Yeah, he talks about React server-side components and says that he doesn't think they're that good because it could lead to confusion about exactly where the code is running, whether it's running on the server or in the client, whichSimon Grimm:Yeah,Simon B:is kind of important.Simon Grimm:I think it's just, as I said, I don't really get the whole server-side stuff, but I think it's just a move towards basically making everything server-side rendered by default with React, as far as I understood. So you're what you said, you said get static path or get static propsSimon B:Go study props.Simon Grimm:that usually was used in XJS if you're using server-side rendering.Simon B:Mm-hmm.Simon Grimm:So it's kind of the same thing. but they pretty much want to make every component now server-side rendered. And I don't know if I actually want this. And also I don't exactly understand the implication this means for cross platform development. As I said, if the whole app is already on my device, I have not really, I'm not really benefiting from any kind of server-sideSimon B:No,Simon Grimm:renderingSimon B:I saidSimon Grimm:stuff.Simon B:that, I think that's, that's quite interesting actually. So my, my sort of journey through the web has, has been sort of starting with an Apache server where everything was rendered on the server. And then you'd send some JavaScript along with that HTML file. And then that would get executed. Then we moved into like, ship all the JavaScript to the front end and everything runs in the front end, which was likeSimon Grimm:SBA.Simon B:SPA, which was like trying to create sort of a more desktop way of making applications, where all the code is shipped to the client. Now we seem to be going back to, well, actually, let's have everything on the server and only send the client what they need. Well, obviously, that doesn't work for you, because cross-platform, the whole point is that you're using web technologies to ship a complete application to a device. So from a cross-platform perspective, actually the worst thing is for you to do server-side rendering because then you need to have an internet connection and mobile devices don't always have an internet connection, right?Simon Grimm:Yeah, I think as well. It might be something good for the web, but for cross-platform development, I don't see any.Simon B:Oh, this is a video title for you. Cross platform developers don't need server side components. They go.Simon Grimm:Ooh, ooh, big statement,Simon B:BigSimon Grimm:yeah,Simon B:you don'tSimon Grimm:ISimon B:youSimon Grimm:likeSimon B:don't needSimon Grimm:it.Simon B:it. Why would you need it? Because because you need to default to the mind. And this is something that pretty much all mobile developers, native or cross platform are terrible at is you really need to default to user doesn't have Internet connection. So thereforeSimon Grimm:Yeah.Simon B:you can't use server side render components because that defaults to the user having an Internet connection, which you can't do.Simon Grimm:I mean that's the cool thing about native applications, iOS, Android or anything. They just have all the sources bundled with them in this application and you just start it and you got everything. So yeah, I definitely don't see a use case for server-side rendering. Probably there is something that I'm overlooking because I'm making this way too easy, just with the React.js, RxJS case. I'm probably oversimplifying something, but so far I don't reallySimon B:ButSimon Grimm:see anything.Simon B:if you oversimplify something, then you don't waste a ton of work. You find out where your bottlenecks actually are, and then you can improve from there. And okay, fine. If you know that the application you're making is gonna scale up to 100,000 active users per minute, and you're gonna have thousands of database requests, and you're gonna have a really big, complicated front end. Like, because that's the thing is like with... Shipping your front-end app, be it Angular or React at scale, all you're doing is sending the JavaScript. So there's not really like, the front-end doesn't have scaling issues if you're sending the entire SPA over to the back-end that has scaling issues, right? So if you go and put in all of these kind of, oh, well, I might see this here and I might see that there. Yeah, but if your app isn't going to scale to that size, you don't need to do that. Like, worry about that when you get to it.Simon Grimm:Yeah, the whole scaling thing. I think I sent you a private message before after this talk or, yeah, you said something that it's over engineering stuff. And I also said like everything that we do right now to optimize like for 0.0.1 second of load time. It is totally important for Facebook, for Amazon, for big companies who rely on like this critical path. I personally have never worked with one of these companies and all the small medium businesses I know they just care about good stuff, but they don't optimize for like 0.1 second. So everything that's happening with the latest React versions, with Next, with the Edge, with whatever Rich said in that talk. I don't know if it really moves the needles for SMBs, butSimon B:Hmm.Simon Grimm:what would really move the needle is a better developer experience of these tools. Because if you compare the... the node environment, all the 100 packages you gotta install, that could break something at any point. If you compare this to other developments, we've talked to Lane just a few weeks ago, who said that in GoLin there are basically no packages. And that really sounded greatSimon B:Hmm?Simon Grimm:toSimon B:Hmm?Simon Grimm:me, like just do your stuff with Go and create great things. I think it's probably a great user experience. I don't know, have you tried something like that?Simon B:No, I haven't tried Go. I mean, as we said in that conversation with Lane though, like, I think we come from a more sort of user business mindset than we do deep, deep techie mindset. So in the Go case, like if you know Go, then... then get up and run it with that. If you know Python, get up and run it with that. If you know Node, then get up and run it with that. A lot of these kind of movements towards shipping no JavaScript to the browser, or ship the tiniest, tiniest amount of JavaScript to the browser, or do everything on the server to give a better experience or whatever, I feel like it's over-engineering forSimon Grimm:Yeah.Simon B:the 1% of the web dev world that do need it. And like... When that is a problem for you, when your website is enormous and you have millions of users, yes, of course that is a problem. And if you are making massive infrastructure, then yeah, sure. Like, I guess the physical world equivalent is like, if you're building a bridge that is a motorway that's going to span a river, then yeah, like, please use really good quality steel. Please make use lots and lots of reinforced concrete, like do everything you need to make sure that that bridge is really, really perfect is massively over engineered is never going to never going to collapse. Right. If you have a ditch at the end of your garden and you need to get a wheelbarrow across it every couple of days,Simon Grimm:Ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha haSimon B:maybe a plank of wood is fine. And if that plank of wood rots once a year because you didn't bother protecting it and you need to change it once a year, that's also okay. Like, do you know what I mean? Like, I feel like that sometimes that's the equivalent.Simon Grimm:I know exactly what you mean. Angular, your best plank of wood. That's the title. Ha ha ha.Simon B:Angular, your best plank of wood, maybe. Or vanilla JavaScript is your best plank of wood. No, no, no, no. Zapier and OutSystems is your best plank of wood. And then slowly you go through, as your stream gets wider and it turns into a river, then you get more wood and then you get better wood and then you get concrete and then you get metal. And then slowly you build the fourth of bridge or the Golden Gate Bridge or whatever.Simon Grimm:I mean, I'm complaining a lot about WEP for someone who's built his whole career on WEP, but I'm curious because I think you did some Ruby on Rails or PHP, because you're such an old man and you know a lot more than I do.Simon B:So I never did Ruby on Rails, but I've done quite a bit of PHP.Simon Grimm:But I would just like to know, is the grass on the other side greener or am I just dreaming about Ruby on Rails and PHP being easier at this point thanSimon B:No,Simon Grimm:everything?Simon B:so you are trading a different... So as we discussed with Lane the other day, Python is amazing until you need to ship it to production.Simon Grimm:Yeah.Simon B:And then shipping it to production is a complete pain. And I kind of have heard the same about Ruby as well. And people will say, oh no, it's fine. You just do this, this, this, this, this, this, this, this, and this. It's like, yeah, great. If you know all of the this, this, this, this, this, this, this, this, then yeah, sure, it's brilliant. It's a bit like when I say, oh, well, you know. Spinning up a Node.js backend isn't a big deal. Just do npm install nest and then do npm generate,Simon Grimm:I'm out.Simon B:you know, this controller and that controller, and then just write a Docker file and then just bundle it up and then set up your GCP servers. Like once you know how to do it, no, it's not that bad, but if all of the different languages that I've worked with. You're okay. So here's a rundown, right? It's like, so of the, if the things that I've done significant amounts of work in I did before containerization. Shipping PHP was really easy. You just FTPed the fileSimon Grimm:Mm-hmm.Simon B:onto an Apache server in the right directory.Simon Grimm:Yeah, that's what I remember.Simon B:But to open that directory up to the internet with the correct access on the correct port with the correct SSL certificate was a whole host of sys admin type work that I'veSimon Grimm:thatSimon B:stillSimon Grimm:was long ago.Simon B:that I've still got all the notes for, but you still do it now, right? It's still totally valid. You can install an ApacheSimon Grimm:ButSimon B:server.Simon Grimm:like with Apache and everything it shouldn't be that hard to open the right ports and have the right configurationSimon B:Yeah, but,Simon Grimm:for PHPSimon B:but you're okay, but you've just fallen into the exact same trap because you know how toSimon Grimm:Okay,Simon B:doSimon Grimm:yeah.Simon B:it. It's not that hard, but actually setting up an Apache server to host multiple websites and multiple domains and route the traffic to the correct directorySimon Grimm:HmmSimon B:for the correct domain. It's not trivial, right? But once it's set up, you know, you can, you could FTP onto that server and you can hot fix. a PHP file there and then, and that's just live, right? You cannot do that with basically any other language. So that's the trade off, right? PHP, really, really simple to run it locally and modify it in flight, but quite difficult to get the server set up, right? Python, amazing documentation all over the web. Bucket loads of examples, really easy to use syntax, really difficult. to port it and ship it and move it anywhere, right? Swift. Swift is a very nice language to write in and you feel like a magician because particularly with Swift UI, the UIs you can get up and running on an native iOS app so fast it's unbelievable. Documentation is terrible. Like basically,Simon Grimm:Oh yeah.Simon B:Paul Hudson is Swift's documentation, right? The hackingwithswift.com. is the Swift documentation because Apple are so terrible at documentation. And then Node, Node is amazing because it's JavaScript. And it's very easy to deploy it. But choosing how to do something is a nightmare because there's literally, I've counted, I've sat and I've counted, there's actually 11,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 That's just fact, right? So as with all these languages, you are making trade-offs in different places that eventually will be annoying because you'll hit on that. That like, you know, looking at no code, right? We've got a lot of Zapier infrastructure at my day job, which is great because it's really quick to get things like tested and up and running, and you can mix and match Zapier actions with little blobs of code and that kind of thing. Now I'm trying to formalize some of that into an actual server with actual code. That those Zappier's run in real production. They're running.Simon Grimm:Mm-hmm.Simon B:How do I migrate those? I have no idea how to migrate them. It's a nightmare. And I've got action. I've got Zappier actions mixed in with blobs of code because for example, I need to update Shopify meta fields and you can't update, there's no action in Zappier to update Shopify meta fields. So I've just had to drop into like a block of code. managing those blocks of code is a nightmare because there's no real version control. And then like how do I migrate these things? I have no freaking clue. But it was really quick and simple to get them off and running in the first place so that was a win. So yeah,Simon Grimm:That'sSimon B:no,Simon Grimm:the trade off.Simon B:it's a trade-off. Everything is a trade-off and that's why, that's why hashtag it depends, basically. It depends. It just depends,Simon Grimm:Yeah.Simon B:basically. There you go. That's my answer.Simon Grimm:But honestly, for everyone interested in what's going on in the web world, I can highly recommend that talk by Rich Harris. In fact, I actually didn't even... I not only watched the talk from Rich Harris, I also watched it with a commentary from a person that you probably know and don't like, because I just wanted to get another opinion on this talk and that person kind of knows a thing or two. We might not agree on everything he says, but it was interesting nonetheless. So yeah, we're going to put that in the show notes. Interesting talk, it was not a big advertisement for Svelte, although likeSimon B:YeahSimon Grimm:RichSimon B:itSimon Grimm:broughtSimon B:was.Simon Grimm:up Svelte, Svelte getSimon B:Yeah itSimon Grimm:inSimon B:was.Simon Grimm:some placesSimon B:It was aSimon Grimm:likeSimon B:massiveSimon Grimm:he said,Simon B:advert forSimon Grimm:we'reSimon B:Svelte.Simon Grimm:doing this and theySimon B:ItSimon Grimm:areSimon B:wasSimon Grimm:doingSimon B:a massiveSimon Grimm:this.Simon B:advertSimon Grimm:WeSimon B:for Svelte.Simon Grimm:will,Simon B:Ha ha haSimon Grimm:Svelte doSimon B:haSimon Grimm:of courseSimon B:ha. Ha haSimon Grimm:theSimon B:haSimon Grimm:rightSimon B:ha. HaSimon Grimm:waySimon B:haSimon Grimm:with this. But I mean,Simon B:haSimon Grimm:yeah,Simon B:ha ha.Simon Grimm:I don't know exactly. I mean, he's employed at Versel. I read something the other day. So there are like two scenarios for the future. It might be the case that React Server components win. Or it might be the case that React server components fail and we're going to do the opposite. In both cases, Vercell will win. Why? Because Vercell has Next, which is betting heavily on server side rendering and server components. And they also have SvelteKit, which is doing exactly the opposite. So Vercell played this really, really nice. It doesn't matter what the future will be for for JavaScript. Vercell will definitely win. So if there are stocks, I would probably get one. This is not financial advice by the way, I think you can't get them butSimon B:They're not traded.Simon Grimm:Versel will definitely win in the end. Smart move. I also heard some backlash by the way the last days about Versel, I shared this with you as well. People were kind of upset about the pricing I think, especially in higher tiers or it gets really fast, really expensive. I couldn't exactly follow this but I read it on Reddit. I read it on Reddit and there were a lot of people complaining about this. I think even the CEO of Versel at some point replied about this and they're now changing a few things because somebody had a failure, they had some broken code and that cost them like a few thousand dollars which kind of got me scared because I'm also I'm not using Versel, I'm using Netlify but it's so easy. I think I said this in the first week when I deployed my static block or something. I suddenly had like... 5,000 cloud function invocation and like, I don't even have a cloud function, but like some parts of your code are automatically deployed as cloud functions. And apparently that was like listing all my blog posts or something, maybe something that people do on my blog quite often per day. So that costs a lot of traffic and made my price explode. But anyway, web is interesting. We're gonna follow this. We talked, I think long enough about that I wanna have the Ruby on Rails for web. Maybe we're gonna see it in a few years. I honestly don't know because we've got Chetch GPT, we got a lot going on right now and I think the next years won't be better than the last years in terms of all the changes and new frameworks coming out. I think we're still far away from like the final solution to great developer experience and great deployment and great everything.Simon B:But here's the thing though, is that there won't be a final solution. There won't be a one true way. There will be no outright winner and outright loser because the web is not a zero sum game. The web's not a zero sum game because the web isn't closed. And that is, again, a double edged sword. It means that anybody can come up with anything. as we see all the time. But it also means that anybody can come up with anything, which is great, because fine, people get grumpy with the cell because they're a business that makes money. I mean, you knew what you were getting into when you. I mean, the cell gives huge amounts of convenience for developers. But, yeah, once you're using a lot of their services, they're going to charge you for it. They're not a charity. And by all means, if you don't want to. rack up big bills, then don't use them. That's why I don't use Firebase. And I don't use Firebase cloud functions particularly because it gets really expensive. And that's the trade-off, right? But I do use SuperBase because it's really hard for SuperBase, at least with the current model, it's really hard for SuperBase to get expensive. I'm just looking at my Versel usage here because all the code is hosted on Versel. And I'm like nowhere near paying them anything. Everything I do with them is like really is free and I don't have big expensive cloud functions and it's all kind of very straightforward from the client straight to the database using row level security which is a feature of Postgres, not of SuperBase,Simon Grimm:Yep.Simon B:they just open it up. But then likewise, once you start using a lot of the features, you're going to have to pay for it. So that's just how business works and you trade the ease of the sell and the less you want to pay monetarily... the more you have to give somewhere else. So if we look at a spectrum, the quickest way to deploy a quote unquote full stack app with cloud functions is probably Vercel. I guess Netlify is all I've ever used Netlify, but certainly Vercel. All the way back to PHP, running on a Linode server running Apache, which is essentially free and can scale enormously before, like you've got bills. but you've got people paying $10,000 a month to AWS, where the equivalent on a Linode server on a VPS wouldSimon Grimm:Mm-hmm.Simon B:be maybe $100 a month,Simon Grimm:Yeah.Simon B:but it's a lot harder to get the Linode stuff set up because you'll have to use your own messaging bus, like RabbitMQ, rather than SQS or whatever it is that AWS uses. Like right now, for work, I'm deploying everything on Google Cloud Run. with a GitHub link between cloud build, everything's Google Cloud something. So between GitHub and Google Cloud build, I have a trigger set up that then automatically deploys a container onto Google Cloud Run, which is very convenient for me. It's very quick and right now, it's essentially costing me nothing. At some point, it will start to cost us money, but guess what? We're on the Google Cloud startup program. So I've got literally hundreds of thousands of dollars worth of credits available to me because we're on the startup program, right? So I don't mind for right now, but that's again, I'm paying for those trade-offs. Whereas if I just did it on my own server, I would probably have to spend a couple of weeks getting that all set up beforehand and deploying it would have been far less straightforward. So again,Simon Grimm:Yeah,Simon B:it depends.Simon Grimm:but I don't want to manage my own server and update all the packages andSimon B:Yeah,Simon Grimm:stuff.Simon B:it's a pain.Simon Grimm:Yeah, I had the Devtactic block was on DigitalOcean for about five, eight years. At some point I just had to update PHP and I tried it once, I tried it twice, and then I built a static site. AndSimon B:Yeah,Simon Grimm:ISimon B:yeah.Simon Grimm:just killed my DigitalOceanSimon B:See,Simon Grimm:droplet.Simon B:interesting what you could have done. There was two paths you could have gone with at that point. I didn't realise that it was, there were more reasons than you just wantingSimon Grimm:Yeah,Simon B:to goSimon Grimm:yeah,Simon B:toSimon Grimm:yeah,Simon B:a staticSimon Grimm:yeah, yeah, yeah.Simon B:site. However, let's boil this back down to the sentence you said, right? If the reason that you moved to a static site was literally because the PHP upgrade path was too difficult for whatever reason. Sometimes an upgrade path is horrific, right? Let's say you were going across like seven versions or something absolutely awful, but fundamentally your site worked, did everything you needed and customers were happy with it, right? The solution is containerization because essentially a Docker image allows you to freeze in time. It's basically a package log for your infrastructure, right? Because what you could have done is, let's say you're on PHP, I don't know, two or something, right? Something horrifically old andSimon Grimm:ISimon B:outSimon Grimm:don'tSimon B:of date,Simon Grimm:know.Simon B:right? Let's say a company, Parts Unlimited perhaps, is on version two of PHP, right? And they've got two options. They can do a horrific update path through seven versions of PHP or whatever,Simon Grimm:Yeah, BrentSimon B:orSimon Grimm:could do that.Simon B:Brent could do that. Or we could instead freeze it in time and... then make it portable and movable and have, just have poor network connections in and out of a container. That is what Docker does for you because in your Docker image, you could say from PHP 2.1 point whatever, you could then have it copy the files in that you need, create the Apache server, Apache do whatever, bloody blah. And then you just do Docker create. And then your VPS that was before directly running your, your Docker, sorry, your Apache server. Instead, you would modify that to run the Docker daemon, and then that would spin up the Docker image. The inside that is your really outdated PHP and Apache thing. But it's frozen in time. It will always work like it's so long as there's a Docker daemon that can run all Docker images, it will work. But you are trading future functionality and. features and what have you for phrasing that in time. So there you go, that's again, it depends. That's what the name of this episode is now. It depends, it depends.Simon Grimm:I just noticed that everyone who's maybe just starting out with coding or have like one or two years of experience and just heard Hugh talking the last three minutes about Docker containerization, daemons, VPNs, everything else, it must be scary for them. It must be really scary for themSimon B:Yeah,Simon Grimm:to enter this landscape.Simon B:but I've been at this for 15 years, and a lot of this is just stuff that you pick up rather than, we were talking to Lane about this, right? Yeah, we were talking about, I sort of coined that expression, the rush to react. I'm quite proud of myself for this, by the way. The rush to react is what I see with devs all the time, but that's fine, that's your starting point. And then slowly over time, you branch out, you pick things up, you... make notes here, you make notes there, you go back and look through stuff and you have sort of just bits of knowledge in the back of your mind. That is ultimately what experience is. It's not knowing all the right answers, it's just knowing enough to know that there are different options and different places you can go to solve different things.Simon Grimm:Yeah, and I've never been very strong in the whole DevOps thing. So that's why I didn't dockerize containerize anything. I just had a droplet with WordPress and I don't really want to touch it.Simon B:Fair enough.Simon Grimm:I know I do SSR into SSH into it and do the stuff, but I like couldn't completely migrate it. So, um,Simon B:But again,Simon Grimm:I didn'tSimon B:I'veSimon Grimm:doSimon B:workedSimon Grimm:it in the end.Simon B:in a lot of back-end roles where I had to do this. So I just learnt it. Like, and I remember my old, one of my old bosses was amazing with Git. And I mean like amazing withSimon Grimm:Mm-hmm,Simon B:Git. And I rememberSimon Grimm:yeah.Simon B:saying to him, I was like, how? He's like, yeah, I was essentially the site reliability engineer at my last place. And we didn't have very good change management for getting changes in. So he was like, basically. I merged everybody's changes in all the time and I was like, Oh my word, that sounds awfully. He's like, Yeah, but you get really good at getting. I was like, boy, I never want to have that job. But at the same time, when he then comes into a quote unquote normal deaf job where he's not, you know, doing all of these magical get incantations, he then flies on the day to day stuff because I think this also I can I can draw a fitness analogy here. Brilliant. Lovely. Love drawing a fitness analogy.Simon Grimm:Ha ha ha ha!Simon B:I always say to people, if the most strenuous thing you do all day is sit in your chair, eventually sitting in your chair will become a strenuous activity for you, right? So that's why you go and do exercise. A small amount of exercise every day makes the rest of your life much easier. I think the same can be said for dev stuff. Like, go off and try something hard every week, every couple of days, whatever it is, right? Like right now... you are fighting with some different things that you've not worked with before, specifically around Firebase routing, right? That's challenging right now because it's new and you're at the forefront, you're trying to work stuff out. But what that means is when you then come back to the more run-of-the-mill dev stuff, little bits that you pick up there, little skills that you refined during that hard process, they become even more second nature for you, which makes you better at your daySimon Grimm:Hmm.Simon B:job. So even if going off and doing some press-ups and bench press doesn't actually make you better at sitting at your desk typing. Guess what it does? In theSimon Grimm:YeahSimon B:same way that going off and fighting with really complicated RXJS pipelines and file-based routing stuff doesn't make you better at spinning up a new Ionic app, except it does.Simon Grimm:Exactly. I think the brain is very interesting. It is strange and interesting. So I told you this before. I have no clue. Like I can't remember this state I was in when I recorded my most successful YouTube video where I used React Native seven, eight years ago and I used React classes. I completely can't recall this. But today I was going through the Ionic code somebody from the community submitted. We were trying to build like a gesture handler to draw up a little bottom sheet manually and react to the changes of the finger on the screen and stuff like this and fading out. And he had an animation and it just didn't work completely. And I was looking at it and back in my brain, I felt something, I felt something like, there is something to this function, I've been here. And so I went into the documentation, actually I went into a blog post I wrote for the Ionic blog because I remembered I wrote about this topic. There is a... value so you can define a gesture handler for something and after this big block of defining the gesture There's a tiny overlooked field a second second argument that you can pass in Which means run this code in ng zone you just put truth in there and it just fixes the thing and That was the solution for today's problem I don't know why this this I felt this in my brain that there is something to this function that we can add in this Place I don't know what it is. I don't know where I've seen it But I knew it was a fix. And I think the brain, I just wanted to say thatSimon B:You justSimon Grimm:theSimon B:haveSimon Grimm:brainSimon B:an inkling.Simon Grimm:is amazing.Simon B:But one of my one of my favorite.Simon Grimm:I didn't want to say that I'm the Iowanek OG, I just want to say that the brain is amazing.Simon B:When I what I enjoy similar to this is I really enjoy when I Google stuff and I'm like, oh, what is this issue? And you Google an error or you Google something you want to do. And the first and second or third result on Google is purple, not blue. And you're like, I've clicked this before. I've been here before. And when all the links are purple, you're like, oh,Simon Grimm:Oh,Simon B:boy,Simon Grimm:oh,Simon B:I've really been here before. Why do I not rememberSimon Grimm:oh yeah.Simon B:doing this? So you start clicking stuff, you're like, yeah, I've been here. And then my favorite thing is when I find a comment left by myself. Thanks, this worked. I'm like, great. Well, it worked for me whenever it was back then. So it must work for me again today, right? Like, that's one of my favorite things when you discover like, oh, I'm walking down a path I've walked before, but I do not remember walking down this path at all.Simon Grimm:I've also sometimes found my own blog post on specific topics when I googled something and I was like, oh yeahSimon B:So I'veSimon Grimm:niceSimon B:used yeah I've used blog posts as kind of like public like my own public notebook like I've got a few blog posts that I kind of go back to fundamentally whenever I need to dockerize something I go back to my own blog post about how to dockerize something because I don't do it I don't do it that infrequently but I do I do it infrequently enough that I always need a bit of a reminder and like which for instance when you've got to open a port when you've got to link a port on your computer to a port in theSimon Grimm:Hmm.Simon B:container. I'm like, which way around? Because it's just 3000 colon 3000 or 3001 colon 3000. I'm like, which way around is it? Which one's the computer,Simon Grimm:Yeah,Simon B:which one's the container?Simon Grimm:just like with the symbolic link,Simon B:Yeah,Simon Grimm:LN.Simon B:exactly. Which way around is it? I can never remember. So yeah, then I go off and I Google it and I find my own article. I'm like, all right, yeah, yeah, that's why. That's what it is, because I've written it before.Simon Grimm:I want to wrap up today's episode with a good and a bad news that I shared with you, but I also want to share it with our audience to keep up the progress and the story behind the Half the Code podcast.Simon B:Mm-hmm.Simon Grimm:So after a lot of pressure during the last episodes, I finally started reading the Phoenix Project book. And I got a good start, so I immediately read like two chapters and the next evening I read one chapter and then it a bit slowed down.Simon B:I readSimon Grimm:AndSimon B:fiveSimon Grimm:I-Simon B:chapters last night. How are you only three chapters in?Simon Grimm:How long did you read? I mean, youSimon B:I don'tSimon Grimm:readSimon B:know, like halfSimon Grimm:likeSimon B:an hourSimon Grimm:midnight?Simon B:or something?Simon Grimm:What's your readingSimon B:They'reSimon Grimm:speed?Simon B:smallSimon Grimm:You're crazy.Simon B:chapters.Simon Grimm:No, they always say like 15 minutes, but 20Simon B:Ah,Simon Grimm:minutesSimon B:you're listening.Simon Grimm:chapters.Simon B:I'm reading like an adult.Simon Grimm:No, I'm reading,Simon B:AreSimon Grimm:I'mSimon B:youSimon Grimm:reading,Simon B:reading?Simon Grimm:I'm reading.Simon B:I read like fiveSimon Grimm:SoSimon B:chapters last night. Alright.Simon Grimm:I'm slow, I'm reading in English. I'm a...Simon B:Uh, how- wait, you cannot use that excuse. You've been speakingSimon Grimm:Cannot?Simon B:English since you were like six or something, undoubtedly, and you guys are actually learning English, unlikeSimon Grimm:Well,Simon B:we never learnSimon Grimm:then ISimon B:anything.Simon Grimm:still got six more years than I got. So anyway, I got started with the Phoenix Project.Simon B:Good.Simon Grimm:It's interesting, it's interesting. However, the beginning, and I was asked on Twitter and people said, oh yeah, this is the best book of all time. Yeah, you definitely need to read this. And I like the beginning of the story. It's technical and the problem is it is too close to me. It's too close to reality. It completely hits home andSimon B:That's great.Simon Grimm:everything, like I didn't have. all the problems because I have been just like three, four years in the company where I started, but I've seen this from the outside. The project managers, the consultants, the other developers, the mid-level or higher level people.Simon B:Have you met the marketingSimon Grimm:It is,Simon B:girl yet? TheSimon Grimm:itSimon B:marketingSimon Grimm:is, it is,Simon B:lady.Simon Grimm:oh yeah. And like this, when people finger point to others, I don't know, it's like in a third or fourth chapter, where, where the bill, the person who we are like, but he's mostly Like he hasn't done something wrong and the marketing lady just blames him in this huge, like in this huge audience. I don't know, I just feel this and it makes me so angry inside. So I had to stop reading this book before sleep because it just couldn't stand it. I mean, it's not fair. We all know it. And I don't know, some people can just read it as a story but it just touchesSimon B:Oh, butSimon Grimm:meSimon B:it's,Simon Grimm:somehow,Simon B:it's,Simon Grimm:honestly.Simon B:it's, but, but...Simon Grimm:It really makes me, like, I hateSimon B:Good,Simon Grimm:it. Like...Simon B:good. That means it's good writing. That's what that is. That's good writing. So my buddy who is an IT ops guy, he's like the most dyed in the wall Microsoft IT ops person. He's been doing this for 20 years. I made him read the Phoenix Projects and I was like, read this book. He's like, okay, I'll read this book. No, I just said it once. And he was like, yeah, okay, I'll read it. Unlike some other people that needed like,Simon Grimm:HahahaSimon B:I was practically flying over to Germany with a copy of the book to force it into your hand. Anyway, he I've just searched in WhatsApp for Phoenix and I found a message from my buddy on the 8th of June 2021. So this is how long I've been recommending it to people for. He replies with just started the Phoenix project. It's giving me sweaty palms. And then so that was on the 8th of June 2021. On the 15th of June, so seven days later. finished the main story of The Phoenix Project,Simon Grimm:HeheheSimon B:really enjoyed it. So he did it in seven days. I think the first time I read it, I think I did it in five days. So yeah, I smashed that book.Simon Grimm:I mean, I try to read like 30 to 45 minutes before sleep. I don't know why you're soSimon B:But ISimon Grimm:fast.Simon B:thought you were an audiobook person.Simon Grimm:No, no, I'm not an audio book.Simon B:I thought youSimon Grimm:ISimon B:wereSimon Grimm:read,Simon B:an audiobook person.Simon Grimm:I readSimon B:Okay.Simon Grimm:before sleep. Yeah, I read until my eyes fall for close.Simon B:So it might just be because it takes me ages to get to sleep soSimon Grimm:Yeah,Simon B:I'mSimon Grimm:exactly.Simon B:getting in if I sit and if I read before going to bed I'm getting in 45 minutes to an hour so it shouldn't take you 35 hours. So I've just looked it's 35 chapters it should not take you 35 hoursSimon Grimm:35Simon B:to read this book.Simon Grimm:chapters, holy.Simon B:ButSimon Grimm:No,Simon B:they're notSimon Grimm:it shouldSimon B:bigSimon Grimm:be...Simon B:chapters I wish I had mySimon Grimm:ISimon B:KindleSimon Grimm:think itSimon B:with me.Simon Grimm:said like 8 hoursSimon B:Do you haveSimon Grimm:inSimon B:yourSimon Grimm:theSimon B:Kindle?Simon Grimm:beginning. Like in...Simon B:Yeah KindleSimon Grimm:No,Simon B:should say likeSimon Grimm:it'sSimon B:8Simon Grimm:a...Simon B:hours or somethingSimon Grimm:Yeah,Simon B:right?Simon Grimm:8.Simon B:Yeah that's howSimon Grimm:Yeah,Simon B:it'sSimon Grimm:yeah,Simon B:about right like 7-8 hours something like that.Simon Grimm:so... We'll give it a try.Simon B:I'm excited,Simon Grimm:But ISimon B:man.Simon Grimm:already said this is too stressful for me and I just want to hear about Sith Lord taking over the galaxy right before sleep. That's more chilling to me.Simon B:I think the... So I've been listening to this World War II book. It's been fascinating. It's called this, this could only be slightly awkward, but whatever. So I've been listening to a World War II book and I've been hearing a lot about the German Russia front and it sounded pretty brutal, but I've been listening to that before going to sleep. So I like, usually I read, but this book I've been listening to before going to sleep and...Simon Grimm:Is it only like is the person only reading or are there also sounds?Simon B:No,Simon Grimm:OkaySimon B:no, no, it's,Simon Grimm:Okay,Simon B:it's just reading. There's no, there's no sound.Simon Grimm:okaySimon B:I couldSimon Grimm:thatSimon B:notSimon Grimm:wouldSimon B:deal with sound effects in this book.Simon Grimm:YeahSimon B:Good Lord. But there was, it's like, I think I listened, I think I set the timer to like half an hour to 45 minutes and then it finishes them and I probably doze off with another half hour or so. The other night I was lying there and it wraps up a chapter and then it went, I don't know what the chapter number was, but it doesn't really matter. It went Chapter 12, the Holocaust. I was like, nah, don't think so. Not right before going to sleep. I'm out. I just paused it.Simon Grimm:Nope.Simon B:I was like,Simon Grimm:Nope. Nope.Simon B:oh, I'll grab that. I think I'll grab that on the dog walk tomorrow instead. Like I haven't had any nightmares from it, actually, which is quite surprising. So because I am listening to it right before going to sleep. But but yes, I know. I think I think it's funny that you say that, like maybe like, nah, I don't think I'll listen to the Holocaust chapter now. I could I can see also not wanting to read about the internal corporate politics. of an IT, of a new IT chief, that is painted in a way that you really like him. Like, you are supposed to really like this guy. Like, you areSimon Grimm:Yeah.Simon B:supposed to like him. He is, he is our kind of person, right? He is there to do the best for IT and make sure that IT delivers for the business. But he's just been dealt a really horrible handSimon Grimm:Mm-hmm.Simon B:of cards and it's stressful.Simon Grimm:I mean, I have some problems with the character of him, because he's going home that late, he's not seeing his family, like, I don't really enjoy it, I don't think like any kind of job should be there like that.Simon B:Yeah, I think that might be... I completely agree. I think that might be a European versus American thingSimon Grimm:Yeah, that's...Simon B:and the UK sits very neatly in between those two cultures. So it has not been uncommon for my wife to do sort of 60, 70 hour weeks back to back for months and months and do...Simon Grimm:I mean, people in Germany might do it as well, butSimon B:ProbablySimon Grimm:probablySimon B:in,Simon Grimm:less. I thinkSimon B:yeah, I think it'sSimon Grimm:inSimon B:less.Simon Grimm:Europe,Simon B:I'm probablySimon Grimm:likeSimon B:in Berlin.Simon Grimm:the whole vacation thing, I read this on Twitter as well, like people in the US are kind of already ashamed to say they got COVID and they need to stay out for two days. And here in Germany, we basically say, bye bye, got three weeks of summer vacation, I'm out.Simon B:Yeah,Simon Grimm:And that'sSimon B:I thinkSimon Grimm:it. AndSimon B:theSimon Grimm:nobodySimon B:UKSimon Grimm:feelsSimon B:isSimon Grimm:badSimon B:like,Simon Grimm:about that.Simon B:yeah, the UK is like halfway between, like, we'll take our holiday and we'll be ill when we need to be ill. But then likewise, it's not uncommon in sort of the, in the workforce to find people doing, you know, regularly doing 10 to 15 hours a week more than their allotted hours.Simon Grimm:You do you. If you wanna do it, that's fine, but I don't think anyone should be forced or should have the expectation to doSimon B:No, no,Simon Grimm:20Simon B:of courseSimon Grimm:hoursSimon B:not.Simon Grimm:more if you don't wantSimon B:Although,Simon Grimm:to.Simon B:although again, you are this is where the genius of this book comes in. You are getting stressed about things and bothered about things that you are supposed to get bothered about. This is the point. When you text me, you're like, this book could be too stressful for him. Like, no, that's the point of the book. That is the point of the book. Like, that's why you read this book. He is setting you up ridiculously well for I mean, it's even called The Phoenix Project. You should be able to work out what's going to happen about halfway through the book. Perhaps something bad will happen, and then something good will rise from the ashes. That's why it's called The Phoenix Project.Simon Grimm:Yeah, I will continue reading just because I'm interested in what's gonna happen. I had some, like we're gonna listen to this episode maybe back in about half a year when I finish the book. So they are always talking about we have to finish Phoenix Project. Phoenix Project is the most important thing. There's nobody saying anything specific about Phoenix Project yet. So that made me curious if Phoenix Project is like just trash and they're just betting on the wrong horse. That is just some... some idea ahead. I guess there won't be like this big of a change in the book, but ISimon B:WhoSimon Grimm:don't know. That's just my...Simon B:who knows like what? What I wonder if that is what the book is setting you up to think and wonder. Yes.Simon Grimm:I have no idea, I don't know, I'm just trying to read between the lines.Simon B:Which is which is good. That it's it's an excellent book. If you are not reading the Phoenix project,Simon Grimm:Yeah,Simon B:then.Simon Grimm:you still have the chance to finish it before I'm done with it.Simon B:Yeah, yeah, yeah, yeah. So if you read an adult space, then you should be. then you should be able to finish it before Simon G does. Also as well, I feel like maybe another title of this episode could be Simon G discovers good writing. Like, again, you're being sucked into a book in a way that is supposed to suck you in to, I mean.Simon Grimm:Yeah, we just call it speed reading with Simon G.Simon B:Alright, let's wrap this one up. As always, you can find me as at all the code on Instagram and all the code dot co. We've been putting some reels on from the show on there recently. They've been doing well, so I am pleased with that. Simon, where can people find you?Simon Grimm:At galaxies.dev we might have our latest course or a drop next week about React Native and Chat GPT. Gonna be an epic course and by the way Ionic Academy is also getting a new course very soon so go check out galaxies.dev and ionicacademy.comSimon B:Catch you in the next one.Simon Grimm:Bye.

Rate

Join Podchaser to...

  • Rate podcasts and episodes
  • Follow podcasts and creators
  • Create podcast and episode lists
  • & much more

Episode Tags

Do you host or manage this podcast?
Claim and edit this page to your liking.
,

Unlock more with Podchaser Pro

  • Audience Insights
  • Contact Information
  • Demographics
  • Charts
  • Sponsor History
  • and More!
Pro Features