What's going on everyone? Sam here, Lades, Corey's Cards. Welcome back to this episode of No Method All Madness. We're feeling good today, to be honest. Got the beer trimmed, got the haircut today, went to the barber and said, look man, I'm filming No Method All Madness that I got juice out. Feeling good, feeling good. I'm excited. Got a ton of cards in this order, a couple exciting ones that are going to stay with me for a little bit, so I'm very much looking forward to opening those. Start off with two in here. Go with this guy first. I forgot about that one actually, that's pretty cool. Start off we're going to have a 23 Bowman Draft Quinn McDaniel True Blue PSA 9. First auto for the San Francisco Giants. Again, a lot of these are starting to surface the graded Bowman Draft from this past year, so I'm excited about them. There's a lot of guys that I'm chasing, so it's going to be an exciting class for sure. A lot of those guys are jumping into the top 30 prospects for their respective teams, so definitely a good time to get into some Bowman Draft. Number two, this one's pretty cool. This is going to be 2020 Panini Contenders Draft Fix Basketball at Yodoka as a boot guy on the cracked ice auto. Number two, 23. This guy was an absolute stud at Kansas. Had some minutes for the jazz, he bounced around a little bit as well, but definitely still a pretty good player. A lot of people love their Kansas Jayhawks who collect that team too. Very nice. On to the next one, we've got two here. Next up, we've got 23 Bowman Chrome PSA 9 first. Green shimmer number 299, that is Alfredo Duno of the Cincinnati Reds. He's becoming a really, really good catching prospect. He's rising through the ranks a little bit. He's jumped on the top 30 for the Cincinnati Reds as well, so excited about him. Another Bowman Chrome guy, a lot of the international prospects are always in the Bowman Chrome because it's between Bowman and Bowman Draft to get all the international guys there. Alright, this next one is awesome. I'm so excited about this one. This is staying in my collection. This is going to be 2015 Top's Heritage, Masahiro Tanaka. PSA 8, Gumstain Beck. Really cool part of this card is in 2015, when Heritage released. A lot of people were looking at their cards and flipping them over and saying to Halotops, like, there's stains on the back of them. Top said, well, we got you all. Got to look at the checklist because that's actually meant to be there. These were meant to kind of mimic the 70s and 80s tops of the cards that had the gum on the back. So a lot of times it would be the same run. And the same card would have the gum stain on the back, like these ones do right here. And I just thought it was really cool. It's a cool short print. I don't think they did it in any other Heritage.  So it's really cool, man. And plus Tanaka, in between CeCe and Garrett Cole, Tanaka was the Yankees ace. So big fan of his. Not a ton of his cards out there. He played super long in the big. So very, very excited to have that one. This next one's so awesome, dude. This next one's freaking great from the wrong angle. Remember, double team bagging today. Good lord. Really need some extra protection for this one, evidently. This is going to be my lord, man. 2006 Tops. SGC9 red refractor, Maglio Ordonez. Of the Detroit Tigers, man. Maglio is so awesome. He's prime. Really an AL Central legend as well. Again, 46 of 90. I love the look of 2006 Tops. It was one of the first years I collected super heavily. So this is a really nostalgic set for me. And any Tops cone red doesn't matter if it's football, baseball, basketball. It just looks absolutely gorgeous. So probably going to hold on to that one too. And then we got the last card. Last card. It's an interesting one. 2019 Panini Prism. DeVitas Servitas. Of the Detroit Pistons on the Tiger Stripe. From Prism Choice. Big fan of Tiger Stripes. Again, the really, really good players are super, super expensive. So excited about that one. Servitas actually won MVP of an overseas league. I don't remember off the top of my head which one it was, but he did win MVP. So there is potential that it will be coming back overseas. So we'll see what happens with that. Two America I should say. Yeah, that is going to do it for this episode of No Method All Madness. Order on the smaller side this week. But I have a couple cards coming in next week and my watch list is already built out for this upcoming week.  So thank you again as always for watching and we'll see you next week.


Cat 5E, FTP vs UTP UTP stands for unshielded twisted pair, while FTP stands for foiled twisted pair. However, how do we compare Cat 5E FTP vs UTP? UTP cables do not have any shielding. They just have single plastic sleeve insulation around the wires. However, on the other hand FTP cables have a metal shield around all pairs together, and then the outer plastic sleeve insulation. The Cat 5E FTP category gives an extra security shield. Therefore the twisted pairs of Cat 5E cable wires have foil security around them. Furthermore, this foil further protects the wires from EMI and crosstalk. Cat 5E cables, general outline. Cat 5E cables can transmit data at the speed of 100 megabits per seconds over 100 meters. In addition, this allowance is usually for a 90 meters permanent cable link, and an allowance for 5 meters patch leads each end. Cat 5E in all formats contain four twisted pairs. Generally unlike their higher category counterparts such as Cat 6, Cat 7, and Cat 8, they have no additional separation inside the cable between pairs. Cat 5E was the first major standard for data cabling installation within a structured cabling design, in addition with its ability to handle 1 gigabit traffic. It was a suitable choice for various hardware uses. These systems included computers, telephones, CCTV, Wi-Fi, access control, and many others. However, in many modern installations Cat 6, Cat 6A, and even Cat 7 cables are being used as a substitute for Cat 5E. They offer better crosstalk protection and help to work at more than 1 gigabit per second speed. Cat 6A and beyond are now the standard for new installations due to their ability to transmit 10 gigabit at 90 to 100 meters. In addition, Cat 7 and Cat 8 are common in data center environments and in some commercial and residential data cabling installations. Features of Cat 5E. They form part of a structured cabling design. These cables are rated for 100 megahertz high-speed data applications. The cable is capable of gigabit ethernet. They consist of four pairs of colored cores. Category 5E wires are considered as cost-effective cables. The highest cable length is 90 or 100 meters. 90 meters permanent cable length plus a pair of 5 meters patch leads. 100 meters direct hardware to hardware link. Where would standard Cat 5E cables be used? For the majority of installations would be specified at standard Cat 5E cables. Would be specified at standard Cat 5E cables. These would be specified as in all new installation is CPR compliant cables. CPR regulations are there to ensure the correct cables are installed with regards to fire and safety. In addition, this ensures that the cables are safe in case of a fire. Furthermore, this applies to all cable categories regardless if they are Cat 5E, Cat 6, Cat 7 or Cat 8. Also the same for UTP and FTP. Where would Cat 5E FTP be used? What do shielded cables do? The main advantage of shielded Cat 5E and other cables is that they insulate the inner cores from electrical interference. In addition, they protect from all elements of EMI or electromagnetic interference. EMI are electrical interferences that are naturally found in the outside world and outside your cabling installation. These interferences can include natural EMI such as lightning, storms and natural electrical charges, electrical equipment interference, emissions from electronic equipment, power lines, Wi-Fi, mobile phones, microwaves, generators, lighting, electrical installations. Shielded cables also increase the protection of noise from other data cables or even within its own cable. Cross talk is the disruption of the signal of the cable from either the other cores inside the same cable or from other data cables in the installation. External cross talk is known as alien cross talk. When should I use shielded data cables? Following on from the above listing where electrical interference is found, these natural areas are where shielded can be considered as a suitable upgrade to shielded data cabling. These are areas where electrical interference and EMI are bound to be high. These buildings or situations may include the following. Data centers. Warehouses, especially industrial. Travel centers such as train stations and airports. Industrial buildings where large electrical elements are found. Distribution centers. Medical buildings. The preferred cable specification will always depend on the situation and the area of installation. Furthermore, it will be based on the surrounding installations and other services. For further assistance or a free survey, please email or call on the details below and click like and subscribe if you have enjoyed this video.


I don't really know what day it is on that list then because I feel like I've been here forever but the other day I went to the aquarium which was super fun and like super spontaneous. It was like a super gloomy and like cloudy day so it was like the perfect time to like do something that was inside all day. This morning I had like this really great photo shoot the guy was like amazing. Again just like in London oh god. I found this guy on Airbnb so oh my god look at this. So cool. Um yeah I found the guy on Airbnb like he was so nice it was like me and this other girl and we ended up being brunched together at this place that was like amazing. And right now I'm just walking to get something to eat because I'm super hungry. I'm probably not walking in the right direction but make sure you follow me on Instagram. That but it was really nice. So beautiful. I might like look at this. This is the side of Frapple that like no one ever tells you. Like I'm spitting my Wednesday night in a laundry mat so I can really enjoy my last night in Lisbon which is tomorrow night Thursday night. So today was really fun. Like I went to the beach like my little Lisbon brew friend hanging out a lot. I met him on that very first night which is pretty funny. But yeah now I'm just kind of like waiting for my laundry to get done. We'll probably fold it back at the hostel. But also like pro tip like some hostels do have laundry mats like inside of them. Mine just didn't so I'm here. It's pretty expensive compared to American laundry mats. Like it was five euros just to like wash the load and it's gonna be two euros to dry it. But what's different is that like here it's five euros but the detergent like the soap is like already included like so you don't have to put any of your own detergent in it. It automatically like with the water like adds detergent. So that's pretty cool. But yeah this is called like lavender. It smells like lavender and I love it so much. Okay so I just got to the Balum Tower. I don't think I'm pronouncing that correctly because my Portuguese is non-existent but it's pretty cool. I literally know nothing about this so maybe there's like a little museum inside and I'll learn. Okay so I just realized you have to pay to go into the tower and I don't think I really want to pay to go into the tower. I just don't see. I honestly don't know what it is. I'm not that interested. And I think all this cute stuff is on the outside right? I don't know. I'll do some research and see but. Oh it's really cute like if you can see behind me there's like a whole park and I'm like wow like I wish I brought a blanket and like a ball of wine and just like laid out.


Nick Cannon has come a long way since being a Nickelodeon star and the days even before that growing up in the Lincoln Park Bay housing projects in San Diego. In recent times it's reported he lives in a multi-million dollar estate in New Jersey. Although you may assume this star would rather be in a Hollywood, he prefers the quiet area he lives in so he can keep his kids out of the spotlight. We'll take a look at Nick's mansion in Saddle River and two other properties he's called home over the years. We even found some of the listing. I also noticed 95% of you watching aren't subscribed so be sure to hit that subscribe button because we post a new video daily. Nick Cannon is a comedian, rapper and TV host who started out as a teenager on Nickelodeon's All That series which I remember watching as a kid. I have a really, really important delivery coming. Can you let me know when it gets here? Oh yes Miss Williams, you the boss. I live to serve. Prior to All That, Nick didn't have a privileged upbringing and grew up in the housing projects of San Diego. He didn't catch his first break until he did stand-up comedy on his father's local cable access program. He then went on to host the Nick Cannon show Wildin' Out, America's Got Talent, Lip Sync Battle Shorties and The Masked Singer. Recently, Nick has also been super outspoken on his podcast Whether Good or Bad and it's gotten him into some trouble. A few months ago, he was reportedly fired from Wildin' Out due to some anti-semitic comments he made and although he apologized, it was pretty bad. Nick has also dabbled in music and acted in some films over the span of his career such as Love Don't Cost a Thing and Drumline. We can't deny that his former marriage to singer Mariah Carey was also highly publicized and so was their breakup. They married in 2008, had twins together and finalized their divorce in 2016. Nick also had to say goodbye to the big mansion the family previously shared in Bel Air along with the divorce but we'll take a glimpse of it shortly. With a current estimated net worth of 30 million, he may not be as rich as his ex-wife Mariah but Nick's doing quite well and well enough to rent out a mansion worth 11K per month. It's safe to say that he's come a long way since growing up in a gang-ridden neighborhood of South East San Diego. Hey guys, it's Kara and today we're bringing you another house tour here on Famous Entertainment. We're going to take a look at Nick Cannon and where he calls home like his current place in Saddle River and more. If you like these videos, make sure you're subscribed and ring that bell for notifications. We've also done house tours on the likes of Dwight Howard and T.I. and we'll link to some at the end. Follow me on Instagram to chat and as usual let me know who's house tour is next in those comments down below. Now let's get into this video. Back in 2015 after the big divorce, it was reported that Nick and Mariah had sold their Bel-Air estate. Located high above the swanky neighborhood of Bel-Air Los Angeles, the former couple purchased the Celeb Pettigreed home in 2009 for 6.9 million, which 80s poster Queen Farrah Fawcett lived in once upon a time. When it came time to sell, Nick and Mariah unloaded it for a cool 9 million dollars. The gorgeous mansion sat on three acres of land and measured nearly 12,000 square feet inside with about six beds, six full, and three half baths sprinkled throughout the three floors. Any home that Nick had to buy post-divorce was a downgrade, but it's kind of hard to compete with a monstrous state like this one. The multi-winged estate offered formal living and dining rooms and as you'd likely expect, a double height entrance to impress any guests to walk in. The master suite the ex-couple would have shared in half year times was upstairs with a walk-in closet, city view terrace and massive bath. But there was also a sprawling master suite on the main level, so they had their pick. Directly above the lower level master suite was the staff suite and other bedrooms upstairs included guest rooms and a huge nursery with another terrace. Elsewhere, in Nick's previous beller home, he could keep himself occupied with the games room, home theater, recording studio, or even the full-sized indoor basketball court. Additionally, there was the Aspen Room, a 32-foot-long rustic, luxe stone-floor entertainment lounge with massive stone fireplace, full bar, yard access, and views over the Stone Canyon Reservoir. The back of the colonial mansion opens to a huge brick terrace with extra-long swimming pool which, might I add, was custom-towed with the former couple's initials. There was also a sunken spa, putting green and a variety of patio's gardens and rolling lawns. Just last year in 2019, Nick also let go of another one of his properties. He long owned a less extravagant, more humble-sized abode in his hometown of San Diego. But although it was the same city he grew up in, it was a far cry from the conditions he lived in when he was younger. He bought this house newly built in 2002 for $421K and it's located a few miles from Hula Vista and a community called Ote Ranch. Ote Ranch is a planned neighborhood or suburb that borders the Ote Open Space Preserve. While the two-story home was not as jaw-dropping as that beller mansion, it was still classy and comfortable. Inside Nick's previous house offered 2,173 square feet with five beds and three baths. Outside it included a palm tree-topped yard, a concrete patio, and a spacious lawn with gorgeous views of the mountains. The living spaces throughout were neutral-toned and carpet-covered much of the living and dining areas. There were plenty of windows in the common spaces offering views to the cozy backyard and letting in natural sunlight. The Eden kitchen had a center island and tiled floors while one of the family rooms nearby used the same flooring. Sliding glass doors lead to the outside so while the home was more modestly sized it had plenty of space to entertain. Considering Nick has moved across the country to New Jersey, he likely didn't have much use for this space anymore. He unloaded his San Diego house for over 603K last year, banking almost 200K on the sale. In 2015 Nick found a new home far from Hollywood in Saddle River, New Jersey.  His two-acre property is only an hour from downtown New York City so while it's rural it's not too far from the action. Nick shares custody of their children, Twinsman Rowe and Moroccan with Mariah and although the ex-couple lives on separate coasts they make it work. Nick said he wanted to move to a quieter area like Saddle River to keep his kids out of the immediate spotlight. It's been reported that Nick shells out a whopping 11K per month in rent to live here but he was given the option to buy the $3 million property. Considering a fair amount of time has passed since moving, there's a good chance that by now Nick owns the home. Listing materials also claim that the house was purchased in 2018 and there's no news of Nick moving out so the buyer is probably him. Inside his Saddle River estate spans 8,731 square feet and has 10 foot ceilings and cherry wood walls throughout. There's also an elevator with access to all three levels as well as three beds, three baths and an additional guest suite. This doesn't include the impressive master suite that has its own private elevator and oversized attached bath with jacuzzi. The entryways is as elaborate as you'd expect with double height ceilings and an ornate chandelier. There's an even nicer chandelier in what I would call a grey room, offering floor to ceiling windows, a double height fireplace and plenty of space. Nearby you'll find a living room with bay windows and another fireplace as well as the marble clad kitchen with french doors through the yard and you guessed it another huge chandelier. Back in 1989 the home underwent a ton of renovations in recent years, upgrading it for modern times. There's an extra guest bed and bath on the main level of the house as well as a cozy library. While Mariah had no say in the home's aesthetics, apparently Nick's mom helped him decorate the mansion. I have a feeling they may have skipped Mariah's ornate touches she seems to include everywhere she lives. He also has a full finished lower level here with fireplace, gym, sauna, steam room and bed and bath. This place's state has views to the water, terraces, a cabana, a gorgeous inground pool with waterfall and even a private pond with a dock. There's plenty of space for his kids to play outside, that's for sure. According to an interview with Men's Health, although Nick has a gym and a ton of space at his saddle river home, he keeps another private space in California. This is a fairly new gym. It's connected to my office building and my music studio. So I never really leave this place. No one else is allowed to use this gym. Nick reportedly has this office, gym and recording studio building, also known as Incredible Studios, located in Studio City, California. This is where he does his work and hosts guests such as Snoop Dogg, Acon and many more. Alright so that's all I got for Nick Cannon and where he calls home. After taking a look at a few of his properties past and present, what did you guys think? Be sure to rate his homes in the comments down below. I gotta say his saddle river mansion seems to be the perfect size just in between the Bel Air and the San Diego properties. I would rate it an 8.5 from what I could see. I also recently started a personal channel, I've been posting a lot of fun stuff over there so if you want to get to know me a bit better, please go like and subscribe and we'll link you to my latest video. Am I an optimist or a pessimist, Ben? Uh, I would say not an optimist. Oh! That's true. Sorry. I'm brutal. You are exposed. Thanks for tuning in, don't forget to follow me on Instagram and drop a comment for whose house you want to look at next. I'll see you all in the next one. Bye!


Perinurinal nets may stabilize synaptic connections. Here, the authors show that removal of perinurinal nets disrupts both the temporal and spatial organization of grid cell firing. This article was authored by Ayn Charlotte Christensen, Christian Kindenlenst, Michael L. Leppard, and others.


Hello and welcome to the session. My name is Mansi and I'm going to help you with the following question. The question says integrate the following function that is sin inverse x the whole square. So let us see the solution to this one. We have to find i that is equal to sin integral of sin inverse x the whole square dx. First of all we put sin inverse x equal to theta. This implies that x is equal to sin theta and this implies that dx is equal to cos theta d theta. Therefore i becomes integral theta square into cos theta d theta. Now we integrate this by paths. So we see that this is the first function. This will be the second function because as per the i-late rule, algebraic function is given preference over trigonometric function. So that will be equal to first function into integral of second function that is cos theta d theta minus integral of d by d theta of theta square that is of the first function into integral cos theta d theta into d theta. This is equal to theta square into integral of cos theta d theta is sin theta minus d by d theta of theta square is 2 theta and integral cos theta d theta is sin theta this into d theta. This is equal to theta square sin theta minus 2 into integral theta sin theta d theta. Now here again we apply integration by paths. So this will be first function, this will be the second function. We get theta square sin theta minus 2 into theta into integral of sin theta d theta is minus cos theta minus integral of d by d theta of theta that is 1 into integral of sin theta is minus cos theta d theta plus some constant c this is equal to theta square sin theta plus 2 theta cos theta minus minus become plus. So we have a minus sign here also so we will have minus 2 integration cos theta d theta plus c this is equal to sin theta d theta is equal to theta square sin theta plus 2 theta cos theta can be written as square root of 1 minus sin square theta minus 2 sin theta because integration of cos theta is sin theta. So minus 2 sin theta plus the constant c now converting it back to x we know that theta was equal to sin inverse x so we have sin inverse x the whole square into sin theta that is x plus 2 into sin inverse x into square root of 1 minus x square minus 2 x plus c. So this is our answer to the question I hope that you understood the question and enjoyed the session have a good day.


They've told me that my time has begun. So while we're all still getting settled, let me get an idea of who's out there. Then I'll give you an idea of who's up here. Who here at your first KubeCon? Oh, yeah. Okay. Good. Good. That's actually really good. I was aiming this for very much a beginner audience, and I like to see lots of beginners out there. Who here has been to at least three KubeCons? Okay, we've got a few. Got a few veterans. Who here has ever gone through and successfully completed Kubernetes the hard way? Okay, I see a few hands there. All right. Y'all maybe don't need to be here, but you're welcome to stay. I love, you know, and if I say something wrong, feel free to like jump in and be like, no. So we are here to grab our can openers and apply them to Kubernetes networking. And this is going to be very much a, not so much a dive into the Kubernetes networking API constructs. Although they will get mentioned, of course, it's more about when those are in play, what do you actually see outside of Kubernetes on your host going across your network? That kind of thing. So there's a lot of pointers in here. I'm not going to dive terribly deep just because we don't have a super long amount of time, but there should be plenty of pointers for you to dig into things as, as you desire after the talk. I will of course be around to answer questions even after the Q and A. I'll be hanging around in the hall and such. So with that, let me tell you who I am. I've been in IT depending on how you count for going on 30 years now.  I started working with Kubernetes in 2015. Okay, that's somebody in the back. I started working with Kubernetes in 2015. I went to work at CoreOS shortly thereafter and my first KubeCon was Austin in 2017, the time that it snowed in Austin, Texas. That was so much fun. I have, you know, my pronouns. There's a link there that how to get in touch is actually a link to the contact info page on my website and I have a couple of contact info items just right there as well. Currently, I'm a staff solutions engineer for HashiCorp. So I do, although Kubernetes isn't like I don't run a cluster day to day, it is actually a big part of the job that I do because what I work in is our customer design lab and so I'm working on implementing reference architectures into live demo and workshop environments to show our products off to our customers and prospects. So why are we all here? Well, first and foremost, we're here to learn, hopefully. I hope we're all here for that. But also, you know, learning about the foundations of Kubernetes networking and how we can apply the knowledge that we already have to those foundations because I'm sure everybody here, even if you're a Kubernetes newbie, you already know a lot about networking on various platforms and that knowledge doesn't just go away and it doesn't become useless because you're now trying to apply it to Kubernetes. Those same tools that you've always been using, they are old and well-worn and well-maintained and hopefully well-kept up, but just because they're old doesn't mean we throw them away. So what is the general situation that we find ourselves in? Kubernetes lives on a set of hosts and it enables some very advanced networking models. I know everybody here has probably run across Service Mesh at this point, even if you're a beginner. There are various kinds of Service Mesh. We have Consul, of course. But those models, those Service Meshes, those advanced networking utilities and such are all built on the same basic host operating system and the same basic host networking capabilities that have been around for a really, really, really long time. In some cases, I'll actually note some of these things that people think of as being new are actually over 20 years old at this point. And then some of the other tools go back even way further than that, way further than I do. So some people would ask, well, aren't there already Kubernetes tools to debug all the stuff in Kubernetes? Well, yeah, sure there are. And they're great and you should definitely learn them and use a lot of them. And the ephemeral debug containers and such that just went GA fairly recently, those are highly useful. There's all kinds of nifty add-ons like Weave Scope. But sometimes you have trouble getting those things to work, getting them installed, getting them running. Or they were installed but they're failing now and you have to figure out why they're failing or they're not telling you something that you need to know. So you might even be in a situation where somebody comes to you and this is kind of my demo later on. Somebody comes to you and says, well, we got something broken in our cluster and I can't give you access to the cluster API but I still need you to fix it. So how are you gonna do that? Well, you actually can do that some of the time. So we'll go through some scenarios like that. So Kubernetes networking in a fairly large nutshell. Now we're gonna rewind history here for a little bit. Back in the 80s, some of you may go back that far. There was this thing called the OSI 7 Layer Model. Now, everybody talked about the OSI 7 Layer Model and we still kind of reference it today when you hear people talk about a Layer 4 Proxy or a Layer 7 Load Balancer. That's OSI 7 Layer Model terminology. Nobody ever really implemented it strictly, compliantly, but it's still kind of with us. So the layers went from the physical layer which is your actual physical ethernet cables and network interfaces all the way up to the application layer, the actual thing, the software that you're running on the host. Kubernetes networking is layered as well and we'll go through some of those layers and some of them do, in fact, correspond fairly well to the OSI layers. So we'll see how that plays out. At the bottom, of course, with any orchestration system, you have the host network itself. You've got your regular host addresses that represent things like physical ethernet cards or virtual machine virtual network interfaces. But then also when you add containers into the mix or at least the containers the way that they're done these days, you have interface pairs. So you'll have one interface in the container, one outside the container on the host, and that's how your containers actually get networking to the host. So all of that we could collectively call it the physical layer because it's all physical-looking interfaces as far as the host is concerned and you can treat them as physical interfaces when you're looking at them with various tools. Now, above the host networking layer, the relatively new thing is the container networking layer. So this is your Docker bridge, your container D interfaces, et cetera. This is where your container runtime starts this up, handles it, attaches your containers to it. In Kubernetes terms, a lot of this gets configured by CNI plugins. That's the container network interface that Kubernetes has standardized on. And then you often install those. Oops, I see I have a typo there. You often install those with kube control. How do you do that? Well, it turns out that what you're actually doing is you're installing them with privileged containers running on the host network interface. So that's how you bootstrap that container pod network layer from the host layer. The CNI plugins that run also have to set up some kind of way for traffic to get from host to host. Now, every plugin seems to do this differently and some of them support different options. I remember back in the day when Flannel was pretty much it, I think it supported either three or four different ways to get traffic from host to host. And so it would set up the host to route anything that was intending to leave the host from the container network to itself. And then it would take care of getting that traffic across in whatever way you had configured. So next up, on top of the container network, we have the service network. Now, this one doesn't really show up as interfaces. And so it took me a long time to figure out, well, how does the service network even work? It doesn't have interfaces. It doesn't have routing rules. What is going on? Well, it turns out that what it's doing is it's running on the host, and we'll talk about how in just a minute, but it's an abstraction. The service network is kind of a fictitious network. And so even inside of Kubernetes, it's kind of a fictitious overlay to the real-ish pod network. And if you want to know more about the service API, Tim Hawken did a really good lightning talk just the other day. I have a slide at the end of this that has a lot of reading material and different presentations that have already gone by that you can watch later and some of them that are still upcoming. His lightning talk on Monday night was fantastic. The gist of it was that the title of it was the service network, the worst API in Kubernetes because it is so overloaded and it's causing so many problems for the project at this point. And services in turn have their own set of layers. So you can have a cluster IP service, you can have a node port service, you can have a load balancer service. And that basically is whether it's purely internal, whether it's host local, or whether it's actually exposed outside the host to the rest of the network. Then on top of services, we have these other abstractions, Ingress Gateway API. Some people are saying stop using Ingress and start using Gateway API. I don't know if I go that far, but definitely Gateway API is something you should learn about. Basically every service mesh, you're gonna find that it has a service in there, probably a load balancer service. A lot of these things do layer seven stuff. And in literal terms, a service mesh is just a big complicated application operating at layer seven. So we talked about what we have built. Now let's talk about how it is built. What is it built on top of? Oh, and I wanna go back to this actually because if you notice this big beautiful house with this really incredible architectural detail, look what it's built on top of. This crude found out that might even have been like a previous building's foundation that this building was built on. So the foundation could even be older than the house. But again, just because it's old, doesn't mean that you have to stop using it. So host networking interfaces, you like I said before, you'll see them both inside and outside of your containers. You will also, when you're talking about C&I plug-in traffic going from host to host, you will often see this kind of thing reflected in the routing tables. You'll see routes that will direct traffic to a particular interface that is an interface managed by your C&I plug-in. Flannel did that, it was the Flannel Zero interface. Now, IP tables is where you will see your service network show up. So it doesn't have interfaces, but what it does have is a whole bunch of IP tables rules, or if you set your cluster up this way, it'll have a whole bunch of IPBS rules, IP virtual service. And these are both kernel mechanisms, but they are kernel mechanisms that you can see from the host without ever having to go into a container. Now we start talking about namespaces, okay? Remember I said some of this stuff goes back way further than people think it does? Kernel namespaces were added to the Linux kernel way back in 2002. And the first namespace was the mount namespace. They've added several others since then. For a long time, it was seven namespaces. And then just like yesterday when I was looking up the seven namespaces for this talk, I saw, oh, they added an eighth. In 2020, there is now a time namespace. But the three that you're mostly gonna concern yourself with when you're debugging containers are gonna be the network, since that's what we're here to talk about. The PID namespace, that's the process ID. And the mount namespace, that is the file system that is exposed to the container. And the last two, you don't necessarily need all the time, but depending on the kind of debugging you're doing, they may come in handy. Now when we start talking about things above that level, there are some more exotic things coming down the pike. These are actually brand new things, relatively speaking. The big one is probably EBPF. So anybody here who has not heard of EBPF yet? Okay, a couple of people. It's all over KubeCon. There's tons and tons of sessions about we're adding EBPF to our product. We're diagnosing EBPF issues. Definitely go to that stuff. That is a new tool and is starting to take over the world. It is going to, I assume, go through a phase where initially it's going to be very hard to debug because EBPF is literally an opaque, compiled piece of byte code running in a virtual machine in the kernel. So you don't necessarily have all the usual mechanisms that you're used to to poke and prod at it and go, what's going on in there? But somebody's going to have to come up with ways to do that. Let's talk about getting your can opener down into the host so that you can see what's going on in all these containers. I said before, your basic host tools still work. They will still tell you useful things and they work the same way. Interfaces are still interfaces and you can still use the same interface tools like IP, IF config. You can still use the route command for routing. You can use, like I mentioned, the IP tables command to see all the IP tables rules that are in the NAT table for your services. There are other higher-level things that you may also be able to use. Another one that I use frequently when debugging container stuff is OpenSSL. The OpenSSL S Client mode is great for debugging TLS issues. But you may need to use that inside a container. So on the host itself in the regular host namespace, it may or may not tell you what you need to know. And so that's the big downside of sticking to the host namespaces entirely is some things that you need to talk about live-in containers. So some of your basic tools may not... They'll tell you about the host but you don't need to know what's on the host. You need to know what's going on inside the container network. So how do you get into the container? Well, the good old standby, you can try and exec into a container. And if that container was built with a distro base image or somebody included a shell in it, then that may succeed. Getting a shell is only half the battle. You have to make sure that you have the tools in that container that you need. And depending on the container and depending on the particular situation, there may not be a way to get those tools in there if they're not already there, especially in a minimized container. I've seen a lot of minimal containers where somebody said, yeah, it's basically just our app binary, but we're gonna throw bash in there just in case we need to debug. What are you gonna debug with? There's not that much you can debug with bash alone. So how do you debug that kind of thing? Well, you can run a debug container. So what you do is, and every container runtime has its own way of handling this, but you spawn a new container, you attach it to the namespaces of an existing container. And Kubernetes does a weird hybrid version of this. So when you start up a pod, who knows what the first thing to start up on a pod is? Pause, I heard it over there. The pause container starts up. The pause is a little do nothing container. It's just there to set up the network namespace. And it just sits there and idles forever. And then the other containers come in and they join that network namespace of the pause container. But they don't join all of its namespaces. They each have their own independent PID namespace. So it's kind of halfway. Like, they're not all the same from a namespace perspective, but they do share some namespaces in the pod. Now, when you're spawning your own container, of course you can pick and choose which namespaces you wanna try to share. If you're trying to debug something that lives inside of a minimal container, this is one of the best ways to do it. I'll show you the other one in just a second. This is actually something that Kubernetes now supports recently. It's 125, it went beta, and 126, it went GA. I forget the exact timeline, but there's actually now a cube control debug command that you can use to spawn an ephemeral container in a pod. And you can target a container because they don't share PID namespaces by default. And then you can do this kind of debugging when you need to. But the downside of it is, A, you need to be able to spawn a container through some mechanism. B, it's kind of heavyweight. You're adding the load of a whole container. And if you're doing debugging, you're probably running some kind of a distro container. Those can get pretty big, they can take a lot of memory. So you don't always wanna do this. But if you can do it, if you have the room to do it, it's often the most convenient way to go. When you can't run the debug container, but you still need to get into the namespace, there is the classic NSEnter command. That runs another command, joining it to the namespace of one or more namespaces of a targeted process ID. So you can attach any namespaces you want when you do that. Now, some namespaces, when you try to attach them, you may not get a result that's particularly useful. But you can do this. You can pick and choose your namespaces with NSEnter. You can run a shell that will be attached to that process namespace. Or you can run any other command, any other debug command you need to. This is going to be commands on your host, shells on your host, but they're going to be in that container namespace now. It is a little bit harder than just doing a Docker run. Or if you have been working with container D, doing a like CTRC run. So at this point, I will, if you'll bear with me for a moment, I'm going to try and mirror my screen so I can show you this demo of debugging a faulty ingress. And we're going to do this without touching cube control once. Nope, it's not letting me do it. I don't know why, but it's not. Bring this over. Just bring this up front. Okay. So if you'll bear with me for a moment, this will be slightly tedious because I'm going to be copying, pasting back and forth, but we will get there. So I am already in a cluster node. So the scenario here is there's an ingress and it has two routes and one of them is working fine. It returns what it should return. The other one gives you a bad gateway error. Okay. Now this is running on an EKS cluster in AWS. So when you have a connectivity issue with anything to do with AWS, I know people are hearing the answer. I want to hear you all state in unison. The first thing I'm going to count down from three. The first thing you check for a connectivity problem in AWS is three, two, one. There you go. Actually, I lied. The first thing you do is say, hey, anybody want to debug these security groups for me? Okay. So we are on the container node. And what we can now do, this is running container D. So a little bit of background here. Container D is sort of kind of patterned after Docker because that's what it came out of, but it's a little bit less friendly. It actually has its own namespacing of containers. And when you set it up as the Kubernetes container runtime, it puts all the Kubernetes containers in a namespace of its own, not related to kernel namespaces. This is just container D's own namespacing called kates.io. So what I'm doing here is I'm saying, list all the containers in the kates.io container namespace. Okay. So I've got a bunch of containers here. Now, if I scroll up and down, I think I can see it if I scroll back up here. Okay. So I've got this container here that is running HTTPD. Now I know that I'm trying to debug HTTPD, and I know that the problem container is on this host. And this is the only container that says it has HTTPD running. So let me come back here and what I'm now going to do is get info on that container.  It's not super, super helpful in terms of what I'm trying to debug. So what I'm going to do is I'm going to run a debug container so that I can attach to it. Now what I'm going to run here is, again, slightly less friendly than Docker. If you do a Docker run and you don't have the image, it just goes and pulls it for you. Container D doesn't do that. You have to pull it manually. So I pull this Fedora container image. Now I can run it by... And I want to kind of go over this real quick. We are attaching to two namespaces. We're attaching to the PID namespace of the existing container and the network namespace. We're also going to bind them out from the host resolve.conf. And the reason we're going to do that is because when we get in, I didn't know this going in. I had to learn this the hard way. When we get into the container, we're going to need to install some tools, which means we're going to need to download packages over the network and without resolve.conf. We can't do that. So that's what's going on in that command. We're just attaching to a couple of namespaces. We're setting up DNS resolution. Okay, now we're in the container. And I will save you the time. I learned the hard way again that this container does not have IP route pre-installed. So we install IP route. IP route, by the way, is the replacement for a lot of the commands people have been using for a long time, like ifconfig, netstat. There are successor utilities to those that live in the IP route package that you should get used to using. Learning new tools is good, even if you still continue to use the old tools. This does take a slight bit of time here. It's usually about, okay, there we go. It's just about done. Okay, so now we have IP route too. We can now run the ss command and see what is going on. Okay, so ss-anp tells me, now my HTTP process in the container is listening on localhost. There's the problem. Okay, so we found the problem. Now, we can go on and we can do some additional debugging where we determine how the problem came to be, more or less. So if we exit out of this container and we then clean it up by deleting it. I hope everybody can see this fine, by the way. So now our container has been deleted. Now, let's kind of go at it with stone tools. We're just gonna do a plain old brute force grep for HTTP. Okay, so we got some processes here. I'm gonna pick, because it's the lowest process number, so it probably spawned off the others, I'm gonna pick that 8487 process at the top of the list there. So if I now ns-enter and attach to... Now, if I don't give it a command to run it, we'll just by default run a shell. So I'm attaching that process. I'm attaching the mount namespace and the network namespace. Okay, so now I'm in not a container, but a shell. And just for grins, because I suspect I'm gonna need to do it, let's check what kind of container this is built on. It's a Debian container. Okay, so instead of running DNF, we're gonna run apt commands on this. It's gonna be real quick here. We are almost done with this demo, by the way. Now, we install our IP route. Now, on Debian, it's called IP Route 2. It is actually still the same package, okay? Now, just to prove that we can do this, we can repeat our sysstat command. We can say ss-ant, and we see the same thing we saw before. We're listening on localhost. But now what we're gonna do is we're gonna go beyond that. We know this is an Apache container. Who knows what the default config file for Apache is called? I hear it back there, httpd.conf. I don't know where it is in this container. I'm just gonna go looking for it. Okay, it's in user local. So now, let's take a look at that container, actually add that file running in that container, and let's see if we can figure out what the problem might be. Boilerplate there. More or less boilerplate there. That's the problem. Somebody misconfigured Apache. We kind of suspected that, right? But now we can actually prove it. We can say the reason that your Apache is only listening on localhost is because it's there explicitly in your http.conf file. Now, how did that get there? It could have gotten there a number of ways. That image could have been built with that file already in the image. It could be mounted in from some kind of volume, which is in fact the case. What I did when I was setting this demo up was I actually pulled the http.conf out of this container, well, another clone of this container, modified it, and then created a config map from it, and then started this container up with that config map mounted as the config file. If we want to, actually, I will show you one more thing since I have a little bit of time to burn still. If I do dash t, net dash l. Oh, I'm still in the shell. Never mind. Okay, now if I'm on this host, if I do, okay, I think I got that right. Ah, see all those kubeservice things? That's where all your services are happening. All of that mess up there. Good, you know, if you want to go parse through it, go to it. You may have to do that one day, so it's useful to know where you can do that. That concludes the demo. So wrapping up, I have about five minutes left. I'm going to wrap this up real quick so we have some time for Q&A. If there's one thing I want you to go away from here with, it's the idea that just because you're a beginner with Kubernetes doesn't mean that you don't know anything useful. Everything you knew about host networking and Linux networking before continues to be useful. You're going to need to learn new tools. I'm going to learn new tools. You're sometimes still going to want to use the same tools that you got, and that's fine because the thing I always tell people, they go, well, I don't really know how to use that new tool. Use the tool you know how to use, if you know how to use it in the way that you need to use it. The right tool is the tool that gets the job done most efficiently. I'm not going to go through all this. I did want to mention specifically there's a link to Tim Hawkins' Lightning Talk right up there on the top right. There's a link to Kubernetes, the hard way on the top left for the many of you who have never done it. I highly recommend it. There's links to some other videos, and this is a list of sessions that are available. For the Tuesday sessions, of course, I've already gone by, but the Wednesday sessions, there's one right after the break from this. So if you head on over to W178, you can kind of start rolling through those. That's all I got. The QR code there goes to the same URL that the tiny URL points to. The QR code on the right is for feedback, and I am open to any questions that you have at this point. Oh, oh, yes, oh, I have done that, yes, many times. And actually, that is one of the ways that I verify that, hey, is there anything actually listening in that container? Because sometimes it's a little hard to navigate the process space in a busy container, so it sometimes is easier just to do a TCP dump. The question was, have I ever done a TCP dump packet capture, or is that useful to do? Yes, it's entirely useful to do. Anybody else? We got a microphone over there. I think that's it. I think it's just the one right there. Yeah, so you spoke to an OSI model not really being rigidly implemented. Has there been any effort in the space of the Kubernetes network stack to standardize, to ensure long-term interoperability? Can you say that again? I couldn't quite make that out. Yeah, has there been any effort to solidify some sort of model of the Kubernetes networking stack to ensure there's long-term interoperability instead of some of the chaos that happened with OSI where vendors didn't implement things? Oh, yeah. Oh, there's a lot of stuff going on with interoperability and multi-cluster federation and multi-cluster networking. One of the talks that I went to yesterday was about multi-networking in Kubernetes. I think I have it linked from the previous slide there. There are lots of plans to enable multi-networking for containers, which is going to be useful for people who are, like, running Kuber. So that last demo, you were on the EC2 instance, and then you used NS Enter to get into the container? Yes, so the second half of that was we started off, we exited out of the container that we had spawned, then we, from the host, without spawning a new container, we just attached a process to the namespace that the container was using so that we could actually observe what was going on in the container without needing to run another container ourselves. First of all, great demo. Thank you very much. Last time I had to troubleshoot some network connectivity issues, it actually ended up being EBPF-related with some macro-sec package. Is there a strategy you could suggest if you had an issue like that? And the second part is, those commands that you showed for ContainerD, like, how does one actually, like, look them up and learn? I had to look all those ContainerD commands up in the ContainerD documentation, and or I did a lot of CTR-dash help at the command line. Now, as far as the other one, talking about strategies for dealing with EBPF type of stuff, I, to be quite frank, don't know a whole lot about that. It is still an emerging area. I think at this point, your best bet is to do more observational type of things like I can see traffic is or is not flowing and then maybe narrow that down and if you can determine that it is something related to an EBPF module, then I guess at that point, you have to go back to whoever wrote it and say, this is not working. Why is it not working? Thank you. Hi. First, I can see that in the Container's IPv4 is, you know, entirely sufficient, but when it comes to IPv6 on the host, what kind of issues can there be in publishing, you know, the Kubernetes... So, it's kind of interesting because until fairly recently, Kubernetes did not support IPv6 and we just ran out of time, so I'm going to wrap this up real quick. It did not support IPv6. It does now and as far as any kind of issues you would run into, I don't know of anything specific to Kubernetes. I think it would just be the regular sort of IPv6 issues you would see anywhere, like, you know, when you don't have IPv6 connectivity but something is trying to prefer it and so your networking suddenly dies and you don't know why. I'm going to wrap up here, but like I said, I'll be hanging out in the hall for a little bit if anybody has any more questions for me.


Anyway, let's get back to what we were doing. Currently, G to music we spend quite a lot of time on it, but without much progress, it was generating something. It was generating noise, it wasn't very musical. So I thought we'll give it a go this time. We'll start from, not from scratch as previously. So previously we did learn quite a bit about music generation, MIDI, music, fonts, things like that. You can see previous videos. The idea here is to take an existing tool. This is already on the website. You can go try this out. Right, this is the coordinate function. X4 parameter is logout, high cut, assembly frequency, and order is order five by default. The function is very calculated. Nyquist frequency, which is half of the sampling frequencies, and then normalizes the logout and high frequency by dividing them into Nyquist frequency. The battle function from side-by-signal modules then used to calculate the coefficients of the Butterworth filter. We get the coefficients in A and B, and the next function, butter, band pass filter, is actually using those coefficients. Yeah, it has the same inputs, then it's actually generating B and A, and using L filter, one dimension, IIR or FIR, which one is it by default? Show this will be parameters B array, array like. Okay, it's not actually telling us which one is it. Is it IIR or FIR? Show it's IIR. That's just the guess. Yes, GPT-4 has a better, more generic explanation, which is better for purposes. Filter data is returned. Yeah, it didn't actually explain the whole code, did it? It's good GPT-4 says it's a good script considering it wrote it itself with the whole spectrum. We have the delta, theta, alpha, beta. Seem to work okay. This is during seizure. It's actually in the error at the edge there. And this is during non-seizure that has that weird thing in it. Yeah, this is the end of the seizure. So there's seizure, there's no seizure. It's a tricky business because the spectrum is actually similar, but it's similar because of different reasons. They have to look at the power in it. So yes, when I improve this tool, but we also want to generate music out of it. So we don't have to review EEG manually like this. Let me just hit the play button and listen to it. Hopefully it's not too annoying to listen to. Need to write prompt for it. This tool is working well. It's fast and responsive. We would like to add an option to play musical notes when we are scrolling through the file. The notes could be retrieved out of the power in each frequency component and potentially played as chords. So multiple notes together. Let's say it's integrating a feature to play musical notes based on the power of frequency components in EEG data. Yeah, okay. This would turn that data into auditor experience, blah, blah, blah. Yes, high level data mapping, frequency to note mapping, okay, and scaling and the power of each frequency could control the volume or dynamics of the corresponding note. Note, chord generation based on selected frequencies from chords. This can be done by grouping notes that harmonize well together. Well, that's the help from a musician here. Implement logic to decide how chords change over time. Audio synthesis.  Well, using an audio API to play the chords. Integrating with existing application. Add a play button. No, using a play button. Yeah, we don't want to do that. Yeah, question is, do we just want to play frequencies or actually musical notes, which we tried doing previously? So in the code, we already should have the power for each EEG frequency component, delta, theta, alpha, beta, when scrolling through the file. Can we use this to generate musical notes? It's kind of the same thing again, but it's not actually doing it. So if we assign a specific note or a range of note to each EEG frequency band, it doesn't mean that we will only have four notes to actually start generating a JavaScript using web audio API. Yeah, this one's using sinusoid.  Mainly, hop off at this stage because we're obviously running the server for other things as well, and we want to do as much as possible on the front end. So yes, the performance will highly depend on the device you are using to access the web application. Probably go for some sort of hybrid, well, obviously for hybrid approach. Question is, what's the ratio between back end and front end processing? Question when we normalize, it's normalizing within the certain window, so the time window there is important for replacing all this map data to notes. We're having errors, so we have in JavaScript, line 142, kind of the cheat that it to replace this with the data value. I'm feeling this should be happening elsewhere. Can GPT or help with this? There are the current seconds. So it's a pointer, fetch data and render probably should split this function. Existing code fetched plot data. Then when we have fetch API URL, response json data, that's the code for plotting the signal. We have a constant of notes to play. Yes, we already have play frequency and map EEG data to notes. Keep adding more and more functions, extract each data for music. And the main one is fetch data and render, which we are replacing. What your context was not allowed to start. And another function is not defined at 69 note range. We have note range in forget function. Right, this is actually similar to what we had in the previous code. I have feeling we need to change the back end as well. We have power to note. That's just the warning, it's not an actual error. And that's fine, it's the info. Audio context was not allowed to start. Is that why we can't hear anything? The JavaScript 129 in a webkit may not exist. Okay, actually don't want the button. I'm getting this error, which doesn't seem to be related to the button. I want an extra button. We don't particularly care about TypeScript. That error is okay, but the browser is not playing anything at the moment. We also do not want to add an additional button. It is not needed. Can we make sure the sound is played when the scroller is moved? This edge, a bit to take the risk of annoying the user. So we have audio context, initialize false, initialize audio context, then play frequency. That's no problem. We can get rid of that. And let's use that. That should initialize the audio context. And in this scroll event, edge and render. Yeah, we don't need all that. It keeps adding more functions. It's ridiculous. I always say, okay, we already have that. Like policies preventing us from playing in the browser. Every time I ask for something, I'm generating a new function. Which is not great. Yeah, we'll try fixing this next time. I'll see you in a bit. Bye.