tionships um yeah i want to actually talk specifically about one example of that but let me just ask while we're talking methods counter examples like theoretically you should be going out there trying to disprove your theory because that's what good science looks like as falsification is the gold standard or something i don't understand science um just part of it just because of all the Korean though um the like how do you look for disconfirming exam so philosophy philosophers philosophy tends not to be an academic discipline that gets a lot of respect the philosophers tend to be late to the party because they usually start with analysis of their own feelings and then trying to impose their own feelings on reality rather than beginning with social science so this is a philosopher admitting you know he doesn't really know how to do science examples like do you guys go out and find new folks go out and find like communities that meet the three criteria you described but seem to never produce violent action and like you know are there are there groups like that out there or is it possible to look for something like that yes i think it it is there's like there's a kind of endless amount of groups that you can look at and i i think you do need to look like before you want would draw any really strong conclusions you would want to do what you're talking about which is like uh look for groups that that fit the characteristics um but but aren't associated with violence and just do all of the same analysis and see how so that's the big problem with all these arguments and academic studies that you know verbal violence leads to real-world violence because you can find 10 000 examples of verbal violence being used without you know physical violence accompanying it so to whatever extent there is a connection between verbal violence and physical violence it's quite remote and when you know one group goes to a war with another group it's usually because of visceral real-world intense extreme conflicts of interest between groups that's what leads to you know one group trying to slaughter another group but it's not because of things they heard on the radio like what what level the indicators are at now we did do this to a certain extent like i said we had three uh you know moderate in a certain sense um like texts that we compared to manifestos to but that's only three right and two of them are speeches so the important difference there um also when we looked at the q and on groups uh we had i think it was uh 11 or so groups maybe more but we we did look at um some comparison groups a non-violent control group was uh this the third are um kind of a religious community right but one that we had like an extensive uh chat log with and then a um a violent control group iron march like you know kind of neo-nazi group so there are and also we from the q and on groups that we looked at there's a there's groups which are much less extreme than others right they're more like conspiracy oriented so it isn't like we have a table in it that based on our like kind of indicators fusion plus red plus calls the violence and an estimated violence risk and we we did find channels that were low uh on those indicators or medium right there was only uh one that was very high um from the ones that we looked at so it's important to note i think that you know q and on and like if you listen to q and on anonymous right there's so many different uh subgroups within that broad movement and there's people with like different degrees of interest in it and devotion to it and you're always going to have some who are more ideologically extreme and you and you will have uh subgroups which are like more cultish and and that kind of thing so i think it's important when talking about it like to kind of keep that in mind that especially we're talking about movements with millions of people that they're not all you know potential violent terrorists right and i would also assume this analysis would apply to a lot of kinds of like all behavior to some extent not just like you're interested in violent extremism but if you swap violent extremism out for anti-vaxxerism that you find similar trends that like anti-vaxx like you know think of um uh ultra hesitate communities right they're going to be really high on this and are more susceptible to that kind of thing yeah and your question yeah hold on i mean just stuff like attendance the rallies donations to you know like donations to political candidates or whatever and i i would say that one thing that i suggested is like you would want to look at these kind of indicators in anti-vaxxers groups right because i'd be curious what you would see um i bet you actually would see mixed results because i think the left is really bad at interpersonal relationships and so no i really i'm not kidding i really do think that we are bad at what you are describing here i think so i talk for years on how the right is really bad at interpersonal relationships so here's this left-wing philosopher erin rabbinowitz talking about uh the left is really bad at interpersonal relationships so that's i i i would agree identity via ideas much worse than identity via persons um yeah so this is but you know like the language of comrades and uh that kind of thing that i'm not saying it all sure it all falls in that like we said you know kinship kind of stuff is just it's like it's it's fairly common across a whole bunch of stuff that's like effective in certain communities maybe or their language is better like oh the comrades stuff doesn't instill in me a sense of obligation in the same way that i think that like fundamental as christians really really feel that community connection but let me ask you about what seems to be the obvious pick which is why are have you i'm like i'm jumping the gun here i apologize and i'll have you back on when you publish but why aren't you applying this to the gurus here doesn't it seem like all of that interpersonal stuff you described in the first half of you know and you're talking about how they are obsessed with these interpersonal relationships like sounds like they're doing exactly what you're describing here and that it might mean that they are creating a higher that could explain why there's a higher risk of conspiracyism in their community well that's interesting yeah so uh i think partly it is that um so you definitely get the perception of threat right and the the kind of uh the vast conspiracy of evil forces which are targeting you you also get the like the strong in group by group markers right you are part of this elect and and we are a uh you know like a brothership of of light or whatever you but i think one issue there is that the power of sociality is more focused on the kind of guru figure right and consuming the their content and that that means it's probably more closer in line to like cultish dynamics as opposed to like extremist areas like interpersonal communities where you hang out and talk about Jordan Peterson as much at some of it but it's like it's not like together as strongly as these other kinds of communities and then it's lacking definitely in most cases the the endorsements of violence or calls to violence now alex jones for example would be different than that right because i think he is creating all of these things along with very you know like subtle is not is doing them too much like landing too much gravity he is calling the violence often on his show how much are y'all looking at implicit calls to violence versus explicit because i feel like if you look at your james lindsay's of the idw right who i still think should be you know considered part of this even if they have been effectively excised at the moment um we saw how that's gone with nois right like uh you know i don't know that james ever explicitly said go murder a bunch of globalists but he certainly has built a case for it in a very substantial way and i think we all like understand the idea that a lot of stochastic terrorism doesn't is not at any level built on someone explicitly saying go rid me of these meddling priests right it's very much like these people are an existential threat to everything you love what are you going to do about a question mark right right yeah and i i mean i was just listening to um there's a podcast called some dare call a conspiracy and it's it's doing a multi-part series on the um pizza gear conspiracy right the play the clip from info wars where owin shroyer was talking about coming ping pong and very much it wasn't it wasn't subtle it was someone needs to go there somebody you know needs to stand up for what's right if you go there you'll be saving people look in the and info wars have scrubbed that now from you know for obvious reasons right but even that isn't explicit violence right like he's just saying go there he's not saying go there and kill anyone he's saying just go there no but like alex jones is also saying you know we need to take care of this and then like but then there's there's always the disdainers and stuff added in and i i do think like so one issue would be that there's the problem that calls the violence are actually sort of relatively common right like that you you do see people endorsing them or you know kind of saying that we need to noise the time like it's we and and so the explicit endorsement of violence although it's not acceptable like on lots of things to do it outright but but it's still there but that's the problem is like because that signal is there on its own in most occasions it doesn't lead to anything right even you'll have like an easier time then like focusing on anti-vaxxer for example where people feel like they can be openly anti-vaxxer right now and you could study like how much anti-vaxxers and picking up in certain communities like that yeah so but that's the kind of thing that i well i i do think it would be interesting to look at anti-vaxx sentiment but like i would say that a whole bunch of you know violent conspiracy theorists they are anti-vaxxers as well right like so they are going to be overlaps yeah yeah so i think there's overlaps between the anti-vaxxers and the qanon in the sense that it's often these online communities that are baking you know together right when you bake together it seems like you you're building these interpersonal relationships so my feeling with the anti-vaxx stuff and this again this is ill-formed thoughts right but just my initial reaction is like the anti-vaxx sentiment is often a kind of stepping stone to the bigger conspiracy right because you're first saying the vaccines don't work it's a pharmaceutical companies but then there's always the step that who controls the pharmaceutical companies it's the wf grip reset yeah i think this is true so let's see the trajectory of many of the anti-vaccine people in our community gender right it's well you know my view that like as soon as like i do think as soon as you start down oh like they think they rabbit hole like it's impossible to not let everything go right it's like you know your your epistemology becomes such that it's difficult to discount the other ones yeah and often those are people with little hats that are ultimately right the hats get smaller and smaller until they just sit on the back of your head and then then you solve the question of who's causing all problems so that's the that's the point to me a little bit is that so if you were looking at anti-vaxx communities or whatnot that you you won't get i mean i think you will get some groups where it's more moderate and there's kind of just like contrarian doctors but i think the more that you get into the hardcore anti-vaxx stuff it gets into the melange of like you know the the kind of conspiracism that you see in QAnon that you previously saw in militia communities and and so on like so and that i wonder because i mean like you can't get it that people you know attack the portion clinics right so it's not like you can't i would worry that people were going to attack um like vaccine vaccine places and it seems like it hasn't happened with thankfully um i wouldn't be but like you it wouldn't have been a shock had it have happened right and it's very plausible soft target it seems like uh we're a little over time right here i do want to ask a little bit like is there anything applicable at this point in this research that we can like use to actually help people reduce risk or are we mostly just still trying to like map causes and then hopefully be able to influence them to some degree well i think the general with this kind of material i think julia is probably more directly involved with you know like counterterrorism efforts and that kind of thing and those organizations are always attempting to look for you know stuff that they can flag up material and that's an issue you got a lot of recorded language that they want to analyze is what you're saying you know right i need some new technologies right so that i'm not a concern right like because you you have the factor in that people whatever just came as you put in people may just go well okay let's just apply this corpus and say the anybody who flags up these three things causes danger so i i think it's important to emphasize that like all the the kind of work that we have done here and these these models they have to be considered alongside you know like deep qualitative analysis and that they they shouldn't be treated as like they're more scientifically rigorous right like it should be i i would want to emphasize that these are i think using linguistic analysis and this kind of stuff we should be doing it and we should be uh like the material is our people are you know going to do it in any case and like the tools to to be able to do it are getting better and there's a lot of conspiracism and extremism around so you know analytical tools we're doing are important but i i'm wary about people applying like simplistic models or becoming theoretically devoted to you know a specific set of predictors and like i i prefer to emphasize like a triangulation approach but one that that takes like linguistic analysis serious so so yeah i'm pretty is a very woke qualitative position i appreciate that you have adopted that and acknowledged it openly here um yeah i just don't want to be like being somebody getting you know flagged up on the terrorist watch list or something because they they talked about their brothers in the struggle or something um but would be a irony given your heritage wouldn't it yes it would so yeah but you have been a very amicable Irishman i do appreciate it um speaking of overly simplistic models that i do unfortunately have to torture you before we get on to the bonus times so you're familiar this is a great part of this embrace the void philosophy podcast here i love what he does next works but this is the enlightening round enlightenment comes from within and folks we're not familiar i'm going to give you a list of things you were going to tell me are these things real or not real um this will make you sad and everyone will laugh and that'll be fun um are you ready yeah though i've done it once before so doesn't that mean like i'm pretty new ones now it's new ones i'll bugger because i was like okay we started over new things now so you're gonna have to and some of these are gonna be particularly tricky for you given the work that you do so i'm excited to hear your thoughts on this um so first of all i always have to check at this point is anything real yeah all right so let's code real or not real with no notes uh bodies really not real real okay minds really not real real i have to tell you all the faces making is impressive uh free will oh real wow we know those sales fast uh luck and real i guess it's real demons not real oh afterlife not real truth real beauty yeah real justice real real yeah not no not real not real kind of real not real not real all right not real okay and finally hope well i said justice no i guess not real then all right you have survived how do you feel uh not good okay that was a lot about how i went the first round yeah yeah that was easy up till when i detected my obvious contradictions and then i was at me as always fun i like that you with very little equivocation or attempts to use real or not real still convey a wide range of emotions you really went from happy to very sad to back to happy for a second on demons and then way way down into sad which was pretty funny i i think it's interesting you could do a study in the reactions that you get to this because i particularly enjoy when you do this activity with people who are you know maybe somewhat more suspicious of your less agreeable than i am that they are obviously regarded as like a trap so that's so there or the people who want to qualify you know you explain the rules i'm a rule-based guy you know you say yeah yeah but but other people are like each answer gets a large explanation like you'll get to do that that's that's why it's hard so anyway i'm just completely about your other guests not me no it's good i'm glad you're picking fights with my other guests i love that love that that's a great great series of questions for for a podcast i love that real or not real mind body hope truth justice love afterlife demons a great series of questions andrew erin erin robinowitz the left-wing philosopher that's it for me take care bye bye


One of my favorite quotes is, if nothing changes, nothing changes. What is up everybody? This is Chris from the Rewired Soul, where we talk about the problem, but focus on the solution.  So if you're into that, make sure you subscribe and ring that notification bell. And before I get started, quick announcement for all of my beautiful Patreons out there, or patrons out there. Make sure you go check out the announcements because I just posted like a January follow-up thing. I just wanna make sure everybody's taken care of. So from your name and the credits at the end, or if you have the $10 tier up, that I have your link down in the description, or at the $30 tier by beautiful girlfriend. She draws a picture for you too, all sorts of cool stuff. Just wanna make sure you're all taken care of. So anyways, some of you have asked me about Patreon and what's offered over there. Just click on the link. It's always down in the description or in the end card. Click over there. You'll see what's offered at each tier. And this week, exciting announcement, I'm starting the podcast, and it kind of involves Patreon. So you'll all see what that's about soon. So anyways, I wanted to do this topic today about Artricia Paitis and Jason Nash's relationship. Is it a lost cause? Are they hopeless? Because I wanna just kind of follow up because we looked at one dynamic with Liza Koshy and David Dobrik, where two people split up or even take a break and one of the people works on themselves because they need to. And now we're looking at a different dynamic with Trisha Paitis and Jason Nash. So a lot of you asked me about this, and this is part of my relationships playlist. A lot of you asked me about different subjects. So by the way, if you didn't know, I have an entire playlist called the Broken Picker Relationship Playlist. Check that out. 99% of your questions have been answered in that playlist. So go check it out. But anyways, when it comes to Jason and Trisha, obviously they have their ups, their downs, and all that, and I've done plenty of videos about it. But now we're gonna talk about the aspect of two people who are in a relationship. They love each other. They want things to work out. How do you do that, right? And just again, for any of you who are new to my channel or don't understand what I do, my videos are not about Trisha and Jason. I am just using them as a point of reference because I know a lot of you can relate to this, okay? So I've had a lot of questions about, you know, can this work out, will this work out, and all that. And I'm gonna share some of my experience, not only with my own relationships, but just working with a lot of clients who have been in these types of relationships. So what I see works, what I see doesn't work, all right? Now, one of the reasons I'm making this video too is, in one of my videos about Trisha and Jason, I asked you all a question. I said, have any of you spent far too much time in a relationship waiting for a person to change? And the comments, the replies were, they were surprising but not surprising because so many of us do that. Like, if you go look at the comments, I'll actually put some up on the screen right now where people are like, yeah, I wasted five years, eight years, I've seen people say I wasted 10 years. Like, I've seen so many people say they wasted their time waiting for someone to change, right? And like, here's my thing, here's my thing. One of the reasons why I stayed single so long and waited for the opportunity to meet someone as amazing as my girlfriend Tristan was because six and a half years ago, I almost died. Time is our most precious asset, right? We can never get it back. So like, after my near-death experience because of my own drug addiction, like, I don't wanna waste time anymore. I don't wanna waste time in a relationship where I will never get that time back. So that's why I try to talk about this in different videos. But I'm gonna do a video at a different point about how Jason and Trisha have actually helped a lot of people. But here's a DM that I actually got over on Instagram explaining how one of the videos actually helped them. And I don't take any credit for this. Like, I just want to give some of you some clarity or maybe an aha moment so you can make your own decisions. But yeah, this is a DM I got over on Instagram the other day. If you're not following me on Instagram, go follow me at the Rewired Soul. I'm trying to get to 10,000 followers. So this DM says, Hey Chris, I subscribed to you recently and wanted to personally thank you for your latest video. I just got out of a four-plus year relationship and I've been really struggling with handling my first breakup. Yes, I am part of the Discord server. No, I have not posted to seek support yet. Unfortunately, my partner has always struggled with his mental health and was, as I found out, dishonest with himself, slashed me throughout our entire relationship. I encouraged him to try and get help consistently, but whenever he would, he wouldn't find the therapist to be the right fit and would give up. Watching your videos on a daily basis has really helped in reinforcing the fact that even though we both still care about each other, he is in no place to be in a relationship right now. He needs to work on himself and I need some time to work on being my biggest source of support again. But anyway, thank you so much again and I hope you're doing well. Good luck with reaching 10,000. Yeah, thank you. I appreciate that. Help me reach 10,000. But yeah, that's why I make these videos. You're already consuming this content and maybe there's something that you can learn from it. That's my goal here. That's what I'm doing here. So when it comes to Tricia and Jason, basically what I wanna talk about is couples therapy versus individual therapy. This is purely my opinion. For example, like if you talk to my mom who's a professional psychologist and has a lot more experience than I do, she's been in the field for 20 years, my mom is a huge advocate for couples therapy and family therapy and all of that. For me, I am a huge believer in individual therapy, all right? Like something I always try to teach each and every one of you is, it's a lot easier for you to fix you than it is to fix the rest of the world, right? So what I had to learn when working on myself and working on my mental health was I need to, it's not so much about how everybody else is going to change because I have no control over that, but it's about how I deal with it, right? How do I respond to situations? Like I have no control over, for example, I have no control over the nasty comments that I get down in my videos, no control over that. What I have a little control over is how I respond to that. So in my opinion, in a situation like Trisha, Payness and Jason, they both need to do individual therapy, all right? Like sometimes people think that I'm giving Trisha a hard time and not so much Jason. Like if I haven't made it clear, they're both messes, all right? They both have things that they need to work on. Like most of you have seen more of their videos than I have and you know that they both have separate issues, you know, from Trisha's past and dealing with, you know, her father not being there and things like that. Jason's divorce and, you know, Jason's issues with his family growing up and all of those things. These are things that should be worked on on an individual basis because what we find out through things like individual therapy is why do I respond in relationships the way I do? Why do I react the way I do? Why do I overreact the way I do? For example, I'm gonna link up in the info card, the in-depth video my mom did over on her channel about relationships, right? Like one of the most fascinating statistics out there is like there was a study, they surveyed like thousands of couples, thousands of couples about their arguments and check this out. Like this is pure insanity and I hope if you take nothing else away from this video, you remember what I'm about to tell you, okay? In all fights, in all fights, they found that 90%, 90% of the arguments were not based on what was currently happening in that moment, okay? What does that mean? What that means is you're getting in an argument about something that happened a long time ago.  You're getting in an argument because the way your ex hurt you, right? So think about that for a second. This is why individual therapy, when you're trying to work on a relationship is so important because you're snapping at your partner for things that somebody else did, right? Your fear of abandonment isn't because of your partner. It's because of one of your parents not being there or it's because of a breakup you had that was so much traumatic. They up and left you, right? These are the things that we can only work on in individual therapy. We get more personal time because in couples therapy, like therapy is very limited, right? You get like 50 minutes. So when you go to couples therapy, you are sharing that time with the other person and since you and your partner don't even know how to communicate, half of that time might be spent bickering in front of a therapist and them trying to like calm you two down. But if both people, Trisha and Jason in this case, were going to therapy on their own, they could talk to somebody, right? And get this unbiased outside point of view because what you find in a lot of relationships is, oh, oh, I'm right, I'm right, this and this and sometimes like people are looking for someone to just agree with their side. Like so many of our issues and relationships is we wanna win, right? We wanna be the one who won that argument. So when you're working with a therapist who doesn't know you, right?  This is another reason why a therapist is better than going to your friends or going to your family. I'm not saying don't rely on your friends and family for support, but you gotta understand that their opinions of you might be somewhat biased. Here's a great example.  I spent all the money on drugs, they would side with me, right? I was drunk at my son's birthday party, they would side with me. Like, you see what I mean? So it's not always good to have your friends and family members as the one that you're relying on because they might just be enabling you. When you're working with a therapist on your own, they might say, listen, why did you start that fight? Why did you react the way that you do? No, I don't think it was justified that you yelled at him about this. No, I don't think it was okay that you searched through his phone because 10 years ago, your ex-boyfriend cheated on you. You see what I mean? These are things that you could work on in individual therapy. Now, now, in my experience, what I've seen is, is when both people work on themselves, then coming together for something like couples therapy, then works, all right? Because both of them have been trained through different therapeutic processes to have their own coping skills, their own communication skills to work on some things from their past and now, now they're like next level, okay? So it's like individual therapy is like relationships 101 and then couples therapy is like relationships 102. Is that how college works, Tristan? Sure. Okay, cool, we're on track. I have some sick analogies in case you didn't know. All right? So if you're somebody who is in a relationship, like quit trying to force your partner to go to therapy with you or anything like that, like start doing it on your own. What a lot of people get hung up on is, they think that the relationship can't get better until both people are doing it. Your relationship might get better just because you are working on you. Now, will it always work out? No, not always. You might go to therapy and realize that you are in a terrible relationship. That's a possibility as well. But if you're in one of these relationships, there is nothing holding you back from working on yourself. All right? But anyways, I would love to hear from you down in the comments below. Like I said, I'm an advocate for individual therapy. Someone like my mom is big on like couples therapy. Let me know down in the comments below. Like have you tried couples therapy? Do you find individual therapy more beneficial? Do you get more clarity? Whatever you got, let's share our experiences down below in the comments, okay? Anyways, that's all I got for this video. If you liked this video, please give it a thumbs up. If you're new, make sure you subscribe and ring that notification bell because I make a ton of video. And a huge, huge, huge thank you to everybody supporting the channel over on Patreon. You are all amazing. And remember, go check out the new posts on Patreon in case I don't have you on the credits list or anything else, let me know, all right? And if you wanna check out Patreon, click the top right there. Thanks so much for watching. I'll see you next time.


Technical difficulties with slides, so I'm going to go out without the slides. So you can enjoy this. This is Grand Rapids. This is where I hail from. And welcome. So my name is Josh Francisco. The title of this talk is Hitting the Pavement with Python. And just a little bit about myself first before I get into it. I work for a company called Blue Midora. We write monitoring solutions for enterprise-y things, mostly VMware stuff, but we're branching out. We have like a database monitoring service as well. So I got my start in Python by just kind of necessity. Started working with like bash grips and stuff like that when I started working at Blue Midora a lot. So naturally, as you evolve from scripting, you move on to like real languages, a lot more robust, things like that. So I started out as an intern, then I was a QA engineer for a while, and now I'm a DevOps. So Python is becoming more and more a part of my everyday life, basically. And that's not just at work, that's at home too. So the project I'm presenting to you guys is a personal project of mine that's all done in my free time. So the only reason I'm here is a friend of mine just was like, hey, give this talk at the local Python users group. And so I did that, and he's like, you should submit it to PyOhio, and I'm here. So I did not actually expect for the talk to even get accepted, so thank you. The project started originally in Ruby. That was an experience. So after experiencing Ruby, my friend Dan, he's in the audience, was like, hey, you should try Python, and Python just worked for me. Something about writing Python was a lot easier for me to wrap my head around, because I don't have a software background. I was a machinist before I got into Blue Midora. So I was in manufacturing and things like that. So it was a lot easier for my machinist brain to take in Python than it was to take on whatever Ruby is. So today actually marks the public release of my project, so you guys can check it out. There is unfortunately a little bit of hardware dependency because of the nature of what I'm doing, but so this is an aftermarket engine management controller. So if you modify engines up to a certain point, the factory computer can no longer compensate for what that is doing. So eventually it makes sense to move to something more robust. Some controllers you can reprogram, and that's fine. These controllers are unique in that they're very generic, so I can apply this same controller to different engines of makes and models, cylinder, configurations, everything. So what that means is I have the same set of tools and approaches to every single project I do with this. So sort of the open sourcey, Linuxy version of fuel injection. The factory application is in its own right very good to interact with it and do tuning and everything like that. Great application. There's a paid for version that unlocks more features and can do more of the things that I'm doing, but it's still all just communicating with it through the serial bus. So if you can figure out how to talk to it over the serial bus, you can do all the other things that you couldn't normally do without buying the software, which it's worth buying it and all right, but where I'm going with this is the factory tools logging is not very good. It's not very fast and it outputs to a tab delimited text file and you can't really do a lot with that in real time because you'd be trying to read from a file while it's being written to constantly and that just smells bad no matter how you look at it. The application is also this big heavy Java application, which is great because I can run that application on Linux. It's really cool that there's a tool like that that is completely cross-platform, Windows, OSX, Linux, and you can tune your engine on any of those. So engine management controllers are pretty cool little devices. They're actually more akin to an oscilloscope. They measure all these sensors and equipment on the machine operating in real time and we're used to in Python and Webland dealing with millisecond latencies. My code is still operating in that realm of speed, but the controller itself is operating in micro and nanoseconds as far as how it's looking at the engine. It's very, very high speed. So the closer we can get down to that micro and nanosecond range as far as monitoring, we can get a lot more resolution out of our data. Eventually, you just get too much, right, but I digress, so wake up. So why you want to gather data like this is it serves as an objective tool for making changes, right? You make a change, you can see that change, how it's reflected in either gas mileage or performance or whatever thing that you want. So I focus on taking all that data, gathering it and stuffing it into a database so I can look at it and do stuff with it later on because when you're driving a car, you can't really be looking at all this data coming in real time because you'll run into things. So it's a good idea to save it. You can also look and compare a pass at a drag strip. You can compare multiple passes throughout the day and you can see, oh, as the air temperature drops, the car starts to get faster from these sort of things. Now you can see that in your time slip at the drag strip, but what you'll be able to see, and I'll show you here in a second, is you get a lot more resolution. You can see where you are gaining the most performance in a specific spot. And maybe you gained overall, but maybe the engine was actually accelerating slower at a certain point, but your time slip won't reflect that 500 RPM window, right? So Pi EFI is the name of my program. It's a high speed data collection display and analytics platform. So this right here is actual real time data coming from this controller on the desk right now. It's coming in 28 times per second right now. Depending on some parameters and things like that, you can up the collection rate even faster. Hi. No, this, okay. So we'll talk a little bit about my rig here. Yeah, no, that's good. So the controller needs to see an engine doing something in order to generate like RPM data, right? Because that's rotations per minute. So I don't have an engine running on the table, obviously, because we'd all be dying of carbon monoxide poisoning. One sec here. So what I have is an Arduino that is a signal generator basically. So it's generating a square wave signal that represents what an engine would be outputting, right? So that, once you configure it with the tuning programs, because there's different trigger wheels that determine position on the crankshaft and things like that. So you could have a single blip for every rotation, right? That would make sense. Some of these trigger wheels have like 32 teeth on them. And with a square wave signal, that's not 32 measurements, that's 64 measurements because of the up and down every single time. So you can get tons and tons of resolutions. So what that means is the computer can see if the engine's accelerating or decelerating in a lot more precise of a manner. That's kind of outside the scope of this talk a little bit, but still interesting, right? So one of the reasons I ended up using Redis for all this is pure speed. When I first started writing this, I was using Postgrass because everyone uses Postgrass. But what I found out is in my main collection loop right here, it's just over and over when I was writing to Postgrass, that interaction was taking long enough, it was affecting my collection rate by like five or ten times per second. So I was having to do async to fire the data off somewhere else, let Postgrass actually put it in the database. So once I actually kind of fell into Redis on accident, Blue Midora was writing a monitoring product for Redis at the time. So I got to use it and I was like, this is awesome. And it actually happens to be way, way, way easier to use than SQL. It's really, really easy command line, right?  You don't have to use the Redis CLI or anything like that if you don't want to. So how many of you are familiar with NoSQL stuff at all? A few? Okay, so NoSQL data stores, it's usually like key value kind of stuff. Redis happens to translate really well to how you would normally code in Python. So you can, you're used to working with key value pairs all the time, that's bread and butter stuff. So it just translates really nicely into Redis. You're not having to write select statements and things like that. But the downside to that is you don't get some of the relationship, the relational goodies. But you just have to create that relational stuff on your own. So as collections are coming in, I basically store them in a, what's called a Redis hash. So the first collection comes in that is saved into a Redis key, which is different from your normal key value pairs. So and then, so Redis key would be like collection, right? I don't have it displayed right here, but it's similar to this, right? So this would be your Redis key and then spot one on the hash for your first collection and then the result. And then the second one and so on over and over and over and that constantly increments. And as you can see, you don't have an idea of time, of when that came in, right? So what you do is at the same time that you're putting that data in, you write to a separate list in Redis with that index, one, two, three, four, and the time that it happened. So now, if I need to get like 60 seconds, the last 60 seconds worth of data, I query something else that gives me the list of indexes and I can pull those indexes out of the main hash. So make sure that stays awake. Where are my slides? So yeah, Redis was a big godsend that really enabled this to be as fast as it is. Right now, what you're seeing again from Redis is a pub sub mechanism in Redis. So if you can kind of think of it as chat rooms, but they're one directional. So this collector process here, well, actually I'll back up a little bit. How many of you know what Tmux is? This is Tmux. So everything is sort of microservices architecture in here.  So Tmux works really great for what I'm doing here. Where was I going? Where was I? I forgot. Redis pub sub. Yes, pub sub, pub sub, yes, OK. So as a collection comes in, I save it and I index it and I do all those things. And then I also publish it to the Redis pub sub channel, if you will. So then this is the display side, and that just receives that pub sub message. So I'm not actually going into the database and checking for the latest record. It's just getting it sent to it automatically. So I'm sure you guys are thinking of like, oh, that's really cool. There's lots of little inter-process communication things you can do with that. And there is. So it's a really simple mechanism. It's not too way, though. So you can't confirm a result like out of the box. I can't say that, oh, yeah, I got that back. You'd have to set up another pub sub in the other direction and write your own sort of handling for that, right? So the display side of this, as you notice, I kind of went for like a retro sort of look, right? Everything's done all completely in shell and Python. There's no other crazy display libraries or anything like that. The colorization stuff, I wrote all that. That's in the repo. I'll pull that up, too. And that is basically, there's a list of colors. And depending on the range, I just picked the one at the top or the bottom or in the middle. And you set the range, as you can see down here. This is sort of defining what a dashboard is. So this right here is health. So we got battery voltage, coolant temp, and we got another coolant right here. So this is actually three columns. It just sort of looks like two. So this is voltage right now. So 14.7 volts. I'm not handling decimals very well in this yet, but you get the idea. So the bar mechanism was kind of fun to write. So check this out. It reacts very fast. You guys can come check this out in a minute and play with it. But, and I also have a little potentiometer up here. And it's very responsive. It's instant. There's very little latency as far as what is actually happening to display time on the screen. I haven't figured out a way to accurately measure it. So if anyone has ideas on that, that'd be great. It'd just be nice to know what sort of latency I was seeing on the screen, how old that data was. Because right now, I can't tell. But it's still very, very quick. So do you guys have any questions? I kind of just wanted to cruise through my spiel really quick and see if you guys had questions or other ideas and stuff for me. Yeah, go ahead. Okay, yeah, that would probably work. So he suggested to have a button and drop something on it and then have a camera to measure that latency. That's not a bad approach. Anyone else got questions? So this is all print statements. This is all print statements. And then I do the ANSI escape sequences to jump in and out of colors and things like that. But this is all just print statements. There's no crazy colorization library here. So I'll tell you a little bit of a trick on how I got it to do this. Cuz it looks really cool, doesn't it? So what I do is I print two lines. So I print this line and then new line. And then I print this line. But then I tell the cursor just to return back to the beginning. So you can see the cursor here. So it gives the illusion that this is static at the bottom. But it's actually just printing over it every single time. Yeah, so right now we're doing it 30 times per second. My system I have at home does it 45 times per second. Thank you, yeah. Yeah, it's just, it's all print statements. It's all very core basic Python. I'm only using the Redis library, trying to think what else.  It's some sort of cruel joke that they call it curses. It really is, for some things it's probably better, to be honest. It does handle drawing of basic boxes and things like that a lot better. But one day it just clicked to me, the stuff I wanted to do with it, I could do with Tmux, you know what I mean? Which gives me the boxes and the isolation which I would have had to do in curses. And it'd be all weird and abstract. For this, one of the libraries I'm using is Tmux P, which is a Python Tmux wrapper. So you can figure this dashboard with a YAML, which I can show you guys. Well, this is the dashboard config YAML. I'll cover this real quick. So in Redis there's a concept of a sorted set. So this would be the score of the dashboard. And then this would be the actual dashboard dashboard string. So I just pull this into Python, split. I expect it to be the same number of elements every single time. It's really simple stuff. But I'll show you the Tmux stuff. So yeah, this is Tmux P, really easy wrapper for Tmux. It's, you can see what it's doing right there. So for my command structure, I'm using this library called PythonFire. It's a pretty crazy library. It lets you expose a class and its methods to the CLI directly. Sorry, we're gonna pivot here for a second. So can you, you guys can't really see that, can you? Yeah, all right, that font's so easy to read, right? So this is what Fire does. So this is my pipeline class. The initial bootstrapping into my CLI. So all I do is expose, I pass this class into Fire and it just takes care of this for me. So these are the methods within Pipeline. So then if I go to the next one, these are the methods for that method, which that method dash just returns a class. Nope, nope, it does it. Automatic, super magic.  There's no guesswork. I don't have to deal with parsing arguments ever. It just does it for you. It's really awesome. If anyone does any CLI stuff, I highly recommend it. Yep, PythonFire, yep. Google wrote it actually, super, super handy, super, super handy. It's one of my bread and butter ones. Yeah, so that would kind of be up to you how you want to get the data to the dashboard part, right? So from an Arduino, you have a couple different routes with an Arduino. I'm using my Arduino as a signal generator for the engine control module. I'm not talking to the Arduino or getting data from it. It's just there, yes. So you can pull up a serial interface with an Arduino, though. So you can gather data from an Arduino that way. So it'd be the same kind of thing that I'm doing. Just you'd have to code yourself around the Arduino's parameters, right? So that's one option. Otherwise, if it's something more like a Raspberry Pi, the way my dashboard stuff is working, the way this stuff is working, these are just key value pairs that I'm passing into this display process. So this dashboard config right here, key, what I want it to print as, that's why it says temp here, not coolant, because coolant is too long. And then shiny is the display parameter. And these are ranges and things like that. And then anyone recognize these guys? What are they? They're from the AML, but more specifically, anyone? It's a Python thing. Yeah, it's Python string formatting. So I'm just plopping that in to do the string formatting, and it justifies it left or right or center. Yeah. I'm lazy. I don't need to write justification. They've already taken care of it. So yeah, what else can we talk about? So serial data is fun to deal with. What's really interesting about this controller is I can send it different commands and get different results back. I'm not doing any of that yet. So this controller, I send it the letter A. That's all I send it. And then it sends me back 212 bytes of just data. It's not JSON. It's not ready to go. It's not pretty. But I know what that result looks like. Every single time. So this is the configuration for that byte string. So this is the position. Now, so these are set bits, like on-off switches. I'm just collecting them as a whole as an unsigned 8-bit integer. So if you didn't have this, you would have literally no idea what you were looking at. I mean, you could start guessing. Because there's only six possibilities for the orientation as far as signed or unsigned, 8, 16, or 32 bits. Question. So this is actually defined by the controller's firmware. So this is the actual config from the controller. And I just parsed it in and did useful stuff with it. So yes. So it's pretty standardized. Now, I can reprogram the controller so that the a command will send back a different arrangement of this. So I coded into this configuration on purpose, because I wanted it to be future-proof for if they update the firmware and change this, I wanted to be able to use it. So this, has anyone dealt with byte streams at all in Python? Not a lot.  But so you use pack and unpack to do that. You'll have to look into it. But basically, I have to build a character string that represents the orientation of these signed and unsigned 8, 16, and 32-bit integers to unpack the 212 bytes. And then on top of it, because they are forward thinking and serial communications isn't perfect and it's susceptible to noise and things like that, especially in an automotive environment, cars produce tons of electromagnetic interference, tons and tons of it. I don't know if you guys have ever been in a car and the radio has a weird buzz that seems to be attached to the engine? That's what you're hearing, is electromagnetic interference. So there's a CRC32 psycho-redundancy check that you can verify that you did indeed get a good packet back, basically. So I checked that. I think the only times I haven't gotten one back is when I didn't know what I was doing yet. But we were testing this on this laptop here. And I had never run it on this laptop until last night. And I was getting some weird controller problems and things like that, whereas this machine's fine for some reason. So I think it has something to do with either the state of the serial device when it's come up or the Linux kernels or something like that. How are we doing on time? Anyone else? What else we got? Yeah, so his statement was, how would you handle logging to an outside Redis? For that, I would probably want to have something to gather up a bunch of it and just quickly dump it because I don't think the internet would handle this rate of exchange. There's quite a bit of latency, comparatively speaking, sending it over the internet, making sure the request got sent, and then sending another one back to back. And I guess you could do that asynchronously, right? But if that was in a blocking loop, you probably couldn't hit 40 or 50 times per second on a normal internet connection, right? That's kind of my thinking. So to save it to the cloud or something, I'd probably just have something to dump it in a larger packet to another Redis database or maybe Postgres or something, right? Something more suited for archiving. Yeah. So I let this run for eight hours overnight, and it was like two or three gigabytes of memory. I mean, it's trivial. It's 212 bytes. And I'm not even being smart with the data I'm saving. I'm saving the raw data that I get back. So this is what the raw data looks like when it comes back. It's not a byte string Python when I printed this, converted it to whatever it wanted to. But so I'm saving that and then this along with it, which is that just deconstructed into human readable form. I'm not even being smart about how I'm saving it. Yeah, I mean, there's even some additional things you can do with Redis. And different data types that you could probably get it down to storing even less. Because right now, there's certain parameters that are just always like zero. So you're saving 0, 0, 0, 0, 0, 0. Well, if you could dedupe that, you could save even more space. So if I extracted this out and did I don't know what you'd call it a delta situation, I could save even more space. What's that use? Oh, yeah. So he said I could use Zlib to compress it. I can do that in Redis. That is a possibility. Redis will just do that for you if you want it to. There's a CPU hit. I haven't been worried about space yet, so I haven't looked into these possibilities. Yeah. Yeah, so let's check that out. Well, it's not running now. That's not going to work. So granted, this is a quad core MacBook, but CPU usage is still very, very reasonable. Under around 10%, let's just say. I'm not sure how much of that is top and whatnot. But yeah, yeah. And that was another reason what he was saying is if you cut the display, you could save even more CPU. And that was another reason I went with sort of the microservice sort of architecture is CPU performance and things like that. So when it is in a car, I could have a pie using almost no electricity just running and collecting, and I don't have to have full blown hardware in a car. Because the car environment is a really tricky place to put a computer, and it's not just space considerations. You have to think about temperature swings. We're Midwesterners, so it gets below freezing every single year, and it gets pretty hot in the summer. You have a really wide range of temperature fluctuations to deal with, and average consumer hardware isn't built to handle that range. Then you also have vibration. Your Sunday driver car is nice and comfy and doesn't have a lot of vibration, but a high-reving Honda that goes to 8,000 RPM that's singing, the whole car is vibrating. And that does fatigue electronics. I mean, that is a real thing. The boards can vibrate, and the traces can come apart over long times. Yeah, no. So his observation was, does the display limit my collection rate? Because they're decoupled, and I'm using Redis Pub-Sub. If the display, and for some reason, can't catch up, what will happen is the Pub-Sub queue will just grow, while the collection is still going as fast as possible. Yeah. What's going on? Yeah, so the light version of the product collected at 15 times per second. And in my lab setup at home, I'm getting close to 50. And here I'm doing about 30. So I'm still, in a less than ideal situation, I'm still doubling what I had with the factory tool. And it's way more flexible, uses less resources and everything. Yes. Yeah, I'll put the slides up on PyOhio and stuff like that, so you guys can go through and absorb them. I had some interesting metrics around the speed of Redis. So off the top of my head, setting a key in Redis takes three microseconds. And getting it takes one microsecond. So I mean, there was little tidbits like that in there, but I've covered most of the stuff I wanted to get to. Yeah. Yes. Yeah, so eventually, I could code some logic into this and say, I don't know exactly what the situation would be, but I could tell the controller to do something. Perhaps make tuning adjustments, fine adjustments, and things like that. That is a very real possibility. It's just a matter of communicating with it and telling it to do what you need it to. Yeah, anything else? Yeah, check out the repo. Can't show it on the screen, because my slides are busted. But if you just search PyEFI on GitHub, PyEFI, it'll come up. There's probably little sections of my code that would be useful to just about everyone in this room.  Like the display side of this could easily be retrofitted to, like this could be ping times or some sort of server health or something. And you could just use the colorization library that I've got here. Or it could be something you hooked into an Arduino and you're getting a temperature from a room and you're just updating it every 10 or 15 seconds. And you could just stream that to here. You can see like this. I didn't really touch on this, but this dashboard configuration updates live from here. So the configuration for this is stored in Redis. Every time I get a new request in on the Pub sub channel, I check the configuration. I pull that down and update this. So if I remove one of these, it just drops out. Or if I add one, it just appears. And because it's in a sorted set, I can put something sandwiched in between here if I want to. So again, something that's probably useful to just about everyone in here. Anybody else? Time's up. So if you guys want to check this out up here for a minute, you can touch it and look at it. Feel free. I'm going to hang out for a few minutes, but we've got a long ride home. So thank you for your time.


Hey gamers realistic gaming here today. We're gonna be playing route 66 and roblox and oh, it's not like route 66 from the movie cars That's like route 66 like some camping adventure.  Oh my god. Look at all that crowd chasing after me. They're bullying me you guys Somebody help me. I'm being bullied in roblox Okay, so game app Okay, so this should be awesome loading assets 10 out of 10 Oh It seems like we're on route 66 headed over there or something Okay, what is this? Gas empty How can you run out of gas man? Come on? This is not logical starting game. All right, so we got bookmarks by Little mega leo luna star ricks ronald timeness and unicorn with us. All right. I'd be favorite youtuber Thank you guys you guys rock. All right, so let's check this place out. That looks pretty cool That's a motel route 66 motel and we're about to crash in this place Like literally we almost crashed here because we ran out of gasoline Like how can you run out of gas? Hey guys the bus ran out of gas. Yeah, we saw that We're still far away from the nearest gas station. Oh my god. Okay. Oh we can go in here My god, this place is looking cool so far. Let's sleep at this motel for tonight Well, we have no other option man Okay, everyone, please follow me. Where is he going? Right wait, where's the guy at? There's too many people around. I can't find him I don't know where he went. I think he's over here our reception. Oh there he is He's the only one with the giant backpack on his back Okay, so we're gonna oh my god. Wait, that looks like the grandma from the from the sleepover one Welcome to the motel road 66 Hello missy. How's it going? Our bus ran out of gas. We would like to book all the rooms. Oh my god This guy must have money man. All right. You can pay it later. All right, so she wants us to pay later Remember that we have free food in the snack bar All right, so let's go free food equals the best time Okay, anyways, it's getting late. Have a great night guys. Okay, so I don't know about you guys But I'm gonna go to the snack bar because she said it was free And free is the best thing you can get wait. Where's the snack bar?  No, I want to eat man. Everyone take a room and sleep there. Wait Let me get a chance burger. You can't get a chance burger everybody came over here See you all tomorrow. All right go in the room and sleep there. All right you guys I was feeling a little hungry Dad come back boy. I'm not your dad I'm just a youtuber. Okay. Okay. I'm gonna sleep out about y'all Okay time to sleep Guys, come on. Let me take that. Oh my god There's so many people in here. Okay, so now it's uh, it's no longer root 66 Let's sleep over again all over because we're having to sleep over in here So let's get late in this baby right here. Come on you guys. Let's get lit. Oh my god. Okay, this This is pretty awesome. It's pure madness All right, youtube real you say you got a game pass for new What? Oh my god, okay. That was definitely a scream. What just happened. I don't know man. Oh my god. What's going on? I hear a car alarm Guys The old lady. Oh my god. So they just ripped her hair off ouch, okay. Is that the recessionist hair? Oh the power went out Good thing about it. Oh What is that thing? What? So that's the end ladies and gentlemen thank you guys for watching and I'll see you in the next one No, it didn't let me respond All right, so I tried to respond, but it wouldn't let me click the response. So now we have to rejoin again All right, ladies and gentlemen what went back to this uh before the wuff of taxes Because that clearly was a wuff when I turned around and he got me right away. Okay, so this time we'll be prepared Unlike last time I really got me off guard So let's oh my god. We can't leave the rooms anymore. Okay, so apparently we're supposed to be asleep Okay, here it comes again. Oh my god And there goes the scream Poor old lady man. She was just a receptionist. What just happened girl. Do you not see this the pile of hair right here?  I'm gonna give myself some space because that wuff was very quick Okay, so where do we run off to either way like we just run away Oh my god, here it comes everybody Oh, it spawns on top of the bus.  Okay. He's pretty slow Okay, we'll be oh yeah because I bought the speed shoes Which added lightning to my feet. It looks pretty cool. Oh my god. He's coming this way Don't you dare bring him this way. Oh like a power generator Okay, nice looking out rainbow. Okay. Oh my Okay, oh, what is this? Oh, it's like a lasso Okay, nice. We need to turn the power back on. Okay, so she turned the power back on nice Well, let's try to sleep again. Why would we try to go to sleep again, man? Okay, that was quick All right, man. What's up, mr. Bacon? Okay, good gracious. What happened? Dude, okay. I heard the werewolf. I heard the werewolf tonight. I hope everyone is doing all right. Oh my god Thanks, man. All right, so he heard the werewolf. That's good. We need to stop the werewolf He could not be old lady Wait, why would he kidnap her? I imagine he would like of eating her or something Okay, but first let's go get your breakfast at the snack bar. All right, so first before we go save somebody We're gonna have breakfast because breakfast is the most important meal of the day. Okay It's okay. Oh my god. Okay the snack bar is over here. Yo, what's up my guy? Can I get a what do you have in the menu? There's a menu here. So what am I supposed to order, huh? Okay, I'll just take it for myself Oh, she's cooking up some french fries. All right. Hey, welcome to the snack bar All right What's up, man? You're gonna feed all of us here for today. I made cheeseburgers Nice, you can never go wrong with the cheeseburger. Yes, that's perfect Okay, here you go Thank you, man. Hopefully they're not rotten Because typically like in the camping game the food was rotten Okay, so hopefully nothing happens to here to us here. I mean These burgers better be safe Okay, so let's get out of here y'all now. We can go save the old lady Because we had a breakfast. Okay. We're stuck in here. How do you guys like the cheeseburgers? What I mean? I can't taste them, but they look all right. They look pretty good. I find them a little bit cold Um, sir, I don't feel so good. Oh my god. You see that's what we're talking about I think I'm gonna pass out. Oh my god This dude's about to pass out. Yo, you good? Oh Oh my god. He he didn't pass out. He shrunk on the ground. Oh my god That was cute passed out. Oh Uh-huh. I got my flashlight, man What? Oh my god, what was that? We need to find uh, lilo cute. I can't pronounce that Oh my god, can we have 40 seconds to find this dude? My god, that jumpscare got me a quite a bit.  It was unexpected, man Check the restrooms guys. He might be in the restrooms, too Okay, what about here? No, you can't go in there I'm back Wait, what he disappeared Wait, dude, what in the world just happened here? They took my boy, man. What do you mean? I don't know but all of this is scary I'm just gonna hop on the bus and get out of here. I want out of this place Yo, give me a boost, man. I could get down through the top. Okay, everyone. Let's get together in the snack bar Why did we come back here? This is where we got attacked. I'm starting to get tired of this Oh my god, okay We need to find a way to end all of this adventure, but then there's no adventure, man Let's make a plan and wrap my boy. What's the plan everybody? But sir, we are stuck here Um, we ran out of gas. So what do you want us to do? Exactly, man. What if we just make a run for it? The first one to pass out in the desert loses To be honest, I just figured out the hole where oh my god, not again Oh guys, there's something going on. What? What? You guys saw that, right? While the chevron kidnapped. No, but seriously, what should we do now? I don't know. The weather reflects similar for some reason Dude, there was like the there's like some fog over here going on because I'm sure it's that weird receptionist No way. What is going on? Okay, there's uh footprints right here The werewolf left some footprints. Let's follow them What if all this is just a giant scam, man? It's the people that do this to us Almost that work at that motel here at the motel. Okay. What is that? It's broken down.  What is all of this? I have no idea, man. Help me. I'm stuck. What are you stuck inside of there? Uh-oh guys, I need you to get back to the top quick. Oh my god, okay now here comes the knobby I suppose Okay, so be careful.  Okay, be careful right here Oh god, please. No. Oh my god. Okay. We got it. We got it, man Oh, no another time. You know, so are you kidding me? Okay, we got it Let's go here here here Oh I just died to like some gas. You gotta be kidding. You free respawn. I have zero free respawns Yes, I'll just buy a respawn, man I hope you yeah, I died to the trap, man. Guys, I knew okay. Okay, so I died and now we up here What does that do? It's like some potion. Oh, he's right here in the cage Oh my god. Okay. We need to help this dude Somebody break him out of the cage Wait for your teammates to uh, finish the course and rescue the chef Okay, I think Oliver's made it already though Say a word reel I'm gonna say word. Okay. I'll say word Okay, thank you so much. No problem, dude Right, so we got that guy free. Let's take the healing potion to cure the werewolf that captured me Okay, so you wasted all my robux for me. Thanks, man. I feel special. Yeah Okay, so let's get out of here, man. Take that potion and let's zoom out of here my boy Okay, I'm going to lure the pink thigh werewolf here to cure her with the potion Okay, so the lady turns into the werewolf Yo chill man, we need to hide. Oh my god. It's coming I'm gonna hide back here guys. I don't not want to get eaten Because I am a waffle Oh my god, hey you take this. Oh Oh, he legit cured her what just happened.  Do you not know what's going on? You turn into a werewolf at night How does she not have a clue man? We saved you you were a werewolf before but now you're one of ours. Well, now you're just human. That's what he means Oh my really I feel so bad.  I'm pretty sure there's still another werewolf running around What there's more werewolves How many werewolves are we gonna face out here? Okay, I know that there are some parts to make a trap neighboring the motel Okay, so we're gonna trap all the werewolves, I guess That's perfect guys. It's time to find all the parts to make that trap. Okay, so we got the cage over there I don't know if that's one thing that we're gonna use Find the robe uh ram nails me and some cage parts in the desert outside the motel Oh wait, I see something over here. What is that? Okay, so I got a rim. I don't know what we need a rim for But that's used for a car or maybe to like pull something, you know put the string Ah, you know whatever let's collect the stuff three items remaining. All right, finally we found the last item Oh my god, that took forever.  Well, that looks good. Um, it certainly does look like a good trap And hopefully it works. Let's go to sleep and wait. Okay, so now we're gonna wait to see if we actually trap another werewolf Okay, where's the trap? Can we see it? Oh, you can't see it from here Come on. Oh, I hear We caught something. Oh, it's in there. Oh my god. They legit caught the wolf Okay, nice guys. The plan seemed to work after all Oh my god. He's so vicious Look at this dude Guys, we got him. I wouldn't get so close. What if it's like a trap, you know, they're just luring us Okay, what should we do with this werewolf? Uh, get wrecked We got him boys. All right. Nice guys. Okay.  We saved him. What? He was a werewolf. What just happened?  What do you mean? I felt like I was in a weird dream Well, that definitely was not a dream You were the werewolf, bro An old lady saving bro Okay, that's crazy. Yeah, it definitely is.  Okay, I wouldn't say the place is haunted Maybe the guys like they had a curse or something on them Then off we go. Oh, we're leaving on the train this time That's pretty neat. All right, so that's it That was a pretty cool, uh road trip. I guess that's really what the name of the game It's called like because we practically did take a road trip Okay, and we made it out Safe and sound coming soon route 66 to or 662 Not just getting to route 66 to more quality more fun more high quality and better story all for free But I mean every game on roblox is free. So I don't know what it means by that But I guess that's it. We made it out Let's go. All right, you guys. That was pretty awesome. It was well made The two thumbs up for this game Wait, where my thumbs at there you go. All right. Good job a star games production All right, you guys. Well, thank you guys for watching. Thank you guys for the amazing support If you guys enjoyed the video, make sure to slap the like button If you're new to the channel, make sure to subscribe and turn that notification bell on And I will see you guys really didn't kick me in the next one Bye


Alright, we got a lot of players in this lobby at least You love to see it. I'll just quickly take this epic chess and then go fight these guys Actually What am I doing man that get so bad? Horrible for me. I need to get my fish man Another third party dude. What is going on today, bro? It's actually insane Well, I was too clean.   I need some levels now.  Oh my god. What is this mean? I play a lovely man. It's like perma fights. What am I doing man?   It's ghetto, bro. I hit so many spells and they didn't hit. This is a gas Lord dude the start of this game was just like Actually unreal. Oh Got a launch pad for me. At least we got some XP off that. That's nice another guy. How did I miss that X? How did I hit? How did I miss that X dude? What is wrong with me man? Nothing hits this guy here comes another guy actually tilted. What dude? What is this?   Literally. I don't know if we're getting stream sniped or what but there's been players running here the whole game and Like non-stop. Oh, I want the hog actually the level six. Where did he go?  I think the light level 10 was the last guy. We've got a level six. Yeah, it's over To be fair man, we picked we killed half the lobby like Well done mate you got you made it to the end with your gas Lord antics brother Bless you Dude somehow only 2.5 K rep from that. I must have killed 10 people that game, right?


Hello, dear learner friends, welcome to this video session on concept of subnetting and super netting related to the network layer. Myself, Mr. Vipul Kondekar from Walchand Institute of Technology, Sholapur. So these are the learning outcomes of this video. So you will understand how we can separate out the network ID and host ID with the help of network mask and you will be able to understand, differentiate between subnetting and super netting. These are the contents of this video. So you all know that when you have IP address representation, especially for IPv4. So the IP address is divided into two parts. Some part of the IP address is representing the address of the network while remaining part is representing the address of the host within that particular network. Now given this kind of differentiator between the net ID and host ID for different classes class A, class B and class C, how we will be able to separate out the network ID from host ID given from the given IP address. Now one very simple concept is use, the concept is masking. Now what is mask? The given IP address, concept of masking is given IP address is ANDed with a mask. As IP address is of 32 bits, your mask will be also of 32 bits. And then the result will be the beginning address or it will be the result will be address of the network. Now we know that Boolean operation performed by using the logical AND gate. If address bit is 1 and mask bit is 1, if mask bit is 1 more specifically whatever may the address bit, if address bit is 1 result will be 1, if address bit is 0 result will be 0 means address bit will be available to the output as it is. If mask bit is 1 and if mask bit is 0 then whatever may be the address bit what will be the result will be 0. Now in reference with the earlier diagram, so these can be the standard or default mask for class A, class B and class C. Because in class A I know that the network ID is present in the first byte. So all the first byte bits are made 1 in the mask and all other bits are made 0. So this will result into a mask called as <IP_ADDRESS>, so this is the default mask, these are the default mask for class full IP representation for class A, class B and class C.  Now you look at this example, here you are finding one network but this network has got two levels of hierarchy. So for rest of the internet is getting connected to this network via this router R1 and this network has got a network ID 141.14, so this is the network ID part and remaining two bytes will be representing the host ID. So host ID can take host ID from <IP_ADDRESS> up to it is possible <IP_ADDRESS> because 255.255 belong to spatial IP address, fine. So there are two levels, so network ID and host ID is there but then what is the concept of subnetting? To use the IP addresses efficiently in class full IP representation, they come up with the solution of going for the subnetting. So in subnetting what is done, the same network here is divided into four different subnets and when you do subnetting, your host ID part gets divided into again two parts. Some part of the host ID will be representing the ID of the subnet and remaining bits will be representing the host ID part. So if you look at this, so this is a three level hierarchy where network has got network has got a network ID, that network is divided into subnets, each subnet has got subnetwork ID and then within the network, within that particular subnetwork, there are different hosts and those hosts will have host ID part. So this is what is the concept of subnetting where you are dividing the network into group of hosts called as subnets now. So this subnetting when you are using, so you are using hierarchical addressing. So it's like analogous to we use for the telephone system where you will be having telephone system with the area code first then the exchange code maybe STD code and then actual number okay or after that then maybe some extension number also in some cases. So this is a hierarchy. So what will happen is if you put an area code like if you put an area code or like country code, so the network will understand it the destination belongs to a particular country. So within that particular country which city, within that city which connection. So it will be easy to forward or to route the packet over the network when you use hierarchical addressing and then this three level of hierarchy is used when you are doing subnetting. Without subnetting the IP address will have two level of hierarchy. Now so as we have discussed the subnet the IP layer will IP address will have three layers one will be the network part then subnetwork part and then within the subnetwork what is the host ID part. So as this subnetting will result into improving the efficiency by not consuming the entire address space. So the problem with the classful addressing is wastage of IP addresses. That can be improved if you go for having subnetting within the network as well this subnetting will reduce the complexity of the router also. Now let us try to understand how exactly we get the addresses and subnet address and host ID part separated. Now just think of this IP address <IP_ADDRESS>. So without subnetting it has two parts network ID this part is representing network ID why you are concluding that this is network ID because as this first byte is 141 you come to know that this address belongs to class B type of IP address. So in class B first two bytes will be representing first two decimal numbers will be representing the network ID part so remaining two will be host ID part. But then what I can do is I can have here in class B how many hosts I can have I can have host 2 raise to 16 65,534 number of hosts are possible. Now what I do is those hosts ID part I divide into two parts. So I divide that address range into subnetworks and then I am getting one subnet ID like <IP_ADDRESS> and if it is with subnetting then this part may be representing the subnet ID. So this is the three level hierarchy in the subnetting. Now exactly how we get the network address when you are having the mask and subnet mask let us try to understand with the help of this example. So as we have seen just now seen the concept of masking what we do in the masking is the IP address is ended with the default mask and that will result into the network address. So let us say this is the IP address and without submitting how I can get the network address is as this is the class B type of class B type of IP address I will use this default mask and then I will be able to separate out the network ID part. But now if my address is <IP_ADDRESS> and this is the subnet mask I am using. So this is the subnet mask I am using. So with the subnet mask you will be able to separate out the IP address of the network ID part of the IP address and that will be you can represent this in the binary you can do that ending operation and that will result into <IP_ADDRESS>. So this is how you will be able to identify the network ID part. So this is how subnet mask is used to separate out network ID and host ID. Now comparison if you compare this with the default mask this was the default mask and this is the subnet mask. So what is happening here if you are using this as the subnet mask <IP_ADDRESS> in that case what you are doing is you are having these three bits representing the subnet ID. Means you can have these three bits can take eight different values you can have eight different subnetwares instead of having only one network what you can do is you can divide this network into eight different subnetwares each subnetwork will have its own subnet ID and within the subnetwork you will have means 13 bits are remaining for the host ID means 2 raised to 13 different hosts you can have within each subnetwork. So this subnet mask is used to separate out the host ID and network ID part though the subnetting is used. Now just concentrate on this example suppose it in subnetting what you do is you divide a big network into smaller networks and each network will be assigned network ID and because of that what will happen is the effective network ID part will increase effective network ID part will increase where network ID part will be summation of network ID without subnetting plus the address of the subnet how many bits you are using for the subnet. So in case of subnetting what we do is we are we need the address of the subnet as well subnet mask and using that subnet mask you will find the address effective width of the subnet and that will be width of the subnet or length of the subnet without subnetting plus log to the base 2 of s where s is representing number of subnets. So this will get added means network ID part will increase because subnet part is getting subnet ID part is getting added to it but exactly oppose it in supernetting what happens is what we do is we try to have collection of different small small network to form a big network that is called as supernetting and if you are doing supernetting what will happen is the length of the supernet will be given by this formula. So this is the difference here the length of the subnet ID gets increase as compared to without subnetting and if you are forming supernet so n supernet will be given by n which is the length of the network ID part original network ID part and then log to the base 2 of c where c is number of class c blocks you are combining to form that supernet. So effectively the network ID part will reduce in case of supernetting. So subnetting is dividing and supernetting is collecting the smaller networks to form a larger network. So this is one example so suppose a company needs 400 horse so what they have done is they have got 2 IP addresses 2 class C IP addresses and then what is done is those 2 addresses are combined to form a supernet address. So what is done is instead of using this these 2 addresses what that company uses is they uses <IP_ADDRESS> slash 23 forming a supernet. So here you find that supernet address in supernet address the network ID part is reduced here originally it was 24 now it has become 23. So this is one example how you can have supernetting where there are different class C networks and those class C networks are combined to form a single supernet work and then this is the comparison of what happens for the mass. So if this is the subnet mass if this is the default mass if you are using subnetting the mass width goes on increasing because you are having that network ID part added subnetwork ID part getting added and in case of supernet the size of the mass reduces. So easily you can understand by looking at this diagram. So these are the references used for this presentation. Thank you.


This video is sponsored by TARO. Stick around till the end to understand how you can become a premium software engineer. JatchiPT has become an oracle for language, but how did we get here? In this series of videos, we'll be talking about the evolution of language models over time. So let's talk history. In 1948, Claude Chen introduced information theory, a way to link language and mathematics. With the English character set, let's generate a sentence one character at a time. And let's say that each character has some equal probability of appearing. We might end up with a sentence that looks like this. Hmm, this doesn't quite look right. Now what if we were to change these probabilities a little bit? And now let's try to generate the sentence one word at a time. Ah, so it looks like these probabilities, these math and numbers, control what characters are being generated. So to make the text generated of higher quality, we need these probabilities to be as accurate as possible. Now, how to generate this probability table though? Intuitively, the more frequent characters in the English language should occur and be generated more frequently. So we can take a look at some books, count the frequency of all the characters with good old fashion book read and fun, and generate these probabilities. In fact, that's exactly what we did to get this table. Now this is a unigram model. Uni is one, gram is character here, and model, you can think of it as probabilities. We'll use single character probabilities to create language. But language is complex, and simply taking counts of characters without taking into account context isn't a great way to create probabilities. It's pretty obvious since this generated sentence is gibberish. The characters and words in a sentence depend on those that come before it and after it, but that gets really complicated. Remember, this is the 1940s. We don't have any technology to represent information this way in a scalable manner. So let's think really simple. And let's just say, for assumption's sake, every character in the English sentence should be simplified to depend on the character just before them. And so we can represent this as a conditional probability table. What this table shows is that if we have the previous character generated as a, then we'll have a greater chance of generating b and c than generating another a. And it also suggests that b followed by an a is more likely than generating a b or c after another b. We also see that if we have like the last character as c, the chance of generating an a next is actually so much higher than generating a b or c next. Now this is just three cross three, but English has 26 characters. And if you include a space, that's 27 characters. So you can assume that this table is in total like 27 cross 27 table of probability values. And using this table of probabilities, we can generate slightly higher quality sentences. Now this is a by gram model by is to gram is character here and model represents probability. So we use two character probabilities to create language. While the by gram model is better than the unigram model, the sentences generated are far from perfect. But instead of by gram models, we can create tri gram models where we use three character probabilities to create language. Or we can extend this to four gram models and use four character probabilities to create language. And generally speaking, we can extend this to n gram models where language is created using n character probabilities. Now let's just say that instead of using this character model and generating one character at a time, what if we consider generating one word at a time? In this case, we will need to come up with the probabilities of generating a word. So let's start back with our unigram model case, but for words. And so a snippet of this probability table might look something like this. This is just a few words of the thousands of words that exist. When generating words one at a time, we reference this table. And in doing so, we might get a sentence that looks like this. Like in the unigram character case, you'll see words with higher probabilities occur more frequently. The sentence generated also looks more sensible and of higher quality. In the bi-gram model case, we use two word probabilities to generate language. And you can see the generated words look even more sensible, especially every pair of subsequent words. Though there are a few downsides to this n grams representation specifically, the n grams model was the first of many steps that eventually led to the widespread use of language models that we see today. In conclusion, n grams language models show how we can represent and generate language using math. And when you have mathematics, this opens up opportunities for the digital age. Join us next time as we go through some feats that lead to modern language models. Now videos like this are fun yet challenging to make. So I want to take some time to talk about our sponsor, Taro. This is a social platform to help software engineers grow in their career. So say you land a software job, but then what? It could be really hard to navigate your career and it's tough to get good career advice.  You can be a part of discussions to get advice from software engineers across many companies. There are many non-technical questions that I wish I could have asked someone in the past to advance my career, but really never found a good forum to do so. But I think Taro is that good place. I'm a machine learning engineer which does overlap with software engineers. And while the platform does not have too many machine learning engineering questions at the moment, I'm doing my best to answer any questions that are there still whenever I can. And I think this community is really nice to be a part of still. So if you're looking for a premium community of software engineers to be a part of, consider signing up for Taro. Using my link in the description to get 20% off your annual purchase.