Welcome to Psychic Medium, Tony Green. This is, I am Tony Green, the Psychic Medium. So just for everybody who is new, just a little bit about myself. I have had these abilities since I was a, so for as long as I can remember honestly, I don't know why I can't talk today, it's very weird. But I've had these abilities since I, for as long as I can remember, I've been what they might call a channel where information just comes through me for you. People would be talking to me as you know, telling me what's going on in their life and information would just come through and yeah, come out of my mouth. So yeah, so there's a little bit about myself. The show that I'm doing right now airs on WSCS, Rude Rangers TV and many, many, many streaming channels including Roku, Roku, however you say that word. I am the author of seven books that I have channeled. Which to me is kind of interesting because I'm extremely dyslexic and I never thought that I would ever write a book because of my dyslexia. I mean, I can write a whole sentences backwards but because of my niece and my sister taking the time to edit them, they, I was able to publish seven books that I've channeled and I'm really grateful for them for all of the work and the help that they give me with each and every book. I am working on book number eight which is a little bit different than the other books that I've done. So my books that I have channeled in the past have been poems and messages of light and love and this book is a little, it's a little different. It's just a little different. I think that's why it's taking me so long to get it out because I love the like lovey-dovey poems and this book is definitely a little edgier. So I've been procrastinating not knowing how it will be received by people. If you'd like to call in and ask a question or connect with a loved one on the other side, the numbers eight, four, five, two, seven, nine, one, three, one. If you would like to join and watch the show live, it's a YouTube live every Monday and Wednesday at noon central time. I am available for live events and corporate events and I do travel to do corporate and live events, expose so on and so forth. So if any of that is something that you're looking for, please let me know. Okay, now I am going to get going or one more thing. I'm on all this, I'm on most social media things. So I'm on Facebook, Instagram, TikTok, LinkedIn, and I will never ever reach out to anybody. So if somebody reaches out to you on any of those things, if they message you, it's not me. I don't even, I've shut off all direct messaging on all of those things almost and I don't even read my messages on those. So if anybody ever messages you claiming to be me, it's not me. Please do not waste your hard earned money on a scammer. If you want a session with me, there's, you can call my private, my business number, which is<PHONE_NUMBER>, or you can email, no, not email me, go to my website, www.toni.com. G.i-n-f-o, those are the only ways, I don't reach out to people for sessions. I mean, seriously, people reach out and I try to get back to them as soon as possible, but I don't even respond to emails for sessions. I just tell people, call me as it says on my website, pay for the session, call this number, book it. I get over a hundred emails a day and you can tell by the way I'm stressed in my voice that that is just overwhelming to me. So I'm not taking the time to, I don't even, sometimes I just delete a lot of emails. I do. So anyway, having said all of that, I'm going to now start taking callers. Please, if you are calling in, when I say your area code, please give me your name and where you're calling from. Also, have one exact question or connection available and what else? Oh, take me off a speakerphone. Okay, this is like the sloppiest intro ever. Oh, one more thing, I'm so sorry. I'm on TikTok and I really like TikTok. I think it's very good. I think there are a lot of benefits of TikTok. There are a lot of healings that I've done and they are on TikTok. So if you go to my at psychic Tony on TikTok, there are many clearings and healings there. And I have a second page called live beauty reviews, but it's live.beauty.reviews.  And I'm going to be getting live procedures done live. I'm going to be airing on TikTok. I don't know what I was thinking when I thought of this, but I like it. It's hitting a new thing for me. So I'm going to be a week from today, right after my show next Wednesday, I am going to be going and having a procedure done and I'm going to be airing it live on TikTok on my live beauty review channel. And here's the thing, I'm not always really great like with pain and pokes and needles and stuff. So at the very least this should be hilarious. No, it should be really, really good. It should be so good or not. I mean, yeah. Yeah, I think it's going to be a lot of fun. Okay, let's go to the very first color. The very first color is 917. 917, what's your name? Where are you calling from? My name is Tim. I'm calling from New York. Tell me how you doing today. Hi, Tim. I'm good. How are you? How can I help you today, Tim? Well, I just was calling to see what spirit had for me in regards to the manifestation I've been working on. I've been grounding, asking St. Dermain, one of the guides just for some assistance, trying to keep the frequency high. You know, it starts with me and this was curious, but spirit is hearing me and they have anything for me. Yeah, so let's do, so spirit is hearing you. And I think it's good that you're going to St. Dermain, but keep it open to any light love beings that can come in and give you assistance.   What we're going to do right now is, Tim is overwhelmed, I get a yes, let's clear that. And then I am going to ask, Tim is getting the assistance he needs. I get a no, so let's clear that also. And let's make this a little bit more open for anybody who's needing assistance right now it's coming in, I'm getting a no, let's clear that. I feel like in a week it's going to lighten up, Tim. You're going to have a lot of things coming in that are going to be very, very helpful and beneficial to you. Remember always to keep open everything you're asking for, everything you're putting out there. When we put things out there in manifestation prayer, whatever we want to call it, we need to keep it very open. If we put it in a box, it just takes a little longer and it's a little bit more difficult for them to deliver it to us in that exact box. But you're doing an amazing job. I think in a week, things should start to open up again for you. And I do want to say, Tim, in August and September we're going to see a lot of changes throughout our country. Some of these changes have already started in other countries, but August and September is when some of these changes are going to come in for us and it should lighten it up and make it a little bit. At first maybe a pinch more difficult, but then it's going to take off and make it easier for us down by the time we hit a certain point. But we'll wait and see what happens. But I do feel like in a week everything should even out for you, okay, Tim? Okay, thank you very much, I appreciate it, Tom.  And thank you so much for calling in again. I'm going to go directly to 904904. Hello, how are you today? Absolutely, what's your name? Where are you calling from? Excellent, Wendy. How can I help you today? She's C in regards to a job coming up soon for me please. Okay, the first thing I hear is between a month and a month and a half right around that five week mark. You're going to, I don't know if you're going to get something if you'll already have it or if you're going to know you're going to have it at that point. I feel like whatever you're going to do, it's going to be a little bit more independent than what you've done in the past. I feel like you're going to have some freedom with this job or career, whatever you want to call it. You're going to have some freedom with it and you're going to be able to call a few shots with that. One of the things that they're asking is that you also look at opportunities outside of, they're calling it constricted or constrictive work places meaning opportunities on your own, something you can do on your own that gives you a little bit more freedom. I feel like somebody is going to approach you or you're going to see something that offers you something a little bit more like independent in about, again, I'm getting a month. Everything's going to come together in about a month for you in that four or five week mark. Everything's going to start to come together for you.  We still have to be out there looking. I do feel like, however, there is something coming in. It's already in alignment for you and you're going to have two things. And I'm going to say, I think you should take both of these things. These things are, one is a more, is more of like a workplace thing. And the other one is a more of an independent opportunity that you can do kind of when you want. And I think you should seriously try, give it a time to do both of them because they're both going to have significant benefits and they're going to bring you in a great deal of extra. Like one is going to bring you in extra money and the other one's going to be good pay, but you'll be happy if you keep both of them because it will keep you in that balanced place. And I'm hearing the statement when it rains, it pours. So you go from famine to feast sort of thing and it's okay. The other thing I'm hearing from you is between now and then if you want to do some, like some some, you know, cash, cash work that you should go ahead and look at that, you might be surprised at what you find, okay, love? I hope that- What you said made a perfect sense though. Okay, perfect. Thank you so much. Thank you. I know sometimes even when it's coming out of my mouth, I'm like, oh my gosh, I hope, you know, whomever this is for, they understand it and they know what's right. So I'm really happy that it makes sense. Yeah, one is a cash side business and one is one where you get benefits. So it does make sense this right in my arena. So yes. And you know what the one that is cash, the side thing is actually going to be the one that might eventually, not from the job but eventually bring you in more money. However, you might keep the stability and the benefits, right? But you're going to be able to put so much time and effort into the other one. You know, I love when people say to me, I don't have time, I work this many hours. I'm like, turn off your, you can do it while you're watching your TV, you can do it while you're listening to your podcast but it takes literally when you're starting off, it takes literally an hour a day, an hour a day. You can do it while you're eating your lunch at work. You can do it like depending on what you're going to do. Sometimes it takes literally only an hour a day to start your side thing that will bring you in extra money and maybe even financial freedom.  And I just believe we should have multiple streams of income at all times, at all times. But yeah, I'm so happy this makes sense to you. Please follow both opportunities. I feel like there's going to be four opportunities you have to like bring it down to the right opportunities for you, okay, love? Okay, all righty, thank you. You're so welcome and thank you so much for calling in. Thank you. I am gonna let everybody know if you are interested in my books, I have an author page on Amazon under my name, T-O-N-I-G-R-E-E-N-E or you can Google my books. I know I don't promote myself very well. I'm very well aware of the fact that I'm not good at self promotion. I don't even put the links in half of my stuff or my books. So what I'm gonna say is if you Google my name on Amazon and you go to my author page, all of my books are there.  Katherine, and I'm calling from Florida. Hey, Katherine, how can I help you today? Hi, Toni, I want to know if you see any romantic interest coming into my life. Yes, sorry, yes, Katherine, there is somebody coming in. He's a little bit of a, the guy I'm seeing, the person I'm seeing right now is a bit, yeah, there's somebody coming in. And I feel like, I don't know who this person is. I'm gonna describe them because it might be somebody on the other side who's putting this together for you, but this person, or it might be the person coming in, I don't know, but who I'm seeing right now is a, it's a male with dark curly hair.  That's really exact. Oh my gosh, that's so exact. Wow.  I'm kidding. They're a little bit like the khaki, like, oh, maybe, I don't know. I'm not seeing the shorts very, very clearly, but this person is more like a teddy bear type of person, like body, like a bigger teddy bear type of guy. Now, is this sound familiar to anybody who might be on the other side? No, not really. Then I'm pretty sure, and you know, it's for me and everybody's gift works differently, but for me, when I see, when I see energy, when I see a person, I see somebody coming into your life exactly the same as I do somebody on the other side. The difference can be is I'll see this person next to you where I see the people on the other side up elevated a little bit. So, yeah, having said that, having said that, I feel like this person is gonna come in soon, depending on you, we have to be open and ready for someone to come in. We have to be in that space where we're out and about. If we're, again, sitting on a couch all day, we're probably not going to have the opportunity to run into this person. I do feel like this person does really like the water. I'm seeing a pier, I'm seeing boats. I do feel like this person likes to be out and about all day long. They are not at all sedentary. They like to, they're very, very, very active, but they are ready for a partner and they are ready for someone to be their first mate. I don't know if that makes sense or not. First mate, yep, first mate. It's funny because I did not expect that to come out of my mouth. So perhaps, I'm not gonna say this person has a boat, but perhaps they do have a boat. Doesn't mean it's a big luxury cruiser, but maybe they have a boat. So I would say get ready because you and this person have the potential to have a lot of fun, a lot of excitement together, not in that crazy chaotic way either, but just in that way where the two of you can have adventures together, this person does like to, I don't know if it's go sailing, but definitely be in on near the water a bit. And they also like to, okay, the statement I'm hearing for whatever this means is they're romantic in an odd way. I don't know really. I don't know what that means. I really don't know. Like, you'll have to let, you'll have to. You know, I'm already activated right now. I'm wondering if I should turn it back on. Nope, nope, nope. You're going to meet this person. You're going to meet this person organically. You just need to get out. You need to be out and about. You need to be, again, near water. And if there are any, what do they call those places where you go and get fruits and farmers markets? If there are any farmers markets near water, I would be going there and sitting and eating a little lunch and, you know, when you can, and just enjoying the outside and being in that sort of environment because I feel like that's probably where you're going to have a good opportunity to meet this person is near. I'm not saying hang out by the water every single day. It's going to happen how it's going to happen. But I would do, I'm just hearing you should start going to farmers markets also and getting, and, I seriously don't know if that was my brain that just took a pause or my mouth. But either way, do you know what it is? Oh my gosh, it just hit me. I did not put caffeine in my drink this morning. I, not a drink, not like whiskey or anything like that. But like I made a smoothie and usually in my smoothie, I'll put my spark, which is still freaking good because it has a caffeine and the amino acids and the vitamins and I forgot to do that. So there's the reason my brain is just stopping on me. So what I'm going to tell you is be out in public, be out and about and over the next two weeks to four weeks, you're going to meet three or four guys. That is why they gave you the description. So such a clear description of this particular guy. And he's a teddy bear and he thinks he's funny. He might be funny. He might be, well, it's okay because he's even funnier. I think I'm funny. Not everybody thinks I'm funny, but I think I'm freaking hilarious sometimes. I'm like, you didn't get that joke. You just have no sense of humor. What's wrong with you? No, I'm kidding. But no, he thinks he's funny, but he has that. You know what it is? He has that, I think he has that very dry one off. Like you'll be talking and all of a sudden just that one off comment that like catches you off guard. I feel like that might be a sense of humor. I do feel like you two are going to have quite, okay, so here's what they're saying. You're going to have quite a relationship. The one thing though, he is a bigger boned guy to begin with. And I don't feel like he's severely overweight, but I do feel like he does have a bit of a belly and he is a bigger guy. Like stocky.  You know that, yes, that teddy bear thing, but it cannot be your agenda to change that. Okay, don't ever, because I think he might, you know, if people like who they are, let them be who they are and you'll be good with it. I mean, he'll be good with it. So I think as long as that's not a deal breaker for you and he's not like his legs look from what I can see they look at, it's just that little bit in the belly and nothing really major, but he's seemingly a very good guy. He's seemingly a very good man. So yeah, I think if you- Nice, my only cigarette smokers and married men. Yeah, oh, seriously, right? Yeah, yeah, I don't, yes, yes, yes. Or not even married. Like if you're with somebody else, be with that person. If you want to try something new, let that person go, go. Not like we need a break. Oh my gosh, hmm. Yes, yes, yes. And then go see what's out there. Just be fair to everybody involved. And I want to thank everybody so, so very much for joining me today. I will be back Monday at noon central if I did not get to see you today. Please call back Monday and I will get your call if you call in 15 minutes early, you're top of the line to get in. And until Monday have an absolutely amazing weekend and remember you are loved and you matter, you are vital and you are important. Thank you so much for being here with me today.


What's the perfect number of exercises that you should do in a workout watch this our next caller is Angela from New York? Angela what's going on? Hi, how are you guys good? We're great. All right But thank you so much for having me on I really appreciate it So my question for you guys is see if you could possibly explain The ideal number of exercises per workout. I just finished the aesthetic which I loved But I was a little surprised at how many work out how many exercises were in each full body Which I get it obviously you're doing, you know, everybody part you're hitting but you know, you see so many things online Focus on the basic exercises get stronger at them So I was just looking for a little bit of more input on that. Yeah, is this your first program your antivars? Yeah, what now what did you do before this like how long were you consistent with your workouts? Before following maps aesthetic, what did those look like like how many days a week were you working out before? So I've worked out five or six days a week for probably ten years maybe I've worked with a trainer. I've done, you know, fitness competition. I'm actually certified as a trainer So I typically just do on my own programming, but I do I've done splits I typically do a few full body days a week But usually I would say like the cast stuff the shrug things like that on the smaller body parts I wasn't always including in my workout. Okay. Yeah. Now, how were your results with aesthetic? Did were you pleased with how your body responded and how you felt? Yeah, absolutely. Okay. Yeah, and I wanted to ask those questions because sometimes people who follow like maps aesthetic for example They go for the program with more volume and it's not really the right program for them But being that you worked out you've been working out for so long Consistently you competed it sounds like you said you're certified. So you know what you're doing and it worked for you I think that that's there your answers kind of right there, you know, because the answer to this question is really hard It really depends on who I'm talking to and it depends on their performance and the results that they get You know maps aesthetic includes three full body workouts that have a lot of volume But that's only three workouts in the week The other two workouts are these focus sessions that last like 20 minutes So really if you look at the total amount of volume, it's not crazy in comparison to other types of splits Now as far as total exercises in a workout again, that really does depend, you know I know people say oh don't work out more than 45 minutes or an hour or whatever That's that's totally not true It really does depend on the person and you really have to base it off of How you feel and how it's working for you and if it worked well for you and you got good results I think you're on the right track. Well, that's part of why the first question I asked was if you'd ran any other maps programs and a probably a better question is what Sal said Which is asking you what your experience was and Normally, I would tell a client don't start on maps aesthetic It's one of our highest volume programs And so we wrote them in the with the idea of people following Anabolic performance and then aesthetic so you know taking them almost nine months to actually get to that type of volume So they work up to it, but Like Sal said you've been training for you're an exception to the rule where if you were a client of mine So yeah, we could go into aesthetic first now I don't think it would have hurt you though to go Anabolic performance and then aesthetic either I think that Still has tremendous value even for an experienced person like you but you're a case where it would still be okay Whereas if you were a brand new person, you just started lifting and you jumped right into aesthetic I'd be telling you oh, well, that's that's a terrible program That's too much for someone like you because you haven't been training, but that's not you so it's okay The other thing is aesthetic can be long workouts They can take some people almost 90 minutes to get through it. Nothing is wrong We just actually had a question similar to this, but the issue with them was time They just it's a long time to be in the gym And so there's there's nothing wrong with you taking a few of those it for example You've talked about the shrugs and calves maybe some of the smaller muscle groups nothing wrong with you moving those over to focus days Which are only 20 minutes long and extending the the focus days to more like 45 minutes to an hour And so you have an an even you know our workout or so for every day of the week versus these Higher longer, you know higher volume longer workouts Monday Wednesday Friday, and then the off the other days focus days are only 2030 nothing says that you can't take some of the exercises from the foundational days and move them to focus days Yeah, Angela, you know here's something to maybe pay attention to and you're perfect person to talk to you about this because you've been training for so long So you're per you're you're likely very in touch with how your body feels and performs I know I'm doing too much in a workout if I start to notice that my pump is my ability to get a pump it starts to fade and also if it starts to feel like An endurance workout versus a strength workout like if I if I'm you know Two-thirds of the way through the workout, and I'm like oh my god I have you know four more exercises, and I got to like Mentally get through it, and it's gonna be grueling and it's more like I'm you know Just kind of toughing it out then I know this may be a little bit too much And the other one is how you feel after the workout if I feel like I need to lay down afterwards Or take a long break because I'm wasted. I probably did too much if I feel good after my workout Like I should I what I aim for is when I'm done I feel more energized than I did going into the workout then I know it was enough So I give that advice to someone like you because you're you're better You're you're better suited to judge those things really hard when somebody's a beginner like you say that to someone who starts And they're like well I kind of feel like I'm grueling I'm you know toughing through the workout from the beginning or what do you mean energized You know I'm tired all the way through and then who knows but for someone like you I'd say look for those things And if you do notice that oh man, I don't feel so great You know about two-thirds of the way through the workout or afterwards. I feel like I need to lay down Just try this cut one set off of each exercise start like that So you're not cutting exercises. You're just cutting volume Overall and then see how you feel you might be surprised you might find that cutting the volume might actually get you better Well not to mention one of the first things that you'll see if you are if you are doing too much volume is a plateau and Again another reason why Sal probably asked you that how are your results and if you would have responded? Oh, they were okay, or I didn't really see any strength gains if that was your response Then we probably would suggest you probably need to cut back a little bit But if you felt great and you saw great results from it whether that be body composition or and or changing Strength or strength going up. You're probably right where you should be Yeah, and you made a good point on The focus is because I will like you said they would take me anywhere from 75 to 90 minutes on the full body But the focus I'm still doing at least an hour when I'm there So I'm probably maybe doing a little bit too much volume there But when I ended so the last set obviously was the super that's the last three weeks And I didn't go too much later But I definitely didn't go heavier for those obviously because I'm super setting them So then I kind of felt like okay.  So okay now now that now the answer changes a little bit So focus days are only supposed to be 20 20 30 minutes tops So if you're spending an hour in the gym and you're doing all those foundational days of you know 90-minute workouts, you probably are doing a little too much Yeah, and my recommendation would be follow the focus days as they're written And if you're gonna add anything to the focus days take them from the foundational days It sounds like to me you're follow you're doing everything the program saying plus you're adding more on those focus days The goal the idea is this you want to do the optimal amount of volume Not the amount of volume that you can tolerate maximally It sounds like you're going to the limit and going as far as your body will allow you to go You're only gonna get results slower as a result of that You're not gonna hit your full potential and of course you're always you're probably teetering If not bouncing back and forth between overtraining and not overtraining Considering your background. That's probably your tendency and also I mean, I don't know you did you know focus sessions for an hour Sounds like you're adding a bunch of stuff. Try following the program as it's laid out Trust the programming and and see what happens. I I would bet you that you're probably gonna see better results Okay, thank you. That sounds good. And then last question is what would you recommend I do next? Strong map map strong will be good. Do you have access to that by the way? No, all right, we're gonna send that to you so and one one little add to that Okay, if Based off of how you feel when you finish aesthetic would be the difference if I directed you towards strong or anabolic So I may push you back towards anabolic or even performance to be honest Because those programs have a little less volume So if at the end of this workout, maybe you give me feedback as a client You say, oh, I don't my you know joints are hurting a little bit or my deadlifting squad have been stuck on a plateau for a while I might not go to strong I actually might pull you back a little bit on the volume and go towards anabolic or performance But if you feel great and you love aesthetic, it's all great results feeling good from it. No issues Then I would go to strong next Okay, yeah, I mean I definitely feel good. I this morning I test I just went and did like five exercises and I went up like 10 pounds on On everything. Yeah, that's great first first Like five to seven reps not much, but I just wanted to see if I could do a little bit more So, I mean, I feel good. My body feels good. I definitely do feel better and more energized when I complete the workout Um, and I know you guys have millions of callers who call and say well, I'm not gonna back off and that's kind of where I So But I appreciate that. Thank you very much. No problem. Awesome. Yeah Yeah, you know the other thing too is uh, when you're when you're like this advanced Um, and this you know, you enjoy working out so much You can sometimes uh fool yourself a little bit so you could be like, oh, I went up in 10 pounds on my squat But they went up in 10 pounds from the last couple workouts, which over train them overall They're not up. Yeah, they just took a little break. You saw themselves go up. Oh, I'm on the right track now You know, these are things that really pay attention to because if you're a fitness fanatic and I'm speaking from experience You I do this too. I tend to push my body to what it can handle Almost always. I mean, I would say 90 of the time If you're experienced you're advanced or you've been consistently lifting for years You probably have a tendency to overdo it if you're brand new never really trained You're probably afraid to do too much so you don't do very much And so it's almost always the the opposite is true But what I love about these live calls Is here we are talking to her we all give some tips and answers and it was literally after we all went round robin answering Then we find out more information comes out magically Yeah, then all of a sudden you say and you're doing hour-long focus sessions Listen, we wrote those focus sessions to be single joint movements, you know cables bands They're somewhat recuperative Yes, they're not designed to hammer the body and if she's telling me she's doing an hour She's getting after it and that and if there's any if she's plateauing at all or there's any issues at all There it is is she's doing 90 minute workouts on foundational days And then she's coming back to the gym and doing another hour And I bet the exercise selection isn't the best stuff because you get somebody like this And I've had a lot of clients like this to get really into it and this becomes a bit of an obsession And it's fun and they're getting results But honestly at the end of the day, what's your goal? Like where do you go from here? Right, and I always have to like reiterate that because we're at such a high volume right now You know it to me It's it's always about like you know kind of bringing them back so that way We can work our way back up and keep you know this this sort of Fluctuating approach, you know what this reminds me of it's like this is so common Right, you get a client and you're like do you have any areas of pain on your body? Oh, no, I feel good But you know you have to go through from the head down to the feet Step by step to get the real answer. Your neck doesn't hurt. What about your shoulder? Oh, yeah, my elbow bothered. Oh, yeah. Yeah, but nothing to ask a lot of questions Right because I literally asked her what her workouts were like And she told us what I failed to do was to go through each piece and ask her more specifically Because then you start to get the real answers Thankfully she gave us a little bit more information at the end which allowed us to change your answer And to be honest now that we have all that information If she was my client and she she put all her trust in me to allow her to to to guide her I would probably actually make her go to anabola. Totally. That's what I mean Not only for it's probably the discipline of it. Yes, probably better for a body But also so I can show her like watch this We're only gonna train three days a week on your off days You're gonna do these little rubber band easy exercises follow it to a tee And I'm not even worried right now. What you're seeing strength This is what I think your body needs then let me take you to strong or let me take you to another program And then watch your body respond Knowing now what I know from what it is because she's definitely somebody who probably leans on doing too much volume Hey, if you enjoyed that clip you can find the full episode here or you can find other clips over here And be sure to subscribe


Hey guys, welcome back skits own lab two once again in this series We implement scientific computing programs from scratch in assembly no libraries no dependencies no compiler no linker very bare bones There's two kind of parallel paths One is the episodes where we actually implement the functions themselves and then in these lab videos We do live coding or I show you how to take those Functions integrate them together and make useful programs from scratch in like a live coding session The topic today is finding multiple roots of a function and it should be pretty quick and easy The ultimate question and answer to this video is find and plot all roots of sine of x between plus or minus 10 Here's the answer. We want to make a program that can solve that Give you the roots as well as make a nice pretty picture of sine of x and drop where the zeros are of that function So pretty simple. Here's the expected output Let's go ahead and do that There are four steps for this. I kind of broke them down into Parts as well as what examples what episodes cover these topics So you can go and copy and paste things from these examples to ultimately implement these steps first one is to count the roots which requires some basic 20-point math as well as a That's covered in the example 7 which was on fractions as well as some trig So obviously sine of x is a trig function. We covered that example 16 on trigonometry Step two was to allocate space for this vector that we're going to make and fill it with the roots so for that we'll have to use our heap which we implemented in example 11 and Our root finding techniques, which is from the previous episode episode 17 Finally, we want to print out that vector like we did in example 10 and also make a scatter plot which we covered examples 14 and 15 so Let's do that pretty quick intro. Let's get into the programming right away So if you get the suppository you download this get close whatever you have to do you will end up with Actually, you'll end up with this And when you run make bins you will get this binary folder Which will give you some functions that you can use including one function that enables you to Make binaries executable. We're not using a compiler or a linker. So we have to use our own DIY Function to do that. So this is what implements that All our code for these lab videos is in the lab directory. So if we go into the lab directory You can see I already implemented lab two, but we're going to implement it again By copying the template. So we're going to copy our template, which is just a bare bones assembly file to a lab two Directory let's go to lab two and let's show you what we got in here So we have just a assembly code listing a bare bones one as well as an An executable script basically so the way this works is Let me just show you So that shell script runs nasm on our code Includes some sys calls that are based on what os you're on linux or bsd And then it takes that makes it executable sets that you know to work and then executes the binary This is a very quick like test shell script. Let's just Compile and run our program pretty quick Then in that code assembly listing, it's a bare bones file. All it has is a bare bones elf header with an exit command And accommodations accommodations for a print buffer, which is usually required. So if I run this nothing happens We return to zero if you check So it's a very simple program and it's the the minimal program I would say so Let's get into it. So the first thing you want to do is implement the The first step. So what was the first step? Let's go back and see Count the number of roots. So what is the algorithm for this? Let me Let me paste in the algorithm that I'm going to be using just like a as a comment Here's the algorithm. I want to use I mentioned this last time Basically, what we do is to find roots to find the find multiple roots We start at a lower bound. So I want to do it start at a lower bound record the sign of that location increment by some step size until you change sign and Count the number of sign changes that you have until you hit the upper bound and that's how many roots you have Ideally between those boundaries. So let's implement that the first thing you have to do though is actually include the sign function That's the goal, right? So let's grab the sign function This is all copy and paste. So let's go to the example on trigonometry Take the sign function right here This is the include for the sign function. Let's just snag that If I include this in my program, I will now have access to the sign function boom easy Now um, I want to wrap that because you'll see that I don't want to have to keep Working with this this in this function requires two inputs. It requires a x value for sign of x. It also requires the tolerance of the Taylor series approximation. So We have to give both those things. So let's make a wrapper function for sign of x We'll call it funk and what I want it to be like is I want it to be a function that returns a double in x and m zero And it will take you in a double in x and m zero And it will basically would be a wrapper for sign So how does this work? Well, what we're going to call sign of x and we're going to return but This takes input. So it takes an input. Let's just do this in x and m zero, but That input is already passed in x and m zero. So we can ignore this line completely instead You need to pass the tolerance. So where's the tolerance? Well, I don't know where the tolerance is. Let's make a tolerance At address tolerance, let's define a tolerance called Tolerance and it will be a zero point zero zero one. How's that sound? Now This function is only supposed to affect x and m zero not any of any other registers. So let's preserve those So let's subtract from let me check my Pre-made just make sure I do it right um, so the track from rsp the number of bytes in the x from register 16 and then we'll move into the stack location zero offset the value in x and m one And then when we're done, we will undo that. So we'll move Into x and m one the value from the stack and then we will add 16 back to the stack to rely on this pre reposition the stack on the right spot And yeah, that shouldn't be it. This is our wrapper function for sign of x Very nice Now the algorithm. How does this algorithm work? Well, let's think about this We'll need a A loop. So let's make a loop of address or whatever a label called count roots A loop and in this loop we'll try to Include this algorithm. So let's make some stuff in the beginning. Let's uh, first of let's move that function into rdi So we can access it In rdi as i was having to keep calling this wrapper function we can just call the register rdi instead. It makes it a little bit easier um And then let's make a variable or register for counting. So let's use rcx as a counter That's i'm not going to put the comments here at the waste of time. Um, and uh, we will move into x and m three let's use that to track our x value across the function the lower bound So what's this loop going to be basically we're going to increment by this step checking the sign as we go until we change signs and that will be A root so let's let's do that. So let's use rbx as a flag So this is like a sign flag um zero for positive one for negative And we'll keep tracking that until it's changed. I would see wasting 63 bits here. Um, but fine. Who cares not me So what we'll do is we will move into x and m zero the the value of x and x and m three We're going to call rdi which is the wrapper function for sign And now let's compare That value so you know now x and m zero contains sign of x Compare that against the value of zero, but what is zero? We have to define zero also have to find our bounds Let's define all that stuff right now. So what are the bounds? so let's say lower bounds dq negative 10 You have to put point zero to make it a float. Um upper bound Dq 10 uh, say step Dq I don't know 0.01 has that sound and then zero to compare against there are other ways to Check the sign of things, but this is the easiest in my opinion So we'll dq 0.0 that happens to just be all zeros, but it's okay. We'll define a value for that So now we're going to compare that against x and m zero and the idea is If we are above or equal to that zero then we're positive. So we'll say sign compared So we'll leave rbx at zero because it's a positive number. Otherwise, we're going to increment rbx Which makes it negative So that's fine The caveat here is that we have to compare against the previous value of rbx So we have to have that established. So let's just say that's in rdx Just say that for now. We'll add that in later. So we're going to compare rbx against rdx And if they are equal That means there's no roots otherwise There was a root found in which case We're going to increment rcx. That means we're going to count that as a root if the sign has changed Number of roots has increased by one. So increment our rcx and now if there's no root found Let's well either way we're going to save the previous the current value of rbx in rdx. So move into rdx the value in rbx and Now we're going to just increment our rx value. So we're going to add the step size to xm3. So Add step to xm3 and then we're going to compare If that has exceeded the um upper bound If it has then um We stop so we'll say jump the lower equal to count roots loop Now this should work There's one caveat here is that what about in the first step It turns out the way this is written in the first step if design is negative It will count that as a as a root. So we have to basically define rdx going into this How we're going to do that is actually pretty simple. We're basically going to take all this logic outside the loop um Yeah, basically like all this logic here outside the loop and Have like a condition when we go in that rdx is already set up and we'll jump into the middle of that loop So i'll show you how that works how that works So um Let's do that xm0 to 3 call rdi fine compare again zero. So now um, we will say In knit sign compared No, no screw that. Let's just jump right in to the middle of the Of the function. We're just going to jump into here. No root found Because yeah, that's fine Jump no roots So this does basically is this Enables us to start our Our loop and immediately jump into Here meaning we won't be able to detect our root in the first step of our bound But it's okay because we'll be able to detect some We won't miscount the number of Roots by one assuming that input was negative at that first location. So This will enable us to do that. Hopefully this will count the roots for us. So now at the end of this rcx Contains number of roots How can we check that? Well, I could add a bunch of includes here to print out decimal numbers We can do that or You know big brain, how will we just return that as a function as the as the program return value? So instead of this Let's move into and you could do di l cl or you can do rdi rcx. This is simpler. So let's just do this This is that some bytes um, and then Run this Oops, what happened? I don't oh, I don't have the executables. Let's go back It's uh make make all the bins now. I have that bin directory Now if I run this still what happened? No binary hold on Oh, it just failed to something was wrong. Um, oh operand. So what did I do wrong line 82? Let's check 82 82 Oh, I'm done. I have to add 16.   So are there seven roots between negative 10 and 10? Let's see One two three four five six. Yes, there are seven roots. So we did that right Now let me go back This is done count the roots is done. What is the next step? To allocate space for and make a vector for those roots. Okay How to do that? Well, first we need a heap. So let's copy some stuff for a heap Let us go back in the code and and begin this So the first thing in a heap is let's go to see what a heap even is I have a example on that memory allocation example 11. I look in free code Let us see first. We have to have a heap size defined We'll do that that also feeds into the the size of the segment in memory.  Let's just snag these three includes To make a heap to free a heap and to free heap Chunks and allocate for heap chunks. And then we also need to set the bottom which is Definition of the heap star address. So we'll talk about that right now. First. Let's paste in that include Before I forget right here And actually let's get rid of this one on heap free only normies free memory. We don't do that around here um Now heap size. Let's define a heap size. Let's do the same size as the print buffer 4k Why not plenty of plenty around on this computer? Keep size 4096. Let's add that to our segment This is in the um When it's loaded, but it's not in the binary. So that's good. Doesn't waste 4k of memory on our hard drive plus heap size And uh, we also need that at the very bottom It doesn't have to be at the bottom. It's just a macro. So uh, whatever. It's like a I'm not sure what that is even called. It's like a Assembler directive For nasm. It defines this in there It could be anywhere in the code, but I put it down here because that's where the heap is located You can see here the heap is defined to be after the print buffer. So I put the heap definition down here So, yeah, that makes a heap. Let us return this to what it was before before I forget I don't like returning values that are non-zero. I don't have to um, and Yeah, so now we have a heap now. Let us Initialize the heap, right? That was the first thing to do if I recall correctly. Let me check the example It was to Initialize the heap like this and then we had to allocate like this. Let's copy this into our program What am I doing? I'm done Put it right here initialize the heap We don't want to print anything out. Don't need that. Don't need that. Don't need that Um, so we have to put the number of bytes in rdi. So let's take them from rcx Multiply by eight or shift it right shift it left. Sorry by Three so shift rdi by three This will allocate eight times rcx bytes And let's save that In a register. So we'll move into let's do r15 the value in rx Let's do it in two spots. Let's do it two spots because I want to be able to increment through this So I'm going to save it in r15 and r19 and r9. So we will say um save address to Uh eight by rcx by vector four Roots in r9 And r15 Copy the same thing Again But this time I want to save it and this is going to sound dumb. I want to save an empty one For the zeros later on the actual value of zero. So we're going to say save it in r14 another Seven times eight byte chunk. So like this and the beauty of this is Basically, we don't have to redo this math right here. This move rdi rcx Multiply by eight We can ignore that because our calling convention is so nice that these function calls heap alloc and whatever They don't affect any registers that aren't return values And so believe it or not rdi is the same value as it was way back here Even though we've called this function already rdi is unaffected and I can guarantee that for all the functions that we have in the In the code base. So this will allocate another eight by rcx bytes for the roots and it will save the address in r14 great Now That gives us space Now we have to actually populate that Vector with values, right? We've got the space for it Now you have to actually find the roots and populate the the vector. So let's do that How do we do that? Well Ultimately, it's the exactly the same logic as this I'm going to snag this entire thing And just change a few things here and there Copy that entire, you know 20 lines dump it here But instead this time i'm not counting roots. I'm finding roots. So I don't care about rcx at all Get rid of all everything to do with rcx deletes And instead of where we would have incremented rcx to count a root now. I want to just find the root So let's just find the root. So how do we do that? We need the bisection method So let's go to our example 17 That was the one that covered the root finding algorithms including the bisection method And let's just snag the include really quick. Here's the include for the method copy Let's go back in And paste This takes some inputs. What are they? Who knows? Let's just copy the actual implementation here right there. Bam copy here Use bisection method to compute To find All this is the same except for a couple things. So the tolerance is not in dot tolerance. It's in tolerance Let's use the same tolerance as the one that we used for the sine function the actual Taylor series tolerance Let's use the same value. Who who cares now the bounds of the method are not the same bounds as our total Search it's just the local bounds, right? We've just changed signs Where the previous value was negative the current value is positive. There's a root in the middle somewhere Let's find the root between those two things. And so the upper bound is actually x and m3. That's the current value Of x and the previous value. Let's just say that's an x of m1 And we'll implement that later and the last thing is rdi. We've already set who needs that line of code not me So We have to save x of m1. So let's do that So we will move the previous value of x of m3 into x of m1 right here Before we increment that now one last thing. I just copied that entire set of code It's gonna break. I can guarantee it's gonna break. Why because it's the same labels So let's change all the labels to be twos this way. It's a new A new set of addresses. So let's change all these to two And uh, that will hopefully prevent any error messages from popping up Okay So now at this point, um x and m0 So Should contain the roots Now you have to save the root and remember we saved that address to the first Root that vector was in both r9 and r15. We're going to use r9 So I'm going to say move sd into r9 The value in x and m0 And then I'm going to add r9 comma 8 so now we'll point to the next location in memory and uh, yeah, that should be just fine. Okay, great Um, so once we're done here the vector of Roots should be populated How can we guarantee that? How can we check that? Well, let's print it out So how do we print out matrices? Who knows not me, but I do know we did it before so let's go to our matrix basics example You can look at the names to guess where it would be And I'm sure in here somewhere we printed out a an array of floats. Here's the function Print array floats. Let's copy that and let's paste it into our includes Right here and the beauty of this function is that doesn't just print floats But it also includes All the functions required to help print floats all dependencies are in that tree So there's anything else don't need to have print buffer or print characters any that stuff It's all dependency of this function. And so we can just come down here And print it out. How do we print out of how do we print out a matrix? I have no idea. Let's just check We did this copy Paste like I said before programming is all copy and paste. So let's just copy and paste this print roots Print the standard out. Where is the first address that's in r15 How many rows there is one row? How many columns there's rcx columns? We can change that rcx columns r8 print float five six figs fine Last thing you have to do to print out stuff. You have to flush the print buffer. So we'll say call print buffer flush and leave the code This should work. Let's see what happens in my break It did not break. So here you can see You run it again. Here you can see one two three four five six seven roots between negative 10 and 10. Is that correct? Does it match our expectation? It does match Great Now we've done the first step the second step and the third step Last step is to make the scatter plot. How does that work? Like so before I have no idea, but I do know we did it before We had a a whole example on scatter plots example 14 Example c was evaluating functions. Let's go in there And let's see what we had to do to print out a scatter plot So We had a heap. We have to open and close the file. We have to run scatter plot We had these two things here evaluate parameters and linear space. They were functions that basically enabled us to Evaluate sign from negative 10 to 10 The whole length of that range. So let's let's grab that Don't need these we already have these two functions for the heap. So let's just copy these functions into our includes Really quick up here File open file close scatter plot Sure And how do we use those functions beats me? Copy and paste so it is Let's copy that entire program into here So how did we do this? Oh, we had some wrapper function I'll talk about this in a minute and how did we do this? We had to keep initialized We allocated some arrays for the X and Y data for the sign function We've put a linear spacing in the X. We evaluated into the Y Open the file or in the scatter plot close the file. Okay, great. Let's paste that in Boom done program done. Isn't that easy? What else?  So the first thing is this is all fine 101 values is fine. Who cares? That's enough for me. Um X param will put that in a second Y param fine This is the linear spacing for the X parameter. Let's not use random numbers. Let's use the actual numbers. Let's use lower bound and upper bound lower bound upper bound and then the oops The function Let's make a new one. This is a special function. I'll talk about that in a second. Let's call it param Funk. We'll do that at the top in a minute. What else? This is all fine. That's all fine Let's also while we're at it, let's paste in the rest of the Stuff you can see here. We have these data structures called plot structure file name, you know parameters all these different Labels that have nothing in the in the code. Let's paste those in. So let's do that Take this Copy everything Without regard for what it even is copy copy copy Paste paste paste This will plot something. I don't know why it's plotting but it's plotting something here the names of stuff Here's some inputs. Let's change these things who needs this garbage 2 3 negative 2 not for us Um, these are the parameters. That's fine 101 values. That's fine. Um File name let's change that to be something else. Let's change that to be sign roots change the title instead of that polynomial. Let's change the title to be um Roots of sign of x x label x y label y Let's change quickly the the the Minute and max for the scatter plot just so it plots nicely Let's say negative 12 to 12. Let's say y values negative 3 to 2 because it's it's sign right that fits between negative 2 and 2 We'll leave all this for now. We'll change this in a minute. Who cares about all this stuff the data. Um Let's leave all this. I'm just gonna turn off the the marker size And the bit for the marker you can see here these this byte is a bunch of flags bit zero is the markers bit one is the lines The rest of bits are for other stuff. I'm gonna turn off the marker. So I'll say db zero x zero two Okay, now comes for the definition of that function You can see here. We have that function right here param funk This function is basically a function that Is like what we have already it's it's this sign function here this wrapper, but it can't Effect any registers and it takes all its inputs in order from the stack. So let me show you We called it param funk and it's uh It took and And returned a value in xm, but it has to be an rsp plus eight Um, because it's a single value and the reason why this is the case is so we can potentially have functions of multiple Multiple parameters, you know a multi-dimensional design space and have multiple return values And so we use the stack as opposed to registers to handle that because you only have 16 registers. So if you use the stack you can have infinite number of uh Inputs so we'll say double Rsp plus eight So it's the same function the difference is you have to not affect any registers And you have to take your input from rsp eight. So how does that work? Well, copy that Um, we'll say zero we'll say one we'll add this to 16. Oops Don't want any typos 16 I mean that is zero Um, we have to take From xm to xm zero from rsp plus eight. Let me just quickly check to make sure that's the right move I always mess up my move instructions That is the right move instruction But it says rsp plus eight, but we just added 32 things to the stack So it's actually 32 plus eight or 40 sounds good to me Lastly, you have to put that back onto the stack and so We will move just that single quad word to rsp plus 40 xm zero Is that correct? Let me check Yeah, that's right to me Um, so yeah, hold on. Let me change this up here to param funk Not that it matters. It's just a comment um And this should work Let's see. Let's see what happens. I'm gonna run this. See what happens. Probably gonna have an error. Let's see No error. We got a sine roots dot svg If I open that Sine roots svg Here it is. Here is a plot of sine of x between minus 10 and 10 There's some weird stuff going on with this The reason why it's doing that is because it's trying to subtract two-thirds from two-thirds is getting very close to zero But not quite so we'll change that in a second. We'll make that look nicer um I might change like the number of grid lines and stuff do that in a minute Let's first put the actual dots where the zeros are we already have this saved So just a matter of Implementing that in the scatter plot. So let's do that really quick. Let me duplicate this and uh go back So we have the suppository let's go back in the code Now this last um Structure we have called data. The first entry is it's actually a linked list This entry points to the next data set in the linked list. So let's make another one. We'll call it roots And let's create the roots data structure Gonna be a copy and paste of this one The story of my life This will be the last entry in the linked list. We'll call it No pointer there. This one is going to be a little bit different. It's not going to have any Lines just just going to have a marker. So we'll say line size zero marker size 10, I don't know Um, let's make it no line color. Let's make it green just just for fun sake Let's put the flag on just for the marker and Number of elements is not 101. It's actually going to be seven, but we don't know that If we change our function, it might change the number of elements. So let's not put a number in here Let's populate this so this function it needs to contain an entry you can see here at 16 That's going to be the address of that Memory that we allocated for the roots. So all the x values At offset 16 a quad word offset 26 another quad word for the y value. It's going to be all zeros um, and then in 36 double words So half the size so four bytes for Number of elements so that'll be seven, but we have to put that in there automatically. So let's do that really quick How are we going to do that? Well, let's do that Right before we print. Where's our first print right here? So let's populate that there structure with stuff. So Um, we're going to move into I believe what was called roots 16 was the offset And it was the address of the x value. So that was an r15 the y values was in r 14 and that was the 26 and then the number of elements was 36 and that was supposed to be the Number of elements and that was in r6, but it was a double word So half the size and you could do that in different ways with assembly. I just like to say move the Four byte version that register into that slot. That's just the easiest way in my opinion. So this is basically to populate the roots data set structure Okay, let's see what happens. I run this No error messages. That's insane All right, um Let's open it up. What's looked like refresh this page Boom, it was just a pretty big green dots. I'm not sure I like that big. Um Let me go through and change the formatting of this one to match more or less what I had in the example In in this slide, but we'll keep green dots. I like green. Let's just leave that as green So let's go back to the code And let's just check the the formatting of what I had in the example So in the example, I had a little bit bigger plot. I believe right it was less zooming required. Yeah, it was 800 by 400 oops did not type 800 by 400 plot margins was 5 12 12 2 2 0 0 0 f 0 0 I had 9 by 3 that makes it easier because You're dividing into two groups. So that makes it easier to um subtract. So we'll have that 0 0 0 0 thing Um subdivisions per tick. What do I add? 2 in 2 really Fine 2 2 2 2 What's this 32 5 let me see scroll down Font size for the labels was 24. Everything's obviously twice as big basically 16 for this one. Um 5 5 Okay, it was double thickness for the bagers one for the minor stroke thickness. Um on the grid What were my uh tick margins? It was 60 and 40 The flags was 1 and f Um Let's see how that looks. I'm down to run it. Oh, let's make this one a little bit bigger this line thickness Okay, so we're gonna make everything bigger. So If I run this how does it look now? Run the code. I still have that same svg. Let's open that in firefox Zoom out a little bit boom. That is our roots of sine of x. So we found all the roots of sine of x The plot looks very pretty. I like that So, yeah, the we're done. We finished everything. We've checked off all the boxes. Um We've kind of the roots Made some space for made a vector of the roots print out the vector and also be the scatter plot. So We integrated like I don't know one two three four five six different examples You could have done more. You could have made a nice, um report with all this from example 15 You could have done so much stuff. So I just want to show that it's it's actually super easy How long was this video this video is only 38 minutes long and we've already been able to implement this entire program from scratch Just by copying and pasting stuff from the skitzone code base. So if that's cool to you you have any questions Come to discord. We have a server going. Um ask your question and we could hang out with that. I'm done I want to thank you for watching and I'll see you in the next video. All right. See you


Hey, you said something after the game about seeing a young guy starting to make plays and stuff. That guy feels good. Oh yeah, without a doubt. Without a doubt. Because you know how hard they work. You know how bad they want it for themselves, you know.  Whether it was, you know, like a QB hit or something, or whatever it may be. It just, it just means a lot to you. And it's like dreams come true. You know, everybody's trying to put their finger on how the defense has been coming together. How have you been seeing it in the group? I think it's a combination of a lot of things, you know. Getting more reps together. You know, getting more confidence in the calls. And coaches trusting us more to, you know, make some nice plays and putting us in the right position. So I think it's a lot of hard work being done by everybody across the board and just making it an effort to put some good defense on the field. And even when we do have a good showing, there's always some things out there that we think we can get better at. And then guys got to step up with Eric going down. Yep. Yep. Without that, always sad to see a teammate go down. You know, starting debut and had to go down this year.  So there's not only the defense but the whole team. So definitely going to miss Miss E and wishing, you know, well in his recovery. But, you know, we definitely got a lot of confidence in the next man up. I don't know how we're going to play in the back end, but we've got some guys that's very capable to step up. And the good thing about it is Eric was a kind of guy to pour into young guys, you know, and four moments like this. And even when, you know, they were still about to do things, you know, he wanted a more vocal, you know, active leaders on the defense to make sure everybody on the detail. So, you know, coach haven't prepared, but definitely as a leader, you know, have whoever going to be on the field prepared. Does that offense look like your own offense? Like our old offense, like Shenahan offense? Yeah.  And every year is different, you know, every year is different. Everybody always trying to evolve, you know, as a, you know, them as an offense, us as a defense, whatever it may be. So we definitely just got to, you know, focus on the games that we have in our breakdown, you know, this year and focus on the players they have this year to just try to become, you know, be the best defense versus that. I asked her on this question and I'd love to know your opinion too. I know Arthur was talking the other day and he said, he kind of essentially said, like, this team is playing smarter football. And I was just curious kind of how you see the defense kind of taking the ownership of playing what he was saying to the smarter football.  It's been times we've been close, but just pulling up, you know, and, you know, guys making plays when they're there. You know what I'm saying?  And if any of us hit him, it could be a flag and take it away. You know what I'm saying? So things like that, I'm sure will coach me about being smart and having emotional control or something. And then also just being on the details, you know, and it's a certain way coach P's like things to be ran. And it's a reason why. So understanding the reason why we're doing certain things and why he calls certain things is crucial. And I also wanted to ask you, Dean was kind of talking about Boyer's role kind of expanding in the defense and him kind of being the quarterback of the defense and getting everybody lined up. Him taking ownership of that role and how it's evolved over the season. Yeah, I definitely see him taking ownership of it. And anytime anybody asks me about him, I got a number of good things to say and that's how I truly feel.  So he's in great shape, you know what I'm saying? So, and to do it is just really season is season is opportunity. Season opportunity is, I've been with him for eight since he got to the Falcons and just to see him grow and challenge his own stuff to be better each year is something that I definitely admire about him and I know that the best is yet for him. I mean, what other examples are there kind of abusing his growth? I mean, I know it's kind of interesting, I think I always think his story is very interesting to start out as a college safety and then transition to the linebacker position. The guy that you met in 2018, like what's the difference between the guy you know and the one you don't like? Just, you know, like more experience, more mature, more confidence and most swag, you know what I'm saying?  I know they sell Christmas attire, man. So I'm gonna plug him in right now. Y'all gonna support 4A in the ugly game, man. But yeah, so, you know, he's the biggest thing I've seen from young 4A to now is just he's one of these huge cleats, man.  But now he got some nice, nice cleats, man. It just, it just looked better, feel better. He ain't moving way faster. But nah, man, he been a great teammate. Thank you very much.


So Elon Musk has bought Twitter and while it still has to go through regulatory approval There's a good chance that by the end of the year He's going to be the man in charge of Twitter now. I don't cover Twitter on this channel for good reason It's not anything to do with Linux I have covered a Linux client that lets you tweet from the terminal and that video absolutely Tanks, so I'm very worried about this video here because there's a good chance. Nobody gives a rat's ass About Elon Musk's using Twitter at least in terms of the people who watch my videos However, I do want to take this opportunity to at least to talk a little bit about mastodon because I Haven't talked much about the free and open source social media Giant if you want to call it a giant That is mastodon because honestly, I don't know that anybody really cares but it is definitely in the news so I wanted to talk about it a little bit and Really, I want to pose a question and that question is can mastodon actually be a respectable and well used and easily Maintained and easily moderated alternative to Twitter Because I've used mastodon now for quite a while I was on Distritube's instance of mastodon for a little while. He had something called Distritute It's no longer available, but I will use that for a while and then I've now moved over to fostered on which is a larger server Dedicated to open-source software and it's great So I actually have found that I'm using mastodon more since I've moved to fostered on than I ever did on Distritute and that's just because there's more people there and the fostered on maintainers filter allow a lot of the garbage that can be found On the federated timelines So if you've ever actually joined Mastodon before and you've gotten into a server that doesn't moderate the federated timeline You'll see a lot of garbage and I'm not just talking about garbage politically like you'll definitely see that But she'd get that on Twitter too left and right both have just a ton of idiotic opinions that People seem to think that they need to share with everyone else. I don't really care It's they're free to do so but leave me out of it is the whole point But back to mastodon you'll find a ton of stuff in the federated timeline if it's not moderated that is just it's kind of gross So there's a lot of adult content and while I'm not opposed to adult content There's some adult content that takes things a little bit too far And and there are instances that support things that are just blatantly illegal So you'll find some things that you probably don't ever want to see if the instance You're on doesn't regulate that federated timeline and that is kind of the peril you get when you're on a social network that is truly free and open source In a way that Twitter only wishes it was or at least Twitter under Elon Musk only wishes Because let's face it Elon Musk has said he's going to open source the algorithm for Twitter and nobody cares about the algorithm for Twitter Quite honestly the people who are excited about this being open source They're very naive and the reason why I say that is because the it's not like he's open sourcing Twitter He's not open sourcing Twitter. That's not the what he's planning on doing. He's open sourcing the Algorithm that ranks the tweets that shows you tweets out of order Which nobody uses by the way anybody who goes to the Twitter website automatically switches over to the Chronological view for the tweets for the most part. That's what people do Especially because the algorithm is not awful. It's really bad So chances are if you don't switch to the chronological view You probably end up going to Twitter every a couple days or whatever or however often you go And you'll notice that the same tweets are at the top because the algorithm is not showing you the appropriate Tweets and it doesn't realize that you've already seen these things. So It's not very good. That's what he's open sourcing. He's not open sourcing Twitter Mastodon on the other hand is actually free and open source anyone can download Mastodon create it Put on their blonde hair wig and create true social and then not give credit for Mastodon That's what you know happened there and anybody can do that, right? Anybody can grab the coach for Mastodon create their own instance and Carry on their way, you know, just do whatever they want They would be their own little fiefdom on the internet their rules go That's the joy of open-source software, of course but it also means that Anybody can create this even people that you don't necessarily want to interact with on the internet whether that's people that you disagree with politically or people that just are just horrible human beings, you know They can create their own instance of Mastodon and just by the nature of the way Mastodon works All other instances are going to interact with that instance like it can be filtered out, obviously But by default all the instances I interact together even the ones that are not necessarily great, right? So that means that when you are on a instance that doesn't filter out that federated timeline You're going to come across content that is necessarily kind of bad And a lot of the good stuff is going to kind of fall by the wayside because that Federated timeline is going to move very fast. So getting back to the original question Ken Mastodon Go mainstream, which is you know paraphrasing what I said there at the beginning The answer I have to that is probably not the nature of open-source means it's really hard to Create rules that are going to apply to everything when there are by definition no rules system-wide like there are no Things that you just can't do on Mastodon because you can download this thing and create it in your own image and If you happen to be a really bad person or you are interested in some really nasty illegal shit You know there is you know nothing that Mastodon can do about that because that's just the nature of the way Mastodon works the only way that kind of stuff gets filtered out is if the instances themselves filter those things out So for example the instance that I'm on fostered on that org Takes some of the bad actors and filters them from the federated timeline. So let me show you this These are the servers that fostered on Filters out and to get remember by default these things show up on the federated timeline The only way they're filtered out is if the individual instances then suspend them or filter them out themselves So things like child is on here things like there's one like where was it? I saw this earlier this one here like With that this thing exists this one right here like I'm gonna say that right and there's just a ton of that kind of stuff there's things like Nazis and Racism and all that stuff the reason why they've some of these things they've filtered out is because of just terrible stuff, right? And this is the only way you will not see the federated timeline So if I show you the federated time it this is the federated timeline for fostered on and It's actually pretty good right because they thought they filtered all that stuff out If they hadn't you'd see a whole bunch of other stuff and I will say that it does Kind of take out a lot of the content. I'm just gonna put it that way This doesn't move as fast as the Federated timeline you'll see on something that is not filtered So it's definitely something that you're going to have to keep in mind if you move on to to Mastodon so bottom line. I actually like Mastodon quite a lot I like fostered on even more than I like Distritute now That's nothing against DT, you know He just set that up because people everybody asked him to and it was you know nice of him to do it while he did it but fostered on seems to filter out a lot of the stuff and I Prefer that I prefer something that is a little bit more moderated than the general Wild West that is the rest of Mastodon and that's gonna be the bottom line Is that anyone can create one of these instances like I could create an instance if I want to I don't want to I'm not going to don't don't ask me to do so. I'm just gonna tell you no I'm not doing that But anyone can do this right and it doesn't matter why you've created the instance whether you're creating it for Good reasons or you're creating it because you want to create something that is not so good It doesn't matter anyone can do it and that's going to be Mastodon's biggest problem is that it It really is open source in the worst possible way and that there are no rules to what you do with this thing and Because all the servers interact with each other you're gonna be very reliant on your instance creating at least some kind of structure rules to make it not only safe for you, but also Not just a cesspool of terribleness for whatever you're not interested in saying if that makes sense So I think that it's going to be an interesting thing because I know that Mastodon has gained just like a ton of users over the last two days and I think that as it grows and I think it will grow Mastodon will change quite a bit because more and more people from different Viewpoints will come on there and up until now. It's been very much a Place where you you'll you have open source nerds like me on there But you also have a whole bunch of people who were kicked off from Twitter for various reasons Creating their own instances and interacting with each other So they're going to those people who've been there for a while and have been kicked off Twitter for a while are going to have to find a way to interact with people who are migrating from Twitter and Probably have different viewpoints to them and that's going to be something that is going to be a very interesting interacting to see because a lot of those people disagree Just to put it mildly so If you're interested in following me on Faustadon you can do so Faustadon org slash at the Linux Cast You can follow me on Twitter. I'm still on Twitter at the Linux Cast You can support me at patreon at patreon.com slash Linux Cast if you have any comments about all this stuff This the record time of this is actually quite long because there were several times where I meandered into politics and I I'm cutting all that stuff out So I tried to keep this as neutral as possible because for the most part I don't give a rat's ass about politics whatsoever I have my views everyone else has their own views and we're never gonna you know come to the point where we agree on everything and That's just the nature of humanity and I'm fine with that But it just doesn't means that I'm not really interested in talking about politics. So anyways I still ended up talking about politics there for a minute You can support me on patreon at patreon.com slash Linux Cast I'd like to thank my current patrons Robert, Sid, Devon, Patrick, Fred, Kramer Megalyn, Jackson, Anton, Steve, Sebrega, Linux, Garrett, Samuel, KB, TGB, Keith, Andy Uncle Bonehead, Trideville, Mitchell, J-Dog, Carbondated, Jamie, Sean, Odin, Martin, Ross, Eduardo, Archenter, Elliott, Merrick, Kamp, Joshualy, Peteray, Cruisible, Darkman, Six Primes, and PM Thanks everybody for watching. I'll see you next time