Okay, so people who don't read manga or watch anime seem to have a skewed view of it. Like, they think it's just nothing but zany comedy and ludicrous, crazy over-the-top action and nonsensical storylines that are just weird, and they're not totally wrong, is the thing. Like, yes, a lot of anime are like that, but it is also just a broad medium. You know, you have everything from lighthearted comedies to super dark and serious series. You have action, you have romance, like, you have a lot of different stuff in there. So while, yeah, they're kind of correct, it's not a fair assessment of things, and Madaka Box is basically what people who don't read manga think manga is like.  But mostly it's nuts. This is the introduction song. It's not very good, but it's not too long. I have no idea what genre I would classify Madaka Box as, to be totally frank. Like, it starts off as more of a comedy and school life story with some action elements because it takes place at like a very strange school where people are just strong enough to break through concrete with their bare hands sometimes, and just things like that are a common occurrence here. But after a while, it turns into like a full-on shonen battle series, like in the vein of Dragon Ball Z or Naruto or Bleach or something like that. The series does not have much of an overarching plot, rather it's split into a bunch of smaller arcs which don't tie into each other all that much, to be totally honest, but it's basically like it falls into the Dragon Ball Z trap of just going, and then a stronger enemy appears, and then they defeat that one. And then a stronger enemy appears, and then they defeat that one, which is very unfortunate. However, it's a pretty short series overall. It's actually less than 200 chapters, so it manages to not get too annoying with that trap. Like if it had gone on longer, like something like Naruto is around 700 chapters, if it had gone on that long, then yeah, this would have gotten really stupid and I probably would not have finished it, but it manages to not outstay its welcome. And also considering how short it is, a lot happens in that short amount of time. Like again, they have a lot of different story arcs which aren't all super deep and complex, but, you know, they have a lot of them. They have a lot of different characters who, while they aren't necessarily the best, pretty much all of them do have some personality or at least some quirk about them that makes me remember who they are looking back on it, which is not very easy to do. And the world does expand continually up until the final arc. Like it just gets bigger and bigger, and I don't just mean like they discover new locations and new places. Like something like One Piece is very good at that, where they're just constantly going from one place to another and all these different islands they hop on are very different from one another, and that's great. Don't get me wrong, but it's also just very, very difficult to continually expand a world like that. Like, let's say Naruto for another example, by the time you're like a third of the way through that series, you've pretty much seen everything the world has to offer, and after that it's really just about the characters and the story and the action. You know, you don't really discover any new cultures or countries that are important that we need to know about, and you don't really discover anything new about like the magic system or anything like that.  Well, I guess calling it the magic system is like the closest thing for it. It's kind of like in Mistborn, if you've ever read that, where at first you learn about Alamancey, and you're like, okay, this is how the magic in this world works, that's really neat. But then later you also learn about Furukemi, which is a completely different type of magic, and they were like, oh, okay, that expands the world a little bit, makes it a little deeper, a little richer, and it adds different dimensions to a lot of different things, including society and warfare and all that. And then you also learn about Hemilurgy later on, and you're like, oh, wow, there's three different types of magic here, and Madoka Box does something kind of similar to that. Overall, I do want to reiterate that I do think Madoka Box is a good series, like it is, again, a shonen battle manga, so if you don't like those, this isn't going to change your mind, but if you do like it, I think it's fun.  Don't check out the anime, because the anime, one, only covers like the first two story arcs, and two, it's just not that good in general, but anyways, if you don't want spoilers, then leave now. It's just that the Book of Mormon says a lot of strange stuff, like that Adam and Eve lived in Jackson County, Missouri. So what is the story about? At the beginning, we're introduced to Madoka Kurakami, who is a girl who has elected her high school class president with 98% of the vote, and she makes a suggestion box, which is part of her platform while she was running, and she says, hey, if you have any problems or anything, put it in this box, and I will do my best to help you, and that's where the title of the series comes from. Now, Madoka is just perfect in every way. She's a star athlete. She's the best fighter ever. She's an amazing pupil who gets perfect grades and everything. She's a musician at one point, they show off. She's just the best at everything she ever tries. She's perfect. She's a genius in every way, and this is acknowledged by characters in the story, is the thing. Like, they acknowledge, yep, she is a perfect genius in every way, and some people envy her for that, some people are jealous of her, or want to take her down a peg, or anything like that, but it is acknowledged by characters in the story, and so at first, it seems almost like a deconstruction of this type of character, almost again specifically, like a shonen battle protagonist who is just the best fighter ever, and they may not be good at other things, but that doesn't really affect the story, so it doesn't matter, and they're just the best at everything they need to be the best at in order to win the day, and it seems kind of like a deconstruction of that, because it shows how it's isolating for Madoka, and how she basically only got this way because of eugenics, trust me, we're not going into that, but it seems like that, but then after a while they just kind of give up on it, and Madoka is just a perfect protagonist, or more accurately, I shouldn't refer to Madoka as the protagonist because the real protagonist is Zankichi, who is her friend, and he is a pretty normal dude for the most part, he just is also in love with Madoka, which the story again kind of abandons partway through, and they don't really do anything with that, but he becomes like a great fighter in everything because he just trained really hard, like he really wanted to be as good as Madoka, he wanted to keep up with her, and all that, which is kind of neat, but I don't know if they really go anywhere super unique, or super cool with that, he's just a more likable character because he has to suffer and struggle. Beyond that there's not a lot to him, you know, like there's just, his mom is introduced and actually plays a fairly big role in the story, which surprised me, but it doesn't mean that much, I mean when they first introduce his mom, she literally looks like a 10 or 12 year old girl, so people think that she's his sister, but then he says, oh hi mom and everyone's surprised, which, like yeah, this woman who's like 40 years old just looks 10 or 12 years old, and that probably says something about Zankichi's father, but let's just move on past that. So the early series is about Zankichi and Madoka just going around school fixing their problems, you know, and also like gaining more people to join up with the student council because no one else has voted in, it's just the president has voted, I don't know man, it doesn't make any sense and they actually run the school, but then there's also like this other group of people who function as kind of a balancing act for the student council. Look, it's dumb and we cannot get into everything, but the early series is just about them going around and solving problems, and then the second arc introduces these type of, yeah, these type of people called abnormals, which Madoka is an abnormal, and they're basically just mutants with superpowers, you know, they have crazy powers, like again, they're all like super strong and fast the same way as Madoka, and I mean, again, Zankichi is able to train up to that level just by lifting weights and stuff, so I don't know if they're that special for that regard, but whatever, and then they also have like super healing and then there's one guy who can send out electrical signals with his mind and he can use that to control people, and he can also use it to steal their powers for himself because anime logic, and basically Madoka and them discover that there's a secret class at their school called class 13. Again, this whole series takes place at a high school, I just I want to reiterate that, and class 13 is full of abnormals and it's like a hidden underground base at their school, which they have to infiltrate, and this is a pretty standard arc, you know, like the hidden base is full of bad guys, the heroes have to go through and fight them one at a time, and there are some pretty good fights in the series, I'll say that too, you know, it's not entirely just I punch the other guy harder than he can punch me, like there is some strategy to it, and well, that's about all I have to say, like there is some strategy to it and that elevates it beyond a lot of its contemporaries, and like I said, Madoka's friends are not abnormals, so they can mostly just fight through the power of hard work, and they also become really good partially because Madoka has an older brother who really wants to fuck her, and he's really good at training people, like he himself is not super good at fighting or anything because while he was undergoing some experimentations, because he's also an abnormal, he had a bunch of his organs removed and everything, but his mind is still sharp as a tack, and so he can use that to trains Enkichi and Madoka and them, and then they can like break through concrete without using magic or anything. So near the end of this arc, they get into the situation where they're about to go to the final room and confront the big bad guy of the whole arc, and they just open an elevator and oh shit, there's like six other dudes there, we're in trouble, how are we gonna fight past them, and then a bunch of their friends who they've made earlier on in the series come in and say, hey we'll fight them for you, you go on, and then they start you know fighting, and then we just don't cut back to them for quite a while, and Madoka goes and defeats the bad guy, and then when they finally go back up, they find everybody on both sides of that battle dead and crucified against the wall, and then a stronger enemy appears, like I said that's kind of all this series can do after a while, but in this case it works really well because when they introduce the new guy, Kumagawa, this is a hell of an entrance, you know, like there's this thing in wrestling it's called jobbing, and on TV tropes it's called the wharf effect, but basically it's this idea where in order to show off how powerful a new character is, usually a new villain, you show them defeat and a character who's already established as being super strong, and then you're immediately going oh wow how powerful is this guy, and in Kumagawa's case he is crazy fucking powerful, but he's also the best character in this series, now is he super deep and complex and not really like there's a bit to him certainly, like there's a little bit more beneath the surface, but mostly he's just great because he's so cool, you know, and even if even if after this moment he was a crappy villain and a crappy character and he didn't do all that much of note and he just wasn't that interesting to read about or anything like that, I would still think he was a great character just because of this entrance because that fucking sticks in my mind, I mean this series ended almost 10 years ago I think, like I was still in high school when it happened, so it was a while ago, but I still remember this moment clear as day in my mind because Kumagawa shows up, says oh hey I know you think I crucified all these guys, but I didn't really, and then they have a brief conversation and then he shoves a giant screw through his own head, but he survives and he's very nonchalant about it, and then he goes off and he's like oh by the way I have a bunch of minions and stuff and we're gonna fight you because I'm bad mohaha, now Kumagawa and his crew are what are called minuses and they are basically abnormals except they're like bad somehow, yeah they're not a lot different, like I said it's a different type of magic, like it's a whole different magic system essentially which is kind of interesting I guess, but it's not really different enough to distinguish itself that much, it's like okay abnormals have crazy powers, minuses have crazy powers, except minuses crazy powers tend to be related to how they are absolutely insane, like there's someone who just makes the whole, excuse me, she can make objects and people who come too close to her just rot away, like they're aging super fast, there's another girl who can reopen all your old wounds that you've had over the years, including mental wounds which is how Madaka's secret sister who erased her own memory because she ran away from home, relearns that she's Madaka's sister and then gives herself powers where she can control ice, again I can't explain everything that happens in this series, but it goes really off the rails in a lot of very small ways along the way, and Kumagawa even without using his powers is weirdly strong, you know like he refers to himself as the weakest person in the world but because of that he can instantly identify weaknesses in other people like blind spots and areas that are more sensitive to attacks and things like that and he's able to use that to take on crazy good fighters even like Madaka and I think well that's a really neat way of approaching it at least like practically speaking from a story standpoint it just means yeah he's a really good fighter just like everyone else but giving a different reasoning for it is still kind of neat and his actual power his minus that he has is referred to as all fiction and basically that just means he can erase anything from existence, like when he kills all those people and crucifies them against the wall he later erases the fact that he killed them and they all come back to life or he could erase objects and people from existence and so it's clear from the very beginning that if he wanted to he could just snap his fingers and make Madaka and everyone else just disappear and they they'd be gone and he would win but he doesn't want to just kill them he wants to break them down and beat them and bring them down to his level he's kind of like the Joker in the dark night where he wants to prove everyone is just as crazy as him and so he has like a weird sense of honor about it almost it's weird like the only real limitation to all fiction is that he cannot erase the fact that he erased something so if he erases someone from existence he can't erase the fact that he erased them and then bring them back like like once something's gone it's gone for good and then later on he also loses his power and then gets it back but it's a bit weaker so but that's because he later becomes a good guy after his arc is over and they can't just have a good guy that's that powerful running around and then there's a whole arc of fighting after this where they they fight kumagawa's minions they fight kumagawa himself and eventually he is defeated like he realizes he's wrong and okay some people are better than me but i'm also better than i thought i was this whole time so you know maybe i'm not a total loser and then he joins up with the student council because i guess they can just do that and he becomes one of the people to run the school and then a stronger enemy appears because uh you see years before this happened kumagawa actually had to seal a god away in another dimension so that she couldn't be an evil god on earth i guess and uh when he became a better person and finally just stopped being a minus i guess uh his powers like i said became weaker and so that evil god is able to break out and her name is like a jimu nejimijinemijinemijimu i don't actually care what her name is but she's what's referred to as a not equal and she's well like i said she's a god she's trillions of years old older than the universe itself uh she's watched all the planets get created and humanity come about and she also has like 14 quadrillion powers like it was seven trillion or yeah seven quadrillion and some change i have normalities and then six trillion and some change minuses and she can give those power to powers to people or take them away at will and at first i thought uh it was there was going to be some sort of reveal where she's the source of all these powers like when they're born she might decide to give you one but then uh after you die it returns to her or something like that and that winds up not being the case but i don't know it would have been kind of interesting she also breaks the fourth wall a lot and acknowledges that she's in a manga which is not really played for laughs or anything it's just her saying hey this manga's gone on too long it's kind of weird and then no other characters acknowledge that she's saying this and beyond that i just i just have no idea what not equals are even supposed to be like i get that it's another magic system just like abnormals and minuses but i i i don't know what they're supposed to be and we'd never get a proper explanation i don't think so i don't know do with that what you will and again they have a whole long battle with her because again she's a god who's kind of evil but not really and she was sealed away in another in another dimension but then she comes back and they defeat her and all of this takes place at one high school please remember that so then we have a brief arc about a bunch of suitors who want to get married to madaka and then that's just abandoned really quickly it's it's just it's over it's done and then we move on to like the real final arc where we introduce a final villain whose name is shishime and for whatever reason he looks like an ogre or like a kunari from dragon age i don't know why he looks this way no one else in the series looks this way or looks super inhuman in any other way he just he just looks like this i don't know why and he his main ability is that not only is he super strong and powerful and all that but whenever he breaks something it stays broken forever like if he injures someone then that injury will never heal no matter how minor it is if he breaks a plate or something then that plate you can't repair it no matter what you do like even kumagawa's all fiction power cannot erase it uh so like this dude's bad news and he's evil why is he evil because because he's evil just for the sake of it and you know they have a whole arc about that it's not a long one but him and madaka eventually fight and madaka wins and the way that she wins is really stupid basically she can't run towards him fast enough in order to hit him hard enough to destroy him so she like runs ahead of herself and then breaks the wind so that she can run faster which i i know that does not make any sense when i'm explaining it but it doesn't make any sense in the manga either i think the mangaka just fucking gave up at this stage like she she has to run fast so how does she run fast she runs faster it it's dumb man it's really dumb and then as his final act before he dies shishime sets the moon to crash into the earth i guess he can do that and then madaka tells all her friends hey run away i'll take care of this and they're like but madaka and she's like just go i'll take care of this and then shishime's ghost appears because ghosts are a thing in this series now they've never been mentioned up until now but like the ghosts are a thing uh ghosts appear and then madaka disappears for a couple of weeks and then all her friends are like yeah we don't know what happened to her but she's gone and then she just appears again she's like hey i destroyed the moon so it didn't crash into the earth tango preguntas how how did you destroy the moon madaka how does that work what did you do how exactly did that happen i don't know it's never answered or even insinuated that there may be an answer like none of the other characters even seem to wonder how she did it she just destroyed the moon and then they live happily ever after i guess that's just that's the end of things so um i madaka box what the fuck you know just what the fucking fuck this is a deeply flawed series uh but there's no lack of creativity here you know i'll give it that like both in like the art style character designs the types of personalities that they have the powers they have like all of that gets crazy creative and i will give all kinds of praise for that and hell it could really inspire other people in their own projects so that's great i hope that works out for them and uh like i said it is impressive how the world is able to continually expand and continually reveal new aspects to it that makes us look at this world in a different light like a couple months ago i did a video about star wars and how that franchise has kind of been run into the ground because it has failed to do that even though it's so much bigger and has run for so much longer than madaka box did but you know i really barely scratched the surface of all the weird shit that goes on in this series but like i said it is it is fun and i think you should check it out if anything i mentioned here sounds at all interesting anyways that's it see you later goodbye huge thank you to everyone who watched this far i'm sure everyone who's leaving a comment telling me to kill myself definitely made sure to watch the whole video so thanks to them as well and all the names you see on screen right now these are my patrons so thanks especially to my super ultra great patrons who are oppo savillainan olivia rayon brother santotes buffy valentine carolina clay dan and seljevich dark king dio echo evie flax great grebo carcat kitsune liza rudakova lord tiebreaker madison lewis benet matthew bodro microphone peep the toad return of car to mom robbie reviews sad martigan sillier the vixen tesla shark vavixus and wesley i'm not i'm not redoing that i don't even care uh if you want to get your name on here be sure to join my patreon page if you can't do that then please just write this video and comment on it subscribe all the things i'm supposed to say here um uh thank thank you goodbye


Hey everybody, so this video we'll talk about appending to our linked list and rather than diving into the code, we'll just work on the whiteboard this time and Kind of plan out what our pseudo code is going to look like, okay? So appending to the list Let's follow our mantra on this one Okay, and let's plan what we're going to do and then let's also bring it down in terms of input Compute and then output steps one two and three first get your inputs second to do your computation third produce your output Or if there is any right? So That those three steps don't just apply to like reading files and doing something and spitting out something to the screen it could also apply to methods or function calls because Methods and function calls have input that's its parameters, right? And then they compute and then maybe maybe they return something but not always and that's okay It's still going to help us to think of things in those terms So let's plan our list dot append around this So appending to a linked list is conceptually the same as appending to any other list You are adding it to the end. You're putting an item at the end of the list Okay, now when we we're going to write our code and our code is going to look like List dot append when it gets called and it'll look kind of similar to the add method but with you know a key difference so What do we do? What are you going to do the first step is you're going to You know get your data get your input Well, what is your input your input is going to be the function the method parameter the data item so you need to make first thing we probably need to do then is Make a node For the item For the data right first step make a note for the data Now I want to get it into the list in the right spot Now your linked list class it again. It only knows three things the head the tail And the length of its list of a number of items inside. All right So what are the scenarios again? You're going to it's going to be useful to think of each one of these methods in terms of like special scenarios. Well one scenario is The list Has It has some items so It's length is greater than zero Okay, so it's got some items in it. How are you going to append to a list that already has items in it? well You know you you've already got a list. I'm not going to draw a whole bunch of stuff here and any great detail But you've already got a list With some stuff in it right in the head Of the list is up here in the tail It's down here. Okay Well, where do you want to append? You append at the end of the list Well, you have a reference to the end of the list. It is called the tail right? so How do you append? You want to put Right, you want to put the new guy down here Right at the very end right which means what how do we get the new guy there? You got to put the current tail in the list tell them To point to the new guy. I'll call this guy new right here. Okay, so you got to take the current tail point it to the new guy So I'll say point Current tails Next right the node at the tail has a data and the next to the new node and then and then what Then you need to change the tail doesn't belong to the second to last guy it belongs to The one you just inserted So you got to update the tail To point To new right And when I say point to update it to point to I'm just saying reassign the valid that variable to get the new node right so trail dot next is new and Tail gets new right this will make the link Okay, so That would take care of that scenario and then the next scenario will be well list has a Length equal equal to zero Okay, if you are you are appending to an empty list Well, what happens when you append to an empty list? You know both the head and The tail Need to point to the new item Okay, just like that. Just like it was for add same thing. Okay Cool, what else do we have to do update? The size can't remember to do forget to do that if we're adding and removing things one of the last things You need to do is update the size of the list, okay? All right, I Think that gets us there We've got kind of our input step We've got our computations and then our what's our output. Are we returning anything? No Whenever you append to a list you do not return anything list dot append does not return anything So we're done Okay, so here's kind of the pseudo steps the steps of our algorithm looks kind of similar to add I'm going to leave it to you to implement it and next time we're going to talk about Something a little more challenging which is searching the list That's going to be our first case where we have to traverse or walk the list. All right. See you then


consummated and surpassed with this. It is the invitation to God to take his final step. And probably most importantly, it is the relinquishment of all other purposes, all other interests, all other wishes, and all other concerns. It is the single desire of the Son for the Father. And the reason I say most importantly in the sense that this is the giving up of the belief in the world. The beliefs, the purposes, all the goals and aims that the mind attempts to pursue here are literally keep life blocked from the awareness in the mind. So they go hand in hand. You can't simultaneously fulfill your one function here and have other functions. That those functions must be laid aside to take up or to live out your one function as an expression of God. So we bring it back to changing the mind about the meaning of the world. But to the ego, the world was made as an attack on God and it uses the screen to keep the mind distracted from looking at these beliefs in the mind.


Did you know that the University of Alabama offers some of the most generous scholarship opportunities in the nation for qualifying students? It all starts by applying and being admitted to UA. Once admitted, you can become eligible for two types of scholarships. Automatic Merit Scholarships are those offered based on your high school grade point average and your score on college entrance exams. Competitive Scholarships are those you may be selected to receive from different departments or colleges based on your application for admission. Upon admission, all incoming freshmen will have the option to complete a supplemental scholarship application. There are many different competitive scholarships and there may be one specifically for a student like you. To maximize your scholarship opportunities, students should complete their application for admission and submit all supporting documentation by the deadlines noted on the website. Good luck and Roll Tide!


Now, Geiger wants to make clear that she has no problem with LGBT members of the community, it's specifically the transgenders, queers and pronouns that she says she takes issue with. It's been less than two weeks since the Supreme Court legalized discrimination against LGBTQ plus people for creative businesses, and a bigoted salon owner from Michigan is already taking advantage of that decision. As the Kansas City Star explains, the owner of a Michigan hair salon said she is refusing service to some members of the LGBTQ plus community. Christine Geiger, who owns Studio 8 Hair Lab in Traverse City, said in a Facebook post she is exercising her free speech by only allowing certain customers, quote, if a human identifies as anything other than a man or woman, please seek services at a local pet groomer, the hair salon owner said, you are not welcome at this salon, period. The Facebook page was later deleted and the salon's Instagram was set to private. In the biography for the business on Instagram, the owner says it does not cater to woke ideologies. The post came days after the US Supreme Court ruled 63 that under the First Amendment, a web designer could refuse to make a website for same-sex marriages based on her religious beliefs.  Now the legislation that Governor Whitmer signed in March that the article just referenced is the state essentially codifying a decision from the state Supreme Court to expand the state's Elliott Larson Civil Rights Act to include LGBTQ plus people. But we'll get to that in a moment here. But basically, getting back to Christine Geiger, her mentioning the First Amendment and her right to discriminate under the First Amendment, I think that is a clear reference to the Supreme Court's decision that legalized just that. And this is exactly what many of us expected to happen. If discrimination is limited to creative businesses, if it's supposedly so narrow, then the question is, what constitutes a creative business? And that's something that Gorsuch in his majority opinion did not define. So the question is, if a hairstylist refuses to serve a trans woman on grounds that giving her a feminine hairstyle is like tantamount to endorsing her trans identity and thus tantamount to pro-trans speech that she disagrees with, can that stylist declare that service as compelled speech and discriminate? Well, I mean, it's hard to say for sure, but based on the guidelines established by the Supreme Court, it does seem like that is permissible or at least it's reasonable to deduce that that is permissible. Now, the stylist was a review bombed on Yelp and in response to one of the reviewers, she offered some clarifications about her position and I think that she believes this is going to make her look like less of an asshole, but it does not. So she writes, LGBT are more than welcome. However, the rest of it is not something I support. This stance was taken to ensure that clients have the best experience and I am admitting that since I am not willing to play the pronoun game or cater to requests outside of what I perceive as normal, this probably isn't the best option for that type of client. There are over 800 licensed stylists in that county. There are plenty of salons and stylists willing to cater to what I will not. Very curious. She says that she's not gonna play the pronoun game, but in that entire paragraph, she used pronouns multiple times by saying, I am not going to play the pronoun game.  So she's admitting that she is only a little bit hateful, right? Or she's selective in her hatred. She doesn't hate all LGBTQ plus people, just some of them. I think that she honestly believes that that makes her look better. But imagine if somebody said, look, I don't hate all non-white people, just some of them. It'd be pretty obvious what's happening, right? That person is clearly racist. Furthermore, how does denying service to clients who state their pronouns improve the service for other clients? That doesn't really make sense, right? Is your base of clients that transphobic? I mean, what if other customers don't wanna be around Jewish customers and they're anti-Semitic? Are you going to remove the Jewish customers to improve the experience of the anti-Semitic clients that you have? See, this is why opening the door to discrimination is wrong. Because you allow for these types of situations where innocent people are discriminated against for just trying to live their lives. Now in a deleted Facebook post that was shared by a local page in that area, Christine reiterated many of the same points, but added some additional thoughts. She says, I have no issues with LGB. It's the TQ plus that I'm not going to support. For those that don't know what the plus is for, it's MAP, Minor Attracted Person, AKA Pedophile. Now further down, she says, conservatives need to acclimate these woke individuals to their new reality. Conservatives have had enough of their ideologies being projected onto us. We use to just let them be. Most of us kept our opinions to ourselves. I mean, why look for unnecessary conflict, right? Well, the other side used this against us. They mistook our silence for weakness and look where it got us. It is very evident that this person lives in a bigoted bubble.  That's what she's saying essentially, but who accepts pedophiles? I mean, she's saying that, but there's no evidence for this claim. There's no evidence that queer people have embraced MAPs. And that's because we have not. I can assure you that is not part of the LGBTQ plus community. Rather than doing a quick Google search, however, to learn that the plus references intersex people, asexual people, non-binary people, pansexual people, she assumed that it means pedophiles, but it does not. So she's basing discrimination on her stupidity, on her misinformed views about the LGBTQ plus community. But I mean, it's dumber than that, right? Because she's not even explicitly saying that trans people are pedophiles. She's just simply saying incorrectly so that the plus signifies pedophilia. So if the T just means T and the plus means pedophiles and you don't actually think that trans people are pedophiles, then really what this boils down to is that she just doesn't like trans and non-binary people and she wants to discriminate against them. She can try to attach other justifications that make her seem more reasonable to it, but at the end of the day, this is discrimination. Pure and simple. And she's probably always felt this way, but because of the Supreme Court, she now feels bold enough to implement this policy and explicitly say trans people are not welcome in this establishment. Now prior to that Supreme Court decision, this was illegal in her stay, but not for the reason she thinks. So let's go to her original post. This is a little bit redundant because we already read what she said in the article, but basically in her original post where she announced that her business would be discriminating. So she says that she'll be discriminating, regardless of Michigan House Bill 4474. Now that is in reference to a law that passed Michigan's House in June, and what that would do is it would expand the state's Ethnic Intimidation Act to include sexual orientation and gender identity. Now the Ethnic Intimidation Act essentially makes racist harassment and intimidation a hate crime, right, so it makes it a more serious offense. And the expansion to queer people would legally classify intentional and repeated misgendering of trans people as a hate crime as well. Now she told a local news outlet that her decision to discriminate was in response to that bill, which has not yet become a law, but that's a response, so let's watch. Nine in 10 news reached out to the owner, Christine Geiger, and she told us she's taking a stand against being forced to use preferred pronouns, such as they, them, he, him, and she, her. And she says it's in reference to recent legislation that passed the state house that would make it a felony for people to intimidate or threaten others by disrespecting their gender identity, for example, by deliberately misgendering them. Geiger says the legislation goes too far on infringing her rights. Now that bill is not yet a law, and whether or not she knows that is beside the point. And I'm assuming that she was worried about that law due to the fearmongering surrounding that particular law in the same way we saw people like Jordan Peterson, fearmonger over Canada's C-16 bill. And there were these hyperbolic claims that if that law, or if that bill became a law, then it would lead to people going to jail for misgendering trans people, but that didn't happen. Zero people have been arrested since that became law. And this, if it passes, is pretty similar, but I mean, we're talking about repeated targeted harassment. If you are terrorizing this community and misgendering them intentionally, then that is tantamount to a hate crime. Like if you just make a mistake and you misgender someone, so long as you're not repeatedly doing it and harassing them and doing it to be malicious, you're gonna be fine. But I mean, I'm assuming that this is something that she was worried about because of fearmongering and misinformation. But regardless of whatever the state law is currently, you know, it doesn't matter because she's very much aware at least that the Supreme Court recently legalized discrimination in a more narrow sense, which does undo progress that the state made just last year. So I think that that requires more explanation because in 2022, the Michigan Supreme Court expanded the state's Elliott Larson Civil Rights Act referenced earlier, and that now includes LGBTQ plus people. It protects them from discrimination in employment and housing. And that is what technically made it illegal to discriminate in the state of Michigan. But because of the Supreme Court's decision, well, now that law has a massive exception. As Rose White of MLive explains, a US Supreme Court decision last month created an exclusion in anti-discrimination laws around the country. The decision struck a chord as expanding gay rights have faced pushback from conservative Christians. But it also, Trump's Michigan's recently expanded Elliott Larson Civil Rights Act that protects LGBTQ people from discrimination. The Michigan Supreme Court last year issued a ruling in the opposite direction of the Supreme Court when it decided sexual orientation is covered by the state's civil rights law that abandons discrimination in employment, housing, education, and public accommodations. But there is now an exception for free speech. Now, Michigan Attorney General Dana Nessel said this in response to the Supreme Court's decision. Quote, this holding has no impact on Michigan's Elliott Larson Civil Rights Act when it is applied to protect against discrimination in the provision of public accommodations that do not constitute speech. And so the reason why HB4474 is relevant once again is because it would theoretically close the exception created by the Supreme Court. But if that were to become law, that would automatically conflict with the Supreme Court's decision and it would trigger legal challenges immediately. So she still has quite a bit of time to discriminate. Right before this is revisited and I don't assume that the makeup of the Supreme Court is going to change anytime soon. So even if in her state, they say, no, you actually can't discriminate when it comes to this limited area. Well, I mean, she's still gonna have the ability to do that. But regardless of where Christine thinks that she can derive this authority from, she's not gonna be the last person to do it. Like this is gonna become a more common phenomenon. This is only the beginning because when you open the door to discrimination, bigots are going to discriminate. And I'm assuming that we're going to see the word creative and how it applies to businesses, get stretched and completely bastardized as more bigots try to legally justify explicit discrimination. And it's just, it's depressing, right? It's really sad to see, but it's exactly what we expected. The Supreme Court try to allow discrimination in a narrow sense, but you can't really do that. You can't, you just, when you open the door to that, it's very difficult when there's a lot of gray area that hasn't been defined by the Supreme Court. So who is and isn't in a creative business is a subway sandwich artist's part of a creative business.  We don't know, but we're going to learn because I'm assuming that these cases are going to continue to pop up and they will be challenged legally. And this is just something that didn't need to happen. But because the Supreme Court decided that discrimination should be permitted, well, now it's happening.


Hey Virgo, welcome back to another episode of your love life and maybe your finances. We'll take a look. This is Kelly from House of Virgo. If you're new, please smash that like and subscribe button and personal reading link is in the description box below. Let's see what else is coming up here for you, Virgo Sun, Moon, Rising, or Venus. Let's see what other messages for the rest of December are showing up here for Virgo. Okay, and one more, one more card for Virgo. Please, thank you. Air sign. Oh, the air sign is back, Virgo. What are you gonna do? Okay, give it time. Everything in divine timing, let this things, whoops, flow.  Pretty self-explanatory, Gemini Libra Aquarius. Okay, let's take a look and see individually what's going on. What's this Virgo need? Everything is, everything in divine timing, let things flow. Okay, what do you need to give time to, Virgo? Let me move these over so you guys can see. Okay, what does Virgo need to, says give it time. What is the it? What is the it? What does Virgo need to give it time? Nothing things flow. Oh, aw, beautiful. Making a beautiful connection with someone, two of cups. So, you know, Virgo, if you are that person who's like, when am I gonna be my soul mate? Or when are we gonna get together? It's coming, Virgo. I feel like it's coming. Patience, I know. Someone's gonna come along. There's gonna be a toast. There's gonna be a toast. I'm seeing a toast. Not a piece of toast. Like a, like a toast. A wedding toast, or let's see, you might be at a wedding, going to a wedding, you're like, when's that gonna happen for me? Or maybe you're giving a toast at somebody's wedding, trying to figure out, okay, some of you are gonna do that and it's like, oh, what am I gonna say? Just let things flow. It'll come to you what you need to say. I'm just hearing that. And also, let's see. Oh, look at you. That's you, Virgo. Pretty as a button. Yeah. Your single is a Pringle, Virgo. You want to meet someone. This really is just pretty much the messages. Just be patient. It'll come. Give it time. It'll come for you. Definitely. You'll come across somebody who will be a soulmate for you. Someone that you will be right for and will be right for you. Yeah. In time, you will have that happily ever after. Definitely. It's coming. So I feel like that message is pretty straightforward, you know, because I feel like Virgo, you're like, you know, I've already done all the work. I've done all the work. I've done everything I needed to do for myself. And now I'm just, where's my person? Yeah. Well, just because you're ready doesn't mean the universe is ready to bring them. So just be patient. If you're working towards your goals, good. It's keeping you busy, getting yourself prepared to meet someone. And if you're already there and you've got yourself all set and you're ready to go, it's just a matter of time. Let's see. Let me see. How much time? When will this, when will Virgo meet their person? For some of you, it's going to be on the 28th. December 28th. Hoo-ha. Hoo-ha. You're going to connect with someone on the 28th. So if you have a date set up or planned or maybe you will soon, you've also got intimacy, sexual chemistry, reminiscing. All right. Let's see. Someone's thinking about you in a hot and heavy way with the devil. Could be a Capricorn. Oh, the chariot. Could be a cancer. Oh, look at you. Queen of Pentacles. It could be another Virgo, Taurus, or a Capricorn. But you've got someone here who's on their way to you. Sleigh bells ring. Somebody's coming in to slay you, Virgo. Yes, yes, yes. Someone is thinking about you, reminiscing about you, definitely. And that chariot makes me feel like that. Well, that's just a card of travel movement, progress.  Oh, death card. Could be a Scorpio. You're going to hear from this person. Let's see. When is Virgo going to hear from this person on the 12th? So you might have already heard from them. They just gave me the song on the 12th day of Christmas. My true love came to me. There you go. Once the 12th day of Christmas. Is that like now? I don't even know. When's I supposed to actually begin? You count back from the 25th, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, December 14th. I don't know. Don't mind me. The 13th, the 14th, the 12th. I don't know this week. Okay. So maybe this weekend, for some of you, it's going to happen in the final two weeks. Okay. I'll tell you right there. Someone's reminiscing and coming towards you or traveling towards you, coming to see you or spend some time with you. Intimacy. Yes.  They want to hug you. They want to, they want to cuddle. They want to spin, Virgo. Okay. You have cycles. Fate, karma, something ending and something new is beginning. All right. What is this about? What new is beginning? Okay. You've got strength. Ooh. And you have the sun. That's double power. New power, new strength, new power, ending out and getting rid of the weakness and having some kind of new start. Okay. Leo, double Leo energy for some of you. Let's see. Give us more information. More information for Virgo, please. Back up on your feet again. Back up in the horse, if you like. This is like baby new year, brand new year. I just feel like you're getting your power back. That could be actually, some of you might have been lost power. Somehow you're listening to this. If you've lost power, your power will be back on this week. But you're also gaining this momentum. Yeah. There you go. Night of Wands. Gaining this momentum. Getting your sexy back. Absolutely. Things are going to start moving pretty quick and there's a new cycle. Is this Mercury retrograde? I think we're in this already. So people from the past are returning. Maybe it's an air sign, some of you. Okay. Let's take a look. But that's the overall message here is you're getting, you're bringing sexy back.  Bringing your sexy back. Oh my, are you getting it back? Oh my god. I love it. Yes. You got this energy. Lustful, fiery, passionate, roaring to go. Definitely. Okay. Good for you. All right. Let's take a look. What's going on with this air sign? Lord help. Okay. Air sign has remorse. Air sign is regretful. Air sign is feeling down. Feeling sad. Can't seem to move on. Hmm. Wants to bring things back into balance. Is trying to maintain some equilibrium. Not to get too down about something. Hmm. Trying to, oops, trying to get out of a bad situation here. I feel like it could be their thoughts and their emotions. Hmm. They think that you're like divine, like you guys will be together again. If this is someone that you dated, if it's not, it's just this air, this air sign is struggling. They're trying to maintain and move forward, get out of a bad situation. Either mentally or, or relocate or move. They're thinking about moving but they feel sad about that. I'm hearing. They don't want to, but they got to get themselves. I'm hearing stable. Like temperance is like, you know, become a bit more moderate. I feel like this person is kind of swinging this pendulum back and forth. They're, they're seeking stability. Yeah, but they have a lot of regret and remorse and sadness for maybe something, maybe leaving or wanting to leave or because they have to leave. Okay. Hmm. Interesting. That's more travel there, but that's good news. Arrives. Huh. Oh, my goodness. Okay. I don't know if there's anything to do with you, but this air sign is going to get and be wealthy. You're going to have like extreme, not extreme, but maybe get an inheritance or they're going to have like good news is coming in for them about wealth and maybe something to do with a grandfather. There's money or an elder. There's money, inheritance, some kind of money coming to them. This could have something to do with you. Stability, security and being with family. Okay. Or maybe it is with you wanting that or trying to have that. But yeah, that's very interesting. I'm not really sure. It's hard to pick up like how that has anything to do with you, but I feel like it's a message for some reason that you need to hear, but for some of you it is this person is they could be moving home or relocating back with some family members or receive some money or be able to buy a home or get their own place. I'm hearing. Okay. Very, very interesting. This is going to be a short read tonight, you guys. Tomorrow's the weekend and Christmas is coming. And like I said, I'm trying to get all the readings out to you guys every day. Although like my time is so crunched with the holidays. Let's take a look at, I was going to go right to the charts, but let me do the Chinese signs and see. I'm going to look at you, your Chinese sign. Give you more clarity if this reading is for you. Even if your Chinese sign doesn't show up here, it doesn't mean it's not your reading. Okay. Year of the pig, double pig there. Year of the horse. Year of the rat. Year of the tiger. This could be you or the other another person here. Horse, monkey, dragon, goat, and the snake. Okay. Wow. That's fascinating. If you don't know your Chinese sign, all you have to do is just go type in the search bar. The year that you were born between, if you were born after, I think the Chinese New Year's in February. So if you were born February to February, like if you were born in say 1972 and you were born in January of 72, the January 1972 Chinese sign is going to be different than the February and going forward in 1972. So changes. So just go ahead and Google or wherever, search wherever, put the month and the year that you were born just so that you have it exact. And do you read up about that? It's pretty interesting. I feel like they resonate the Chinese signs. Okay. I know a lot of people are like, this doesn't resonate for me at all. Well, maybe I haven't lived up to it.  Let's get into see what some initials are here for you. Okay. Oh, somebody's telling you to go. They're saying go. So it's either go for it or just go. Okay. September 15th. Somebody is 55. September 4th. Okay. We have, so again, G, we have C, N as in Nancy. 1965, 1975, Nicholas, I just heard, Nick. We have the letter H. Someone's 51. Okay. The letter I. What's this? Oh, that just came out. It's crazy. I wasn't going to blow charm yet, but you have the hamsa. It's protection. You guys are like duly protected. Very much so. You're protected. Okay. 46. Somebody's gonna reach out, send you a message. They're just gonna say hi. Nothing else. Just hi. Hi. Somebody lives in Hawaii. Okay. Hold on a minute. Let me see. I want to give you some birth dates. Whether that's yours. We have 1967. Whether it's your birth date or somebody else's. I'm gonna find my, oh, we also have August 28th is here. So is your birthday August 28th? I'm also seeing Sagittarius and Capricorn. Okay. And Gemini and the letter P. Okay. So somebody's birthday is May 9th. April 8th. May 9th again. That's crazy. Significant. Okay. September 13th, June 11th. Now this could be you or someone you're connected to. Like, it, not, it could be you. I mean, it would be for you, but someone that you could either be connected to romantically or someone, a friend or someone significant. Okay. August 15th, April 11th. And keep getting May. Now we're getting May 7th and August 13th. And I can't believe I can't find my numbers. They're all gone here. All right. Let's try one more. October 18th, September 22nd. And June 13th, September 12th. Did I already say that? Last one. October 23rd and February 17th. Okay. Significant. So you have the hamsa. Like I said, there's a significance to that, that hamsa. You might have that somewhere around you or just use it as a protection symbol, which is great. Let me see who's going to be showing up with the Zodiac signs. They're going to be most prominent for you in December in this last few weeks. Leo, Capricorn, and Taurus. And also Aries, Scorpio, and Cancer. All right, you guys. I'm going to leave that there for you. Like I said, it's short. Tomorrow's your weekend reading. I hope you enjoy that because that was a hell of a lot of fun to do and it's pretty sexy. Go over to my OnlyFans, by the way, if you want to get the weekly readings. They're uncensored tarot. So whatever I can't say here, I can say over there. Not that I will. I'll try. But, you know, you know how YouTube is. So yeah, if you want to get a personal reading, do book a reading with me. The link is in the description box below. And yeah, have a great evening. I will see you all back here tomorrow. Love you. Bye.


So, after more than two years, Robert Mueller's investigation into whether or not the Trump campaign colluded with Russia to interfere in the 2016 election has come to an end. And boy do I have a lot to say about this. There's plenty of implications. However, before I talk about this, before I give you my take, I do think it's important for us to establish the facts of the situation, but keep in mind that we are working with limited information because, at this point, nobody but Robert Mueller himself and Attorney General William Barr has seen the full Mueller report, so I do hope it's released soon. And it does seem like there's a bipartisan consensus that has emerged where both Republicans and Democrats want the report to be released. However, as usual, Mitch McConnell is Mitch McConnell-ing if I'm allowed to use his name as a verb, and he's trying to block the effort to call for the release of the full Mueller report. So, I mean, this could have been predicted, but regardless, what we have currently is a four-page summary of Mueller's findings from William Barr. Now, here's what that states. This is a summary from Marc Mazzetti and Katie Benner of The New York Times, and they report, "'The investigation led by Robert Mueller found no evidence that President Trump or any of his aides coordinated with the Russian government's 2016 election interference, according to a summary of the special counsel's key findings made public on Sunday by Attorney General William Barr. Mr. Mueller, who spent nearly two years investigating Moscow's determined effort to sabotage the last presidential election, found no conspiracy despite multiple offers from Russian-affiliated individuals to assist the Trump campaign, Mr. Barr wrote in a letter to lawmakers. Mr. Mueller's team drew no conclusions about whether Mr. Trump illegally obstructed justice, Mr. Barr said. So, he made his own decision. The Attorney General and his deputy, Rod Rosenstein, determined that the special counsel's investigators had insufficient evidence to establish that the president committed that offense. He cautioned, however, that Mr. Mueller's report states that while this report does not conclude that the president committed a crime, it also does not exonerate him on the obstruction of justice issue. So, with that being said, given what we know thus far, I think there are three main takeaways based off of William Barr's assessment. The first takeaway is that he confirms it was Russia that hacked into the DNC's email servers. The second is that Donald Trump did not collude with them to do that. And the third is that Mueller seemed agnostic on this question of obstruction because even though it was obvious to everyone with common sense that Donald Trump fired James Comey specifically because he wanted to shut down the probe, well, the contention here is that since Donald Trump isn't actually guilty of colluding with Russia, then you can't necessarily confirm that he was trying to obstruct justice with the intent to hide his criminality, which is why Mueller seemed agnostic on this particular issue. And he didn't explicitly say that Donald Trump did, in fact, commit obstruction of justice, but he also did not exonerate him. And really the question then went to Attorney General William Barr to make the ultimate decision. And he already came to that conclusion before Mueller reached his conclusion because I think more than a year ago, William Barr released a letter essentially arguing that a sitting president cannot be indicted for obstruction of justice. So because Mueller didn't reach a definitive conclusion there, then William Barr was able to, as one of Trump's lackeys, say, nope, he's innocent, even though America saw him fire James Comey. So I mean, you may or may not agree with everything here, but the point is that the main claim of collusion and treason, that's not there. There's no evidence there. And that's essentially the biggest thing that Donald Trump focused on. But we do have to understand that in spite of that, this was not a witch hunt because it's still unveiled a lot of criminality. George Papadopoulos, Paul Manafort, there were serious crimes that were unveiled here. So to say that this was a witch hunt would still be a stretch, even if the main claim was not validated. And this also does not mean that Donald Trump is innocent when it comes to other acts of criminality and impropriety, because when it comes to illegal hush money payments, bank fraud, tax fraud, violations of the emoluments clause and more. Of course, Donald Trump is guilty of other crimes. Just when it comes to this question of collusion, there's just no evidence to back up that claim. And it makes me feel sad that so many pundits and mainstream media worked people into a frenzy believing that Donald Trump was this Manchurian candidate and was a treasonous traitor, because what they were doing there was ignoring all of the other issues that Donald Trump has that are actually legitimate issues. And they wanted to focus on the aspect of criminality. There's no shortage there, but they didn't do that. I mean, the New York Times report from last year talking extensively about how his family committed tax fraud. I mean, if you want to focus on criminality, why would you focus on collusion when this from the get go seemed like it was going to go nowhere? But by raising the specter of collusion and treason, mainstream media pundits like Rachel Maddow was able to capitalize on that, capitalize on this story for views and ratings. And then the Democratic Party, they were using this to attack Trump for political purposes. And they kind of just kept feeding into one another to where we're living in a Cold War era paranoia political climate, which was just devastating to political discourse. So what people like Rachel Maddow did by consistently speculating about different ways that Vladimir Putin was the puppeteer to Donald Trump and how Russia was covertly controlling the Trump administration, she really harmed political discourse. And she's not alone. She's not the only one who did this, but she's certainly one of the worst offenders. And she would always speculate about how Rex Tillerson, for example, was doing Russia's bidding by hollowing out the State Department and keeping such a small staff. And that was what Russia wanted. And she then moved on to bigger fear mongering, more alarmist fear mongering and, you know, speculated about what would potentially happen if Russia wanted to theoretically cause direct harm to Americans. And she speculated about what would we all do if they shut off America's power grid while the Dakotas were at negative 50 degrees. And all of this Cold War hysteria may have did wonders for her ratings, but meanwhile, it didn't really help the country. And what Democrats like Adam Shift did, for example, by focusing so much on collusion, was they were ignoring the main problem that they were raising, which was election interference in the first place. So they always talked about the prospect of collusion and treason, but they never brought up bills that would increase cybersecurity. They completely ignored Tulsi Gabbard's bill that would move us to paper ballots, which that was one of the worries that people thought. You know, they thought, well, if they're willing to hack into the DNC servers, then what's to say that they wouldn't do the same thing and change votes? Now, there's no evidence that they changed the votes. But if you want to ameliorate that fear once and for all, you move to paper ballots, you take action. But none of them did that. They stayed focused on collusion and treason. And what that did was that gave Donald Trump a pass. It distracted all of us from talking about the real instances of criminality. Donald Trump is complicit in a genocide right now because he is refusing to back down from the sale of weapons to Saudi Arabia as they drop bombs on children in Yemen. Trump is ignoring the water crisis in Flint. He botched his version of Hurricane Katrina. When it comes to Puerto Rico, so we're ignoring the policy substance, all because this really, this story itself, it helps the mainstream media get views and ratings and it helps Democrats attack Donald Trump for political purposes while not proposing a real policy alternative to Donald Trump. So the saddest thing about this entire story is that it's going to embolden Donald Trump going into 2020 because now whenever we call out legitimate instances of criminality like the hush money payments, he's going to say fake news. I told you no collusion and Mueller found no collusion. And now he's going to use this as evidence to justify any and everything he does. So what we saw over the past couple of years was the Democratic Party establishment and media elites act in an irresponsible way. And rather than informing us as American citizens, they fearmongered and they got us to worry so we would constantly be glued to our TVs and tune in and give them more ratings so they can explain how we're in danger of Russia attacking us. And it's honestly really sad to see that. And I was one of the individuals who sounded the alarms in the beginning about Russian hysteria, about Keith Olberman saying that we're at war with Russia and Donald Trump is an illegitimate president.  He's a traitor who was imposed on us unilaterally by Vladimir Putin. And I started out trying to get people to calm down and stop being hysterical about this story. But then I realized that I was also feeding into the frenzy. So I chose to stop talking about this because in trying to constantly debunk hysteria and get people to think logically and not base their political decisions and perspectives of fear and instead on facts. I realized that I was also contributing to the conversation itself. One of the first Patreon chats we had once the Russia story really started to ramp up was us complaining about all the Russia, Russia, Russia stuff. But then I realized, well, I'm still talking about how they're talking about Russia and I'm inadvertently contributing to this Russia, Russia, Russia narrative myself. So I decided to just back off, let it play out. And now after seeing everything that unfolded, it's clear that this I was right all along. This was incredibly damaging to American political discourse. The American people, they don't know about how he's actually breaking the law or all of the horrible policies that he's implementing. Because for two years, we were focused on whether or not he was a Manchurian candidate and Mueller was even deified by the left. You have the Mueller subreddit and he was hailed as basically the only person who could save us from the orange menace when all along we were distracted from the fact that the only ones who could save us from Donald Trump was ourselves and we have to propose an alternative to Donald Trump. So this was damaging overall. I think that the investigation itself was important. But the discourse surrounding this investigation, primarily, you know, because of individuals like Adam Schiff, Ted Lu and Rachel Maddow, they are the ones that really turned this into something that was detrimental to American political discourse and what will ultimately, I think, help Trump. And it pains me to say that because I don't want Donald Trump to feel emboldened going into 2020. He shouldn't. But he will use this and brag endlessly, which is why people like myself, people like Kyle Kalinsky cautioned people. Be careful when it comes to this claim of collusion, because we just don't have the evidence yet. But you see, when you get intertwined in this type of conspiracy theory, anything and everything becomes evidence that your conspiracy theory is valid. Even if he took a harsh stand against Vladimir Putin, well, that was just evidence that he was doing Putin's bidding all along. Oh, what's that? There's NATO troops on the border and we keep saber rattling against Russia and he keeps ramping up with Vladimir Putin. Oh, well, this is all to prove to us that really there's no collusion there. And he's just trying to pretend to be tough.  But now the left has to come to grips with the fact that we should never ever get away from what is our biggest strength. And that is policy substance. And I'm not even one to say that we should focus exclusively on Trump's criminality. But if you are, you don't focus on the thing that's not yet proven. You focus on the thing where there's overwhelming evidence like the emoluments clause violations, how he hasn't actually put his businesses in a blind trust and is therefore still in control. Therefore, it's a conflict of interest and he's still profiting off of them. So is he conducting himself on behalf of the US government in a way that helps to enrich himself? Is that how he's crafting policies? These are the real questions that we can ask if we wanted to worry about Donald Trump and, you know, this agenda that he has. But the collusion story, you know, as I predicted, there was no evidence and you shouldn't make these extraordinary claims without having the evidence to back it up. And I'm not saying that you're not allowed to speculate. But if you're going to speculate, then you have to do it in a responsible way. So there's a lot of individuals in the political establishment and in the media class that use their platforms irresponsibly. And what they did for personal gain, ratings, political fame, it hurt the totality of the left. And we've got to come to grips with that. And we've got to figure out a way to actually stop Donald Trump in 2020 based on policy, making a real case against him. But now it's going to be harder because he's going to feel emboldened. So I'm glad that this story is seemingly coming to a close. I will reiterate that we've got to see the full report. But with that being said, the main claim of collusion was not proven to be true. So anyone who contributed to this, I hope that you will acknowledge how this was damaging and detrimental to the left's agenda. And I hope that you are introspective and you'll learn how to improve. That's all that I that I hope that we can not take away from this because, you know, nobody's perfect. There are people who do things that are wrong. I'm always trying to learn how to use my platform more responsibly. But I really hope that just the people who were the most vocal about this try to learn from this and just do better and be responsible because Americans bought into this hook, line and sinker. And now Trump's going to benefit because of it, which is sad.


Hi and welcome to the session. Today we will learn about roles and mean value theorem. So first of all let us start with roles theorem.  Then there exists some c in open interval a comma b such that f dash of c is equal to 0. Now let us see the geometrical interpretation of roles theorem. Here suppose we are given the graph of the function y equal to f of x. Suppose that roles theorem is applicable on the given function. Now as we know that the slope of the tangent at any point on the graph y equal to f of x is the derivative of f of x at that point. Now according to roles theorem there exists a point c which belongs to open interval a comma b that is in between the numbers a and b such that f dash of c is equal to 0. That means the slope of the tangent to the curve at point c is 0. So here we have the point c in between a and b such that the slope of the tangent to the curve y equal to f of x at point c is 0 that is here f dash of c is equal to 0. That means the tangent at point c is parallel to x axis. Thus this is the claim of the roles theorem that in the graph the slope of the tangent becomes 0 at least at one point. Let's take one example. Here we are given the function f of x equal to x square plus 3x minus 4 and we need to verify the roles theorem for x belonging to the closed interval minus 4 comma 1. In this as we can see that f of x is a polynomial function. So this implies that f of x is continuous on the closed interval minus 4 comma 1. Also f dash of x is equal to 2x plus 3. So from here it is clear that f of x is differentiable on the open interval minus 4 comma 1. Now let us find f of minus 4 and f of 1. So f of minus 4 is equal to 0 and f of 1 is also equal to 0. So this implies f of minus 4 is equal to f of 1. So now we can say that all the conditions of roles theorem are unsatisfied. Thus by roles theorem there exists some c belonging to the open interval minus 4 comma 1 such that f of c is equal to 0. So now let us substitute f dash of c equal to 0 and from this we will get 2c plus 3 is equal to 0 and from this we will get the value of c as minus 3 by 2 which belongs to the open interval minus 4 comma 1. So that means roles theorem is verified. Now let us move on to mean value theorem. Let the function f from the closed interval a comma b to the set of real numbers be a continuous function on the closed interval a comma b and differentiable on open interval a comma b then there exist in the open interval a comma b such that dash of c is equal to f of b minus f of a upon b minus a. Now here is the geometrical interpretation of mean value theorem. Suppose we are given the graph of the function y equal to f of x and also suppose that mean value theorem is applicable to the given function. So according to mean value theorem there exist some point c in the open interval a comma b that is in between the points a and b such that f dash of c is equal to f of b minus f of a upon b minus a. Now suppose this is the point a and this is the point b. So this is the secant a b and as we can notice that f of b minus f of a upon b minus a is the slope of the secant a b and f dash of c is the slope of the tangent to the curve at point c comma f of c. That means the slope of the tangent to the curve at point c comma f of c is equal to the slope of the secant a b or we can say that the secant a b is parallel to the tangent to the curve at point c comma f of c that means there will be a point c in between a and b such that the tangent at that point will be parallel to the secant a b. So this is the point c and the tangent at point c comma f of c is parallel to the secant a b. So I hope mean value theorem must be clear to you. Now let's take one example for this. Here we need to verify mean value theorem for the function f of x equal to x into 2 minus x where x belongs to the closed interval 0 comma 1. We can rewrite f of x as 2x minus x square. Now as we can see that f of x is a polynomial function. So this implies f of x is continuous on the closed interval 0 comma 1. Also f dash of x is equal to 2 minus 2x. So from here it is clear that f of x is differentiable on the open interval 0 comma 1. So with this all conditions of mean value theorem satisfied thus by mean value theorem there exists in the open interval 0 comma 1 such that f dash of c is equal to f of 1 minus f of 0 upon 1 minus 0 and from this we get 2 minus 2c is equal to 1 minus 0 upon 1 and this gives us c equals to 1 by 2 which belongs to the open interval 0 comma 1. Thus mean value theorem is verified. So in this session we have learned role theorem and mean value theorem. With this we finish this session. Hope you must have understood all the concepts. Goodbye, take care and have a nice day.


Hi, I'm Maxime. I work in the networking team at Red Hat. I mainly contribute to DPDK, where I maintain the VOS to the library and the Vertigo driver. And Adrian, who is joining soon, has been mainly working recently on VDPA enablement in Kubernetes. So, I will start this presentation by introducing Vertigo and VDPA technologies and provide an overview of the kind of VDPA framework. Then, Adrian will present how VDPA support is being enabled into Kubernetes, which will include an end-to-end demonstration. Finally, we will provide an update on the current status. And if time permits, we will answer to any question we will have. So, the Vertigo is an open specification that standardizes different type of interfaces for virtual machines. It defines the layout of the device and all the interactions that happen between a device and its driver. First, Vertigo has a notion of features which are negotiated between the device and the driver to enable backward compatibility. Features can either be generic to all device types, like for example features about ring layout or IOMU support, or features can be specific to a device type, like in the case of VDPA devices, the MTU feature, for example. The specification also defines the notion of VDPUs, which are the rings that I use to exchange data between the device and its driver. And finally, there is a notion of transport, which is mainly PCI in our case, but other buses are supported like MLIU. As of the Vertigo 1.1 revision, there are 24 different types of devices that are specified, and each one has their own specificities. In this talk, we will only focus on the Vertigo PCI networking device. So here we have the layout of the Vertigo Net PCI device. We can split it into two main parts, the control pass in red and the data pass in green. The control pass is composed of PCI bars, which include several structures, such as the command config. So this is a generic structure that contains fields used for the future negotiation, to specify the number of queues sponsored by the device, where we can find the device status, or the VAT queues addresses. Then we have also the notification related config, the device config. So this one is device type specific. So in our case, it is called Vertigo Net config, and its field will contain information such as the device MAC, the link state, or the maximum MTU. And finally, we have the ISR config, which is used to distinguish between normal VAT queues interrupts and device config interrupts. The Vertigo Net control pass is also composed of an optional control VAT queue, and it is used to configure different features related to the networking device, such as MTQ, MAC address or VLAN filtering. Then in green, we have the data pass. For Vertigo Net, it works by queue pairs, a pair being composed of one receive queue and one transmit queue. The specification mandates at least one queue pair, but MTQ is possible if requirements are met, both on the driver and the device site. Now that we have a better idea of the layout of Vertigo Net devices, let's see how it is handled in software. So in this slide, we can see two possible uses of Vertigo Net in the scope of virtualization. On the left, we have a full kind of solution where kind of Vertigo Net driver is used, providing a net depth to the guest. On the other side, we have the VOS backend, which implements the device handling of the data pass and it lives in the kernel. In this solution, QMU handles the control pass, which is both the PCI bar and the control queue handling. It translates it into VOS kernel protocol to configure the backend. On the right side, we have a full user space solution with DPDK, Vertigo Net PMD, which lives in the guest user space and DPDK VOS user backend in the host user space. As in previous solution, QMU handles the control pass, but this time, it translates it into the host user protocol. Both solutions are their pros and cons. The kernel solution is the default and more generic one, while the user space solution is more specialized for use cases, requiring high throughput and low latency. This is commonly used, for example, in NFT. But in any case, while these software solutions have a lot of advantages by providing standardized interfaces and by providing features like migration, it will have a cost in terms of resources. Utilization by the host, so it will let less resources to the end application. Also, even with full user space solution, the performance will be significantly less than when assigning SRIO VVS directly to the guest or to the container. The question now is, how can we improve the Vertigo performance while keeping the advantages? So the answer is by offloading Vertigo device handling to the hardware. There are two ways to offload Vertigo Net handling to the hardware. First one is full Vertigo offload. It means that both the data and the control pass are implemented in hardware. For example, in SRIO VVS. So the clear advantage of such a solution is, as you can see in the diagram, is the simplicity of the software side. You just have to do device assignment of the Vertigo device, like it is done today for regular SRIO VVS, which usually means binding your device to the FIO and passing it to QNU. While this solution is empty from a software point of view, it has several limitations. First, it means device live migration is not easily possible because the Vertigo specification does not cover the artificial tracking. Then it implies that the hardware vendor must implement the Vertigo control pass in its hardware, which might be difficult sometimes as maybe the control pass is not compatible when extending an existing device implementation. And more generally, it provides less flexibility. For example, let's imagine you find an hardware bug in the implementation of a given feature. You will have no over-choice of implementing quirks in the guest Vertigo driver to disable it. Which would break the standard driver promise. If we look at the availability of such devices, we can already find it in some bare metal instance of Alibaba cloud. We can also find it in the proof it to SmartNIC from Nvidia. The alternative solution to overcome these limitations is VDPA, which stands for Vertigo data pass acceleration. In this case, only the data pass is offloaded to the hardware, which is enough to address the full software implementation limitations. The control pass is handled by the host thanks to a dedicated framework, which is available both in the kernel and in DPDK. But in this presentation, we will only focus on the kernel framework. This framework can act as a translator between the Vertigo specification control pass and the hardware NIC control pass, which is vendor specific. It aims at providing back the flexibility that we lose with full hardware offload solution by making it easier for the hardware designer as the control pass does not have to be fully compliant with the spec. It enables doing live migration, either directly in hardware as the device implement the DPDK tracking mechanism, or assisted software live migration is such functionality is not supported by the device. And finally, in case a bug is found in the hardware design, it is possible to restrict features either at VDPA driver level or via the QNU command line, which both live in the host until it lets the guest driver and modifier. Hardware supported today in the kernel are the NVIDIA Connecting 6 NIC and also the Bluefinn 2 devices. We also have the Intel devices that use the IFC VDPA driver and soon also any full data offload devices I listed in previous slide will be supported as work is going on to provide the Vertigo VDPA driver for these devices. Now let's have a look into the details of the kernel VDPA framework architecture. The core of the framework is the VDPA bus. The goal of this virtual bus is to provide communication protocol to connect VDPA bus drivers and VDPA devices drivers. The VDPA device drivers are registered to the VDPA bus by the parent device driver. For example, in the case of NVIDIA, the MLX5 VDPA devices are registered by the MLX5 core driver. These device drivers implement a set of operations called by the VDPA bus to configure the device, such as callbacks to set and get VDPA features, callbacks to provide VQ addresses, VQ size, etc. This is where the translation from generic VDPA controls into vendor-specific controls happen. Among the available drivers, we find the drivers for the devices mentioned earlier and also a VDPA simulator. This driver is software-only and is used for testing purpose. Basically, it looks back packets from its transmit queue to its specific queue. On the VDPA bus driver side, we currently have two options. The first one is a VDPA bus driver. This diagram is a bit simplified. In reality, this green box contains a VDPA VDPA driver that plugs to VDPA bus, on top of which you will find the regular VDPA driver that you will usually find in guest channels. These drivers enable providing a VAT unit dev to the host. The overall option is VOS VDPA. Its goal is to provide a unified interface to user space applications, such as QMU or DPDK-based applications via the VAT user PNP. This driver is very similar to VOS kernel as it reduces most of its protocol, but it also adds a few protocol requests to set up things that are VDPA-specific, like DMA mapping or VAT unit config space configuration. Adrienne, do you want to switch to your presentation? Okay, so now that we know how VDPA works, we're going to talk about how it is integrated into Kubernetes. So, before we go into the details, let's ask ourselves, why? Why would we want to integrate VDPA into Kubernetes? Isn't Virtayo only about virtualization? Well, we see a number of use cases. First, as Kubernetes becomes the standard cloud orchestration technology, we're seeing more mixed environments where virtualized and containerized applications live side by side. For those cases, VDPA can provide a unified data plane solution reducing operational complexity. Qvert is a good example of this. Also, VDPA can provide accelerated interfaces to virtualization-based container isolation technologies, such as Cata containers, for example. Using Virtayo instead of SIOV in this case would enable smaller kernels, reducing memory footprint, boot time, and attack surface. And last but not least, VDPA can provide accelerated yet standard secondary interfaces to CNS. That way, they can use the vendor agnostic Virtayo user PMD and only certify their application once while keeping a good performance. So, let's look at this use case in more detail. So, CNS usually typically use SIOV interfaces to enable high-speed networking applications, right? Let's start from there. Next slide, yeah. So, this is a simplified view of an SIOV setup. So, we can see that SIOV devices can be consumed either directly by user-based applications, such as DPDK, if we use VFIO, for example, or by standard Linux applications if we bind a NetDev driver to the VF. Well, that is not different to what we would expect in the VDPA case. DPDK applications should be able to consume Vhost VDPA devices using the Virtayo user PMD, and standard Linux applications should be able to consume VirtayoNet network interfaces using the kernel stack. The only difference is that there are more layers of drivers in the kernel, but from the POTS perspective, it looks pretty similar. However, from the Kubernetes network orchestration point of view, we have found some limitations, and in order to understand them, we are going to present the Kubernetes SIOV ecosystem in a bit more detail. So, first, let's introduce the key players. First, we have the SIOV network operator. The operator creates VFs and binds the right drivers to them. Then we have the network device plug-in. It discovers VFs, makes them available to POTS, and then later on, when the POTS is allocated, it adds device specification into the POTS OCI spec. Also, it adds environment variables pointing to the PCI address that the POTS has been allocated. Finally, we need to add network information to the POTS, which is done through MULTUS or any other meta-plugging. These meta-plugging allow Kubernetes to call different CNIs for each network attachment, and in this case, we would use the SIOV CNI, who configures the networking aspects of SIOV VFs, such as MAC address, VLAN, etc. Also, if it's a net dev, it moves the interface into the POTS network namespace. So, let's see these key players in a bit more detail. So, first, we start with a node with an SIOV capable PF. The first thing that happens is that the SIOV operator comes in and configures this PF. It creates VFs, and it binds the right drivers to each VF. For example, here we will show one VF using a VFIO driver and another one using the net dev driver. Now the job of the operator is pretty much done, and it's the turn of the SIOV network device plugin. The network device plugin is deployed on its node and configured. The configuration tells the SIOV device plugin how to arrange SIOV resources into pools. For instance, in this slide, we can say VFs 0 to 3 go to pool 1 and VFs 4 to 7 go to pool 2. We can also filter based on the driver that is being used or in some other properties. The device plugin discovers the devices, creates the pools and tells Cubelet about them so that these resources can be allocated to pools. Now it's time to configure the SIOV CNI. We do this by creating a network attachment definition. This network attachment definition, in it we defined a secondary network and we can refer to an existing resource pool. For instance, here we can create a network called Extranet1 and that requires a device from pool, for example, pool 1. This way, Cubelet knows that when a pod request to be attached to Extranet1, it will have to allocate a device from pool 1. So now the system is ready to create new pods. When a new pod comes in, the SIOV device plugin is asked to allocate a new device. The response contains information that is attached to the OCI runtime spec of the pod. This way, the pod is able to access some of the node's devices, for example, the VFIO device of our VF. So it adds, and also additionally, it adds the environment variables, specifying the PCI address of the devices that it has been allocated. So now it's time to configure the network. This is drawn from Moltus. Moltus first configured the default network and then it calls the SIOV CNI. With the PCI address of the device, it has to configure. So then the SIOV CNI can set things like the MAC address or the VLAN tag on the VF and move the NetDev interface to the pod's network namespace. So now the pod has a network interface called NetOne. Finally, Moltus gets all the information from the CNI and writes it into the annotations of the pod so that the container, when it starts, it can access the annotations through the downwards API. In this figure, we show the use of a library called AppNetUtil, which we'll talk about later, but what it basically does is parse the content of the network status annotation and offer an ATV API to workloads. Easy, right? It's a nice diagram. So we've found that this approach has several limitations. First, the pod has very limited information. It only has the PCI address. We need more than that for VDPA. We need to know what Vhost VDPA device to use, for example. Also, the network status annotation does not have device information. So the pod does not know what VF is associated with but with which network interface, which network attachment. The CNI has very little information also. Finally, VDPA provisioning has some extra steps and some of those steps actually might change because there are certain efforts still going on in the kernel community to develop some management tools. So in order to solve these limitations, we created the device info specification. This spec defines a way to share device information in a standardized JSON file. So the file is created by the entity that creates the device. In most cases, this is the device plugin. Moltus understands this file and adds it to the network status annotation. Thus, binding the network information with the device resource information and making it all available to the pod to consume. This spec has been hosted by the Kubernetes Network Plumbing Working Group and you have the link down there. Also, we have improved the network device plugin on the CNI by adding support to the device information spec, adding support for Vhost and Virtio VDPA devices and adding a new selector that can be used to filter devices based on the VDPA driver. The new selector is called VDPA type and also finally just to mention that the low level VDPA management has been moved to an external library so that we can keep pace of the work that is being done in the kernel. Also, we have improved the library that I mentioned before, AppNetUtil. It provides a native API to workloads based on C and Golang and it now supports the device InfoSpec and VDPA. Let's go back to our diagram. This was how SIOV device assignment worked in Kubernetes. When we add the device InfoSpec and VDPA into this, it turns into this other diagram. Now, the device plugin configuration tells the device plugin what kind of VDPA device it has to deal with. The device plugin discovers and filters VDPA devices and adds them to the pools. Also, the device plugin writes the information, the device information into the device Info file and this file is then read by MOLTUS and added to the network status annotation. The rest of the system behaves in a similar way. So, pods can access, in this case, Vhost, VDPA char devices and Verteionette network interfaces. This is what we're going to demo now. If you can play the demo for me, make some noise. Thanks. In this demo, what we can see is how we are running on a cluster. The cluster has essentially two nodes. We're running these commands on one of the nodes. We're using Connectix 6DX for pre-configured, pre-created VFs. Now, we're going to inspect the VDPA devices. The VDPA bus is very similar to other buses in the kernel, so it can be inspected through the CISFS API. So, we can also inspect which drivers these devices are bound to by just using this CISFS API. We see that we have two devices bound to the Verteio VDPA driver and another two bound to the Vhost VDPA driver. Now, we'll inspect the device plugin, Australia VDevice plugin config through its config map. It has three pools configured, but only two will be used in the demo. Basically, they use this new filter to select the VDPA devices. So, Vhost VDPA devices will go to one pool and Verteio VDPA devices will go to another pool. Now, let's make sure that the device plugin is running on both nodes and that the device plugins have detected these devices and have added them to Cubelet. Using this command, we list the allocatable resources known to Cubelet. So, we can see there that we have our two resources. Great. So, the device plugin should have also created the device information files for us, so we can check that because they should live under a standardized file system path. So, we can see our four device info files there. We can check the content of one of them, for example, and see that it's a JSON file containing the necessary information that will be needed to consume this device. In this case, it's a Vhost port. So, now we're going to configure the CNI and we're going to do that by creating a network attachment definition. One thing to note here is that the network attachment definition is a completely standard one. It has no changes required to support VDPA. So, we're configuring a VLAN tag and a trusted mode, et cetera. We'll create two of those, and now we are ready to deploy our DPDK app. The DPDK app we're going to run in this demo is a sample DPDK application running test PMD transmitting packets and also test PMD receiving packets. So, let's deploy it and let's check on the logs of the generator and the receiving end. So, we see that packets are flowing and packets are flowing from the generator and also packets should be getting into the test PMD that is receiving packets. So, we will show just in a second what the DPDK command line looks like on any of the nodes. Just to show how AppNetUtil was able to generate this command line. So, we see that it's using the test virtual user PMD and, again, this command line was generated just from information that was inside the pod and to verify that we can describe the pod and look at its annotations. So, there we see that the annotations have all the needed information, the networking and the device information nicely tied together and available for the pod. So, we have five minutes left. So, Maxime, if you want, we can skip the last part of the demo which is available, will be available in slides and we can go straight to the last slide in which we can talk about the current status and next steps. So, back to you, Maxime. I'm not muted. So, about the current status, for the lower layers we have the end-to-end solution which is available upstream from Karnel to both QMU or DPDK applications. But still there are some gaps and work is going on or is planned to address these gaps. There is a VDP management tool which is based on DevLeap that is being discussed upstream. There is also the control via Q-Support that I mentioned in the beginning of the talk that is also being... that has to be added to the Karnel and when it will be done we will be able to implement it both in QMU and battery user PLD. And finally, on the DPDK side we will add the config space written request of the Vost VDP protocol that we are missing which will be added in the Vost user PMD and for the company to be able to get the MAC address directly from the hardware instead of passing that via the annotations. Right, and in the Kubernetes angle we are currently working on the SRV network operator stuff and also some of the vendors will support VDP in shoot-step mode so we are working on other CNIs like the upcoming Accelerated Bridge CNI in order to support shoot-step cards on secondary interfaces on top of which we will add IPA support and also, well, there is OpenStack support coming in and that will be it. So I see we don't have a lot of time remaining. Thank you very much. We also have two questions from Thomas. One of the first question is can you do the same with the with sub function instead of the F and Thomas is also wondering if Cata is a must for SRIOV So for sub function so if people are working on it it will be supported in the future and for Cata no, the Cata is not a must it's just that VDP makes a lot of sense in the scope of Cata Continents. All right.