TopPodcast.com
Menu
  • Home
  • Top Charts
  • Top Networks
  • Top Apps
  • Top Independents
  • Top Podfluencers
  • Top Picks
    • Top Business Podcasts
    • Top True Crime Podcasts
    • Top Finance Podcasts
    • Top Comedy Podcasts
    • Top Music Podcasts
    • Top Womens Podcasts
    • Top Kids Podcasts
    • Top Sports Podcasts
    • Top News Podcasts
    • Top Tech Podcasts
    • Top Crypto Podcasts
    • Top Entrepreneurial Podcasts
    • Top Fantasy Sports Podcasts
    • Top Political Podcasts
    • Top Science Podcasts
    • Top Self Help Podcasts
    • Top Sports Betting Podcasts
    • Top Stocks Podcasts
  • Podcast News
  • About Us
  • Podcast Advertising
  • Contact
Not in our directory?
Add Show Here
Podcast Equipment
Center

toppodcastlogoOur TOPPODCAST Picks

  • Comedy
  • Crypto
  • Sports
  • News
  • Politics
  • True Crime
  • Business
  • Finance

Follow Us

toppodcastlogoStay Connected

    View Top 200 Chart
    Back to Rankings Page
    Technology

    Notes On Work – by Caleb Porzio

    Brief thoughts and insights from Caleb. Mostly on work. Mostly while drinking tea.

    Advertise

    Copyright: © 2024 Caleb Porzio

    • Apple Podcasts
    • Google Play
    • Spotify

    Latest Episodes:
    Wrapping Your Arms Around A Big Tree Nov 08, 2019
    Show notes

    So this is a little, um, analogy, metaphor. I dunno. A little thought experiment, analogy thing that I thought of recently, and it just reminded me when I was recording that, that last episode called a lovely refactor. Um, so wrapping your arms around a big tree. Okay. So like I expressed, I got a pull request that overwhelmed me and the pull requests overwhelmed me, but also my own code base overwhelmed me.

    Like I hadn't touched, I hadn't. I feel like I don't know everything about the backend of Livewire right now. You know that that changes. The more you're working in a certain area, you understand a lot more. But over time, you know, it's like a sand timer thing, a code base, like you sort, you start to lose it gradually over time, and then as you work on it, you, you know, the sand fills back up and then it slowly drains out.

    So this is kind of what came to me. I was thinking about, well, I don't really own this code anymore. This is, it's a, it's an unpleasant position to be in when you have to change code or work on code that you don't understand. Like there's too much stuff going on and you feel like you're wrapping your arms around a really big tree.

    You want to wrap your arms, you want to touch your fingers at the other end, but you just can't, the tree is just too big. So I think this analogy works for a lot of things, like a Greenfield project, let's say. Um. It starts off as a STEM, just a tiny little sapling, and you can wrap your fingers around it on one hand and it grows and it grows as you build it, but you, you have full control over it.

    You feel like, um, you know, every angle of it, all of those things. And so maybe good architecture, um, doesn't seem as important because you know, all the code. Um, and so I've seen this with even really big code bases at a company. Usually there is a, uh, a person who has been there forever. And who like wrote the thing and it's, you know, if it's a legacy 10 year old code base and they have their arms around the whole thing, I don't know how they do it.

    It's a really big tree. So they must have really, really long arms, but they can make changes, you know, fast and, and um, yeah. But the changes aren't always architecturally sound and they're not necessarily thinking big picture architecture. Because they keep the whole code base. Maybe they're there, like the, the issue ticket guy, like you know, other, the, the new hires and the specialists and consultants are working on new features and other microservices.

    But this guy, he's in the main code base and he's the one, you know, going through the issue tracker every day and fixing diverse parts of the code base. This is funny. I think it's, I think it's like a type, like in any longstanding code base or big or big company that's been around for a while.

    There's this, this person definitely exists. Anyway, I say this to say that, um, that this person doesn't necessarily need good architecture or need as good of architecture because it's all in his head. Her, it head, um, doesn't need good architecture because it's all in their head. And, um.

    Person. Now I'm hung up on the fact that I'm trying not to use the word he, because all the people I know that are like this are guys. Um, and I'm trying to use the VA when I'm saying this, but I don't know. Oh man. Oh man. Social, gender specific cities. Uh, okay. This person, this animal. Um, who is this way and wrap our arms around the code base.

    Okay. So you have your Greenfield app and you have your hand around the code base. Right. And like I said, or whatever the size of the code base is, when you own it, you own it and you can wheel and deal and move code fast. But when that sand timer runs out. And you lose, like let's say your arms shrink.

    So the arms shrinking, we'll be the analogy for, um, for how much, you know of the code base and the size of the trunk will be how big the code base is or how complex it is. So as your arms shrink or the sand runs out and you try to reach around the tree and you can't anymore, and you can't touch your fingers, you have a couple of options, you can push through it and you can grow your arms.

    By just working on the code base, understanding more of it, and eventually making the change or making dangerous changes, making changes you're not sure about, and hoping that, hoping that they work and don't impact other parts of the code base. Or you can shrink the trunk and a way to shrink the trunk is making abstractions that reveal the nature of the code base.

    So this last, uh, architectural change that I, that I, um, talked about did just that. I, it took a system that was just a bunch of code, like unorganized. There was, there's files that run code and they do things in different places and the different things are scattered across. And I moved it into one little bit in the service provider that says, register.

    Hydration, middleware and lists, all of these middlewares that are well-named. They name exactly what they do, and they're in a specific order because they act like layers of an onion on a shell. So this little bit now reveals the nature of the code base a little bit. You can remove this whole chunk and now you've removed a ton of functionality.

    You can swap in functionality easily. You can comment out a line, and now you've removed that functionality from the code base completely. So, I don't know. It's just sort of something that's been rattling around in my head is this idea of, of that feeling like, you know, that feeling, if you've worked at any, on any real project, you know, the feeling of not being able to wrap your arms around the tree.

    And you also know, um. You know how nice it is when you can wrap your arms around the tree and how you get a little bit lazy in terms of architecture. So maybe this is a lesson in distancing yourself from the code base or fresh eyes coming on the scene of a code base. Because when they don't, when you don't have all the understanding, you, um.

    You use, you can use, you can refactor, uh, to make the change easy to make, to reveal the nature of the code base at a, at a high level. And that's what it is. That's what abstractions are all about, is at the lowest level of abstraction, you have logic, you have procedures, you have imperative code, you have lines of if statements and L statements and whatnot.

    And maybe you put them into classes and you call it object orientation, but really if it's just, you know, imperative code jumped into classes, maybe you just got bought yourself a couple extra names or you know, whatever. But good abstractions help reveal the nature of these interactions and all of the patterns that you read about.

    That I've read about and studied and you know, it's the famous like pattern of people developer who, you know, you don't know anything. And then you want to know everything. So you read all these books and you think you have to abide by all these practices and then you just throw them all out the door and start doing your own thing.

    Well, as I'm, I've been on this, do your own thing, journey for awhile. I'm starting to kind of rediscover a lot of the patterns that I've read about before. A lot of the principles I've joined your principles, things like that. Um, prefer composition over inheritance, uh, the law of Demeter, all of these things that I've encountered.

    Along my journey I'm now re encountering, um, but organically, like encountering them in on my own and going, Oh, okay, so maybe these architectural astronauts who wrote these books warrant, um, you know, architectural astronaut, it's a PR PR pejorative term. It's like, it's almost like a, um, a hurtful term, you know?

    But. But I don't know. Maybe there's something to it. There's definitely something to it, and maybe, I mean this, there's no, there's no substitute for experience. So even...


    A Lovely Refactor Nov 08, 2019
    Show notes

    Okay. I am recording this podcast right after a while. I'm kinda in the midst of a really, really fun refactor. One of those refactors that's just been building for awhile. Something I've been thinking about in the back of my mind. No, I've known that the architecture is wrong, uh, for this specific thing.

    And I've just been sitting with the problem thinking about it, trying to come up with the. Trying to understand the problem well enough, come with the solution, yada, yada, yada. Finally did it. And I feel freaking great about it. And it's really, really, really improving the code base, like as we speak.

    So let me walk you through it because this is a, it's another one of those refactors like the ones, it actually looks almost exactly like the ones we've talked about before on here where I started talking about like the hooks pattern, the, a single file pattern, like all these things, um, are all culminating for yet another refactor.

    So let me walk you through it. It's a, it's fairly simple. So live wire. And you click a, you click something on the front end and instead of it just changing data and rerender during the front end, like few JS does, it goes back to the server and it changes the data. Rerender is a template on the back end.

    It comes back to the browser changes the front end, right? That's how live view works. Phoenix live view. That's how Livewire works. Uh, so the difference between Phoenix live view and Livewire is that Phoenix live view keeps a background instance running. So. Where in VJs you have a component that's alive and it exists in the JavaScript runtime over time and live view.

    There's a component that exists in the backend, and so Phoenix uses WebSockets to connect to that component and you can make calls to it and all sorts of stuff, and that makes it really fast and it's great. And yada, yada. Livewire version zero, zero one, uh, worked exactly like that, but then I moved away from WebSockets and now live voyeurs, stateless and uses Ajax requests to go back and forth.

    So there's no long running instance. Um, because of that, I have to hydrate and dehydrate Livewire components on the back end. So every request that the browser makes, so you click a button in a live wire component, like you have wire click, and then some action. It sends a request off to the server and says, Hey, here's the idea of the component, here's the name of the component, here's the data the component has, and then a bunch of other stuff says, build up that component from all of this, from this state, because the front end stores the state, build up the component from this state.

    Then run this action. Whatever you decided on the wire, click that after. Dehydrate the component back into a Jason array of state that I can store because I'm the front end and I have a run time, so I can keep track of the state here, and then the back end is completely stateless. So that's kind of a fundamental, how live wire works.

    Little explanation. So I, I decided to explain it again because I know this is the kind of thing that seems, um, obvious to me, but if you're not building live warrior, then you're probably not totally aware of how it works. So that's kind of the ketchup. Okay. So in the back end, there's this concept of hydrating and dehydrating, but when I was programming it, like that concept was never really clear to me.

    Um, like I said, it's been an evolution and I'm just sort of updating the code as I go. Um, so there's this, this kind of, this file that I actually like this file. It's one of the most powerful files in the whole system. It's called connection handler. And it's the thing that takes the incoming requests from the browser and it builds up a Livewire instance.

    It calls the stuff on it, it gets the new render dominant, sends it back out all in one method. Um, it calls to a couple of different methods, but it's pretty tight. It's pretty clean. And it's, I like it because it, you can get a really good bird's eye view of the backend of Livewire. Well, this class has been growing over time because features get added and bugs get fixed and security holes get patched and all of those things.

    And, and the easiest place, uh, to add them oftentimes is right in this connection handler file. So it's starting to grow and there's lots of extra little bits and pieces added to it. So there was a pull request recently too, in live wire protected properties. Tune, tune this part out. If you're not familiar with protected properties in Livewire but protected properties, everything else is dehydrated into Jason.

    That gets passed back and forth in the front end and back end. Well protected properties because they're sensitive data. They get dehydrated into the backend cash, uh, and then rehydrate it out of the cash on every request so it behaves differently than the rest of Livewire. So somebody said, Hey, I want to make a pull request so that I can opt into not caching protected properties and encrypting them and sending them with a payload to have a truly stateless Livewire.

    So let's say you're using vapor, well, I guess vapor has a cache built into it. Okay, well, so you just want to have a stateless Livewire, then you could do that. Um. So they made the pull request, the pull requests overwhelmed. To me, it's, this is one of those difficult things. Um, I really appreciate that.

    I get so many more GitHub issues than I do pull requests. So when I get a pull request, I, I want to be helpful and I want to work with it and pull it in. But it's honestly just a lot of mental overhead for code that I didn't write. So I have to pull it down. I have to read through the pull request.

    I have to understand what it's doing. Under and I not only just to say, okay, this works, we'll pull it in, um, to understand what it's doing. So that enough that I can change it if it's not ideal. So I have to really, really understand the code so that I can see areas where, Oh, you know what, maybe a better way to do it is this or that.

    And then I almost feel like I'm kind of rewriting the code. Um, I do really, really appreciate pull requests if you're getting the wrong idea. That's not what I'm communicating. But there's a lot of mental overhead, so I'm pretty lazy with them. This one in particular, because it's so big, it touches a lot of files and I realized that I was frustrated and enough that I thought, okay, this is a good opportunity to make the change easy.

    So instead of putting my energy into understanding this pull request and making sure and implementing it and making sure that it's right or wrong, whatever, I'll, I'll make the change easy. I'll refactor the code base so that a pull request like this will be. Not many changes to files will be very brief.

    Um, then I'll, you know, post back to the, the contributor and say, Hey, I refactored the code base, take a look at it. And, you know, maybe I'll do the work every factoring and whatever I do, I'll give him credit for the pull request. But. Well, basically it's a classic case of make the change easy, then make the easy change.

    And this is, as I've said, a thousand times, maybe one of my favorite coding principles ever. Um, so I rolled up my sleeves and I decided to do it. And what emerged was pretty much the hook pattern that I described before, but in a little bit different way. So there is a backend life cycle and I pretty much described it to you.

    The back end life cycle of a Livewire component is it gets, I'm going to have to map this out and put it in the doc somewhere. Like if you go to VJs docs, you can see the whole life cycle of a view component. I'll need to map it out for everybody in the doc so that you can kind of understand, um, but live where's a little more complex?

    Cause there's a front end lifecycle and a back end life cycle for each component. And I've ...


    My Biggest Struggle As A Web Developer Nov 08, 2019
    Show notes

    Sorry for the clickbait title. This might not be what you think, but it's the truth. My biggest struggle as a web developer is the toll it takes on my body is my neck. So let's, let's open that up. Um, this is for real though. So, uh, it's something that I don't know. I probably haven't talked publicly about ever.

    But I, so I've always been pretty active kid, skateboarder. Um, I dunno, park Corps before there was a name for it. Uh, I've always kinda done gym, backyard gymnastics, and I've always just done stupid stuff basically, and gotten hurt doing it. One time. I really wanted to learn how to do a backflip.

    That was my, my big goal was I thought like, you know, all this stuff's cool. I could do a front flip, all right, whatever. But a backflip, that's the thing. That's the cool thing. It's hard to do. It's hard to convince your brain to like put your head behind you. Like it's very hard if you've ever tried to do a back flip, it's not easy.

    Um, but I eventually conquered the fear kind of by. Doing it. And I did it wrong and I was doing it in the grass. I remember outside my house, I convinced a friend to throw me off of his deck backwards into a pool of water. So I was like, that's safe. That's easy. So I remember he was a big guy and he would do that just like Chuck me behind him with my legs, like grabbed my ankles and throw.

    I would jump and he would throw me and I would do these backflips tonight so that I, I needed that to show my brain how to get, uh, like behind itself. You know, how to go backwards. So then that night I remember I went home. And I was in the grass, like the side yard grass, and I was just doing back flips and this was, this was my technique, just lunch.

    Oh, okay. I could do them on the trampoline. Yeah. Yeah. I could do them on the trampoline, but I want to do them on the ground. That was my big goal cause it's totally different. Totally different. You have to do it so much faster. So on the ground, I just like, I remember I would like treat it like a trampoline.

    I would just jump on the ground with all the power in my legs and just throw myself backwards. And pretty much get it, and I can pretty much do a backup. But they were sloppy, you know, there was, it wasn't good for them at all. Um, and I landed on my neck and it, I remember that I didn't like snap my neck and get paralyzed, but I definitely landed on my neck and it like kinked sideways.

    And I remember being super scared and shaken up and be like, Holy crap. Like this is the thing that people warn you about. And I just did it. My neck really hurt for awhile and I didn't tell anybody. No kind of went away. Then I was doing Spiderman front flips. This is even stupid. But on a trampoline.

    My buddy Keith, he, we had a trampoline in our backyard and we just did tons of cool trampoline stuff, whatever, stupid trampoline stuff. Um, we didn't have a net or anything. Of course not that matters, but one of the things that he showed me his, he called them Spiderman flips, and so he would jump as high as you can and you would flail out like Spiderman, like you would like wave your arms out and you would be totally horizontal.

    To a little bit facing down. So you're just like, almost like a parachuting or whatever, like skydiving, you're just like free falling. And then right before you hit the trampoline, you tuck your head in and do a quick roll and you land on your back. So the idea is like, it's a very delayed front flip.

    Anything like that. Super dangerous because you can delay it too far, obviously. And I did and I delayed too far. And when I talked, I basically just. Dove headfirst into a trampoline and my chin, like crushed into my chest and it like really straightened that, hurt my neck pretty bad. Fast forward some years into like.

    Late high school, I was at a chiropractor, like what? High schoolers at a chiropractor, but I, my neck was just hurting, whatever. So to this day I have just neck problems. I've messed up my neck. I went to the dentist and he took an extra on my teeth and went, Whoa, your C spine is crooked. He's like, do you have neck pain?

    I'm like, yeah, all the time. It's like, you need to go to this guy and this guy. So I did whatever. It's just a massive struggle in life. My neck hurts right now. Right now. It hurts. It is. I turn it. Yep. So. Anyway, that and, uh, so, okay. I'm telling you some stories. Hopefully you find some of that entertaining cause we're meandering.

    But, uh, basically. The thing that is worst. The worst thing for my neck is programming. There is nothing in the world that is worse for my neck than programming, especially sitting and programming, sitting in general. So that's pretty horrible because it's the thing I love most in life and the thing I want to do every day.

    And it hurts a ton. Um, I also have had like risk problems, so it's not just next stuff that's unique to me. This, I know, like this is stuff that happens to even people who didn't have neck injuries that can have neck pain and do. Um, but my wrist, I have good risks, at least I thought, but I basically got like carpal tunnel or whatever, some tendinitis and I had to get some wacky ergo year ago keyboards.

    So just like development wrecks your body. It's so, so hard on your body. My brother is an HPAC technician. We've talked about him sometime on this podcast. He a, so he's a hard worker, like he works hard all day, like really works. Not my pretend work where I move my fingers. He like lifts stuff up ladders and does on roofs and freezing cold all day and.

    He's, his body is like rockin. He, uh, he does not have a rocking body. He's actually, um, he's thickened out over the years. But, uh, yeah, he's got that nice like union union, man belly, um, where you get when you get a bunch of wings and beer after the job with your buddies. Um, that's, that's his body.

    So now that I've described my brothers rock and body on the podcast, he's going to love it. If he ever hears it switch, you'll never hear it. So he, uh, he has like nobody issues at all. Like none, because he's moving all the time in, in unique ways, you know, and it's diverse movement where our movement is.

    Small and repetitive, and you're, Oh man, go into any office and just look at people, take a sample of people. Their heads are forward, which means their necks are strained and it's just strain. And those muscles just tighten and tighten and they grow like vines on, on a bricks and they like Ivy on bricks.

    They get into the mortar and they hold, and that's where I kind of am because. I have neglected this for so many years of being on a computer that now it's like I can't even sit and compute if I, if I get, if I have like a good day, like I'm doing all the right things or I took a break from programming or something and I, I go to a coffee shop cause I'm like, Oh yeah, I focus great at a coffee shop.

    I can't go to coffee shops anymore. But if I treat myself to go to coffee shop and sit in a chair and hunch over a laptop. I will be in serious pain the next day because it's the worst posture ever. You look, I've just been traveling and look at people on planes and other forms of transportation with their laptops down and their necks kinked and they don't feel any pain, and they will someday.

    Maybe there's some people who won't, but for the most part, like, Oh, it's so, so bad for your body. So anyway, that's my biggest struggle as a developer. I deal with it every single day. Um. It's makes me way less productive because I'm most productive on my laptop, but I can't. I have to use this stupid ergo ridiculous ergo docs keyboard that costs $4 million and I'm slower on it.

    And I have to stand. I'm standing right now. I have to stand and I'm less productive when I'm standing because the knowing the stand, I have to look at this big screen and I don't ...


    How I Cured My Fear Of Public Speaking Nov 08, 2019
    Show notes

    Alright. So like I said in the last episode, I am cured of the fear of public speaking or so I think I'll say that I have one experience that is the last talk I gave at full psyche. You were, it wasn't the normal rinse repeat that I talked about last episode where it's like you agree to something because you're hopeful about life and you know, you sign yourself up, you sign your future self up for the pain, and then.

    You fear it, hate, it gets worse, worse, worse, worse, worse. You do the thing, you're relieved and you say, I could do that. That was easy, and then you do it again. This was the first experience I had where that didn't happen, where I gave the last talk I gave, I felt fine after and I agreed to the next one and I actually felt fine the whole time until I gave the talk and I felt fine.

    And I still feel fine, and I didn't have that giant spike of like that giant mountain to climb. It was more just like a road to walk with maybe a little Hill. Um, that's it. So I feel like I have, I don't have a whole a year or two of these experiences, but I have one experience and, uh, that's after many, many, many, many, many, many of the all other type of bad experience.

    So. How did I curate? Um, I'll, I'll give kind of a preview of the three things I'm going to talk about. The first thing, you know, the disclaimer, two disclaimers. One, uh, there is no, you know, quick, easy cure of course. Um. The second thing is that I think I, this may not work for everybody, like some of it's my temperament.

    I can't remember if I talked about this in the last episode, but I have a good stage presence by nature, like I was just kind of born with. It doesn't mean that I'm not nervous at all for these engagements. Like I think I'm just as nervous if not more nervous than other people, but for some reason when I get on stage in front of people, I like say funny things and I'm a little witty and I am, I appear to be very happy and comfortable.

    That is not the case. Uh, I am not comfortable now. I think I am more, but definitely appear far more confident and comfortable than I am inside. And that's kind of a common thing, I think. I, I think for people like me, um, and that goes for social situations in general, but, okay, so here's the three things.

    First thing is, um. I need. Well, we'll cover the basics. That's the first thing. It's like, make sure you prepare the talk. Well, like that's, um, I'm not the first step to not being afraid of speaking is making sure that all the bases are covered. That I know the content well, that I know the talk well, that I've rehearsed it well.

    That all of those basic things that you have to do to deliver a talk, well, forget about Fear and whatever. It's like just excellence. Like get that part down. That's, that's like the bare minimum unfortunately. Cause that's really hard work. But that's the bare minimum. I have to have that first, then I, it's funny cause I know like the, uh, two talks ago, lexicon, I, I practiced a ton.

    I had it all set up. I'll say last year I was. It was all set up. I practiced a ton. I rehearsed it a ton. I prepared a ton. I rehearsed it in front of a ton of people, and I thought that it was good to go, but I still couldn't shake the crippling nerves. And I think a, and the reason is I think there's a very practical, the reason is I needed my subconscious needs sample sets.

    My subconscious needs a bigger sample set. My subconscious needs to know that I have enough experiences under my belt where I don't throw up on stage where I don't, uh, whatever die. You know, I have to have enough experiences where I don't choke on my words or feel sick or whatever. Under my belt and I just didn't have those.

    So like no amount of anything people could tell me would get me past that. So unfortunately, this one is like, you just have to do it a lot. You have to collect experiences, and hopefully you create a nice on-ramp for yourself so that you do it at, you know, gradually introduced yourself to this, like do meetups and then small conferences and big conferences and whatever.

    But, um, but yeah, you need to just do it. That's the, that's the hard one. That's, that's the, the true. But, um. Not hard, not easy answer is do it a lot. And that is a sure cure for public speaking. So that's something I've always tried to remember is like, make sure that I'm, I always have speaking engagements so that I, I don't, um, I don't know, get away from doing it long enough that I undo some of the confidence I've gained, but I think I'm passed some of that.

    So that's the second thing. And then the third thing is the easy one. It's the magical. The magical spiritual confidence. A story I'm going to give you where like, you know, Mufasa came down from the clouds and told me something that just like cured me of, of the fear. And I did have a little experience like that.

    Um. So we can talk about that, but all right, so I talked about the first two things. I guess let's just jump into that. So last, uh, last layer con this, this year, the talk I gave, I again, like I gave a talk at, um, in eerie like a couple months before. And I felt great about it and I gave like a, I was a best man in a wedding and I, I was nervous for both of those things and I gave the talks and they went really well, so I had good data, but still for lyric on, I was freaking nervous, like, so nervous and anxious, just that really obnoxious, you know, nerves not as bad as last year, but still pretty bad.

    Um, and I'm standing there on stage, side stage, so off to the side, getting wired up and I kind of lean over. And I see the podium, I see everybody there. And just that there was a defined moment where it hit me like a wave and I was, and I like, I didn't hear these words, but these are the words that kind of rattled around my head was be in this moment.

    So this is some bullshit, like a self-help mumbo jumbo, but for real, like that's what resonated with me in that moment was like. You don't have to press the play button on a prerecorded a demonstration. You don't have to. It's not like dance monkey dance. It's like you can own this moment, whatever that means.

    You can walk out there and look at these people and take a breath and own it. You can engage with them in a real way. You can actually be there and it's really hard to explain, but it just, it shook me like all of a sudden I was not nervous at all. And, and I had like two minutes before actually walking out on stage and I just wasn't nervous and people were talking to me.

    But backstage I was fine and I walked on stage and I was fine. I was not nervous and I gave the talk and I was not nervous. And then that carried through until this entire next talk and trip to Europe and everything was not nervous. Like 20% of the nerves the day that I gave the talk. So anyway, that, that's the kind of magical piece that, that maybe that translates.

    Maybe I can speak that in your ears and you can get some of that and maybe that'll help you. Uh, or maybe you just have to have a, your own little like Mufasa cloud's moment. Um. Hopefully you do. So anyway. Yeah. So that's, that's kinda my story, how I cured the fear of public speaking. I mean, it's pretty simple, but, uh, but yeah, I guess some reminders there, like, I wanted to bail on this year's Lira con or something.

    I don't know. Like I wanted to not do some talk. I forget what it was, but I wanted to not apply for it or reject the opportunity to do something. Because I was just so overcome with nerves, and I'm just, I, I'm an anxious person. No doubt. I have definitely probably GAD, general anxiety disorder.

    I'm sure I have that, whatever. I've just get anxious about like irrational things. Um, but, but here is my philosophy in life is if I don't do the things that I'm anxious about, they will only get bigger. So I remember ha...


    My History With The Fear Of Public Speaking Nov 08, 2019
    Show notes

    Okay. So this episode we're going to talk about my wrestling with the fear of public speaking for my whole life. And in the next episode, we're gonna talk about how I cured it. So I'll say that, uh, I just gave a talk at full-stack at UW. I just literally got back off the plane last night and it went really well, and I wasn't scared at all.

    And. It was just like kind of a milestone for me. It went, the talk went really well. I delivered it smoothly. I was not nervous for the days leading up. The months leading up, the weeks leading up, I was a little bit nervous the day before and a little bit nervous the morning of, but I don't know if that will ever go away.

    Um, like I had breakfast that morning and I was the first speaker. So that kind of. Demonstrates my level of anxiety, like I could eat and I mingled with people and just hung out and whatever. I was very comfortable and I, I think I did really well and I, I don't know, it was everything I wanted it to be.

    And for me it was a milestone in my career or my self, my life, myself as a person, self thing. I don't know, it was just, it was a milestone. It felt really good and I want to talk about it so. This episode, we're going to talk about, uh, my history with public speaking, so maybe you can identify with some of the things that I've gone through.

    And then next episode, like I said, we'll talk about how I cured it. Duh, duh, duh. So the history, my first experience, public speaking, I was probably six years old and I was in a play and a little Catholic school. Called, uh, the Velveteen rabbit. You probably familiar and I was the doctor and I was supposed to deliver a line and I, this was all, this is like early memory stuff, you know, those really foggy early life memories.

    This is in that bank. And the only reason that I remember it is because it was traumatizing. I had one line to deliver. I practiced it a ton. And. Uh, when it came time for me to deliver it, I stared out into the audience and I totally blanked. And I was a deer in the headlights. And after a little bit I realized, I have to say something or I'm ruining this play.

    So I said, it's funny, I still remember the exact words. I said, uh, when we get to the hospital, they'll know what to do. Which was just some words I pulled out in my back pocket. I think it made sense and I actually think I patched up the job pretty well for however old I was, but I don't know.

    It's pretty much it's scarred me. And, uh, it was the worst case scenario. Um, fast forward freshman year of high school, I was giving a presentation to the, uh, to my classmates. I was intimidated by them. I was new to the school, didn't have a ton of friends, and. Head to get this like book presentation.

    I was very nervous and when I got up, this is, this is the, this is the thing. Everybody fears my tongue went completely dry. My mouth was so dry. Oh my gosh. I will almost like would gag on my, my mouth. Like there was no moisture. I was shaking. Uh, my hands was shaking, my foot was shaking, and I started to get like tunnel vision.

    Like it was just the worst thing in the world. It was mortifying. And I was standing there knowing this was happening to me, thinking everybody is, is witnessing me. Crumble, like literally crumble and they're going to, they're going to hate me. They're, you know, all this stuff is just mortifying.

    So that happened. I lived, you know, nobody hated me. It was fine. But. Still, it was your worst fear. Um, so I, I'd given other little speeches, well, not speeches, but I had done all the little things like for church, maybe like a, uh, reading or maybe even some little sermon, stuff like that.

    Um, so I did a, uh, the reading stuff, I would breathe heavily in between words. Like I would be so nervous and I would read and I would know that like, Oh my gosh, like I have to take a fricking breath between every word. Because I, I'm nervous, you know, and I, everybody can hear that and I hated that and I would like choke on a word.

    Sometimes, you know, when that happens, when and you just like, like, or halfway through a word, your throat just like goes and you have to say it again and I don't know, and everybody knows it, whatever. So not a good history with it. Always very afraid of it, and always the same feeling. This is the feeling.

    I always agree to these things because I think I'm generally like an opportunist or something. I don't know. I just like, I like challenges, so if somebody says, Hey, you want to, I'd be like, yes, I'll do it. But then immediately after there's the regret and the nerves leading up to the event and you're just so darn like you just want more than anything.

    To like, take this cup from me, you know, like please, I do not want to do this. But unfortunately, most speaking engagement type things are things you have to do, like things that it's a super duper Dick move to bail out of. Like if you agreed to do something, they're counting on you and you get more nervous.

    The closer it gets, which means the harder it is to, you know, call in sick and have somebody else like cover for you or whatever. But. Anything like that, man. And you're just passing the burden off to someone else when you do that. So it's this weird thing where like, you know, you have to do it and you know you're going to do it, and it's a mountain that you have to climb and then you just want, you want more than anything for it to be over right now.

    You wanna snap your fingers and it'll be over. Pain and suffering, and then when it's over, you feel great and you feel like, Oh, I could do that again every time. But then it's rinse, repeat this. Every time it's rinse, repeat. It's like dry, dry, dry, dry, dread. Oh, it didn't go so bad. Well, I have some experiences that it did go so bad, but.

    For the most part it goes, all right, and then you're inspired. You're like, Oh yeah, I concrete that do wouldn't do it again. Someone else asks you in enough times past, you forgot the pain and you agree to it again and rinse, repeat. That's, that's my story is just fearing the public speaking, dreading it, doing it, it going all right to pretty, it going bad to, well, I've had all the experiences in between and then being like, yep, sign me up again when enough times past and just rinse, repeat.

    And I kinda thought that this'll never go away. And there was a snippet one time or something where Jeffrey Wade talks about his, uh, relationship to public speaking, giving lyric on talks. And he talked about how he gets super nervous before him. And I was like, that's so good to hear that somebody who's given these talks before does really well.

    Dreads them and gets like super nervous every time and then experiences the same cycle. Like that really helped me a lot. Um, so anyway, I, I also was like a worship leader guy at a summer camp, um, because I don't know, I played guitar my whole life and saying, so it's just kinda natural. They fit you into that, so that, you know, cause you're the guy, you know, and I really enjoyed it.

    And, um. So from a pretty early age, probably, I don't know, middle school and high school maybe, like what, what do you does that, let's say 15 years old? I was probably bleeding worship every weekend, but early on I would get just as nervous as. Just as nervous as the, as the speaking stuff. But I did it so much that, you know, like, uh, it's my grain of sand version of the Beatles.

    How they, you know, got really good cause they played in pubs like everyday, all day. Um, so for me it was like. I did it so much that I got really comfortable with it, but there was one tactic that really helped me a ton, and I think this is a, a precursor to how I'm, how I'm good with public speaking now, how I'm not scared of it anymore.

    Um, I realized that, okay, if I sit in a chair on a stool, I can play gui...


    The Value Of A Reputation Oct 28, 2019
    Show notes

    So funny thing at one point I was actually going to charge for Livewire. That's funny to hear me say that right now, but you've not even that long before larrikin. I mean way before larrikin, but even right before Larrick on I was like really running the numbers and thinking, you know, all right, how much can I make on this thing?

    Like put a lot of work into this basically quit my job and haven't worked in like four or five months. I've like to make some money redeem some of this value. Okay, I'll charge for live or that's the thing. I'm not going to try to like raise a board or do patreon stuff. Like that doesn't work. I'm just going to charge for it, you know charging for software.

    That's the thing people do so I messaged Adam Ladd and I basically had this plan and I really believe I stood to make like 15 grand. I think I could have maybe. Now in hindsight, I probably definitely couldn't anybody know I would have been 15 grand. And you know, I even knew that myself like 15 grand is not worth it for the work.

    I put into it 15 grand. No way. I'd rather just not have that money and has something that everybody can use and grow it's an open-source, you know project I mentioned I asked a couple people for advice and one of those people was mr. Adam wave and and he gave it to me straight. Like I knew he would you said something like.

    Dude, you're going to make like $200 to something. Like I don't know what he said maybe more than that. I think that's what he was saying about patreon. He's like, yeah, if you pay trying to make $200 if you charge for it, you know, whatever basically somewhere in this this midst of him, like giving it to me straight was like but don't underestimate the value of you know, your reputation of like building building.

    Your reputation is like a open-source maintainer contributor person who created something pretty big. That stuck with me. Those are not his words, but sort of kind of that's what he was saying and that stuck with me for sure big time that that yeah, right. I mean this seems so obvious, but I had to be reminded that like.

    that. This is this is a big step for me like this is this is a real contribution something that if I execute well, if I if it's if it's as useful as I think it could be and I execute it. Well could be something that most layer of elapsed use, you know, that would be crazy and it's kind of it's not just like a little like package, you know, it's a it's a way of developing it's a system.

    It's a framework unto itself. That's pretty big deal. So. This could kind of open some doors for me. And I don't know he reminded me of that and that that just was a good reminder for me. That's all I needed now is like yeah, you're right. You know what? Yeah reputation is a thing. I guess. I'm my mind.

    I felt like I sort of had that reputation of felt like it's like sort of I don't know if. If you're putting like laravel celebrities and tears, I'm probably like a second or third-tier celebrity and that's what I feel like, you know in terms. I don't know for using my follower can be like screw humility.

    This is like how I picture myself based on Twitter followers, and I don't know just general like my connections with people in the community whatever but I think I'm at that level and I just sort of felt like that was. Heil a high enough level or something, I don't know but. He reminded me that there's you know, there's more to be had there's more to be reputed for I don't know there's more of a reputation to have more doors will open if I contribute something of value to the community more than just my little tip tweets and blog posts and stuff like that.

    So anyway, I'm saying all this because I'm reflecting on this. I'm about to travel to Europe for full-stack EU and this is funny because there's like lots of people. But first I've never been to Europe and a lot of my family. My mom is never been in Europe. My dad has never been in Europe Brothers never been in Europe.

    My sisters have been here, you know, there's. I don't know. It's like it's kind of a big deal for me, even though I travel a lot. I been a lot of places and I imagined that I would go here whether or not I was speaking somewhere. But you know, there's somebody who's paying for my flights and a couple nights in a hotel to go to Europe and talk about not actually about Livewire but stuff like it like like Frank asked me to talk about live organized like well, they're not all PHP developers.

    Maybe I shouldn't but but this is in some way in some indirect Way live where open the door for me to go talk about this. And next year I'm going to shoot for you know, the other conference is laravel EU or Larrick on EU and stuff like that. And those are doors. You know, that's sort of like this is the kind of thing that I feel funny saying to the laravel community because a lot of community members do this sort of thing this traveling and whatever.

    But you know what? I tell my family about this they're like to like what like this thing that you're working on is take you around the world, like people are paying, you know, whatever a thousand dollars for you to fly over and hundreds more to stay in a hotel and whatever and talk about this thing for help for 30 minutes what that's insane.

    Like, you know, people are just like dump on my dad. He's so funny. He's like, you know, he's so proud and just like can't believe this you know, which is really funny. It's again funny saying to this crowd because I think this you know, I don't know if it's I don't know just definitely not as big of a deal than it is to my parents.

    And anyway, so so going to Europe and then I get an email. The other day, I don't know about a week ago from somebody who works for a company called Prisma Kai got to look into it. I think it's Prismatic and and this guy's like Hey, we're starting a new YouTube video on YouTube channel, where were interviewing like open-source maintainers.

    We've had West boss on we've had named a couple other big names and he's like. So and I you know, I follow you on Twitter and I heard that you're going to be in Belgium. Would you be up for flying to Paris and US interviewing you you know for our YouTube channel and I'm like well hell, yeah, like that's super cool and you know that they offer to like sponsor my travel to Paris from Belgium.

    Like that's insane just for a YouTube interview. I don't know so it's for me that like I'm being transparent here like. These are kind of big moments. These are moments where I go home and like this is something like this is more than nothing. This is somebody who's follows me on Twitter and wants to fly me somewhere to hear me talk like they're big moments and I guess I take pride in them and I feel good about them and I'm humbled by them or whatever, you know.

    Yeah, so so it feels pretty good. And that's why I'm reflecting on this and I'm like, you know, a lot of this is because of Livewire and. I think I could have maybe shot for some of these things without it. But live wires. The thing is the thing that that I guess I'm most known for at the moment and hopefully will become more known for as it becomes more valuable and and whatever so, I don't know I'm saying here.

    I guess what I'm saying though is like I underestimated the value of the reputation of it. I didn't really think of it like that. I thought of it first it was like just fun and a really useful tool and then I started to get my sights set on like maybe I could actually fund. My life with this tool and I think that maybe was a lofty goal at the time maybe eventually down the road.

    But but then I sort of shifted my sites to this is about my reputation. Like I want to build something. I want to make it really good as good as I can possibly make it really useful do a really good job on the docks and educational materials and e...


    Using Vue With Livewire Oct 24, 2019
    Show notes

    Using view with Livewire. So this is the part of the show where Larry comes out and sings a silly song. This is the part of the show my lyric on talk where I you know this for me was like a show-stopping moment. Like, you know, I was demoing some pretty cool stuff with Livewire getting you know, the audience seemed to be pretty engaged that I showed how you can pop into view component and instead of the model you can do while your model and you get the same data binding.

    Then you just use a view component that you already have and that there was this moment like I expected Applause, but nobody applauded it was just silent and then I said something like pretty cool huh? And then a bunch of people started clapping and I mean, I think it was just one of those moments where everybody was like what the f like.

    Wow. Did this even what like, how does that work? And it is pretty crazy that that that Prospect of like yeah live where all this is really cool. Yeah, but you know, I love you like I need view for you know, my little I don't know tag input elements or whatever you think you need view for and and this was a moment where I was like, whoa, I can use both.

    Yeah, so I really wanted. Live where to work with UJS. I don't we haven't really talked about the whole strategy of how I got that to work. It's actually kind of a funny story. So maybe I'll give you the skinny of it, but basically view JS does Dom dipping right like few JS is a front-end framework that.

    You know, your component is rendered. It renders the template. All right. So how does view work view takes your template turns it into basically render functions render function that spits out a virtual Dom which is a Json tree of elements and their attributes and their children. And then anytime something's updated.

    It re-renders that little Json tree the virtual Dom. It takes a difference of the two dumbs. You know, the one that's like actually implemented and like shown on the screen and the new one that it just rendered out of the component takes a dip and then it patches so it updates on the screen and then your page updates and everybody's happy and all is well.

    It's basically have UJS works. That's how most front-end Frameworks kind of work. So live. Where does the same thing kind of accept it gets the Dom from from the server instead of managing virtual Dom trees. It gets it in plain HTML does the Dom dipping and patching? So you have two things that are both trying to different patch the Dom they're trying to control the Dom they they have control over their own little domains.

    So it's an issue at first I thought well. Livewire is just not going to work with UJS. It's just not in the cards for it. But this is one of those examples of me thinking like me learning pretty early on that. Okay, anything that I think is impossible or like way too hard to bother with that's not necessarily true.

    Like don't trust that instinct give it time. The the solution might present itself. If you feel like it's mandatory. If you feel like it needs to happen just decide that it has to happen and then figure out how to do it. This is one of those things that you know, took me a long time at first. I thought no not possible.

    Then I thought this is huge for the success of live where I like for people to use this in their apps. They're going to want to use View and if they can it's going to be huge for like, you know, just adoption in general. So I decided that you know, if they if it all possible this thing needs to happen.

    I need to make it happen somehow. So I couldn't really I tried a bunch of things. You know, I like just I tried, you know, letting View kind of handle the Dom and then Live Wire after the fact and whatever and like reinitializing view after Livewire updated everything and all this stuff, but they're man, there's crazy things like when you initialize view inside of a so you have your div your div with an ID of app and then you initialize your view component on that page and it takes control of that div and then adds all that stuff.

    So whatever HTML you have. Vue.js is going. Take that HTML and strip out all the white space in the new lines are all the like new line tags so you don't realize it. But when you're when you're right, like when you hit enter inside an HTML file, you're actually adding an element in the Dom. It's a text element.

    So if you're actually crawling the Dom with like next element or sit or sibling next to bling or whatever, you'll get these elements, but they're not. They're not normal element nodes or whatever. I forget all the names. It's a the text element and they have a body of a new line character, you know, so so I was having this this and that's all included in the Dom dipping stuff so live, where's doing this Dom dipping, but when you initialize view view wipes out all those new line breaks so live wires getting a mismatch.

    It's saying hey from the server. I'm getting these line breaks. I'm looking in the Dom there's no line breaks. And so every time it's doing all this crazy stuff. It's just crazy. So I was really frustrated and I didn't really know how to make it work. So I stride to manually remove the line breaks on the server side like parse out the HTML before I send it to the front end tried a bunch of different things.

    Basically what I ended up doing what the answer was and this is funny because I my buddy Mitch and I like we just paired on this in my apartment for probably like 4 hours one evening. We put the laptop up on the screen and we just switched off driving. I sat on the couch and he would just you know hack at it.

    See if you can get something working then we switch off and I try to get something working and we honestly we couldn't we got a couple things working but we couldn't get anything work in like really reliably that felt good and then it just kind of hit me like what if I let view manage the Dom. And Live Wire gets the one live or gets the HTML back from the server.

    It will take the HTML render it, you know, like put it into the Dom like not in the real Don yet, but just like fake mounted into some invisible Dom if you're probably totally lost on this if you're not super familiar with like JavaScript Dom stuff, but you know, like you can document dot create element and do stuff with that and that's dumb but it's just not mounted on the page, but it exists, you know, So do that sort of thing create some Dom element that's not on the page.

    But with all this HTML and then initialize a dummy view instance, like initialize it with view with with just a blank view instance. And just to have you do the formatting now views done the formatting and now I can do the Dom diff because. Because it's going to match whatever view did to the code before it's kind of hard to explain.

    But basically that's that's kind of the solution that's in place right now is like live there goes his view on this page. Okay views on this page, then I'll let view do the manipulating so that all the Dom diffs, you know work well and whatever again hard to explain I also detect if if I am doing the Dom dipping and one of the elements is a view component.

    I skip it in Live Wire and I let you handle that component completely. So anyway, that's the solution it's been that way for a long time and that works pretty well, but there's a bunch of little weird issues, you know, like one issue is well events, like if you admit events and view, they're not native Dom events or not those like custom events that you can listen to with like document dot add event.

    Listener. Their views has its own event bus, you know, so I hack into that a little bit to get wire model to work, but the other event emission stuff just doesn't work. That's kind of a bummer. And then also if you add view components like conditionally with view with Livewire like with...


    Why I Believe In Livewire Oct 21, 2019
    Show notes

    All right, so you're probably expecting my answer to this why I believe in Live Wire to be kind of like the last episode pretty soft broad vague inspirational. I don't know but. It's actually not it's pretty concrete. I believe in Live Wire because of one moment three years ago. I was reading a blog post by th where he demonstrates.

    Why? Why are we just a Jackson Json? Why not Ajax HTML already rendered on the back end and then just swap it into the page and you know, and he called it server render JavaScript and the rails Community is kind of all about this I discovered it and it hit me like a ton of bricks and I went whoa.

    And I was just immediately enamored with the idea. I used it in a project and it worked exactly as well as I thought it would and I was able to use blade but still, you know, get all the benefits of you know deferring loading a jack seeing this stuff, you know, whatever like making Dynamic pages that don't reload but still just using blade for everything and I was enamored with it.

    And from that on like that that has been a known good to me. Like there's so little downside to that strategy. It's crazy. And that's why you know, I'm sure I've talked about this a hundred times. You've seen this in every talk that I've given whatever like GitHub you open up xhr Tab and devtools get up devtools and you just see Ajax request flying off the handle and almost none of them are returning Json.

    They're all returning rendered HTML these P Jax to do this. And so why is this the reason that I believe in live wires the reason because that's what live where is it's built on this concept Live Wire is age axing HTML. There's a bunch of extra stuff that makes it super duper seamless. So you don't have to before you would have to do the wiring yourself.

    You have to trigger the Ajax request and you have to swap it into the page. Livewire hand gives you a nice API for when to trigger. The request to get new Json or sorry new HTML and it's smarter than just just wiping out the HTML with the new HTML. It does the Dom dipping stuff like we've talked about but that's it.

    That's what it is at its core like at its core. That's what it is. So if that's the problem live wires solution. And there's a lot of other features in Livewire a lot of extra things a lot of huge potential for ways. It can be used really clever things. Like we've talked about the prefetch stuff and dirty detection and loading States and all sorts of stuff that it grants you that's really nice and whatever huge potential.

    But at the end of the day strip all those things away and live we're still useful for this use case and it's a pretty big one. So this is why I believe in live where I believe in live where in general but but I got to be honest. It's definitely, you know times that I doubt certain features or doubt certain use cases and a pretty vocal about him.

    I mean, I the whole counter examples just. BS like I wouldn't use live wire for a counter, I feel kind of weird every time I use Livewire to just like show or hide something on a click, you know, I feel like whole Ajax request for a freaking toggle. Like I should be using JavaScript for that. Like I feel that way, you know, so in that way the live where water is a little bit muddy, but but forget about that stuff like let's talk about.

    Let's talk about swapping and ajax deferred loading, you know, like Auto searching, you know form like a story table stored in real-time validation realtor auto-saving forms. Like these are all things that. That live wire is not adding anything like you're already submitting Ajax request. You're just sending Json doing the templating on the front end and by doing that you're dealing with the templating in a totally separate language that's not easily testable.

    And isn't it is totally separated from your front end. So you need like double the routes and double the code. Basically we're live. We're just allows you to basically cut out that whole other half and stay inside the world, you know. So in that sense, I believe in Live Wire like when I doubt myself when I doubt the project things like that like the end of the day I have to remind myself that hey like takeaway Live Wire and I'm still going to basically build my own Live Wire, like I'm basically gonna use these same principles and end up building something that's not as powerful as Livewire.

    So I guess. Some of the times that I yeah, I don't know. So that's why I believe in Livewire. It's very concrete I believe in it because it's built around a Jackson HTML and swapping it into a page based on some sort of trigger and that to me is an incredibly powerful pattern the rails Community has been on top of this for ever and big companies like GitHub.

    Base camp anything that uses turbo links. They're all built around this this principle and it is just crazy powerful. So in that sense, I believe in Live Wire and I think Live Wire will always have a place because it provides you with my opinion one of the best ways to to leverage that that technology which is pretty interesting because.

    Like a Phoenix live view does that but it uses web sockets and it's way more integrated and it's kind of a different cell, you know, so Live Wire live or has maybe more of a modest cell and I think that's why I live where needs to to be more aware of how to make it work well with JavaScript because in you know Phoenix, they have the speed that we're just not going to have with their Phoenix.

    What's it called Phoenix channels the websocket stuff and you know, long-running server instances and all that stuff. Like we're just not going to become as fast is as they can. I mean they're making games in Phoenix live view that we're not going to be doing that in Livewire. So Live Wire is. It's not a worse Phoenix live view in my mind.

    It's not just a slower live view. It takes a lot of the the API from live view because it's a freaking Kick-Ass API and it uses the principles and solves the need of something like turbolinks pjx, you know server render JavaScript those techniques that are already using Ajax and you know, That yeah, so so in that sense, that's why I believe in live lawyer and I think it solves this this problem pretty well.

    It fits into its own little niche. It's not a worse version of anything. It's it's own thing. If anything it's a better version of something. So so that's why I believe in it. That's that's what I tell myself and that's why I will I will use it, you know. Yeah, so, so that's that's the snippet here coming in at six minutes and 30 seconds.

    That's a lot of extra time. I hope you use that time. Well, enjoy your enjoy the rest of your trout fishing trip. Thank you.


    What Livewire Is All About Oct 18, 2019
    Show notes

    So before I talk about what Live Wire is all about I think it's worth noting that I don't control Live Wire Live Wire controls me. So I want Live Wire to become what it's going to become sounds kind of crazy and weird. But but really I try not to have too strict of a vision for it because. I want to be able to roll with how with what emerges you know, like as people use it as I use it the vision for it's going to change good use cases for are going to change we're going to be informed as we go so live Where could change form?

    I don't know. I want it to be fluid at this point rather than you know have a very strict idea of what I wanted to be. I want it to kind of I don't know. Evolve on its own it sounds kind of weird but what is live, we're all about. So I think what I want to say here is the things about Livewire that have nothing to do with Live Wire itself.

    Because Live Wire represents change in my thinking and my development habits and really a core belief that came from you've heard me say it a thousand times. My journey has been from you know little I don't know newbie developer making apps and codeigniter and jQuery and using bootstrap and admin templates and all that stuff and then.

    Getting into layer cast leveling up learning object orientation feeling like a badass and then watching that view series getting into view going deep into view and feeling like a god developer. Not really but feeling like a pretty capable developer feeling like I can you know, I have a place at the at the table at meetups.

    You know that are all talking about hot JavaScript things. You know, I'm in the hot JavaScript stuff and full sack and microservices and Json apis and rest and all that stuff. I don't know. I felt I felt like I don't know like that there that was in some way sort of a peek. For me, but really that I mean that that seam and it's I think a lot of people follow that same path but like, you know, and you've I started started talking about 20% time the podcast that Daniel nice to host at the time and my Lair can talk two years ago called embrace the back end where I started to really question.

    Some of the ideas or some of the ways that I've been developing my apps like I'd gone a little bit too far. Everything was a jack stand. I had like separated the back and in the front end and really just ended up with apps that are just way freaking more complex than they need to be Point Blank.

    And so the rest of the so the journey down from that Hill the journey sort of down from JavaScript Mountain down to reality going back to like native form submissions and blade and stuff like that little inline scripts and inline Styles and things like that. And that's where live where sort of comes in is live.

    Where is just a piece of that puzzle on that journey and live or is about about the whole journey, like that's it's a tool that represents that way of thinking so I don't necessarily expect that everybody who thinks this way is going to use Live Wire because it's not for everybody. I think it solves a very specific need and it solves it really well and I think it's a good accessory tool.

    Like I don't think people need to start writing their entire apps with Livewire. If you know the way I would write an app is I would start with out live wires far as I could. And then when I needed to add it, I would because you know, there is such thing. As you I demand you do need a certain level of UI fanciness to sometimes that's the that provides the best user, you know experience, but that's you know, I try to resist even live wire as complexity, you know.

    Stick with straight HTML and CSS so far I can get with that native form submissions stuff like that. Then as soon as I need some Dynamic functionality. I'm not looking for a whole page reload, you know live wires away to get a quite a bit of a bang for your buck and then beyond that, you know, you know, my thoughts behind that so really what Live Wire is all about is more than then a framework that allows you to.

    JavaScript type stuff in PHP and uses Ajax and whenever it's about resisting the complexity of the whole JavaScript ecosystem and it's pretty freaking ridiculous where it's gotten I think in my opinion, there's not enough voices out there. These sort of preaching the evils of I'm going to get religious about this preaching the evils of these these huge tools and these huge tools these big bad tools like react and view the things that everybody uses and every app.

    It's crazy. Like all the jobs are for these tools everybody you write an app. Yeah, what are we going to write the front of know we write in react right into you? It's ubiquitous. Everybody's doing this. It's crazy. It's so crazy and people feel bad about Native form submissions. You feel like a dope.

    I don't know. I there's a part of me that does and if you're what your page reloads. Like that somehow some sort of like Marv on your front end like it's not an SP a it's not buttery smooth. It's not perfectly JavaScript templated Ideal World you actually like interact with a real Dom or use a real Dom API like dot class list or something or use a polyfill or something like that.

    Those things have all become. I don't know like bad in some way and that you know, these pure beautiful built everything. Modular bundle of fide webpack parcel purple blue pink I don't know react view world is that's just been created is absolutely Bonkers and there's tons of power in it. No doubt.

    These paradigms are huge the things they teach us are huge. And what they can do is huge but I think honestly They're just causing more harm than good for the average web app. There is an end of the spectrum where they are a godsend and there's another end of the spectrum where they're not where they are way way Overkill and that's that's what live where is all about is that that end of the spectrum the middle ground the github's.

    The base camps the I don't know the coin basis the banking apps the everything but a giant social media platform or some like desktop app style site. You know what I'm saying? Like like Pocket Casts. I don't know any like podcast management app every like 90% of the web apps that I use don't need that stuff.

    And so I'm writing this talk for full stack. You called right less.js and I wrote basically dislike dashboard with like account management stuff and a bunch of forms and stuff like that. I wrote it as a view SBA just to kind of like we demonstrate to myself. What it's like, you know and man it does feel good.

    Actually. It feels there's a lot about it. That feels really good. Like it's really clean. But you cannot deny the amount of extra code. I had to write the amount of code that is now untested unless I get in a JavaScript testing and the amount of logic. I have to maintain not to mention all the accessibility concerns like not adding form tags not you know modal's that are just hand-rolled without like our your labels and Aria roles and.

    So many things that you're just doing yourself that I don't know. It's just crazy. So anyway, and then like the whole kind of right less.js talk for full saki you I take this app and I work it back to just plain HTML and CSS and a little bit of JavaScript and form submission stuff like that and just show how like freaking simple.

    It is compared to the other way and how you get more test coverage more accessibility or usability. But it actually feels the same way like I use the app and it feels the same way. I pop in some turbolinks and I do some extra fun stuff and basically we end up with two apps that behave the exact same way except one has a whole bundle build process with npm and isn't you know, like I you know on my whole like speech like the front end stuffs not tested because it's you know, template it in JavaScript, whatever.

    Anyway, that's kind of a ramble but bas...


    Be Patient With Abstractions Oct 10, 2019
    Show notes

    Okay, so I'm writing a test a JavaScript test in Livewire and I am about to use a testing utility that I've created. So I have this utils dot J's file inside my testing folder for JavaScript and it's where I have all of my testing helpers and they're all in charge of the same thing. They're in charge of mounting Livewire.

    Making Live Wire breathing Live Wire into existence in JavaScript and usually you pass in there for a component. So I think the basic function I have is called Mount and you pass in HTML the HTML of the component and that's it. And then once you've done that you can say Mount and then you pass the HTML now you can do stuff with it.

    You can you know document that query selector get a button that has wire click on it click and then you can assert that, you know some payload was sent. So there's a bunch of these Mount helpers started out as one called Mount and I tried to make it do too many things in a star to get gross. So I just duplicated it and called the next one mount with data may be so I have a bunch of them and there's mount mount as root Mount is Route and return mount with a vent mount in return.

    Mount and error mount with data there's tons of them and they all have the almost the exact same structure slightly different parameters, but the basic structure inside of them and they all just do something slightly different. So I know that there is an abstraction waiting here someday, it will occur to me, but it is not it hasn't occurred to me yet and I'm just being patient with it.

    So I'm speaking this out to you. As a reminder as a thought piece, whatever that sometimes you just have to be patient with abstractions. So here I want to write a test and I realized I need a new one. I could try to retrofit and another one but really I need a new one and it's going to be a very specific one.

    And I know and that's a little bit of pain like I'm experiencing pain because I'm copying pasting a bunch of code. And I've had to change things that I've missed and changing another ones and I've experienced issues and pain because of that. So this is not ideal and I'm doing it and I recognize that I know it's not ideal.

    It's not good, but it's an ideal on ideal scenario because this is all scope to one file. It's one big file and they're just. A ton of basically the same method with a different name different parameters in slightly different implementation, but they're all in one file. So it's not like I have it's not spread across different files this kind of goes back to the single file principal like my tolerance for nastiness is a little bit higher when it's all scope to one file.

    And in this case it is but anyway, I went to add this thing and I just kind of realized that it's painful and I thought for a second. Is there any abstraction emerging yet? And no it's not. But at some point it will maybe it's just me being a little bit lazy and just wanting to copy and paste instead of roll up my sleeves and really figure something out that works for everything.

    But really it's not it's not causing big problems in my app and the abstraction hasn't prevented it presented itself. So I'm just going to be patient with it. Being patient with abstractions can one first thought was being patient with abstractions can be a little bit more dangerous when there's no trigger set up and by trigger, I mean something that's going to remind you that you need an abstraction in this case.

    My trigger is having to add a new function. That's a pain Point triggers me to think about abstractions if that didn't exist. Then I could let bad abstractions or unobstructed code lie dormant my next thought with that was well if I construct a code is lying dormant and being harmless and there's no trigger that makes you feel pain then maybe it's fine.

    Maybe you don't need the abstraction because abstractions are meant to serve us. We're not there to serve abstractions. So anyway, there is an abstraction waiting here. That would serve me. I know it. I know it would make my tests more flexible. I know I know there's something there's some implementation.

    That allows the developer the flexibility to do what they want to do without needing all these different methods, but for now, I'm going to copy and paste one of these methods and add yet another method called Mount and return listener or something like that, whatever. I'm about to do it, and that's all I wanted to tell you.

    Sometimes you have to be patient with abstractions. Don't rush it. Hopefully it presents itself to you, but don't force it if it's not ready yet. So, thanks.


    Previous 1 59 60 61 62 63 Next

    Related Podcasts

    Reply All

    1

    Reply All Games & Hobbies
    Inside VR & AR

    2

    Inside VR & AR Gadgets
    Note to Self

    3

    Note to Self News
    BrainStuff

    4

    BrainStuff Natural Sciences
    This Week in Tech (Audio)

    5

    This Week in Tech (Audio) News
    Hands-On Tech (Audio)

    6

    Hands-On Tech (Audio) Technology
    footer-logo

    Contact Us

    Toll Free: 844-670-7747

    Links

    • Home
    • Top Charts
    • Networks
    • Apps
    • Independents Podcasts
    • Podcast Advertising
    • Podcast News
    • Contact Us
    • About Us
    • Analytics & Insights

    Stay Connected

      Privacy, Terms of Use & Our Code of Ethics Protecting Content Creators Copyrights