Let's talk about the concept of variable scope in C. We'll investigate it with this program, which is designed more to demonstrate the concept than to do anything particularly useful. At the start of the program, there's something you haven't seen before, declaring a variable outside of the main function. When you do this, the variable scope is global. It's accessible to all the other functions everywhere in the file. Whenever you encounter an opening brace, C opens up a new scope, an area where variables can be declared and accessed. In this scope, we declare variables B, C, and D. These are local to the scope that was opened by the brace. What happens when the program encounters variable A in the if condition? It isn't, and the program goes up one level of scope and finds A at the global level with the value 11. 11 is less than 100, and the opening brace of the if block opens up another scope. And a different variable named B is allocated in that local scope. C will not complain about a duplicate variable name. B is unique in its scope. Now the program evaluates the right-hand side of the assignment. A isn't in the current scope, so we look at the enclosing scope. It's not there either. We go up to the global scope and find variable A with value 11. B is found immediately in the current scope with value 44. Variable C isn't in the current scope. We look up one level and find it with value 33. The right-hand side works out to 88, and it gets stored in D, which is found one level up from our current scope. When the program encounters the closing brace, the current scope is ended, and any variables declared in that scope go away. Later on in the program, when we print variable B, the only one that exists is the one in the current scope. It will print 22. And when we run the program, that's exactly what happens. Another way to think about scope is from the source code view, using rules to find a variable. Look upward to find a variable declaration.  You can look up through them. Closing braces are a metal floor. You can't look through them. For example, when looking for variable A here, you look upwards through all the open braces and find it at the global scope. When looking for variable B here, we won't find the one inside the if statement. The metal floor keeps us from seeing it. Instead, we find the variable B that's visible through the glass roof of the open brace. Having local scope for variables and function parameters becomes very advantageous. The parameters x, y, and variable result defined in function mean are in that function's scope. They're local to that function, and nobody else can access them. If I try to access the result variable from main, the metal floors in the functions will block me. The local scope of parameters and variables in a function means I can name them anything I want, and I know there will never be a conflict with declaration. If I try to access the result variable from main, the metal floors in the functions will block me. That means I can name them anything I want, and I know there will never be a conflict with declarations in other functions.


It's R-A-S-H-N-I-Q-U-E, my last name is Edmund, E-D-M-O-N-D, and I am a staff sergeant, I'm a radio retrans supervisor. I'm feeling motivated. I'm pumped. I'm glad to lead from the front. I have a lot of motivated signal soldiers at Whitney too, and we're just ready to lead and show what signal's all about. It's really important. It's imperative that leaders show that motivation, especially for their soldiers. I was asked during the board, how do you get that motivation for your troops? And it's by leading from the front, and I think by doing so my soldiers felt that and they were able to finish strong. The Weaver, for sure. The Weaver was definitely a challenging one. I haven't done it for so long. I went to aerosol school when I was a young troop, but my soldier, Specialist Martinez, was able to finish it. He did a great job. I'm super proud for them. This is the first time that they were able to do a competition at this level, and I've done so many throughout my career, and it's great that they're able to get this spotlight. Honestly, this is what soldiering's all about, and for them to have this opportunity to do this is great, and it shows them what it takes to put the work in and how that result of finishing. Even if you don't win, how finishing can also be like that strong driving force. Well, I'm big on the law of addition from 21 Irrefutable Laws, so I was able to add value to my troops, and they're able to carry that on to their troops. So by them doing this, I know that their soldiers are going to be able to do the same. So as a leader, it's great to see that. Holtown is New Jersey, number two New Jersey, born and raised. We're the backbone of the Army, so by being that leader as you see me, motivating them, cheering them on, I'm that backbone. Even if they fall down, I'm there to support them, bringing them back up. So to be part of that, to be part of that core, it means a lot to me. First name is Justin Camp. It's J-U-S-T-I-N-C-A-M-P, Staff Sergeant Camp, and then 16 BB. All right, so N-C-O-I-C for the obstacle course. Yes, today the soldiers are going through the obstacle course for the best squad competition. All right, they compete as a team. They need to be mentally tough. Like, it's not as simple as, hey, I'm just going to hop this fence. They need to be smart. You've got to work together as a team. There's a lot of team bonding here, so they've got to be physically and mentally tough. The weaver and then the ladder with the chains, because the weaver slows everybody down. Like, no matter how good you are, it takes all four minutes to complete. Like, so I'm really fast. And then the last one is this chain one over here to my right. It's pretty difficult. People start climbing over top and they get to the top and they start getting hesitant because it's pretty high. And then they come back down and they're fine. It's good because it shows character for your soldiers, right? You help build those fears because there are times you'll be scared. Like, at the top, you get a little nervous sometimes. So they're working through their fears and it's good. It's a good thing in the hole. It's very humbling. You get to be out here to help these guys out and do something for them because they're showing for the post what the post has to offer. So it's very humbling. All right. So as NCO is giving purpose, motivation and direction is very important because a lot of these guys get scared or hung up. They need someone to be there for them pushing them through. So I mean, it is important. As the NCO I see for the overall range, I find it very humbling again to be here helping out and supporting you guys. My name is Jason Martinez, J-A-S-O-N-M-A-R-T-I-N-N-Z. I am a Signal Support Systems Specialist of 25 Uniform. We competed and we worked as a team to make sure we went through the obstacle course as fast and as proficient as possible. The most difficult part of going through this obstacle is just remaining calm, keeping your composure and making sure every step of the way you do everything correctly has a team and make sure you can finish. I joined this competition to represent DSSB and show that we also have fire in our troops and compete and come out here and show what we're made of. Oh, well, Sgt. Ann Mintz has tons of experience as a leader. She's a great mentor. Her leadership skills, there's no question in them. She has proven itself time and time again. If you see us during the obstacle course, all those that are supported soldiers and just put fire in us to make sure no matter what we do, we do it correctly, make sure we finish strong, and she's a great leader all over all. I just have to show the standard. So, me as someone who's going to be a future NCO, I've got to make sure that when it's time to work and when it's time to play, it's time to play and make sure that there's an equal balance.


Entity No. 8 Habitat Majority Description The name Hound comes from the dog-like nature of these entities, crawling on all whores and mauling anyone that provokes them. Hounds are humanoid with strange biology, with arms and legs that are built for travel on all whores. They are highly aggressive and are made aggressive when they see someone in an aggressive state, but can be intimidated by direct eye contact. Behaviors Hounds become hostile the moment they see a human. However, they become intimidated when you give direct eye contact and stare them down. This won't work for long however, but it should be enough time to get your barrens and make a run for it. However, if you hear a growling noise, it's safest to stay out of sight of a hound.  They have sharp claws and an extremely large mouth with sharp teeth. However, this is often unseen due to the amount of hair. As mentioned, they walk on all whores and have a lot of power when they attack a target, despite appearing sickly skinny. Hounds hatch from eggs that originate from the hive. Discovery One of the earliest known video recordings of the back rooms depicted a wanderer running away from a hound in an area that resemble level zero. However, since we don't currently know when the hive was spawned, if it even had a beginning, we can't determine the origin of hounds at this time. Do's and don'ts. Do. Keep direct eye contact with hounds if one is approaching you.  Don't. Run away from hounds the second you see one. Attempt to tame them.


Good morning. It has warmed up to a brisk zero degrees. We had a little bit of a flash freeze last night It wasn't supposed to get too cold, but it got really cold like 10 below got the fire going Danielle is working on the crossword We've been working done.   We're looking for a clue. It says Five letters type of trout that Danielle catches that are giant begins with a B and ends in a K Brick we're thinking brick trout Fires going I let it burn out last night and I got up around like five this morning To get it going again because everything froze solid in here like all the water jugs water on the pot What are in the mugs water in the percolator? It was it might have been more than 10 below But things are thawing now worth on now and we're looking forward to having a really good day We're gonna drive some breakfast right into us first. Maybe some hot coffee. Got that perk in right now Turn that down a bit and then we're gonna make a plan of what we're gonna do for the day It's gonna be a fun day. I know that no matter what They had a pile of But you know who's got chickens now is Sarah and she's got them all named Have you seen that oh, it's great. I love it And then like another one jumped in like took over the interview No, I didn't see that one. Oh my god. I got a classic like this is so this one personality Oh my I gotta see that then she's such a sweet Sled running That sounds awesome every year. He puts on and they like maintain it. I he has all he has old Snow plowers that go on the back of the That horses like draft horse. Whoa, it's like a big rolling pin. Oh, that sounds awesome Is it in our area? Do you know her hogback mountain is in like Freedom No, good like that area. I Like this Yeah, I was at the library and somehow Came across this video. I was like this looks interesting like anything that's called like now We're cooking and it's like a main homemade documentary. I'm like watching this but then when I was working in freedom I would hike the hogback mountain and I realized oh, this is That they do the racing on them like I came across the course and saw the big Wheel Is the mountain decent like what is it compared to like ragged? Oh Small But the trails are gorgeous Or is it hogback or fry mountain? They're in the same area. Oh, there is a fry mountain in freedom That's the one. Maybe it's on Or No fries, maybe the one that I used to hike a lot, but I think that the race is on hogback, but anyway Have you been to the the Camden like Toboggan races. Have you seen that toboggan champion? Yeah, I have a long time ago But this is what happened this year That's when that cold snap happened. Oh was it Like the whole thing usually it's on I think it's usually on Friday Saturday and Sunday, so they had to do all the races on just the one day on Sunday That's bad luck the only cold day of the year I've awoken the beast behind the scenes with Joe Holland fishing I'm cooking breakfast and look the man is back in bed And these poles are so short Yeah Is it pretty sweet all right Tubby zone Oh, you got that on video. Hey Is it all right? Great one Probably better in the woods, too. Yeah, this is gonna be great. Do you think you might go up this trail? Do you think that which way do you think I should go left or right? You know I'm the most indecisive person in the world Probably left. I was gonna say right. Well, I always say right, but I don't know how these trees are gonna treat you Probably right. Go right. Yeah, go right. Right looks better to me in my head I was gonna drop you off right here so you could go that way anyway like go and then Yep, so you'll it's just navigating the end of this It's not too much further past what you could see the end of this road. I slept there one night Just as I'm feeling like that way Yeah, that kind of looks more extreme I'm pretty sure you got some steepness. It really doesn't matter. Yeah, you'll probably hit less snow if you get into that green growth But I don't know Yeah, I know I'm doing like going up here and then just cutting once you hit the green I'm pumped for you. I don't know of any streams or anything. But yeah, if it is it's just minor you want another No, no, that's good.  It's way steep So she's got her snowshoes. She's got her poles. She's got pretty heavy pack And she's water. She got water. I got snacks. I got extra layers We got a really late start. You know headlamp. Yeah, I have my emergency Rescue beacon. I have first aid kit. I have an extra light. I Have a knife fire starters a lighter Toilet paper It is one o'clock now So it's kind of a rush trip because we're gonna meet at 430 right back here I'm gonna go shed hunting. They're just exploring on the snowmobile So that makes me feel really good and this makes her feel really good.  No And I don't know if she's got enough time to make it up there or not But she's an animal and I have no fear with her because she just spent three years hiking across and a continent Doing this same thing but even bigger the continent This is probably not the biggest mountain she's ever climbed No, but this is the hill challenge because it's no trail. Yeah, and um In the in really deep snow and you're bushwhacking bushwhacking so Yeah, it might take me a lot longer than I'm might suspect but And you have a you have a phone. I mean a time device. Yes, I have my watch might Beautiful. All right, we're good to go. Okay Yeah, I'm good. Yeah, feel great. Okay, you look great here one more Shot of liquid courage liquid courage That's coffee coffee I'm gonna watch you go for a little while. Yeah, you're gonna send the drone. I don't know if I brought it I think I left in the truck, but I can run back here. Okay, but it'd be hard to fly with this wind I don't know where this wind came from guys. It was not supposed to rain or get blowing straight sideways today So we're gonna we're gonna get back to camp at dark.  It's not a big deal We'll fix it no matter what that's true And then we're gonna fish the plan is to fish tomorrow Most of the day tear down camp try to get out of here by tomorrow night because then there is rain coming tomorrow night So it's never fun in the rain But she's there's a pretty good chance. She runs into a herd of moose Up on the south basin bank So she might actually run into like dozens of moose up there, which would be so cool Put your arms up and make yourself look big if you see a moose. Okay. Okay. They won't bother. This is exciting I'm pretty excited for you my first snow shoe of the season All right. So the plan is I'm gonna pick her up in three and a half hours right here if the helmet's gone And or I see her tracks before that she's made her way back to the truck We're in like five to seven miles from the truck already. So it's a hike back out. Yeah. Yeah So with darkness lumen. All right. Have fun. All right, break the leg Have fun. All right, thanks Thank you Is it hard going? Is it hard going or okay? You want my snow shoes? No, no, you don't. No, okay Yeah Oh, yeah, whoa Nice Yeah, nice Yeah, have fun All right She is an absolute beast Very very impressed that she One has the courage to do that. We're up in the wilderness and two has the ability to do it too. So Hope it ends. Well, hope it works out for I know it will I'm gonna do some snowmobile ride and check out some new areas On the snowmobile to me some old areas where I used to trap And uh, maybe I'll find an antler. I doubt it. It's we've got another foot on top of the snow Since I was here last and it crusted up too. So anything that had fallen previously I don't even think I'll feel it if I run it over, but you never know they drop them late I saw some antlers on some heads the other day. So maybe they'll drop them now, but we're gonna have fun no matter what Come along Oh, boys It It looks like we got an antler ahead of us. Let's get up there Yeah, boys, we got an antler. Ha ha never gets old. This one's super weird. I haven't touched it yet But it looks like There's no moose tracks in sight There's some old ones over there That have been snowed on no looks like several times Some more in the woods over there But there's coyote tracks all around here So I don't know Before I grab it.  I don't know if the moose broke that off or The coyote chewed it off But there it is Yeah, that looks like it's chewed off chewed on the time there Every one of those times is chewed But that one looks like it's chewed and swallowed so I don't know kind of looks like the coyote dragged it out here Was chewing on it And he dropped it so I could pick it up Thank you coyote. I will not trap you for your fur this year Oh boy I think we got another one I think that's one down there Once again, I'm following these coyote tracks and anytime they deviate from the middle of the road or From the road I go over and check it out and here's uh, here's a hole dug And it looks like there's a bone in there Yep, that sure does look like an ant there Yep Oh boy Oh boy, how big is it? Oh boy Oh boy, I'm getting excited. Do I need the shovel? I don't know. I don't know if I need the shovel or not But I think I'm gonna get the shovel anyway So I could dig around This area after but Well, we got a point. Oh god little guy Might be a match to that one we just found No, he's he's a lot bigger Way bigger Let's get the shovel Second one of the day That's awesome. All right No idea If there's anything else around We got deep snow All right Second one of the day That's a nice one right there Probably the other ones around here somewhere But There's just so much snow and I don't have the nose of a coyote So if he didn't find it Then We'll have to be in the spring There's a little lump up ahead. I'll go hit with the snowmobile And see if it's an antler Let's go check her out Oh, that's the cool thing about coyotes I found more antlers from coyotes showing me where they are Back at it guys. This is awesome I made it back to the rendezvous point. I'm a little early, but it looks like it was perfect timing because I see Danielle treading down the hill So I'm gonna drive a couple pieces of pepperoni And cheese into me That was good time. Yeah, that was good timing You did you made it to the top?  How was it? Oh, I fought for 40 to get down to wow Yeah, it's deep up there, dude It is? Deep? Whoa Yeah And it's like Oh, man, that was hard Easy Have you got a challenge? Yeah, it was not hard like I mean it was not easy It might be the last time I felt she For like real was when I was at skips And we got We got 48 inches of snow Overnight and it was powder So I knew it And they had asked us to go It was I think a mile down the road to the Login company. Yeah, and no one was there. So they were like after seven days No one could get in there like can you guys go check and make sure our generators run until the pipes don't freeze? And we couldn't snow the others just too much on the sleds. Yeah, so we did it together and you would Like I had big ones. He had big ones and he's your size He would still go every step down to here. It was freaking I was in shape then. Yeah. Yeah But it was brutal. We would do like literally 10 steps and switch And like when we switch you would just fall But you'd still be like this because the snow is holding you up and you'd be like come on And it's so it's kind of better to like did you just like stop drop and roll like all right. I'll get the new path Yeah Roll or like but it was like I remember it was as high as you could possibly lift and you had to keep your toe off And you actually had to go backwards forwards pack We were only packing like once Yeah I think it was Four or five hours to get there and like a half hour to get back Once we beat the trail and it's like It's like also just like really like hard on your mind. All right Shall we? Shall. All right guys, we made it out Super super successful for both of us. We had a great time both accomplished our goal. Danielle made it to the top Got around up there. She said it was pretty brutal with the snow. How deep it was it was It was like thigh high And here's the two sheds I found Super stoked about those that one's a beauty right there Um doubt it's a matching set Let's put them together. See what you guys think I'm thinking no But they were they were super close together So yeah, so pretty fun awesome finding those antlers.  Tiring and a lot more snow than I expected But it was fun All right guys, we made it back to the parking area. We got about a six seven mile sled ride in To the camp and the crazy thing is we had this place Hold to ourselves all week plenty of parking and I got back and there was nowhere to park The place was full just from us leaving for this afternoon. So three three different groups came in and uh, I'm able to find a There's a couple there couple there but I was able to find a parking spot by Pretty much running her up on the snow bank pretty hard. So hope we don't get stuck. I don't think we will We'll shovel her out if we have to But that's us right there We're into it Daniel. We're into it pretty good All right, that's gonna do it for today guys. Awesome. Awesome day for Daniel and I. We both nailed our goals She Tried to climb a mountain with a ton of snow and I tried to find antlers when there was a lot of snow cover and I can't believe it, but we were able to do both things. So Pretty crazy. So don't you know, don't uh Always stay positive, you know, like There's a foot of snow on top of three foot of snow on top of other antlers and Somebody already driven over this one antler. I'm sure of but the coyotes had dug it out So the coyotes had led me to the first antler chewed a tip off of it and set it in the trail And then the second one They they dug it and I found it from like a hole in the snow So it was really cool for me and just stay observant And you know, it's not that great. It's not the best time to go antler hunting, but it worked out for me today was Really fun. I love finding antlers. It's like it can be super addictive and then Daniel's climb was crazy today A lot more snow than I anticipated I thought there was gonna be less snow the higher I went, but I'm I was proven Otherwise, I don't even think I told the folks how high was that snow's thigh Yeah, I was sink. Yeah thigh high Every step every step even with my snow shoes. I was sinking down and then so I just was able to practice patience and Trying new techniques. I found new techniques to Do like two little steps And then a big step in order to make the going easier So yeah, never give up and stay positive like Joe said, but I accepted that it wasn't gonna be it wasn't the hair kind of day. It was the tortoise kind of day Slow and steady and practicing patience. And you told me The time it took what was the time again? Yeah, it took me two hours and 10 minutes to get to the summit Jesus And then it took about 40 minutes to get back down to our meeting spot Nice and the funny thing was we we met up within three minutes We just showed up at a random time We met up within like three minutes of each other, which was pretty neat too. So then The bad part was the weather came in today and it rained of all things It was like freezing rain when Daniel hit the summit when I was looking for those antlers and then The wind turned and it's blowing pretty hard out of the south So we tied off this wall just to make sure because I couldn't anchor down to the ice We tied it to a bait bucket full of water So it shouldn't blow in on us or blow into the wood stove So we took that precaution and then we had one Major malfunction today with the tote sled being empty I backed up and it like got caught up and it just snapped that otter hitch off Just like a twig that it's brand new. It's like two days old or three days old And I think the welds were bad. So we were going to go to a log yard and see if we can get it welded and luckily Jay at the Allegesh Wilderness Waterway had an extra hitch that they're going to let me borrow To get all the stuff out of here when we leave and then if we hopefully we remember to drop it off Danielle's going to do her best to remind me Otherwise we've got to turn all the way home back You have to turn Awesome. Well, thanks again guys for tuning in. We're having a blast. We got uh one Maybe half day left tomorrow. We're thinking about setting for some brookies tomorrow And just having a great day and trying to get out of here before the big rain comes in Which rain is no fun when you're winter ice camping. What do you think Danielle you want to sign out? Ah couldn't be better Nice Got back to the camp To see the tent still Intact yes No leakage either because it had been raining on and off all day. So we're worried it might be a little wet in here or it might have One side might have blown down or who knows so we were able to get right in and Get the wood in the stove Warm up and all of our stuff is pretty much dry already I forgot to show the folks at home. Yeah Everything hanging out. I've turned the I've turned the whole tent into my closet Yep, my stuff is hanging various places too, but we got all sorts of stuff hanging and tucked in That's the cool thing about the about these eskimos or they have room for everything in them And even these these side pouches are pretty awesome too. So And then the wood stove is just about heating us out It's pretty perfect And after that flash freeze last night daniel's Beautiful trout froze. So we didn't get a chance to fillet it today, but we're throwing it out So that way tomorrow midday we can thought we'll either eat some of it or half We might eat half of it tomorrow If you if you feel up to it or we could just fillet and bring it home and she could cook it up at home But yeah, that's gonna do it guys. Thanks again for tuning in


Welcome back everyone. Today I just wanted to show you some highlights from a debate yesterday between a guy named Destiny and a guy I know you're all familiar with Robert N'War. You definitely want to check this one out because at one point Robert actually gets Destiny to admit that these riots are really about hurting Trump. Robert definitely came out on top But like I said, this is just the highlights. If you want to see the entire two-hour debate I'll put the link to Destiny's channel in the description and in the pinned comment. Before we start though I do have to take a quick capitalism break for this channel's sponsor and a special deal for my subscribers The VPN I choose is virtual shield because it's the easiest fastest and has a plug-and-play 30-day free trial Virtual shield wants to offer a 50% off all VPN plans and all premium add-ons including protection plus residential access and VIP performance plans for as low as a cup of coffee. Sign up for a free 30-day trial of virtual shield VPN and see what all the hype's about. You have nothing to lose. Please visit www.virtualshield.com Ford slash drone tech.  So in a way The protest and the riots are about protesting against this particular black death. That's what they're about But they're not there because of just that one person getting killed Does that make sense? I understand what you're saying. I do but again, it all cruxes on the point of the oppression But we can't just look at it. I thought we were in agreement. You can't just look at the data You have to look at the underlying reasons So for example if these riots are legitimate over that what if there were and there were riots over Michael Brown That was a lie. Hands up.    Who cares it was still fucked. So wait, so wait, your argument is if cross racial That that's the oppression. It's cross racial deaths. That's what we're gonna. It's not just cross racial death It's it's the like that plays into the larger narrative that like if you see a black guy wandering around a neighborhood Like maybe we should go hunt him down. What what what about the um fuck? I don't even remember the guy's name They just got driven down in a truck by the two or three white guys that shot him in the street because they thought that he was stealing Something because he walked into a house under construction and then walked away Armand people.  That's not what it is statistically You're almost 80 to 90 percent most likely be killed by someone within your own race So the idea of cross racial violence We should just dispense with it that somehow that's indicative of something anyways but if you focus on it like in the George Zimmerman case well the data clearly shows that White people are being are killed at a higher clip from black people than vice versa and by the way Zimmerman wasn't eat I believe he identified as Hispanic, but then again because the people in power want to use blacks as pawns They said oh, no, no, no, this is a narrative of a white killing a black person I don't think it was the matter of who killed the black person It was just the idea that a black kid running around through a neighborhood could be extra Judiciously hunted down and murdered by a guy felt like he was protecting his community Whether the guy was Hispanic or Asian or white or whatever So if the data is the if the data shows the opposite end Do you think white people have a legitimate grievance that they're killed more by blacks?  It shouldn't happen. It sucks But like I don't that that's not my problem and I would feel it's probably not the problem of most African Americans That's not what destiny said you said it's right. We're agreeing. It's not about Police murdering the person because the races you said that's not the case.  We solved most of the easy racism sexism in America has been solved We typically don't have communities of people hanging black people off trees women are allowed to vote people don't stand outside places of Businesses saying Mexicans or Irish need not apply like most of the easy Racism and sexism stuff in the US and most of the Western world is more or less been solved now a lot of it is a lot harder to See well now I mean that's really important if stuff like this and Trump's response ends up making him less likely to get elected I assume most of the people protesting a rioting even would assume that that's like a victory on their part I mean that's outrageous though if you're riding for that kind of political reason that's even worse I mean when top-down when the only responses Trump has given is that when the looting starts the shooting starts or what like quoting? Literally that's what happens literally quoting like a racist cop from 68. I think like like that's not a good look Like that's not a good way to manage your citizens protesting like when you're literally tear-gassing people out So you can do a shitty photo op in some cemetery or church or whatever that's St. John's place Whatever like these are really bad looks for how Trump is handling things and I'm sure a lot of people be happy with literally anybody else at the helm But him I mean I think that I think that what you're saying gets to a truth of what a lot of people are thinking on the left Which they they actually like these riots and I think that this could be a reason This is the conspiratorial nature me But this could be why people like the Blasio are like yeah go ahead keep riding We're just gonna give up parts of the city and be unwilling to accept the National Guard I don't think there's conspiratorial at all. I think that effecting political change like this is fine Like that's part of the goal like like activism and riots are one side of the coin and the other side is voting like being bringing awareness to issues like this You know and an attempt to get people to vote differently as part of the goal, right? If we're looking at it in a political calculus and you're a Democrat and un-Republican, I would be happy to have that sound


Today's question comes from James in the UK. He asks, will removing .html from my URLs help my site? URLs are important for search engines like Google. Do they care which endings your URLs use though? The answer is no. Google uses URLs to identify pieces of content. Whether your URLs end with .html, .php, .asp, or just have words in them doesn't really matter to Google. All of these URLs can show up in search in the same way. That's it. If you need to change your URLs, for example, if you move to a new content management system that doesn't allow you to use .html URLs at all, keep in mind that this change would be a restructuring of your website. You would need to redirect the old URLs to the new ones. This kind of change can take quite a bit of time to be reprocessed. So picking a time when you're not dependent on search is a good idea. And because it can take time, we don't recommend doing this kind of change on a whim. When making URL changes, pick URLs that you're sure can last a longer period of time. We love sharing these videos with you, so please like and comment if you're enjoying them.


Bone marrow is a very special food to any human alive right now. It's safe to say bone marrow and brain tissue that were enclosed in the bones and skulls of animals are likely the foods that we ate which separated us from our ancestors. If we scavenged a corpse, the only meat that would have really been left that couldn't have been picked away by the coyotes, the vultures, the bugs, all the scavengers would have been the bone marrow and the brain tissue. The only way to access these two foods is to break the bones. And of these larger animals, they are very difficult if not impossible to break for any animal without the use of tools or fire. If you take this bone, you can barely cut through it with a bone saw. Imagine trying to crack it open with a rock. If you take this bone and you throw it in a fire, the bone becomes very brittle and it breaks down. Through our use of tools and fire, we were able to procure very nutrient dense bone marrow and brain tissue from these carcasses. Bone marrow is unique in its nutritional profile. It has every vitamin our body needs, vitamin A, E, K2, small amounts of vitamin C as well as minerals and elements. It also has fatty acids, linoleic and linoleic, the precursors to EPA and DHA. The only food you would really need to eat outside of bone marrow might be a protein source and then you just have to get your vitamin D3 from the sun. It is a very nutritionally complete source of vitamins and minerals as are other very high quality animal foods. Bone marrow in particular is something that I really enjoy the taste of and it is a food that was prized by our ancestors and one of their favorite parts of the animal. Here is a grass fed bone I got from Whole Foods. Just had them cut it canoe style. I let this sit to room temperature. If this is cold, the marrow is very hard to scoop out. If it's warm, it's much easier to get out and if it's hot when you cook it, this actually melts into liquid fat. I personally prefer the taste of this raw. It has a very mild smell to it and the taste is also very mild. This is like a treat. It's like beef butter. The texture is not as soft as butter and the flavor is milder than butter. Sometimes I just add a little bit of honey on this. It's really good. Most of the time I just throw it on the grill, melt the outside a bit, warm it up and then sprinkle some salt on top. In regards to concerns about getting sick, the only thing you have to be worried about is cross contamination from the butcher saw. So what I do is before I ate this, I scraped the outside off and if you really want to be safe, do what I usually do. Throw it on the grill for a minute or two on each side just to burn all the bacteria off the outside. Oh man, I can't eat another bite. This was a really deep bone.  This is probably like 5 or 6 tablespoons of pure fat, like 7-800 calories. I don't want to eat anything else. I mean, I can always go for a steak and eat more, but if this was all I ate for the week, I could probably sustain myself all of it. The nutrient density of animal foods is something that's so apparent and how these foods taste in their natural state for me really reinforces the carnivore diet. So you could take those bones, roast them, and then make a bone broth out of them. What I actually do with my bone marrow is I scoop it out, I put it in jars, and I let it ferment on my counter. So this has been going for like a week and a half, I think. And oh man, is it funky. Oh, it's essentially rotten meat. It smells almost like cheese. Every single indigenous group consumed these fermented animal foods as the fermentation process increases the vitamin K2 content. Now, the reason I specifically like fermenting bone marrow is because to me it makes sense. If we found a corpse like a week or two later and the bones were still intact, when we cracked those bones open, if they were in the summer heat for weeks to maybe a month or two, they would have been like pure rotten, stinky cheese. So to me there's definitely an element of fermented foods missing in modern diets that I'm trying to replicate. If you taste that in a day of eating video, I'll show you guys that another time. I just ate 700 calories of bone marrow.  So as I said earlier, the bone marrow is a nutritionally complete source for the most part from a fat-soluble vitamin perspective. It's an excellent source of caloric nutrition.  If you guys are looking for this stuff, the problem is that I didn't touch on earlier is grain-fed bone marrow is inedible. If you taste grain-fed bone marrow compared to this, it doesn't taste good. I'll link an old video at the end of this where I compared the different ones, but unfortunately when you feed a cow grain, it ruins the profile of the fat and the organs so much that they don't taste good anymore. It's like the texture is different. It has an accurate taste to it. The grass-fed bone marrow is much softer, much smoother. It has this nutty butterscotchiness to it. And that's the upper femur bone. Usually you don't get access to the lower leg bone of the cow. Sometimes they don't sell that. But apparently that part of the bone is the best tasting one. It has a very liquidy, apparently marrow that's creamier and softer. So maybe I'll try to get my hands on that in the future and try for you guys. That was one of the favorite foods of the First Nation Alaskans. Again, if you guys are looking for this stuff, go into your local butcher asking if they can source grass-fed marrow bones from maybe Australia, New Zealand. I don't know where they would get them. I just pick these up at Whole Foods. They just have to have them. I normally don't buy these. I usually have to get cheaper or easier to access sources of fat. And now you can go to farmers markets and ask the farms. And if you don't really have access to bone marrow in the diet, you're not missing out on any nutrients specifically, but you definitely want to try to consume most of your calories from high-quality animal foods to get that high-enbalanced fat-soluble vitamin profile. The nice thing about having access to foods like this is I know if I'm eating all this quality grass-fed bone marrow every day. I'm eating all this quality grass-fed beef. I don't really have to worry about supplementing things like cauliflower oil, eating some fish, and anything else outside of the ordinary. So thank you guys for watching. If you guys would like to support the channel, please like, subscribe, and share the video. If you guys have any in-depth questions and you'd like to support me, definitely check out my Patreon. I also have some exclusive videos on my Patreon that you guys haven't seen. On my Amazon Shop, I have products I use every day, from my seaweed to my vitamin D3, Frankie's Volgrease. If any of you guys are interested, check out my Amazon Shop. On frank-to-final.com, my hygiene products are on sale. So check that out, frank-to-final.com. I'm wearing all that stuff right now. And last but not least, if you want to see me argue with other carnivore dieters, check out my Twitter. Joe Rogan follows me. If you don't, probably should. On Instagram, I post selfies, funny stuff. And last but not least, you guys can contact me for one-on-one consultations in regards to improving your overall health through my email frank-to-final.com or through the contact form below on my website.


I don't know what to do with you sometimes. Oh, I do. Yeah, yeah. It's I'm Corman. I'm Rick. What if I did the whole thing this way? Just looking off into the middle distance. I do that often. You do. But I'm looking at something, and I'm not. And thank you for a cent. Because... Hold on. Let's rewind. Ah, sheeps up. Yeah, she's coming. It's a demo. Yeah. Please follow us on Instagram and Twitter. And today, we were acting to a trailer of a song we were acting to last week. Hum dill de choc de salmon. Could have sworn you were going to say hum dill de dum de dum dum dum. Yes, I knew. When you said it, I was going to say it, and now this is the trailer to this, which is the salmon con. Yes. That's why you're Ray. Bring it on. I actually wasn't too bad. I don't think what you just said, man. Yeah, it's probably really bad. But a Sanjay Levinsali, which a lot of you, it's true, we were completely so enraptured by a Shwari Aray, we were like, Sanjay, who? I think we said it was him, though. I don't know. I could be wrong. I thought, because I think I knew. I think I might have just not said it. Yeah, I don't know. All we talked about was get everybody else off the camera, but her. It's true. What? Typically, we've seen things even that aren't his, and said that looks like Sanjay. I don't remember there anything being strikingly Sanjay we'll find out from this trailer. Let me just read this and I'll try real quick. I do. Nandini, I assume that's the pronunciation, Nandini has to choose between Samir, the man who taught her to fall in love, and Van Raj, the man from whom she learned how to abide and fulfill promises of love. Interesting. It looks like Samir taught her to fall in love, and then Anjay, the guy from Trisham, is the other guy. Right. This does not have subs, sadly. And it's old. Sorry. How old? 1999. In a time that land forgot. It's probably going to be. Yes. No subs. No subs. But that's why I had us read this stuff so we can figure out what's going on. Alright. Here we go. I like that the video quality is awful. Yeah, it's the video quality. Sorry. We know. Absolute garbage. And no subs. No shirts. But I gotta say, actually, it brought enough information that I was like, I want to see this now. Yeah. It helps that it's Sanjay obviously and it helps that we know these two people. And we haven't seen someone come. I would really like, if this is a great introduction, especially for, well, I think that's the one that's definitely the introduction is the BB one with the Pakistani little girl. Right. I think that's definitely the first one people said that we need to watch of his. Okay. But they said this is also one of his best as well. Great. But it definitely gave me strong vibes of Dev Das. Dev Das. Right. Big time. Which is something that concerns me. Not me. If you don't know what we're talking about, you should see that review. With the very melodramatic acting. But they, all the songs in there were fantastic, especially the one with Ashwarya Wade just kind of doing her thing. Yeah. When she does her stuff. It wasn't the very first thing we ever saw of her doing a musical number of the. It might have been. We probably saw her way before and we didn't know it was her. Probably. That's why people got upset with us. Yeah. I understand that. Yeah.  She's just delightful. She's just delightful. Yeah. And I wonder, we could look this up in the chronology of Sanjay's film creating. This is one of his. Early. And I could tell not just because the trailer is dated, but I could tell because I can see him finding his voice as a director just in that trailer. His visionary voice. I could see him doing some shots that would be his typical aligning and attention to detail. But they're nowhere near the level he's at in some of the more recent things we've seen him do. Yeah. Where is this in the scope of his. It might have been his first. He has it once before that's called. I was literally going to say this looks like it's his first film based on the visuals. So this looks like his first director debut. Komoshi. Komoshi the musical. Which is 96. So this is only three years later. Which is also Salmon Con. Got it. I believe Salmon is one of the people that helped him get into it. Yeah. Because they were friends. Yeah. And so they're still friends to this day and apparently, I think, because they Ashwarya Ray, and I've read this in the comments, Ashwarya Ray and Salmon were dating at this time. Yes. They were an item. That's why they were. But apparently Salmon and her were, I believe somebody said that like the original picks for. But they didn't want to work together again in that capacity in terms of like and he would play the role that she did before play. Yeah. And so he said, Salmon, I mean, she didn't want to work with Salmon, I don't know with the whole details, but that's just what the comments said. Got it.  But because Sanjay loves Salmon and they're really good friends. Sure. And why wouldn't you want her to play that role? And so I think he waited to find the perfect couple after that and so they played it on. We did a good job, man. And boy did he pick, of course. But that's the stories I've been told in the comments. So don't kill me if I'm wrong. Yeah. So they have a really good friendship. But yeah, especially for an old film, wasn't the best trailer I've seen for an old film? No. But it wasn't the worst. But it wasn't the worst by far. Either. It actually want, it did make me want to see and I did understand it just be a base on synopsis. And I was like, okay, I understand what's going on. What's going on. The tensions are going on. And so it looked to it. And I do love, obviously I love Ashwari Ray and I love that other guy too. Vijay. Vijay. Yeah. He's phenomenal. He's amazing. And we need to get introduced to some stuff. Yes, I know. We have not seen some stuff. We know. Sorry. Sorry. But we're trying to pull it all around. To some of you, I'm sorry. Yeah. Some of you are happy that we haven't. Yeah. We have noticed. He is the most divisive actor. 100%. I've seen 100. It is. It's either you. Wild.  Or you, he's the greatest of all time. And if you don't think so, you're completed. There's really no middle ground on that. I can't, based on what we've been exposed to, I can't make a comparison to anything I've seen in American film. The kind of devotion and outright detestation. There's no middle ground. Well, the thing you can equate it to is basically young pop singers, basically. Like a- Yeah. Like a Jonas Brothers kind of- Yeah. There wouldn't be an acting and equivalent. There's music equivalents where it'd be like absolutely adored, absolutely detest. Yeah. But not in the acting world. No. It is. I remember when we first got a judgment for ourselves. I know. And we're not going to please everybody just when I guarantee it, somebody's going to get pissed off. Oh yeah. But yeah. Let us know how this film is down in the comments if it's worth a watch. I think we have it actually now, don't we? I think we do. There it is. Bam! Boom! Oh no! He's not a salmon fan. There you go.


Hello, everyone. Welcome to Cloud Native Live. We are diving to code behind Cloud Native. I'm Paulo Simões. I'm the NCF ambassador and developer evangelist from Oracle. And every week we bring a new set of presenters to showcase how to work with Cloud Native technologies. They will build things, they will break things, I hope so, and they will answer your questions. Now, January is every Wednesday at 11 am ET. And this week we have a pleasure to receive our friend Chris Tunkins from Tigera. We will talk about Kylico, talk about EVPF and how to be charging ATS network with these both products, amazing products. Also, I should remember, this is an official live stream from CNCF and subject of CNCF code of conduct. Please, do not add anything to chat, to the chat of questions. It will be in violation to that code of conduct. Basically, please, be respectful of all of your fellow participants and presenters. That's all we hand over to my friend, Chris, to show to us, break the code for ATS with ABVF in Kylico. Hi, Chris. How are you doing? Hi, I'm very good. I'm near to London and it's unbelievably hot here today, so I have a fan on behind me. I hope you can't hear it too loud. But yeah, I'm good. So my name is Chris Tunkins. I work for Tigera and Project Kylico. I'm a developer advocate. So it's my job to get out in the community and understand community's requirements and help the community to understand our products and our open source tools. So should I start by telling you a bit about Project Kylico just to make sure people know about that? Yeah. Chris, we listen a lot about Kylico, listen a lot about ABVF, and so it's amazing to know about these projects. Please, show us a little bit about this. Great. I will. Thank you. So I just want to say, first of all, don't worry, there won't be too many slides. I don't like sitting through too many slides. So we only have, I think, six slides in total, including the one you're looking at. So Project Kylico is an open source networking and network security solution. It's a way to connect together your containers, your virtual machines, and your host-based workloads, and it implements best practices for Kube security with excellent performance, and it is running in over a million nodes in the cloud today. So it's battle-tested production-hardened code with full support for Kubernetes network policy, interoperability with non-Kubernetes workloads, and a really large active contributor community. So it's a really successful product, project and product. Oh, why is it showing that on there at the nine? Wrong screen. Okay, I'll do it this way. So we have a Slack channel, which I think will be mentioned in the chat later on, but if you want to get involved with us, come and talk to us in our Slack channel, we have over 6,000 members, over 150 contributors. But we're not just talking about Kylico today, we're talking specifically about the EBPF and how EBPF relates to Kylico. So do you want me to talk a little bit about EBPF first? Oh, yes, please, a little bit. Great, cool. I wonder if we should jump back just down to the videos, to our video feeds, take away the slides for a bit. But I made some notes to share with about what EBPF actually is, first of all. So forgetting about Kylico for a moment, if we want to get exceptional networking performance in a Linux node, one way to do that is to implement the code inside the Linux kernel, because obviously, if you put the code in the kernel, you can get really great performance. But that brings with it challenges. If you want to put code into the kernel, maybe you have to write a kernel module and you have to get that approved and get your PRs approved. And that can be quite challenging. So the Linux kernel, back in the 90s, it had the Barclay packet filter, BPF. It's not EBPF, but the original Barclay packet filter added. And really, it's a way to implement a safe, secure, lightweight virtual machine inside the Linux kernel. And it runs bytecode that can take advantage of a subset of features. So more recently than the original BPF, we got EBPF, which is the extended Barclay packet filter. That's much more recent. And it's dependent on a Linux 4.x kernel. And it's entirely restricted to Linux for the time being. We'll talk more about that later, I think. So you need a fairly recent kernel. But once you have that, you can run a safe, secure, lightweight virtual machine inside the kernel without changing any kernel source code. So you can have an event-driven program that is compiled to bytecode and then attached to hooks inside the kernel. And when those hooks are called, then the attached EBPF programs are executed. Does that make sense? Yeah, sure. Let me ask you, today we will talk about AKS, how you leverage the EBPF over AKS. Don't force. Just the AKS has this capability. No, no, no, no, no, no, no, no, no.  How can I adopt this? It's a recommendation. Yeah, I'm really glad you asked that question because no, it's not just for AKS. When we do, later on in this session, we'll do a demo. and we wanted to focus that demo on a particular platform so the demo is clear and everything, and there are subtle implementation differences between using Calico eBPF on the different platforms, but you can use it on Azure, you can use it on AKS, EKS, and many other ways. So no, we can use our eBPF data plane in many places. So once you have this code that you can run in the kernel, it obviously makes sense for certain use cases, right, because there's a limit to what you can achieve because you are only given certain helper calls by the kernel so that in order to keep you secure and make sure you don't do anything malicious, the kernel will only allow you to call certain helpers and those helpers are aimed towards doing networking, doing logging, firewalling, debugging, those kind of things. So this is a perfect fit for Calico because if we pivot over to talking about Calico rather than eBPF for a second, we're essentially a network component for your Kubernetes clusters and like most networking implementations, we're implemented as a control plane and data plane in the same way that if you go back to a router or a switch, you will have a control plane and a data plane. Calico is built with the same model. In fact, I should mention I did another talk. We did a Kubernetes security and observability summit and in that talk I did a talk called the importance of modularity and data planes and if you want to find out more about the data plane support in Calico, that talk would be useful. But for today, what you really need to know is that Calico uses a control plane and a data plane architecture and we have several options for the data plane. Now by separating out the control plane and the data plane, it allows us to separate out the functionality of those two roles. So the control plane's job is to manage the high-level view of the network. For example, maybe to run BGP demons and to run the routing protocols that have the whole holistic view of the network and the data plane's job is to forward the user traffic and to do so quickly. So the control plane is a complicated bit of software that needs to be complicated and the data plane should be minimal, fast, lean code. So for that reason, Calico was designed with modularity in mind from day one. It was designed, I mean I haven't been with Project Calico since day one but I've spoken to people who have been and they knew from day one that they wanted to have this clear separation between the control plane and the data plane components. And because it was designed with a modular separation and a clear interface between the layers, it made it very easy for Calico to implement multiple data planes. So the original data plane that Calico supported was the Linux IP tables data plane. We still support it and it's quite high performance, it's battle tested. We support a Windows host networking data plane and we support the Linux CBPF data plane. So that's because we wanted to take the advantages of Linux CBPF and apply them to our product without needing to throw away any of the hard work or implementation work that was done making the control plane stable, reusable and so on. So we have those three data planes, Linux IP tables, Windows host networking and Linux CBPF but I should mention also we have a fourth data plane which is VectorPacket processing which is another data plane which is amazing especially for high encryption performance. So but we won't talk about those other data planes today, I just wanted you to be aware that they exist and that that's the background for why we have this Linux CBPF data plane. Does that make sense? Yeah, sure. Yes. So the explanation was amazing. Thank you so much. Let's show the code. I should have said one more thing though before we do which is what are the advantages? So the advantages are performance, the Linux CBPF data plane is really fast and it uses less CPU but there is also another big advantage which I'm going to this is where I'm going to have to use some slides. Now I promise you I only have four slides so I hope it's okay. I'll jump across to here. So this is the first one. It's the data plane benchmark. Now this benchmark was not done on AKS. The reason it wasn't done on AKS was because we wanted to test 40 gig networking so we did it on bare metal servers but you can see that with a Jumbo Frames MTU you can see that the throughput is a little bit higher with the ePBF but with a normal internet MTU of 1440 you can see that the performance is dramatically higher. So I don't want to do too many slides so let's move on. I don't want to dwell on that for too long. The other one is this one and it's just the CPU usage. So you can see that the eBPF and this slide is specifically for AKS as you can see that the TCP pod to pod and pod to service throughput sorry CPU utilization doesn't change very much but you can see that the UDP pod to pod and UDP pod to service is dramatically lower CPU utilization which is great. So that's it for the benchmark slides but there is another advantage to this data plane which is pretty cool and I'll demo it in a moment that is that in a Kubernetes cluster I'm sure you know that the services are usually implemented by Kube Proxy so if you have services in your cluster it's Kube Proxy that implements those but if you replace Kube Proxy with an eBPF data plane you don't actually need to run Kube Proxy anymore so the service functionality that is offered usually by Kube Proxy can be can be offered instead by the data plane itself. So you get a latency reduction you get less moving parts less complexity and the most interesting one is that you get to preserve the source IP I'll demonstrate that in a minute. So this is how it looks without eBPF your external client comes into a Kubernetes node and they talk to a service and you can see that the you can see that the the Kubernetes node that is running Kube Proxy has to destination that and source that the traffic and it does that so that in step two it can forward the traffic onto the other node then step three the the pod that is responding the pod never gets to see this the original external client source IP and then the return traffic has to go back through the other node so this is a problem if you want to do audit logging maybe you want to capture the IP address of all the users and that happens in the in the code that runs on the pod so once you switch to eBPF then you get this it's very similar right but instead you can see that where the Kubernetes nodes are you can see that instead of Kube Proxy answering the service you can see that in step one the BPF program answers the service it does a destination NAT but not a source NAT and that means that when the service pod receives actually I don't like the terminology service pod here when that when the pod the pod that is serving the the content when that pod sees the traffic it sees the real source IP of the user so that's the other benefit so so just to recap and then that's the end of the slides but just to recap the reasons you would want the Linux eBPF data plan you get great performance lower CPU utilization and you get these benefits of being able to see the source IP so uh yeah so let's jump across and I'll do the demo right right cool very good oh amazing explanation thank you so much and no worries oh uh how is that is that readable or should I go oh increase a little bit please yeah there's one uh potentially one small box hold on oh it's small this is small that's strange hold on okay I'm in a little problem with my oh there we are I need to learn to use my computer properly okay that's better right uh that's better that's better we might have a small problem uh with that with that because I used um are you familiar with Askinima I used this tool called Askinima yeah I used this tool called Askinima to record um the the demo so that rather than having to wait while the slow parts run we get to see we get to see it uh running quicker um but it can be a little bit fiddly with the uh terminal size so we'll see how we go let's go let's right okay so so I did this I did this demo this morning so it's not running live now but it is very recent so the first thing I'm doing is uh using the Azure CLI and I'm turning on this uh feature flag um for the container service namespace called enable aks windows calico and this is just a uh a feature flag to tell um aks that we want to use uh windows calico and uh I believe it also changes the the deployment model it's just a step that needs to happen for this to work um now because I have already done that before it immediately says state registered but if you do this on your own cluster you'll find that it says state pending and then you can um you can run this other command as your feature list and this will tell us when when the command is finished registering so I do that now there we go so you can see um this is just me confirming that it's registered and then uh the last part is we just need to re-register the features we need to re-register them with uh with the provider okay so now we can actually start doing the real work of deploying an Azure cluster so the first thing I do is um I use the Azure CLI again and I create a service principle which is a um it's an identity for the uh an identity for the service to run as essentially um so once I've done that I've stored the service principle in a variable called sp and the reason I've done that is because um the output contains credentials so um I don't want to share those credentials with the internet right now oh I should say as well that these strings up here I've actually modified them so these are not the real strings so that if anyone malicious thinks they can jump in then these will not work so um we take the um we take the output and we grab the service principle ID and the service principle password and all we've done really is we've taken those two um variables from this variable so the next part is to actually create a resource group and the resource group is just somewhere for us to put our um our resources so you can see that we created a resource group called um live demo rg and we put that in um Canada east now we get to the interesting stuff so now we're actually creating the cluster so az aks create so we're creating an aks uh cluster and I because I was working from some old notes when I first did this this is proof that it's a real demo when I first did this um you can see that I specified Kubernetes 1.20.2 and you can see that it's saying 1.20.2 is no longer supported so that's no problem so I just um run az aks get versions and it returns you can see it returns the versions that are valid so instead of the original 1.20.2 I just switched it to 1.20.7 so it'll take a moment for this command to run uh you can see um what we're doing is we're specifying that we're creating a cluster we want to put it in this resource group uh we give the cluster a name we say we want two nodes in the cluster we specify the kubernetes version now something funny happened there when when it got edited I think it's because of the zoom like I mentioned on the terminal size but it is this actually I put 1.20.7 but you can see that the seven appeared down here for some reason um and then we specify the service print supply d and the client secret and the load balancer skew I'm gonna try yeah I think we'll stick with it we'll stick with this terminal size I think it's a maybe one smaller is that still readable yes true readable okay let's let's go with that then because then hopefully we'll get less problems with the the wrapping um now in real life when you do this it will take um maybe around seven or eight minutes but the version of because I'm running this um through a recording tool um it will be a bit quicker so we don't need to wait five minutes we should just it will take about one one minute 90 seconds something like that hopefully so there is something I should point out here which is at this point you can see that we're not specifying that the cluster is an ebpf cluster that's because at this point we are not creating an ebpf cluster we're creating a normal calico linux ip tables cluster what we'll do is in a minute we'll run a benchmark on it and then when we finish benchmarking it then we will convert the cluster to an ebpf cluster oh that's a sorry I don't want to interrupt but this is a good question you can transform from a normal version for a ebpf version you can do this yes yes oh yeah not only can you do this um but any existing flows should not be disrupted when you do this so if you have an existing tcp flow um it should remain using the old data plane until that flow terminates and when that tcp flow terminates then the new any new tcp flow will go on to the new data plane however um even though that's possible of course we've all supported networks in production whether I would do that in production maybe not um but but yes in theory uh that's possible so this is great because it means that we can give you the right data plane today but if if in three years time there's a new technology that is more suitable you can switch to a new data plane so while we finish talking about that you can see that uh the command completed so it's given us the um the json for our cluster so we're running the cluster now and like I said before I've I've changed all of these IDs so that they are not private and this is a public key so we don't need to worry so we're now running a new kubernetes cluster and this this cluster is running uh calico but it's not running ebpf yet so I back up my um I back up my kube kube config so I'm just copying my kube config to some up to some other location so that I don't lose it and now I can ask azure for the credentials so I ask azure for the credentials um for um for the uh cluster I I'm just realizing if I move my window up a tiny bit then we can get rid of that tiny uh banner that's blocking the you being able to see the bottom of the screen yeah that's better isn't it okay so um if we look back at what we've done here um I think you probably missed this command didn't you so we copied the uh my kube config away just to back it up then we uh asked azure for um the credentials for this cluster and now we can use kube cuts or get nodes and we can see our new nodes um and you can see that both being up for a short amount of time on the version we requested so now that we're at this point we have a cluster running um a cluster running the the calico linux ip tables data plane so let's run a quick benchmark so we're using this great tool called kates bench suite um and you can see that we just specify the client node and the uh server node but you can see I made a typo so we specify the client node and the server node and it deploys a pod on the client and the server and it checks the uh the bandwidth and so on so we'll just make wait a moment for that to finish when this finishes uh we won't look at the benchmark results straight away we'll just move straight on to the next part of the demo and then when we finish the demo we'll have two sets of benchmarks to compare one set from the ip tables data plane and one set from the ebpf data plane of course uh just to to help the our audience uh maybe someone don't know what is kmb could you just give a tip about this yeah this is a great tool um this is a really great tool so uh you can find it if you search github for um for kates bench suite this phrase here um kmb is um actually I assume it stands for kubernetes network benchmark it must do uh kubernetes network benchmark all you need to do is give it a client node and a source node and it will deploy a pod on the server and it will deploy a pod on the client and then it will run iperph uh it will detect the cpu and so on um like so you'll see it detects the cpu detects the kernel blah blah blah and then it does the tests and then it gives you a really cool uh bit of benchmarking like this uh pod to pod pod to service now you can see that because in this demo um we're running on servers that have gigabit nicks that's why we're not seeing that's why we're not seeing 10 gig or anything here uh we we're not running on big instances cool so um so so that's how we that's how we that's how we deploy so just to to wrap up where we are now that was the process for deploying um a linux ip tables um calico uh kubernetes cluster so if we jump on and we move straight on uh i'm going to show you on that part of it now do you remember in that that diagram i showed um the audience that uh with kubproxy we lose the ip address of the uh external client i just want to demonstrate that quickly before we move on so i deploy this um useful um tool called yalbank which is just assimilated um microservices deployment it's very simple and you can see that we're running a pretend database a pretend customer and to pretend summary so it's like a three you know three tier microservices thing so we just wait until that's running properly of course uh if someone wants to follow something similar that you did there is some place uh your github or something or tutorial that we can follow to to try it like yes yes absolutely so specifically for the azure case um there will be a blog post quite soon that will on the project calico blog which will cover pretty much the same steps we're doing here um the i'll just pause that for a second hold on um and also on the blog post you'll see there are lots of similar blogs which tell you how to do this on aws how to do this on other um other clouds yeah um cool so you can see that you can see that it's running now so we create a load balancer kubcustle apply and we just apply some load balancer config and then we wait a moment for an external ip and here we go we've got an external ip so uh now i can curl it i think i i think i remember i waited a bit of time because i know from experience that if you hit the load balancer really quickly then it's very slow to respond or it doesn't respond at all so i think i just waited a short amount of time here we go there we go so we get this fake response from this fake bank website but we don't really care about that all we really care about is seeing the seeing what we get in the logs so now we look at the logs for the customer node the excuse me the customer pod and you can see this is the important thing right because we're not running the ebpf data plane yet the the zero load balancer has done a source nap and the ip address that we're seeing here is an internal rfc 1918 nap uh ip address so this is bad if we're trying if we want to if we want to audit if we want to filter if we want to do some analytics okay so that's it so we've shown the performance without ebpf and we've shown um the the uh mat so now we can watch me do this one so now we're going to convert this cluster to ebpf this is where i guess interesting so the first thing we do um i think this step will be going away very soon or may have gone away already um but it's not doing any harm um but essentially what we're doing here is we're patching the um the installation resource uh and we're telling it that we want each node we want each node to select which interface to use based on which interface can reach google's public dns so i i have a strong feeling this isn't necessary anymore but actually you won't do any harm for this demo so so that's why i did that um now the next thing's quite interesting because we're about to we're about to convert this cluster to use ebpf now in order for um the calico component felix on each node to talk to um the kubernetes api it traditionally uses a service to do that and that service is managed by kubet proxy but of course kubet proxy is going away so we can't have um calico talking to the kubernetes api via a kubet proxy service because kubet proxy won't be here anymore so that's why we have to do this next change this next change is to find out first of all we find out from kubectl from a config map in kubesystem we check what the true url of the kubernetes api is and then we create some yaml and what this yaml that we're about to apply is going to do is uh it will tell the tigera operator which is the tool that deploys um calico that we want to talk directly to the kubernetes api rather than to kubet proxy i'm just wondering if something's gone wrong with the um tool or if i paused it by accident one sec i never mind so what we're going to have to do now you get to see me do something live um i'm going to use this tool called askinema timing i'm going to adjust the timing of the recording um i think something was wrong with the recording file so i'm hoping that by okay so this wasn't supposed to be part of my demo but what i've done here is i've adjusted the timing of the recording um so they should play back quicker let's give it another let's give it another go but we're we're we're repeating those last steps that we saw before there we go now it's working fine okay good so if you recall i said that we wanted to get um calico to talk directly to the api so we're we're applying a config map in the tigera operator namespace and it's telling the uh this config map is telling the tigera operator that deploys calico that it that it wants to see the endpoint here and it's basically just saying don't use the kubernetes uh the kube proxy service use the api directly so we do that then we wait 60 seconds because it takes a moment for the tigera operator to notice the change and then we delete the tigera operator pod and when it comes back you can see that the tigera operator pod restart restarted immediately and when it did that it picks up this new config now i i have a feeling as well that this has recently changed to um i have a feeling this uh that that the pod restart may not be necessary anymore um but i did it because i know it works um so i think it may be that after we apply this uh yaml here that there's no need for this restart but it but it also it does no harm so it's fine so once we've restarted that um we can see that we're running we're still running kube proxy right but we don't need it anymore so we can patch the demon set we patch the demon set which is uh operating in the kube system namespace and we say that the demon set for kube proxy we tell kube proxy that we don't want it to run unless the node is not calico but of course all the nodes are calico so essentially we're telling we're telling uh kube proxy that it shouldn't run on any nodes so you can see that kube proxy is not running on any nodes now and the last step is that we um kube got a patch we patched the phelix configuration um this is a custom resource and we turn on bpf um now uh in in a couple of weeks time i'll be doing a webinar about how we can do a deep dive into the ebpf packet flow but but today we're not doing that so i just want to show you the ebpf's running so i thought the easiest way to show you that ebpf is running now is if we look at the logs for one of the calico nodes and we grep for bpf then we get loads of bpf stuff so where where sorry where you can find your ideas the information about your workshop your deep dive um on uh the tigera website there is if you go to the tigera website there's an events section um it will be published on there soon um but actually i don't think it's published yet i think the event is mid i believe it's mid july but it will be it will be published quite soon but we have we have loads of great free events on there so um uh yeah i you know i encourage you to go and take a look and and there is a tiger tiger there is a certification right that's right actually we have yeah there two certifications now yeah um the uh we have a we have the level one certified calico operator which is a really great course um actually i did that course myself before i joined tigera and i really enjoyed it um and we also have a new aws certification um adep calico aws expert so yeah uh those are those are both useful so that's it so we've shown now that we've turned on um ebpf now we can run the same benchmark that we ran before it to be honest the only reason this is happening quicker is because i changed the speed of the recording but the point is that these results we'll we will compare these results in a minute to the other results that we took and then the last part that we want to show now is uh before you look at the results is if we go to we look at this one you can see this is quite funny actually um i came back when i did this when i recorded this demo this morning i came back to look at the logs before i hit the site again myself and you can see two bad guys on the internet have been trying it already um you can see they're trying to log in i don't know what this guy's doing but this this guy is definitely up to no good um so then you can see that if i run the curl again i get the i get the website again but now if i look at the logs you can see that you get my real public ip although actually i edited this public ip because i don't want to share my public ip but uh but the point is you get you get the public ip so that's it so so just to recap before we look at the just before we look at the um the benchmarks just to recap we showed how the performance is better we showed how one for the other and we showed how um you get the false ip preservation great great presentation and amazing information uh calico and ebpfr open source projects right uh uh how can how can i how can we uh not uh know more about the products and uh it's possible contributed what's the expertise we should have to to contribute for the project i know we know that we have many many different uh opportunities to contribute like a documentation or or maybe some such kind of training etc but uh how how uh what how you can contribute for the both projects so that's a really good question um so both uh if you go to um uh project calico.org um you will find that um there's a community there's a link on there to the community website and as with most open source projects um you can get involved at whatever level you're comfortable getting involved if you just want to submit a docs pr and help us to improve our documentation that would be amazing and appreciated um and a lot we have some good open source documentation but obviously we we would love some contribution there um we have community meetings and on our slack channel it's part of my part of my role is to talk to users and understand where they're encountering challenges with our um with our product because no product is perfect right so um so even if you just want to contribute by um coming to slack and sharing your experience that would be that would be useful uh and then if you have if you have expertise you know if you have deep technical expertise um in networking and um and go or uh or you want to contribute to epbf those are both uh you know calico and epbf are both uh public um open source projects so yeah it's all there um i thought we should look at uh we can actually compare those benchmarks quickly before we run out of time because we never actually do that all right let me just show it uh so if we pull up the epbf results no let's pull up these standards that's the point uh that is a uh a good point uh we we can see a better performance uh from the network within the both uh when you when you talk about a few uh uh implementation very very simple uh uh few microservices log traffic maybe you you'll be comfortable with uh the full implementation but when you go to a very large implementation with much many many microservice much conversational transactional transactions etc you can feel uh uh uh a huge advantage to adopt this this kind of chance uh this kind of patch using calico and epbf so chris from your for your experience uh uh we uh we are the the the biggest implementation or uh how the how was the challenges and and uh the results was uh um was good enough to justify use uh this kind of uh the calico and epbf do you have any number from the from the current implementations um i don't want to give you a number that isn't accurate and i actually don't know i actually don't know a particular cluster size um but i can find out that number um i think um someone was going to share our um our slack channel um and i will join the cncf slack channel for cloud native live in a minute so let me find out the answer to that one offline for you because i don't want to give you the wrong answer and i don't know but what i can tell you um is that um one of the advantages you get when you um if we switch back to that slide again one of the advantages you get when you replace coop proxy is actually a latency reduction and you can you see this caveat here it says most noticeable with many short lived latency sensitive applications so what's cool about this is that this latency reduction starts to be more and more impactful the bigger your cluster and the more um the more short lived connections you have so although you get these immediate benefits from coop proxy from taking away coop proxy excuse me um if you have a cluster that uh has loads of short lived sessions the sessions you will see loads of benefit so actually the benefit becomes even bigger with a more with a larger cluster um i was going to show you these as well so you can see that um these are the this is the standard data plane and you can see that this is a gigabit nick so you can see that it's doing 900 meg um tcp and 800 meg uh udp and you can see that the ebpf data plane because i changed tabs up here the ebpf data plane is doing 900 meg um tcp just the same and you can see it's now doing nearly 900 meg udp as well so the the increase the improvement here doesn't look as big as the slide but that's simply because this is a gigabit nick and you don't see the improvement so much um i could probably have done a demo on a 40 gig uh bare metal but but i don't want didn't want to pay for it so uh so here we are um and the other benefit you can see is um in terms of cpu utilization you can see that uh where is it you can see that here it's 15 percent here it's 18 percent so it's similar um but you can see that for udp it's 60 client cpu for 800 meg but with the new data plane oh amazing it's faster and it's using half as much cpu nearly yeah it's amazing this number amazing yeah also the same here 800 meg versus nearly 900 meg and the same thing 61 down to 32 percent really amazing really amazing that's good that's good oh chris it's amazing a very strategic presentation and the and the demo uh many things to learn and improve uh i hope you can participate in in the next deep dive uh because it's it's really amazing thank you so much we don't have we don't have more questions we have a question uh and uh i i want to really thank you so much for for this presentation today this live today yeah no worries at all that's fine i'll um i'll go and join the slack channel um your cncf slack channel cloud native live um and also people are welcome to join um to join us in the calica user slack channel or to or just look at my twitter or anything else um yeah so thank you thank you so much for taking the time thank you chris thank you thanks everyone to join us today in the last episode of cloud native live it was a great to have you chris with us talking about calico this amazing person with ebpf really amazing numbers half half use of cpu it's really amazing thank you so much with more performance of course uh we also really love it uh the interaction with uh we don't have many questions but uh uh oh yeah i just want that question we have one question here now uh where could you find more about performance studies of different startups you have probably the best place to look for that is the project calico blog um we are testing different scenarios um and lots of different platforms and we continue to publish um performance stats for different um for different uh clouds and platforms there so that's the best place to watch and not only that even if there are even if there are some particular results that you can't see there right now we're publishing new ones every so often and also um if there's a particular thing you'd like to see then come and tell us about it in slack and maybe we can maybe we can prioritize that one thank you chris so everyone thank you so much for joining us today and see you next weekend next week not next weekend thank you so much chris nice to meet you everyone take care bye bye take care